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
8ff9ac3d
Commit
8ff9ac3d
authored
May 23, 2024
by
lanbaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-05-23提交
parent
d8e046a3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
2702 additions
and
1671 deletions
+2702
-1671
index.vue
src/components/ChooseContactDialog/index.vue
+135
-104
index.vue
src/views/ecw/customer/index.vue
+980
-469
edit.vue
src/views/ecw/offer/edit.vue
+1581
-1096
index.vue
src/views/report/vz/index.vue
+6
-2
No files found.
src/components/ChooseContactDialog/index.vue
View file @
8ff9ac3d
<
template
>
<
template
>
<el-dialog
:title=
"$t('选择联系人')"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<el-dialog
<div
class=
"header mb-10 flex-center"
>
:title=
"$t('选择联系人')"
<div
class=
"flex-center"
>
{{
$t
(
'
关键字
'
)
}}
:
</div>
visible
<el-input
v-model=
"form.searchKey"
clearable
class=
"w-200"
></el-input>
:before-close=
"closeDialog"
<el-button
type=
"primary"
class=
"ml-10"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
:close-on-click-modal=
"false"
</div>
>
<div
class=
"list"
>
<div
class=
"header mb-10 flex-center"
>
<div
class=
"list-item"
v-for=
"item in list"
:key=
"item.customerContactsId"
@
click=
"choose(item)"
>
<div
class=
"flex-center"
>
{{
$t
(
"
关键字
"
)
}}
:
</div>
<div
class=
"item-box"
>
<el-input
v-model=
"form.searchKey"
clearable
class=
"w-200"
></el-input>
<div
class=
"line"
>
<el-button
type=
"primary"
class=
"ml-10"
@
click=
"handleQuery"
>
{{
<div
class=
"label"
>
{{
$t
(
'
姓名
'
)
}}
:
</div>
$t
(
"
搜索
"
)
<div
class=
"value"
>
{{
item
.
contactsName
}}
</div>
}}
</el-button>
<el-tag
v-if=
"item.isInOpenSea"
type=
"danger"
effect=
"dark"
>
{{
$t
(
'
公
'
)
}}
</el-tag>
</div>
</div>
<div
class=
"list"
>
<!-- v1.7新增 -->
<div
<div
class=
"line"
>
class=
"list-item"
<div
class=
"label"
>
{{
$t
(
'
姓名(英文)
'
)
}}
:
</div>
v-for=
"item in list"
<div
class=
"value"
>
{{
item
.
contactsNameEn
}}
</div>
:key=
"item.customerContactsId"
</div>
@
click=
"choose(item)"
<div
class=
"line"
>
>
<div
class=
"label"
>
{{
$t
(
'
电话
'
)
}}
:
</div>
<div
class=
"item-box"
>
<div
class=
"value"
>
+
{{
item
.
areaCode
}}
{{
item
.
phoneNew
}}
</div>
<div
class=
"line"
>
</div>
<div
class=
"label"
>
{{
$t
(
"
姓名
"
)
}}
:
</div>
<div
class=
"line"
>
<div
class=
"value"
>
{{
item
.
contactsName
}}
</div>
<div
class=
"label"
>
{{
$t
(
'
邮箱
'
)
}}
:
</div>
<el-tag
v-if=
"item.isInOpenSea"
type=
"danger"
effect=
"dark"
>
{{
<div
class=
"value"
>
{{
item
.
email
}}
</div>
$t
(
"
公
"
)
</div>
}}
</el-tag>
<div
class=
"line"
>
</div>
<div
class=
"label"
>
{{
$t
(
'
公司
'
)
}}
:
</div>
<!-- v1.7新增 -->
<div
class=
"value"
>
{{
item
.
company
}}
</div>
<div
class=
"line"
>
</div>
<div
class=
"label"
>
{{
$t
(
"
姓名(英文)
"
)
}}
:
</div>
<!-- v1.7新增 -->
<div
class=
"value"
>
{{
item
.
contactsNameEn
}}
</div>
<div
class=
"line"
>
</div>
<div
class=
"label"
>
{{
$t
(
'
公司(英文)
'
)
}}
:
</div>
<div
class=
"line"
>
<div
class=
"value"
>
{{
item
.
companyEn
}}
</div>
<div
class=
"label"
>
{{
$t
(
"
电话
"
)
}}
:
</div>
</div>
<div
class=
"value"
>
+
{{
item
.
areaCode
}}
{{
item
.
phoneNew
}}
</div>
</div>
</div>
<div
class=
"line"
>
<div
class=
"label"
>
{{
$t
(
"
邮箱
"
)
}}
:
</div>
<div
class=
"value"
>
{{
item
.
email
}}
</div>
</div>
<div
class=
"line"
>
<div
class=
"label"
>
{{
$t
(
"
公司
"
)
}}
:
</div>
<div
class=
"value"
>
{{
item
.
company
}}
</div>
</div>
<!-- v1.7新增 -->
<div
class=
"line"
>
<div
class=
"label"
>
{{
$t
(
"
公司(英文)
"
)
}}
:
</div>
<div
class=
"value"
>
{{
item
.
companyEn
}}
</div>
</div>
</div>
</div>
</div>
</div>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"form.pageNo"
:limit.sync=
"form.pageSize"
</div>
@
pagination=
"loadList"
/>
<pagination
</el-dialog>
v-show=
"total > 0"
:total=
"total"
:page.sync=
"form.pageNo"
:limit.sync=
"form.pageSize"
@
pagination=
"loadList"
/>
</el-dialog>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
import
{
getCustomerContactsSelect
}
from
"
@/api/ecw/customerContacts
"
;
export
default
{
export
default
{
props
:{
props
:
{
type
:
Number
type
:
Number
,
},
data
()
{
return
{
show
:
true
,
form
:
{
pageNo
:
1
,
pageSize
:
10
,
searchKey
:
""
,
},
list
:
[],
total
:
0
,
};
},
created
()
{
this
.
show
=
true
;
this
.
loadList
();
},
methods
:
{
handleQuery
()
{
this
.
form
.
pageNo
=
1
;
this
.
loadList
();
},
},
data
(){
loadList
()
{
return
{
//加载联系人数据
show
:
true
,
getCustomerContactsSelect
(
this
.
form
).
then
((
res
)
=>
{
form
:{
this
.
list
=
res
.
data
.
list
;
pageNo
:
1
,
this
.
total
=
res
.
data
.
total
;
pageSize
:
10
,
});
searchKey
:
''
},
list
:[],
total
:
0
}
},
},
c
reated
()
{
c
loseDialog
()
{
this
.
show
=
true
this
.
show
=
false
;
this
.
loadList
()
this
.
$emit
(
"
close
"
);
},
},
methods
:{
choose
(
contact
)
{
handleQuery
(){
this
.
$emit
(
"
choose
"
,
contact
);
this
.
form
.
pageNo
=
1
},
this
.
loadList
()
},
},
};
loadList
(){
getCustomerContactsSelect
(
this
.
form
).
then
(
res
=>
{
this
.
list
=
res
.
data
.
list
this
.
total
=
res
.
data
.
total
})
},
closeDialog
(){
this
.
show
=
false
this
.
$emit
(
'
close
'
);
},
choose
(
contact
){
this
.
$emit
(
'
choose
'
,
contact
)
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.header
{
.header
{
display
:
flex
;
display
:
flex
;
}
}
.list
{
.list
{
display
:
flex
;
display
:
flex
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
justify-content
:
center
;
justify-content
:
center
;
&
-item
{
&
-item
{
background
:
#eee
;
background
:
#eee
;
width
:
300px
;
width
:
300px
;
margin
:
10px
;
margin
:
10px
;
padding
:
5px
;
padding
:
5px
;
border-radius
:
10px
;
border-radius
:
10px
;
border
:
5px
solid
transparent
;
border
:
5px
solid
transparent
;
background
:
linear-gradient
(
white
,
white
)
padding-box
,
repeating-linear-gradient
(
-45deg
,
red
0
,
red
12
.5%
,
transparent
0
,
transparent
25%
,
#58a
0
,
#58a
37
.5%
,
transparent
0
,
transparent
50%
)
0
/
5em
5em
;
background
:
linear-gradient
(
white
,
white
)
padding-box
,
.item-box
{
repeating-linear-gradient
(
/* background: #fbfaf5; */
-45deg
,
padding
:
20px
;
red
0
,
}
red
12
.5%
,
.line
{
transparent
0
,
display
:
flex
;
transparent
25%
,
/* .label{
#58a
0
,
#58a
37
.5%
,
transparent
0
,
transparent
50%
)
0
/
5em
5em
;
.item-box
{
/* background: #fbfaf5; */
padding
:
20px
;
}
.line
{
display
:
flex
;
/* .label{
width: 100px;
width: 100px;
} */
} */
.value
{
.value
{
flex
:
1
;
flex
:
1
;
margin-left
:
10px
;
margin-left
:
10px
;
}
}
}
}
}
}
}
}
</
style
>
</
style
>
src/views/ecw/customer/index.vue
View file @
8ff9ac3d
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
:label=
"$t('客户编号')"
prop=
"number"
>
<el-form-item
:label=
"$t('客户编号')"
prop=
"number"
>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入客户编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入客户编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户名称')"
prop=
"name"
>
<el-form-item
:label=
"$t('客户名称')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入客户名称')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入客户名称')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-select
clearable
v-model=
"queryParams.level"
:placeholder=
"$t('请选择客户等级')"
clearable
size=
"small"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
clearable
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
v-model=
"queryParams.level"
:placeholder=
"$t('请选择客户等级')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('联系方式')"
>
<el-form-item
:label=
"$t('联系方式')"
>
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
clearable
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
clearable
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-select
<el-option
v-for=
"dict in customerServiceList"
clearable
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<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
clearable
v-model=
"queryParams.source"
:placeholder=
"$t('请选择客户来源')"
size=
"small"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
clearable
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
v-model=
"queryParams.source"
:placeholder=
"$t('请选择客户来源')"
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
</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
clearable
v-model=
"queryParams.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
<el-option
v-for=
"dict in countryList"
clearable
:key=
"dict.id"
:label=
" isChinese ? dict.nameZh : dict.nameEn"
:value=
"parseInt(dict.id)"
/>
v-model=
"queryParams.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"isChinese ? dict.nameZh : dict.nameEn"
:value=
"parseInt(dict.id)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户状态')"
prop=
"status"
>
<el-form-item
:label=
"$t('客户状态')"
prop=
"status"
>
<el-select
clearable
v-model=
"queryParams.status"
:placeholder=
"$t('请选择客户状态')"
clearable
size=
"small"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
clearable
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
v-model=
"queryParams.status"
:placeholder=
"$t('请选择客户状态')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
<el-date-picker
type=
"datetimerange"
type=
"datetimerange"
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd HH:mm:ss"
clearable
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd HH:mm:ss"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"queryParams.creditLevel"
>
<el-select
clearable
v-model=
"queryParams.creditLevel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
<el-option
v-for=
"(item, index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.resourceType"
formatter=
"number"
></dict-selector>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.resourceType"
formatter=
"number"
></dict-selector>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
$t
(
"
搜索
"
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
"
重置
"
)
}}
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<!-- 操作工具栏 -->
<!-- 操作工具栏 -->
<div
v-if=
"path === '/customer/customer'"
style=
"color: red;margin-bottom: 5px;"
>
<div
v-if=
"path === '/customer/customer'"
style=
"color: red; margin-bottom: 5px"
>
注意:创建的客户需接收
注意:创建的客户需接收
</div>
</div>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
v-if=
"path === '/customer/potential'"
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAddPotential"
>
{{
$t
(
'
新增潜在客户
'
)
}}
</el-button>
<el-button
<el-button
v-else
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-if=
"path === '/customer/potential'"
v-hasPermi=
"[ selectAuthorityFn('ecw:customer:create')]"
>
{{
$t
(
'
新增
'
)
}}
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAddPotential"
>
{{
$t
(
"
新增潜在客户
"
)
}}
</el-button
>
<el-button
v-else
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:create')]"
>
{{
$t
(
"
新增
"
)
}}
</el-button>
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"transferShow = true;"
<el-button
v-hasPermi=
"[selectAuthorityFn('ecw:customer:batch-transfer')]"
>
{{
$t
(
'
批量移交
'
)
}}
</el-button>
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"transferShow = true"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:batch-transfer')]"
>
{{
$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
v-hasPermi=
"[selectAuthorityFn('ecw:customer:export')]"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:export')]"
>
{{
$t
(
"
导出
"
)
}}
</el-button
>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<!--
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(true)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
--
>
<!--
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(true)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
--
>
<!-- v-hasPermi="['ecw:customer:transport']" >
{{
$t
(
'
设为空运客户
'
)
}}
</el-button>
-->
<!-- v-hasPermi="['ecw:customer:transport']" >
{{
$t
(
'
设为空运客户
'
)
}}
</el-button>
-->
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<!--
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(false)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
--
>
<!--
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(false)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
--
>
<!-- v-hasPermi="['ecw:customer:transport']">
{{
$t
(
'
设为非空运客户
'
)
}}
</el-button>
-->
<!-- v-hasPermi="['ecw:customer:transport']">
{{
$t
(
'
设为非空运客户
'
)
}}
</el-button>
-->
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['ecw:customer:fcl']"
:disabled=
"!selectCustomerList.length"
@
click=
"setFullContainerLoad(true)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
>
{{
$t
(
'
设置海运整柜客户
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:customer:fcl']"
:disabled=
"!selectCustomerList.length"
@
click=
"setFullContainerLoad(true)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
>
{{
$t
(
"
设置海运整柜客户
"
)
}}
</el-button
>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['ecw:customer:fcl-mistake']"
:disabled=
"!selectCustomerList.length"
@
click=
"setFullContainerLoad(false)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
<el-button
>
{{
$t
(
'
设置海运非整柜客户
'
)
}}
</el-button>
v-hasPermi=
"['ecw:customer:fcl-mistake']"
:disabled=
"!selectCustomerList.length"
@
click=
"setFullContainerLoad(false)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
>
{{
$t
(
"
设置海运非整柜客户
"
)
}}
</el-button
>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
v-has-permi=
"[selectAuthorityFn('ecw:customer:create-potential')]"
v-if=
"path === '/customer/customer'"
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAddPotential"
>
{{
$t
(
'
新增潜在客户
'
)
}}
</el-button>
<el-button
v-has-permi=
"[selectAuthorityFn('ecw:customer:create-potential')]"
v-if=
"path === '/customer/customer'"
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAddPotential"
>
{{
$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>
<!-- 列表 -->
<!-- 列表 -->
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table
<el-table-column
ref=
"multipleTable"
type=
"selection"
v-loading=
"loading"
width=
"55"
>
:data=
"list"
</el-table-column>
@
selection-change=
"handleSelectionChange"
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
>
<template
v-slot=
"
{row}">
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
{{
row
.
number
}}
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<template
v-slot=
"
{ row }">
{{
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
slot-scope=
"{row}"
>
<
template
slot-scope=
"{ row }"
>
<p
style=
"display:inline-block;white-space:pre-wrap;"
>
{{
$l
(
row
,
'
name
'
)
}}
</p>
<p
style=
"display: inline-block; white-space: pre-wrap"
>
<el-tag
v-if=
"row.isInOpenSea"
size=
"mini"
>
{{
$t
(
'
公
'
)
}}
</el-tag>
{{
$l
(
row
,
"
name
"
)
}}
</p>
<el-tag
v-if=
"row.isInOpenSea"
size=
"mini"
>
{{
$t
(
"
公
"
)
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户等级')"
align=
"center"
prop=
"vipLevelNameZh"
>
<el-table-column
:label=
"$t('客户等级')"
align=
"center"
prop=
"vipLevelNameZh"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('信用等级')"
:prop=
"isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"
></el-table-column>
<el-table-column
:label=
"$t('信用等级')"
:prop=
"isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"
></el-table-column>
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
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('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
<
template
v-slot =
{row}
>
:label=
"$t('入公海时间')"
<span>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</span>
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('客户经理ID')"
align=
"center"
prop=
"customerService"
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
>
<el-table-column
:label=
"$t('出货渠道')"
>
<
template
slot-scope=
"{
row
}"
>
<
template
slot-scope=
"{
row
}"
>
{{
channel
(
row
.
transportType
)
}}
{{
channel
(
row
.
transportType
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
>
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<!--
<el-button
size=
"mini"
type=
"text"
v-show=
"'development' === env && scope.row.isInOpenSea"
@
click=
"seasPond(scope.row)"
--
>
<!--
<el-button
size=
"mini"
type=
"text"
v-show=
"'development' === env && scope.row.isInOpenSea"
@
click=
"seasPond(scope.row)"
--
>
<!-- v-hasPermi="['ecw:customer:query']">
{{
$t
(
'
掉入公海池
'
)
}}
</el-button>
-->
<!-- v-hasPermi="['ecw:customer:query']">
{{
$t
(
'
掉入公海池
'
)
}}
</el-button>
-->
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
<el-button
v-hasPermi=
"[selectAuthorityFn('ecw:customer:index-query')]"
>
{{
$t
(
'
查看
'
)
}}
</el-button>
size=
"mini"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
type=
"text"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:update')]"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
icon=
"el-icon-view"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
@
click=
"handleView(scope.row)"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:delete')]"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
v-hasPermi=
"[selectAuthorityFn('ecw:customer:index-query')]"
<el-button
size=
"mini"
v-has-permi=
"[selectAuthorityFn('ecw:customer:follow-up')]"
type=
"text"
icon=
"el-icon-collection"
@
click=
"followUp(scope.row)"
>
{{
$t
(
'
跟进
'
)
}}
</el-button>
>
{{
$t
(
"
查看
"
)
}}
</el-button
<el-button
size=
"mini"
v-has-permi=
"[selectAuthorityFn('ecw:customer:customer-complaint')]"
type=
"text"
icon=
"el-icon-user"
@
click=
"complaint(scope.row)"
>
{{
$t
(
'
客诉
'
)
}}
</el-button>
>
<el-button
:disabled=
"scope.row.isInOpenSea"
v-has-permi=
"[selectAuthorityFn('ecw:customer:postpone')]"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"delay(scope.row)"
>
{{
$t
(
'
延期
'
)
}}
</el-button>
<el-button
<el-button
v-has-permi=
"['ecw:customer:treat-recovery']"
v-if=
"scope.row.customerService !== null && scope.row.customerServiceAssignedTime !== null && !scope.row.isCustomerServiceConfirmed && !scope.row.isInOpenSea && path === '/customer/customer'"
size=
"mini"
type=
"text"
@
click=
"recovery(scope.row)"
>
{{
$t
(
'
回收客户
'
)
}}
</el-button>
size=
"mini"
<el-button
v-has-permi=
"['ecw:customer:performanceType']"
v-if=
"path === '/customer/customer'"
size=
"mini"
type=
"text"
@
click=
"dialogVisible = true; customData = scope.row;currentisNew = scope.row.isNew"
>
{{
$t
(
'
业绩类型
'
)
}}
</el-button>
type=
"text"
icon=
"el-icon-edit"
<el-button
v-has-permi=
"[selectAuthorityFn('ecw:customer:treat-quoted-price')]"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"quote(scope.row)"
>
{{
$t
(
'
报价
'
)
}}
</el-button>
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:update')]"
>
{{
$t
(
"
修改
"
)
}}
</el-button
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"[selectAuthorityFn('ecw:customer:delete')]"
>
{{
$t
(
"
删除
"
)
}}
</el-button
>
<el-button
size=
"mini"
v-has-permi=
"[selectAuthorityFn('ecw:customer:follow-up')]"
type=
"text"
icon=
"el-icon-collection"
@
click=
"followUp(scope.row)"
>
{{
$t
(
"
跟进
"
)
}}
</el-button
>
<el-button
size=
"mini"
v-has-permi=
"[selectAuthorityFn('ecw:customer:customer-complaint')]"
type=
"text"
icon=
"el-icon-user"
@
click=
"complaint(scope.row)"
>
{{
$t
(
"
客诉
"
)
}}
</el-button
>
<el-button
:disabled=
"scope.row.isInOpenSea"
v-has-permi=
"[selectAuthorityFn('ecw:customer:postpone')]"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"delay(scope.row)"
>
{{
$t
(
"
延期
"
)
}}
</el-button
>
<el-button
v-has-permi=
"['ecw:customer:treat-recovery']"
v-if=
"
scope.row.customerService !== null &&
scope.row.customerServiceAssignedTime !== null &&
!scope.row.isCustomerServiceConfirmed &&
!scope.row.isInOpenSea &&
path === '/customer/customer'
"
size=
"mini"
type=
"text"
@
click=
"recovery(scope.row)"
>
{{
$t
(
"
回收客户
"
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:performanceType']"
v-if=
"path === '/customer/customer'"
size=
"mini"
type=
"text"
@
click=
"
dialogVisible = true;
customData = scope.row;
currentisNew = scope.row.isNew;
"
>
{{
$t
(
"
业绩类型
"
)
}}
</el-button>
<!--lanbm 2024-05-23 添加报价按钮逻辑控制-->
<el-button
v-has-permi=
"[selectAuthorityFn('ecw:customer:treat-quoted-price')]"
size=
"mini"
type=
"text"
icon=
"el-icon-user"
@
click=
"quote(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
@
pagination=
"getList"
/>
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
:close-on-click-modal=
"false"
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-row
:gutter=
"10"
>
<el-row
:gutter=
"10"
>
<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('请输入客户名称')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<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 getDictDatas(DICT_TYPE.COUNTRY)"
<el-option
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
v-for=
"dict in getDictDatas(DICT_TYPE.COUNTRY)"
: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=
"level"
>
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-select
v-model=
"form.level"
:placeholder=
"$t('请选择客户等级')"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
v-model=
"form.level"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:placeholder=
"$t('请选择客户等级')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
: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=
"address"
>
<el-form-item
:label=
"$t('联系地址')"
prop=
"address"
>
<el-input
v-model=
"form.address"
:placeholder=
"$t('请输入联系地址')"
/>
<el-input
v-model=
"form.address"
: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=
"type"
>
<el-form-item
:label=
"$t('客户类别')"
prop=
"type"
>
<el-select
v-model=
"form.type"
:placeholder=
"$t('请选择客户类别')"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
v-model=
"form.type"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
:placeholder=
"$t('请选择客户类别')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
: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>
<!-- <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 getDictDatas(DICT_TYPE.COMMON_STATUS)"-->
<!-- <el-option v-for="dict in 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=
"pickupPoint"
>
<el-form-item
:label=
"$t('常用提货网点')"
prop=
"pickupPoint"
>
<el-select
v-model=
"form.pickupPoint"
:placeholder=
"$t('请输入常用提货网点')"
>
<el-select
<el-option
v-for=
"node in nodeList"
v-model=
"form.pickupPoint"
:key=
"node.value"
:label=
"node.label"
:value=
"node.value"
/>
:placeholder=
"$t('请输入常用提货网点')"
>
<el-option
v-for=
"node in nodeList"
:key=
"node.value"
:label=
"node.label"
:value=
"node.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=
"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-date-picker
<el-date-picker
v-model=
"form.birthday"
v-model=
"form.birthday"
type=
"date"
type=
"date"
value-format=
"timestamp"
value-format=
"timestamp"
:placeholder=
"$t('请输入客户生日')"
>
:placeholder=
"$t('请输入客户生日')"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('主营类别')"
prop=
"productType"
>
<el-form-item
:label=
"$t('主营类别')"
prop=
"productType"
>
<el-row
:gutter=
"10"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
:placeholder=
"$t('请选择产品类别')"
>
<!-- <el-option :label="$t('请选择字典生成')" value="" />-->
</el-select>
</el-col>
<el-col
:span=
"11"
>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
:placeholder=
"$t('请选择主营类别')"
>
<el-select
<!-- <el-option :label="$t('请选择字典生成')" value="" />-->
v-model=
"form.productType"
:placeholder=
"$t('请选择产品类别')"
>
<!-- <el-option :label="$t('请选择字典生成')" value="" />-->
</el-select>
</el-col>
<el-col
:span=
"11"
>
<el-select
v-model=
"form.productType"
:placeholder=
"$t('请选择主营类别')"
>
<!-- <el-option :label="$t('请选择字典生成')" value="" />-->
</el-select>
</el-select>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -274,25 +602,46 @@
...
@@ -274,25 +602,46 @@
</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
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
v-model=
"form.source"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:placeholder=
"$t('请选择客户来源')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
v-model=
"form.balance"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:placeholder=
"$t('请选择结算方式')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
: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
<el-option
v-for=
"dict in customerServiceList"
v-model=
"form.customerService"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
:placeholder=
"$t('请选择客户经理')"
>
<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-col>
</el-col>
...
@@ -300,25 +649,36 @@
...
@@ -300,25 +649,36 @@
<el-form-item
:label=
"$t('图片')"
prop=
"picture"
>
<el-form-item
:label=
"$t('图片')"
prop=
"picture"
>
<upload
v-model=
"form.picture"
:limit=
"1"
></upload>
<upload
v-model=
"form.picture"
:limit=
"1"
></upload>
</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
<el-select
v-model=
"form.status"
:placeholder=
"$t('请选择客户状态')"
>
v-model=
"form.status"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:placeholder=
"$t('请选择客户状态')"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_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=
"12"
>
<el-form-item
:label=
"$t('推介人')"
prop=
"promoter"
>
<el-form-item
:label=
"$t('推介人')"
prop=
"promoter"
>
<el-input
v-model=
"form.promoter"
:placeholder=
"$t('请输入推介人')"
/>
<el-input
v-model=
"form.promoter"
: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=
"founder"
>
<el-form-item
:label=
"$t('创建人')"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
:placeholder=
"$t('请输入创建人')"
/>
<el-input
v-model=
"form.founder"
:placeholder=
"$t('请输入创建人')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
...
@@ -327,23 +687,34 @@
...
@@ -327,23 +687,34 @@
v-model=
"form.createTime"
v-model=
"form.createTime"
type=
"datetime"
type=
"datetime"
value-format=
"timestamp"
value-format=
"timestamp"
:placeholder=
"$t('选择创建时间')"
>
:placeholder=
"$t('选择创建时间')"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('备注')"
prop=
"remarks"
>
<el-form-item
:label=
"$t('备注')"
prop=
"remarks"
>
<el-input
v-model=
"form.remarks"
:placeholder=
"$t('请输入备注')"
/>
<el-input
v-model=
"form.remarks"
:placeholder=
"$t('请输入备注')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
:label=
"$t('到仓确认')"
prop=
"arrivalConfirm"
>
<el-form-item
:label=
"$t('到仓确认')"
prop=
"arrivalConfirm"
>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"0"
:inactive-value=
"1"
/>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"0"
:inactive-value=
"1"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
:label=
"$t('重货标准(CBM)')"
prop=
"weightUnit"
>
<el-form-item
:label=
"$t('重货标准(CBM)')"
prop=
"weightUnit"
>
<el-input
v-model=
"form.weightUnit"
:placeholder=
"$t('请输入重货标准(CBM)')"
/>
<el-input
v-model=
"form.weightUnit"
:placeholder=
"$t('请输入重货标准(CBM)')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
...
@@ -353,14 +724,11 @@
...
@@ -353,14 +724,11 @@
v-show=
"showLine"
v-show=
"showLine"
border
border
:data=
"form.customerLines"
:data=
"form.customerLines"
style=
"width: 500px"
>
style=
"width: 500px"
<el-table-column
>
prop=
"departureId"
<el-table-column
prop=
"departureId"
:label=
"$t('始发地')"
>
:label=
"$t('始发地')"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"objectiveId"
:label=
"$t('目的地')"
>
prop=
"objectiveId"
:label=
"$t('目的地')"
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</el-form-item>
</el-form-item>
...
@@ -369,113 +737,132 @@
...
@@ -369,113 +737,132 @@
<el-card
class=
"box-card"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{ $t('联系人') }}
</span>
<span>
{{ $t("联系人") }}
</span>
<el-button
style=
"float: right;"
size=
"small"
type=
"primary"
@
click=
"form.customerContacts.push({department: undefined})"
>
+
</el-button>
<el-button
</div>
style=
"float: right"
<el-table
size=
"small"
:data=
"form.customerContacts"
type=
"primary"
style=
"width: 100%"
@
click=
"form.customerContacts.push({ department: undefined })"
>
>
+
</el-button
<el-table-column
prop=
"department"
:label=
"$t('部门')"
width=
""
>
>
</div>
<el-table
:data=
"form.customerContacts"
style=
"width: 100%"
>
<el-table-column
prop=
"department"
:label=
"$t('部门')"
width=
""
>
<
template
v-slot=
"{ row, column, $index }"
>
<
template
v-slot=
"{ row, column, $index }"
>
<el-input
v-model=
"row.department"
:placeholder=
"$t('请输入部门')"
size=
"mini"
/>
<el-input
v-model=
"row.department"
:placeholder=
"$t('请输入部门')"
size=
"mini"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"position"
:label=
"$t('职位')"
width=
""
>
prop=
"position"
<
template
v-slot=
"{ row }"
>
:label=
"$t('职位')"
<el-input
width=
"
"
v-model=
"row.position
"
>
:placeholder=
"$t('请输入职位')"
<
template
v-slot=
"{row}"
>
size=
"mini"
<el-input
v-model=
"row.position"
:placeholder=
"$t('请输入职位')"
size=
"mini"
/>
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"name"
:label=
"$t('联系人')"
>
prop=
"name"
<
template
v-slot:header
:label=
"$t('联系人')"
>
{{
$t
(
"
联系人
"
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
>
<
template
v-slot:header
>
{{
$t
(
'
联系人
'
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
</
template
>
<
template
v-slot=
"{row}"
>
<
template
v-slot=
"{ row }"
>
<el-input
v-model=
"row.name"
:placeholder=
"$t('请输入联系人')"
size=
"mini"
/>
<el-input
v-model=
"row.name"
:placeholder=
"$t('请输入联系人')"
size=
"mini"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"areaCode"
:label=
"$t('区号')"
>
prop=
"areaCode"
<
template
v-slot:header
:label=
"$t('区号')"
>
{{
$t
(
"
区号
"
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
>
<
template
v-slot:header
>
{{
$t
(
'
区号
'
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
</
template
>
<
template
v-slot=
"{row}"
>
<
template
v-slot=
"{ row }"
>
<el-select
v-model=
"row.areaCode"
:placeholder=
"$t('请选择区号')"
>
<el-select
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.AREA_CODE)"
v-model=
"row.areaCode"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
:placeholder=
"$t('请选择区号')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.AREA_CODE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"phoneNew"
:label=
"$t('联系方式')"
>
prop=
"phoneNew"
<
template
v-slot:header
:label=
"$t('联系方式')"
>
{{
$t
(
"
联系方式
"
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
>
<
template
v-slot:header
>
{{
$t
(
'
联系方式
'
)
}}
<span
style=
"color: #ff0000"
>
*
</span>
</
template
>
</
template
>
<
template
v-slot=
"{row}"
>
<
template
v-slot=
"{ row }"
>
<el-input
v-model=
"row.phoneNew"
:placeholder=
"$t('请输入联系方式')"
size=
"mini"
/>
<el-input
v-model=
"row.phoneNew"
:placeholder=
"$t('请输入联系方式')"
size=
"mini"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
:label=
"$t('关联账号')"
>
</el-table-column>
prop=
""
<el-table-column
prop=
"social"
:label=
"$t('社交软件')"
>
:label=
"$t('关联账号')"
<
template
v-slot=
"{ row }"
>
>
<el-select
</el-table-column>
v-model=
"row.social"
<el-table-column
:placeholder=
"$t('请选择社交软件')"
prop=
"social"
>
:label=
"$t('社交软件')"
<el-option
>
v-for=
"dict in getDictDatas(DICT_TYPE.SOCIAL)"
<
template
v-slot=
"{row}"
>
:key=
"dict.value"
<el-select
v-model=
"row.social"
:placeholder=
"$t('请选择社交软件')"
>
:label=
"isChinese ? dict.label : dict.labelEn"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.SOCIAL
)"
:value=
"parseInt(dict.value
)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"socialNumber"
:label=
"$t('社交软件号码')"
>
prop=
"socialNumber"
<
template
v-slot=
"{ row }"
>
:label=
"$t('社交软件号码')"
<el-input
>
v-model=
"row.socialNumber"
<
template
v-slot=
"{row}"
>
:placeholder=
"$t('请输入社交软件号码')"
<el-input
v-model=
"row.socialNumber"
:placeholder=
"$t('请输入社交软件号码')"
size=
"mini"
/>
size=
"mini"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"email"
:label=
"$t('邮箱')"
>
prop=
"email"
<
template
v-slot=
"{ row }"
>
:label=
"$t('邮箱')"
<el-input
>
v-model=
"row.email"
<
template
v-slot=
"{row}"
>
:placeholder=
"$t('请输入邮箱')"
<el-input
v-model=
"row.email"
:placeholder=
"$t('请输入邮箱')"
size=
"mini"
/>
size=
"mini"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"isDefault"
:label=
"$t('设为默认')"
>
prop=
"isDefault"
<
template
v-slot=
"{ row }"
>
:label=
"$t('设为默认')"
<el-select
>
v-model=
"row.isDefault"
<
template
v-slot=
"{row}"
>
:placeholder=
"$t('设为默认')"
<el-select
v-model=
"row.isDefault"
:placeholder=
"$t('设为默认')"
>
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.IS_DEFAULT)"
<el-option
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.isDefault)"
/>
v-for=
"dict in getDictDatas(DICT_TYPE.IS_DEFAULT)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.isDefault)"
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"name"
:label=
"$t('操作')"
>
prop=
"name"
:label=
"$t('操作')"
>
<
template
v-slot=
"{ row, column, $index }"
>
<
template
v-slot=
"{ row, column, $index }"
>
<el-button
type=
"danger"
@
click=
"form.customerContacts.splice($index, 1)"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<el-button
type=
"danger"
@
click=
"form.customerContacts.splice($index, 1)"
>
{{
$t
(
"
删除
"
)
}}
</el-button
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -484,12 +871,18 @@
...
@@ -484,12 +871,18 @@
<el-row
:gutter=
"10"
style=
"margin-top: 15px"
>
<el-row
:gutter=
"10"
style=
"margin-top: 15px"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('发票抬头')"
prop=
"invoiceTitle"
>
<el-form-item
:label=
"$t('发票抬头')"
prop=
"invoiceTitle"
>
<el-input
v-model=
"form.invoiceTitle"
:placeholder=
"$t('请输入发票抬头')"
/>
<el-input
v-model=
"form.invoiceTitle"
: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=
"licenseNumber"
>
<el-form-item
:label=
"$t('纳税人识别号')"
prop=
"licenseNumber"
>
<el-input
v-model=
"form.licenseNumber"
:placeholder=
"$t('请输入纳税人识别号')"
/>
<el-input
v-model=
"form.licenseNumber"
:placeholder=
"$t('请输入纳税人识别号')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
...
@@ -499,95 +892,131 @@
...
@@ -499,95 +892,131 @@
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('账户')"
prop=
"bankNumber"
>
<el-form-item
:label=
"$t('账户')"
prop=
"bankNumber"
>
<el-input
v-model=
"form.bankNumber"
:placeholder=
"$t('请输入账户')"
/>
<el-input
v-model=
"form.bankNumber"
: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=
"project"
>
<el-form-item
:label=
"$t('项目')"
prop=
"project"
>
<el-input
v-model=
"form.project"
:placeholder=
"$t('请输入项目')"
/>
<el-input
v-model=
"form.project"
: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=
"billingAddress"
>
<el-form-item
:label=
"$t('开票地址')"
prop=
"billingAddress"
>
<el-input
v-model=
"form.billingAddress"
:placeholder=
"$t('请输入开票地址')"
/>
<el-input
v-model=
"form.billingAddress"
: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=
"billingTell"
>
<el-form-item
:label=
"$t('开票电话')"
prop=
"billingTell"
>
<el-input
v-model=
"form.billingTell"
:placeholder=
"$t('请输入开票电话')"
/>
<el-input
v-model=
"form.billingTell"
: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=
"taxRate"
>
<el-form-item
:label=
"$t('税率')"
prop=
"taxRate"
>
<el-input
v-model=
"form.taxRate"
:placeholder=
"$t('请输入税率')"
/>
<el-input
v-model=
"form.taxRate"
:placeholder=
"$t('请输入税率')"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
</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"
>
{{
<el-button
@
click=
"cancel"
>
{{$t('取 消')}}
</el-button>
$t("确 定")
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{ $t("取 消") }}
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
ref=
"CustomerFollowList"
></customer-follow-list>
<customer-follow-list
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
:customer-id=
"customerId"
<transfer-customer
:show.sync=
"transferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
:id=
"customerId"
<add-potential-custom
ref=
"potentialCustom"
@
change=
"getList"
></add-potential-custom>
ref=
"CustomerFollowList"
></customer-follow-list>
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
<transfer-customer
:show.sync=
"transferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
<add-potential-custom
ref=
"potentialCustom"
@
change=
"getList"
></add-potential-custom>
<!--业绩类型 -->
<!--业绩类型 -->
<el-dialog
<el-dialog
title=
"业绩类型"
:visible.sync=
"dialogVisible"
width=
"30%"
>
title=
"业绩类型"
<div>
:visible.sync=
"dialogVisible"
<el-form>
width=
"30%"
>
<el-form-item
label=
"客户编号"
>
{{ customData.number }}
</el-form-item>
<div>
<el-form-item
label=
"客户名称"
>
{{ customData.name }}
</el-form-item>
<el-form>
<el-form-item
label=
"业绩类型"
>
<el-form-item
label=
"客户编号"
>
{{customData.number}}
</el-form-item>
<el-radio-group
v-model=
"currentisNew"
>
<el-form-item
label=
"客户名称"
>
{{customData.name}}
</el-form-item>
<el-radio
:label=
"true"
>
{{ $t("新客户") }}
</el-radio>
<el-form-item
label=
"业绩类型"
>
<el-radio
:label=
"false"
>
{{ $t("老客户") }}
</el-radio>
<el-radio-group
v-model=
"currentisNew"
>
</el-radio-group>
<el-radio
:label=
"true"
>
{{$t('新客户')}}
</el-radio>
</el-form-item>
<el-radio
:label=
"false"
>
{{$t('老客户')}}
</el-radio>
</el-form>
</el-radio-group>
</div>
</el-form-item>
<span
slot=
"footer"
class=
"dialog-footer"
>
</el-form>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
</div>
<el-button
<span
slot=
"footer"
class=
"dialog-footer"
>
:disabled=
"customData.isNew === currentisNew"
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
type=
"primary"
<el-button
:disabled=
"customData.isNew === currentisNew"
type=
"primary"
@
click=
"modifyCustomer"
>
修改
</el-button>
@
click=
"modifyCustomer"
</span>
>
修改
</el-button
</el-dialog>
>
</span>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
createCustomer
,
createCustomer
,
updateCustomer
,
updateCustomer
,
deleteCustomer
,
deleteCustomer
,
getCustomer
,
getCustomer
,
getCustomerPage
,
getCustomerPage
,
exportCustomerExcel
,
exportCustomerExcel
,
testEnterToOpenSea
,
testEnterToOpenSea
,
getCustomerDeptPage
,
getCustomerDeptPage
,
changeCustomerAir
,
changeCustomerAir
,
getPotential
,
getPotential
,
setChangeCustomerFcl
,
potentialExportExcel
,
deptExportExcel
,
recycleUnconfirmedCustomer
,
updatecustomerToOld
setChangeCustomerFcl
,
potentialExportExcel
,
deptExportExcel
,
recycleUnconfirmedCustomer
,
updatecustomerToOld
,
}
from
"
@/api/ecw/customer
"
;
}
from
"
@/api/ecw/customer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
getDictDatas
,
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
{
CommonStatusEnum
}
from
"
@/utils/constants
"
;
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
import
upload
from
"
@/components/ImageUpload
"
;
import
upload
from
'
@/components/ImageUpload
'
import
{
getNodeList
}
from
"
@/api/ecw/node
"
;
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
CustomerFollowList
from
"
@/components/CustomerFollowList
"
;
import
CustomerFollowList
from
"
@/components/CustomerFollowList
"
import
customerComplaints
from
"
@/components/customerComplaints
"
;
import
customerComplaints
from
"
@/components/customerComplaints
"
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
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
{
customerExportExcel
}
from
"
@/api/ecw/customer
"
;
import
{
customerExportExcel
}
from
"
@/api/ecw/customer
"
;
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
;
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
AddPotentialCustom
from
"
@/views/ecw/customer/addPotentialCustom.vue
"
;
import
AddPotentialCustom
from
"
@/views/ecw/customer/addPotentialCustom.vue
"
;
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
;
import
Contacts
from
"
@/views/ecw/customer/components/contacts.vue
"
;
import
{
getUserProfile
}
from
"
@/api/system/user
"
;
export
default
{
export
default
{
name
:
"
EcwCustomerIndex
"
,
name
:
"
EcwCustomerIndex
"
,
...
@@ -598,11 +1027,11 @@ export default {
...
@@ -598,11 +1027,11 @@ export default {
upload
,
upload
,
CustomerFollowList
,
CustomerFollowList
,
customerComplaints
,
customerComplaints
,
transferCustomer
transferCustomer
,
},
},
data
()
{
data
()
{
return
{
return
{
env
:
process
.
env
.
NODE_ENV
,
env
:
process
.
env
.
NODE_ENV
,
getDictDatas
,
getDictDatas
,
DICT_TYPE
,
DICT_TYPE
,
// 遮罩层
// 遮罩层
...
@@ -631,254 +1060,330 @@ export default {
...
@@ -631,254 +1060,330 @@ export default {
customerService
:
null
,
customerService
:
null
,
status
:
null
,
status
:
null
,
department
:
null
,
department
:
null
,
creditLevel
:
null
,
creditLevel
:
null
,
country
:
null
,
country
:
null
,
resourceType
:
null
,
resourceType
:
null
,
},
},
// 表单参数
// 表单参数
form
:
{},
form
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户名称不能为空
'
),
trigger
:
"
blur
"
}],
name
:
[
country
:
[{
required
:
true
,
message
:
this
.
$t
(
'
国家不能为空
'
),
trigger
:
"
blur
"
}],
{
level
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户等级不能为空
'
),
trigger
:
"
blur
"
}],
required
:
true
,
type
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户类别不能为空
'
),
trigger
:
"
blur
"
}],
message
:
this
.
$t
(
"
客户名称不能为空
"
),
trigger
:
"
blur
"
,
},
],
country
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
国家不能为空
"
),
trigger
:
"
blur
"
},
],
level
:
[
{
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
:
[
customerService
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户经理不能为空
'
),
trigger
:
"
blur
"
}],
{
status
:
[{
required
:
true
,
message
:
this
.
$t
(
'
客户状态不能为空
'
),
trigger
:
"
blur
"
}],
required
:
true
,
founder
:
[{
required
:
true
,
message
:
this
.
$t
(
'
创建人不能为空
'
),
trigger
:
"
blur
"
}],
message
:
this
.
$t
(
"
客户来源不能为空
"
),
trigger
:
"
blur
"
,
},
],
customerService
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
客户经理不能为空
"
),
trigger
:
"
blur
"
,
},
],
status
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
客户状态不能为空
"
),
trigger
:
"
blur
"
,
},
],
founder
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
创建人不能为空
"
),
trigger
:
"
blur
"
,
},
],
},
},
// 网点
// 网点
nodeList
:
[],
nodeList
:
[],
showLine
:
false
,
showLine
:
false
,
customerId
:
undefined
,
customerId
:
undefined
,
customerServiceList
:[],
customerServiceList
:
[],
countryList
:
[],
countryList
:
[],
creditList
:[],
creditList
:
[],
selectCustomerList
:[],
selectCustomerList
:
[],
transferShow
:
false
,
transferShow
:
false
,
dialogVisible
:
false
,
dialogVisible
:
false
,
customData
:{
customData
:
{},
currentisNew
:
false
,
},
userId
:
undefined
,
//lanbm 2024-05-23 add
currentisNew
:
false
};
};
},
},
computed
:{
computed
:
{
path
(){
path
()
{
return
this
.
$route
.
path
return
this
.
$route
.
path
;
},
},
channel
(){
channel
()
{
return
(
val
)
=>
{
return
(
val
)
=>
{
return
!!
val
?
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOMER_TRANSPORT_TYPE
).
filter
(
i
=>
(
val
.
split
(
'
,
'
)
||
[]).
includes
(
i
.
value
)).
map
(
i
=>
this
.
isChinese
?
i
.
label
:
i
.
labelEn
).
join
(
'
,
'
)
:
''
return
!!
val
}
?
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOMER_TRANSPORT_TYPE
)
.
filter
((
i
)
=>
(
val
.
split
(
"
,
"
)
||
[]).
includes
(
i
.
value
))
.
map
((
i
)
=>
(
this
.
isChinese
?
i
.
label
:
i
.
labelEn
))
.
join
(
"
,
"
)
:
""
;
};
},
},
isChinese
(){
isChinese
()
{
return
this
.
$i18n
.
locale
===
'
zh_CN
'
return
this
.
$i18n
.
locale
===
"
zh_CN
"
;
},
},
authorityFn
(){
authorityFn
()
{
let
i
=
''
let
i
=
""
;
switch
(
this
.
$route
.
path
){
switch
(
this
.
$route
.
path
)
{
case
'
/customer/department-customers
'
:
case
"
/customer/department-customers
"
:
i
=
'
dep-
'
i
=
"
dep-
"
;
break
;
break
;
case
'
/customer/potential
'
:
case
"
/customer/potential
"
:
i
=
'
pot-
'
i
=
"
pot-
"
;
break
;
break
;
}
}
return
i
return
i
;
},
selectAuthorityFn
()
{
return
(
val
)
=>
{
let
t
=
val
.
split
(
"
:
"
);
t
[
t
.
length
-
1
]
=
this
.
authorityFn
+
t
[
t
.
length
-
1
];
console
.
log
(
t
.
join
(
"
:
"
));
return
t
.
join
(
"
:
"
);
};
},
},
selectAuthorityFn
(){
return
(
val
)
=>
{
let
t
=
val
.
split
(
"
:
"
)
t
[
t
.
length
-
1
]
=
this
.
authorityFn
+
t
[
t
.
length
-
1
]
console
.
log
(
t
.
join
(
"
:
"
))
return
t
.
join
(
"
:
"
)
}
}
},
},
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
();
}
}
},
},
},
},
created
()
{
created
()
{
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
)
=>
{
this
.
customerServiceList
=
r
.
data
;
this
.
customerServiceList
=
r
.
data
;
})
});
getCountryListAll
().
then
(
r
=>
{
getCountryListAll
().
then
((
r
)
=>
{
this
.
countryList
=
r
.
data
this
.
countryList
=
r
.
data
;
})
});
//获取用户id信息 lanbm 2024-05-23 add
getUserProfile
().
then
((
res
)
=>
{
this
.
userId
=
res
.
data
.
id
;
});
},
},
activated
(){
activated
()
{
this
.
getList
();
this
.
getList
();
},
},
methods
:
{
methods
:
{
recovery
(
row
){
recovery
(
row
)
{
this
.
$confirm
(
this
.
$t
(
'
是否要回收当前{name}
'
,
row
),
'
提示
'
,
{
this
.
$confirm
(
this
.
$t
(
"
是否要回收当前{name}
"
,
row
),
"
提示
"
,
{
confirmButtonText
:
'
确定
'
,
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
'
取消
'
,
cancelButtonText
:
"
取消
"
,
type
:
'
warning
'
type
:
"
warning
"
,
}).
then
(()
=>
{
})
recycleUnconfirmedCustomer
({
customerId
:
row
.
id
}).
then
(
r
=>
{
.
then
(()
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
回收成功。
'
))
recycleUnconfirmedCustomer
({
customerId
:
row
.
id
}).
then
((
r
)
=>
{
this
.
getList
()
this
.
$message
.
success
(
this
.
$t
(
"
回收成功。
"
));
this
.
getList
();
});
})
})
})
.
catch
(()
=>
{
.
catch
(()
=>
{
this
.
$message
.
info
(
this
.
$t
(
'
已取消
'
))
this
.
$message
.
info
(
this
.
$t
(
"
已取消
"
));
});
});
},
},
// 设置整柜
// 设置整柜
setFullContainerLoad
(
isFcl
){
setFullContainerLoad
(
isFcl
)
{
setChangeCustomerFcl
({
setChangeCustomerFcl
({
"
customerIdList
"
:
this
.
selectCustomerList
,
customerIdList
:
this
.
selectCustomerList
,
isFcl
isFcl
,
}).
then
(
r
=>
{
}).
then
((
r
)
=>
{
if
(
r
.
code
===
0
){
if
(
r
.
code
===
0
)
{
this
.
$message
.
success
(
isFcl
?
'
设置客户为海运整柜成功!
'
:
'
设置客户为非海运整柜成功!
'
)
this
.
$message
.
success
(
this
.
selectCustomerList
=
[]
isFcl
?
"
设置客户为海运整柜成功!
"
:
"
设置客户为非海运整柜成功!
"
this
.
getList
()
);
this
.
selectCustomerList
=
[];
this
.
getList
();
}
}
})
})
;
},
},
// 设置空运客户
// 设置空运客户
setChangeCustomerAir
(
isAir
){
setChangeCustomerAir
(
isAir
)
{
changeCustomerAir
({
changeCustomerAir
({
customerIdList
:
this
.
selectCustomerList
,
customerIdList
:
this
.
selectCustomerList
,
isAir
isAir
,
}).
then
(
r
=>
{
}).
then
((
r
)
=>
{
console
.
log
(
r
)
console
.
log
(
r
);
if
(
r
.
code
===
0
){
if
(
r
.
code
===
0
)
{
this
.
$message
.
success
(
isAir
?
'
设为空运客户成功!
'
:
'
设为非空运客户成功!
'
)
this
.
$message
.
success
(
this
.
selectCustomerList
=
[]
isAir
?
"
设为空运客户成功!
"
:
"
设为非空运客户成功!
"
this
.
getList
()
);
this
.
selectCustomerList
=
[];
this
.
getList
();
}
}
})
})
;
},
},
/** 取消按钮 */
/** 取消按钮 */
cancel
()
{
cancel
()
{
this
.
open
=
false
;
this
.
open
=
false
;
this
.
reset
();
this
.
reset
();
},
},
complaint
(
row
){
complaint
(
row
)
{
this
.
customerId
=
row
.
id
;
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
customerComplaints
.
handleAdd
();
this
.
$refs
.
customerComplaints
.
handleAdd
();
})
});
},
},
countryFormatter
(
row
,
column
,
cellValue
)
{
countryFormatter
(
row
,
column
,
cellValue
)
{
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
;
},
},
delay
(
row
){
delay
(
row
)
{
this
.
$router
.
push
({
path
:
"
/customer/delay
"
,
query
:
{
id
:
row
.
id
}
});
this
.
$router
.
push
({
path
:
'
/customer/delay
'
,
query
:{
id
:
row
.
id
}})
},
},
followUp
(
row
){
followUp
(
row
)
{
this
.
customerId
=
row
.
id
;
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
CustomerFollowList
.
customerFollow
.
dialogVisible
=
true
;
this
.
$refs
.
CustomerFollowList
.
customerFollow
.
dialogVisible
=
true
;
})
});
},
},
//报价
//报价
quote
(
row
){
quote
(
row
)
{
//lanbm 2024-05-23 添加报价是判断客户所属客户经理,不是就不能报价
if
(
row
.
customerService
!=
this
.
userId
)
{
//this.$router.push({path:'/offer/create',query:{id:row.id}})
this
.
$message
.
error
(
this
.
$t
(
"
此客户属于其他客户经理名下的客户。
"
));
this
.
$router
.
push
({
path
:
'
/offer/create
'
,
query
:{
customer
:
row
,
type
:
1
}}).
then
({
return
;
//this.$refs.push({path:'/customer-contacts/select',query:{pageNo:1,pageSize:10,searchKey:row.defaultContactPhone}})
}
//this.$router.push({path:'/offer/create',query:{id:row.id}})
})
this
.
$router
.
push
({
path
:
"
/offer/create
"
,
query
:
{
customer
:
row
,
type
:
1
}
})
.
then
({
//this.$refs.push({path:'/customer-contacts/select',query:{pageNo:1,pageSize:10,searchKey:row.defaultContactPhone}})
});
},
},
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
// 处理查询参数
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
,
false
);
// 执行查询
// 执行查询
switch
(
this
.
$route
.
path
){
switch
(
this
.
$route
.
path
)
{
case
'
/customer/customer
'
:
case
"
/customer/customer
"
:
getCustomerPage
(
params
).
then
(
this
.
setData
);
getCustomerPage
(
params
).
then
(
this
.
setData
);
break
;
break
;
case
'
/customer/department-customers
'
:
case
"
/customer/department-customers
"
:
getCustomerDeptPage
(
params
).
then
(
this
.
setData
);
getCustomerDeptPage
(
params
).
then
(
this
.
setData
);
break
;
break
;
case
'
/customer/potential
'
:
case
"
/customer/potential
"
:
getPotential
(
params
).
then
(
this
.
setData
)
getPotential
(
params
).
then
(
this
.
setData
)
;
break
;
break
;
}
}
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
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("添加客户");
},
},
// 新增潜在客户
// 新增潜在客户
handleAddPotential
(){
handleAddPotential
()
{
this
.
$refs
.
potentialCustom
.
dialogTableVisible
=
true
;
this
.
$refs
.
potentialCustom
.
dialogTableVisible
=
true
;
},
},
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
;
const
name
=
row
.
name
;
const
name
=
row
.
name
;
const
number
=
row
.
number
;
const
number
=
row
.
number
;
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
number
+
this
.
$t
(
'
"的数据项?
'
)).
then
(
function
()
{
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
number
+
this
.
$t
(
'
"的数据项?
'
)
)
.
then
(
function
()
{
return
deleteCustomer
(
id
);
return
deleteCustomer
(
id
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
删除成功
'
));
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
删除成功
"
));
}).
catch
(()
=>
{});
})
.
catch
(()
=>
{});
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
let
func
=
null
;
let
func
=
null
;
let
title
=
''
let
title
=
""
;
switch
(
this
.
$route
.
path
){
switch
(
this
.
$route
.
path
)
{
case
'
/customer/customer
'
:
case
"
/customer/customer
"
:
func
=
customerExportExcel
func
=
customerExportExcel
;
title
=
'
是否确认导出所有客户数据项?
'
title
=
"
是否确认导出所有客户数据项?
"
;
break
;
break
;
case
'
/customer/department-customers
'
:
case
"
/customer/department-customers
"
:
func
=
deptExportExcel
func
=
deptExportExcel
;
title
=
'
是否确认导出部门客户数据项?
'
title
=
"
是否确认导出部门客户数据项?
"
;
break
;
break
;
case
'
/customer/potential
'
:
case
"
/customer/potential
"
:
func
=
potentialExportExcel
func
=
potentialExportExcel
;
title
=
'
是否确认导出潜在客户数据项?
'
title
=
"
是否确认导出潜在客户数据项?
"
;
break
;
break
;
}
}
// // 执行导出
// // 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
title
)).
then
(()
=>
{
this
.
$modal
func
().
then
(
r
=>
{
.
confirm
(
this
.
$t
(
title
))
this
.
$message
.
success
(
this
.
$t
(
'
已加入导出队列,请稍后在下载日志中下载
'
))
.
then
(()
=>
{
func
().
then
((
r
)
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
已加入导出队列,请稍后在下载日志中下载
"
)
);
});
})
})
})
.
catch
(()
=>
{});
.
catch
(()
=>
{});
},
},
/** 搜索按钮操作 */
/** 搜索按钮操作 */
handleQuery
()
{
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
this
.
getList
();
},
},
handleSelectionChange
(
val
){
handleSelectionChange
(
val
)
{
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
this
.
selectCustomerList
=
val
.
map
(
(
i
)
=>
i
.
id
);
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
console
.
log
(
row
.
id
)
console
.
log
(
row
.
id
)
;
this
.
$router
.
push
(
'
/customer/add-edit/
'
+
row
.
id
)
this
.
$router
.
push
(
"
/customer/add-edit/
"
+
row
.
id
);
// this.reset();
// this.reset();
// const id = row.id;
// const id = row.id;
// getCustomer(id).then(response => {
// getCustomer(id).then(response => {
...
@@ -889,7 +1394,7 @@ export default {
...
@@ -889,7 +1394,7 @@ export default {
},
},
/** 查看按钮操作 */
/** 查看按钮操作 */
handleView
(
row
)
{
handleView
(
row
)
{
this
.
$router
.
push
(
'
/customer/query/
'
+
row
.
id
)
this
.
$router
.
push
(
"
/customer/query/
"
+
row
.
id
);
},
},
/** 表单重置 */
/** 表单重置 */
reset
()
{
reset
()
{
...
@@ -946,66 +1451,72 @@ export default {
...
@@ -946,66 +1451,72 @@ export default {
customerService
:
null
,
customerService
:
null
,
status
:
null
,
status
:
null
,
department
:
null
,
department
:
null
,
creditLevel
:
null
,
creditLevel
:
null
,
country
:
null
,
country
:
null
,
}
}
;
this
.
handleQuery
();
this
.
handleQuery
();
},
},
/** 调入公海池测试用 */
/** 调入公海池测试用 */
seasPond
(
row
)
{
seasPond
(
row
)
{
testEnterToOpenSea
(
row
.
id
).
then
(
r
=>
{
testEnterToOpenSea
(
row
.
id
).
then
(
(
r
)
=>
{
if
(
r
.
code
===
0
)
{
if
(
r
.
code
===
0
)
{
this
.
$t
(
'
调入公海池成功!
'
)
this
.
$t
(
"
调入公海池成功!
"
);
this
.
getList
();
this
.
getList
();
}
}
})
})
;
},
},
setData
(
response
){
setData
(
response
)
{
console
.
log
(
response
,
'
response
'
)
console
.
log
(
response
,
"
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
;
},
},
/** 提交按钮 */
/** 提交按钮 */
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
();
});
});
});
});
},
},
// 修改客户类型
// 修改客户类型
modifyCustomer
(){
modifyCustomer
()
{
this
.
$confirm
(
this
.
$t
(
'
修改业绩类型后,将会影响客户新订单业绩计算,请问确定吗?
'
),
this
.
$t
(
'
提示
'
),
{
this
.
$confirm
(
confirmButtonText
:
this
.
$t
(
'
确定
'
),
this
.
$t
(
"
修改业绩类型后,将会影响客户新订单业绩计算,请问确定吗?
"
),
cancelButtonText
:
this
.
$t
(
'
取消
'
),
this
.
$t
(
"
提示
"
),
type
:
'
warning
'
{
}).
then
(()
=>
{
confirmButtonText
:
this
.
$t
(
"
确定
"
),
updatecustomerToOld
({
customerId
:
this
.
customData
.
id
,
isNew
:
this
.
currentisNew
}).
then
((
r
)
=>
{
cancelButtonText
:
this
.
$t
(
"
取消
"
),
this
.
$message
.
success
(
this
.
$t
(
'
修改成功
'
));
type
:
"
warning
"
,
this
.
dialogVisible
=
false
}
this
.
getList
()
)
})
.
then
(()
=>
{
}).
catch
(()
=>
{
updatecustomerToOld
({
customerId
:
this
.
customData
.
id
,
isNew
:
this
.
currentisNew
,
}).
then
((
r
)
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
修改成功
"
));
this
.
dialogVisible
=
false
;
this
.
getList
();
});
});
}
})
}
.
catch
(()
=>
{});
},
},
};
};
</
script
>
</
script
>
src/views/ecw/offer/edit.vue
View file @
8ff9ac3d
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/views/report/vz/index.vue
View file @
8ff9ac3d
...
@@ -44,7 +44,7 @@
...
@@ -44,7 +44,7 @@
>
>
{{
$t
(
"
新增
"
)
}}
</el-button
{{
$t
(
"
新增
"
)
}}
</el-button
>
>
<el-button
type=
"primary"
@
click=
"test"
v-show=
"
tru
e"
>
测试
</el-button>
<el-button
type=
"primary"
@
click=
"test"
v-show=
"
fals
e"
>
测试
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
...
@@ -170,6 +170,7 @@ import "@/assets/styles/vue-treeselect.css";
...
@@ -170,6 +170,7 @@ import "@/assets/styles/vue-treeselect.css";
import
{
MessageBox
}
from
"
element-ui
"
;
import
{
MessageBox
}
from
"
element-ui
"
;
//日期库函数
//日期库函数
import
dayjs
from
"
dayjs
"
;
import
dayjs
from
"
dayjs
"
;
import
{
getToken
}
from
"
@/utils/auth
"
;
//2024-05-01合并
//2024-05-01合并
export
default
{
export
default
{
...
@@ -356,10 +357,13 @@ export default {
...
@@ -356,10 +357,13 @@ export default {
},
},
test
()
{
test
()
{
//单元测试函数
//单元测试函数
/*
var p = 12;
var p = 12;
test(p).then((response) => {
test(p).then((response) => {
this.$modal.msgSuccess("测试成功");
this.$modal.msgSuccess("测试成功");
});
});*/
var
s
=
getToken
();
alert
(
s
);
},
},
TestFun
()
{
TestFun
()
{
var
bR
=
dayjs
(
"
2024-05-11
"
).
isBefore
(
dayjs
(
"
2024-05-12
"
));
var
bR
=
dayjs
(
"
2024-05-11
"
).
isBefore
(
dayjs
(
"
2024-05-12
"
));
...
...
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