Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
member
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
member
member
Commits
c181d928
Commit
c181d928
authored
Nov 18, 2021
by
chenyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: update
parent
4bd4df27
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
369 additions
and
101 deletions
+369
-101
baseinfoDialog.vue
src/components/allCustomers/components/baseinfoDialog.vue
+2
-2
batchgradeDialog.vue
src/components/allCustomers/components/batchgradeDialog.vue
+2
-2
consumptionorderDialog.vue
...onents/allCustomers/components/consumptionorderDialog.vue
+239
-0
customergradeDialog.vue
...omponents/allCustomers/components/customergradeDialog.vue
+2
-2
customerlabelDialog.vue
...omponents/allCustomers/components/customerlabelDialog.vue
+5
-7
customermainstoreDialog.vue
...nents/allCustomers/components/customermainstoreDialog.vue
+13
-18
customersubstoreDialog.vue
...onents/allCustomers/components/customersubstoreDialog.vue
+13
-10
integralDialog.vue
src/components/allCustomers/components/integralDialog.vue
+2
-2
mainstoreDialog.vue
src/components/allCustomers/components/mainstoreDialog.vue
+2
-2
substoreDialog.vue
src/components/allCustomers/components/substoreDialog.vue
+2
-2
tableColumDialog.vue
src/components/allCustomers/components/tableColumDialog.vue
+2
-2
consumption.vue
src/components/allCustomers/consumption.vue
+0
-0
customerDetail.less
src/components/allCustomers/customerDetail.less
+29
-6
customerDetail.vue
src/components/allCustomers/customerDetail.vue
+13
-10
index.js
src/components/allCustomers/index.js
+1
-1
info.js
src/components/allCustomers/info.js
+3
-3
ajaxmembersinfo.vue
src/components/wechatmembers/ajaxmembersinfo.vue
+4
-5
cardvoucher.vue
src/components/wechatmembers/cardvoucher.vue
+4
-5
infoMall.vue
src/components/wechatmembers/infoMall.vue
+4
-5
integralDataPage.vue
src/components/wechatmembers/integralDataPage.vue
+5
-1
modifyintegral.vue
src/components/wechatmembers/modifyintegral.vue
+3
-3
storedValue.vue
src/components/wechatmembers/storedValue.vue
+3
-3
talkLogPage.vue
src/components/wechatmembers/talkLogPage.vue
+4
-4
wechatTotalDetail.js
src/components/wechatmembers/wechatTotalDetail.js
+0
-0
wechatTotalDetail.vue
src/components/wechatmembers/wechatTotalDetail.vue
+1
-1
wmDetail.vue
src/components/wechatmembers/wmDetail.vue
+4
-5
index.js
src/router/index.js
+7
-0
No files found.
src/components/allCustomers/components/baseinfoDialog.vue
View file @
c181d928
...
...
@@ -35,8 +35,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/batchgradeDialog.vue
View file @
c181d928
...
...
@@ -21,8 +21,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/consumptionorderDialog.vue
0 → 100644
View file @
c181d928
<
template
>
<div>
<el-dialog
title=
"订单详情"
custom-class=
"customer-dailog"
:visible
.
sync=
"dialogVisible"
:close-on-click-modal=
"false"
@
close=
"cancel"
width=
"600px"
>
<div
class=
"record-dilog"
style=
"width: 560px;"
>
<div
class=
"table-content"
>
<el-table
:data=
"orderData"
tooltip-effect=
"dark"
ref=
"orderTable"
>
<el-table-column
prop=
"productName"
label=
"商品信息"
width=
"200px"
>
<template
slot-scope=
"scope"
>
<div
class=
"record-info"
>
<div
class=
"record-infoimg"
><img
width=
"60"
height=
"60"
:src=
"scope.row.imageUrl ? scope.row.imageUrl : './static/img/default.png'"
alt=
""
></div>
<div
class=
"record-infocontent"
>
<div>
{{
scope
.
row
.
productName
}}
</div>
<div>
{{
scope
.
row
.
productCode
}}
</div>
<div
style=
"color: #c0c4cc;"
>
<span
v-for=
"(item, index) in scope.row.attrColorSize"
:key=
"index"
>
{{
item
.
key
}}
:
{{
item
.
value
}}
</span>
</div>
<div></div>
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"number"
label=
"数量"
width=
"120px"
></el-table-column>
<el-table-column
prop=
"payPrice"
label=
"成交价"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
unitPrice
}}
</p>
<p>
{{
scope
.
row
.
payPrice
}}
</p>
</
template
>
</el-table-column>
</el-table>
<div
class=
"record-border"
>
<div
class=
"record-countwrap"
>
<p><span
class=
"record-count"
>
商品总价
</span><span
class=
"record-countvalue"
>
{{ orderInfo.totalAmount }}
</span></p>
<p><span
class=
"record-count"
>
优惠活动
</span><span
class=
"record-countvalue"
>
{{ orderInfo.promotionAmount }}
</span></p>
<p><span
class=
"record-count"
>
应付金额
</span><span
class=
"record-countvalue"
>
{{ orderInfo.paidAmount }}
</span></p>
</div>
</div>
<div
class=
"record-border"
>
<div
class=
"record-countwrap"
>
<p
v-for=
"(item, index) in payInfo"
:key=
"index"
><span
class=
"record-count"
>
{{ item.name }}
</span><span
class=
"record-countvalue"
>
{{ item.value }}
</span></p>
</div>
</div>
<div
class=
"record-border"
>
<div
class=
"record-countwrap"
>
<p><span
class=
"record-count"
>
订单总额
</span><span
class=
"record-countvalue"
>
{{ orderInfo.paidAmount }}
</span></p>
</div>
</div>
</div>
<div
class=
"evaluate-box"
v-if=
"evaluateData.length"
>
<div
class=
"evaluate-con"
>
<div
class=
"item"
v-for=
"(item, index) in evaluateData"
:key=
"index"
>
{{item.ruleName}}
<div
class=
"evaluate-star"
>
<el-rate
disabled
v-model=
"item.evaluateScore"
:colors=
"['#99A9BF', '#F7BA2A', '#FF9900']"
></el-rate>
</div>
</div>
</div>
<div
class=
"e-txt"
>
<div
class=
"e-con"
>
<p>
买家评语
</p>
<p>
{{evaluate.evaluateContent}}
</p>
</div>
<span
class=
"e-time"
>
{{evaluate.createTime}}
</span>
</div>
<div
class=
"r-txt"
v-if=
"evaluate.replyContent"
>
<div
class=
"e-con"
>
<p>
商家回复
</p>
<p>
{{evaluate.replyContent}}
</p>
</div>
<span
class=
"e-time"
>
{{evaluate.replayDate}}
</span>
</div>
<div
style=
"text-align: center"
v-if=
"!evaluate.replyContent"
>
<el-button
@
click=
"replayFast"
>
立即回复
</el-button>
</div>
</div>
</div>
<el-dialog
title=
"回复"
:visible
.
sync=
"replayVisable"
width=
"30%"
append-to-body
>
<div
class=
""
>
<el-input
type=
"textarea"
:rows=
"2"
placeholder=
"请输入回复内容"
v-model=
"textarea"
>
</el-input>
</div>
<span
slot=
"footer"
class=
"dilog-footer"
>
<el-button
@
click=
"replayVisable = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirmReplay"
>
确 定
</el-button>
</span>
</el-dialog>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
{
doFetch
,
doFetchqs
,
doFetchGet
}
from
"../../axios/api"
;
import
url
from
"../../axios/url"
;
import
{
mapState
}
from
"vuex"
;
import
{
checkFalse
,
checkStatus
,
checkSuccess
}
from
"../../../../static/js/checkStatus"
;
export
default
{
name
:
"customermainstoreDialog"
,
props
:
{
dialogVisible
:
{
type
:
Boolean
,
default
:
false
},
obj
:
{
type
:
Object
,
default
:
()
=>
{
return
{};
}
}
},
data
()
{
return
{
evaluateId
:
''
,
orderId
:
''
,
orderInfo
:
{},
orderData
:
[],
evaluateData
:
[],
payInfo
:
[],
textarea
:
''
,
replayVisable
:
false
,
btnLoading
:
false
,
};
},
computed
:
{
...
mapState
([
"showEditClique"
])
},
methods
:
{
cancel
()
{
this
.
$emit
(
'update:dialogVisible'
,
false
);
},
getOrderDetail
(
orderId
)
{
this
.
orderData
=
[];
this
.
orderInfo
=
""
;
this
.
orderId
=
orderId
;
this
.
payInfo
=
[];
doFetch
(
url
.
orderDetail
,
{
memberId
:
this
.
memberId
,
orderId
:
orderId
})
.
then
(
res
=>
{
if
(
res
.
data
.
errorCode
===
0
)
{
this
.
orderInfo
=
res
.
data
.
result
.
orderInfo
;
// 组装一下商品的属性 方便遍历
console
.
log
(
res
.
data
.
result
.
orderInfo
.
list
)
this
.
orderData
=
res
.
data
.
result
.
orderInfo
.
list
.
map
(
ele
=>
({
...
ele
,
attrColorSize
:
JSON
.
parse
(
ele
.
attrColorSize
)
}));
if
(
this
.
orderInfo
.
payInfo
)
{
this
.
payInfo
=
JSON
.
parse
(
this
.
orderInfo
.
payInfo
);
}
// 评价数据
const
data
=
res
.
data
.
result
.
orderInfo
.
evaluate
;
if
(
!
data
)
{
this
.
evaluateData
=
[];
}
else
{
this
.
evaluateId
=
data
.
evaluateId
;
this
.
evaluate
=
{
...
data
,
createTime
:
data
.
createTime
!=
-
1
?
formatLongTime
(
data
.
createTime
,
1
)
:
"--"
,
replayDate
:
data
.
replayDate
!=
-
1
?
formatLongTime
(
data
.
replayDate
,
1
)
:
"--"
};
this
.
evaluateData
=
data
.
scoresList
.
map
(
ele
=>
({
...
ele
,
evaluateScore
:
ele
.
evaluateScore
/
2
}));
}
}
else
{
checkFalse
(
res
.
data
.
message
);
}
})
.
catch
(
err
=>
{
checkStatus
(
err
);
});
},
confirmReplay
()
{
if
(
!
this
.
textarea
)
{
return
;
}
doFetch
(
"/api-member/evalaute_recover"
,
{
evaluateId
:
this
.
evaluateId
,
replyContent
:
this
.
textarea
}).
then
(
res
=>
{
if
(
res
.
data
.
errorCode
===
0
)
{
this
.
getOrderDetail
(
this
.
orderId
);
this
.
replayVisable
=
false
;
}
});
}
},
watch
:
{
dialogVisible
(
n
,
o
)
{
if
(
n
)
{
console
.
log
(
obj
);
// const { memberId, mainStoreName, mainStoreId, mainClerkId } = this.obj;
// this.form = Object.assign({}, this.form, { memberId, mainStoreId, mainClerkId, mainStoreIdBak: mainStoreId });
// this.getOrderDetail();
}
}
}
};
</
script
>
<
style
lang=
"less"
>
//
去除
dailog-footer
上边框
.customer-dailog
.el-dialog__footer
{
padding-top
:
0
;
padding-bottom
:
20px
;
border-top
:
none
!important
;
}
.customer-dailog
.el-dialog__body
{
padding-bottom
:
0
;
}
</
style
>
\ No newline at end of file
src/components/allCustomers/components/customergradeDialog.vue
View file @
c181d928
...
...
@@ -19,8 +19,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/customerlabelDialog.vue
View file @
c181d928
...
...
@@ -49,8 +49,8 @@
</
template
>
</el-tabs>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
@@ -240,7 +240,7 @@ export default {
}
.label-dailog
{
.el-tabs__header
{
margin-bottom
:
37
px
;
margin-bottom
:
29
px
;
}
.el-dialog__body
{
padding-top
:
0
;
...
...
@@ -250,12 +250,10 @@ export default {
padding-left
:
20px
;
overflow-y
:
scroll
;
.tag-item
{
display
:
flex
;
.tag-group-name
{
flex-shrink
:
0
;
margin-right
:
10px
;
margin-bottom
:
10px
;
font-size
:
14px
;
color
:
#
303133
;
color
:
#
909399
;
line-height
:
20px
;
}
.tag-style
{
...
...
src/components/allCustomers/components/customermainstoreDialog.vue
View file @
c181d928
...
...
@@ -23,8 +23,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
@@ -41,18 +41,12 @@ export default {
type
:
Boolean
,
default
:
false
},
mainStoreName
:
{
type
:
String
,
default
:
''
},
mainStoreId
:
{
type
:
String
,
default
:
''
},
mainClerkId
:
{
type
:
String
,
default
:
''
},
obj
:
{
type
:
Object
,
default
:
()
=>
{
return
{};
}
}
},
data
()
{
return
{
...
...
@@ -123,7 +117,7 @@ export default {
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
btnLoading
=
true
;
doFetch
Get
(
url
.
updateMemberStore
,
Object
.
assign
({},
this
.
form
))
doFetch
(
url
.
updateMemberStore
,
Object
.
assign
({},
this
.
form
))
.
then
(
res
=>
{
if
(
res
.
data
.
errorCode
===
0
)
{
setTimeout
(()
=>
{
...
...
@@ -151,9 +145,10 @@ export default {
watch
:
{
dialogVisible
(
n
,
o
)
{
if
(
n
)
{
this
.
form
=
Object
.
assign
({},
this
.
form
,
{
mainStoreIdBak
:
this
.
mainStoreId
,
mainStoreId
:
this
.
mainStoreId
,
mainClerkId
:
this
.
mainClerkId
});
this
.
getMainStoreCodeName
(
this
.
mainStoreName
);
this
.
getClerckList
(
this
.
mainStoreId
,
true
);
const
{
memberId
,
mainStoreName
,
mainStoreId
,
mainClerkId
}
=
this
.
obj
;
this
.
form
=
Object
.
assign
({},
this
.
form
,
{
memberId
,
mainStoreId
,
mainClerkId
,
mainStoreIdBak
:
mainStoreId
});
this
.
getMainStoreCodeName
(
mainStoreName
);
this
.
getClerckList
(
mainStoreId
,
true
);
}
}
}
...
...
src/components/allCustomers/components/customersubstoreDialog.vue
View file @
c181d928
...
...
@@ -21,14 +21,14 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
doFetchqs
,
doFetch
Get
}
from
"../../axios/api"
;
import
{
doFetchqs
,
doFetch
}
from
"../../axios/api"
;
import
url
from
"../../axios/url"
;
import
{
mapState
}
from
"vuex"
;
import
{
checkFalse
,
checkStatus
,
checkSuccess
}
from
"../../../../static/js/checkStatus"
;
...
...
@@ -39,16 +39,17 @@ export default {
type
:
Boolean
,
default
:
false
},
subStoreList
:
{
type
:
Array
,
obj
:
{
type
:
Object
,
default
:
()
=>
{
return
[]
;
return
{}
;
}
}
,
}
},
data
()
{
return
{
form
:
{
memberId
:
''
,
subStoreIdsBak
:
''
,
// 修改前的协管门店id
storeIds
:
[],
remark
:
''
,
...
...
@@ -110,7 +111,7 @@ export default {
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
btnLoading
=
true
;
doFetch
Get
(
url
.
updateMemberStore
,
Object
.
assign
({},
this
.
form
,
{
storeIds
:
this
.
form
.
storeIds
.
join
(
','
)
}))
doFetch
(
url
.
updateMemberStore
,
Object
.
assign
({},
this
.
form
,
{
storeIds
:
this
.
form
.
storeIds
.
join
(
','
)
}))
.
then
(
res
=>
{
if
(
res
.
data
.
errorCode
===
0
)
{
setTimeout
(()
=>
{
...
...
@@ -138,8 +139,10 @@ export default {
watch
:
{
dialogVisible
(
n
,
o
)
{
if
(
n
)
{
let
storeIds
=
this
.
subStoreList
.
map
(
item
=>
item
.
storeId
);
this
.
form
=
Object
.
assign
({},
this
.
form
,
{
storeIds
,
subStoreIdsBak
:
storeIds
.
join
(
','
)
});
const
{
shopNames
,
memberId
}
=
this
.
obj
;
let
storeIds
=
shopNames
.
map
(
item
=>
item
.
storeId
);
this
.
subStoreList
=
[].
concat
(
shopNames
)
this
.
form
=
Object
.
assign
({},
this
.
form
,
{
memberId
,
storeIds
,
subStoreIdsBak
:
storeIds
.
join
(
','
)
});
}
}
}
...
...
src/components/allCustomers/components/integralDialog.vue
View file @
c181d928
...
...
@@ -31,8 +31,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/mainstoreDialog.vue
View file @
c181d928
...
...
@@ -19,8 +19,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/substoreDialog.vue
View file @
c181d928
...
...
@@ -31,8 +31,8 @@
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"btnLoading"
@
click=
"submit"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/components/tableColumDialog.vue
View file @
c181d928
...
...
@@ -9,8 +9,8 @@
:label=
"item.code"
:disabled=
"item.code==='name'"
>
{{
item
.
name
}}
</el-checkbox>
</el-checkbox-group>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取
消
</el-button>
<el-button
type=
"primary"
@
click=
"submitFields"
>
确
定
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitFields"
>
确定
</el-button>
</span>
</el-dialog>
</div>
...
...
src/components/allCustomers/consumption.vue
View file @
c181d928
This diff is collapsed.
Click to expand it.
src/components/allCustomers/customerDetail.less
View file @
c181d928
...
...
@@ -459,22 +459,45 @@
}
.dictFigure-wrap {
display: flex;
gap: 3
2
px;
gap: 3
9
px;
.dictFigure-item {
width: 68px;
display: flex;
width: 134px;
height: 68px;
background: #f5f7fa;
text-align: center;
img{
.img-wrap {
width: 68px;
height: 68px;
margin-right: 9px;
background: #f5f7fa;
text-align: center;
}
img {
height: 100%;
}
.right {
display: flex;
flex-direction: column;
justify-content: center;
p {
margin: 0;
font-size: 14px;
line-height: 20px;
}
.dict-name {
margin-bottom: 10px;
color: #909399;
}
.dictFigure-name {
color: #303133;
}
}
}
}
}
}
}
// 日志
.log-info-contain{
.log-info-contain
{
padding-top: 20px;
}
}
...
...
src/components/allCustomers/customerDetail.vue
View file @
c181d928
...
...
@@ -290,11 +290,15 @@
<el-tab-pane
label=
"身形字段"
name=
"dictFigureList"
>
<ul
v-if=
"tagAndRemarkInfo.dictFigureList.length"
class=
"dictFigure-wrap"
>
<
template
v-for=
"item in tagAndRemarkInfo.dictFigureList"
>
<li
v-if=
"item.imageUrl"
:key=
"item"
class=
"dictFigure-item"
>
<img
:src=
"require(`../../../static/img/body-shape-$
{member.memberGender===2?'woman':'man'}/${item.imageUrl}`)"
:alt="item.dictName">
<p>
{{
item
.
dictName
}}
:
{{
item
.
dictFigureName
}}
</p>
<li
:key=
"item"
class=
"dictFigure-item"
>
<div
v-if=
"item.imageUrl"
class=
"img-wrap"
>
<img
:alt=
"item.dictName"
:src=
"require(`../../../static/img/body-shape-$
{member.memberGender===2?'woman':'man'}/${item.imageUrl}`)">
</div>
<div
class=
"right"
>
<p
class=
"dict-name"
>
{{
item
.
dictName
}}
</p>
<p
class=
"dictFigure-name"
>
{{
item
.
dictFigureName
}}
</p>
</div>
</li>
</
template
>
</ul>
...
...
@@ -344,12 +348,11 @@
<customergrade-dialog
:dialogVisible
.
sync=
"gradeDialogVisible"
:memberId=
"memberId"
:gradeId=
"memberInfo.gradeId"
:gradeList=
"gradeList"
@
refresh=
"initData"
/>
<!-- 服务门店、专属导购修改弹窗 -->
<customermainstore-dialog
:dialogVisible
.
sync=
"mainStoreDialogVisible"
:memberId=
"memberId"
:mainStoreName=
"member.mainStoreName"
:mainStoreId=
"member.mainStoreId"
:mainClerkId=
"member.mainClerkId"
@
refresh=
"initData"
/>
<customermainstore-dialog
:dialogVisible
.
sync=
"mainStoreDialogVisible"
@
refresh=
"initData"
:obj=
"{...member}"
/>
<!-- 协管门店修改弹窗 -->
<customersubstore-dialog
:dialogVisible
.
sync=
"subStoreDialogVisible"
:memberId=
"memberId
"
:
subStoreList=
"member.shopNames"
@
refresh=
"initData
"
/>
<customersubstore-dialog
:dialogVisible
.
sync=
"subStoreDialogVisible"
@
refresh=
"initData
"
:
obj=
"{...member}
"
/>
<!-- 手工标签修改弹窗 -->
<customerlabel-dialog
:dialogVisible
.
sync=
"labelDialogVisible"
:memberId=
"memberId"
@
refresh=
"initData"
/>
...
...
src/components/allCustomers/index.js
View file @
c181d928
...
...
@@ -407,7 +407,7 @@ export default {
linkDetail
(
memberId
)
{
this
.
$router
.
push
({
path
:
"/customerDetail"
,
query
:
{
id
:
memberId
}
query
:
{
memberId
}
});
},
getEnterpriseInfo
()
{
...
...
src/components/allCustomers/info.js
View file @
c181d928
...
...
@@ -132,7 +132,7 @@ export default {
label
:
"门店消费"
,
icon
:
"icon-mendianbaojiadan"
,
key
:
"numOfSale"
,
path
:
"/
ajaxmembersinfo
"
path
:
"/
consumption
"
},
{
label
:
"达摩商城"
,
...
...
@@ -219,8 +219,8 @@ export default {
...
mapState
([
"showEditClique"
])
},
created
()
{
this
.
$store
.
commit
(
"mutations-slide"
,
fals
e
);
this
.
memberId
=
this
.
$route
.
query
.
i
d
;
this
.
$store
.
commit
(
"mutations-slide"
,
tru
e
);
this
.
memberId
=
this
.
$route
.
query
.
memberI
d
;
},
mounted
()
{
this
.
initData
();
...
...
src/components/wechatmembers/ajaxmembersinfo.vue
View file @
c181d928
...
...
@@ -442,13 +442,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/wechatmemberDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
path
:
"/customerDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
},
{
name
:
"会员门店消费"
,
...
...
@@ -617,7 +616,7 @@ export default {
},
goback
()
{
this
.
$router
.
push
({
path
:
"
wechatmemb
erDetail"
,
path
:
"
custom
erDetail"
,
query
:
{
memberId
:
this
.
memberId
}
});
},
...
...
src/components/wechatmembers/cardvoucher.vue
View file @
c181d928
...
...
@@ -326,13 +326,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/wechatmemberDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
path
:
"/customerDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
},
{
name
:
"会员卡券"
,
...
...
@@ -474,7 +473,7 @@ export default {
},
goback
()
{
this
.
$router
.
push
({
path
:
"
wechatmemb
erDetail"
,
path
:
"
custom
erDetail"
,
query
:
{
memberId
:
this
.
memberId
}
});
},
...
...
src/components/wechatmembers/infoMall.vue
View file @
c181d928
...
...
@@ -187,13 +187,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/wechatmemberDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
path
:
"/customerDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
},
{
name
:
"微信商城消费"
,
...
...
@@ -304,7 +303,7 @@ export default {
},
goback
()
{
this
.
$router
.
push
({
path
:
"
wechatmemb
erDetail"
,
path
:
"
custom
erDetail"
,
query
:
{
memberId
:
this
.
memberId
}
});
}
...
...
src/components/wechatmembers/integralDataPage.vue
View file @
c181d928
...
...
@@ -248,8 +248,12 @@ export default {
path
:
"/"
},
{
name
:
"客户列表"
,
path
:
"/allCustomers"
},
{
name
:
"会员详情"
,
path
:
"/
wechatmemb
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
path
:
"/
custom
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
},
{
name
:
"会员积分明细"
,
...
...
src/components/wechatmembers/modifyintegral.vue
View file @
c181d928
...
...
@@ -318,12 +318,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/
wechatmemb
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
path
:
"/
custom
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
},
{
name
:
"积分明细"
,
...
...
src/components/wechatmembers/storedValue.vue
View file @
c181d928
...
...
@@ -118,12 +118,12 @@ export default ({
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/
wechatmemb
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
path
:
"/
custom
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
},
{
name
:
"储值明细"
,
...
...
src/components/wechatmembers/talkLogPage.vue
View file @
c181d928
...
...
@@ -219,12 +219,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/
wechatmemb
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
path
:
"/
custom
erDetail?memberId="
+
this
.
$route
.
query
.
memberId
},
{
name
:
"通话记录"
,
...
...
@@ -268,7 +268,7 @@ export default {
},
goback
()
{
this
.
$router
.
push
({
path
:
"
wechatmemb
erDetail"
,
path
:
"
custom
erDetail"
,
query
:
{
memberId
:
this
.
memberId
}
});
},
...
...
src/components/wechatmembers/wechatTotalDetail.js
View file @
c181d928
This diff is collapsed.
Click to expand it.
src/components/wechatmembers/wechatTotalDetail.vue
View file @
c181d928
...
...
@@ -708,7 +708,7 @@
</el-dialog>
<!--修改导购备注-end-->
<ModifyGuide
:dialogVisible
.
sync=
"modifyClerkDialog"
:memberId=
"memberbaseinfo.memberId"
:mainStoreId=
"memberbaseinfo.mainStoreId"
@
getList=
"getBaseDetail"
/>
<
vue-gic-footer></vue-gic-footer
>
<
!-- <vue-gic-footer></vue-gic-footer> --
>
</div>
</template>
...
...
src/components/wechatmembers/wmDetail.vue
View file @
c181d928
...
...
@@ -156,13 +156,12 @@ export default {
path
:
""
},
{
name
:
"
微信会员
"
,
path
:
"/
wechatmemb
ers"
name
:
"
客户列表
"
,
path
:
"/
allCustom
ers"
},
{
name
:
"会员详情"
,
path
:
"/wechatmemberDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
path
:
"/customerDetail?memberId="
+
this
.
$route
.
query
.
memberId
||
""
},
{
name
:
"微盟订单"
,
...
...
@@ -239,7 +238,7 @@ export default {
},
goback
()
{
this
.
$router
.
push
({
path
:
"
wechatmemb
erDetail"
,
path
:
"
custom
erDetail"
,
query
:
{
memberId
:
this
.
memberId
}
});
},
...
...
src/router/index.js
View file @
c181d928
...
...
@@ -57,6 +57,13 @@ export const constantRouterMap = [
}
},
{
path
:
"/consumption"
,
component
:
_import
(
"allCustomers"
,
"consumption"
),
meta
:
{
title
:
"会员门店消费"
,
}
},
{
path
:
"/wechattotal"
,
component
:
_import
(
"wechatmembers"
,
"wechat-total"
),
meta
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment