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
d625d224
Commit
d625d224
authored
Oct 26, 2024
by
1483922988@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
6
parent
4af4e00f
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
495 additions
and
1017 deletions
+495
-1017
edit.vue
src/views/ecw/customer/edit.vue
+370
-906
query.vue
src/views/ecw/customer/query.vue
+24
-9
index.vue
src/views/ecw/offer/index.vue
+11
-7
logList.vue
src/views/ecw/offer/logList.vue
+90
-95
No files found.
src/views/ecw/customer/edit.vue
View file @
d625d224
This diff is collapsed.
Click to expand it.
src/views/ecw/customer/query.vue
View file @
d625d224
...
@@ -337,6 +337,28 @@
...
@@ -337,6 +337,28 @@
<
el
-
card
class
=
"
box-card
"
>
<
el
-
card
class
=
"
box-card
"
>
<
div
slot
=
"
header
"
class
=
"
clearfix
"
>
<
div
slot
=
"
header
"
class
=
"
clearfix
"
>
<
el
-
form
size
=
"
small
"
:
inline
=
"
true
"
label
-
width
=
"
100px
"
>
<
el
-
form
size
=
"
small
"
:
inline
=
"
true
"
label
-
width
=
"
100px
"
>
<
el
-
form
-
item
:
label
=
"
$t('编号')
"
prop
=
"
number
"
>
<
el
-
input
v
-
model
.
trim
=
"
followForm.number
"
clearable
@
keyup
.
enter
.
native
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('报价单号')
"
prop
=
"
offerNumber
"
>
<
el
-
input
v
-
model
.
trim
=
"
followForm.offerNumber
"
clearable
@
keyup
.
enter
.
native
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('联系人')
"
prop
=
"
contactName
"
>
<
el
-
input
v
-
model
.
trim
=
"
followForm.contactName
"
clearable
@
keyup
.
enter
.
native
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('联系方式')
"
prop
=
"
contactPhone
"
>
<
el
-
input
v
-
model
.
trim
=
"
followForm.contactPhone
"
clearable
@
keyup
.
enter
.
native
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('客户经理')
"
prop
=
"
salesmanIds
"
>
<
user
-
selector
v
-
model
=
"
followForm.salesmanIds
"
multiple
clearable
@
change
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('下次跟进时间')
"
>
<
el
-
date
-
picker
v
-
model
=
"
followFormTmp.nextTime
"
type
=
"
datetimerange
"
range
-
separator
=
"
-
"
:
start
-
placeholder
=
"
$t('开始日期')
"
:
end
-
placeholder
=
"
$t('结束日期')
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
@
change
=
"
handleQuery
"
>
<
/el-date-picker
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('关联跟进记录')
"
prop
=
"
parentNumber
"
>
<
el
-
input
v
-
model
.
trim
=
"
followForm.parentNumber
"
clearable
@
keyup
.
enter
.
native
=
"
handleQuery
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('跟进类型')
"
>
<
el
-
form
-
item
:
label
=
"
$t('跟进类型')
"
>
<
dict
-
selector
clearable
:
type
=
"
DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE
"
v
-
model
=
"
followForm.followType
"
@
change
=
"
handleQuery
"
><
/dict-selector
>
<
dict
-
selector
clearable
:
type
=
"
DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE
"
v
-
model
=
"
followForm.followType
"
@
change
=
"
handleQuery
"
><
/dict-selector
>
<
/el-form-item
>
<
/el-form-item
>
...
@@ -353,14 +375,6 @@
...
@@ -353,14 +375,6 @@
<
el
-
option
v
-
for
=
"
dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)
"
:
key
=
"
dict.value
"
:
label
=
"
isChinese ? dict.label : dict.labelEn
"
:
value
=
"
dict.value
"
/>
<
el
-
option
v
-
for
=
"
dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)
"
:
key
=
"
dict.value
"
:
label
=
"
isChinese ? dict.label : dict.labelEn
"
:
value
=
"
dict.value
"
/>
<
/el-select
>
<
/el-select
>
<
/el-form-item
>
<
/el-form-item
>
<!--
<
el
-
form
-
item
:
label
=
"
$t('跟进时间')
"
>
<
el
-
date
-
picker
type
=
"
datetimerange
"
clearable
v
-
model
=
"
followTime
"
style
=
"
width: 320px
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
range
-
separator
=
"
-
"
:
start
-
placeholder
=
"
$t('开始跟进时间')
"
:
end
-
placeholder
=
"
$t('结束跟进时间')
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('下次跟进时间')
"
>
<
el
-
date
-
picker
type
=
"
datetimerange
"
clearable
v
-
model
=
"
nextTime
"
style
=
"
width: 320px
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
range
-
separator
=
"
-
"
:
start
-
placeholder
=
"
$t('开始下次跟进时间')
"
:
end
-
placeholder
=
"
$t('结束下次跟进时间')
"
/>
<
/el-form-item
>
-->
<
el
-
form
-
item
>
<
el
-
form
-
item
>
<
el
-
button
type
=
"
primary
"
icon
=
"
el-icon-search
"
@
click
=
"
getCustomerFollowList
"
>
{{
$t
(
"
搜索
"
)
}}
<
/el-button
>
<
el
-
button
type
=
"
primary
"
icon
=
"
el-icon-search
"
@
click
=
"
getCustomerFollowList
"
>
{{
$t
(
"
搜索
"
)
}}
<
/el-button
>
<
el
-
button
<
el
-
button
...
@@ -423,7 +437,7 @@
...
@@ -423,7 +437,7 @@
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
width
=
"
150px
"
:
label
=
"
$t('操作')
"
align
=
"
center
"
fixed
=
"
right
"
class
-
name
=
"
small-padding fixed-width
"
>
<
el
-
table
-
column
width
=
"
150px
"
:
label
=
"
$t('操作')
"
align
=
"
center
"
fixed
=
"
right
"
class
-
name
=
"
small-padding fixed-width
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
@
click
=
"
handleCustomerFollow(scope.row, scope.row.status === 0)
"
v
-
hasPermi
=
"
['ecw:customer:follow-update']
"
>
{{
$t
(
"
编辑
"
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
v
-
if
=
"
!scope.row.status
"
@
click
=
"
handleCustomerFollow(scope.row, scope.row.status === 0)
"
v
-
hasPermi
=
"
['ecw:customer:follow-update']
"
>
{{
$t
(
"
编辑
"
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-collection
"
@
click
=
"
handleCustomerFollow(scope.row, true)
"
v
-
has
-
permi
=
"
['ecw:customer:follow-add-plan']
"
>
{{
$t
(
"
增加计划
"
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-collection
"
@
click
=
"
handleCustomerFollow(scope.row, true)
"
v
-
has
-
permi
=
"
['ecw:customer:follow-add-plan']
"
>
{{
$t
(
"
增加计划
"
)
}}
<
/el-button
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
...
@@ -991,6 +1005,7 @@ export default {
...
@@ -991,6 +1005,7 @@ export default {
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
pageSize
:
10
}
,
}
,
followFormTmp
:
{
}
,
followTime
:
[],
followTime
:
[],
nextTime
:
[],
nextTime
:
[],
customerFollowTotal
:
0
,
customerFollowTotal
:
0
,
...
...
src/views/ecw/offer/index.vue
View file @
d625d224
...
@@ -7,11 +7,11 @@
...
@@ -7,11 +7,11 @@
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model.trim=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model.trim=
"queryParams.searchCustomer"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('联系方式')"
prop=
"relationPhone"
>
<el-form-item
:label=
"$t('联系方式')"
prop=
"relationPhone"
>
<el-input
v-model.trim=
"queryParams.relationPhone"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')"
/>
<el-input
v-model.trim=
"queryParams.relationPhone"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('区号')"
prop=
"relationAreaCode"
>
<el-form-item
:label=
"$t('区号')"
prop=
"relationAreaCode"
>
...
@@ -111,14 +111,18 @@
...
@@ -111,14 +111,18 @@
<!-- 列表 -->
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
border
>
<el-table
v-loading=
"loading"
:data=
"list"
border
>
<el-table-column
:label=
"$t('报价单号')"
align=
"left"
prop=
"number"
width=
"
200px
"
>
<el-table-column
:label=
"$t('报价单号')"
align=
"left"
prop=
"number"
width=
"
150
"
>
<template
slot-scope=
"
{ row }">
<template
slot-scope=
"
{ row }">
<el-link
type=
"primary"
@
click.native=
"$router.push('detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
<el-link
type=
"primary"
@
click.native=
"$router.push('detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('订单编号')"
align=
"left"
prop=
"orderNo"
/>
<el-table-column
:label=
"$t('订单编号')"
align=
"left"
width=
"120"
>
<el-table-column
:label=
"$t('联系人')"
align=
"left"
prop=
"relationName"
width=
"180"
/>
<
template
slot-scope=
"{ row }"
>
<el-table-column
:label=
"$t('联系电话')"
align=
"left"
prop=
"relationPhone"
/>
<a
class=
"el-link el-link--primary is-underline"
href=
"javascript:;"
@
click=
"$router.push(`/order/detail?orderId=$
{row.orderId}`)">
{{
row
.
orderNo
}}
</a>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('联系人')"
align=
"left"
prop=
"relationName"
width=
"120"
/>
<el-table-column
:label=
"$t('联系电话')"
align=
"left"
prop=
"relationPhone"
width=
"150"
/>
<el-table-column
:label=
"$t('重要程序')"
align=
"center"
prop=
"importance"
/>
<el-table-column
:label=
"$t('重要程序')"
align=
"center"
prop=
"importance"
/>
<el-table-column
:label=
"$t('始发地')"
align=
"left"
prop=
"departureName"
/>
<el-table-column
:label=
"$t('始发地')"
align=
"left"
prop=
"departureName"
/>
<el-table-column
:label=
"$t('目的地')"
align=
"center"
prop=
"objectiveName"
/>
<el-table-column
:label=
"$t('目的地')"
align=
"center"
prop=
"objectiveName"
/>
...
@@ -568,7 +572,7 @@ export default {
...
@@ -568,7 +572,7 @@ export default {
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
// 处理查询参数
// 处理查询参数
let
params
=
{
...
this
.
queryParams
}
let
params
=
{
...
this
.
queryParams
,
...
this
.
formatQuery
()
}
params
.
pageNo
=
undefined
params
.
pageNo
=
undefined
params
.
pageSize
=
undefined
params
.
pageSize
=
undefined
// 执行导出
// 执行导出
...
...
src/views/ecw/offer/logList.vue
View file @
d625d224
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-card>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
跟进记录列表
'
)
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
"
跟进记录列表
"
)
}}
</div>
<!-- 列表 -->
<!-- 列表 -->
<div
class=
"offer-header"
>
<div
class=
"offer-header"
>
<span
style=
"font-size: 15px;"
>
{{
$t
(
'
报价单号
'
)
}}
:
{{
number
}}
</span>
<span
style=
"font-size: 15px"
>
{{
$t
(
"
报价单号
"
)
}}
:
{{
number
}}
</span>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
>
{{
$t
(
"
新增
"
)
}}
</el-button>
>
{{
$t
(
'
新增
'
)
}}
</el-button>
</div>
</div>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('序号')"
align=
"center"
prop=
"id"
type=
"index"
>
<el-table-column
:label=
"$t('序号')"
align=
"center"
prop=
"id"
type=
"index"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('跟进类型')"
align=
"center"
prop=
"type"
>
<el-table-column
:label=
"$t('跟进类型')"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_TYPE"
:value=
"scope.row.type"
></dict-tag>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_TYPE"
:value=
"scope.row.type"
></dict-tag>
</
template
>
</
template
>
...
@@ -29,105 +28,101 @@
...
@@ -29,105 +28,101 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('跟进时间')"
align=
"center"
prop=
"followUpTime"
width=
"180"
>
<el-table-column
:label=
"$t('跟进时间')"
align=
"center"
prop=
"followUpTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
followUpTime
}}
</span>
<span>
{{
scope
.
row
.
followUpTime
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('客户反馈')"
align=
"center"
prop=
"customerFeedback"
/>
<el-table-column
:label=
"$t('客户反馈')"
align=
"center"
prop=
"customerFeedback"
/>
<el-table-column
:label=
"$t('处理结果')"
align=
"center"
prop=
"processingResults"
/>
<el-table-column
:label=
"$t('处理结果')"
align=
"center"
prop=
"processingResults"
/>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"followUpSalesmanName"
>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"followUpSalesmanName"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
getCustomerService
(
scope
.
row
.
followUpSalesmanId
)
}}
</span>
<span>
{{
getCustomerService
(
scope
.
row
.
followUpSalesmanId
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"params.page"
:limit.sync=
"params.rows"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"params.page"
:limit.sync=
"params.rows"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
</el-card>
</el-card>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
getOfferLogPage
}
from
"
@/api/ecw/offerLog
"
;
import
{
getOfferLogPage
}
from
"
@/api/ecw/offerLog
"
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
{
getOffer
}
from
'
@/api/ecw/offer
'
import
{
getOffer
}
from
"
@/api/ecw/offer
"
import
{
userList
}
from
"
@/api/system/user
"
import
{
userList
}
from
"
@/api/system/user
"
export
default
{
export
default
{
name
:
"
OfferLog
"
,
name
:
"
OfferLog
"
,
components
:
{
components
:
{},
},
data
()
{
data
()
{
return
{
return
{
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
list
:
[],
list
:
[],
total
:
0
,
total
:
0
,
params
:{
params
:
{
page
:
1
,
page
:
1
,
rows
:
20
,
rows
:
20
,
offerId
:
0
,
offerId
:
0
,
type
:
2
type
:
2
},
},
number
:
''
,
number
:
""
,
relationId
:
0
,
relationId
:
0
,
creatorName
:
'
test
'
,
creatorName
:
"
test
"
,
creatorData
:[]
creatorData
:
[]
}
;
}
},
},
created
()
{
created
()
{
if
(
this
.
$route
.
query
.
offerId
)
{
if
(
this
.
$route
.
query
.
offerId
)
{
this
.
params
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
params
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
getList
()
;
this
.
getList
()
this
.
getRelationID
()
this
.
getRelationID
()
}
}
userList
(
'
customer service
'
).
then
(
res
=>
this
.
creatorData
=
res
.
data
)
userList
(
"
customer service
"
).
then
((
res
)
=>
(
this
.
creatorData
=
res
.
data
)
)
},
},
methods
:
{
methods
:
{
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
let
params
=
{
...
this
.
params
};
let
params
=
{
...
this
.
params
}
// 执行查询
// 执行查询
getOfferLogPage
(
params
).
then
(
response
=>
{
getOfferLogPage
(
params
).
then
((
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
list
=
response
.
data
.
list
this
.
total
=
response
.
data
.
total
;
this
.
total
=
response
.
data
.
total
this
.
loading
=
false
;
this
.
loading
=
false
});
})
},
},
getCustomerService
(
id
){
getCustomerService
(
id
)
{
var
user
=
this
.
creatorData
.
find
(
item
=>
item
.
id
==
id
)
var
user
=
this
.
creatorData
.
find
((
item
)
=>
item
.
id
==
id
)
if
(
user
)
return
user
.
nickname
if
(
user
)
return
user
.
nickname
return
''
return
""
},
},
getRelationID
(){
getRelationID
()
{
getOffer
(
this
.
params
.
offerId
).
then
(
response
=>
{
getOffer
(
this
.
params
.
offerId
).
then
(
(
response
)
=>
{
this
.
relationId
=
response
.
data
.
consignorId
;
this
.
relationId
=
response
.
data
.
consignorId
this
.
number
=
response
.
data
.
number
;
this
.
number
=
response
.
data
.
number
})
})
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
"
/offer/createLog
"
,
path
:
"
/offer/createLog
"
,
query
:{
query
:
{
offerId
:
this
.
params
.
offerId
,
offerId
:
this
.
params
.
offerId
,
number
:
this
.
number
number
:
this
.
number
}
})
}
}
});
},
}
}
}
;
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.card-title
{
.card-title
{
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.offer-header
{
.offer-header
{
padding-bottom
:
16px
;
padding-bottom
:
16px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
}
}
</
style
>
</
style
>
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