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
8681432d
Commit
8681432d
authored
Feb 13, 2025
by
honghy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
需求95 报价单页面和列表调整
parent
13598193
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
468 additions
and
143 deletions
+468
-143
offer.js
src/api/ecw/offer.js
+9
-0
en_US.json
src/i18n/languages/en_US.json
+6
-2
dict.js
src/utils/dict.js
+4
-0
detail.vue
src/views/ecw/offer/detail.vue
+43
-7
edit.vue
src/views/ecw/offer/edit.vue
+216
-75
index.vue
src/views/ecw/offer/index.vue
+181
-55
result.vue
src/views/ecw/offer/result.vue
+9
-4
No files found.
src/api/ecw/offer.js
View file @
8681432d
...
...
@@ -43,6 +43,15 @@ export function getOfferPage(query) {
})
}
// 汇总
export
function
statistics
(
query
)
{
return
request
({
url
:
"
/ecw/offer/statistics
"
,
method
:
"
get
"
,
params
:
query
})
}
// 导出报价单管理 Excel
export
function
exportOfferExcel
(
query
)
{
return
request
({
...
...
src/i18n/languages/en_US.json
View file @
8681432d
...
...
@@ -4941,6 +4941,10 @@
"标题(英文)"
:
"Title (English)"
,
"标题(法文)"
:
"Title (French)"
,
"是否确认删除广告设置编号为'{0}'的数据项?"
:
"Are you sure you want to delete the advertisement setting with ID '{0}'?"
,
"渠道已关闭,禁止下单"
:
"The channel has been closed and orders are prohibited"
"渠道已关闭,禁止下单"
:
"The channel has been closed and orders are prohibited"
,
"询盘来源"
:
"Inquiry Source"
,
"货物状态"
:
"Goods Status"
,
"厂家"
:
"Manufacturer"
,
"厂家电话"
:
"Manufacturer Phone"
,
"预计发货时间"
:
"Estimated Delivery Time"
}
src/utils/dict.js
View file @
8681432d
...
...
@@ -170,6 +170,10 @@ export const DICT_TYPE = {
CUSTOMER_FOLLOWUP_TYPE
:
"
customer_followup_type
"
,
//跟进类型
CUSTOMER_FOLLOWUP_METHOD
:
"
customer_followup_method
"
,
//跟进方式
CUSTOMER_FOLLOWUP_SALE_STAGE
:
"
sale_stage
"
,
//销售阶段
ECW_OFFER_CUSTOMER_STATUS
:
"
ecw_offer_customer_status
"
,
//客户状态
ECW_OFFER_CARGO_STATUS
:
"
ecw_offer_cargo_status
"
,
//货物状态
ECW_OFFER_INQUIRY_SOURCE
:
"
ecw_offer_inquiry_source
"
,
//询盘来源
ECW_OFFER_REASON_DICT
:
"
ecw_offer_reason_dict
"
,
//输单原因
CUSTOMER_FOLLOWUP_RESULT_TYPE
:
"
customer_followup_result_type
"
,
//跟进结果
CUSTOMER_FOLLOWUP_STATUS
:
"
customer_followup_status
"
,
//跟进状态
CUSTOMER_QUERY_NUMBER_FIELD
:
"
customer_query_number_field
"
,
//客户查询数字字段
...
...
src/views/ecw/offer/detail.vue
View file @
8681432d
...
...
@@ -38,7 +38,20 @@
{{
consignorData
.
socialNumber
?
"
(
"
+
consignorData
.
socialNumber
+
"
)
"
:
""
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
border
class=
"card"
v-if=
"list.consignorId"
:labelStyle=
"
{ width: '110px' }" style="margin-top: 0">
<el-descriptions-item
:label=
"$t('销售阶段') + ':'"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE"
:value=
"list.saleStage"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户状态') + ':'"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_CUSTOMER_STATUS"
:value=
"list.customerStatus"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('货物状态') + ':'"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_CARGO_STATUS"
:value=
"list.cargoStatus"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('询盘来源') + ':'"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_INQUIRY_SOURCE"
:value=
"list.inquirySource"
/>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"3"
border
class=
"card"
v-if=
"list.consigneeId"
:labelStyle=
"
{ width: '110px' }">
<el-descriptions-item
:label=
"$t('收货人') + ':'"
>
{{
consigneeData
.
contactsName
||
$t
(
"
无
"
)
}}
...
...
@@ -124,6 +137,26 @@
<
template
>
{{
$t
(
"
全包价
"
)
}}
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</
template
>
</template>
<
template
v-else-if=
"!row.oneSeaFreight && !row.oneClearanceFreight"
>
{{
$t
(
"
未报价
"
)
}}
</
template
>
<
template
v-else-if=
"row.specialPriceType"
>
<div
style=
"color: red;font-weight: 700;"
>
{{
$t
(
"
原价
"
)
}}
</div>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
originalSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
originalClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
<div
style=
"color: red;font-weight: 700;"
>
{{
$t
(
"
特价
"
)
}}
</div>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
</
template
>
<
template
v-else
>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div
v-if=
"row.oneClearanceFreight"
>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
...
...
@@ -159,12 +192,12 @@
</
template
>
<
template
v-if=
"otherFeeList.length == 0"
>
0
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('原价')"
:span=
"2"
>
<
template
v-if=
"originalFeeList.length > 0"
v-for=
"item in originalFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div
>
</
template
>
<
template
v-if=
"originalFeeList.length == 0"
>
0
</
template
>
</el-descriptions-item
>
<!-- <el-descriptions-item :label="$t('原价')" :span="2">--
>
<!-- <template v-if="originalFeeList.length > 0" v-for="item in originalFeeList">--
>
<!-- <div :key="item.currencyId">{{ item.amount || 0 }}{{ currentcyMap[item.currencyId] }}</div>--
>
<!-- </template>--
>
<!-- <template v-if="originalFeeList.length == 0"> 0 </template>--
>
<!-- </el-descriptions-item>--
>
</el-descriptions>
<div
class=
"card-title"
style=
"padding: 20px 0"
>
{{ $t("优惠信息") }}
</div>
...
...
@@ -225,6 +258,9 @@
<el-descriptions-item
:label=
"$t('预计结束时间')"
>
{{ list.stopTime || "/" }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('预计发货时间')"
>
{{ list.estimatedShippingTime || "/" }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('控货')"
>
{{ list.control ? $t("是") : $t("否") }}
</el-descriptions-item>
...
...
src/views/ecw/offer/edit.vue
View file @
8681432d
...
...
@@ -5,6 +5,12 @@
<div
slot=
"header"
class=
"card-title"
>
{{
$route
.
path
.
indexOf
(
"
create
"
)
>
-
1
?
$t
(
"
新建报价单
"
)
:
$t
(
"
编辑报价单
"
)
}}
</div>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"saleStage"
>
<el-select
v-model=
"form.saleStage"
clearable
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<br>
<el-form-item
:label=
"$t('所属人')"
prop=
"relation"
>
<!--
<el-radio-group
v-model=
"form.relation"
>
-->
<el-radio-group
v-model=
"form.relation"
id=
"relation"
@
change=
"handleChangeRelation"
>
...
...
@@ -67,6 +73,22 @@
</el-form-item>
</div>
<el-form-item
:label=
"$t('客户状态')"
prop=
"customerStatus"
>
<el-select
v-model=
"form.customerStatus"
clearable
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.ECW_OFFER_CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('货物状态')"
prop=
"cargoStatus"
>
<el-select
v-model=
"form.cargoStatus"
clearable
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.ECW_OFFER_CARGO_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('询盘来源')"
prop=
"inquirySource"
>
<el-select
v-model=
"form.inquirySource"
clearable
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.ECW_OFFER_INQUIRY_SOURCE)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<!--
<el-descriptions
:column=
"3"
border
>
<el-descriptions-item
:label=
"$t('*发货人')"
:labelStyle=
"labelStyle"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consignorId"
required
:error=
"$t('发货人不能为空')"
>
...
...
@@ -153,7 +175,6 @@
<el-card
class=
"mt-10"
>
<div
slot=
"header"
class=
"card-title"
>
<div
class=
"card-name"
>
{{ $t("商品") }}
</div>
<el-button
type=
"primary"
size=
"mini"
icon=
"el-icon-plus"
@
click=
"addProduct()"
:disabled=
"!canAddProduct"
></el-button>
</div>
<el-table
:data=
"form.prodCreateReqVOList"
border
class=
"product-list"
>
<el-table-column
:label=
"$t('序号')"
width=
"60px"
fixed
>
...
...
@@ -185,7 +206,7 @@
</
template
>
</el-table-column>
<el-table-column
width=
"100px"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
品牌
"
)
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
品牌
"
)
}}
</
template
>
<
template
slot-scope=
"scope"
>
<el-form-item
label=
""
...
...
@@ -203,13 +224,13 @@
</el-table-column>
<el-table-column
:label=
"$t('件数')"
width=
"90px"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
件数
"
)
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
件数
"
)
}}
</
template
>
<
template
slot-scope=
"{ row }"
>
<el-input
v-model.number=
"row.num"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('包装单位')"
width=
"100px"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
包装单位
"
)
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
"
包装单位
"
)
}}
</
template
>
<
template
slot-scope=
"{ row }"
>
<dict-selector
v-model=
"row.unit"
:type=
"DICT_TYPE.ECW_PACKAGING_TYPE"
defaultable
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
</
template
>
...
...
@@ -219,14 +240,38 @@
<el-input
v-model=
"row.quantity"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总体积') + '(m³)'"
width=
"100px"
>
<
template
slot-scope=
"{ row }"
>
<el-input
v-model=
"row.volume"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
<el-table-column
width=
"100px"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
'
总体积
'
)
+
'
(m³)
'
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot-scope=
"scope"
>
<el-form-item
style=
"margin-bottom: 0;"
label=
""
:prop=
"`prodCreateReqVOList.$
{scope.$index}.volume`"
:rules="{
required: true,
message: $t('不能为空'),
trigger: 'blur'
}"
>
<el-input
v-model=
"scope.row.volume"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总重量') + '(kg)'"
width=
"100px"
>
<
template
slot-scope=
"{ row }"
>
<el-input
v-model=
"row.weight"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
<
template
slot=
"header"
slot-scope=
"scope"
>
{{
$t
(
'
总重量
'
)
+
'
(kg)
'
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot-scope=
"scope"
>
<el-form-item
style=
"margin-bottom: 0;"
label=
""
:prop=
"`prodCreateReqVOList.$
{scope.$index}.weight`"
:rules="{
required: true,
message: $t('不能为空'),
trigger: 'blur'
}"
>
<el-input
v-model=
"scope.row.weight"
@
input=
"calculationPrice"
:disabled=
"!canAddProduct"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总货值') + '(RMB)'"
width=
"120px"
>
...
...
@@ -261,6 +306,30 @@
</
template
>
</template>
<
template
v-else-if=
"!row.fee || (!row.fee.oneFreight && !row.fee.oneClearanceFee)"
>
{{
$t
(
"
未报价
"
)
}}
</
template
>
<
template
v-else-if=
"(row.fee.oneClearanceFee!=row.fee.groupDto.orgClearanceFeePrice)&&row.fee.specialPriceType"
>
<div
style=
"color: red;font-weight: 700;"
>
{{
$t
(
"
原价
"
)
}}
</div>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
fee
.
groupDto
.
orgClearanceFeePrice
}}
{{
currencyMap
[
row
.
fee
.
freightCurrency
]
}}
/
{{
unitMap
[
row
.
fee
.
freightVolume
]
}}
</div>
<div>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
fee
.
groupDto
.
orgFreightPrice
}}
{{
currencyMap
[
row
.
fee
.
clearanceFeeCurrency
]
}}
/
{{
unitMap
[
row
.
fee
.
clearanceFeeVolume
]
}}
</div>
<div
style=
"color: red;font-weight: 700;"
>
{{
$t
(
"
特价
"
)
}}
</div>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
fee
.
oneFreight
}}
{{
currencyMap
[
row
.
fee
.
freightCurrency
]
}}
/
{{
unitMap
[
row
.
fee
.
freightVolume
]
}}
</div>
<div>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
fee
.
oneClearanceFee
}}
{{
currencyMap
[
row
.
fee
.
clearanceFeeCurrency
]
}}
/
{{
unitMap
[
row
.
fee
.
clearanceFeeVolume
]
}}
</div>
</
template
>
<
template
v-else-if=
"row.fee"
>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
fee
.
oneFreight
}}
{{
currencyMap
[
row
.
fee
.
freightCurrency
]
}}
/
...
...
@@ -297,22 +366,33 @@
</
template
>
</el-table-column>
</el-table>
<div
class=
"card-title"
>
<div
class=
"card-name"
>
<div
class=
"card-title"
style=
"float: left"
>
{{ $t("合计") }}
</div>
<div
class=
"card-title"
style=
"float: left;margin-left: 470px;"
>
{{ sum.totalNum.toFixed() || 0 }}
</div>
<div
class=
"card-title"
style=
"float: left;margin-left: 700px;position: absolute;"
>
{{ sum.totalQuatity.toFixed() || 0 }}
</div>
<div
class=
"card-title"
style=
"float: left;margin-left: 780px;position: absolute;"
>
{{ sum.totalVolume.toFixed() || 0 }}
</div>
<div
class=
"card-title"
style=
"float: left;margin-left: 870px;position: absolute;"
>
{{ sum.totalWeight.toFixed() || 0 }}
</div>
<div
class=
"card-title"
style=
"float: left;margin-left: 970px;position: absolute;"
>
{{ sum.totalWorth.toFixed() || 0 }}
</div>
</div>
<el-button
type=
"primary"
size=
"mini"
icon=
"el-icon-plus"
@
click=
"addProduct()"
:disabled=
"!canAddProduct"
></el-button>
</div>
<!--
</el-card>
<el-card class="mt-10"> -->
<div
class=
"card-title"
style=
"padding: 20px 0"
>
{{ $t("合计") }}
</div
>
<el-descriptions
:column=
"4"
border
>
<el-descriptions-item
:label=
"$t('总件数')"
>
{{ sum.totalNum.toFixed() || 0 }}
</el-descriptions-item
>
<el-descriptions-item
:label=
"$t('总体积')"
>
{{ sum.totalVolume.toFixed() || 0 }}m³
</el-descriptions-item
>
<el-descriptions-item
:label=
"$t('总重量')"
>
{{ sum.totalWeight.toFixed() || 0 }}kg
</el-descriptions-item
>
<el-descriptions-item
:label=
"$t('总数量')"
>
{{ sum.totalQuatity.toFixed() || 0 }}
</el-descriptions-item
>
<!-- <div class="card-title" style="padding: 20px 0">{{ $t("合计") }}</div>--
>
<!-- <el-descriptions :column="4" border>--
>
<!-- <el-descriptions-item :label="$t('总件数')">--
>
<!-- {{ sum.totalNum.toFixed() || 0 }}-->
<!-- </el-descriptions-item>--
>
<!-- <el-descriptions-item :label="$t('总体积')"> {{ sum.totalVolume.toFixed() || 0 }}m³ </el-descriptions-item>--
>
<!-- <el-descriptions-item :label="$t('总重量')"> {{ sum.totalWeight.toFixed() || 0 }}kg </el-descriptions-item>--
>
<!-- <el-descriptions-item :label="$t('总数量')">--
>
<!-- {{ sum.totalQuatity.toFixed() || 0 }}-->
<!-- </el-descriptions-item>--
>
<el-descriptions-item
:label=
"$t('总货值') + '(RMB)'"
>
{{ sum.totalWorth.toFixed() || 0 }}{{ $t("元") }}
</el-descriptions-item
>
</el-descriptions
>
<!-- <el-descriptions-item :label="$t('总货值') + '(RMB)'"> {{ sum.totalWorth.toFixed() || 0 }}{{ $t("元") }} </el-descriptions-item>--
>
<!-- </el-descriptions>--
>
</el-card>
<el-card
class=
"mt-10"
>
...
...
@@ -338,43 +418,43 @@
<el-input
v-model=
"form.otherFee"
placeholder=
""
class=
"w-100 mr-10"
></el-input>
<selector
v-model=
"form.otherFeeCurrencyId"
:options=
"currencyList"
:label-field=
"$l('title')"
value-field=
"id"
defaultable
class=
"w-100"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('原价')"
:span=
"2"
>
<
template
v-for=
"item in originalFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currencyMap
[
item
.
currencyId
]
}}
</div
>
</
template
>
</el-descriptions-item
>
<!-- <el-descriptions-item :label="$t('原价')" :span="2">--
>
<!-- <template v-for="item in originalFeeList">--
>
<!-- <div :key="item.currencyId">{{ item.amount || 0 }}{{ currencyMap[item.currencyId] }}</div>--
>
<!-- </template>--
>
<!-- </el-descriptions-item>--
>
</el-descriptions>
<div
class=
"card-title"
style=
"padding: 20px 0"
>
{{ $t("优惠信息") }}
</div
>
<el-table
:data=
"couponList"
:show-header=
"false"
:empty-text=
"$t('暂无优惠')"
>
<el-table-column
label=
""
>
<
template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
.
{{
$l
(
productNames
[
scope
.
row
.
prodId
],
"
title
"
)
||
$t
(
"
未知
"
)
}}
</
template
>
</el-table-column
>
<el-table-column
label=
""
>
<
template
slot-scope=
"{ row }"
>
<dict-tag
:type=
"DICT_TYPE.ECW_COUPON_TYPE"
:value=
"row.type"
/
>
</
template
>
</el-table-column
>
<el-table-column
label=
""
>
<
template
slot-scope=
"{ row }"
>
{{
$l
(
row
,
"
title
"
)
}}
</
template
>
</el-table-column
>
<el-table-column
label=
""
>
<
template
slot-scope=
"{ row }"
>
-
{{
row
.
reduceAmount
}}
{{
currencyMap
[
row
.
reduceCurrencyId
]
}}
</
template
>
</el-table-column
>
<el-table-column
label=
""
>
<
template
slot-scope=
"{ row }"
>
{{
$t
(
"
有效期至
"
)
}}
:
{{
row
.
endTime
?
row
.
endTime
:
$t
(
"
永久有效
"
)
}}
</
template
>
</el-table-column
>
</el-table
>
<!-- <div class="card-title" style="padding: 20px 0">--
>
<!-- {{ $t("优惠信息") }}-->
<!-- </div>--
>
<!-- <el-table :data="couponList" :show-header="false" :empty-text="$t('暂无优惠')">--
>
<!-- <el-table-column label="">--
>
<!-- <template slot-scope="scope">--
>
<!-- {{ scope.$index + 1 }}.-->
<!-- {{ $l(productNames[scope.row.prodId], "title") || $t("未知") }}-->
<!-- </template>--
>
<!-- </el-table-column>--
>
<!-- <el-table-column label="">--
>
<!-- <template slot-scope="{ row }">--
>
<!-- <dict-tag :type="DICT_TYPE.ECW_COUPON_TYPE" :value="row.type" />--
>
<!-- </template>--
>
<!-- </el-table-column>--
>
<!-- <el-table-column label="">--
>
<!-- <template slot-scope="{ row }">--
>
<!-- {{ $l(row, "title") }}-->
<!-- </template>--
>
<!-- </el-table-column>--
>
<!-- <el-table-column label="">--
>
<!-- <template slot-scope="{ row }">--
>
<!-- -{{ row.reduceAmount }}-->
<!-- {{ currencyMap[row.reduceCurrencyId] }}-->
<!-- </template>--
>
<!-- </el-table-column>--
>
<!-- <el-table-column label="">--
>
<!-- <template slot-scope="{ row }"> {{ $t("有效期至") }}:{{ row.endTime ? row.endTime : $t("永久有效") }} </template>--
>
<!-- </el-table-column>--
>
<!-- </el-table>--
>
<el-descriptions
:column=
"1"
class=
"mt-20"
>
<el-descriptions-item
:label=
"$t('优惠费用')"
v-if=
"couponTotalAmountList && couponTotalAmountList.length"
>
...
...
@@ -401,9 +481,13 @@
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('预计结束时间')"
prop=
"stopTime"
>
<!-- <el-form-item :label="$t('预计结束时间')" prop="stopTime">-->
<!-- <!– <el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker> –>-->
<!-- <el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd" class="w-200" :picker-options="stopDate"></el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item
:label=
"$t('预计发货时间')"
prop=
"estimatedShippingTime"
>
<!-- <el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker> -->
<el-date-picker
v-model=
"form.
stop
Time"
value-format=
"yyyy-MM-dd"
class=
"w-200"
:picker-options=
"stopDate"
></el-date-picker>
<el-date-picker
v-model=
"form.
estimatedShipping
Time"
value-format=
"yyyy-MM-dd"
class=
"w-200"
:picker-options=
"stopDate"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('是否控货')"
prop=
"control"
label-width=
"200px"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.control"
form-type=
"radio"
/>
...
...
@@ -439,38 +523,51 @@
<el-form-item
:label=
"$t('交货地址')"
>
<el-input
v-model=
"form.tradeAdress"
:placeholder=
"$t('港口或地点')"
></el-input>
</el-form-item>
<br>
<el-form-item
:label=
"$t('厂家')"
prop=
"manufacturer"
>
<el-input
v-model=
"form.manufacturer"
type=
"textarea"
style=
"width: 1100px; height: 50px"
></el-input>
</el-form-item>
<br>
<el-form-item
:label=
"$t('厂家电话')"
prop=
"manufacturerPhone"
>
<el-input
v-model=
"form.manufacturerPhone"
type=
"textarea"
style=
"width: 1100px; height: 50px"
></el-input>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('备注')"
:span=
"2"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
placeholder=
""
style=
"width:
41
0px; height: 100px"
></el-input>
<el-form-item
:label=
"$t('备注')"
:span=
"2"
prop=
"remarks"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
placeholder=
""
style=
"width:
110
0px; height: 100px"
></el-input>
</el-form-item>
</div>
</el-card>
<el-card
class=
"mt-10"
v-if=
"transport"
>
<div
class=
"card-title"
slot=
"header"
>
{{ $t("其他") }}
</div>
<div
class=
"card-title"
slot=
"header"
>
<div
class=
"card-name"
>
{{ $t("其他") }}
</div>
<el-button
type=
"primary"
size=
"mini"
icon=
"el-icon-plus"
@
click=
"qiTaTag=!qiTaTag"
></el-button>
</div>
<!-- <el-form-item :label="$t('快递单号')">
<el-input v-model="form.number" :placeholder="$t('请输入购买商品的快递单号')"></el-input>
</el-form-item> -->
<el-form-item
:label=
"$t('特殊要求')"
>
<el-form-item
:label=
"$t('特殊要求')"
v-show=
"qiTaTag"
>
<dict-selector
v-model=
"form.transportVO.packageTypeArr"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
<br
/>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-form-item
:label=
"$t('特殊要求备注')"
v-show=
"qiTaTag"
>
<el-input
v-model=
"form.transportVO.packageRemarks"
></el-input>
</el-form-item>
<br
/>
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2, 3, 4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2, 3, 4].indexOf(+form.transportId) > -1"
v-show=
"qiTaTag"
>
<dict-selector
v-model=
"form.transportVO.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
</el-form-item>
<el-form-item
:label=
"$t('航空公司')"
v-if=
"[3, 4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('航空公司')"
v-if=
"[3, 4].indexOf(+form.transportId) > -1"
v-show=
"qiTaTag"
>
<!--待查询备选数据-->
<!-- <el-select placeholder="" v-model="form.airlineCompany">
</el-select> -->
<supplier-selector
v-model=
"form.transportVO.airlineCompany"
companyType=
"10"
/>
</el-form-item>
<el-form-item
:label=
"$t('船公司')"
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('船公司')"
v-if=
"[2].indexOf(+form.transportId) > -1"
v-show=
"qiTaTag"
>
<!-- <el-select placeholder="" v-model="form.shippingCompany">
</el-select> -->
<supplier-selector
v-model=
"form.transportVO.shippingCompany"
companyType=
"9"
/>
...
...
@@ -577,7 +674,8 @@ const createDefaultForm = () => {
isCargoControl
:
false
,
prodCreateReqVOList
:
[],
transportVO
:
{},
serviceType
:
[]
serviceType
:
[],
saleStage
:
3
}
}
export
default
{
...
...
@@ -653,7 +751,8 @@ export default {
},
AddressProvince
:
[],
AddressCity
:
[],
competitorList
:
[]
competitorList
:
[],
qiTaTag
:
false
}
},
computed
:
{
...
...
@@ -723,7 +822,9 @@ export default {
// }
// }
// },
isChinese
()
{
return
this
.
$i18n
.
locale
===
"
zh_CN
"
},
rules
()
{
let
rules
=
{
marks
:
[
...
...
@@ -746,12 +847,23 @@ export default {
// departureId: [{required: true, message: this.$t('请选择始发城市')}],
destCountryId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择目的国家
"
)
}],
channelId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
选择出货渠道
"
)
}],
stopTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
不能为空
"
)
}],
// stopTime: [{ required: true, message: this.$t("不能为空") }],
estimatedShippingTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
不能为空
"
)
}],
relation
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择所属人
"
)
}],
control
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择是否控货
"
)
}],
importance
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
请选择重要程度
"
)
},
{
type
:
"
number
"
,
min
:
1
,
message
:
this
.
$t
(
"
请选择重要程度
"
)
}
saleStage
:
[{
required
:
true
,
message
:
this
.
$t
(
"
销售阶段不能为空
"
)
}],
// control: [{ required: true, message: this.$t("请选择是否控货") }],
// importance: [
// { required: true, message: this.$t("请选择重要程度") },
// { type: "number", min: 1, message: this.$t("请选择重要程度") }
// ]
remarks
:
[
{
max
:
500
,
message
:
'
500max
'
,
trigger
:
'
blur
'
}
],
manufacturer
:
[
{
max
:
100
,
message
:
'
100max
'
,
trigger
:
'
blur
'
}
],
manufacturerPhone
:
[
{
max
:
50
,
message
:
'
50max
'
,
trigger
:
'
blur
'
}
]
}
if
(
this
.
form
.
relation
==
1
)
{
...
...
@@ -1142,6 +1254,7 @@ export default {
formData
.
transportVO
.
packageTypeArr
=
formData
.
transportVO
.
packageType
.
split
(
"
,
"
).
filter
((
item
)
=>
item
&&
item
!=
""
)
}
if
(
res
.
data
.
offerProdRespVOList
)
{
res
.
data
.
offerProdRespVOList
.
forEach
((
item
)
=>
{
formData
.
prodCreateReqVOList
.
push
({
goodsType
:
item
.
goodsType
,
...
...
@@ -1157,6 +1270,25 @@ export default {
transportId
:
item
.
transportId
,
weight
:
item
.
weight
,
worth
:
item
.
worth
,
specialPriceType
:
item
.
specialPriceType
,
oneSeaFreight
:
item
.
oneSeaFreight
,
orgFreightPrice
:
item
.
originalSeaFreight
,
originalSeaFreight
:
item
.
originalSeaFreight
,
oneClearanceFee
:
item
.
oneClearanceFreight
,
oneClearanceFreight
:
item
.
oneClearanceFreight
,
orgClearanceFeePrice
:
item
.
originalClearanceFreight
,
originalClearanceFreight
:
item
.
originalClearanceFreight
,
freightVolume
:
item
.
seaFreightVolume
,
seaFreightVolume
:
item
.
seaFreightVolume
,
clearanceFeeVolume
:
item
.
clearanceFreightVolume
,
clearanceFreightVolume
:
item
.
clearanceFreightVolume
,
charging
:
item
.
charging
,
freightCurrency
:
item
.
seaFreightCurrency
,
seaFreightCurrency
:
item
.
seaFreightCurrency
,
freight
:
item
.
seaFreight
,
clearanceFeeCurrency
:
item
.
clearanceFreightCurrency
,
clearanceFreightCurrency
:
item
.
clearanceFreightCurrency
,
clearanceFee
:
item
.
clearanceFreight
,
prodAttrArr
:
item
.
prodAttrIds
&&
item
.
prodAttrIds
!=
""
?
item
.
prodAttrIds
...
...
@@ -1173,6 +1305,7 @@ export default {
formData
.
startTime
=
""
formData
.
endTime
=
""
formData
.
stopTime
=
""
formData
.
estimatedShippingTime
=
""
// 复制报价单状态重置为草稿
formData
.
status
=
2
}
...
...
@@ -1420,7 +1553,15 @@ export default {
}
this
.
form
.
prodCreateReqVOList
.
map
((
item
,
index
)
=>
{
this
.
$set
(
item
,
"
fee
"
,
res
.
data
.
prodCostDtoList
[
index
]
||
null
)
console
.
log
(
"
============================
"
)
console
.
log
(
item
)
console
.
log
(
"
============================
"
)
var
a
=
null
if
(
res
.
data
.
prodCostDtoList
[
index
])
{
a
=
res
.
data
.
prodCostDtoList
[
index
]
a
[
'
specialPriceType
'
]
=
item
.
specialPriceType
}
this
.
$set
(
item
,
"
fee
"
,
a
)
})
})
.
finally
(()
=>
{
...
...
src/views/ecw/offer/index.vue
View file @
8681432d
...
...
@@ -6,6 +6,10 @@
<el-input
v-model.trim=
"queryParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户状态')"
prop=
"customerStatusList"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_CUSTOMER_STATUS"
multiple
v-model=
"queryParams.customerStatusList"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model.trim=
"queryParams.searchCustomer"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -14,8 +18,24 @@
<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
:label=
"$t('区号')"
prop=
"relationAreaCode"
>
<el-input
v-model.trim=
"queryParams.relationAreaCode"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"queryParams.relationAreaCode = queryParams.relationAreaCode.replace(/\s+/g, '')"
/>
<el-form-item
:label=
"$t('客户经理')"
prop=
"salesmanIds"
>
<user-selector
v-model=
"queryParams.salesmanIds"
multiple
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('询盘来源')"
prop=
"inquirySourceList"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_INQUIRY_SOURCE"
multiple
v-model=
"queryParams.inquirySourceList"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"saleStageList"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE"
multiple
v-model=
"queryParams.saleStageList"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('货物状态')"
prop=
"cargoStatusList"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_CARGO_STATUS"
multiple
v-model=
"queryParams.cargoStatusList"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
multiple
formatter=
"number"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"startWarehouseId"
>
...
...
@@ -40,21 +60,22 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('
客户经理')"
prop=
"salesmanIds
"
>
<
user-selector
v-model=
"queryParams.salesmanIds"
multiple
clearable
@
change=
"handleQuery"
/
>
<el-form-item
:label=
"$t('
创建时间')
"
>
<
el-date-picker
v-model=
"queryTmp.createTime"
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=
"statusList"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
multiple
v-model=
"queryParams.statusList"
clearable
@
change=
"handleQuery"
/>
<el-form-item
:label=
"$t('客户来源')"
prop=
"sourceIds"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
multiple
v-model=
"queryParams.sourceIds"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('重要程度')"
prop=
"importances"
>
<el-select
v-model=
"queryParams.importances"
multiple
:placeholder=
"$t('请选择')"
clearable
@
change=
"handleQuery"
>
<el-option
v-for=
"item in [1, 2, 3, 4, 5]"
:label=
"item"
:value=
"item"
:key=
"item"
></el-option>
</el-select>
<el-form-item
:label=
"$t('输单原因')"
prop=
"reasonDictList"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_REASON_DICT"
multiple
v-model=
"queryParams.reasonDictList"
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('
运输方式')"
prop=
"transportId
"
v-show=
"showSearch"
>
<
dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
multiple
formatter=
"number"
clearable
@
change=
"handleQuery
"
/>
<el-form-item
:label=
"$t('
区号')"
prop=
"relationAreaCode
"
v-show=
"showSearch"
>
<
el-input
v-model.trim=
"queryParams.relationAreaCode"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
@
input=
"queryParams.relationAreaCode = queryParams.relationAreaCode.replace(/\s+/g, '')
"
/>
</el-form-item>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelIds"
v-show=
"showSearch"
>
<selector
:clearable=
"true"
:options=
"channelList"
:label-field=
"$l('name')"
value-field=
"channelId"
v-model=
"queryParams.channelIds"
multiple
@
change=
"handleQuery"
></selector>
</el-form-item>
...
...
@@ -75,27 +96,29 @@
<el-option
:label=
"$t('海外仓')"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('客户来源')"
prop=
"sourceIds"
v-show=
"showSearch"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_SOURCE"
multiple
v-model=
"queryParams.sourceIds"
clearable
@
change=
"handleQuery"
/>
<el-form-item
:label=
"$t('厂家')"
prop=
"manufacturer"
v-show=
"showSearch"
>
<el-input
v-model.trim=
"queryParams.manufacturer"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('
创建人')"
prop=
"creatorIds
"
>
<
user-selector
v-model=
"queryParams.creatorIds"
multiple
clearable
@
change=
"handleQuery"
/>
<el-form-item
:label=
"$t('
厂家电话')"
prop=
"manufacturerPhone"
v-show=
"showSearch
"
>
<
el-input
v-model.trim=
"queryParams.manufacturerPhone"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('
创建
时间')"
>
<el-date-picker
v-model=
"queryTmp.
create
Time"
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
:label=
"$t('
预计发货
时间')"
>
<el-date-picker
v-model=
"queryTmp.
estimatedShipping
Time"
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=
"creatorIds"
v-show=
"showSearch"
>
<user-selector
v-model=
"queryParams.creatorIds"
multiple
clearable
@
change=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('有效期开始')"
v-show=
"showSearch"
>
<el-date-picker
v-model=
"queryTmp.startTime"
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('有效期结束')"
v-show=
"showSearch"
>
<el-date-picker
v-model=
"queryTmp.endTime"
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('预计结束时间')"
v-show=
"showSearch"
>
<el-date-picker
v-model=
"queryTmp.stopTime"
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>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
"
搜索
"
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
"
重置
"
)
}}
</el-button>
...
...
@@ -110,35 +133,45 @@
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:offer:export']"
>
{{
$t
(
"
导出
"
)
}}
</el-button>
</el-col>
<el-col
:span=
"15"
>
<!-- 订单列表显示搜索条件对应箱数、仓库实测、收款方数、重量 -->
汇总:
{{
statistics
.
volume
}}
CBM/
{{
statistics
.
weight
}}
KG
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
border
ref=
"dataTable"
id=
"dataTable"
:height=
"autoHeight"
>
<el-table-column
:label=
"$t('
报价单号')"
align=
"left"
prop=
"number"
width=
"15
0"
fixed
>
<el-table-column
:label=
"$t('
创建时间')"
align=
"left"
width=
"12
0"
fixed
>
<template
slot-scope=
"
{ row }">
<el-link
type=
"primary"
@
click.native=
"$router.push('detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
<span>
{{
parseTime
(
row
.
createTime
,
"
{y
}
-{m
}
-{d
}
{h
}
:{i
}
:{s
}
"
)
}}
<
/span
>
<
div
style
=
"
display: flex; flex-wrap: wrap
"
v
-
if
=
"
row.specialPriceType
"
>
<
el
-
button
size
=
"
mini
"
style
=
"
margin-left: 20px
"
type
=
"
danger
"
circle
>
特
<
/el-button
>
<
/div
>
<
/template
>
<
/el-table-column
>
<el-table-column
:label=
"$t('
订单编号')"
align=
"left"
width=
"12
0"
fixed
>
<
el
-
table
-
column
:
label
=
"
$t('
客户状态')
"
align
=
"
left
"
width
=
"
10
0
"
fixed
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
a
class=
"el-link el-link--primary is-underline"
href=
"javascript:;"
@
click=
"$router.push(`/order/detail?orderId=$
{row.orderId}`)">
{{
row
.
orderNo
}}
</a
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_OFFER_CUSTOMER_STATUS
"
:
value
=
"
row.customerStatus
"
/
>
<
/template
>
<
/el-table-column
>
<el-table-column
:label=
"$t('
最新跟进时间')"
width=
"180"
>
<
template
slot-scope=
"
scope"
v-if=
"scope.row.followupBackVO
"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
<
el
-
table
-
column
:
label
=
"
$t('
客户编号')
"
align
=
"
left
"
width
=
"
100
"
fixed
>
<
template
slot
-
scope
=
"
{ row
}
"
>
{{
row
.
customerNumber
}}
<
/template
>
<
/el-table-column
>
<el-table-column
:label=
"$t('最新跟进记录')"
width=
"120"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.followupBackVO"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerFollowLink(scope.row.followupBackVO)"
class=
"link-type"
>
{{
scope
.
row
.
followupBackVO
.
number
}}
</a>
<
el
-
table
-
column
:
label
=
"
$t('客户名称')
"
align
=
"
left
"
prop
=
"
customerName
"
fixed
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('客户经理')
"
align
=
"
left
"
prop
=
"
followUpSalesmanName
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('询盘来源')
"
align
=
"
left
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_OFFER_INQUIRY_SOURCE
"
:
value
=
"
row.inquirySource
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('掉入公海时间')
"
align
=
"
left
"
width
=
"
120
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
{{
row
.
estimateEnterOpenSeaTime
||
row
.
enterOpenSeaTime
}}
<
/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=
"left"
prop=
"startWarehouseName"
/>
<
el
-
table
-
column
:
label
=
"
$t('运输方式-渠道/目的仓')
"
width
=
"
200
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_TRANSPORT_TYPE
"
:
value
=
"
row.transportId
"
/>
...
...
@@ -148,33 +181,100 @@
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('销售阶段')
"
align
=
"
left
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<dict-tag
:type=
"DICT_TYPE.
ECW_OFFER_STATUS"
:value=
"row.status
"
/>
<
dict
-
tag
:
type
=
"
DICT_TYPE.
CUSTOMER_FOLLOWUP_SALE_STAGE
"
:
value
=
"
row.saleStage
"
/>
<
/template
>
<
/el-table-column
>
<el-table-column
:label=
"$t('预计结束时间')"
align=
"left"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
stopTime
,
"
{y
}
-{m
}
-{d
}
"
)
}}
<
/span
>
<
el
-
table
-
column
:
label
=
"
$t('上次跟进类型')
"
width
=
"
120
"
>
<
template
slot
-
scope
=
"
scope
"
v
-
if
=
"
scope.row.followupBackVO
"
>
<
a
href
=
"
javascript:void(0)
"
@
click
=
"
handleCustomerFollowLink(scope.row.followupBackVO)
"
class
=
"
link-type
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE
"
:
value
=
"
scope.row.followupBackVO.followType
"
/>
<
/a
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('上次跟进时间')
"
width
=
"
180
"
>
<
template
slot
-
scope
=
"
scope
"
v
-
if
=
"
scope.row.followupBackVO
"
>
{{
parseTime
(
scope
.
row
.
followupBackVO
.
followTime
)
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('上次跟进内容')
"
width
=
"
180
"
>
<
template
slot
-
scope
=
"
scope
"
v
-
if
=
"
scope.row.followupBackVO
"
>
{{
scope
.
row
.
followupBackVO
.
feedback
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('所报价格')
"
width
=
"
180
"
>
<
template
slot
-
scope
=
"
scope
"
v
-
if
=
"
scope.row.offerProds
"
>
<
template
v
-
for
=
"
row1 in scope.row.offerProds
"
>
{{
row1
.
prodTitleZh
}}
:
<
template
v
-
if
=
"
row1.charging == 1
"
>
<
template
v
-
if
=
"
!row1.oneSeaFreight
"
>
{{
$t
(
"
未报价
"
)
}}
<
/template
>
<
template
>
{{
$t
(
"
全包价
"
)
}}
{{
row1
.
oneSeaFreight
}}
{{
currencyMap
[
row1
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
seaFreightVolume
]
}}
<
/template
>
<
/template
>
<
template
v
-
else
-
if
=
"
!row1.oneSeaFreight && !row1.oneClearanceFreight
"
>
{{
$t
(
"
未报价
"
)
}}
<
/template
>
<
template
v
-
else
-
if
=
"
row1.specialPriceType
"
>
<
div
style
=
"
color: red;font-weight: 700;
"
>
{{
$t
(
"
原价
"
)
}}
<
/div
>
<
div
>
{{
$t
(
"
运费
"
)
}}
:
{{
row1
.
originalSeaFreight
}}
{{
currencyMap
[
row1
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
seaFreightVolume
]
}}
<
/div
>
<
div
>
{{
$t
(
"
清关费
"
)
}}
:
{{
row1
.
originalClearanceFreight
}}
{{
currencyMap
[
row1
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
clearanceFreightVolume
]
}}
<
/div
>
<
div
style
=
"
color: red;font-weight: 700;
"
>
{{
$t
(
"
特价
"
)
}}
<
/div
>
<
div
>
{{
$t
(
"
运费
"
)
}}
:
{{
row1
.
oneSeaFreight
}}
{{
currencyMap
[
row1
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
seaFreightVolume
]
}}
<
/div
>
<
div
>
{{
$t
(
"
清关费
"
)
}}
:
{{
row1
.
oneClearanceFreight
}}
{{
currencyMap
[
row1
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
clearanceFreightVolume
]
}}
<
/div
>
<
/template
>
<
template
v
-
else
>
<
div
>
{{
$t
(
"
运费
"
)
}}
:
{{
row1
.
oneSeaFreight
}}
{{
currencyMap
[
row1
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
seaFreightVolume
]
}}
<
/div
>
<
div
v
-
if
=
"
row1.oneClearanceFreight
"
>
{{
$t
(
"
清关费
"
)
}}
:
{{
row1
.
oneClearanceFreight
}}
{{
currencyMap
[
row1
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row1
.
clearanceFreightVolume
]
}}
<
/div
>
<
div
v
-
else
>
{{
$t
(
"
清关费未报价
"
)
}}
<
/div
>
<
/template
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('货物描述')
"
width
=
"
180
"
>
<
template
slot
-
scope
=
"
scope
"
v
-
if
=
"
scope.row.offerProds
"
>
<
template
v
-
for
=
"
row1 in scope.row.offerProds
"
>
<
div
>
{{
row1
.
prodTitleZh
}}
:
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_IS_BRAND
"
:
value
=
"
row1.brand
"
><
/dict-tag>
-
{{
row1
.
volume
}}
CBM
/
{{
row1
.
weight
}}
KG
<
/div
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('预计销售额')
"
align
=
"
left
"
prop
=
"
estCost
"
width
=
"
160
"
>
<
el
-
table
-
column
:
label
=
"
$t('总方数')
"
align
=
"
left
"
prop
=
"
volume
"
width
=
"
100
"
/>
<
el
-
table
-
column
:
label
=
"
$t('总重量')
"
align
=
"
left
"
prop
=
"
weight
"
width
=
"
100
"
/>
<
el
-
table
-
column
:
label
=
"
$t('货物状态')
"
align
=
"
left
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
div
class
=
""
v
-
for
=
"
(item, feeIndex) in row.estCostVO.feeDtoList
"
:
key
=
"
feeIndex
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_COST_FEE_TYPE
"
:
value
=
"
item.feeType
"
/>
{{
item
.
amount
}}
{{
currencyMap
[
item
.
currencyId
]
}}
<
/div
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_OFFER_CARGO_STATUS
"
:
value
=
"
row.cargoStatus
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('客户经理')
"
align
=
"
left
"
prop
=
"
followUpSalesmanName
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('创建人')
"
align
=
"
left
"
prop
=
"
creatorName
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('创建时间')
"
align
=
"
left
"
width
=
"
120
"
>
<
el
-
table
-
column
:
label
=
"
$t('预计发货时间')
"
align
=
"
left
"
prop
=
"
estimatedShippingTime
"
width
=
"
120
"
/>
<
el
-
table
-
column
:
label
=
"
$t('厂家/电话')
"
align
=
"
left
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
span
>
{{
parseTime
(
row
.
createTime
,
"
{y
}
-{m
}
-{d
}
{h
}
:{i
}
:{s
}
"
)
}}
<
/span
>
{{
row
.
manufacturer
}}
/
{{
row
.
manufacturerPhone
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('
有效期
')
"
align
=
"
left
"
width
=
"
120
"
>
<
el
-
table
-
column
:
label
=
"
$t('
订单编号
')
"
align
=
"
left
"
width
=
"
120
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
div
>
{{
parseTime
(
row
.
startTime
,
"
{y
}
-{m
}
-{d
}
"
)
}}
<
/div
>
{{
parseTime
(
row
.
endTime
,
"
{y
}
-{m
}
-{d
}
"
)
}}
<
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
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_OFFER_REASON_DICT
"
:
value
=
"
row.reasonDict
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('输单备注')
"
align
=
"
left
"
prop
=
"
reason
"
width
=
"
120
"
/>
<
el
-
table
-
column
:
label
=
"
$t('报价单号')
"
align
=
"
left
"
prop
=
"
number
"
width
=
"
150
"
>
<
template
slot
-
scope
=
"
{ row
}
"
>
<
el
-
link
type
=
"
primary
"
@
click
.
native
=
"
$router.push('detail?offerId=' + row.offerId)
"
>
{{
row
.
number
}}
<
/el-link
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('操作')
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
fixed
=
"
right
"
>
...
...
@@ -213,7 +313,7 @@
<
/template
>
<
script
>
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
,
cancel
,
recovery
,
offerDeptPage
,
exportDeptOfferExcel
}
from
"
@/api/ecw/offer
"
import
{
deleteOffer
,
getOfferPage
,
statistics
,
exportOfferExcel
,
cancel
,
recovery
,
offerDeptPage
,
exportDeptOfferExcel
}
from
"
@/api/ecw/offer
"
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
import
{
getRegionList
}
from
"
@/api/ecw/order
"
import
{
getCurrencyList
}
from
"
@/api/ecw/currency
"
...
...
@@ -223,6 +323,7 @@ import UserSelector from "@/components/UserSelector"
import
Selector
from
"
@/components/Selector
"
import
Template
from
"
@/views/cms/template/index.vue
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow
"
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
export
default
{
name
:
"
EcwOfferIndex
"
,
components
:
{
...
...
@@ -246,8 +347,13 @@ export default {
list
:
[],
// 查询参数
queryParams
:
{
customerStatusList
:
[],
salesmanIds
:
[],
statusList
:
[],
cargoStatusList
:
[],
saleStageList
:
[],
reasonDictList
:
[],
inquirySourceList
:
[],
importances
:
[],
channelIds
:
[],
sourceIds
:
[],
...
...
@@ -257,6 +363,7 @@ export default {
queryTmp
:
{
createTime
:
[
""
,
""
],
stopTime
:
[
""
,
""
],
estimatedShippingTime
:
[
""
,
""
],
startTime
:
[
""
,
""
],
endTime
:
[
""
,
""
]
}
,
...
...
@@ -280,10 +387,19 @@ export default {
destWarehouseList
:
[],
curData
:
{
}
,
dept
:
false
,
// 是否部门订单
autoHeight
:
500
autoHeight
:
500
,
unitList
:
[],
statistics
:
{
}
}
}
,
computed
:
{
unitMap
()
{
let
map
=
{
}
this
.
unitList
.
forEach
((
item
)
=>
{
map
[
item
.
id
]
=
this
.
$i18n
.
locale
==
"
zh_CN
"
?
item
.
titleZh
:
item
.
titleEn
}
)
return
map
}
,
isMobile
()
{
const
userAgent
=
navigator
.
userAgent
||
navigator
.
vendor
||
window
.
opera
;
// 匹配常见的移动设备标识
...
...
@@ -326,6 +442,7 @@ export default {
if
(
this
.
$route
.
fullPath
.
indexOf
(
"
dept
"
)
>
-
1
)
{
this
.
dept
=
true
}
getUnitList
().
then
((
res
)
=>
(
this
.
unitList
=
res
.
data
))
// getTradeCityList().then((res) => (this.tradeCityList = res.data))
getWarehouseList
().
then
((
res
)
=>
{
this
.
tradeCityList
=
res
.
data
...
...
@@ -561,6 +678,8 @@ export default {
obj
.
endCreateTime
=
this
.
queryTmp
.
createTime
[
1
]
obj
.
beginStopTime
=
this
.
queryTmp
.
stopTime
[
0
]
obj
.
endStopTime
=
this
.
queryTmp
.
stopTime
[
1
]
obj
.
beginEstimatedShippingTime
=
this
.
queryTmp
.
estimatedShippingTime
[
0
]
obj
.
endEstimatedShippingTime
=
this
.
queryTmp
.
estimatedShippingTime
[
1
]
obj
.
beginStartTime
=
this
.
queryTmp
.
startTime
[
0
]
obj
.
endStartTime
=
this
.
queryTmp
.
startTime
[
1
]
obj
.
beginEndTime
=
this
.
queryTmp
.
endTime
[
0
]
...
...
@@ -571,7 +690,14 @@ export default {
getList
()
{
this
.
loading
=
true
let
func
=
this
.
dept
?
offerDeptPage
:
getOfferPage
if
(
!
this
.
dept
)
{
statistics
({
...
this
.
queryParams
,
...
this
.
formatQuery
()
}
).
then
((
response
)
=>
{
this
.
statistics
=
response
.
data
}
)
}
// 执行查询
func
({
...
this
.
queryParams
,
...
...
src/views/ecw/offer/result.vue
View file @
8681432d
...
...
@@ -35,7 +35,12 @@
</el-form-item>
</
template
>
<
template
v-else
>
<el-form-item
:label=
"$t('原因')"
prop=
"reason"
>
<el-form-item
:label=
"$t('原因')"
prop=
"reasonDict"
>
<el-select
v-model=
"form.reasonDict "
clearable
:placeholder=
"$t('请选择')"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.ECW_OFFER_REASON_DICT)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('备注')"
prop=
"reason"
>
<el-input
style=
"width: 500px;"
type=
"textarea"
placeholder=
""
v-model=
"form.reason"
></el-input>
</el-form-item>
</
template
>
...
...
@@ -94,10 +99,10 @@ export default {
if
(
this
.
$route
.
query
.
offerId
){
this
.
form
.
offerId
=
this
.
$route
.
query
.
offerId
}
},
methods
:
{
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
...
...
@@ -131,4 +136,4 @@ export default {
}
},
};
</
script
>
\ No newline at end of file
</
script
>
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