Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
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
罗超
confucius
Commits
09607817
Commit
09607817
authored
Dec 13, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
1bc2b433
fc4750ee
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1227 additions
and
600 deletions
+1227
-600
peemanagement.js
src/api/sale/peemanagement.js
+22
-0
b2bCustomerInfo.vue
src/components/sale/b2bcustomerinfo/b2bCustomerInfo.vue
+242
-159
b2bOrderlist.vue
src/components/sale/b2bcustomerinfo/b2bOrderlist.vue
+95
-141
baseInfo.vue
src/components/sale/b2bcustomerinfo/baseInfo.vue
+0
-15
conRight.vue
src/components/sale/b2bcustomerinfo/conRight.vue
+45
-41
customer.vue
src/components/sale/b2bcustomerinfo/customer.vue
+8
-9
order.vue
src/components/sale/b2bcustomerinfo/order.vue
+10
-27
passbook.vue
src/components/sale/b2bcustomerinfo/passbook.vue
+211
-0
rakeback.vue
src/components/sale/b2bcustomerinfo/rakeback.vue
+210
-0
b2bcustomlist.vue
src/components/sale/b2bcustomlist.vue
+380
-208
b2bcustomerapprove.vue
src/pages/sale/b2bcustomerapprove.vue
+4
-0
No files found.
src/api/sale/peemanagement.js
View file @
09607817
...
...
@@ -217,3 +217,25 @@ export function getCustomerStuStageStatistics(data) {
data
})
}
/**
* 获取同业佣金/幸福存折明细
*
*/
export
function
getCustomerCommissionPassbook
(
data
)
{
return
request
({
url
:
'/B2BCustomer/GetCustomerCommissionPassbook'
,
method
:
'post'
,
data
})
}
/**
* 同业转交
*
*/
export
function
setCustomerCareOf
(
data
)
{
return
request
({
url
:
'B2BCustomer/SetCustomerCareOf'
,
method
:
'post'
,
data
})
}
\ No newline at end of file
src/components/sale/b2bcustomerinfo/b2bCustomerInfo.vue
View file @
09607817
<
template
>
<q-dialog
v-model=
"persistent"
maximized
full-height
seamless
position=
"right"
@
hide=
"closeAuditCustomerForm"
>
<q-dialog
v-model=
"persistent"
maximized
full-height
seamless
position=
"right"
@
hide=
"closeAuditCustomerForm"
>
<div
class=
"info-content-component"
>
<div
class=
"info-head flex items-center"
>
<div
class=
"flex items-center"
>
<q-img
:src=
"detailData.WeChatPhoto"
:ratio=
"1"
width=
"60px"
class=
"q-mr-md"
/>
<q-img
:src=
"detailData.WeChatPhoto"
:ratio=
"1"
width=
"60px"
class=
"q-mr-md"
/>
<div>
<div
class=
"text-weight-thin"
style=
"font-size:10px"
>
微信名
</div>
<div
class=
"text-h6"
>
{{
detailData
.
WeChatName
}}
{{
detailData
.
WeChatName
}}
</div>
</div>
</div>
<q-space
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"swap_horiz"
label=
"转移"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"转交"
icon=
"swap_horiz"
@
click=
"isShowTrans = true"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-banner
v-if=
"isShowTrans"
>
<q-select
style=
"margin-top:20px;"
filled
v-model=
"TransferMsg.EmpId"
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
:rules=
"[val => !!val || '请选择接收人']"
ref=
"transfer"
/>
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"saveTransForm"
/>
</q-banner>
</q-popup-proxy>
</q-btn>
</div>
<div
class=
"info-content"
>
<div
class=
"detail-info"
>
<baseInfo
:Data=
"detailData"
@
confirm=
"saveBaseInfo"
></baseInfo>
</div>
<div
class=
"detail-log"
>
<right
:Id=
"rowId"
></right>
<right
:Id=
"rowId"
:tabId=
"tabId"
></right>
</div>
</div>
</div>
<div
class=
"dialog-out-close"
@
click=
"closeAuditCustomerForm"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<div
class=
"dialog-out-close"
@
click=
"closeAuditCustomerForm"
style=
"height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<q-icon
name=
"iconfont icon-jujue1"
size=
"26px"
/>
</div>
</q-dialog>
</
template
>
<
script
>
import
{
GetCustomer
,
SetCustomer
}
from
"../../../api/sale/peemanagement"
;
import
baseInfo
from
'./baseInfo.vue'
import
right
from
'./conRight.vue'
export
default
{
import
{
GetCustomer
,
SetCustomer
}
from
"../../../api/sale/peemanagement"
;
import
{
setCustomerCareOf
}
from
"../../../api/sale/peemanagement"
;
import
baseInfo
from
"./baseInfo.vue"
;
import
right
from
"./conRight.vue"
;
export
default
{
components
:
{
baseInfo
,
right
...
...
@@ -52,6 +96,14 @@
auth
:
{
type
:
Object
,
default
:
null
},
empList
:{
type
:
Array
,
default
:()
=>
[]
},
tabId
:{
type
:
Number
,
default
:
1
}
},
data
()
{
...
...
@@ -73,17 +125,27 @@
WeChatName
:
""
,
WeChatPhoto
:
""
,
CustomerType
:
1
,
EnterpriseName
:
""
,
EnterpriseName
:
""
},
}
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
isShowTrans
:
false
,
TransferMsg
:
{
CustomerIds
:
""
,
EmpId
:
""
},
};
},
mounted
()
{
this
.
initObj
()
this
.
initObj
();
this
.
employeeList
=
this
.
empList
this
.
myEmployeeList
=
this
.
empList
},
methods
:
{
//关闭弹窗
closeAuditCustomerForm
()
{
this
.
$emit
(
'close'
);
this
.
$emit
(
"close"
);
this
.
persistent
=
false
;
},
//初始化表单
...
...
@@ -91,7 +153,7 @@
if
(
this
.
rowId
>
0
)
{
let
msg
=
{
CustomerId
:
this
.
rowId
}
};
GetCustomer
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
let
tempData
=
res
.
Data
;
...
...
@@ -112,28 +174,28 @@
this
.
detailData
.
CustomerType
=
tempData
.
CustomerType
;
this
.
detailData
.
EnterpriseName
=
tempData
.
EnterpriseName
;
}
})
});
}
else
{
this
.
detailData
.
CustomerId
=
0
;
this
.
detailData
.
CustomerName
=
''
;
this
.
detailData
.
ContactNumber
=
''
;
this
.
detailData
.
CustomerName
=
""
;
this
.
detailData
.
ContactNumber
=
""
;
this
.
detailData
.
Sex
=
1
;
this
.
detailData
.
Fax
=
''
;
this
.
detailData
.
QQ
=
''
;
this
.
detailData
.
Email
=
''
;
this
.
detailData
.
Address
=
''
;
this
.
detailData
.
Account
=
''
;
this
.
detailData
.
Remark
=
''
;
this
.
detailData
.
OpenId
=
''
;
this
.
detailData
.
UnionId
=
''
;
this
.
detailData
.
WeChatName
=
''
;
this
.
detailData
.
WeChatPhoto
=
''
;
this
.
detailData
.
Fax
=
""
;
this
.
detailData
.
QQ
=
""
;
this
.
detailData
.
Email
=
""
;
this
.
detailData
.
Address
=
""
;
this
.
detailData
.
Account
=
""
;
this
.
detailData
.
Remark
=
""
;
this
.
detailData
.
OpenId
=
""
;
this
.
detailData
.
UnionId
=
""
;
this
.
detailData
.
WeChatName
=
""
;
this
.
detailData
.
WeChatPhoto
=
""
;
this
.
detailData
.
CustomerType
=
1
;
this
.
detailData
.
EnterpriseName
=
''
;
this
.
detailData
.
EnterpriseName
=
""
;
}
},
saveBaseInfo
(
obj
)
{
this
.
detailData
[
obj
.
field
]
=
obj
.
val
saveBaseInfo
(
obj
)
{
this
.
detailData
[
obj
.
field
]
=
obj
.
val
;
SetCustomer
(
this
.
detailData
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
...
...
@@ -141,19 +203,41 @@
color
:
"accent"
,
timeout
:
2000
,
message
:
"数据保存成功!"
,
position
:
"top"
,
position
:
"top"
});
this
.
$emit
(
"success"
);
}
})
}
});
},
//同业转交
saveTransForm
()
{
this
.
$refs
.
transfer
.
validate
();
if
(
this
.
$refs
.
transfer
.
hasError
)
return
;
this
.
TransferMsg
.
CustomerIds
=
this
.
rowId
setCustomerCareOf
(
this
.
TransferMsg
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"转交成功"
,
position
:
"top"
});
this
.
isShowTrans
=
false
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.info-content-component
{
.info-content-component
{
display
:
flex
;
flex-direction
:
column
;
width
:
1010px
;
...
...
@@ -196,6 +280,5 @@
overflow
:
hidden
;
}
}
}
}
</
style
>
src/components/sale/b2bcustomerinfo/b2bOrderlist.vue
View file @
09607817
<!--订单列表-->
<
template
>
<div
class=
"classorder"
>
<div
class=
"
b2b
classorder"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-
tow-
column-table"
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"Id"
>
<
!--
<template
v-slot:body-cell-StuIcon
=
"props"
>
<
template
v-slot:body-cell-OrderId
=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
</q-avatar>
<q-avatar
size=
"md"
color=
"teal-10"
text-color=
"white"
v-if=
"!props.value"
>
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar
>
<div
style=
"color:var(--q-color-primary)"
@
click=
"goOrderdetails(props.row,1)"
>
{{
props
.
row
.
OrderId
}}
</div>
</q-td>
</
template
>
-->
</
template
>
<
template
v-slot:body-cell-GuestList=
"props"
>
<q-td
auto-width
:props=
"props"
>
<div
class=
"q-ma-xs"
v-for=
"(item,index) in props.row.GuestList"
:key=
"index"
>
{{
item
.
GuestName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
<div
style=
"height:1px"
></div>
</
template
>
</q-table>
<!--修改课程订单-->
...
...
@@ -86,7 +77,7 @@
</viewquotation-form>
<!--合同信息-->
<eduinfo-form
v-if=
"isShowEduForm"
:seting-obj=
"eduObj"
@
close=
"closeEdudia"
@
success=
"refreshPage"
>
<eduinfo-form
v-if=
"isShowEduForm"
:seting-obj=
"eduObj"
@
close=
"closeEdudia"
@
success=
"refreshPage"
style=
"margin:0"
>
</eduinfo-form>
<div
v-if=
"isShowContract"
class=
"_show_img_box"
@
click=
"(isShowContract = false), (imgViewList = [])"
>
<div
style=
"
...
...
@@ -157,7 +148,7 @@
//正常订单
dataList
:
{
type
:
Array
,
default
:
null
default
:
()
=>
[]
},
//取消订单
cancelList
:
{
...
...
@@ -251,63 +242,56 @@
imgViewUrl
:
''
,
imgViewList
:
[],
initialIndex
:
0
,
loading
:
false
,
columns
:
[
{
name
:
"
StuIcon
"
,
label
:
""
,
field
:
"
StuIcon
"
,
name
:
"
OrderId
"
,
label
:
"
订单号
"
,
field
:
"
OrderId
"
,
align
:
"left"
},
{
name
:
"StuName"
,
required
:
true
,
label
:
"昵称"
,
name
:
"ClassName"
,
label
:
"班级"
,
align
:
"left"
,
field
:
row
=>
row
.
StuName
field
:
"ClassName"
},
{
name
:
"
StuSex
"
,
label
:
"
性别
"
,
field
:
"
StuSex
"
,
name
:
"
CourseName
"
,
label
:
"
课程
"
,
field
:
"
CourseName
"
,
align
:
"left"
},
{
name
:
"
StuBirthStr
"
,
label
:
"
出生日期
"
,
field
:
"
StuBirthStr
"
,
align
:
"left"
name
:
"
PreferPrice
"
,
label
:
"
应收
"
,
field
:
"
PreferPrice
"
,
align
:
"left"
,
},
{
name
:
"
StuTel
"
,
label
:
"
手机号码
"
,
field
:
"
StuTel
"
,
name
:
"
DiscountMoney
"
,
label
:
"
实收
"
,
field
:
"
DiscountMoney
"
,
align
:
"left"
},
{
name
:
"
CreateTypeStr
"
,
label
:
"
客户来源
"
,
field
:
"
CreateTypeStr
"
,
name
:
"
OrderStateName
"
,
label
:
"
状态
"
,
field
:
"
OrderStateName
"
,
align
:
"left"
},
{
name
:
"
StuStageName
"
,
label
:
"
客户阶段
"
,
field
:
"
StuStageName
"
,
name
:
"
GuestList
"
,
label
:
"
学生名单
"
,
field
:
"
GuestList
"
,
align
:
"left"
},
{
name
:
"CreateTimeStr"
,
label
:
"创建时间"
,
field
:
"CreateTimeStr"
,
align
:
"left"
}
// {
// name: "CreateByName",
// label: "负责人",
// align: "left",
// field: "CreateByName"
// }
],
msg
:{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
},
}
},
created
()
{
...
...
@@ -966,27 +950,27 @@
list-style-type
:
none
;
}
.classorder
ul
{
.
b2b
classorder
ul
{
padding
:
0px
}
.classorder
.price-popup
{
.
b2b
classorder
.price-popup
{
border-radius
:
4px
;
}
.classorder
.el-range-editor
.el-range-input
{
.
b2b
classorder
.el-range-editor
.el-range-input
{
background
:
none
;
}
.classorder
.el-range-editor.el-input__inner
{
.
b2b
classorder
.el-range-editor.el-input__inner
{
background-color
:
transparent
;
}
.classorder
.q-mb-md
{
.
b2b
classorder
.q-mb-md
{
margin-bottom
:
0
;
}
.classorder
.stics
{
.
b2b
classorder
.stics
{
padding
:
10px
20px
;
background
:
#DDDEE0
;
border-radius
:
4px
;
...
...
@@ -995,84 +979,31 @@
font-weight
:
bold
}
.classorder
.stics
.stics-name
{
.
b2b
classorder
.stics
.stics-name
{
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
10px
}
.classorder
.tis
{
.
b2b
classorder
.tis
{
margin
:
10px
0
;
align-items
:
center
}
.classorder
.tis
.tis-k
{
.
b2b
classorder
.tis
.tis-k
{
width
:
10px
;
height
:
10px
;
margin-right
:
8px
}
.classorder
.tis
span
{
.
b2b
classorder
.tis
span
{
font-size
:
14px
;
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
20px
}
.classorder
table
{
padding
:
10px
0
;
width
:
100%
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
.classorder
table
th
{
background-color
:
#ededed
;
height
:
34px
;
text-indent
:
15px
;
}
.classorder
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
rgba
(
138
,
138
,
138
,
0.09
);
text-align
:
center
;
}
.classorder
table
._color_666
{
color
:
#666666
;
}
.classorder
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
.classorder
table
th
{
background-color
:
#ededed
;
height
:
34px
;
text-indent
:
15px
;
}
.classorder
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
/*border: 1px solid #d2d2d2;*/
}
.classorder
table
._color_666
{
color
:
#666666
;
}
.classorder
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
.classorder
.enrollTotalSearchTable
{
.b2bclassorder
.enrollTotalSearchTable
{
width
:
100%
;
font-size
:
14px
;
color
:
#333
;
...
...
@@ -1081,38 +1012,38 @@
border-collapse
:
collapse
;
}
.classorder
.enrollTotalSearchTable
tr
{
.
b2b
classorder
.enrollTotalSearchTable
tr
{
/* border-bottom: 2px solid #333; */
}
.classorder
.enrollTotalSearchTable
tr
th
{
.
b2b
classorder
.enrollTotalSearchTable
tr
th
{
background
:
#DDDEE0
;
height
:
30px
;
font-size
:
12px
;
text-align
:
center
;
}
.classorder
.enrollTotalSearchTable
tr
{
.
b2b
classorder
.enrollTotalSearchTable
tr
{
background
:
#fff
;
text-align
:
left
;
}
.classorder
.enrollTotalSearchTable
tbody
tr
:last-child
{
.
b2b
classorder
.enrollTotalSearchTable
tbody
tr
:last-child
{
border-bottom
:
2px
solid
#333
;
}
.classorder
.enrollTotalSearchTable
tr
:first-child
td
:first-child
{
.
b2b
classorder
.enrollTotalSearchTable
tr
:first-child
td
:first-child
{
border-bottom
:
2px
solid
#333
;
}
.classorder
.enrollTotalSearchTable
tr
td
{
.
b2b
classorder
.enrollTotalSearchTable
tr
td
{
height
:
66px
;
padding
:
10px
;
/*border-top: 1px solid #cccccc;*/
/*border-left: 1px solid #cccccc;*/
}
.classorder
.enrollTotalSearchTable
tr
td
>
img
{
.
b2b
classorder
.enrollTotalSearchTable
tr
td
>
img
{
width
:
32px
;
height
:
32px
;
border-radius
:
16px
;
...
...
@@ -1120,16 +1051,16 @@
margin-right
:
5px
;
}
.classorder
.enrollTotalSearchTable
tr
td
p
{
.
b2b
classorder
.enrollTotalSearchTable
tr
td
p
{
line-height
:
20px
;
}
.classorder
.remarks
{
.
b2b
classorder
.remarks
{
font-size
:
14px
;
color
:
#2D2D2D
;
}
.classorder
.remarks-b
{
.
b2b
classorder
.remarks-b
{
width
:
100%
;
height
:
94px
;
background
:
#F0F5FB
;
...
...
@@ -1145,18 +1076,18 @@
-webkit-box-orient
:
vertical
;
}
.classorder
.remarks-b-b
{
.
b2b
classorder
.remarks-b-b
{
text-align
:
right
;
position
:
absolute
;
right
:
0px
;
bottom
:
0px
}
.classorder
.on-left
{
.
b2b
classorder
.on-left
{
margin-right
:
5px
;
}
.classorder
.finance
{
.
b2b
classorder
.finance
{
padding
:
1px
10px
;
align-items
:
center
;
justify-content
:
center
;
...
...
@@ -1164,7 +1095,7 @@
margin
:
5px
3px
3px
0
;
}
.classorder
.order_OfferId
{
.
b2b
classorder
.order_OfferId
{
font-size
:
18px
;
color
:
#2961FE
;
margin-bottom
:
10px
;
...
...
@@ -1196,7 +1127,7 @@
overflow-y
:
auto
;
}
.classorder
.redstyle
{
.
b2b
classorder
.redstyle
{
color
:
var
(
--q-color-negative
);
}
...
...
@@ -1207,3 +1138,26 @@
}
</
style
>
<
style
lang=
"scss"
>
.
b2bclassorder
:
:-
webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-thumb
:
hover
{
background
:
#999
;
}
.
b2bclassorder
:
:-
webkit-scrollbar-corner
{
background
:
#204754
;
}
.b2bclassorder
.q-table__bottom
{
min-height
:
0px
;
}
</
style
>
\ No newline at end of file
src/components/sale/b2bcustomerinfo/baseInfo.vue
View file @
09607817
...
...
@@ -79,21 +79,6 @@
<span>
企业/学校名称
</span>
<span>
{{
Data
.
EnterpriseName
}}
</span>
</div>
<!-- 账号 -->
<!--
<div
class=
"q-my-sm"
v-if=
"editField=='Account'"
>
<div
class=
"flex justify-between items-center q-mb-sm"
>
<span>
账号
</span>
<div>
<q-btn
size=
"sm"
text-color=
"primary"
label=
"取消"
@
click=
"showEdit('')"
></q-btn>
<q-btn
size=
"sm"
color=
"primary"
label=
"确定"
class=
"q-ml-sm"
@
click=
"save('Account',Data.Account)"
></q-btn>
</div>
</div>
<q-input
outlined
dense
v-model=
"Data.Account"
:rules=
"[val => !!val || '请输入账号']"
></q-input>
</div>
<div
class=
"flex justify-between items-center q-my-lg"
v-else
@
click=
"showEdit('Account')"
>
<span>
账号
</span>
<span>
{{
Data
.
Account
}}
</span>
</div>
-->
<!-- 详细地址 -->
<div
class=
"q-my-sm"
v-if=
"editField=='Address'"
>
<div
class=
"flex justify-between items-center q-mb-sm"
>
...
...
src/components/sale/b2bcustomerinfo/conRight.vue
View file @
09607817
...
...
@@ -4,45 +4,49 @@
v-model=
"tabs"
active-color=
"primary"
align=
"left"
style=
"width:350px;margin-bottom:2
0px;"
style=
"width:40
0px;"
>
<q-tab
:name=
"1"
label=
"操作日志"
/>
<q-tab
:name=
"2"
label=
"客户"
/>
<q-tab
:name=
"3"
label=
"订单"
/>
<q-tab
:name=
"4"
label=
"幸福存折"
/>
<q-tab
:name=
"4"
label=
"返佣"
/>
<q-tab
:name=
"5"
label=
"幸福存折"
/>
</q-tabs>
<div
class=
"q-mb-lg"
>
<log
:Id=
"Id"
v-if=
"tabs===1"
></log>
<customer
:Id=
"Id"
v-if=
"tabs===2"
></customer>
<order
:Id=
"Id"
v-if=
"tabs===3"
></order>
<log
:Id=
"Id"
v-if=
"tabs === 1"
></log>
<customer
:Id=
"Id"
v-if=
"tabs === 2"
></customer>
<order
:Id=
"Id"
v-if=
"tabs === 3"
></order>
<rakeback
:Id=
"Id"
v-if=
"tabs === 4"
:type=
"type"
></rakeback>
<passbook
:Id=
"Id"
v-if=
"tabs === 5"
:type=
"type"
></passbook>
</div>
</div>
</
template
>
<
script
>
import
log
from
'./log.vue'
import
customer
from
'./customer'
import
order
from
'./order'
export
default
{
components
:
{
log
,
customer
,
order
},
import
log
from
"./log.vue"
;
import
customer
from
"./customer"
;
import
order
from
"./order"
;
import
passbook
from
"./passbook"
;
import
rakeback
from
"./rakeback"
;
export
default
{
components
:
{
log
,
customer
,
order
,
rakeback
,
passbook
},
props
:
{
Id
:
{
type
:
Number
,
default
:
0
},
tabId
:
{
type
:
Number
,
default
:
1
}
},
data
()
{
return
{
tabs
:
1
,
}
tabs
:
1
,
type
:
1
};
},
created
()
{},
mounted
()
{
this
.
tabs
=
this
.
tabId
},
methods
:
{
},
}
};
</
script
>
src/components/sale/b2bcustomerinfo/customer.vue
View file @
09607817
...
...
@@ -37,7 +37,7 @@
:columns=
"columns"
row-key=
"Id"
>
<template
v-slot:body-cell-StuIcon=
"props"
>
<
!--
<
template
v-slot:body-cell-StuIcon=
"props"
>
<q-td
auto-width
:props=
"props"
>
<q-avatar
size=
"md"
v-if=
"props.value"
>
<img
:src=
"props.value"
/>
...
...
@@ -51,7 +51,7 @@
{{
props
.
row
.
StuName
.
substring
(
0
,
1
)
}}
</q-avatar
>
</q-td>
</
template
>
</
template
>
-->
<
template
v-slot:body-cell-StuName=
"props"
>
<q-td
:props=
"props"
>
<div
class=
"text-blue cursor-pointer"
@
click=
"getStuRight(props.row)"
>
...
...
@@ -119,12 +119,12 @@ export default {
list
:
[],
pageCount
:
0
,
columns
:
[
{
name
:
"StuIcon"
,
label
:
""
,
field
:
"StuIcon"
,
align
:
"left"
},
//
{
//
name: "StuIcon",
//
label: "",
//
field: "StuIcon",
//
align: "left"
//
},
{
name
:
"StuName"
,
required
:
true
,
...
...
@@ -217,7 +217,6 @@ export default {
StuNum
:
total
};
this
.
stagelist
.
unshift
(
obj
);
console
.
log
(
"tag"
,
this
.
stagelist
);
});
},
changePage
(
val
)
{
...
...
src/components/sale/b2bcustomerinfo/order.vue
View file @
09607817
<
template
>
<div
class=
" myOrder q-pb-lg"
>
<div
class=
"row wrap q-gutter-xs"
v-if=
"data.Statistics"
>
<div
class=
"
col-3
stics"
>
<div
class=
"row wrap q-gutter-xs
q-my-xs
"
v-if=
"data.Statistics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
应收款
</span>
<span>
{{
data
.
Statistics
.
PreferPrice
?
data
.
Statistics
.
PreferPrice
:
0
}}
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
实收款
</span>
<span>
{{
data
.
Statistics
.
Income
}}
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
待收款
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
Statistics
.
DueInMoney
}}
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
收客人数
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
Statistics
.
GuestNum
}}
人
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
取消人数
</span>
<span>
{{
data
.
Statistics
.
CancelNum
}}
人
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
提成金额
</span>
<span>
{{
data
.
Statistics
.
CommissionMoney
}}
</span>
</div>
<div
class=
"
col-3
stics"
>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
额外奖励
</span>
<span>
{{
data
.
Statistics
.
ExtraRewardMoney
}}
</span>
</div>
</div>
<div
class=
"row col"
style=
"justify-content: flex-end"
>
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #2961FE"
></div>
<span>
已打单
</span>
</div>
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #02C499"
></div>
<span>
平台出纳已审核
</span>
</div>
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #F28C1D"
></div>
<span>
银行出纳已审核
</span>
</div>
<div
class=
"row tis"
>
<div
class=
"tis-k"
style=
"background: #3FC4FF"
></div>
<span>
已通过
</span>
</div>
</div>
<div
style=
"width:100%;overflow:auto"
>
<orderlist
:dataList=
"data.List"
...
...
@@ -404,7 +387,7 @@ li {
}
.myOrder
.stics
{
padding
:
10px
20px
;
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
...
...
src/components/sale/b2bcustomerinfo/passbook.vue
0 → 100644
View file @
09607817
<
template
>
<div
class=
"passbook"
>
<div
class=
"row wrap q-gutter-xs q-my-xs"
>
<div
class=
"stics"
>
<span
class=
"stics-name"
>
累计
</span>
<span>
{{
data
.
TotalMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
已提现
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
RemitMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
可提现
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
SurplusMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
未结算
</span>
<span>
{{
data
.
NotSettlementMoney
}}
</span>
</div>
</div>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
{{
props
.
row
.
ClassName
}}
【
{{
props
.
row
.
ClassNo
}}
】
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
</template>
<
script
>
import
{
getCustomerCommissionPassbook
,
GetCustomerBalanceDetailPage
}
from
"../../../api/sale/peemanagement"
;
export
default
{
props
:
{
type
:
{
//1返佣 2幸福存折
type
:
Number
,
default
:
1
},
Id
:
{
//1返佣 2幸福存折
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
msg
:
{
CustomerId
:
0
,
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
RebateType
:
2
,
Description
:
""
},
pageCount
:
0
,
data
:{},
dataList
:
[],
columns
:
[
{
name
:
"BalanceTypeStr"
,
label
:
"类型"
,
field
:
"BalanceTypeStr"
,
align
:
"left"
},
{
name
:
"Money"
,
label
:
"变更金额"
,
align
:
"left"
,
field
:
"Money"
},
{
name
:
"Description"
,
label
:
"变更详情"
,
field
:
"Description"
,
align
:
"left"
},
{
name
:
"ClassName"
,
label
:
"班级信息"
,
field
:
"ClassName"
,
align
:
"left"
},
{
name
:
"OrderId"
,
label
:
"订单编号"
,
field
:
"OrderId"
,
align
:
"left"
},
{
name
:
"PeopleNum"
,
label
:
"订单人数"
,
field
:
"PeopleNum"
,
align
:
"left"
},
{
name
:
"BalanceStateStr"
,
label
:
"返佣"
,
field
:
"BalanceStateStr"
,
align
:
"left"
},
{
name
:
"RemitStr"
,
label
:
"提现"
,
field
:
"RemitStr"
,
align
:
"left"
},
{
name
:
"UpdateTimeStr"
,
label
:
"更新时间"
,
field
:
"UpdateTimeStr"
,
align
:
"left"
}
]
};
},
mounted
()
{
this
.
getData
();
this
.
getList
();
},
methods
:
{
getData
()
{
const
msg
=
{
CustomerId
:
this
.
Id
,
Type
:
this
.
type
};
getCustomerCommissionPassbook
(
msg
).
then
(
res
=>
{
console
.
log
(
29
,
res
);
this
.
data
=
res
.
Data
});
},
//获取数据
getList
()
{
this
.
loading
=
true
;
GetCustomerBalanceDetailPage
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
console
.
log
(
30
,
res
);
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
}
}
};
</
script
>
<
style
>
.passbook
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.passbook
::-webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.passbook
::-webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.passbook
::-webkit-scrollbar-thumb:hover
{
background
:
#999
;
}
.passbook
::-webkit-scrollbar-corner
{
background
:
#204754
;
}
.passbook
.stics
{
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
;
white-space
:
nowrap
;
}
.passbook
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
</
style
>
src/components/sale/b2bcustomerinfo/rakeback.vue
0 → 100644
View file @
09607817
<
template
>
<div
class=
"passbook"
>
<div
class=
"row wrap q-gutter-xs q-my-xs "
>
<div
class=
"stics"
>
<span
class=
"stics-name"
>
累计
</span>
<span>
{{
data
.
TotalMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
已提现
</span>
<span
style=
"color: #F72E52"
>
{{
data
.
RemitMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
可提现
</span>
<span
style=
"color:#2961FE;"
>
{{
data
.
SurplusMoney
}}
</span>
</div>
<div
class=
" stics"
>
<span
class=
"stics-name"
>
未结算
</span>
<span>
{{
data
.
NotSettlementMoney
}}
</span>
</div>
</div>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
style=
"padding-right: 0px"
>
{{
props
.
row
.
ClassName
}}
【
{{
props
.
row
.
ClassNo
}}
】
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
</template>
<
script
>
import
{
getCustomerCommissionPassbook
,
GetCustomerBalanceDetailPage
}
from
"../../../api/sale/peemanagement"
;
export
default
{
props
:
{
type
:
{
//1返佣 2幸福存折
type
:
Number
,
default
:
1
},
Id
:
{
//1返佣 2幸福存折
type
:
Number
,
default
:
0
}
},
data
()
{
return
{
loading
:
false
,
msg
:
{
CustomerId
:
0
,
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
RebateType
:
2
,
Description
:
""
},
pageCount
:
0
,
data
:
{},
dataList
:
[],
columns
:
[
{
name
:
"BalanceTypeStr"
,
label
:
"类型"
,
field
:
"BalanceTypeStr"
,
align
:
"left"
},
{
name
:
"Money"
,
label
:
"变更金额"
,
align
:
"left"
,
field
:
"Money"
},
{
name
:
"Description"
,
label
:
"变更详情"
,
field
:
"Description"
,
align
:
"left"
},
{
name
:
"ClassName"
,
label
:
"班级信息"
,
field
:
"ClassName"
,
align
:
"left"
},
{
name
:
"OrderId"
,
label
:
"订单编号"
,
field
:
"OrderId"
,
align
:
"left"
},
{
name
:
"PeopleNum"
,
label
:
"订单人数"
,
field
:
"PeopleNum"
,
align
:
"left"
},
{
name
:
"BalanceStateStr"
,
label
:
"返佣"
,
field
:
"BalanceStateStr"
,
align
:
"left"
},
{
name
:
"RemitStr"
,
label
:
"提现"
,
field
:
"RemitStr"
,
align
:
"left"
},
{
name
:
"UpdateTimeStr"
,
label
:
"更新时间"
,
field
:
"UpdateTimeStr"
,
align
:
"left"
}
]
};
},
mounted
()
{
this
.
getData
();
this
.
getList
();
},
methods
:
{
getData
()
{
const
msg
=
{
CustomerId
:
this
.
Id
,
Type
:
this
.
type
};
getCustomerCommissionPassbook
(
msg
).
then
(
res
=>
{
console
.
log
(
29
,
res
);
this
.
data
=
res
.
Data
;
});
},
//获取数据
getList
()
{
this
.
loading
=
true
;
GetCustomerBalanceDetailPage
(
this
.
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
}
}
};
</
script
>
<
style
>
.passbook
::-webkit-scrollbar
{
width
:
5px
;
height
:
5px
;
}
.passbook
::-webkit-scrollbar-track
{
background
:
#fff
;
border-radius
:
2px
;
}
.passbook
::-webkit-scrollbar-thumb
{
background
:
#444
;
border-radius
:
10px
;
}
.passbook
::-webkit-scrollbar-thumb:hover
{
background
:
#999
;
}
.passbook
::-webkit-scrollbar-corner
{
background
:
#204754
;
}
.passbook
.stics
{
padding
:
5px
10px
;
background
:
#dddee0
;
border-radius
:
4px
;
font-size
:
14px
;
color
:
#000000
;
font-weight
:
bold
;
white-space
:
nowrap
;
}
.passbook
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
</
style
>
src/components/sale/b2bcustomlist.vue
View file @
09607817
<
style
lang=
"scss"
>
.b2bcustomlist
.q-table__bottom
{
.b2bcustomlist
.q-table__bottom
{
min-height
:
0
;
}
.CustomerName
{
}
.CustomerName
{
cursor
:
pointer
;
color
:var
(
--q-color-primary
)
;
}
color
:
var
(
--
q-color-primary
)
;
}
</
style
>
<
template
>
<div
class=
"b2bcustomlist"
>
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
selection =
"multiple"
:selected
.
sync=
"selection"
class=
"sticky-column-table sticky-right-column-table "
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"CustomerId"
>
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
selection=
"multiple"
:selected
.
sync=
"selection"
class=
"sticky-column-table sticky-right-column-table "
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
"CustomerId"
>
<template
v-slot:top=
"props"
>
<q-space
/>
<div
class=
"page-option"
v-if=
"authObj.isShowEdit"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
@
click=
"EditCustom(null)"
label=
"新增客户"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"swap_horiz"
:disable =
"selection.length==0"
label=
"转移"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
@
click=
"EditCustom(null)"
label=
"新增客户"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"转交"
:disable=
"selection.length == 0"
icon=
"swap_horiz"
@
click=
"isShowTrans = true"
>
<q-popup-proxy
:offset=
"[10, 10]"
>
<q-banner
v-if=
"isShowTrans"
>
<q-select
style=
"margin-top:20px;"
filled
v-model=
"TransferMsg.EmpId"
@
filter=
"filterEmployee"
use-input
:options=
"myEmployeeList"
option-label=
"EmployeeName"
option-value=
"Id"
emit-value
map-options
:rules=
"[val => !!val || '请选择接收人']"
ref=
"transfer"
/>
<q-btn
label=
"保存"
style=
"float:right;margin-top:15px"
color=
"accent q-mb-lg"
size=
"sm"
@
click=
"saveTransForm"
/>
</q-banner>
</q-popup-proxy>
</q-btn>
</div>
</
template
>
<
template
v-slot:body-cell-CustomerName=
"props"
>
<q-td>
<div
class=
"CustomerName"
@
click=
"showDetail(props.row)"
>
{{
props
.
row
.
CustomerName
}}
{{
props
.
row
.
CustomerName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-StuNum=
"props"
>
<q-td>
<div
class=
"CustomerName"
@
click=
"showDetail(props.row,2)"
>
{{
props
.
row
.
StuNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-OrderNum=
"props"
>
<q-td>
<div
class=
"CustomerName"
@
click=
"showDetail(props.row,3)"
>
{{
props
.
row
.
OrderNum
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CustomerType=
"props"
>
<q-td>
<div
v-if=
"props.row.CustomerType
===
1"
>
企业
</div>
<div
v-if=
"props.row.CustomerType
===
2"
>
学校
</div>
<div
v-if=
"props.row.CustomerType
===
1"
>
企业
</div>
<div
v-if=
"props.row.CustomerType
===
2"
>
学校
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
style=
"width:200px;"
>
<q-btn
flat
v-if=
"(props.row.ApproveState==0||props.row.ApproveState==2)&&authObj.isShowAudit"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"客户审批"
@
click=
"AuditCustomer(props.row,1)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCustom(props.row)"
/>
<q-btn
flat
v-if=
"props.row.ApproveState==0 && AuthorityObj.isShowEdit"
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"RemoveCustomer(props.row)"
/>
<q-btn
flat
v-if=
"AuthorityObj.isShowBankBook"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"幸福存折"
@
click=
"gohappyPassbook(props.row)"
/>
<q-btn
flat
v-if=
"AuthorityObj.isShowRebate"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"返佣管理"
@
click=
"gohappyCommisson(props.row)"
/>
<q-td
:props=
"props"
>
<q-btn
flat
v-if=
"
(props.row.ApproveState == 0 || props.row.ApproveState == 2) &&
authObj.isShowAudit
"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"客户审批"
@
click=
"AuditCustomer(props.row, 1)"
/>
<!--
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCustom(props.row)"
/>
-->
<q-btn
flat
v-if=
"props.row.ApproveState == 0 && AuthorityObj.isShowEdit"
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"RemoveCustomer(props.row)"
/>
<!--
<q-btn
flat
v-if=
"AuthorityObj.isShowBankBook"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"幸福存折"
@
click=
"gohappyPassbook(props.row)"
/>
<q-btn
flat
v-if=
"AuthorityObj.isShowRebate"
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"返佣管理"
@
click=
"gohappyCommisson(props.row)"
/>
-->
</q-td>
</
template
>
<
template
v-slot:bottom
>
<div></div>
</
template
>
</q-table>
<customerEdit-form
v-if=
"isShowCustomForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
@
success=
"refreshQuestion"
>
<customerEdit-form
v-if=
"isShowCustomForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
@
success=
"refreshQuestion"
>
</customerEdit-form>
<customerReview-form
v-if=
"isShowRightForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
@
success=
"refreshQuestion"
></customerReview-form>
<customerInfo
v-if=
"isShowDetailForm"
:rowId=
"curRowId"
@
close=
"closeCustomForm"
:auth=
"AuthorityObj"
@
success=
"refreshQuestion"
></customerInfo>
<customerReview-form
v-if=
"isShowRightForm"
:customerObj=
"customerObj"
@
close=
"closeCustomForm"
@
success=
"refreshQuestion"
></customerReview-form>
<customerInfo
v-if=
"isShowDetailForm"
:rowId=
"curRowId"
:tabId=
"tabId"
:empList=
"employeeList"
@
close=
"closeCustomForm"
:auth=
"AuthorityObj"
@
success=
"refreshQuestion"
></customerInfo>
</div>
</template>
<
script
>
import
customerEditForm
from
'../sale/customerEdit-form'
;
import
customerReviewForm
from
'../sale/customerReview-form'
;
import
customerInfo
from
'./b2bcustomerinfo/b2bCustomerInfo.vue'
;
export
default
{
import
{
queryEmployee
}
from
"../../api/users/user"
;
import
{
setCustomerCareOf
}
from
"../../api/sale/peemanagement"
;
import
customerEditForm
from
"../sale/customerEdit-form"
;
import
customerReviewForm
from
"../sale/customerReview-form"
;
import
customerInfo
from
"./b2bcustomerinfo/b2bCustomerInfo.vue"
;
export
default
{
props
:
{
dataList
:
{
type
:
Array
,
...
...
@@ -72,6 +188,10 @@
authObj
:
{
type
:
Object
,
default
:
null
},
empList
:{
type
:
Array
,
default
:()
=>
[]
}
},
components
:
{
...
...
@@ -83,87 +203,97 @@
return
{
columns
:
[
{
name
:
'CustomerName'
,
label
:
'同业名称'
,
field
:
'CustomerName'
,
align
:
'left'
name
:
"CustomerName"
,
label
:
"同业名称"
,
field
:
"CustomerName"
,
align
:
"left"
},
{
name
:
'CustomerType'
,
label
:
'类型'
,
field
:
'CustomerType'
,
align
:
'left'
name
:
"CustomerType"
,
label
:
"类型"
,
field
:
"CustomerType"
,
align
:
"left"
},
{
name
:
'EnterpriseName'
,
label
:
'企业/学校名称'
,
field
:
'EnterpriseName'
,
align
:
'left'
name
:
"EnterpriseName"
,
label
:
"企业/学校名称"
,
field
:
"EnterpriseName"
,
align
:
"left"
},
{
name
:
'ContactNumber'
,
label
:
'电话'
,
field
:
'ContactNumber'
,
align
:
'left'
,
name
:
"ContactNumber"
,
label
:
"电话"
,
field
:
"ContactNumber"
,
align
:
"left"
},
{
name
:
'StuNum'
,
label
:
'客户数量'
,
field
:
'StuNum'
,
align
:
'left'
name
:
"StuNum"
,
label
:
"客户数量"
,
field
:
"StuNum"
,
align
:
"left"
},
{
name
:
'OrderNum'
,
label
:
'订单数量'
,
field
:
'OrderNum'
,
align
:
'left'
name
:
"OrderNum"
,
label
:
"订单数量"
,
field
:
"OrderNum"
,
align
:
"left"
},
{
name
:
'OrderSales'
,
label
:
'交易额'
,
field
:
'OrderSales'
,
align
:
'left'
name
:
"OrderSales"
,
label
:
"交易额"
,
field
:
"OrderSales"
,
align
:
"left"
},
{
name
:
'ApproveStateStr'
,
label
:
'审核状态'
,
field
:
'ApproveStateStr'
,
align
:
'left'
name
:
"ApproveStateStr"
,
label
:
"审核状态"
,
field
:
"ApproveStateStr"
,
align
:
"left"
},
{
name
:
'CreateTimeStr'
,
label
:
'加入时间'
,
field
:
'CreateTimeStr'
,
align
:
'left'
name
:
"CreateTimeStr"
,
label
:
"加入时间"
,
field
:
"CreateTimeStr"
,
align
:
"left"
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'QuestionId'
name
:
"optioned"
,
label
:
"操作"
,
field
:
"QuestionId"
}
],
pageMsg
:
{
rowsPerPage
:
12
,
rowsPerPage
:
12
},
loading
:
false
,
isShowCustomForm
:
false
,
isShowRightForm
:
false
,
customerObj
:
null
,
//传入参数
isShowDetailForm
:
false
,
curRowId
:
0
,
isShowDetailForm
:
false
,
curRowId
:
0
,
//权限设置
AuthorityObj
:
{
isShowEdit
:
false
,
//是否显示新增修改按钮
isShowAudit
:
false
,
//是否显示审批
isShowBankBook
:
false
,
//是否显示幸福存折
isShowRebate
:
false
,
//是否显示返佣
isShowRebate
:
false
//是否显示返佣
},
selection
:[]
}
selection
:
[],
tabId
:
1
,
TransferMsg
:
{
CustomerIds
:
""
,
EmpId
:
""
},
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
isShowTrans
:
false
};
},
created
()
{
this
.
initAuth
();
this
.
getEmployeeList
();
},
mounted
()
{},
methods
:
{
...
...
@@ -176,7 +306,10 @@
if
(
this
.
authObj
.
isShowAudit
!=
null
&&
this
.
authObj
.
isShowAudit
)
{
this
.
AuthorityObj
.
isShowAudit
=
this
.
authObj
.
isShowAudit
;
}
if
(
this
.
authObj
.
isShowBankBook
!=
null
&&
this
.
authObj
.
isShowBankBook
)
{
if
(
this
.
authObj
.
isShowBankBook
!=
null
&&
this
.
authObj
.
isShowBankBook
)
{
this
.
AuthorityObj
.
isShowBankBook
=
this
.
authObj
.
isShowBankBook
;
}
if
(
this
.
authObj
.
isShowRebate
!=
null
&&
this
.
authObj
.
isShowRebate
)
{
...
...
@@ -187,33 +320,38 @@
//新增或者修改客户
EditCustom
(
obj
)
{
if
(
obj
)
{
this
.
customerObj
=
obj
this
.
customerObj
=
obj
;
}
else
{
this
.
customerObj
=
null
this
.
customerObj
=
null
;
}
this
.
isShowCustomForm
=
true
this
.
isShowCustomForm
=
true
;
},
//客户审核
AuditCustomer
(
obj
,
Type
)
{
if
(
obj
)
{
this
.
customerObj
=
obj
this
.
customerObj
=
obj
;
this
.
customerObj
.
Type
=
Type
;
}
else
{
this
.
customerObj
=
null
this
.
customerObj
=
null
;
}
this
.
isShowRightForm
=
true
this
.
isShowRightForm
=
true
;
},
//客户详情
showDetail
(
row
)
{
this
.
curRowId
=
row
.
CustomerId
this
.
isShowDetailForm
=
true
showDetail
(
row
,
tabId
=
1
)
{
this
.
curRowId
=
row
.
CustomerId
;
this
.
tabId
=
tabId
this
.
isShowDetailForm
=
true
;
},
//删除客户
RemoveCustomer
(
obj
)
{
let
that
=
this
;
var
message
=
"您正在进行删除【"
+
obj
.
CustomerName
+
"】行为,一旦执行无法找回,是否确认执行?"
;;
this
.
$q
.
dialog
({
var
message
=
"您正在进行删除【"
+
obj
.
CustomerName
+
"】行为,一旦执行无法找回,是否确认执行?"
;
this
.
$q
.
dialog
({
title
:
"删除客户"
,
message
:
message
,
isShowEditClassRoomForm
:
true
,
...
...
@@ -226,22 +364,23 @@
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
})
.
onOk
(()
=>
{
var
delMsg
=
{
CustomerId
:
obj
.
CustomerId
,
CustomerId
:
obj
.
CustomerId
};
RemoveCustomer
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
'操作成功'
,
position
:
'top'
})
message
:
"操作成功"
,
position
:
"top"
})
;
that
.
refreshQuestion
();
}
})
})
;
});
},
//关闭弹窗
...
...
@@ -251,20 +390,53 @@
this
.
isShowDetailForm
=
false
;
},
refreshQuestion
()
{
this
.
$emit
(
'success'
);
this
.
$emit
(
"success"
);
},
//跳转到幸福存折
gohappyPassbook
(
item
)
{
this
.
OpenNewUrl
(
'/sale/happyPassbook'
,
{
CustomerId
:
item
.
CustomerId
,
// gohappyPassbook(item) {
// this.OpenNewUrl("/sale/happyPassbook", {
// CustomerId: item.CustomerId
// });
// },
//跳转到返佣管理
// gohappyCommisson(item) {
// this.OpenNewUrl("/sale/commsionManagement", {
// CustomerId: item.CustomerId
// });
// },
//同业转交
saveTransForm
()
{
this
.
$refs
.
transfer
.
validate
();
if
(
this
.
$refs
.
transfer
.
hasError
)
return
this
.
TransferMsg
.
CustomerIds
=
this
.
selection
.
map
(
e
=>
e
.
CustomerId
).
toString
()
setCustomerCareOf
(
this
.
TransferMsg
).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
"iconfont icon-chenggong"
,
color
:
"accent"
,
timeout
:
2000
,
message
:
"转交成功"
,
position
:
"top"
});
this
.
isShowTrans
=
false
;
});
},
//跳转到返佣管理
gohappyCommisson
(
item
)
{
this
.
OpenNewUrl
(
'/sale/commsionManagement'
,
{
CustomerId
:
item
.
CustomerId
,
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
}
}
};
</
script
>
src/pages/sale/b2bcustomerapprove.vue
View file @
09607817
...
...
@@ -59,6 +59,7 @@
ContactNumber
:
""
,
//联系电话
ApproveState
:
""
,
//审核状态
CustomerState
:
""
,
//账号状态
CustomerId
:
0
,
},
loading
:
false
,
//审核状态列表
...
...
@@ -80,6 +81,9 @@
},
created
()
{},
mounted
()
{
if
(
this
.
$route
.
query
.
CustomerId
){
this
.
msg
.
CustomerId
=
this
.
$route
.
query
.
CustomerId
}
this
.
getList
();
},
methods
:
{
...
...
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