Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-app-operator-master
Commits
1ad37a34
Commit
1ad37a34
authored
Nov 12, 2024
by
zs嵩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试反馈bug修复
parent
4061ceb8
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
653 additions
and
672 deletions
+653
-672
offer.js
src/api/ecw/offer.js
+52
-45
custom.scss
src/styles/custom.scss
+10
-0
customerFollow.vue
src/views/ecw/customer/components/customerFollow.vue
+51
-27
index.vue
src/views/ecw/customer/index.vue
+18
-19
query.vue
src/views/ecw/customer/query.vue
+1
-1
index.vue
src/views/ecw/customerConfirm/index.vue
+236
-278
index.vue
src/views/ecw/customerToBeAssigned/index.vue
+242
-265
index.vue
src/views/ecw/myCustomerService/index.vue
+25
-25
detail.vue
src/views/ecw/offer/detail.vue
+14
-6
logListCommon.vue
src/views/ecw/offer/logListCommon.vue
+4
-6
No files found.
src/api/ecw/offer.js
View file @
1ad37a34
import
request
from
'
@/utils/request
'
import
request
from
"
@/utils/request
"
// 创建报价单管理
// 创建报价单管理
export
function
createOffer
(
data
)
{
export
function
createOffer
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/create
'
,
url
:
"
/ecw/offer/create
"
,
method
:
'
post
'
,
method
:
"
post
"
,
data
:
data
data
:
data
})
})
}
}
...
@@ -12,8 +12,8 @@ export function createOffer(data) {
...
@@ -12,8 +12,8 @@ export function createOffer(data) {
// 更新报价单管理
// 更新报价单管理
export
function
updateOffer
(
data
)
{
export
function
updateOffer
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/update
'
,
url
:
"
/ecw/offer/update
"
,
method
:
'
put
'
,
method
:
"
put
"
,
data
:
data
data
:
data
})
})
}
}
...
@@ -21,24 +21,24 @@ export function updateOffer(data) {
...
@@ -21,24 +21,24 @@ export function updateOffer(data) {
// 删除报价单管理
// 删除报价单管理
export
function
deleteOffer
(
id
)
{
export
function
deleteOffer
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/delete?id=
'
+
id
,
url
:
"
/ecw/offer/delete?id=
"
+
id
,
method
:
'
delete
'
method
:
"
delete
"
})
})
}
}
// 获得报价单管理
// 获得报价单管理
export
function
getOffer
(
id
)
{
export
function
getOffer
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/get?offerId=
'
+
id
,
url
:
"
/ecw/offer/get?offerId=
"
+
id
,
method
:
'
get
'
method
:
"
get
"
})
})
}
}
// 获得报价单管理分页
// 获得报价单管理分页
export
function
getOfferPage
(
query
)
{
export
function
getOfferPage
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/page
'
,
url
:
"
/ecw/offer/page
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
params
:
query
})
})
}
}
...
@@ -46,36 +46,36 @@ export function getOfferPage(query) {
...
@@ -46,36 +46,36 @@ export function getOfferPage(query) {
// 导出报价单管理 Excel
// 导出报价单管理 Excel
export
function
exportOfferExcel
(
query
)
{
export
function
exportOfferExcel
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/export-excel
'
,
url
:
"
/ecw/offer/export-excel
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
,
params
:
query
,
responseType
:
'
blob
'
responseType
:
"
blob
"
})
})
}
}
// 更新报价单结果
// 更新报价单结果
export
function
updateOfferResult
(
data
)
{
export
function
updateOfferResult
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/update/result
'
,
url
:
"
/ecw/offer/update/result
"
,
method
:
'
put
'
,
method
:
"
put
"
,
data
:
data
data
:
data
})
})
}
}
// 获取费用清单列表
// 获取费用清单列表
export
function
getProductFeeList
(
prodCreateReqVO
){
export
function
getProductFeeList
(
prodCreateReqVO
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/calculation/prod-fee-List
'
,
url
:
"
/ecw/offer/calculation/prod-fee-List
"
,
method
:
'
post
'
,
method
:
"
post
"
,
data
:
prodCreateReqVO
data
:
prodCreateReqVO
})
})
}
}
// 获取费用清单
// 获取费用清单
export
function
getProductFee
(
calculationFeeParamVO
){
export
function
getProductFee
(
calculationFeeParamVO
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/calculation/fee-List
'
,
url
:
"
/ecw/offer/calculation/fee-List
"
,
method
:
'
post
'
,
method
:
"
post
"
,
data
:
calculationFeeParamVO
data
:
calculationFeeParamVO
})
})
}
}
...
@@ -83,8 +83,8 @@ export function getProductFee(calculationFeeParamVO){
...
@@ -83,8 +83,8 @@ export function getProductFee(calculationFeeParamVO){
// 特价申请
// 特价申请
export
function
createOfferSpecial
(
data
)
{
export
function
createOfferSpecial
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/special/apply
'
,
url
:
"
/ecw/offer/special/apply
"
,
method
:
'
put
'
,
method
:
"
put
"
,
data
:
data
data
:
data
})
})
}
}
...
@@ -92,8 +92,8 @@ export function createOfferSpecial(data) {
...
@@ -92,8 +92,8 @@ export function createOfferSpecial(data) {
// 特价详情
// 特价详情
export
function
getOfferSpecial
(
offerProdId
,
params
)
{
export
function
getOfferSpecial
(
offerProdId
,
params
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/special/info/
'
+
offerProdId
,
url
:
"
/ecw/offer/special/info/
"
+
offerProdId
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
...
@@ -101,35 +101,34 @@ export function getOfferSpecial(offerProdId, params) {
...
@@ -101,35 +101,34 @@ export function getOfferSpecial(offerProdId, params) {
// 特价详情
// 特价详情
export
function
getOfferSpecialByApproveId
(
approveId
)
{
export
function
getOfferSpecialByApproveId
(
approveId
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/special/info?approveId=
'
+
approveId
,
url
:
"
/ecw/offer/special/info?approveId=
"
+
approveId
,
method
:
'
get
'
method
:
"
get
"
})
})
}
}
// 取消报价管理
// 取消报价管理
export
function
cancel
(
id
)
{
export
function
cancel
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/cancel
'
,
url
:
"
/ecw/offer/cancel
"
,
method
:
'
delete
'
,
method
:
"
delete
"
,
params
:
{
id
}
params
:
{
id
}
})
})
}
}
// 恢复取消的报价管理
// 恢复取消的报价管理
export
function
recovery
(
id
)
{
export
function
recovery
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/recovery
'
,
url
:
"
/ecw/offer/recovery
"
,
method
:
'
delete
'
,
method
:
"
delete
"
,
params
:
{
id
}
params
:
{
id
}
})
})
}
}
// 获取部门报价单列表
// 获取部门报价单列表
export
function
offerDeptPage
(
params
)
{
export
function
offerDeptPage
(
params
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/dept/page
'
,
url
:
"
/ecw/offer/dept/page
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
...
@@ -137,25 +136,33 @@ export function offerDeptPage(params) {
...
@@ -137,25 +136,33 @@ export function offerDeptPage(params) {
// 导出部分报价单 exportDeptOfferExcel
// 导出部分报价单 exportDeptOfferExcel
export
function
exportDeptOfferExcel
(
query
)
{
export
function
exportDeptOfferExcel
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/dept/export-excel
'
,
url
:
"
/ecw/offer/dept/export-excel
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
,
params
:
query
,
responseType
:
'
blob
'
responseType
:
"
blob
"
})
})
}
}
// 报价单
// 报价单
export
function
getOfferSelect
(
params
)
{
export
function
getOfferSelect
(
params
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/select
'
,
url
:
"
/ecw/offer/select
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
// 报价单
// 报价单
export
function
getOfferCheck
(
params
)
{
export
function
getOfferCheck
(
params
)
{
return
request
({
return
request
({
url
:
'
/ecw/offer/check
'
,
url
:
"
/ecw/offer/check
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
\ No newline at end of file
// 特价详情
export
function
getOfferNumber
(
offerId
)
{
return
request
({
url
:
"
/ecw/offer/getNumber/
"
+
offerId
,
method
:
"
get
"
})
}
src/styles/custom.scss
View file @
1ad37a34
...
@@ -15,3 +15,13 @@
...
@@ -15,3 +15,13 @@
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
.custom-form-1
{
padding-right
:
40px
;
.el-textarea
,
.dict-selector
,
.el-select
{
width
:
100%
;
}
}
src/views/ecw/customer/components/customerFollow.vue
View file @
1ad37a34
<
template
>
<
template
>
<div
class=
"customer-follow"
>
<div
class=
"customer-follow"
>
<el-dialog
append-to-body
:title=
"$t('客户跟进')"
:visible.sync=
"customerFollow.dialogVisible"
:before-close=
"customerFollowClose"
width=
"
9
00px"
>
<el-dialog
append-to-body
:title=
"$t('客户跟进')"
:visible.sync=
"customerFollow.dialogVisible"
:before-close=
"customerFollowClose"
width=
"
12
00px"
>
<el-form
ref=
"customerFollowForm"
:model=
"form"
label-width=
"120px"
>
<el-form
class=
"custom-form-1"
ref=
"customerFollowForm"
:model=
"form"
label-width=
"120px"
>
<el-row
:gutter=
"10"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('编号')"
prop=
"number"
>
<el-form-item
:label=
"$t('编号')"
prop=
"number"
>
<el-input
v-model=
"form.number"
:placeholder=
"$t('请输入编号')"
disabled
/>
<el-input
v-model=
"form.number"
:placeholder=
"$t('请输入编号')"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('跟进状态')"
>
<el-form-item
:label=
"$t('跟进状态')"
>
<el-select
v-model=
"form.status"
:placeholder=
"$t('请选择')"
disabled
>
<el-select
v-model=
"form.status"
:placeholder=
"$t('请选择')"
disabled
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('客户编号')"
>
<el-form-item
:label=
"$t('客户编号')"
>
<el-input
v-model=
"form.customerNumber"
:placeholder=
"$t('请输入客户编号')"
disabled
/>
<el-input
v-model=
"form.customerNumber"
:placeholder=
"$t('请输入客户编号')"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('跟进类型')"
required
>
<el-form-item
:label=
"$t('跟进类型')"
required
>
<el-select
v-model=
"form.followType"
clearable
:placeholder=
"$t('请选择')"
@
change=
"handleFollowType"
:disabled=
"isView || !!offerId"
>
<el-select
v-model=
"form.followType"
clearable
:placeholder=
"$t('请选择')"
@
change=
"handleFollowType"
:disabled=
"isView || !!offerId"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"8"
v-if=
"form.followType == 2"
>
<el-form-item
:label=
"$t('报价单')"
required
prop=
"offerId"
>
<el-input
:value=
"form.offerNumber"
readonly
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"CustomerFollowSelectOffer = true"
v-if=
"!(isView || offerId)"
></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('跟进时间')"
required
>
<el-form-item
:label=
"$t('跟进时间')"
required
>
<el-date-picker
v-model=
"form.followTime"
clearable
type=
"datetime"
:placeholder=
"$t('请选择')"
:disabled=
"isView"
/>
<el-date-picker
v-model=
"form.followTime"
clearable
type=
"datetime"
:placeholder=
"$t('请选择')"
:disabled=
"isView"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
v-if=
"customerId"
>
<el-col
:span=
"
8
"
v-if=
"customerId"
>
<el-form-item
:label=
"$t('联系人')"
required
>
<el-form-item
:label=
"$t('联系人')"
required
>
<el-select
v-model=
"form.contactId"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
@
change=
"changeContactUser"
>
<el-select
v-model=
"form.contactId"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
@
change=
"changeContactUser"
>
<el-option
v-for=
"(item, index) in customerContactsList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
<el-option
v-for=
"(item, index) in customerContactsList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
v-else
>
<el-col
:span=
"
8
"
v-else
>
<el-form-item
:label=
"$t('联系人')"
required
>
<el-form-item
:label=
"$t('联系人')"
required
>
<div
class=
"contact"
>
<div
class=
"contact"
>
<el-input
v-model=
"form.contactName"
:value=
"form.customerContactsId"
placeholder=
""
disabled
/>
<el-input
v-model=
"form.contactName"
:value=
"form.customerContactsId"
placeholder=
""
disabled
/>
...
@@ -48,47 +55,47 @@
...
@@ -48,47 +55,47 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('联系方式')"
>
<el-form-item
:label=
"$t('联系方式')"
>
<el-input
v-model=
"form.contactPhone"
disabled
/>
<el-input
v-model=
"form.contactPhone"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('客户经理')"
required
>
<el-form-item
:label=
"$t('客户经理')"
required
>
<el-select
v-model=
"form.followUserId"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
>
<el-select
v-model=
"form.followUserId"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
>
<el-option
v-for=
"item in serviceUserList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
<el-option
v-for=
"item in serviceUserList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('跟进方式')"
required
>
<el-form-item
:label=
"$t('跟进方式')"
required
>
<dict-selector
ref=
"dictMethod"
v-model=
"form.followMethod"
clearable
:disabled=
"isView"
:type=
"DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD"
></dict-selector>
<dict-selector
ref=
"dictMethod"
v-model=
"form.followMethod"
clearable
:disabled=
"isView"
:type=
"DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD"
></dict-selector>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('上一级跟进单')"
prop=
"parentNumber"
>
<el-form-item
:label=
"$t('上一级跟进单')"
prop=
"parentNumber"
>
<el-input
v-model=
"form.parentNumber"
:placeholder=
"$t('请输入上一级跟进单')"
disabled
/>
<el-input
v-model=
"form.parentNumber"
:placeholder=
"$t('请输入上一级跟进单')"
disabled
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('跟进结果')"
prop=
"followMethod"
>
<el-form-item
:label=
"$t('跟进结果')"
prop=
"followMethod"
>
<el-select
v-model=
"form.resultType"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
>
<el-select
v-model=
"form.resultType"
clearable
:placeholder=
"$t('请选择')"
:disabled=
"isView"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"2
0
"
>
<el-col
:span=
"2
4
"
>
<el-form-item
:label=
"$t('目的')"
prop=
"purpose"
>
<el-form-item
:label=
"$t('目的')"
prop=
"purpose"
>
<el-input
type=
"textarea"
:rows=
"
2
"
v-model=
"form.purpose"
:placeholder=
"$t('请输入目的')"
maxlength=
"200"
show-word-limit
:disabled=
"isView"
/>
<el-input
type=
"textarea"
:rows=
"
3
"
v-model=
"form.purpose"
:placeholder=
"$t('请输入目的')"
maxlength=
"200"
show-word-limit
:disabled=
"isView"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"2
0
"
>
<el-col
:span=
"2
4
"
>
<el-form-item
:label=
"$t('跟进情况')"
>
<el-form-item
:label=
"$t('跟进情况')"
>
<el-input
rows=
"3"
class=
"text_style"
type=
"textarea"
v-model=
"form.feedback"
maxlength=
"500"
show-word-limit
:disabled=
"isView"
/>
<el-input
rows=
"3"
class=
"text_style"
type=
"textarea"
v-model=
"form.feedback"
maxlength=
"500"
show-word-limit
:disabled=
"isView"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"2
0
"
>
<el-col
:span=
"2
4
"
>
<el-form-item
:label=
"$t('附件')"
prop=
"attatchment"
>
<el-form-item
:label=
"$t('附件')"
prop=
"attatchment"
>
<FileUpload
:limit=
"5"
:isShowTip=
"true"
v-model=
"form.attatchment"
:fileType=
"fileType"
:disabled=
"isView"
/>
<FileUpload
:limit=
"5"
:isShowTip=
"true"
v-model=
"form.attatchment"
:fileType=
"fileType"
:disabled=
"isView"
/>
</el-form-item>
</el-form-item>
...
@@ -98,12 +105,12 @@
...
@@ -98,12 +105,12 @@
<el-date-picker
v-model=
"form.nextTime"
type=
"datetime"
:placeholder=
"$t('请选择')"
:disabled=
"isView"
@
change=
"changeNextTime"
>
</el-date-picker>
<el-date-picker
v-model=
"form.nextTime"
type=
"datetime"
:placeholder=
"$t('请选择')"
:disabled=
"isView"
@
change=
"changeNextTime"
>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"2
0
"
>
<el-col
:span=
"2
4
"
>
<el-form-item
:label=
"$t('下一步计划')"
prop=
"nextPlan"
>
<el-form-item
:label=
"$t('下一步计划')"
prop=
"nextPlan"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"form.nextPlan"
:placeholder=
"$t('请输入下一步计划')"
maxlength=
"500"
show-word-limit
:disabled=
"isView"
/>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"form.nextPlan"
:placeholder=
"$t('请输入下一步计划')"
maxlength=
"500"
show-word-limit
:disabled=
"isView"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"2
0
"
v-if=
"isView"
>
<el-col
:span=
"2
4
"
v-if=
"isView"
>
<el-form-item>
<el-form-item>
<div
style=
"text-align: right"
>
<div
style=
"text-align: right"
>
<!--
<el-button
size=
"mini"
icon=
"el-icon-collection"
type=
"primary"
@
click=
"$emit('handleCustomerFollowAdd', form)"
v-has-permi=
"['ecw:customer:follow-add-plan']"
>
{{
$t
(
"
增加计划
"
)
}}
</el-button>
-->
<!--
<el-button
size=
"mini"
icon=
"el-icon-collection"
type=
"primary"
@
click=
"$emit('handleCustomerFollowAdd', form)"
v-has-permi=
"['ecw:customer:follow-add-plan']"
>
{{
$t
(
"
增加计划
"
)
}}
</el-button>
-->
...
@@ -111,26 +118,26 @@
...
@@ -111,26 +118,26 @@
</div>
</div>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('创建人')"
prop=
"founder"
>
<el-form-item
:label=
"$t('创建人')"
prop=
"founder"
>
<el-select
v-model=
"form.creatorName"
disabled
:placeholder=
"$t('请选择')"
>
<el-select
v-model=
"form.creatorName"
disabled
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"item in allSimplList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
<el-option
v-for=
"item in allSimplList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('创建时间')"
prop=
"createTime"
>
<el-form-item
:label=
"$t('创建时间')"
prop=
"createTime"
>
<el-date-picker
v-model=
"form.createTime"
type=
"datetime"
disabled
:placeholder=
"$t('请选择')"
>
</el-date-picker>
<el-date-picker
v-model=
"form.createTime"
type=
"datetime"
disabled
:placeholder=
"$t('请选择')"
>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('最后更新人')"
>
<el-form-item
:label=
"$t('最后更新人')"
>
<el-select
v-model=
"form.updaterName"
disabled
>
<el-select
v-model=
"form.updaterName"
disabled
>
<el-option
v-for=
"item in allSimplList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
<el-option
v-for=
"item in allSimplList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('最后更新时间')"
>
<el-form-item
:label=
"$t('最后更新时间')"
>
<el-date-picker
v-model=
"form.updateTime"
type=
"datetime"
disabled
:placeholder=
"$t('请选择')"
>
</el-date-picker>
<el-date-picker
v-model=
"form.updateTime"
type=
"datetime"
disabled
:placeholder=
"$t('请选择')"
>
</el-date-picker>
</el-form-item>
</el-form-item>
...
@@ -166,7 +173,7 @@
...
@@ -166,7 +173,7 @@
<
script
>
<
script
>
import
{
createCustomerFollow
,
getCustomerFollowPage
,
getCustomerFollowPage2
,
addCustomerFollow
,
getCustomerFollowList
,
editCustomerFollow
,
getFollowupNewNumber
}
from
"
@/api/ecw/customerFollow
"
import
{
createCustomerFollow
,
getCustomerFollowPage
,
getCustomerFollowPage2
,
addCustomerFollow
,
getCustomerFollowList
,
editCustomerFollow
,
getFollowupNewNumber
}
from
"
@/api/ecw/customerFollow
"
import
{
getCustomerContactsSelect
}
from
"
@/api/ecw/customerContacts
"
import
{
getCustomerContactsSelect
}
from
"
@/api/ecw/customerContacts
"
import
{
getOfferPage
}
from
"
@/api/ecw/offer
"
import
{
getOfferPage
,
getOfferNumber
}
from
"
@/api/ecw/offer
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
import
{
getCustomerContactsListByCustomer
}
from
"
@/api/ecw/customerContacts
"
import
{
getCustomerContactsListByCustomer
}
from
"
@/api/ecw/customerContacts
"
import
{
listAllSimpl
,
listServiceUser
,
listSimpleUsers
}
from
"
@/api/system/user
"
import
{
listAllSimpl
,
listServiceUser
,
listSimpleUsers
}
from
"
@/api/system/user
"
...
@@ -213,7 +220,9 @@ export default {
...
@@ -213,7 +220,9 @@ export default {
}
}
},
},
offerDialogVisible
:
true
,
offerDialogVisible
:
true
,
form
:
{},
form
:
{
offerId
:
undefined
},
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
total
:
10
,
total
:
10
,
...
@@ -247,6 +256,17 @@ export default {
...
@@ -247,6 +256,17 @@ export default {
this
.
allSimplList
=
r
.
data
this
.
allSimplList
=
r
.
data
})
})
},
},
watch
:
{
"
form.offerId
"
(
v
)
{
if
(
v
)
{
getOfferNumber
(
v
).
then
((
r
)
=>
{
this
.
form
.
offerNumber
=
r
.
data
})
}
else
{
this
.
form
.
offerNumber
=
""
}
}
},
methods
:
{
methods
:
{
selectOffer
(
offerId
)
{
selectOffer
(
offerId
)
{
this
.
form
.
offerId
=
offerId
this
.
form
.
offerId
=
offerId
...
@@ -317,7 +337,6 @@ export default {
...
@@ -317,7 +337,6 @@ export default {
handleFollowType
(
val
)
{
handleFollowType
(
val
)
{
console
.
log
(
val
)
console
.
log
(
val
)
if
(
val
==
2
)
{
if
(
val
==
2
)
{
this
.
CustomerFollowSelectOffer
=
true
}
else
{
}
else
{
this
.
form
.
offerId
=
undefined
this
.
form
.
offerId
=
undefined
}
}
...
@@ -339,6 +358,7 @@ export default {
...
@@ -339,6 +358,7 @@ export default {
nextTime
:
undefined
,
nextTime
:
undefined
,
number
:
undefined
,
number
:
undefined
,
offerId
:
this
.
offerId
,
offerId
:
this
.
offerId
,
offerNumber
:
undefined
,
parentId
:
undefined
,
parentId
:
undefined
,
parentNumber
:
undefined
,
parentNumber
:
undefined
,
purpose
:
undefined
,
purpose
:
undefined
,
...
@@ -386,6 +406,10 @@ export default {
...
@@ -386,6 +406,10 @@ export default {
this
.
$modal
.
msgError
(
this
.
$t
(
"
请选择跟进方式
"
))
this
.
$modal
.
msgError
(
this
.
$t
(
"
请选择跟进方式
"
))
return
return
}
}
if
(
!
this
.
form
.
offerId
&&
this
.
form
.
followType
==
2
)
{
this
.
$modal
.
msgError
(
this
.
$t
(
"
请选择报价单
"
))
return
}
if
(
status
===
0
)
{
if
(
status
===
0
)
{
this
.
saveSubmitData
(
status
)
this
.
saveSubmitData
(
status
)
...
...
src/views/ecw/customer/index.vue
View file @
1ad37a34
...
@@ -228,21 +228,21 @@
...
@@ -228,21 +228,21 @@
-->
-->
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <template v-slot="{ row }">-->
<!-- <template v-slot="{ row }">-->
<!-- +{{ row.defaultContactPhone }} <br />-->
<!-- +{{ row.defaultContactPhone }} <br />-->
<!-- <contacts :id="row.id">-->
<!-- <contacts :id="row.id">-->
<!-- <el-button type="text">更多</el-button>-->
<!-- <el-button type="text">更多</el-button>-->
<!-- </contacts>-->
<!-- </contacts>-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -667,7 +667,7 @@
...
@@ -667,7 +667,7 @@
</div>
</div>
</el-dialog>
</el-dialog>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
:customer-service=
"customerService"
:customer-number=
"customerNumber"
ref=
"CustomerFollowList"
v-if=
"customerFollowVisible"
></customer-follow-list>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
:customer-service=
"customerService"
:customer-number=
"customerNumber"
ref=
"CustomerFollowList"
v-if=
"customerFollowVisible"
></customer-follow-list>
<customer-follow
ref=
"customerFollow"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-follow
ref=
"customerFollow"
@
refresh=
"handleQuery"
@
close=
"customerFollowVisible = false"
v-if=
"customerFollowVisible"
/>
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
<transfer-customer
:show.sync=
"transferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<transfer-customer
:show.sync=
"transferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<add-potential-custom
ref=
"potentialCustom"
@
change=
"getList"
></add-potential-custom>
<add-potential-custom
ref=
"potentialCustom"
@
change=
"getList"
></add-potential-custom>
...
@@ -719,10 +719,10 @@ import { getCustomerSelect } from "@/api/ecw/customer"
...
@@ -719,10 +719,10 @@ import { getCustomerSelect } from "@/api/ecw/customer"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
import
UserSelector
from
"
@/components/UserSelector/index.vue
"
;
import
UserSelector
from
"
@/components/UserSelector/index.vue
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
;
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
import
ProductSelector
from
"
@/components/ProductSelector/index.vue
"
;
import
ProductSelector
from
"
@/components/ProductSelector/index.vue
"
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
;
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
export
default
{
export
default
{
name
:
"
EcwCustomerIndex
"
,
name
:
"
EcwCustomerIndex
"
,
components
:
{
components
:
{
...
@@ -1011,15 +1011,14 @@ export default {
...
@@ -1011,15 +1011,14 @@ export default {
this
.
getList
()
this
.
getList
()
},
},
methods
:
{
methods
:
{
onCompetitorChange
(
row
,
competitor
)
{
onCompetitorChange
(
row
,
competitor
)
{
// row.goodsType = product ? product.typeId : null
// row.goodsType = product ? product.typeId : null
row
.
id
=
!
competitor
row
.
id
=
!
competitor
?
[]
?
[]
:
competitor
.
id
:
competitor
.
id
.
split
(
"
,
"
)
.
split
(
"
,
"
)
.
filter
((
item
)
=>
item
!==
""
)
.
filter
((
item
)
=>
item
!==
""
)
.
map
((
item
)
=>
+
item
)
.
map
((
item
)
=>
+
item
)
if
(
competitor
)
{
if
(
competitor
)
{
this
.
$set
(
this
.
names
,
competitor
.
id
,
{
this
.
$set
(
this
.
names
,
competitor
.
id
,
{
name
:
competitor
.
name
name
:
competitor
.
name
...
...
src/views/ecw/customer/query.vue
View file @
1ad37a34
...
@@ -672,7 +672,7 @@
...
@@ -672,7 +672,7 @@
</div>
</div>
</el-dialog>
</el-dialog>
<customer-follow
ref=
"customerFollow"
v-if=
"customerFollowVisible"
:customer-id=
"id"
:customer-service=
"customer.customerService"
:customer-number=
"customer.number"
@
refresh=
"logListCommonRefresh"
/>
<customer-follow
ref=
"customerFollow"
v-if=
"customerFollowVisible"
@
close=
"customerFollowVisible = false"
:customer-id=
"id"
:customer-service=
"customer.customerService"
:customer-number=
"customer.number"
@
refresh=
"logListCommonRefresh"
/>
</div>
</div>
</template>
</template>
...
...
src/views/ecw/customerConfirm/index.vue
View file @
1ad37a34
...
@@ -168,12 +168,10 @@
...
@@ -168,12 +168,10 @@
<!-- 操作工具栏 -->
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"$router.push({path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})"
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"$router.push({ path: '/customer/add-edit/0', query: { isCustomerServiceConfirmed: true } })"
v-hasPermi=
"['ecw:customer: treat-create']"
>
{{ $t("新增") }}
</el-button>
v-hasPermi=
"['ecw:customer: treat-create']"
>
{{$t('新增')}}
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:treat-export']"
>
{{ $t("导出") }}
</el-button>
v-hasPermi=
"['ecw:customer:treat-export']"
>
{{$t('导出')}}
</el-button>
</el-col>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
</el-row>
...
@@ -182,15 +180,15 @@
...
@@ -182,15 +180,15 @@
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<
template
v-slot=
"{
row
}"
>
<
template
v-slot=
"{
row
}"
>
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
{{
row
.
number
}}
{{
row
.
number
}}
</router-link>
</router-link>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<
template
v-slot=
"{
row
}"
>
<
template
v-slot=
"{
row
}"
>
<p
style=
"display:
inline-block;white-space: pre-wrap;"
>
{{
$l
(
row
,
'
name
'
)
}}
</p>
<p
style=
"display:
inline-block; white-space: pre-wrap"
>
{{
$l
(
row
,
"
name
"
)
}}
</p>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!--
<!--
...
@@ -207,41 +205,49 @@
...
@@ -207,41 +205,49 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <template v-slot="{row}">-->
<!-- <template v-slot="{row}">-->
<!-- +{{row.defaultContactPhone}} <br/>-->
<!-- +{{row.defaultContactPhone}} <br/>-->
<!-- <contacts :id="row.id" >-->
<!-- <contacts :id="row.id" >-->
<!-- <el-button type="text">更多</el-button>-->
<!-- <el-button type="text">更多</el-button>-->
<!-- </contacts>-->
<!-- </contacts>-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
{{
<!--
<dict-tag-->
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
""
).
split
(
"
,
"
))
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
.
map
((
e
)
=>
(
isChinese
?
e
.
label
:
e
.
labelEn
))
<!-- :value="scope.row.type"-->
.
join
(
"
,
"
)
<!-- />-->
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
{{
<!--
<dict-tag-->
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
""
).
split
(
"
,
"
))
<!-- :type="DICT_TYPE.CUSTOMER_ROLE"-->
.
map
((
e
)
=>
(
isChinese
?
e
.
label
:
e
.
labelEn
))
<!-- :value="scope.row.roles"-->
.
join
(
"
,
"
)
<!-- />-->
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_ROLE"-->
<!-- :value="scope.row.roles"-->
<!-- />-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
...
@@ -253,10 +259,7 @@
...
@@ -253,10 +259,7 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户来源')"
>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<el-table-column
:label=
"$t('业务国家')"
>
...
@@ -279,8 +282,7 @@
...
@@ -279,8 +282,7 @@
{{
getProductTypeNames
(
row
.
productTypes
)
}}
{{
getProductTypeNames
(
row
.
productTypes
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
{{
row
.
numYearly
}}
...
@@ -293,13 +295,13 @@
...
@@ -293,13 +295,13 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
"
是
"
)
}}
</el-tag>
<el-tag
type=
"info"
v-else
>
{{
$t
(
'
否
'
)
}}
</el-tag>
<el-tag
type=
"info"
v-else
>
{{
$t
(
"
否
"
)
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
...
@@ -324,14 +326,10 @@
...
@@ -324,14 +326,10 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethod"
/>
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethod"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
...
@@ -339,51 +337,38 @@
...
@@ -339,51 +337,38 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('分配时间')"
align=
"center"
width=
"180"
>
<el-table-column
:label=
"$t('分配时间')"
align=
"center"
width=
"180"
>
<
template
v-slot=
"{row
}"
>
<
template
v-slot=
"{ row
}"
>
<span>
{{
parseTime
(
row
.
customerServiceAssignedTime
)
}}
</span>
<span>
{{
parseTime
(
row
.
customerServiceAssignedTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"'/customer/query/' + scope.row.id"
>
<router-link
:to=
"'/customer/query/' + scope.row.id"
>
<el-button
v-has-permi=
"['ecw:customer:treat-view']"
size=
"mini"
style=
"margin-right: 10px"
type=
"text"
>
查看
</el-button>
<el-button
v-has-permi=
"['ecw:customer:treat-view']"
size=
"mini"
style=
"margin-right: 10px"
type=
"text"
>
查看
</el-button>
</router-link>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleConfirmService(scope.row)"
v-hasPermi=
"['ecw:customer:treat-accept']"
>
{{
$t
(
"
确认接收
"
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handOver(scope.row)"
v-hasPermi=
"['ecw:customer:treat-transfer']"
>
{{
$t
(
"
移交
"
)
}}
</el-button>
<router-link
style=
"margin: 0 10px"
to=
"/offer/create"
>
<el-button
v-has-permi=
"['ecw:customer:treat-quoted-price']"
size=
"mini"
type=
"text"
>
{{
$t
(
"
报价
"
)
}}
</el-button>
</router-link>
</router-link>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleConfirmService(scope.row)"
<el-button
size=
"mini"
type=
"text"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:customer:treat-perfect']"
>
{{
$t
(
"
完善
"
)
}}
</el-button>
v-hasPermi=
"['ecw:customer:treat-accept']"
>
{{
$t
(
'
确认接收
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handOver(scope.row)"
v-hasPermi=
"['ecw:customer:treat-transfer']"
>
{{
$t
(
'
移交
'
)
}}
</el-button>
<router-link
style=
"margin: 0 10px;"
to=
"/offer/create"
>
<el-button
v-has-permi=
"['ecw:customer:treat-quoted-price']"
size=
"mini"
type=
"text"
>
{{
$t
(
'
报价
'
)
}}
</el-button>
</router-link>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:customer:treat-perfect']"
>
{{
$t
(
'
完善
'
)
}}
</el-button>
<!--
<el-button
v-has-permi=
"['ecw:customer:treat-recovery']"
size=
"mini"
type=
"text"
@
click=
"recovery(scope.row)"
>
{{
$t
(
'
回收客户
'
)
}}
</el-button>
-->
<!--
<el-button
v-has-permi=
"['ecw:customer:treat-recovery']"
size=
"mini"
type=
"text"
@
click=
"recovery(scope.row)"
>
{{
$t
(
'
回收客户
'
)
}}
</el-button>
-->
<el-button
<el-button
v-has-permi=
"['ecw:customer:setting']"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"handleSetting(scope.row)"
>
{{
$t
(
"
设置
"
)
}}
</el-button>
v-has-permi=
"['ecw:customer:setting']"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"handleSetting(scope.row)"
>
{{
$t
(
"
设置
"
)
}}
</el-button
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 分页组件 -->
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户名称')"
prop=
"name"
>
<el-form-item
:label=
"$t('客户名称')"
prop=
"name"
>
<el-input
v-model=
"form.name"
:placeholder=
"$t('请输入客户名称')"
/>
<el-input
v-model=
"form.name"
:placeholder=
"$t('请输入客户名称')"
/>
...
@@ -392,24 +377,21 @@
...
@@ -392,24 +377,21 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('国家')"
prop=
"country"
>
<el-form-item
:label=
"$t('国家')"
prop=
"country"
>
<el-select
v-model=
"form.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
v-model=
"form.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-select
v-model=
"form.level"
:placeholder=
"$t('请选择客户等级')"
>
<el-select
v-model=
"form.level"
:placeholder=
"$t('请选择客户等级')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('所属代理')"
prop=
"agentId"
>
<el-form-item
:label=
"$t('所属代理')"
prop=
"agentId"
>
<el-select
v-model=
"form.agentId"
:placeholder=
"$t('请选择所属代理')"
>
<el-select
v-model=
"form.agentId"
:placeholder=
"$t('请选择所属代理')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -421,8 +403,7 @@
...
@@ -421,8 +403,7 @@
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户类别')"
prop=
"type"
>
<el-form-item
:label=
"$t('客户类别')"
prop=
"type"
>
<el-select
v-model=
"form.type"
:placeholder=
"$t('请选择客户类别')"
>
<el-select
v-model=
"form.type"
:placeholder=
"$t('请选择客户类别')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -434,13 +415,11 @@
...
@@ -434,13 +415,11 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('公司名称')"
prop=
"company"
>
<el-form-item
:label=
"$t('公司名称')"
prop=
"company"
>
<el-input
v-model=
"form.company"
:placeholder=
"$t('请输入公司名称')"
/>
<el-input
v-model=
"form.company"
:placeholder=
"$t('请输入公司名称')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户生日')"
prop=
"birthday"
>
<el-form-item
:label=
"$t('客户生日')"
prop=
"birthday"
>
<el-input
v-model=
"form.birthday"
:placeholder=
"$t('请输入客户生日')"
/>
<el-input
v-model=
"form.birthday"
:placeholder=
"$t('请输入客户生日')"
/>
</el-form-item>
</el-form-item>
...
@@ -456,44 +435,35 @@
...
@@ -456,44 +435,35 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户来源')"
prop=
"source"
>
<el-form-item
:label=
"$t('客户来源')"
prop=
"source"
>
<el-select
v-model=
"form.source"
:placeholder=
"$t('请选择客户来源')"
>
<el-select
v-model=
"form.source"
:placeholder=
"$t('请选择客户来源')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('结算方式')"
prop=
"balance"
>
<el-form-item
:label=
"$t('结算方式')"
prop=
"balance"
>
<el-select
v-model=
"form.balance"
:placeholder=
"$t('请选择结算方式')"
>
<el-select
v-model=
"form.balance"
:placeholder=
"$t('请选择结算方式')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
>
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
>
<el-option
v-for=
"dict in serviceStaffOptions"
<el-option
v-for=
"dict in serviceStaffOptions"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('图片')"
prop=
"picture"
>
<el-form-item
:label=
"$t('图片')"
prop=
"picture"
>
<el-input
v-model=
"form.picture"
:placeholder=
"$t('请输入图片')"
/>
<el-input
v-model=
"form.picture"
:placeholder=
"$t('请输入图片')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户状态')"
prop=
"status"
>
<el-form-item
:label=
"$t('客户状态')"
prop=
"status"
>
<el-select
v-model=
"form.status"
:placeholder=
"$t('请选择客户状态')"
>
<el-select
v-model=
"form.status"
:placeholder=
"$t('请选择客户状态')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -528,9 +498,6 @@
...
@@ -528,9 +498,6 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-form-item
:label=
"$t('关联会员账号')"
prop=
"memberId"
>
<el-form-item
:label=
"$t('关联会员账号')"
prop=
"memberId"
>
<el-input
v-model=
"form.memberId"
:placeholder=
"$t('请输入关联会员账号')"
/>
<el-input
v-model=
"form.memberId"
:placeholder=
"$t('请输入关联会员账号')"
/>
</el-form-item>
</el-form-item>
...
@@ -564,8 +531,8 @@
...
@@ -564,8 +531,8 @@
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{
$t('确 定')
}}
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{
$t("确 定")
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{
$t('取 消')
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{
$t("取 消")
}}
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
...
@@ -575,65 +542,52 @@
...
@@ -575,65 +542,52 @@
<el-form
ref=
"handOverForm"
:model=
"handOverForm"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"handOverForm"
:model=
"handOverForm"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerServiceId"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerServiceId"
>
<el-select
v-model=
"handOverForm.customerServiceId"
:placeholder=
"$t('请选择客户经理')"
clearable
filterable
>
<el-select
v-model=
"handOverForm.customerServiceId"
:placeholder=
"$t('请选择客户经理')"
clearable
filterable
>
<el-option
v-for=
"user in serviceStaffOptions"
<el-option
v-for=
"user in serviceStaffOptions"
:key=
"user.id"
:value=
"user.id"
:label=
"user.nickname"
/>
:key=
"user.id"
:value=
"user.id"
:label=
"user.nickname"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitHandOverForm"
>
{{
$t('确 定')
}}
</el-button>
<el-button
type=
"primary"
@
click=
"submitHandOverForm"
>
{{
$t("确 定")
}}
</el-button>
<el-button
@
click=
"cancelHandOver"
>
{{
$t('取 消')
}}
</el-button>
<el-button
@
click=
"cancelHandOver"
>
{{
$t("取 消")
}}
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<transfer-customer
:show.sync=
"openHandOver"
:customer-ids.sync=
"handOverForm.customerIdList"
></transfer-customer>
<transfer-customer
:show.sync=
"openHandOver"
:customer-ids.sync=
"handOverForm.customerIdList"
></transfer-customer>
<customer-follow
ref=
"customerFollow"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-follow
ref=
"customerFollow"
@
close=
"customerFollowVisible = false"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-setting
<customer-setting
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
updateCustomer
,
getCustomer
,
exportCustomerExcel
,
getWaitForConfirmList
,
confirm
,
waiteConfirmExportExcel
,
waiteConfirEexportExcel
,
recycleUnconfirmedCustomer
,
competitorListAll
}
from
"
@/api/ecw/customer
"
updateCustomer
,
getCustomer
,
exportCustomerExcel
,
getWaitForConfirmList
,
confirm
,
waiteConfirmExportExcel
,
waiteConfirEexportExcel
,
recycleUnconfirmedCustomer
,
competitorListAll
}
from
"
@/api/ecw/customer
"
;
import
{
listServiceUser
,
listAllSimpl
}
from
"
@/api/system/user
"
import
{
listServiceUser
,
listAllSimpl
}
from
"
@/api/system/user
"
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
'
@/utils/dict
'
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
{
CommonStatusEnum
}
from
"
@/utils/constants
"
import
{
handOverCustomer
}
from
"
../../../api/ecw/customer
"
;
import
{
handOverCustomer
}
from
"
../../../api/ecw/customer
"
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
;
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
;
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer.vue
"
;
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer.vue
"
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
;
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
import
CustomerSetting
from
"
../customer/components/customerSetting.vue
"
;
import
CustomerSetting
from
"
../customer/components/customerSetting.vue
"
import
AreaCodeSelector
from
"
@/components/AreaCodeSelector/index.vue
"
;
import
AreaCodeSelector
from
"
@/components/AreaCodeSelector/index.vue
"
import
{
getNodeList
}
from
"
@/api/ecw/node
"
;
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
;
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
getProductList
}
from
"
@/api/ecw/product
"
;
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
;
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
;
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
export
default
{
export
default
{
name
:
"
EcwCustomerconfirmIndex
"
,
name
:
"
EcwCustomerconfirmIndex
"
,
activated
()
{
activated
()
{
this
.
getList
()
;
this
.
getList
()
},
},
computed
:{
computed
:
{
DICT_TYPE
()
{
DICT_TYPE
()
{
return
DICT_TYPE
return
DICT_TYPE
},
},
isChinese
(){
isChinese
()
{
return
this
.
$i18n
.
locale
===
'
zh_CN
'
return
this
.
$i18n
.
locale
===
"
zh_CN
"
},
},
channel
()
{
channel
()
{
return
(
val
)
=>
{
return
(
val
)
=>
{
...
@@ -642,20 +596,18 @@ export default {
...
@@ -642,20 +596,18 @@ export default {
.
filter
((
i
)
=>
(
val
.
split
(
"
,
"
)
||
[]).
includes
(
i
.
value
))
.
filter
((
i
)
=>
(
val
.
split
(
"
,
"
)
||
[]).
includes
(
i
.
value
))
.
map
((
i
)
=>
(
this
.
isChinese
?
i
.
label
:
i
.
labelEn
))
.
map
((
i
)
=>
(
this
.
isChinese
?
i
.
label
:
i
.
labelEn
))
.
join
(
"
,
"
)
.
join
(
"
,
"
)
:
""
;
:
""
}
;
}
},
},
customerSelectFn
()
{
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
let
i
=
this
.
customerSelect
.
find
((
item
)
=>
item
.
id
===
this
.
recommended
[
0
].
id
)
(
item
)
=>
item
.
id
===
this
.
recommended
[
0
].
id
);
if
(
!
i
)
{
if
(
!
i
)
{
this
.
customerSelect
.
push
(
this
.
recommended
[
0
])
;
this
.
customerSelect
.
push
(
this
.
recommended
[
0
])
}
}
return
this
.
customerSelect
;
return
this
.
customerSelect
}
else
{
}
else
{
return
this
.
customerSelect
;
return
this
.
customerSelect
}
}
},
},
combinedQueryParams
()
{
combinedQueryParams
()
{
...
@@ -677,26 +629,26 @@ export default {
...
@@ -677,26 +629,26 @@ export default {
queryParams
.
endFirstDealTime
=
this
.
firstDealTime
[
1
]
queryParams
.
endFirstDealTime
=
this
.
firstDealTime
[
1
]
}
}
if
(
this
.
weightYearly
.
value
)
{
if
(
this
.
weightYearly
.
value
)
{
let
key
=
'
eqWeightYearly
'
let
key
=
"
eqWeightYearly
"
if
(
this
.
weightYearly
.
key
==
'
leNumberKey
'
)
{
if
(
this
.
weightYearly
.
key
==
"
leNumberKey
"
)
{
key
=
'
leWeightYearly
'
key
=
"
leWeightYearly
"
}
else
if
(
this
.
weightYearly
.
key
==
'
geNumberKey
'
)
{
}
else
if
(
this
.
weightYearly
.
key
==
"
geNumberKey
"
)
{
key
=
'
geWeightYearly
'
key
=
"
geWeightYearly
"
}
}
queryParams
[
key
]
=
this
.
weightYearly
.
value
;
queryParams
[
key
]
=
this
.
weightYearly
.
value
}
}
if
(
this
.
numYearly
.
value
)
{
if
(
this
.
numYearly
.
value
)
{
let
key
=
'
eqNumYearly
'
let
key
=
"
eqNumYearly
"
if
(
this
.
numYearly
.
key
==
'
leNumberKey
'
)
{
if
(
this
.
numYearly
.
key
==
"
leNumberKey
"
)
{
key
=
'
leNumYearly
'
key
=
"
leNumYearly
"
}
else
if
(
this
.
numYearly
.
key
==
'
geNumberKey
'
)
{
}
else
if
(
this
.
numYearly
.
key
==
"
geNumberKey
"
)
{
key
=
'
geNumYearly
'
key
=
"
geNumYearly
"
}
}
queryParams
[
key
]
=
this
.
numYearly
.
value
;
queryParams
[
key
]
=
this
.
numYearly
.
value
}
}
return
queryParams
;
return
queryParams
}
,
}
},
},
components
:
{
components
:
{
CompetitorSelector
,
CompetitorSelector
,
...
@@ -730,7 +682,7 @@ export default {
...
@@ -730,7 +682,7 @@ export default {
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
/*number: null,
/*number: null,
name: null,
name: null,
level: null,
level: null,
...
@@ -751,14 +703,14 @@ export default {
...
@@ -751,14 +703,14 @@ export default {
handOverForm
:
{},
handOverForm
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户名称不能为空
'
),
trigger
:
"
blur
"
}],
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户名称不能为空
"
),
trigger
:
"
blur
"
}],
weightUnit
:
[{
required
:
true
,
message
:
this
.
$t
(
'
重货标准(CBM)不能为空
'
),
trigger
:
"
blur
"
}],
weightUnit
:
[{
required
:
true
,
message
:
this
.
$t
(
"
重货标准(CBM)不能为空
"
),
trigger
:
"
blur
"
}]
},
},
serviceStaffOptions
:
[],
serviceStaffOptions
:
[],
customerServiceList
:[],
customerServiceList
:
[],
countryList
:[],
countryList
:
[],
creditList
:[],
creditList
:
[],
selectCustomerList
:
[],
selectCustomerList
:
[],
enterOpenSeaTime
:
[],
enterOpenSeaTime
:
[],
customerServiceConfirmedTime
:
[],
customerServiceConfirmedTime
:
[],
...
@@ -769,47 +721,47 @@ export default {
...
@@ -769,47 +721,47 @@ export default {
allSimplList
:
[],
allSimplList
:
[],
weightYearly
:
{
weightYearly
:
{
key
:
"
eqNumberKey
"
,
key
:
"
eqNumberKey
"
,
value
:
""
,
value
:
""
},
},
numYearly
:
{
numYearly
:
{
key
:
"
eqNumberKey
"
,
key
:
"
eqNumberKey
"
,
value
:
""
,
value
:
""
},
},
productTypeList
:
[],
productTypeList
:
[],
productList
:
[],
productList
:
[],
competitorList
:
[],
competitorList
:
[],
deptList
:
[]
,
deptList
:
[]
}
;
}
},
},
created
()
{
created
()
{
this
.
getList
()
;
this
.
getList
()
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
(
r
=>
{
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
((
r
)
=>
{
this
.
creditList
=
r
.
data
.
list
this
.
creditList
=
r
.
data
.
list
})
})
// 获得客服人员列表
// 获得客服人员列表
listServiceUser
().
then
(
response
=>
{
listServiceUser
().
then
(
(
response
)
=>
{
this
.
serviceStaffOptions
=
response
.
data
;
this
.
serviceStaffOptions
=
response
.
data
})
})
listServiceUser
().
then
(
r
=>
{
listServiceUser
().
then
(
(
r
)
=>
{
this
.
customerServiceList
=
r
.
data
;
this
.
customerServiceList
=
r
.
data
})
})
getCountryListAll
().
then
(
r
=>
{
getCountryListAll
().
then
(
(
r
)
=>
{
this
.
countryList
=
r
.
data
this
.
countryList
=
r
.
data
})
})
this
.
getCustomerSelect
()
;
this
.
getCustomerSelect
()
getNodeList
().
then
((
r
)
=>
{
getNodeList
().
then
((
r
)
=>
{
this
.
getNodeLists
=
r
.
data
;
this
.
getNodeLists
=
r
.
data
})
;
})
listAllSimpl
().
then
((
r
)
=>
{
listAllSimpl
().
then
((
r
)
=>
{
this
.
allSimplList
=
r
.
data
;
this
.
allSimplList
=
r
.
data
})
;
})
getProductTypeList
().
then
((
r
)
=>
{
getProductTypeList
().
then
((
r
)
=>
{
this
.
productTypeList
=
r
.
data
;
this
.
productTypeList
=
r
.
data
})
;
})
competitorListAll
().
then
((
r
)
=>
{
competitorListAll
().
then
((
r
)
=>
{
this
.
competitorList
=
r
.
data
;
this
.
competitorList
=
r
.
data
})
})
listMySimpleDepts
().
then
(
response
=>
{
listMySimpleDepts
().
then
(
(
response
)
=>
{
this
.
deptList
=
response
.
data
this
.
deptList
=
response
.
data
})
})
},
},
...
@@ -839,38 +791,36 @@ export default {
...
@@ -839,38 +791,36 @@ export default {
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
},
},
handleSelectionChange
(
val
){
handleSelectionChange
(
val
)
{
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
this
.
selectCustomerList
=
val
.
map
(
(
i
)
=>
i
.
id
)
},
},
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
// 处理查询参数
// 处理查询参数
let
params
=
{
...
this
.
queryParams
,
...
this
.
combinedQueryParams
};
let
params
=
{
...
this
.
queryParams
,
...
this
.
combinedQueryParams
}
// this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
// 执行查询
getWaitForConfirmList
(
params
).
then
(
response
=>
{
getWaitForConfirmList
(
params
).
then
(
(
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
list
=
response
.
data
.
list
this
.
total
=
response
.
data
.
total
;
this
.
total
=
response
.
data
.
total
this
.
loading
=
false
;
this
.
loading
=
false
})
;
})
},
},
remoteMethod
(
val
)
{
remoteMethod
(
val
)
{
this
.
getCustomerSelect
(
val
)
;
this
.
getCustomerSelect
(
val
)
},
},
getCustomerSelect
(
val
=
""
)
{
getCustomerSelect
(
val
=
""
)
{
getCustomerSelect
({
pageNo
:
1
,
pageSize
:
30
,
searchKey
:
val
}).
then
(
getCustomerSelect
({
pageNo
:
1
,
pageSize
:
30
,
searchKey
:
val
}).
then
((
res
)
=>
{
(
res
)
=>
{
this
.
customerSelect
=
res
.
data
.
list
this
.
customerSelect
=
res
.
data
.
list
;
})
}
);
},
},
handleSelectProductType
(
val
)
{
handleSelectProductType
(
val
)
{
if
(
val
&&
val
.
length
>=
1
)
{
if
(
val
&&
val
.
length
>=
1
)
{
this
.
queryParams
.
productIds
=
[]
this
.
queryParams
.
productIds
=
[]
getProductList
({
typeIds
:
val
}).
then
((
r
)
=>
{
getProductList
({
typeIds
:
val
}).
then
((
r
)
=>
{
this
.
productList
=
r
.
data
this
.
productList
=
r
.
data
})
;
})
}
else
{
}
else
{
this
.
queryParams
.
productIds
=
[]
this
.
queryParams
.
productIds
=
[]
this
.
productList
=
[]
this
.
productList
=
[]
...
@@ -878,8 +828,8 @@ export default {
...
@@ -878,8 +828,8 @@ export default {
},
},
/** 取消按钮 */
/** 取消按钮 */
cancel
()
{
cancel
()
{
this
.
open
=
false
;
this
.
open
=
false
this
.
reset
()
;
this
.
reset
()
},
},
/** 表单重置 */
/** 表单重置 */
reset
()
{
reset
()
{
...
@@ -916,49 +866,49 @@ export default {
...
@@ -916,49 +866,49 @@ export default {
taxRate
:
undefined
,
taxRate
:
undefined
,
remarks
:
undefined
,
remarks
:
undefined
,
arrivalConfirm
:
undefined
,
arrivalConfirm
:
undefined
,
weightUnit
:
undefined
,
weightUnit
:
undefined
}
;
}
this
.
resetForm
(
"
form
"
)
;
this
.
resetForm
(
"
form
"
)
},
},
/** 表单重置 */
/** 表单重置 */
resetHandOverForm
()
{
resetHandOverForm
()
{
this
.
form
=
{
this
.
form
=
{
customerIdList
:
undefined
,
customerIdList
:
undefined
,
customerServiceId
:
undefined
customerServiceId
:
undefined
}
;
}
this
.
resetForm
(
"
handOverForm
"
)
;
this
.
resetForm
(
"
handOverForm
"
)
},
},
/** 搜索按钮操作 */
/** 搜索按钮操作 */
handleQuery
()
{
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
queryParams
.
pageNo
=
1
this
.
getList
()
;
this
.
getList
()
},
},
/** 重置按钮操作 */
/** 重置按钮操作 */
resetQuery
()
{
resetQuery
()
{
this
.
dateRangeCreateTime
=
[]
;
this
.
dateRangeCreateTime
=
[]
this
.
enterOpenSeaTime
=
[]
this
.
enterOpenSeaTime
=
[]
this
.
customerServiceConfirmedTime
=
[]
this
.
customerServiceConfirmedTime
=
[]
this
.
firstDealTime
=
[]
this
.
firstDealTime
=
[]
this
.
resetForm
(
"
queryForm
"
)
;
this
.
resetForm
(
"
queryForm
"
)
this
.
queryParams
=
{
this
.
queryParams
=
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
}
;
}
this
.
weightYearly
.
value
=
""
;
this
.
weightYearly
.
value
=
""
this
.
numYearly
.
value
=
""
;
this
.
numYearly
.
value
=
""
this
.
handleQuery
()
;
this
.
handleQuery
()
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
reset
()
;
this
.
reset
()
this
.
open
=
true
;
this
.
open
=
true
this
.
title
=
this
.
$t
(
'
添加客户
'
);
this
.
title
=
this
.
$t
(
"
添加客户
"
)
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
reset
()
;
this
.
reset
()
const
id
=
row
.
id
;
const
id
=
row
.
id
this
.
$router
.
push
({
path
:
'
/customer/perfect/
'
+
id
,
query
:{
isCustomerServiceConfirmed
:
true
,}});
this
.
$router
.
push
({
path
:
"
/customer/perfect/
"
+
id
,
query
:
{
isCustomerServiceConfirmed
:
true
}
})
// getCustomer(id).then(response => {
// getCustomer(id).then(response => {
// this.form = response.data;
// this.form = response.data;
// this.open = true;
// this.open = true;
...
@@ -967,49 +917,56 @@ export default {
...
@@ -967,49 +917,56 @@ export default {
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleConfirmService
(
row
)
{
handleConfirmService
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认接收客户
'
)
+
'
["
'
+
row
.
name
+
'
"]?
'
).
then
(
function
()
{
this
.
$modal
return
confirm
({
"
customerId
"
:
id
});
.
confirm
(
this
.
$t
(
"
是否确认接收客户
"
)
+
'
["
'
+
row
.
name
+
'
"]?
'
)
}).
then
(()
=>
{
.
then
(
function
()
{
this
.
getList
();
return
confirm
({
customerId
:
id
})
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
接收成功
'
));
})
}).
catch
(()
=>
{});
.
then
(()
=>
{
this
.
getList
()
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
接收成功
"
))
})
.
catch
(()
=>
{})
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handOver
(
row
)
{
handOver
(
row
)
{
// this.resetHandOverForm();
// this.resetHandOverForm();
this
.
openHandOver
=
true
;
this
.
openHandOver
=
true
this
.
handOverForm
.
customerIdList
=
[
row
.
id
];
this
.
handOverForm
.
customerIdList
=
[
row
.
id
]
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
(
valid
)
=>
{
if
(
!
valid
)
{
if
(
!
valid
)
{
return
;
return
}
}
// 修改的提交
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
updateCustomer
(
this
.
form
).
then
(
response
=>
{
updateCustomer
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
修改成功
'
));
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
))
this
.
open
=
false
;
this
.
open
=
false
this
.
getList
()
;
this
.
getList
()
})
;
})
return
;
return
}
}
})
;
})
},
},
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
id
+
this
.
$t
(
'
"的数据项?
'
)).
then
(
function
()
{
this
.
$modal
return
deleteCustomer
(
id
);
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
id
+
this
.
$t
(
'
"的数据项?
'
))
}).
then
(()
=>
{
.
then
(
function
()
{
this
.
getList
();
return
deleteCustomer
(
id
)
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
删除成功
'
));
})
}).
catch
(()
=>
{});
.
then
(()
=>
{
this
.
getList
()
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
删除成功
"
))
})
.
catch
(()
=>
{})
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
...
@@ -1019,85 +976,86 @@ export default {
...
@@ -1019,85 +976,86 @@ export default {
// params.pageSize = undefined;
// params.pageSize = undefined;
// this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行导出
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出我的待接受客户数据项?
'
)).
then
(()
=>
{
this
.
$modal
waiteConfirEexportExcel
().
then
(()
=>
{
.
confirm
(
this
.
$t
(
"
是否确认导出我的待接受客户数据项?
"
))
this
.
$message
.
success
(
this
.
$t
(
'
已加入导出队列,请稍后在下载日志中下载
'
))
.
then
(()
=>
{
waiteConfirEexportExcel
().
then
(()
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
已加入导出队列,请稍后在下载日志中下载
"
))
})
})
})
}).
catch
(()
=>
{});
.
catch
(()
=>
{})
},
},
/** 提交按钮 */
/** 提交按钮 */
submitHandOverForm
()
{
submitHandOverForm
()
{
// 移交的提交
// 移交的提交
handOverCustomer
(
this
.
handOverForm
).
then
(
response
=>
{
handOverCustomer
(
this
.
handOverForm
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
移交成功
'
));
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
移交成功
"
))
this
.
openHandOver
=
false
;
this
.
openHandOver
=
false
this
.
getList
()
;
this
.
getList
()
})
;
})
},
},
/** 取消按钮 */
/** 取消按钮 */
cancelHandOver
()
{
cancelHandOver
()
{
this
.
openHandOver
=
false
;
this
.
openHandOver
=
false
this
.
handOverForm
=
{
this
.
handOverForm
=
{
customerId
:
undefined
,
customerId
:
undefined
,
customerIdList
:
undefined
customerIdList
:
undefined
}
;
}
},
},
handleSetting
(
row
)
{
handleSetting
(
row
)
{
this
.
$refs
[
'
customerSetting
'
].
dialogVisible
=
true
this
.
$refs
[
"
customerSetting
"
].
dialogVisible
=
true
this
.
$nextTick
(
_
=>
{
this
.
$nextTick
(
(
_
)
=>
{
this
.
$refs
[
'
customerSetting
'
].
init
(
row
.
id
)
this
.
$refs
[
"
customerSetting
"
].
init
(
row
.
id
)
})
})
},
},
getBusiCountryNames
(
ids
)
{
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
idsArr
=
ids
.
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
this
.
countryList
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getPickupPointNames
(
ids
)
{
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
idsArr
=
ids
.
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
this
.
getNodeLists
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getProductTypeNames
(
ids
)
{
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
toString
().
split
(
'
,
'
)
const
idsArr
=
ids
.
toString
().
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
this
.
productTypeList
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getPromoterName
(
id
)
{
getPromoterName
(
id
)
{
if
(
id
)
{
if
(
id
)
{
let
strName
=
''
let
strName
=
""
for
(
const
item
of
this
.
customerSelectFn
)
{
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
strName
=
item
.
name
break
break
...
@@ -1109,5 +1067,5 @@ export default {
...
@@ -1109,5 +1067,5 @@ export default {
}
}
}
}
}
}
}
;
}
</
script
>
</
script
>
src/views/ecw/customerToBeAssigned/index.vue
View file @
1ad37a34
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
...
@@ -169,17 +168,14 @@
...
@@ -169,17 +168,14 @@
<!-- 操作工具栏 -->
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:customer:distribution-create']"
>
{{ $t("新增") }}
</el-button>
v-hasPermi=
"['ecw:customer:distribution-create']"
>
{{$t('新增')}}
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:distribution-export']"
>
{{ $t("导出") }}
</el-button>
v-hasPermi=
"['ecw:customer:distribution-export']"
>
{{$t('导出')}}
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"batchTransferShow = true;"
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"batchTransferShow = true"
v-hasPermi=
"['ecw:customer:distribution-transfer']"
>
{{ $t("批量移交") }}
</el-button>
v-hasPermi=
"['ecw:customer:distribution-transfer']"
>
{{$t('批量移交')}}
</el-button>
</el-col>
</el-col>
</el-col>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
...
@@ -189,13 +185,13 @@
...
@@ -189,13 +185,13 @@
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<
template
v-slot=
"{
row
}"
>
<
template
v-slot=
"{
row
}"
>
{{
row
.
number
}}
{{
row
.
number
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<
template
v-slot=
"{
row
}"
>
<
template
v-slot=
"{
row
}"
>
<p
style=
"display:
inline-block;white-space: pre-wrap;"
>
{{
$l
(
row
,
'
name
'
)
}}
</p>
<p
style=
"display:
inline-block; white-space: pre-wrap"
>
{{
$l
(
row
,
"
name
"
)
}}
</p>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
...
@@ -204,41 +200,49 @@
...
@@ -204,41 +200,49 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <template v-slot="{row}">-->
<!-- <template v-slot="{row}">-->
<!-- +{{row.defaultContactPhone}} <br/>-->
<!-- +{{row.defaultContactPhone}} <br/>-->
<!-- <contacts :id="row.id" >-->
<!-- <contacts :id="row.id" >-->
<!-- <el-button type="text">更多</el-button>-->
<!-- <el-button type="text">更多</el-button>-->
<!-- </contacts>-->
<!-- </contacts>-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
{{
<!--
<dict-tag-->
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
""
).
split
(
"
,
"
))
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
.
map
((
e
)
=>
(
isChinese
?
e
.
label
:
e
.
labelEn
))
<!-- :value="scope.row.type"-->
.
join
(
"
,
"
)
<!-- />-->
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
{{
<!--
<dict-tag-->
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
""
).
split
(
"
,
"
))
<!-- :type="DICT_TYPE.CUSTOMER_ROLE"-->
.
map
((
e
)
=>
(
isChinese
?
e
.
label
:
e
.
labelEn
))
<!-- :value="scope.row.roles"-->
.
join
(
"
,
"
)
<!-- />-->
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_ROLE"-->
<!-- :value="scope.row.roles"-->
<!-- />-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
...
@@ -250,10 +254,7 @@
...
@@ -250,10 +254,7 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户来源')"
>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<el-table-column
:label=
"$t('业务国家')"
>
...
@@ -276,8 +277,7 @@
...
@@ -276,8 +277,7 @@
{{
getProductTypeNames
(
row
.
productTypes
)
}}
{{
getProductTypeNames
(
row
.
productTypes
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
{{
row
.
numYearly
}}
...
@@ -290,13 +290,13 @@
...
@@ -290,13 +290,13 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
"
是
"
)
}}
</el-tag>
<el-tag
type=
"info"
v-else
>
{{
$t
(
'
否
'
)
}}
</el-tag>
<el-tag
type=
"info"
v-else
>
{{
$t
(
"
否
"
)
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
...
@@ -321,14 +321,10 @@
...
@@ -321,14 +321,10 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethod"
/>
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethod"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
...
@@ -336,91 +332,69 @@
...
@@ -336,91 +332,69 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"'/customer/query/' + scope.row.id"
>
<router-link
:to=
"'/customer/query/' + scope.row.id"
>
<el-button
v-has-permi=
"['ecw:customer:distribution-view']"
size=
"mini"
style=
"margin-right: 10px"
type=
"text"
>
查看
</el-button>
<el-button
v-has-permi=
"['ecw:customer:distribution-view']"
size=
"mini"
style=
"margin-right: 10px"
type=
"text"
>
查看
</el-button>
</router-link>
</router-link>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:customer:distribution-update']"
>
{{
$t
(
"
编辑
"
)
}}
</el-button>
v-hasPermi=
"['ecw:customer:distribution-update']"
>
{{
$t
(
'
编辑
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:customer:distribution-delete']"
>
{{
$t
(
"
删除
"
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"distribution(scope.row)"
v-hasPermi=
"['ecw:customer:distribution-customer-service']"
>
{{
$t
(
"
分配客服
"
)
}}
</el-button>
v-hasPermi=
"['ecw:customer:distribution-delete']"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:setting']"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"handleSetting(scope.row)"
>
{{
$t
(
"
设置
"
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"distribution(scope.row)"
v-hasPermi=
"['ecw:customer:distribution-customer-service']"
>
{{
$t
(
'
分配客服
'
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:setting']"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"handleSetting(scope.row)"
>
{{
$t
(
"
设置
"
)
}}
</el-button
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 移交 -->
<!-- 移交 -->
<el-dialog
<el-dialog
center
:title=
"$t('客服')"
:visible.sync=
"transferShow"
width=
"30%"
>
center
<div
style=
"width: 100%; min-height: 200px; text-align: center"
>
:title=
"$t('客服')"
<!-- <el-radio-group v-model="service">-->
:visible.sync=
"transferShow"
<!-- <el-radio style="margin: 5px;" v-for="(item,index) in customerServiceList" :key="index" :label="item.id">{{item.nickname}}</el-radio>-->
width=
"30%"
>
<!-- </el-radio-group>-->
<div
style=
"width: 100%;min-height: 200px;text-align: center;"
>
<!-- <el-radio-group v-model="service">-->
<!-- <el-radio style="margin: 5px;" v-for="(item,index) in customerServiceList" :key="index" :label="item.id">{{item.nickname}}</el-radio>-->
<!-- </el-radio-group>-->
<el-select
filterable
v-model=
"service"
>
<el-select
filterable
v-model=
"service"
>
<el-option
v-for=
"(item,index) in customerServiceList"
:key=
"index"
:label=
"item.nickname"
:value=
"item.id"
></el-option>
<el-option
v-for=
"(item,
index) in customerServiceList"
:key=
"index"
:label=
"item.nickname"
:value=
"item.id"
></el-option>
</el-select>
</el-select>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"transferShow = false"
>
{{$t('取 消')
}}
</el-button>
<el-button
@
click=
"transferShow = false"
>
{{ $t("取 消")
}}
</el-button>
<el-button
type=
"primary"
@
click=
"transferFn"
>
{{$t('确 定')
}}
</el-button>
<el-button
type=
"primary"
@
click=
"transferFn"
>
{{ $t("确 定")
}}
</el-button>
</span>
</span>
</el-dialog>
</el-dialog>
<!-- 分页组件 -->
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<transfer-customer
:show.sync=
"batchTransferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<transfer-customer
:show.sync=
"batchTransferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<customer-follow
ref=
"customerFollow"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-follow
ref=
"customerFollow"
@
close=
"customerFollowVisible = false"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-setting
<customer-setting
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
createCustomer
,
updateCustomer
,
deleteCustomer
,
getCustomer
,
handOverCustomer
,
exportCustomerExcel
,
getCustomerToBeAssigned
,
waitDistributionExportExcel
,
competitorListAll
}
from
"
@/api/ecw/customer
"
createCustomer
,
updateCustomer
,
deleteCustomer
,
getCustomer
,
handOverCustomer
,
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
exportCustomerExcel
,
getCustomerToBeAssigned
,
waitDistributionExportExcel
,
import
upload
from
"
@/components/ImageUpload
"
competitorListAll
import
{
listServiceUser
,
listAllSimpl
}
from
"
@/api/system/user
"
}
from
"
@/api/ecw/customer
"
;
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
'
@/utils/dict
'
;
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
import
upload
from
'
@/components/ImageUpload
'
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
import
{
listServiceUser
,
listAllSimpl
}
from
"
@/api/system/user
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
;
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
;
import
CustomerSetting
from
"
../customer/components/customerSetting.vue
"
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
;
import
AreaCodeSelector
from
"
@/components/AreaCodeSelector/index.vue
"
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
;
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
import
CustomerSetting
from
"
../customer/components/customerSetting.vue
"
;
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
AreaCodeSelector
from
"
@/components/AreaCodeSelector/index.vue
"
;
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow.vue
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
;
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
{
getNodeList
}
from
"
@/api/ecw/node
"
;
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
;
import
{
getProductList
}
from
"
@/api/ecw/product
"
;
import
{
listMySimpleDepts
}
from
"
@/api/system/dept
"
;
export
default
{
export
default
{
name
:
"
EcwCustomertobeassignedIndex
"
,
name
:
"
EcwCustomertobeassignedIndex
"
,
activated
()
{
activated
()
{
this
.
getList
()
this
.
getList
()
},
},
components
:
{
components
:
{
CompetitorSelector
,
CompetitorSelector
,
Contacts
,
Contacts
,
...
@@ -434,7 +408,7 @@ export default {
...
@@ -434,7 +408,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
customerFollowVisible
:
false
,
customerFollowVisible
:
false
,
batchTransferShow
:
false
,
batchTransferShow
:
false
,
getDictDatas
,
getDictDatas
,
getDictDatas2
,
getDictDatas2
,
DICT_TYPE
,
DICT_TYPE
,
...
@@ -453,11 +427,11 @@ export default {
...
@@ -453,11 +427,11 @@ export default {
// 是否显示弹出层
// 是否显示弹出层
open
:
false
,
open
:
false
,
dateRangeCreateTime
:
[],
dateRangeCreateTime
:
[],
customerServiceList
:[],
customerServiceList
:
[],
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
/*number: null,
/*number: null,
name: null,
name: null,
level: null,
level: null,
...
@@ -477,25 +451,25 @@ export default {
...
@@ -477,25 +451,25 @@ export default {
form
:
{},
form
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户名称不能为空
'
),
trigger
:
"
blur
"
}],
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户名称不能为空
"
),
trigger
:
"
blur
"
}],
country
:
[{
required
:
true
,
message
:
this
.
$t
(
'
国家不能为空
'
),
trigger
:
"
blur
"
}],
country
:
[{
required
:
true
,
message
:
this
.
$t
(
"
国家不能为空
"
),
trigger
:
"
blur
"
}],
level
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户等级不能为空
'
),
trigger
:
"
blur
"
}],
level
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户等级不能为空
"
),
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户类别不能为空
'
),
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户类别不能为空
"
),
trigger
:
"
blur
"
}],
// createTime: [{ required: true, message: this.$t("创建时间不能为空"), trigger: "blur" }],
// createTime: [{ required: true, message: this.$t("创建时间不能为空"), trigger: "blur" }],
source
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户来源不能为空
'
),
trigger
:
"
blur
"
}],
source
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户来源不能为空
"
),
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户经理不能为空
'
),
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户经理不能为空
"
),
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户状态不能为空
'
),
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户状态不能为空
"
),
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
this
.
$t
(
'
创建人不能为空
'
),
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
this
.
$t
(
"
创建人不能为空
"
),
trigger
:
"
blur
"
}]
},
},
// 网点
// 网点
nodeList
:
[],
nodeList
:
[],
showLine
:
false
,
showLine
:
false
,
service
:
undefined
,
//客服
service
:
undefined
,
//客服
transferData
:
undefined
,
//移交数据
transferData
:
undefined
,
//移交数据
transferShow
:
false
,
transferShow
:
false
,
creditList
:[],
creditList
:
[],
selectCustomerList
:[],
selectCustomerList
:
[],
countryList
:[],
countryList
:
[],
enterOpenSeaTime
:
[],
enterOpenSeaTime
:
[],
customerServiceConfirmedTime
:
[],
customerServiceConfirmedTime
:
[],
firstDealTime
:
[],
firstDealTime
:
[],
...
@@ -505,48 +479,48 @@ export default {
...
@@ -505,48 +479,48 @@ export default {
allSimplList
:
[],
allSimplList
:
[],
weightYearly
:
{
weightYearly
:
{
key
:
"
eqNumberKey
"
,
key
:
"
eqNumberKey
"
,
value
:
""
,
value
:
""
},
},
numYearly
:
{
numYearly
:
{
key
:
"
eqNumberKey
"
,
key
:
"
eqNumberKey
"
,
value
:
""
,
value
:
""
},
},
productTypeList
:
[],
productTypeList
:
[],
productList
:
[],
productList
:
[],
competitorList
:
[],
competitorList
:
[],
deptList
:
[]
,
deptList
:
[]
}
;
}
},
},
created
()
{
created
()
{
getCountryListAll
().
then
(
r
=>
{
getCountryListAll
().
then
(
(
r
)
=>
{
console
.
log
(
r
,
'
国家
'
)
console
.
log
(
r
,
"
国家
"
)
this
.
countryList
=
r
.
data
this
.
countryList
=
r
.
data
})
})
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
(
r
=>
{
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
((
r
)
=>
{
this
.
creditList
=
r
.
data
.
list
this
.
creditList
=
r
.
data
.
list
})
})
this
.
getList
()
;
this
.
getList
()
listServiceUser
().
then
(
r
=>
{
listServiceUser
().
then
(
(
r
)
=>
{
console
.
log
(
r
,
'
客服
'
);
console
.
log
(
r
,
"
客服
"
)
this
.
customerServiceList
=
r
.
data
;
this
.
customerServiceList
=
r
.
data
})
})
// getNodeList().then(r => {
// getNodeList().then(r => {
// this.nodeList = r.data
// this.nodeList = r.data
// })
// })
this
.
getCustomerSelect
()
;
this
.
getCustomerSelect
()
getNodeList
().
then
((
r
)
=>
{
getNodeList
().
then
((
r
)
=>
{
this
.
getNodeLists
=
r
.
data
;
this
.
getNodeLists
=
r
.
data
})
;
})
listAllSimpl
().
then
((
r
)
=>
{
listAllSimpl
().
then
((
r
)
=>
{
this
.
allSimplList
=
r
.
data
;
this
.
allSimplList
=
r
.
data
})
;
})
getProductTypeList
().
then
((
r
)
=>
{
getProductTypeList
().
then
((
r
)
=>
{
this
.
productTypeList
=
r
.
data
;
this
.
productTypeList
=
r
.
data
})
;
})
competitorListAll
().
then
((
r
)
=>
{
competitorListAll
().
then
((
r
)
=>
{
this
.
competitorList
=
r
.
data
;
this
.
competitorList
=
r
.
data
})
})
listMySimpleDepts
().
then
(
response
=>
{
listMySimpleDepts
().
then
(
(
response
)
=>
{
this
.
deptList
=
response
.
data
this
.
deptList
=
response
.
data
})
})
},
},
...
@@ -560,8 +534,8 @@ export default {
...
@@ -560,8 +534,8 @@ export default {
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
},
},
handleSelectionChange
(
val
){
handleSelectionChange
(
val
)
{
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
this
.
selectCustomerList
=
val
.
map
(
(
i
)
=>
i
.
id
)
},
},
handleCustomerFollowLink
(
row
)
{
handleCustomerFollowLink
(
row
)
{
this
.
customerFollowVisible
=
true
this
.
customerFollowVisible
=
true
...
@@ -571,33 +545,31 @@ export default {
...
@@ -571,33 +545,31 @@ export default {
},
},
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
// 处理查询参数
// 处理查询参数
let
params
=
{
...
this
.
queryParams
,
...
this
.
combinedQueryParams
};
let
params
=
{
...
this
.
queryParams
,
...
this
.
combinedQueryParams
}
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
,
false
)
// 执行查询
// 执行查询
getCustomerToBeAssigned
(
params
).
then
(
response
=>
{
getCustomerToBeAssigned
(
params
).
then
(
(
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
list
=
response
.
data
.
list
this
.
total
=
response
.
data
.
total
;
this
.
total
=
response
.
data
.
total
this
.
loading
=
false
;
this
.
loading
=
false
})
;
})
},
},
remoteMethod
(
val
)
{
remoteMethod
(
val
)
{
this
.
getCustomerSelect
(
val
)
;
this
.
getCustomerSelect
(
val
)
},
},
getCustomerSelect
(
val
=
""
)
{
getCustomerSelect
(
val
=
""
)
{
getCustomerSelect
({
pageNo
:
1
,
pageSize
:
30
,
searchKey
:
val
}).
then
(
getCustomerSelect
({
pageNo
:
1
,
pageSize
:
30
,
searchKey
:
val
}).
then
((
res
)
=>
{
(
res
)
=>
{
this
.
customerSelect
=
res
.
data
.
list
this
.
customerSelect
=
res
.
data
.
list
;
})
}
);
},
},
handleSelectProductType
(
val
)
{
handleSelectProductType
(
val
)
{
if
(
val
&&
val
.
length
>=
1
)
{
if
(
val
&&
val
.
length
>=
1
)
{
this
.
queryParams
.
productIds
=
[]
this
.
queryParams
.
productIds
=
[]
getProductList
({
typeIds
:
val
}).
then
((
r
)
=>
{
getProductList
({
typeIds
:
val
}).
then
((
r
)
=>
{
this
.
productList
=
r
.
data
this
.
productList
=
r
.
data
})
;
})
}
else
{
}
else
{
this
.
queryParams
.
productIds
=
[]
this
.
queryParams
.
productIds
=
[]
this
.
productList
=
[]
this
.
productList
=
[]
...
@@ -605,8 +577,8 @@ export default {
...
@@ -605,8 +577,8 @@ export default {
},
},
/** 取消按钮 */
/** 取消按钮 */
cancel
()
{
cancel
()
{
this
.
open
=
false
;
this
.
open
=
false
this
.
reset
()
;
this
.
reset
()
},
},
/** 表单重置 */
/** 表单重置 */
reset
()
{
reset
()
{
...
@@ -645,44 +617,44 @@ export default {
...
@@ -645,44 +617,44 @@ export default {
taxRate
:
undefined
,
taxRate
:
undefined
,
remarks
:
undefined
,
remarks
:
undefined
,
arrivalConfirm
:
undefined
,
arrivalConfirm
:
undefined
,
weightUnit
:
undefined
,
weightUnit
:
undefined
}
;
}
this
.
resetForm
(
"
form
"
)
;
this
.
resetForm
(
"
form
"
)
},
},
/** 搜索按钮操作 */
/** 搜索按钮操作 */
handleQuery
()
{
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
queryParams
.
pageNo
=
1
this
.
getList
()
;
this
.
getList
()
},
},
/** 重置按钮操作 */
/** 重置按钮操作 */
resetQuery
()
{
resetQuery
()
{
this
.
dateRangeCreateTime
=
[]
;
this
.
dateRangeCreateTime
=
[]
this
.
enterOpenSeaTime
=
[]
this
.
enterOpenSeaTime
=
[]
this
.
customerServiceConfirmedTime
=
[]
this
.
customerServiceConfirmedTime
=
[]
this
.
firstDealTime
=
[]
this
.
firstDealTime
=
[]
this
.
resetForm
(
"
queryForm
"
)
;
this
.
resetForm
(
"
queryForm
"
)
this
.
queryParams
=
{
this
.
queryParams
=
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
}
;
}
this
.
weightYearly
.
value
=
""
;
this
.
weightYearly
.
value
=
""
this
.
numYearly
.
value
=
""
;
this
.
numYearly
.
value
=
""
this
.
handleQuery
()
;
this
.
handleQuery
()
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
$router
.
push
(
'
/customer/add-edit/0
'
)
this
.
$router
.
push
(
"
/customer/add-edit/0
"
)
// this.reset();
// this.reset();
// this.open = true;
// this.open = true;
// this.title = this.$t("添加客户");
// this.title = this.$t("添加客户");
},
},
/** 查看按钮操作 */
/** 查看按钮操作 */
handleView
(
row
)
{
handleView
(
row
)
{
this
.
$router
.
push
(
'
/customer/query/
'
+
row
.
id
)
this
.
$router
.
push
(
"
/customer/query/
"
+
row
.
id
)
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit-distribution/
'
+
row
.
id
)
this
.
$router
.
push
(
"
/customer/edit-distribution/
"
+
row
.
id
)
// this.reset();
// this.reset();
// const id = row.id;
// const id = row.id;
// getCustomer(id).then(response => {
// getCustomer(id).then(response => {
...
@@ -693,120 +665,127 @@ export default {
...
@@ -693,120 +665,127 @@ export default {
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
(
valid
)
=>
{
if
(
!
valid
)
{
if
(
!
valid
)
{
// return;
// return;
}
}
// 修改的提交
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
updateCustomer
(
this
.
form
).
then
(
response
=>
{
updateCustomer
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
修改成功
'
));
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
))
this
.
open
=
false
;
this
.
open
=
false
this
.
getList
()
;
this
.
getList
()
})
;
})
return
;
return
}
}
// 添加的提交
// 添加的提交
createCustomer
(
this
.
form
).
then
(
response
=>
{
createCustomer
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
新增成功
'
));
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
新增成功
"
))
this
.
open
=
false
;
this
.
open
=
false
this
.
getList
()
;
this
.
getList
()
})
;
})
})
;
})
},
},
/** 移交按钮操作 */
/** 移交按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
row
.
number
+
this
.
$t
(
'
"的数据项?
'
)).
then
(
function
()
{
this
.
$modal
return
deleteCustomer
(
id
);
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
row
.
number
+
this
.
$t
(
'
"的数据项?
'
))
}).
then
(()
=>
{
.
then
(
function
()
{
this
.
getList
();
return
deleteCustomer
(
id
)
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
删除成功
'
));
})
}).
catch
(()
=>
{});
.
then
(()
=>
{
this
.
getList
()
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
删除成功
"
))
})
.
catch
(()
=>
{})
},
},
//分配客服
//分配客服
distribution
(
row
){
distribution
(
row
)
{
// this.service = row.customerService;
// this.service = row.customerService;
// this.transferData = row;
// this.transferData = row;
this
.
selectCustomerList
=
[
row
.
id
]
this
.
selectCustomerList
=
[
row
.
id
]
this
.
batchTransferShow
=
true
;
this
.
batchTransferShow
=
true
},
},
transferFn
(){
transferFn
()
{
if
(
!
this
.
service
)
{
if
(
!
this
.
service
)
{
return
this
.
$message
.
warning
(
this
.
$t
(
'
请选择客户经理!
'
));
return
this
.
$message
.
warning
(
this
.
$t
(
"
请选择客户经理!
"
))
}
}
handOverCustomer
({
handOverCustomer
({
customerServiceId
:
this
.
service
,
customerServiceId
:
this
.
service
,
customerIdList
:
[
this
.
transferData
.
id
]
customerIdList
:
[
this
.
transferData
.
id
]
}).
then
(
r
=>
{
}).
then
(
(
r
)
=>
{
if
(
r
.
code
===
0
)
{
if
(
r
.
code
===
0
)
{
this
.
transferShow
=
false
;
this
.
transferShow
=
false
this
.
service
=
''
;
this
.
service
=
""
this
.
getList
()
;
this
.
getList
()
this
.
$message
.
success
(
this
.
$t
(
'
移交成功!
'
));
this
.
$message
.
success
(
this
.
$t
(
"
移交成功!
"
))
}
}
})
})
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出待分配客户数据项?
'
)).
then
(
response
=>
{
this
.
$modal
waitDistributionExportExcel
().
then
(()
=>
{
.
confirm
(
this
.
$t
(
"
是否确认导出待分配客户数据项?
"
))
this
.
$message
.
success
(
this
.
$t
(
'
已加入导出队列,请稍后在下载日志中下载
'
))
.
then
((
response
)
=>
{
waitDistributionExportExcel
().
then
(()
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
已加入导出队列,请稍后在下载日志中下载
"
))
})
})
})
}).
catch
(()
=>
{});
.
catch
(()
=>
{})
},
},
handleSetting
(
row
)
{
handleSetting
(
row
)
{
this
.
$refs
[
'
customerSetting
'
].
dialogVisible
=
true
this
.
$refs
[
"
customerSetting
"
].
dialogVisible
=
true
this
.
$nextTick
(
_
=>
{
this
.
$nextTick
(
(
_
)
=>
{
this
.
$refs
[
'
customerSetting
'
].
init
(
row
.
id
)
this
.
$refs
[
"
customerSetting
"
].
init
(
row
.
id
)
})
})
},
},
getBusiCountryNames
(
ids
)
{
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
idsArr
=
ids
.
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
this
.
countryList
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getPickupPointNames
(
ids
)
{
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
idsArr
=
ids
.
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
this
.
getNodeLists
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getProductTypeNames
(
ids
)
{
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
toString
().
split
(
'
,
'
)
const
idsArr
=
ids
.
toString
().
split
(
"
,
"
)
const
strArr
=
[]
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
this
.
productTypeList
.
forEach
(
(
item
)
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
}
})
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
return
strArr
.
length
>
0
?
strArr
.
join
(
"
,
"
)
:
null
}
else
{
}
else
{
return
null
return
null
}
}
},
},
getPromoterName
(
id
)
{
getPromoterName
(
id
)
{
if
(
id
)
{
if
(
id
)
{
let
strName
=
''
let
strName
=
""
for
(
const
item
of
this
.
customerSelectFn
)
{
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
strName
=
item
.
name
break
break
...
@@ -821,7 +800,7 @@ export default {
...
@@ -821,7 +800,7 @@ export default {
changeCustomerDefaultPay
({
changeCustomerDefaultPay
({
customerIdList
:
this
.
selectCustomerList
,
customerIdList
:
this
.
selectCustomerList
,
defaultPay
:
true
defaultPay
:
true
}).
then
(
_
=>
{
}).
then
(
(
_
)
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
getList
()
this
.
getList
()
})
})
...
@@ -830,7 +809,7 @@ export default {
...
@@ -830,7 +809,7 @@ export default {
changeCustomerNoConsignee
({
changeCustomerNoConsignee
({
customerIdList
:
this
.
selectCustomerList
,
customerIdList
:
this
.
selectCustomerList
,
noConsigee
:
true
noConsigee
:
true
}).
then
(
_
=>
{
}).
then
(
(
_
)
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
getList
()
this
.
getList
()
})
})
...
@@ -839,23 +818,23 @@ export default {
...
@@ -839,23 +818,23 @@ export default {
changeCustomerDefaultBilling
({
changeCustomerDefaultBilling
({
customerIdList
:
this
.
selectCustomerList
,
customerIdList
:
this
.
selectCustomerList
,
defaultBilling
:
true
defaultBilling
:
true
}).
then
(
_
=>
{
}).
then
(
(
_
)
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
getList
()
this
.
getList
()
})
})
}
,
}
},
},
watch
:{
watch
:
{
selectCustomerList
(
val
){
selectCustomerList
(
val
)
{
if
(
val
.
length
===
0
)
{
if
(
val
.
length
===
0
)
{
this
.
getList
()
this
.
getList
()
this
.
$refs
.
multipleTable
.
clearSelection
()
;
this
.
$refs
.
multipleTable
.
clearSelection
()
}
}
}
,
}
},
},
computed
:{
computed
:
{
isChinese
(){
isChinese
()
{
return
this
.
$i18n
.
locale
===
'
zh_CN
'
return
this
.
$i18n
.
locale
===
"
zh_CN
"
},
},
channel
()
{
channel
()
{
return
(
val
)
=>
{
return
(
val
)
=>
{
...
@@ -864,20 +843,18 @@ export default {
...
@@ -864,20 +843,18 @@ export default {
.
filter
((
i
)
=>
(
val
.
split
(
"
,
"
)
||
[]).
includes
(
i
.
value
))
.
filter
((
i
)
=>
(
val
.
split
(
"
,
"
)
||
[]).
includes
(
i
.
value
))
.
map
((
i
)
=>
(
this
.
isChinese
?
i
.
label
:
i
.
labelEn
))
.
map
((
i
)
=>
(
this
.
isChinese
?
i
.
label
:
i
.
labelEn
))
.
join
(
"
,
"
)
.
join
(
"
,
"
)
:
""
;
:
""
}
;
}
},
},
customerSelectFn
()
{
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
let
i
=
this
.
customerSelect
.
find
((
item
)
=>
item
.
id
===
this
.
recommended
[
0
].
id
)
(
item
)
=>
item
.
id
===
this
.
recommended
[
0
].
id
);
if
(
!
i
)
{
if
(
!
i
)
{
this
.
customerSelect
.
push
(
this
.
recommended
[
0
])
;
this
.
customerSelect
.
push
(
this
.
recommended
[
0
])
}
}
return
this
.
customerSelect
;
return
this
.
customerSelect
}
else
{
}
else
{
return
this
.
customerSelect
;
return
this
.
customerSelect
}
}
},
},
combinedQueryParams
()
{
combinedQueryParams
()
{
...
@@ -899,26 +876,26 @@ export default {
...
@@ -899,26 +876,26 @@ export default {
queryParams
.
endFirstDealTime
=
this
.
firstDealTime
[
1
]
queryParams
.
endFirstDealTime
=
this
.
firstDealTime
[
1
]
}
}
if
(
this
.
weightYearly
.
value
)
{
if
(
this
.
weightYearly
.
value
)
{
let
key
=
'
eqWeightYearly
'
let
key
=
"
eqWeightYearly
"
if
(
this
.
weightYearly
.
key
==
'
leNumberKey
'
)
{
if
(
this
.
weightYearly
.
key
==
"
leNumberKey
"
)
{
key
=
'
leWeightYearly
'
key
=
"
leWeightYearly
"
}
else
if
(
this
.
weightYearly
.
key
==
'
geNumberKey
'
)
{
}
else
if
(
this
.
weightYearly
.
key
==
"
geNumberKey
"
)
{
key
=
'
geWeightYearly
'
key
=
"
geWeightYearly
"
}
}
queryParams
[
key
]
=
this
.
weightYearly
.
value
;
queryParams
[
key
]
=
this
.
weightYearly
.
value
}
}
if
(
this
.
numYearly
.
value
)
{
if
(
this
.
numYearly
.
value
)
{
let
key
=
'
eqNumYearly
'
let
key
=
"
eqNumYearly
"
if
(
this
.
numYearly
.
key
==
'
leNumberKey
'
)
{
if
(
this
.
numYearly
.
key
==
"
leNumberKey
"
)
{
key
=
'
leNumYearly
'
key
=
"
leNumYearly
"
}
else
if
(
this
.
numYearly
.
key
==
'
geNumberKey
'
)
{
}
else
if
(
this
.
numYearly
.
key
==
"
geNumberKey
"
)
{
key
=
'
geNumYearly
'
key
=
"
geNumYearly
"
}
}
queryParams
[
key
]
=
this
.
numYearly
.
value
;
queryParams
[
key
]
=
this
.
numYearly
.
value
}
}
return
queryParams
;
return
queryParams
}
,
}
}
}
}
;
}
</
script
>
</
script
>
src/views/ecw/myCustomerService/index.vue
View file @
1ad37a34
...
@@ -17,16 +17,16 @@
...
@@ -17,16 +17,16 @@
<el-form-item
:label=
"$t('联系方式')"
>
<el-form-item
:label=
"$t('联系方式')"
>
<el-input
:placeholder=
"$t('请输入联系方式')"
clearable
v-model.trim=
"queryParams.defaultContactPhone"
@
input=
"queryParams.defaultContactPhone = queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input>
<el-input
:placeholder=
"$t('请输入联系方式')"
clearable
v-model.trim=
"queryParams.defaultContactPhone"
@
input=
"queryParams.defaultContactPhone = queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input>
</el-form-item>
</el-form-item>
<!--
<el-form-item
:label=
"$t('部门')"
v-if=
"path != '/customer/department-customers'"
>
-->
<!--
<el-form-item
:label=
"$t('部门')"
v-if=
"path != '/customer/department-customers'"
>
-->
<!--
<el-select
v-model=
"queryParams.deptIds"
:placeholder=
"$t('请选择部门')"
>
-->
<!--
<el-select
v-model=
"queryParams.deptIds"
:placeholder=
"$t('请选择部门')"
>
-->
<!--
<el-option
v-for=
"item in deptList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
-->
<!--
<el-option
v-for=
"item in deptList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
-->
<!--
</el-select>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
-->
<!--
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
-->
<!--
<el-select
multiple
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
size=
"small"
@
change=
"handleQuery"
>
-->
<!--
<el-select
multiple
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
size=
"small"
@
change=
"handleQuery"
>
-->
<!--
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
-->
<!--
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
-->
<!--
</el-select>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<el-form-item
:label=
"$t('客户来源')"
prop=
"source"
>
<el-form-item
:label=
"$t('客户来源')"
prop=
"source"
>
<el-select
multiple
clearable
v-model=
"queryParams.source"
:placeholder=
"$t('请选择客户来源')"
size=
"small"
@
change=
"handleQuery"
>
<el-select
multiple
clearable
v-model=
"queryParams.source"
:placeholder=
"$t('请选择客户来源')"
size=
"small"
@
change=
"handleQuery"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
...
@@ -91,9 +91,9 @@
...
@@ -91,9 +91,9 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('主要竞争对手')"
v-show=
"showSearch"
>
<el-form-item
:label=
"$t('主要竞争对手')"
v-show=
"showSearch"
>
<el-select
multiple
filterable
clearable
v-model=
"queryParams.competitorIds"
:placeholder=
"$t('请选择竞争对手')"
size=
"small"
@
change=
"handleQuery"
>
<el-select
multiple
filterable
clearable
v-model=
"queryParams.competitorIds"
:placeholder=
"$t('请选择竞争对手')"
size=
"small"
@
change=
"handleQuery"
>
<el-option
v-for=
"item in competitorList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
<el-option
v-for=
"item in competitorList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('年度发货次数')"
v-show=
"showSearch"
>
<el-form-item
:label=
"$t('年度发货次数')"
v-show=
"showSearch"
>
<el-input
v-model.trim=
"numYearly.value"
:placeholder=
"$t('请输入数字')"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"numYearly.value = numYearly.value.replace(/\s+/g, '')"
>
<el-input
v-model.trim=
"numYearly.value"
:placeholder=
"$t('请输入数字')"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"numYearly.value = numYearly.value.replace(/\s+/g, '')"
>
...
@@ -222,21 +222,21 @@
...
@@ -222,21 +222,21 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
></el-table-column>
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <el-table-column :label="$t('主联系方式')" prop="defaultContactPhone">-->
<!-- <template v-slot="{ row }">-->
<!-- <template v-slot="{ row }">-->
<!-- +{{ row.defaultContactPhone }} <br />-->
<!-- +{{ row.defaultContactPhone }} <br />-->
<!-- <contacts :id="row.id">-->
<!-- <contacts :id="row.id">-->
<!-- <el-button type="text">更多</el-button>-->
<!-- <el-button type="text">更多</el-button>-->
<!-- </contacts>-->
<!-- </contacts>-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进时间')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -373,7 +373,7 @@
...
@@ -373,7 +373,7 @@
<!-- 分页组件 -->
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
:customer-service=
"customerService"
:customer-number=
"customerNumber"
ref=
"CustomerFollowList"
v-if=
"customerFollowVisible"
></customer-follow-list>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
:customer-service=
"customerService"
:customer-number=
"customerNumber"
ref=
"CustomerFollowList"
v-if=
"customerFollowVisible"
></customer-follow-list>
<customer-follow
ref=
"customerFollow"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-follow
ref=
"customerFollow"
@
close=
"customerFollowVisible = false"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
/>
<customer-complaints
ref=
"customerComplaint"
:customer-id.sync=
"customerId"
></customer-complaints>
<customer-complaints
ref=
"customerComplaint"
:customer-id.sync=
"customerId"
></customer-complaints>
<transfer-customer
:show.sync=
"show"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<transfer-customer
:show.sync=
"show"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<customer-setting
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
<customer-setting
ref=
"customerSetting"
@
refresh=
"getList"
></customer-setting>
...
@@ -399,7 +399,7 @@ import { getNodeList } from "@/api/ecw/node"
...
@@ -399,7 +399,7 @@ import { getNodeList } from "@/api/ecw/node"
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
import
{
getCustomerSelect
,
changeCustomerDefaultPay
,
changeCustomerNoConsignee
,
changeCustomerDefaultBilling
}
from
"
@/api/ecw/customer
"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
{
getProductList
}
from
"
@/api/ecw/product
"
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
;
import
CompetitorSelector
from
"
@/components/CompetitorSelector/index.vue
"
export
default
{
export
default
{
name
:
"
EcwMyCustomerServiceIndex
"
,
name
:
"
EcwMyCustomerServiceIndex
"
,
components
:
{
components
:
{
...
...
src/views/ecw/offer/detail.vue
View file @
1ad37a34
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<span
style=
"font-size: 15px"
></span>
<span
style=
"font-size: 15px"
></span>
<div
class=
"btns"
>
<div
class=
"btns"
>
<el-button
v-hasPermi=
"['ecw:offer:update']"
size=
"mini"
type=
"primary"
v-if=
"[4, 5, 6].indexOf(list.status) == -1"
@
click=
"$router.push('edit?id=' + offerId)"
>
{{
$t
(
"
编辑
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:update']"
size=
"mini"
type=
"primary"
v-if=
"[4, 5, 6].indexOf(list.status) == -1"
@
click=
"$router.push('edit?id=' + offerId)"
>
{{
$t
(
"
编辑
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:loglist']"
type=
"primary"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"handleAdd"
>
{{
$t
(
"
跟进
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:loglist']"
type=
"primary"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"handleAdd
Offer
"
>
{{
$t
(
"
跟进
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:result']"
type=
"primary"
v-if=
"[3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"toResult"
>
{{
$t
(
"
结果
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:result']"
type=
"primary"
v-if=
"[3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"toResult"
>
{{
$t
(
"
结果
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:discount', 'ecw:offer:commission']"
size=
"mini"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
type=
"primary"
@
click.native=
"$router.push('/offer/special?offerId=' + offerId)"
>
{{
$t
(
"
特价
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:discount', 'ecw:offer:commission']"
size=
"mini"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
type=
"primary"
@
click.native=
"$router.push('/offer/special?offerId=' + offerId)"
>
{{
$t
(
"
特价
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:delete']"
type=
"danger"
size=
"mini"
@
click=
"handleDelete"
>
{{
$t
(
"
删除
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:delete']"
type=
"danger"
size=
"mini"
@
click=
"handleDelete"
>
{{
$t
(
"
删除
"
)
}}
</el-button>
...
@@ -313,7 +313,7 @@
...
@@ -313,7 +313,7 @@
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
<customer-follow
ref=
"customerFollow"
v-if=
"customerFollowVisible"
:customerService=
"curData.salesmanId"
:customerNumber=
"curData.customerNumber"
:offerId=
"offerId"
/>
<customer-follow
ref=
"customerFollow"
v-if=
"customerFollowVisible"
@
close=
"customerFollowVisible = false"
:customerService=
"curData.salesmanId"
:customerNumber=
"curData.customerNumber"
:offerId=
"offerId"
/>
</div>
</div>
</template>
</template>
...
@@ -521,14 +521,13 @@ export default {
...
@@ -521,14 +521,13 @@ export default {
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
))
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
))
getProductAttrList
().
then
((
res
)
=>
(
this
.
productAttrList
=
res
.
data
))
getProductAttrList
().
then
((
res
)
=>
(
this
.
productAttrList
=
res
.
data
))
if
(
this
.
$route
.
query
.
offerId
)
{
if
(
this
.
$route
.
query
.
offerId
)
{
this
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
offerId
=
parseInt
(
this
.
$route
.
query
.
offerId
)
this
.
getList
()
this
.
getList
()
}
}
},
},
methods
:
{
methods
:
{
handleAddOffer
(
row
)
{
handleAddOffer
()
{
console
.
log
(
row
)
this
.
curData
=
this
.
list
this
.
curData
=
row
this
.
customerFollowVisible
=
true
this
.
customerFollowVisible
=
true
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
[
"
customerFollow
"
].
handleAdd
()
this
.
$refs
[
"
customerFollow
"
].
handleAdd
()
...
@@ -784,4 +783,13 @@ export default {
...
@@ -784,4 +783,13 @@ export default {
.card
{
.card
{
margin-top
:
20px
;
margin-top
:
20px
;
}
}
/
deep
/
.el-table__fixed-footer-wrapper
tbody
td
.el-table__cell
{
font-size
:
16px
;
font-weight
:
bold
;
}
/
deep
/
.el-table__footer-wrapper
tbody
td
.el-table__cell
{
font-size
:
20px
;
font-weight
:
bold
;
}
</
style
>
</
style
>
src/views/ecw/offer/logListCommon.vue
View file @
1ad37a34
...
@@ -52,10 +52,8 @@
...
@@ -52,10 +52,8 @@
</el-form-item>
</el-form-item>
</div>
</div>
</el-form>
</el-form>
</div>
</div>
<!-- 操作工具栏 -->
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
...
@@ -70,7 +68,7 @@
...
@@ -70,7 +68,7 @@
</el-button>
</el-button>
</el-col>
</el-col>
</el-row>
</el-row>
<el-table
ref=
"multipleTable"
:data=
"customerFollowList"
v-loading=
"loading"
@
selection-change=
"handleSelectionChange"
style=
"width: 100%"
>
<el-table
ref=
"multipleTable"
:data=
"customerFollowList"
v-loading=
"loading"
@
selection-change=
"handleSelectionChange"
style=
"width: 100%"
>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
type=
"selection"
width=
"55"
fixed
></el-table-column>
<el-table-column
prop=
"number"
:label=
"$t('编号')"
align=
"center"
fixed
>
<el-table-column
prop=
"number"
:label=
"$t('编号')"
align=
"center"
fixed
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
@@ -125,7 +123,7 @@
...
@@ -125,7 +123,7 @@
</el-table>
</el-table>
<pagination
:total=
"customerFollowTotal"
:page.sync=
"followForm.pageNo"
:limit.sync=
"followForm.pageSize"
@
pagination=
"getCustomerFollowList"
/>
<pagination
:total=
"customerFollowTotal"
:page.sync=
"followForm.pageNo"
:limit.sync=
"followForm.pageSize"
@
pagination=
"getCustomerFollowList"
/>
</el-card>
</el-card>
<customer-follow
ref=
"customerFollow"
@
handleCustomerFollowAdd=
"handleCustomerFollowAdd"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
:customer-id=
"customerId"
:customerService=
"customerService"
:customerNumber=
"customerNumber"
/>
<customer-follow
ref=
"customerFollow"
@
close=
"customerFollowVisible = false"
@
handleCustomerFollowAdd=
"handleCustomerFollowAdd"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
:customer-id=
"customerId"
:customerService=
"customerService"
:customerNumber=
"customerNumber"
/>
<customer-follow-update-status
:show.sync=
"updateStatus"
:followup-ids.sync=
"selectCustomerFollowList"
></customer-follow-update-status>
<customer-follow-update-status
:show.sync=
"updateStatus"
:followup-ids.sync=
"selectCustomerFollowList"
></customer-follow-update-status>
</div>
</div>
</template>
</template>
...
@@ -135,10 +133,10 @@ import { getCustomerFollowList, exportCustomerFollow } from "@/api/ecw/customerF
...
@@ -135,10 +133,10 @@ import { getCustomerFollowList, exportCustomerFollow } from "@/api/ecw/customerF
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow
"
import
UserSelector
from
"
@/components/UserSelector
"
import
UserSelector
from
"
@/components/UserSelector
"
import
customerFollowUpdateStatus
from
"
@/views/ecw/customer/components/customerFollowUpdateStatus.vue
"
;
import
customerFollowUpdateStatus
from
"
@/views/ecw/customer/components/customerFollowUpdateStatus.vue
"
export
default
{
export
default
{
name
:
"
logListCommon
"
,
name
:
"
logListCommon
"
,
components
:
{
customerFollowUpdateStatus
,
UserSelector
,
CustomerFollow
},
components
:
{
customerFollowUpdateStatus
,
UserSelector
,
CustomerFollow
},
props
:
[
"
customerId
"
,
"
offerId
"
,
"
customerService
"
,
"
customerNumber
"
],
props
:
[
"
customerId
"
,
"
offerId
"
,
"
customerService
"
,
"
customerNumber
"
],
data
()
{
data
()
{
return
{
return
{
...
...
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