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
5fa2c517
Commit
5fa2c517
authored
Jul 04, 2022
by
我在何方
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新报表跟进
parent
1930fed3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
719 additions
and
1 deletion
+719
-1
offerLog.js
src/api/ecw/offerLog.js
+54
-0
user.js
src/api/system/user.js
+8
-0
dict.js
src/utils/dict.js
+2
-1
createLog.vue
src/views/ecw/offer/createLog.vue
+129
-0
detail.vue
src/views/ecw/offer/detail.vue
+412
-0
logList.vue
src/views/ecw/offer/logList.vue
+114
-0
No files found.
src/api/ecw/offerLog.js
0 → 100644
View file @
5fa2c517
import
request
from
'
@/utils/request
'
// 创建报价单跟进日志
export
function
createOfferLog
(
data
)
{
return
request
({
url
:
'
/ecw/offer-log/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新报价单跟进日志
export
function
updateOfferLog
(
data
)
{
return
request
({
url
:
'
/ecw/offer-log/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除报价单跟进日志
export
function
deleteOfferLog
(
id
)
{
return
request
({
url
:
'
/ecw/offer-log/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得报价单跟进日志
export
function
getOfferLog
(
id
)
{
return
request
({
url
:
'
/ecw/offer-log/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得报价单跟进日志分页
export
function
getOfferLogPage
(
query
)
{
return
request
({
url
:
'
/ecw/offer-log/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出报价单跟进日志 Excel
export
function
exportOfferLogExcel
(
query
)
{
return
request
({
url
:
'
/ecw/offer-log/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/api/system/user.js
View file @
5fa2c517
...
...
@@ -10,6 +10,14 @@ export function listUser(query) {
})
}
// 根据岗位编码获取人员列表
export
function
userList
(
query
)
{
return
request
({
url
:
'
/system/user/list-user/
'
+
query
,
method
:
'
get
'
,
})
}
// 获取用户精简信息列表
export
function
listSimpleUsers
()
{
return
request
({
...
...
src/utils/dict.js
View file @
5fa2c517
...
...
@@ -93,6 +93,8 @@ export const DICT_TYPE = {
ECW_WAREHOUSING_TYPE
:
'
warehousing_type
'
,
// 入仓类型
ECW_OFFER_STATUS
:
'
offer_status
'
,
// 销售阶段(报价单)
ECW_IS_BRAND
:
'
is_brand
'
,
// 有无品牌
ECW_OFFER_TYPE
:
'
offer_type
'
,
// 跟进类型
ECW_OFFER_METHOD
:
'
offer_method
'
,
// 跟进方式
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
@@ -123,7 +125,6 @@ export const DICT_TYPE = {
COMMISSION_UNIT
:
'
commission_unit
'
,
//佣金货物单位
ECW_PORT_TYPE
:
'
port_type
'
,
//港口类型
CERTIFICATE_TYPE
:
'
certificate_type
'
,
//证件类型
//customer
CUSTOMER_CREDIT_RULE_TYPE
:
'
customer_credit_rule_type
'
,
CUSTOMER_LEVEL_RULE_TYPE
:
'
customer_level_rule_type
'
,
...
...
src/views/ecw/offer/createLog.vue
View file @
5fa2c517
<
template
>
<div
class=
"app-container"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
报表跟进
</div>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
label-position=
"left"
>
<el-form-item
label=
"报价单号"
prop=
"number"
style=
"width: 46%;display: inline-block;"
>
<label>
{{
form
.
number
}}
</label>
<!--
<el-input
:value=
"form.number"
disabled
placeholder=
"请输入报价单号"
/>
-->
</el-form-item>
<el-form-item
label=
"跟进类型"
prop=
"type"
style=
"width: 46%;display: inline-block;margin-left:8%"
>
<el-radio
v-model=
"form.type"
label=
"2"
>
商务洽谈
</el-radio>
</el-form-item>
<el-form-item
label=
"跟进时间"
prop=
"followUpTime"
style=
"width: 46%;display: inline-block"
>
<el-date-picker
clearable
v-model=
"form.followUpTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
format=
"yyyy-MM-dd HH:mm:ss"
type=
"datetime"
placeholder=
"选择跟进时间"
/>
</el-form-item>
<el-form-item
label=
"跟进业务员"
prop=
"followUpSalesmanId"
style=
"width: 46%;display: inline-block;;margin-left:8%"
>
<el-select
v-model=
"form.followUpSalesmanId"
placeholder=
"请选择跟进业务员"
>
<el-option
v-for=
"item in creatorData"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"联系人"
prop=
"contacts"
style=
"width: 46%;display: inline-block"
>
<el-select
v-model=
"form.contacts"
placeholder=
"请选择联系人"
>
<el-option
v-for=
"item in contactsData"
:key=
"item.customerId"
:label=
"item.name"
:value=
"item.customerId"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"跟进方式"
prop=
"followUpMethod"
style=
"width: 46%;display: inline-block;margin-left:8%"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_METHOD"
placeholder=
"请选择跟进方式"
v-model=
"form.followUpMethod"
form-type=
"select"
/>
</el-form-item>
<el-form-item
label=
"客户反馈"
prop=
"customerFeedback"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"form.customerFeedback"
placeholder=
"请输入客户反馈"
/>
</el-form-item>
<el-form-item
label=
"处理结果"
prop=
"processingResults"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"form.processingResults"
placeholder=
"请输入处理结果"
/>
</el-form-item>
</el-form>
</el-card>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
</div>
</div>
</
template
>
<
script
>
import
{
createOfferLog
}
from
"
@/api/ecw/offerLog
"
import
{
userList
}
from
"
@/api/system/user
"
import
{
getCustomerContactsListByCustomer
}
from
"
@/api/ecw/customerContacts
"
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
export
default
{
name
:
"
OfferLog
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
open
:
false
,
contactsData
:[],
creatorData
:[],
// 表单参数
form
:
{
type
:
'
2
'
,
offerId
:
0
,
number
:
0
},
relationId
:
0
,
// 表单校验
rules
:
{
type
:
[{
required
:
true
,
message
:
"
请选择跟进类型
"
,
trigger
:
"
change
"
}],
followUpTime
:
[{
required
:
true
,
message
:
"
跟进时间不能为空
"
,
trigger
:
"
blur
"
}],
followUpSalesmanId
:
[{
required
:
true
,
message
:
"
跟进业务员不能为空
"
,
trigger
:
"
change
"
}],
contacts
:
[{
required
:
true
,
message
:
"
联系人不能为空
"
,
trigger
:
"
blur
"
}],
followUpMethod
:
[{
required
:
true
,
message
:
"
请选择跟进方式
"
,
trigger
:
"
change
"
}],
customerFeedback
:
[{
required
:
true
,
message
:
"
客户反馈不能为空
"
,
trigger
:
"
blur
"
}],
processingResults
:
[{
required
:
true
,
message
:
"
处理结果不能为空
"
,
trigger
:
"
blur
"
}],
}
};
},
created
()
{
if
(
this
.
$route
.
query
.
offerId
){
this
.
form
.
offerId
=
this
.
$route
.
query
.
offerId
}
if
(
this
.
$route
.
query
.
relationId
){
this
.
relationId
=
this
.
$route
.
query
.
relationId
this
.
getContactsData
()
}
if
(
this
.
$route
.
query
.
number
){
this
.
form
.
number
=
this
.
$route
.
query
.
number
}
userList
(
'
salesman
'
).
then
(
res
=>
this
.
creatorData
=
res
.
data
)
},
methods
:
{
getContactsData
(){
getCustomerContactsListByCustomer
({
customerId
:
this
.
relationId
}).
then
(
response
=>
{
this
.
contactsData
=
response
.
data
})
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 添加的提交
this
.
form
.
type
=
parseInt
(
this
.
form
.
type
)
this
.
form
.
followUpMethod
=
parseInt
(
this
.
form
.
followUpMethod
)
createOfferLog
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
});
});
},
}
};
</
script
>
<
style
>
.dialog-footer
{
padding
:
40px
;
}
</
style
>
src/views/ecw/offer/detail.vue
View file @
5fa2c517
<
template
>
<div
class=
"app-container"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
报价单详情
</div>
<!-- 列表 -->
<div
class=
"offer-header"
>
<span
style=
"font-size: 15px;"
>
报价单号:
{{
list
.
number
}}
</span>
<div
class=
"btns"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"$router.push('edit?id=' + offerId)"
>
编辑
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleAdd"
>
跟进
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"toResult"
>
结果
</el-button>
<el-button
size=
"mini"
type=
"primary"
>
特价
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"handleDelete"
>
删除
</el-button>
</div>
</div>
<div>
<div
class=
"title-font"
>
<label>
报价单所属:发件人
</label>
</div>
<el-descriptions
:column=
"3"
border
class=
"card"
>
<el-descriptions-item
label=
"发货人:"
>
{{
consigneeData
[
0
].
name
}}
</el-descriptions-item>
<el-descriptions-item
label=
"手机号:"
>
{{
consigneeData
[
0
].
defaultContactPhone
}}
</el-descriptions-item>
<el-descriptions-item
label=
"联系地址:"
>
{{
consigneeData
[
0
].
address
}}
</el-descriptions-item>
<el-descriptions-item
label=
"客户来源:"
>
{{
consigneeData
[
0
].
source
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人公司名称:"
>
{{
consigneeData
[
0
].
company
}}
</el-descriptions-item>
<el-descriptions-item
label=
"社交软件:"
>
{{
consigneeData
[
0
].
defaultSocial
?
consigneeData
[
0
].
defaultSocial
:
''
+
'
'
+
consigneeData
[
0
].
defaultSocialNumber
?
consigneeData
[
0
].
defaultSocialNumber
:
''
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"3"
border
class=
"card"
>
<el-descriptions-item
label=
"收货人:"
>
{{
consigneeData
[
1
].
name
}}
</el-descriptions-item>
<el-descriptions-item
label=
"手机号:"
>
{{
consigneeData
[
1
].
defaultContactPhone
}}
</el-descriptions-item>
<el-descriptions-item
label=
"联系地址:"
>
{{
consigneeData
[
1
].
address
}}
</el-descriptions-item>
<el-descriptions-item
label=
"客户来源:"
>
{{
consigneeData
[
1
].
source
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人公司名称:"
>
{{
consigneeData
[
1
].
company
}}
</el-descriptions-item>
<el-descriptions-item
label=
"社交软件:"
>
{{
consigneeData
[
1
].
defaultSocial
?
consigneeData
[
1
].
defaultSocial
:
''
+
'
'
+
consigneeData
[
1
].
defaultSocialNumber
?
consigneeData
[
1
].
defaultSocialNumber
:
''
}}
</el-descriptions-item>
</el-descriptions>
<div
class=
"title-font"
>
<label>
始发地:
{{
list
.
departureName
}}
</label>
<label>
目的地:
{{
list
.
objectiveName
}}
</label>
</div>
</div>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
商品信息
</div>
<div
style=
"overflow: auto;"
>
<el-table
v-loading=
"loading"
border
:data=
"list.offerProdRespVOList"
>
<el-table-column
label=
"序号"
width=
"60px"
fixed
>
<template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
label=
"商品类型"
align=
"center"
prop=
"goodsType"
/>
<el-table-column
label=
"中文名"
align=
"center"
prop=
"prodTitleZh"
/>
<el-table-column
label=
"英文名"
align=
"center"
prop=
"prodTitleEn"
/>
<el-table-column
label=
"品牌"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
brand
?
'
有
'
:
'
无
'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"件数"
width=
"90px"
prop=
"num"
/>
<el-table-column
label=
"包装单位"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:value=
"scope.row.unit"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
defaultable
/>
</
template
>
</el-table-column>
<el-table-column
label=
"箱规(m)"
width=
"120px"
prop=
"boxGauge"
/>
<el-table-column
label=
"体积(m³)"
width=
"100px"
prop=
"volume"
/>
<el-table-column
label=
"重量(kg)"
width=
"100px"
prop=
"weight"
/>
<el-table-column
label=
"货值(RMB)"
width=
"100px"
prop=
"worth"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
worth
+
scope
.
row
.
worthCurrency
}}
</
template
>
</el-table-column>
<el-table-column
label=
"商品特性"
width=
"200px"
prop=
"prodAttrName"
/>
<el-table-column
label=
"运输方式"
width=
"100px"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportId"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"出货渠道"
width=
"100px"
prop=
"channelName"
/>
<el-table-column
label=
"线路"
width=
"200px"
prop=
"lineName"
/>
<el-table-column
label=
"运费"
>
<
template
slot-scope=
"scope"
>
{{
'
运费
'
+
scope
.
row
.
seaFreight
+
scope
.
row
.
seaFreightCurrency
+
'
/
'
+
scope
.
row
.
seaFreightVolume
+
'
清关费
'
+
scope
.
row
.
clearanceFreight
+
scope
.
row
.
clearanceFreightCurrency
+
'
/
'
+
scope
.
row
.
clearanceFreightVolume
}}
</
template
>
</el-table-column>
</el-table>
</div>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
费用小计
</div>
<el-descriptions
border
class=
"card"
>
<el-descriptions-item
label=
"总件数:"
>
{{list.estCostVO.totalNum}}
</el-descriptions-item>
<el-descriptions-item
label=
"总货值:"
>
{{list.estCostVO.totalWorth}}
</el-descriptions-item>
<el-descriptions-item
label=
"报价费:"
>
{{list.estCostVO.insuranceFee}}
</el-descriptions-item>
</el-descriptions>
<!-- <el-descriptions border class="card">
<el-descriptions-item label="佣金类型" :span="2" class="card">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" form-type="radio" fomtter="number" :value="list.commissionType" defaultable />
</el-descriptions-item>
</el-descriptions> -->
</el-card>
<el-card
class=
"card"
v-for=
"(item, i) in list.transportRespVOList"
>
<div
slot=
"header"
class=
"card-title"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"item.transportId"
></dict-tag>
</div>
<div
class=
"line"
>
<el-descriptions
v-for=
"(lineItem,k) in item.lineData"
>
<el-descriptions-item
:label=
"[3,4].indexOf(item.transportId)>-1?('空运路线'+(k+1)):('海运路线'+(k+1))"
>
{{lineItem.warehouseLineDO.startTitleZh + ' >> >> >> ' + lineItem.warehouseLineDO.destTitleZh}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-for=
"(channelItem,k) in item.channelData"
>
<el-descriptions-item
:label=
"出货渠道+key"
>
{{channelItem.nameZh}}
</el-descriptions-item>
</el-descriptions>
</div>
<el-descriptions
class=
"card"
v-if=
"[2,3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"是否双清"
>
<dict-tag
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
:value=
"item.doubleClear"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"航空公司"
>
{{item.airlineCompany}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"item.transportId==2"
>
<el-descriptions-item
label=
"船公司"
>
{{item.airlineCompany}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[2,3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"清关证书"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"item.customsClearCert"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[2,3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"清关证书备注"
>
{{item.remarks}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
class=
"card"
v-if=
"[3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"是否拆包"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"item.isUnpack"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"单票立刻转运"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"item.isSingleTicketTransport"
></dict-tag>
<span
style=
"margin-left:10px;color: #0000FF;"
>
注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”
</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"包装类型"
>
<dict-selector
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
multiple
v-model=
"item.packageType"
/>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,4].indexOf(item.transportId) > -1"
>
<el-descriptions-item
label=
"特需备注"
>
{{item.packageRemarks}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
通用信息
</div>
<el-descriptions
>
<el-descriptions-item
label=
"唛头1"
>
{{list.marks}}
</el-descriptions-item>
<el-descriptions-item
label=
"报关方式"
>
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"list.customsType"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
label=
"预计结束时间"
>
{{list.stopTime}}
</el-descriptions-item>
<el-descriptions-item
label=
"控货"
>
{{list.control?'是':'否'}}
</el-descriptions-item>
<el-descriptions-item
label=
"竞争对手"
>
{{list.competitor}}
</el-descriptions-item>
<el-descriptions-item
label=
"重要程度"
>
<el-rate
v-model=
"list.importance"
></el-rate>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
>
<el-descriptions-item
label=
"价格有效期"
>
{{list.startTime}} 至 {{list.endTime}}
</el-descriptions-item>
<el-descriptions-item
label=
"交货方式"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRADE_TYPE"
:value=
"list.tradeType"
></dict-tag>
{{list.tradeAdress}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
>
<el-descriptions-item
label=
"备注"
>
{{list.remarks}}
</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
</template>
<
script
>
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
import
{
getOffer
,
deleteOffer
}
from
'
@/api/ecw/offer
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
{
getProductPrice
,
getProductPriceList
}
from
'
@/api/ecw/productPrice
'
import
{
getCustomerList
,
getCustomer
}
from
'
@/api/ecw/customer
'
import
{
getChannelLists
,
getChannel
}
from
'
@/api/ecw/channel
'
export
default
{
name
:
"
detail
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
false
,
list
:
[],
types
:
'
package,bag
'
,
importance
:
1
,
productAttrList
:[],
offerId
:
134
,
//发货/收货人信息
consigneeData
:[]
};
},
created
()
{
getProductAttrList
().
then
(
res
=>
this
.
productAttrList
=
res
.
data
)
if
(
this
.
$route
.
query
.
offerId
){
this
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
getList
();
}
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
let
that
=
this
that
.
loading
=
true
;
// 执行查询
getOffer
(
that
.
offerId
).
then
(
response
=>
{
that
.
list
=
response
.
data
;
that
.
list
.
transportRespVOList
.
forEach
((
item
)
=>
{
if
(
item
.
channelIds
){
getChannelLists
({
ids
:
item
.
channelIds
}).
then
(
res
=>
{
item
.
channelData
=
res
.
data
})
}
if
(
item
.
lineId
){
getProductPriceList
(
item
.
lineIds
).
then
(
res
=>
{
item
.
lineData
=
res
.
data
})
}
})
var
num
=
0
that
.
list
.
offerProdRespVOList
.
forEach
((
item
)
=>
{
if
(
item
.
channelId
){
getChannel
(
item
.
channelId
).
then
(
res
=>
{
item
.
channelName
=
res
.
data
.
nameZh
})
}
if
(
item
.
lineId
){
getProductPrice
(
item
.
lineId
).
then
(
res
=>
{
item
.
lineName
=
res
.
data
.
warehouseLineDO
.
startTitleZh
+
'
>>
'
+
res
.
data
.
warehouseLineDO
.
destTitleZh
})
}
var
arr
=
item
.
prodAttrIds
.
split
(
'
,
'
)
var
prodAttrName
=
[]
arr
.
forEach
((
itemValue
)
=>
{
var
prodAttrCenter
=
this
.
productAttrList
.
filter
(
items
=>
items
.
id
==
itemValue
)
if
(
prodAttrCenter
.
length
>
0
){
prodAttrName
.
push
(
prodAttrCenter
[
0
].
attrName
)
}
})
item
.
prodAttrName
=
prodAttrName
.
join
(
'
,
'
)
// num += item.num
})
that
.
loading
=
false
;
that
.
getCnsigneeData
()
});
},
// 获取发货/收货人
getCnsigneeData
(){
let
that
=
this
let
ids
=
that
.
list
.
consignorId
+
'
,
'
+
that
.
list
.
consigneeId
getCustomerList
({
ids
:
ids
}).
then
(
res
=>
{
that
.
consigneeData
=
res
.
data
getCustomer
(
that
.
list
.
consignorId
).
then
(
res
=>
{
that
.
consigneeData
[
0
]
=
Object
.
assign
(
that
.
consigneeData
[
0
],
res
.
data
)
})
getCustomer
(
that
.
list
.
consigneeId
).
then
(
res
=>
{
that
.
consigneeData
[
1
]
=
Object
.
assign
(
that
.
consigneeData
[
1
],
res
.
data
)
})
})
},
/** 跟进按钮操作 */
handleAdd
()
{
this
.
$router
.
push
({
path
:
"
/offer/logList
"
,
query
:{
offerId
:
this
.
offerId
,
relationId
:
this
.
list
.
consignorId
}
});
},
toResult
(){
this
.
$router
.
push
({
path
:
"
/offer/result
"
,
query
:{
offerId
:
this
.
offerId
,
number
:
this
.
list
.
number
}
});
},
/** 删除按钮操作 */
handleDelete
()
{
const
offerId
=
this
.
offerId
;
this
.
$modal
.
confirm
(
'
是否确认删除报价单管理编号为"
'
+
offerId
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteOffer
(
offerId
);
}).
then
(()
=>
{
this
.
$router
.
push
({
path
:
"
/offer/result
"
});
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
}
};
</
script
>
<
style
>
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
margin-top
:
10px
;
}
.offer-header
{
padding-bottom
:
16px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.line
{
display
:
flex
;
align-items
:
center
;
}
.line
el-descriptions
{
flex
:
1
;
}
.btn
{
width
:
60%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-around
;
}
.title-font
{
font-size
:
16px
;
font-weight
:
600
;
margin-top
:
20px
;
}
.title-font
label
{
margin-right
:
20px
;
}
.card
{
margin-top
:
20px
;
}
</
style
>
src/views/ecw/offer/logList.vue
View file @
5fa2c517
<
template
>
<div
class=
"app-container"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
跟进记录列表
</div>
<!-- 列表 -->
<div
class=
"offer-header"
>
<span
style=
"font-size: 15px;"
>
报价单号:
{{
list
.
length
>
0
?
list
[
0
].
number
:
''
}}
</span>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
>
新增
</el-button>
</div>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"跟进类型"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_TYPE"
:value=
"scope.row.type"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"联系人"
align=
"center"
prop=
"contactName"
/>
<el-table-column
label=
"跟进方式"
align=
"center"
prop=
"followUpMethod"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_METHOD"
:value=
"scope.row.followUpMethod"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"跟进时间"
align=
"center"
prop=
"followUpTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
followUpTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"客户反馈"
align=
"center"
prop=
"customerFeedback"
/>
<el-table-column
label=
"处理结果"
align=
"center"
prop=
"processingResults"
/>
<el-table-column
label=
"跟进业务员"
align=
"center"
prop=
"followUpSalesmanName"
/>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"params.page"
:limit.sync=
"params.rows"
@
pagination=
"getList"
/>
</el-card>
</div>
</template>
<
script
>
import
{
getOfferLogPage
}
from
"
@/api/ecw/offerLog
"
;
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
export
default
{
name
:
"
OfferLog
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
list
:
[],
total
:
0
,
params
:{
page
:
1
,
rows
:
20
,
offerId
:
0
,
type
:
2
},
relationId
:
0
,
creatorName
:
'
test
'
,
};
},
created
()
{
if
(
this
.
$route
.
query
.
offerId
){
this
.
params
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
relationId
=
this
.
$route
.
query
.
relationId
this
.
getList
();
}
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
let
params
=
{...
this
.
params
};
// 执行查询
getOfferLogPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
$router
.
push
({
path
:
"
/offer/createLog
"
,
query
:{
offerId
:
this
.
params
.
offerId
,
number
:
this
.
list
[
0
].
number
,
relationId
:
this
.
relationId
,
}
});
},
}
};
</
script
>
<
style
>
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
}
.offer-header
{
padding-bottom
:
16px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
</
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