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
eb9e7f83
Commit
eb9e7f83
authored
Sep 09, 2024
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/pre-release' into pre-release
parents
27d547ac
eda6d1a7
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1339 additions
and
455 deletions
+1339
-455
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
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+39
-0
index.vue
src/views/ecw/order/exception/index.vue
+291
-301
index.vue
src/views/ecw/order/index.vue
+14
-2
No files found.
src/i18n/languages/en_US.json
View file @
eb9e7f83
...
...
@@ -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 @
eb9e7f83
...
...
@@ -309,7 +309,7 @@
"年度发货量"
:
"年度发货量"
,
"年度发货次数"
:
"年度发货次数"
,
"主要竞争对手"
:
"主要竞争对手"
,
"控
制
无收货人"
:
"控制无收货人"
,
"控
货
无收货人"
:
"控制无收货人"
,
"默认付款"
:
"默认付款"
,
"默认开票"
:
"默认开票"
,
"请选择业务国家"
:
"请选择业务国家"
,
...
...
src/views/ecw/customer/edit.vue
View file @
eb9e7f83
...
...
@@ -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 @
eb9e7f83
...
...
@@ -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 }"
>
<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 @
eb9e7f83
...
...
@@ -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 @
eb9e7f83
...
...
@@ -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 @
eb9e7f83
...
...
@@ -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 }"
>
<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 @
eb9e7f83
...
...
@@ -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 }"
>
<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
>
src/views/ecw/order/cargoControl.vue
View file @
eb9e7f83
...
...
@@ -169,6 +169,31 @@
<!--<el-form-item :label="$t('订单放货锁定收货人到期时间')" prop="lockConsigneeTime">
</el-form-item>-->
<el-form-item
:label=
"$t('提货状态')"
v-show=
"showSearch"
>
<el-select
multiple
clearable
v-model=
"queryParams.pickStateList"
>
<el-option
:label=
"$t('未提货')"
:value=
"0"
/>
<el-option
:label=
"$t('部分提货')"
:value=
"1"
/>
<el-option
:label=
"$t('已提货')"
:value=
"2"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('提货率')"
v-show=
"showSearch"
>
<el-input
type=
"number"
v-model.trim=
"pickRatio.value"
:placeholder=
"$t('请输入数字')"
clearable
@
keyup.enter.native=
"handleQuery"
>
<
template
slot=
"prepend"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_QUERY_NUMBER_FIELD"
defaultable
v-model=
"pickRatio.key"
class=
"w-50"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
:label=
"$t('订单限制修改收货人')"
prop=
"isLimitUpdateConsignee"
>
<el-select
v-model=
"queryParams.isLimitUpdateConsignee"
:placeholder=
"$t('请选择')"
clearable
@
change=
"handleQuery"
>
<el-option
:label=
"$t('是')"
:value=
"1"
></el-option>
...
...
@@ -396,6 +421,10 @@ export default {
destCountryId
:
null
,
objectiveId
:
null
,
destWarehouseId
:
null
,
pickRatio
:
{
key
:
"
eqNumberKey
"
,
value
:
""
,
}
};
},
computed
:
{
...
...
@@ -433,6 +462,16 @@ export default {
if
(
this
.
destWarehouseId
!=
null
&&
this
.
destWarehouseId
!=
""
)
{
queryParams
.
destWarehouseIds
=
this
.
destWarehouseId
;
}
// 提货率
if
(
this
.
pickRatio
.
value
)
{
let
key
=
'
eqPickRatio
'
if
(
this
.
pickRatio
.
key
==
'
leNumberKey
'
)
{
key
=
'
lePickRatio
'
}
else
if
(
this
.
pickRatio
.
key
==
'
geNumberKey
'
)
{
key
=
'
gePickRatio
'
}
queryParams
[
key
]
=
this
.
pickRatio
.
value
}
return
Object
.
assign
({},
this
.
queryParams
,
timeParams
,
queryParams
)
}
},
...
...
src/views/ecw/order/exception/index.vue
View file @
eb9e7f83
...
...
@@ -8,7 +8,6 @@
:inline=
"true"
label-width=
"100px"
>
<el-row>
<el-form-item>
<el-select
v-model=
"queryParams.dateType"
...
...
@@ -37,7 +36,7 @@
/>
</el-form-item>
<div>
<el-form-item
:label=
"$t('始发仓')"
prop=
"startWarehouseIds
"
>
<el-form-item
:label=
"$t('始发仓')
"
>
<el-select
v-model=
"queryParams.startWarehouseIds"
multiple
...
...
@@ -105,8 +104,6 @@
</el-select>
</el-form-item>
</div>
</el-row>
<el-row>
<el-form-item
:label=
"$t('运输方式') + ':'"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
...
...
@@ -148,8 +145,6 @@
:label-field=
"$l(null, 'name')"
></selector>
</el-form-item>
</el-row>
<el-row>
<el-form-item
:label=
"$t('控货') + ':'"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.ECW_YESNO"
...
...
@@ -191,8 +186,7 @@
</
template
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<!-- <el-form-item :label="$t('发货人')+':'">
<customer-selector v-model="queryParams.consignor" :clearable="true" @change="consignor = $event" />
</el-form-item>
...
...
@@ -246,8 +240,7 @@
/>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item
:label=
"$t('备案') + ':'"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
...
...
@@ -317,9 +310,7 @@
<el-option
:label=
"$t('海外仓')"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
""
>
<el-form-item>
<el-checkbox
style=
"margin-left: 60px"
v-model=
"queryParams.isHaveCustomer"
...
...
@@ -338,7 +329,6 @@
$t("重置")
}}
</el-button>
</el-form-item>
</el-row>
</el-form>
<!-- 操作工具栏 -->
...
...
src/views/ecw/order/index.vue
View file @
eb9e7f83
...
...
@@ -523,8 +523,20 @@
</div>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('发货人编号')"
align=
"center"
prop=
"consignorCustomerNumber"
/>
<el-table-column
:label=
"$t('收货人编号')"
align=
"center"
prop=
"consigneeCustomerNumber"
/>
<el-table-column
:label=
"$t('发货人编号')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
<router-link
:to=
"`/customer/query/$
{row.consignorCustomerId}`" class="link-type">
{{
row
.
consignorCustomerNumber
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('收货人编号')"
align=
"center"
prop=
"consigneeCustomerNumber"
>
<
template
slot-scope=
"{ row }"
>
<router-link
:to=
"`/customer/query/$
{row.consigneeCustomerId}`" class="link-type">
{{
row
.
consigneeCustomerNumber
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总箱数/入仓箱数')"
align=
"center"
...
...
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