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
07e3a6e6
Commit
07e3a6e6
authored
Mar 03, 2025
by
honghy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
需求116 后台-集运-包裹列表-操作-跟进
parent
4dc7f2ef
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
155 additions
and
119 deletions
+155
-119
SpecialNeedsCons.vue
src/views/ecw/cons/components/SpecialNeedsCons.vue
+0
-3
index.vue
src/views/ecw/cons/index.vue
+1
-1
ConsFollowupEdit.vue
src/views/ecw/consFollowup/components/ConsFollowupEdit.vue
+71
-23
index.vue
src/views/ecw/consFollowup/index.vue
+83
-92
No files found.
src/views/ecw/cons/components/SpecialNeedsCons.vue
View file @
07e3a6e6
...
...
@@ -70,11 +70,8 @@ export default {
})
let
p
=
this
.
specialNeedsList
.
filter
(
i
=>
this
.
advanceType
.
indexOf
(
i
.
advanceType
)
>
-
1
)
let
p1
=
[]
console
.
log
(
111111111111111111111111111111111111
)
console
.
log
(
this
.
echoList
)
console
.
log
(
p
)
console
.
log
(
this
.
specialNeedsList
)
console
.
log
(
111111111111111111111111111111111111
)
//获取新增的和修改的
p
.
forEach
(
item
=>
{
...
...
src/views/ecw/cons/index.vue
View file @
07e3a6e6
...
...
@@ -282,7 +282,7 @@
<SpecialNeedsCons
:showSpecialNeedsCons.sync=
"showSpecialNeedsCons"
:currency=
"JSON.stringify(currencyList)"
:consId=
"id"
:consNum=
"consNum"
@
determine=
"getList"
></SpecialNeedsCons>
<SpecialNeedsConsLook
:showSpecialNeedsConsLook.sync=
"showSpecialNeedsConsLook"
:consNum=
"consNum"
:consId=
"id"
></SpecialNeedsConsLook>
<fee-application-cons
v-if=
"feeApplicationBol"
:consId=
"id"
:currencys=
"JSON.stringify(currencyList)"
:dialog-visible.sync=
"feeApplicationBol "
@
refresh=
"getList"
></fee-application-cons>
<ConsFollowupEdit
:showConsFollowupEdit.sync=
"showConsFollowupEdit"
:
i
d=
"id"
@
determine=
"getList"
></ConsFollowupEdit>
<ConsFollowupEdit
:showConsFollowupEdit.sync=
"showConsFollowupEdit"
:
consI
d=
"id"
@
determine=
"getList"
></ConsFollowupEdit>
<batch-sign-off
:showConsBatchSignOff.sync=
"showConsBatchSignOff"
@
determine=
"getList"
:consIds=
"consIds"
></batch-sign-off>
</div>
</template>
...
...
src/views/ecw/consFollowup/components/ConsFollowupEdit.vue
View file @
07e3a6e6
<
template
>
<el-dialog
:title=
"cons.consNum+'-'+cons.customerNumber+'-'+$t('跟进记录')"
:before-close=
"()=>
{$emit('update:showConsFollowupEdit',false)}"
<el-dialog
:title=
"cons.consNum+'-'+cons.customerNumber+'-'+$t('跟进记录')"
:before-close=
"()=>
{$emit('update:showConsFollowupEdit',false)}"
:visible.sync="showConsFollowupEdit">
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<dict-selector
:placeholder=
"$t('请选择状态')"
v-model=
"form.status"
:type=
"DICT_TYPE.ECW_CONS_FOLLOWUP_STATUS"
></dict-selector>
</el-form-item>
<el-form-item
label=
"跟进内容"
>
<el-input
type=
"textarea"
v-model=
"form.followContent"
:rows=
"
6
"
/>
<el-form-item
label=
"跟进内容"
prop=
"followContent"
>
<el-input
type=
"textarea"
v-model=
"form.followContent"
:rows=
"
3
"
/>
</el-form-item>
<el-form-item
label=
"下次跟进时间"
prop=
"nextFollowTime"
>
<el-date-picker
clearable
v-model=
"form.nextFollowTime"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择下次跟进时间"
/>
</el-form-item>
<el-form-item
label=
"下次跟进内容"
>
<el-input
type=
"textarea"
v-model=
"form.nextFollowContent"
:rows=
"
6
"
/>
<el-form-item
label=
"下次跟进内容"
prop=
"nextFollowContent"
>
<el-input
type=
"textarea"
v-model=
"form.nextFollowContent"
:rows=
"
3
"
/>
</el-form-item>
<el-form-item
:label=
"$t('图片')"
>
...
...
@@ -50,20 +51,24 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建人"
>
{{
form
.
creatorName
}}
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建时间"
>
{{
form
.
createTime
}}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"最后更新人"
>
{{
form
.
updaterName
}}
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"最后更新时间"
>
{{
form
.
updateTime
}}
</el-form-item>
</el-col>
</el-row>
...
...
@@ -81,23 +86,30 @@ import imageUpload from "@/components/ImageUpload/index.vue"
import
Editor
from
"
@/components/Editor/index.vue
"
import
{
getCons
}
from
"
@/api/ecw/cons
"
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
import
{
createConsFollowup
}
from
"
@/api/ecw/consFollowup
"
import
{
createConsFollowup
,
getConsFollowup
,
updateConsFollowup
}
from
"
@/api/ecw/consFollowup
"
export
default
{
name
:
"
consFollowupEdit
"
,
components
:
{
Editor
,
imageUpload
},
props
:
{
id
:
Number
,
showConsFollowupEdit
:
Boolean
showConsFollowupEdit
:
Boolean
,
consId
:
Number
},
data
()
{
return
{
form
:
{
exceptionUrls
:
[]
,
exceptionUrls
:
[]
},
rules
:
{
status
:
[
{
required
:
true
,
message
:
"
请选择状态
"
,
trigger
:
"
blur
"
}
],
followContent
:
[
{
max
:
500
,
message
:
"
500max
"
,
trigger
:
"
blur
"
}
],
nextFollowContent
:
[
{
max
:
500
,
message
:
"
500max
"
,
trigger
:
"
blur
"
}
]
},
cons
:
{},
...
...
@@ -108,13 +120,25 @@ export default {
submitForm
()
{
this
.
$refs
.
form
.
validate
(
validate
=>
{
if
(
validate
)
{
this
.
form
.
exceptionUrls
=
this
.
params
.
exceptionUrls
.
length
?
this
.
params
.
exceptionUrls
.
split
(
"
,
"
)
:
[]
this
.
form
.
mediaBusinessType
=
2
createConsFollowup
(
this
.
form
).
then
(
response
=>
{
this
.
showConsFollowupEdit
=
false
if
(
this
.
consId
)
{
var
parmas
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
))
parmas
.
exceptionUrls
=
parmas
.
exceptionUrls
.
length
?
parmas
.
exceptionUrls
.
split
(
"
,
"
)
:
[]
parmas
.
mediaBusinessType
=
2
createConsFollowup
(
parmas
).
then
(
response
=>
{
this
.
$emit
(
"
update:showConsFollowupEdit
"
,
false
)
this
.
$emit
(
"
determine
"
)
this
.
$modal
.
msgSuccess
(
"
新增成功
"
)
})
}
else
{
var
parmas
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
))
parmas
.
exceptionUrls
=
parmas
.
exceptionUrls
.
length
?
parmas
.
exceptionUrls
.
split
(
"
,
"
)
:
[]
parmas
.
mediaBusinessType
=
2
updateConsFollowup
(
parmas
).
then
(
response
=>
{
this
.
$emit
(
"
update:showConsFollowupEdit
"
,
false
)
this
.
$emit
(
"
determine
"
)
this
.
$modal
.
msgSuccess
(
"
修改成功
"
)
})
}
}
})
}
...
...
@@ -122,15 +146,39 @@ export default {
watch
:
{
showConsFollowupEdit
(
val
)
{
if
(
val
)
{
getCons
(
this
.
id
).
then
(
res
=>
{
listSimpleUsers
().
then
((
r
)
=>
{
this
.
userServiceList
=
r
.
data
})
if
(
this
.
consId
)
{
getCons
(
this
.
consId
).
then
(
res
=>
{
this
.
cons
=
res
.
data
})
listSimpleUsers
().
then
((
r
)
=>
{
this
.
userServiceList
=
r
.
data
;
});
// 获取当前时间精确至[年、月、日、时、分、秒]
var
now
=
new
Date
()
var
year
=
now
.
getFullYear
()
var
month
=
now
.
getMonth
()
var
date
=
now
.
getDate
()
month
=
month
+
1
month
=
month
.
toString
().
padStart
(
2
,
'
0
'
)
date
=
date
.
toString
().
padStart
(
2
,
'
0
'
)
var
defaultDate
=
`
${
year
}
-
${
month
}
-
${
date
}
`
this
.
$set
(
this
.
form
,
"
followTime
"
,
defaultDate
)
this
.
$set
(
this
.
form
,
"
consId
"
,
this
.
consId
)
this
.
$set
(
this
.
form
,
"
followUserId
"
,
this
.
$store
.
state
.
user
.
id
)
}
else
if
(
this
.
id
)
{
getConsFollowup
(
this
.
id
).
then
(
res
=>
{
var
data
=
res
.
data
data
.
exceptionUrls
=
data
.
exceptionUrls
&&
data
.
exceptionUrls
.
length
>
0
?
data
.
exceptionUrls
.
join
(
'
,
'
)
:
''
;
this
.
form
=
data
this
.
$set
(
this
.
form
,
"
status
"
,
data
.
status
+
''
)
this
.
cons
.
consNum
=
data
.
consNum
this
.
cons
.
customerNumber
=
data
.
customerNumber
})
}
}
else
{
this
.
exceptionUrls
=
[]
this
.
form
=
{}
this
.
form
=
{
exceptionUrls
:
[]
}
}
}
}
...
...
src/views/ecw/consFollowup/index.vue
View file @
07e3a6e6
...
...
@@ -3,35 +3,66 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"
包裹ID"
prop=
"consId
"
>
<el-input
v-model=
"queryParams.cons
Id"
placeholder=
"请输入包裹ID"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"
快递单号"
prop=
"consNum
"
>
<el-input
v-model=
"queryParams.cons
Num"
placeholder=
"请输入快递单号"
clearable
/>
</el-form-item>
<el-form-item
label=
""
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
<el-form-item
label=
"客户"
prop=
"customerName"
>
<el-input
v-model=
"queryParams.customerName"
placeholder=
"请输入客户"
clearable
/>
</el-form-item>
<el-form-item
label=
"跟进编号"
prop=
"followNumber"
>
<el-input
v-model=
"queryParams.followNumber"
placeholder=
"请输入跟进编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"联系方式"
prop=
"relationPhone"
>
<el-input
v-model=
"queryParams.relationPhone"
placeholder=
"请输入联系方式"
clearable
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
<el-form-item
label=
"状态"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CONS_FOLLOWUP_STATUS"
v-model=
"queryParams.statusList"
multiple
class=
"w-200"
/>
</el-form-item>
<el-form-item
label=
"跟进时间"
>
<el-date-picker
v-model=
"dateRangeFollowTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"跟进人"
prop=
"followUserId"
>
<el-input
v-model=
"queryParams.followUserId"
placeholder=
"请输入跟进人"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"下次跟进时间"
>
<el-date-picker
v-model=
"dateRangeNextFollowTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"跟进编号"
prop=
"followNumber"
>
<el-input
v-model=
"queryParams.followNumber"
placeholder=
"请输入跟进编号"
clearable
/>
</el-form-item>
<el-form-item
label=
"跟进人"
prop=
"followUserId"
>
<el-select
v-model=
"queryParams.followUserId"
:placeholder=
"$t('请选择')"
clearable
filterable
size=
"small"
>
<el-option
v-for=
"dict in userServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建人"
prop=
"creator"
>
<el-select
v-model=
"queryParams.creator"
:placeholder=
"$t('请选择')"
clearable
filterable
size=
"small"
>
<el-option
v-for=
"dict in userServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
...
@@ -40,71 +71,64 @@
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:cons-followup:create']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:cons-followup:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"ID"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"包裹ID"
align=
"center"
prop=
"consId"
/>
<el-table-column
label=
""
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"快递单号"
align=
"center"
prop=
"consNum"
/>
<el-table-column
label=
"客户"
align=
"center"
prop=
"customerName"
/>
<el-table-column
label=
"联系方式"
align=
"center"
prop=
"relationPhone"
/>
<el-table-column
label=
"跟进时间"
align=
"center"
prop=
"followTime"
/>
<el-table-column
:label=
"$t('状态')"
align=
"center"
>
<template
slot-scope=
"scope"
>
<
span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span
>
<
dict-tag
:type=
"DICT_TYPE.ECW_CONS_FOLLOWUP_STATUS"
:value=
"scope.row.status"
/
>
</
template
>
</el-table-column>
<el-table-column
label=
"
跟进编号"
align=
"center"
prop=
"followNumber
"
/>
<el-table-column
label=
"
状态"
align=
"center"
prop=
"status
"
/>
<el-table-column
label=
"
跟进内容"
align=
"center"
prop=
"followContent
"
/>
<el-table-column
label=
"
跟进时间"
align=
"center"
prop=
"followTime
"
/>
<el-table-column
label=
"
跟进人"
align=
"center"
prop=
"followUserId
"
/>
<el-table-column
label=
"
下次跟进时间"
align=
"center"
prop=
"nextFollow
Time"
width=
"180"
>
<el-table-column
label=
"
内容"
align=
"center"
prop=
"followContent
"
/>
<el-table-column
label=
"
跟进人"
align=
"center"
prop=
"followUserName
"
/>
<el-table-column
label=
"
下次跟进时间"
align=
"center"
prop=
"followTime
"
/>
<el-table-column
label=
"
下次跟进内容"
align=
"center"
prop=
"nextFollowContent
"
/>
<el-table-column
label=
"
创建人"
align=
"center"
prop=
"creatorName
"
/>
<el-table-column
label=
"
创建时间"
align=
"center"
prop=
"create
Time"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
nextFollow
Time
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
create
Time
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"
下次跟进内容"
align=
"center"
prop=
"nextFollowContent
"
/>
<el-table-column
label=
"
跟进编号"
align=
"center"
prop=
"followNumber
"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:cons-followup:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:cons-followup:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<ConsFollowupEdit
:showConsFollowupEdit.sync=
"showConsFollowupEdit"
:id=
"id"
@
determine=
"getList"
></ConsFollowupEdit>
</div>
</template>
<
script
>
import
{
createConsFollowup
,
updateConsFollowup
,
deleteConsFollowup
,
getConsFollowup
,
getConsFollowupPage
,
exportConsFollowupExcel
}
from
"
@/api/ecw/consFollowup
"
import
Editor
from
"
@/components/Editor
"
import
ConsFollowupEdit
from
"
@/views/ecw/consFollowup/components/ConsFollowupEdit.vue
"
import
Template
from
"
@/views/cms/template/index.vue
"
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
export
default
{
name
:
"
ConsFollowup
"
,
components
:
{
Template
,
ConsFollowupEdit
,
Editor
},
data
()
{
...
...
@@ -130,23 +154,24 @@ export default {
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
cons
Id
:
null
,
followNumber
:
null
,
cons
Num
:
null
,
customerName
:
null
,
status
:
null
,
followContent
:
null
,
relationPhone
:
null
,
followUserId
:
null
,
nextFollowContent
:
null
nextFollowContent
:
null
,
statusList
:
[]
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
consId
:
[{
required
:
true
,
message
:
"
包裹ID不能为空
"
,
trigger
:
"
blur
"
}]
}
showConsFollowupEdit
:
false
,
userServiceList
:
[],
id
:
null
}
},
created
()
{
this
.
getList
()
listSimpleUsers
().
then
((
r
)
=>
{
this
.
userServiceList
=
r
.
data
})
},
methods
:
{
/** 查询列表 */
...
...
@@ -197,44 +222,10 @@ export default {
this
.
resetForm
(
"
queryForm
"
)
this
.
handleQuery
()
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
()
this
.
open
=
true
this
.
title
=
"
添加操作跟进
"
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
()
const
id
=
row
.
id
getConsFollowup
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
this
.
open
=
true
this
.
title
=
"
修改操作跟进
"
})
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateConsFollowup
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
)
this
.
open
=
false
this
.
getList
()
})
return
}
// 添加的提交
createConsFollowup
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
)
this
.
open
=
false
this
.
getList
()
})
})
this
.
id
=
row
.
id
this
.
showConsFollowupEdit
=
true
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
...
...
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