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
93820aca
Commit
93820aca
authored
Sep 08, 2024
by
余金瑶
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户列表字段
parent
5dc83634
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
995 additions
and
152 deletions
+995
-152
en_US.json
src/i18n/languages/en_US.json
+3
-1
zh_CN.json
src/i18n/languages/zh_CN.json
+1
-1
edit.vue
src/views/ecw/customer/edit.vue
+1
-1
index.vue
src/views/ecw/customer/index.vue
+191
-61
index.vue
src/views/ecw/customerConfirm/index.vue
+206
-11
index.vue
src/views/ecw/customerToBeAssigned/index.vue
+196
-14
index.vue
src/views/ecw/myCustomerService/index.vue
+194
-29
index.vue
src/views/ecw/oceanCustomer/index.vue
+203
-34
No files found.
src/i18n/languages/en_US.json
View file @
93820aca
...
...
@@ -4676,7 +4676,7 @@
"年度发货量"
:
"Shipment yearly"
,
"年度发货次数"
:
"Number of shipments yearly"
,
"主要竞争对手"
:
"Major competitors"
,
"控
制
无收货人"
:
"Control not consignee"
,
"控
货
无收货人"
:
"Control not consignee"
,
"默认付款"
:
"Default payment"
,
"默认开票"
:
"Default Billing"
,
"请选择业务国家"
:
"Please select customer operating country"
,
...
...
@@ -4695,6 +4695,8 @@
"增值服务"
:
"Added services"
,
"开启会员积分系统"
:
"Enable member points system"
,
"是否确认{val}会员积分系统"
:
"Confirm whether to {val} the member points system"
,
"入仓确认"
:
"Entry confirm"
,
"商品类别"
:
"Product type"
,
"跟进状态"
:
"Follow-up status"
,
"上一级跟进单"
:
"Follow-up parent number"
,
"跟进结果"
:
"Follow-up result"
,
...
...
src/i18n/languages/zh_CN.json
View file @
93820aca
...
...
@@ -309,7 +309,7 @@
"年度发货量"
:
"年度发货量"
,
"年度发货次数"
:
"年度发货次数"
,
"主要竞争对手"
:
"主要竞争对手"
,
"控
制
无收货人"
:
"控制无收货人"
,
"控
货
无收货人"
:
"控制无收货人"
,
"默认付款"
:
"默认付款"
,
"默认开票"
:
"默认开票"
,
"请选择业务国家"
:
"请选择业务国家"
,
...
...
src/views/ecw/customer/edit.vue
View file @
93820aca
...
...
@@ -446,7 +446,7 @@
:placeholder=
"$t('请选择产品类别')"
>
<el-option
:label=
"i
tem.titleZh
"
:label=
"i
sChinese ? item.titleZh : item.titleEn
"
:value=
"item.id"
v-for=
"item in productTypeList"
:key=
"item.id"
...
...
src/views/ecw/customer/index.vue
View file @
93820aca
...
...
@@ -388,6 +388,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('入仓确认')"
v-show=
"showSearch"
>
<el-select
clearable
v-model=
"queryParams.arrivalConfirm"
>
<el-option
:label=
"$t('是')"
:value=
"1"
/>
<el-option
:label=
"$t('否')"
:value=
"0"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('控货无收货人')"
v-show=
"showSearch"
>
<el-switch
v-model=
"queryParams.noConsignee"
/>
</el-form-item>
...
...
@@ -631,13 +637,14 @@
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<
template
v-slot=
"{ row }"
>
{{
row
.
number
}}
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
{{
row
.
number
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<
template
slot-scope=
"{ row }"
>
<p
style=
"display: inline-block; white-space: pre-wrap"
>
{{
$l
(
row
,
"
name
"
)
}}
...
...
@@ -645,20 +652,14 @@
<el-tag
v-if=
"row.isInOpenSea"
size=
"mini"
>
{{
$t
(
"
公
"
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户等级')"
align=
"center"
prop=
"vipLevelNameZh"
>
<!--
<el-table-column :label="$t('客户等级')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template>
</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"
>
<
template
slot-scope=
"scope"
>
<dict-tag
...
...
@@ -679,62 +680,121 @@
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</span>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ROLE"
:value=
"scope.row.roles"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<!--
<el-table-column
:label="$t('客户经理ID')"
align="center" v-show="false"
prop="customerService"
>
</el-table-column>-->
<el-table-column
:label=
"$t('出货渠道')"
>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('国籍')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<
template
slot-scope=
"{ row }"
>
{{
getBusiCountryNames
(
row
.
busiCountryIds
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('常用提货网点')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPickupPointNames
(
row
.
pickupPoints
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货量')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
weightYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主营类别')"
>
<
template
slot-scope=
"{ row }"
>
{{
getProductTypeNames
(
row
.
productType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('推介人')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPromoterName
(
row
.
promoter
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"info"
>
{{
$t
(
'
否
'
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.noConsignee"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('默认付款')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.defaultPay"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('归属时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerServiceConfirmedTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('首次成交时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
firstDealTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethods"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<!--
<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>
-->
...
...
@@ -2028,6 +2088,76 @@ export default {
this
.
$message
.
success
(
this
.
$t
(
"
操作成功
"
))
this
.
getList
()
})
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPromoterName
(
id
)
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
}
}
return
strName
}
else
{
return
null
}
}
},
};
...
...
src/views/ecw/customerConfirm/index.vue
View file @
93820aca
...
...
@@ -288,6 +288,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('入仓确认')"
v-show=
"showSearch"
>
<el-select
clearable
v-model=
"queryParams.arrivalConfirm"
>
<el-option
:label=
"$t('是')"
:value=
"1"
/>
<el-option
:label=
"$t('否')"
:value=
"0"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('控货无收货人')"
v-show=
"showSearch"
>
<el-switch
v-model=
"queryParams.noConsignee"
/>
</el-form-item>
...
...
@@ -384,22 +390,26 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<
template
v-slot=
"{row}"
>
{{
row
.
number
}}
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
{{
row
.
number
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<
template
v-slot=
"{row}"
>
<p
style=
"display:inline-block;white-space: pre-wrap;"
>
{{
$l
(
row
,
'
name
'
)
}}
</p>
</
template
>
</el-table-column>
<!--
<el-table-column :label="$t('客户等级')" align="center" prop="vipLevelNameZh">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template>
</el-table-column>
<el-table-column :label="$t('信用等级')" :prop="isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"></el-table-column>
-->
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
...
...
@@ -414,20 +424,126 @@
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ROLE"
:value=
"scope.row.roles"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('国籍')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<
template
slot-scope=
"{ row }"
>
{{
getBusiCountryNames
(
row
.
busiCountryIds
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('常用提货网点')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPickupPointNames
(
row
.
pickupPoints
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货量')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
weightYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主营类别')"
>
<
template
slot-scope=
"{ row }"
>
{{
getProductTypeNames
(
row
.
productType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('推介人')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPromoterName
(
row
.
promoter
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"info"
>
{{
$t
(
'
否
'
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.noConsignee"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('默认付款')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.defaultPay"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('归属时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerServiceConfirmedTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('首次成交时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
firstDealTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethods"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('
分配时间')"
align=
"center"
prop=
"createTime"
width=
"18
0"
>
<
template
v-slot =
{row}
>
<span
>
{{
parseTime
(
row
.
customerServiceAssignedTime
)
}}
</span>
<el-table-column
:label=
"$t('
最后更新时间')"
align=
"center"
width=
"16
0"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
>
<el-table-column
:label=
"$t('分配时间')"
align=
"center"
width=
"180"
>
<
template
v-slot=
"{row}"
>
<span>
{{
parseTime
(
row
.
customerServiceAssignedTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<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>
...
...
@@ -698,6 +814,16 @@ export default {
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
},
channel
()
{
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
(
"
,
"
)
:
""
;
};
},
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
...
...
@@ -1078,7 +1204,76 @@ export default {
customerIdList
:
undefined
};
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPromoterName
(
id
)
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
}
}
return
strName
}
else
{
return
null
}
}
}
};
</
script
>
src/views/ecw/customerToBeAssigned/index.vue
View file @
93820aca
...
...
@@ -289,6 +289,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('入仓确认')"
v-show=
"showSearch"
>
<el-select
clearable
v-model=
"queryParams.arrivalConfirm"
>
<el-option
:label=
"$t('是')"
:value=
"1"
/>
<el-option
:label=
"$t('否')"
:value=
"0"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('控货无收货人')"
v-show=
"showSearch"
>
<el-switch
v-model=
"queryParams.noConsignee"
/>
</el-form-item>
...
...
@@ -391,10 +397,6 @@
<!-- 列表 -->
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<
template
v-slot=
"{row}"
>
{{
row
.
number
}}
...
...
@@ -405,12 +407,6 @@
<p
style=
"display:inline-block;white-space: pre-wrap;"
>
{{
$l
(
row
,
'
name
'
)
}}
</p>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户等级')"
align=
"center"
prop=
"vipLevelNameZh"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('信用等级')"
:prop=
" isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn' "
></el-table-column>
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
...
...
@@ -425,15 +421,121 @@
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ROLE"
:value=
"scope.row.roles"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('国籍')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<
template
slot-scope=
"{ row }"
>
{{
getBusiCountryNames
(
row
.
busiCountryIds
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('常用提货网点')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPickupPointNames
(
row
.
pickupPoints
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货量')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
weightYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主营类别')"
>
<
template
slot-scope=
"{ row }"
>
{{
getProductTypeNames
(
row
.
productType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('推介人')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPromoterName
(
row
.
promoter
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"info"
>
{{
$t
(
'
否
'
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.noConsignee"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('默认付款')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.defaultPay"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('归属时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerServiceConfirmedTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('首次成交时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
firstDealTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethods"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<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>
...
...
@@ -812,6 +914,76 @@ export default {
})
}).
catch
(()
=>
{});
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPromoterName
(
id
)
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
}
}
return
strName
}
else
{
return
null
}
}
},
watch
:{
selectCustomerList
(
val
){
...
...
@@ -825,6 +997,16 @@ export default {
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
},
channel
()
{
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
(
"
,
"
)
:
""
;
};
},
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
...
...
src/views/ecw/myCustomerService/index.vue
View file @
93820aca
...
...
@@ -308,6 +308,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('入仓确认')"
v-show=
"showSearch"
>
<el-select
clearable
v-model=
"queryParams.arrivalConfirm"
>
<el-option
:label=
"$t('是')"
:value=
"1"
/>
<el-option
:label=
"$t('否')"
:value=
"0"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('控货无收货人')"
v-show=
"showSearch"
>
<el-switch
v-model=
"queryParams.noConsignee"
/>
</el-form-item>
...
...
@@ -431,19 +437,21 @@
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<
template
v-slot=
"{ row }"
>
{{
row
.
number
}}
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
{{
row
.
number
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<
template
v-slot=
"{ row }"
>
<p
style=
"display: inline-block; white-space: pre-wrap"
>
{{
$l
(
row
,
"
name
"
)
}}
</p>
</
template
>
</el-table-column>
<!--
<el-table-column
:label="$t('客户等级')"
align="center"
...
...
@@ -465,6 +473,15 @@
/>
</template>
</el-table-column>
-->
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主联系人')"
prop=
"defaultContactName"
...
...
@@ -477,38 +494,120 @@
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('预计入公海时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ROLE"
:value=
"scope.row.roles"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
></el-table-column>
<el-table-column
:label=
"$t('国籍')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<
template
slot-scope=
"{ row }"
>
{{
getBusiCountryNames
(
row
.
busiCountryIds
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('常用提货网点')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPickupPointNames
(
row
.
pickupPoints
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货量')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
weightYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主营类别')"
>
<
template
slot-scope=
"{ row }"
>
{{
getProductTypeNames
(
row
.
productType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('推介人')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPromoterName
(
row
.
promoter
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
parseTime
(
row
.
estimateEnterOpenSeaTime
)
}}
</span>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"customerServiceName"
>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"info"
>
{{
$t
(
'
否
'
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.noConsignee"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('默认付款')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.defaultPay"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('归属时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerServiceConfirmedTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('首次成交时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
firstDealTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethods"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
width=
"200px"
:label=
"$t('操作')"
...
...
@@ -643,6 +742,16 @@ export default {
isChinese
()
{
return
this
.
$i18n
.
locale
===
"
zh_CN
"
;
},
channel
()
{
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
(
"
,
"
)
:
""
;
};
},
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
...
...
@@ -1088,6 +1197,62 @@ export default {
this
.
$refs
[
"
customerComplaint
"
].
handleAdd
();
});
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPromoterName
(
id
)
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
}
}
return
strName
}
else
{
return
null
}
}
},
watch
:
{
selectCustomerList
(
val
)
{
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
93820aca
...
...
@@ -27,6 +27,7 @@
onkeyup=
"this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"
/>
</el-form-item>
<!--
<el-form-item
:label=
"$t('客户等级')"
prop=
"level"
>
<el-select
multiple
...
...
@@ -43,6 +44,7 @@
/>
</el-select>
</el-form-item>
-->
<el-form-item
:label=
"$t('区号')"
>
<el-select
v-model=
"queryParams.areaCode"
...
...
@@ -388,6 +390,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('入仓确认')"
v-show=
"showSearch"
>
<el-select
clearable
v-model=
"queryParams.arrivalConfirm"
>
<el-option
:label=
"$t('是')"
:value=
"1"
/>
<el-option
:label=
"$t('否')"
:value=
"0"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('控货无收货人')"
v-show=
"showSearch"
>
<el-switch
v-model=
"queryParams.noConsignee"
/>
</el-form-item>
...
...
@@ -510,19 +518,21 @@
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
prop=
"number"
>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
fixed
>
<
template
v-slot=
"{ row }"
>
{{
row
.
number
}}
<router-link
:to=
"`/customer/query/$
{row.id}`" class="link-type">
{{
row
.
number
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
fixed
>
<
template
v-slot=
"{ row }"
>
<p
style=
"display: inline-block; white-space: pre-wrap"
>
{{
$l
(
row
,
"
name
"
)
}}
</p>
</
template
>
</el-table-column>
<!--
<el-table-column
:label="$t('客户等级')"
align="center"
...
...
@@ -536,6 +546,7 @@
:label="$t('信用等级')"
:prop="isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"
></el-table-column>
-->
<el-table-column
:label=
"$t('客户状态')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
...
...
@@ -556,43 +567,121 @@
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
enterOpenSeaTime
)
}}
</span>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ROLE"
:value=
"scope.row.roles"
/>
</
template
>
</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('国籍')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('国家')"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
:label=
"$t('客户来源')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务国家')"
>
<
template
slot-scope=
"{ row }"
>
{{
getBusiCountryNames
(
row
.
busiCountryIds
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('常用提货网点')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPickupPointNames
(
row
.
pickupPoints
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货量')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
weightYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主营类别')"
>
<
template
slot-scope=
"{ row }"
>
{{
getProductTypeNames
(
row
.
productType
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('主要竞争对手')"
prop=
"competitorNames"
>
</el-table-column>
<el-table-column
:label=
"$t('年度发货次数')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
row
.
numYearly
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('推介人')"
>
<
template
slot-scope=
"{ row }"
>
{{
getPromoterName
(
row
.
promoter
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-tag
type=
"success"
v-if=
"scope.row.arrivalConfirm == 1"
>
{{
$t
(
'
是
'
)
}}
</el-tag>
<el-tag
type=
"info"
>
{{
$t
(
'
否
'
)
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货无收货人')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.noConsignee"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('默认付款')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.defaultPay"
disabled
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('归属时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerServiceConfirmedTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('首次成交时间')"
width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
firstDealTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('获取方式')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_GET_METHOD"
:value=
"scope.row.getMethods"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
prop=
"createUsername"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('最后更新时间')"
align=
"center"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span
>
{{
parseTime
(
scope
.
row
.
updateTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"100px"
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"'/customer/query/' + scope.row.id"
>
<el-button
...
...
@@ -859,6 +948,16 @@ export default {
isChinese
()
{
return
this
.
$i18n
.
locale
===
"
zh_CN
"
;
},
channel
()
{
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
(
"
,
"
)
:
""
;
};
},
customerSelectFn
()
{
if
(
this
.
recommended
.
length
>
0
)
{
let
i
=
this
.
customerSelect
.
find
(
...
...
@@ -1145,6 +1244,76 @@ export default {
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getBusiCountryNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
countryList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
nameZh
:
item
.
nameEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPickupPointNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
getNodeLists
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getProductTypeNames
(
ids
)
{
if
(
ids
)
{
const
idsArr
=
ids
.
split
(
'
,
'
)
const
strArr
=
[]
this
.
productTypeList
.
forEach
(
item
=>
{
if
(
idsArr
.
includes
(
item
.
id
.
toString
()))
{
strArr
.
push
(
this
.
isChinese
?
item
.
titleZh
:
item
.
titleEn
)
}
})
return
strArr
.
length
>
0
?
strArr
.
join
(
'
,
'
)
:
null
}
else
{
return
null
}
},
getPromoterName
(
id
)
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
}
}
return
strName
}
else
{
return
null
}
}
},
};
</
script
>
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