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
42c087ab
Commit
42c087ab
authored
Oct 23, 2024
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/pre-release' into pre-release
parents
41520827
a2a784e5
Changes
14
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1885 additions
and
3500 deletions
+1885
-3500
index.vue
src/components/QuickCreateCustomer/index.vue
+2
-1
AppMain.vue
src/layout/components/AppMain.vue
+3
-3
contacts.vue
src/views/ecw/customer/components/contacts.vue
+2
-2
customerMerge.vue
src/views/ecw/customer/components/customerMerge.vue
+52
-39
index.vue
src/views/ecw/customer/index.vue
+401
-1094
indirectCustomer.vue
src/views/ecw/customer/indirectCustomer.vue
+7
-3
query.vue
src/views/ecw/customer/query.vue
+607
-750
index.vue
src/views/ecw/customerConfirm/index.vue
+6
-5
index.vue
src/views/ecw/customerToBeAssigned/index.vue
+6
-5
index.vue
src/views/ecw/myCustomerService/index.vue
+259
-646
index.vue
src/views/ecw/oceanCustomer/index.vue
+6
-5
edit.vue
src/views/ecw/offer/edit.vue
+528
-944
edit.vue
src/views/ecw/order/edit.vue
+1
-1
index.vue
src/views/report/customer_analysis/index.vue
+5
-2
No files found.
src/components/QuickCreateCustomer/index.vue
View file @
42c087ab
...
...
@@ -60,6 +60,7 @@
<
script
>
import
{
createCustomer
}
from
'
@/api/ecw/customer
'
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
...
...
@@ -74,7 +75,7 @@ export default {
data
(){
return
{
show
:
true
,
DICT_TYPE
,
// 表单参数
form
:
{
customerContacts
:[{
isDefault
:
1
}]
...
...
src/layout/components/AppMain.vue
View file @
42c087ab
...
...
@@ -10,7 +10,7 @@
<
script
>
export
default
{
name
:
'
AppMain
'
,
name
:
"
AppMain
"
,
computed
:
{
cachedViews
()
{
return
this
.
$store
.
state
.
tagsView
.
cachedViews
...
...
@@ -31,7 +31,7 @@ export default {
overflow
:
hidden
;
}
.fixed-header
+
.app-main
{
.fixed-header
+
.app-main
{
padding-top
:
50px
;
}
...
...
@@ -41,7 +41,7 @@ export default {
min-height
:
calc
(
100vh
-
84px
);
}
.fixed-header
+
.app-main
{
.fixed-header
+
.app-main
{
padding-top
:
84px
;
}
}
...
...
src/views/ecw/customer/components/contacts.vue
View file @
42c087ab
<
template
>
<div
style=
"display: inline-block"
>
<span
@
click=
"visible = true"
>
<slot></slot></span>
<el-dialog
title=
"更多联系人"
:visible.sync=
"visible"
>
<el-dialog
title=
"更多联系人"
:visible.sync=
"visible"
append-to-body
>
<div
v-if=
"info"
>
<div
style=
"text-align: center;margin-bottom: 20px;"
v-for=
"(item, index) in info"
:key=
"index"
>
联系人
{{
index
+
1
}}
:
{{
$l
(
item
,
'
name
'
)
}}
   
联系方式
{{
index
+
1
}}
:+
{{
item
.
areaCode
}}
{{
item
.
phoneNew
}}
<br/>
...
...
src/views/ecw/customer/components/customerMerge.vue
View file @
42c087ab
...
...
@@ -6,8 +6,10 @@
<el-col
:span=
"12"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
$t
(
'
保留客户
'
)
}}
</span>
<el-button
type=
"success"
size=
"small"
style=
"float: right"
@
click=
"selectCustomer(1)"
>
{{
$t
(
'
请选择
'
)
}}
</el-button>
<span>
{{
$t
(
'
保留客户
'
)
}}
</span>
<el-button
type=
"success"
size=
"small"
style=
"float: right"
@
click=
"selectCustomer(1)"
>
{{
$t
(
'
请选择
'
)
}}
</el-button>
</div>
<el-form-item
:label=
"$t('客户编号')+':'"
>
{{
retainCustomer
.
number
}}
...
...
@@ -29,8 +31,10 @@
<el-col
:span=
"12"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
$t
(
'
被合并客户-非主客户
'
)
}}
</span>
<el-button
type=
"success"
size=
"small"
style=
"float: right"
@
click=
"selectCustomer(2)"
>
{{
$t
(
'
请选择
'
)
}}
</el-button>
<span>
{{
$t
(
'
被合并客户-非主客户
'
)
}}
</span>
<el-button
type=
"success"
size=
"small"
style=
"float: right"
@
click=
"selectCustomer(2)"
>
{{
$t
(
'
请选择
'
)
}}
</el-button>
</div>
<el-form-item
:label=
"$t('客户编号')+':'"
>
{{
mergeCustomer
.
number
}}
...
...
@@ -52,12 +56,13 @@
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
{{
$t
(
'
确 定
'
)
}}
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
{{
$t
(
'
取 消
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
{{
$t
(
'
确 定
'
)
}}
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
{{
$t
(
'
取 消
'
)
}}
</el-button>
</div>
</el-dialog>
<el-dialog
append-to-body
:title=
"$t('选择客户')"
:visible.sync=
"customerDialogVisible"
:close-on-click-modal=
"false"
width=
"80%"
>
<el-dialog
append-to-body
:title=
"$t('选择客户')"
:visible.sync=
"customerDialogVisible"
:close-on-click-modal=
"false"
width=
"80%"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
label-width=
"100px"
>
<el-form-item
:label=
"$t('客户编号')"
prop=
"number"
>
<el-input
...
...
@@ -105,10 +110,12 @@
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
"
搜索
"
)
}}
</el-button>
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
"
重置
"
)
}}
</el-button>
}}
</el-button>
</el-form-item>
</el-form>
<el-table
:data=
"list"
v-loading=
"loading"
border
size=
"mini"
>
...
...
@@ -119,7 +126,8 @@
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/customer/query/' + row.id)"
>
{{
row
.
number
}}
</el-link>
<!--
<el-link
type=
"primary"
@
click.native=
"$router.push('/customer/query/' + row.id)"
>
{{
row
.
number
}}
</el-link>
-->
{{
row
.
number
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
>
...
...
@@ -136,31 +144,33 @@
></el-table-column>
<el-table-column
:label=
"$t('主联系方式')"
prop=
"defaultContactPhone"
>
<
template
v-slot=
"{ row }"
>
+
{{
row
.
defaultContactPhone
}}
<br
/>
+
{{
row
.
defaultContactPhone
}}
<br/>
<contacts
:id=
"row.id"
>
<el-button
type=
"text"
>
更多
</el-button>
</contacts>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_TYPE"
:value=
"scope.row.type"
/>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_ROLE"-->
<!-- :value="scope.row.roles"-->
<!-- />-->
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_ROLE
,
(
row
.
roles
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<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"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
:label=
"$t('出货渠道')"
align=
"center"
>
<
template
slot-scope=
"{ row }"
>
{{
channel
(
row
.
transportType
)
}}
...
...
@@ -208,7 +218,7 @@
</el-table-column>
<el-table-column
:label=
"$t('入公海时间')"
align=
"center"
width=
"160"
>
<
template
v-slot=
"{ row }"
>
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
{{
parseTime
(
row
.
enterOpenSeaTime
?
row
.
enterOpenSeaTime
:
row
.
estimateEnterOpenSeaTime
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('入仓确认')"
align=
"center"
>
...
...
@@ -262,20 +272,21 @@
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"confirm"
>
{{
$t('确 定')
}}
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
{{
$t('确 定')
}}
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
getCustomerPage
,
customerMergeCus
}
from
"
@/api/ecw/customer
"
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
import
{
getCustomerPage
,
customerMergeCus
}
from
"
@/api/ecw/customer
"
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
"
@/utils/dict
"
import
Contacts
from
"
./contacts.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
;
export
default
{
name
:
"
CustomerMerge
"
,
components
:
{
...
...
@@ -386,7 +397,7 @@ export default {
return
(
id
)
=>
{
if
(
id
)
{
let
strName
=
''
for
(
const
item
of
this
.
customerSelectFn
)
{
for
(
const
item
of
this
.
customerSelectFn
)
{
if
(
item
.
id
==
id
)
{
strName
=
item
.
name
break
...
...
@@ -401,9 +412,6 @@ export default {
},
created
()
{
this
.
getList
();
getProductTypeList
().
then
((
r
)
=>
{
this
.
productTypeList
=
r
.
data
;
});
},
methods
:
{
init
()
{
...
...
@@ -413,7 +421,12 @@ export default {
selectCustomer
(
type
)
{
this
.
type
=
type
this
.
customerId
=
null
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
}
this
.
customerDialogVisible
=
true
this
.
getList
();
},
handleSubmit
()
{
if
(
!
this
.
retainCustomer
.
id
)
{
...
...
@@ -439,7 +452,7 @@ export default {
const
h
=
this
.
$createElement
;
this
.
$msgbox
({
title
:
'
注意事项
'
,
message
:
h
(
'
div
'
,
{
class
:
'
stips
'
},
[
message
:
h
(
'
div
'
,
{
class
:
'
stips
'
},
[
h
(
'
p
'
,
null
,
'
1. 保留客户和非主客户,不能在两个不同的客户经理名下,请先确认两个客户在同一个客户经理名下
'
),
h
(
'
p
'
,
null
,
'
2. 被合并客户,提交后会直接删除
'
),
h
(
'
p
'
,
null
,
'
3. 合并后,非主客户的联系人,跟进记录,报价单,订单,客户投诉,品牌授权都迁移到保留客户中,其他信息不会迁移,如需要维护非主客户的客户档案信息到保留客户中,请先维护好再操作
'
),
...
...
src/views/ecw/customer/index.vue
View file @
42c087ab
This diff is collapsed.
Click to expand it.
src/views/ecw/customer/indirectCustomer.vue
View file @
42c087ab
...
...
@@ -101,7 +101,8 @@
</el-table-column>
<el-table-column
:label=
"$t('客户类别')"
align=
"center"
prop=
"sourse"
>
<
template
v-slot=
"{row}"
>
<dict-tag
:value=
"row.type"
:type=
"DICT_TYPE.CUSTOMER_TYPE"
/>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag
:value=
"row.type"
:type=
"DICT_TYPE.CUSTOMER_TYPE"
/>
-->
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
...
...
@@ -130,16 +131,18 @@
<
script
>
import
{
updateCustomer
,
getCustomer
,
getCustomerPage
,
exportCustomerExcel
}
from
"
@/api/ecw/indirectCustomer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
getDictDatas
,
DICT_TYPE
,
getDictDatas2
}
from
'
@/utils/dict
'
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
exportCustomerComplaintExcel
}
from
"
@/api/ecw/customerComplaint
"
;
import
{
indirectCustomerExportExcel
}
from
"
@/api/ecw/customer
"
;
import
AreaCodeSelector
from
"
@/components/AreaCodeSelector/index.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
name
:
"
EcwCustomerIndirectcustomer
"
,
components
:
{
Template
,
AreaCodeSelector
},
activated
()
{
...
...
@@ -149,6 +152,7 @@ export default {
return
{
exportLoading
:
false
,
getDictDatas
,
getDictDatas2
,
DICT_TYPE
,
// 遮罩层
loading
:
true
,
...
...
src/views/ecw/customer/query.vue
View file @
42c087ab
This diff is collapsed.
Click to expand it.
src/views/ecw/customerConfirm/index.vue
View file @
42c087ab
...
...
@@ -454,11 +454,12 @@
</
template
>
</el-table-column>
<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
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
...
...
src/views/ecw/customerToBeAssigned/index.vue
View file @
42c087ab
...
...
@@ -451,11 +451,12 @@
</
template
>
</el-table-column>
<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
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
...
...
src/views/ecw/myCustomerService/index.vue
View file @
42c087ab
This diff is collapsed.
Click to expand it.
src/views/ecw/oceanCustomer/index.vue
View file @
42c087ab
...
...
@@ -503,11 +503,12 @@
</
template
>
</el-table-column>
<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
slot-scope=
"{ row }"
>
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
row
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<!--
<dict-tag-->
<!-- :type="DICT_TYPE.CUSTOMER_TYPE"-->
<!-- :value="scope.row.type"-->
<!-- />-->
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('角色')"
align=
"center"
prop=
"status"
>
...
...
src/views/ecw/offer/edit.vue
View file @
42c087ab
This diff is collapsed.
Click to expand it.
src/views/ecw/order/edit.vue
View file @
42c087ab
...
...
@@ -1625,7 +1625,7 @@ export default {
for
(
const
i
in
this
.
form
.
orderItemVOList
){
const
item
=
this
.
form
.
orderItemVOList
[
i
]
if
(
!
item
.
prodId
){
return
this
.
$message
.
error
(
this
.
$t
(
`第
{index
}行未选择商品`
,
i
+
1
))
return
this
.
$message
.
error
(
this
.
$t
(
`第
${
Number
(
i
)
+
1
}
行未选择商品`
,
i
+
1
))
}
}
...
...
src/views/report/customer_analysis/index.vue
View file @
42c087ab
...
...
@@ -401,6 +401,7 @@
<
script
>
//国家列表接口
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
;
import
{
DICT_TYPE
,
getDictDatas
,
getDictDatas2
}
from
'
@/utils/dict
'
import
UserSelector
from
"
@/components/UserSelector
"
;
import
{
listServiceUser2
}
from
"
@/api/system/user
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
...
...
@@ -482,6 +483,9 @@ export default {
return
{
// 遮罩层
loading
:
true
,
getDictDatas2
,
getDictDatas
,
DICT_TYPE
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
...
...
@@ -849,4 +853,3 @@ export default {
},
};
</
script
>
\ No newline at end of file
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