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
2fd54c8f
Commit
2fd54c8f
authored
Oct 24, 2023
by
zhoutong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
fb536e58
ebd16ec9
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
445 additions
and
124 deletions
+445
-124
auth.js
src/utils/auth.js
+1
-1
dict.js
src/utils/dict.js
+4
-1
pkgPage.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
+1
-1
unPkgPage.vue
...views/ecw/box/shippingAir/nodePage/mergePkg/unPkgPage.vue
+1
-1
packaging-type.vue
src/views/ecw/channel/componrnts/packaging-type.vue
+43
-18
edit.vue
src/views/ecw/channel/edit.vue
+1
-1
query.vue
src/views/ecw/customer/query.vue
+1
-1
allAchievement.vue
src/views/ecw/deptTarget/allAchievement.vue
+38
-9
index.vue
src/views/ecw/deptTarget/index.vue
+3
-2
myAchievement.vue
src/views/ecw/deptTarget/myAchievement.vue
+36
-2
myDeptAchievement.vue
src/views/ecw/deptTarget/myDeptAchievement.vue
+37
-3
index.vue
src/views/ecw/myCustomerService/index.vue
+1
-1
index.vue
src/views/ecw/oceanCustomer/index.vue
+1
-1
detail.vue
src/views/ecw/offer/detail.vue
+2
-1
edit.vue
src/views/ecw/offer/edit.vue
+5
-5
detail.vue
src/views/ecw/order/detail.vue
+79
-11
edit.vue
src/views/ecw/order/edit.vue
+4
-4
index.vue
src/views/ecw/order/exception/index.vue
+14
-1
penddingList.vue
src/views/ecw/order/penddingList.vue
+34
-2
prepayDeal.vue
src/views/ecw/order/prepayDeal.vue
+7
-3
stockingList.vue
src/views/ecw/order/stockingList.vue
+14
-1
success.vue
src/views/ecw/order/success.vue
+78
-41
weightDeal.vue
src/views/ecw/order/weightDeal.vue
+14
-0
showContacts.vue
...iews/ecw/productBrank/Empower/components/showContacts.vue
+23
-10
index.vue
src/views/ecw/productBrank/Empower/index.vue
+3
-3
No files found.
src/utils/auth.js
View file @
2fd54c8f
import
Cookies
from
'
js-cookie
'
const
TokenKey
=
'
Admin-Token
'
const
TokenKey
=
'
Jd-
Admin-Token
'
export
function
getToken
()
{
return
Cookies
.
get
(
TokenKey
)
...
...
src/utils/dict.js
View file @
2fd54c8f
...
...
@@ -233,7 +233,10 @@ export const DICT_TYPE = {
SETTLEMENT_STATUS
:
'
settlement_status
'
,
// 结算状态
APP_TYPE
:
"
app_type
"
,
//系统类型
AIR_SHIPMENT_PROCESS
:
'
air_shipment_process
'
AIR_SHIPMENT_PROCESS
:
'
air_shipment_process
'
,
AIR_CUSTOM_CLEARANCE
:
'
air_custom _clearance
'
,
//渠道清关费
AIR_COMMODITY_CUSTOM_CLEARANCE
:
'
air_commodity_custom _clearance
'
//商品渠道清关费,
}
/**
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
View file @
2fd54c8f
...
...
@@ -44,7 +44,7 @@
<el-table-column
:label=
"$t('储位')"
align=
"center"
prop=
"positionNo"
width=
"250px"
>
<
template
slot-scope=
"{ row }"
>
<div
v-for=
"item in row.orderItemDOS"
:key=
"item.orderItemId"
>
{{
notset
(
getpositionNo
(
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
))
}}
{{
(
item
.
warehouseInInfoVO
&&
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)?
notset
(
getpositionNo
(
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)):
''
}}
</div>
</
template
>
</el-table-column>
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/unPkgPage.vue
View file @
2fd54c8f
...
...
@@ -43,7 +43,7 @@
<el-table-column
:label=
"$t('储位')"
align=
"center"
prop=
"positionNo"
width=
"250px"
>
<
template
slot-scope=
"{ row }"
>
<div
v-for=
"item in row.orderItemDOS"
:key=
"item.orderItemId"
>
{{
notset
(
getpositionNo
(
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
))
}}
{{
(
item
.
warehouseInInfoVO
&&
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)?
notset
(
getpositionNo
(
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)):
''
}}
</div>
</
template
>
</el-table-column>
...
...
src/views/ecw/channel/componrnts/packaging-type.vue
View file @
2fd54c8f
<
template
>
<div>
<div
class=
"wrapper"
>
<template
v-if=
"!readonly"
>
<el-row
type=
"flex"
align=
"align"
:gutter=
"10"
>
<el-col
:span=
"6"
>
空运订单重量上限(kg)
</el-col>
<el-col
:span=
"6"
><el-input
v-model=
"value1.airWeightLimit"
></el-input></el-col>
<el-col
:span=
"6"
>
{{
$t
(
'
空运订单重量上限
'
)
}}
(kg)
</el-col>
<el-col
:span=
"6"
>
<el-input-number
v-model=
"value1.airWeightLimit"
controls-position=
"right"
:max=
"screenCom"
></el-input-number>
<!--
<el-input
type=
"number"
:max=
"2000"
v-model=
"value1.airWeightLimit"
></el-input>
-->
</el-col>
<el-col
:span=
"6"
>
<slot></slot>
</el-col>
</el-row>
<h1>
空运清关费
</h1>
<h1>
{{
$t
(
'
空运清关费
'
)
}}
</h1>
</
template
>
<div
v-for=
"(item ,index) in value1[keyArr]"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"
4
"
>
第{{index + 1 }}阶梯定价方案
:
<el-col
:span=
"
5
"
>
{{$t('第{index}阶梯定价方案', {index: index+1})}}
:
</el-col>
<el-col
:span=
"6"
v-if=
"!readonly"
>
<el-button
type=
"primary"
@
click=
"addInterval"
v-if=
"index === 0"
>
添加区间
{{$t('添加区间')}}
</el-button>
<el-button
type=
"danger"
@
click=
"deleteFn(index)"
v-else
>
删除
{{$t('删除')}}
</el-button>
</el-col>
</el-row>
<el-row
:gutter=
"10"
>
<el-col
:span=
"
3
"
>
第{{index + 1}}阶梯
<el-col
:span=
"
5
"
>
{{$t('第{index}阶梯', {index: index+1})}}
</el-col>
<el-col
:span=
"
9
"
>
<el-col
:span=
"
15
"
>
<div
style=
"display: flex;align-items: center;"
>
<el-input
v-model=
"item.startNum"
></el-input>
-
<el-input
v-model=
"item.endNum"
></el-input
>
/
<el-input
v-model=
"item.startNum"
class=
"mr-10"
></el-input>
<span
class=
"mr-10"
>
-
</span>
<el-input
v-model=
"item.endNum"
class=
"mr-10"
></el-input
>
<span
class=
"mr-10"
>
/
</span>
<weight-select
@
change=
"changeWeight"
:disabled=
"index > 0"
v-model=
"item.weightUnit"
:options=
"unitList"
></weight-select>
</div>
</el-col>
</el-row>
<el-row
:gutter=
"10"
>
<el-col
:span=
"
3
"
>
空运清关费
<el-col
:span=
"
5
"
>
{{$t('空运清关费')}}
</el-col>
<el-col
:span=
"
9
"
>
<el-col
:span=
"
15
"
>
<div
style=
"display: flex;align-items: center;"
>
<el-input
v-model=
"item.clearancePrice"
></el-input>
<currency-select
@
change=
"setCurrency"
:disabled=
"index > 0"
:options=
"currencyList"
v-model=
"item.clearancePriceUnit"
></currency-select>
/
<weight-select
:disabled=
"index > 0"
@
change=
"setAirFreightWeight"
:options=
"unitList"
v-model=
"item.clearanceVolumeUnit"
></weight-select>
<el-input
v-model=
"item.clearancePrice"
class=
"mr-10"
></el-input>
<currency-select
class=
"mr-10"
@
change=
"setCurrency"
:disabled=
"index > 0"
:options=
"currencyList"
v-model=
"item.clearancePriceUnit"
></currency-select>
<span
class=
"mr-10"
>
/
</span>
<weight-select
:disabled=
"index > 0"
@
change=
"setAirFreightWeight"
:options=
"unitList"
v-model=
"item.clearanceVolumeUnit"
></weight-select>
</div>
</el-col>
</el-row>
...
...
@@ -57,6 +64,7 @@ import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue";
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
;
import
WeightSelect
from
"
@/views/ecw/channel/componrnts/weight-select.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
{
getDictDatas
}
from
"
@/utils/dict
"
;
export
default
{
props
:{
value
:{
...
...
@@ -72,6 +80,8 @@ export default {
name
:
"
packaging-type
"
,
components
:
{
Template
,
WeightSelect
,
CurrencySelect
},
created
()
{
console
.
log
(
this
.
getDictDatas
(
this
.
DICT_TYPE
.
AIR_CUSTOM_CLEARANCE
),
'
123
'
)
getCurrencyPage
(
this
.
params
).
then
(
res
=>
this
.
currencyList
=
res
.
data
.
list
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
},
...
...
@@ -86,6 +96,18 @@ export default {
}
},
computed
:{
screenCom
(){
let
num
=
undefined
if
(
this
.
keyArr
===
'
channelPriceStepClearanceList
'
){
num
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
AIR_CUSTOM_CLEARANCE
)[
0
]?.
value
}
else
{
num
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
AIR_COMMODITY_CUSTOM_CLEARANCE
)[
0
]?.
value
}
return
+
num
}
},
mounted
()
{
this
.
value1
=
this
.
value
this
.
$nextTick
(()
=>
{
...
...
@@ -153,6 +175,9 @@ export default {
</
script
>
<
style
scoped
>
.wrapper
{
font-size
:
14px
;
}
.el-row
{
margin-bottom
:
10px
;
display
:
flex
;
...
...
src/views/ecw/channel/edit.vue
View file @
2fd54c8f
...
...
@@ -122,7 +122,7 @@
</el-select>
</el-col>
<el-col
:span=
"16"
>
<packaging-type
v-if=
"form.channelPackagingList.length"
v-model=
"form.channelPackagingList[index]"
>
<packaging-type
v-if=
"form.channelPackagingList.length"
v-model=
"form.channelPackagingList[index]"
>
<el-button
:disabled=
"form.channelPackagingList.length === 1"
@
click=
"deleteFn(index)"
type=
"danger"
>
删除包装类型{{index + 1}}
</el-button>
</packaging-type>
</el-col>
...
...
src/views/ecw/customer/query.vue
View file @
2fd54c8f
...
...
@@ -5,7 +5,7 @@
<div
style=
"display: flex;justify-content: space-between;align-items: flex-end;"
>
<h2>
{{
$t
(
'
查看
'
)
}}
</h2>
<div>
<el-button
type=
"primary"
size=
"small"
v-has-permi=
"['ecw:customer:query-edit']"
@
click=
"$router.push('/customer/edit/' + id)"
>
{{
$t
(
'
编辑
'
)
}}
</el-button>
<el-button
type=
"primary"
size=
"small"
v-has-permi=
"['ecw:customer:query-edit']"
@
click=
"$router.push('/customer/
add-
edit/' + id)"
>
{{
$t
(
'
编辑
'
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:query-quoted-price']"
@
click=
"$router.push('/offer/create')"
type=
"primary"
size=
"small"
>
{{
$t
(
'
报价
'
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:query-follow-up']"
type=
"primary"
size=
"small"
@
click=
"customerFollowFn('follow')"
>
{{
$t
(
'
跟进
'
)
}}
</el-button>
<el-button
v-has-permi=
"['ecw:customer:query-customer-complaint']"
type=
"primary"
size=
"small"
@
click=
"customerFollowFn('complain')"
>
{{
$t
(
'
客诉
'
)
}}
</el-button>
...
...
src/views/ecw/deptTarget/allAchievement.vue
View file @
2fd54c8f
...
...
@@ -19,12 +19,6 @@
</el-select>
-->
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_ESOURCE_TYPE"
v-model=
"queryParams.customerType"
:placeholder=
"$t('请选择资源类型')"
clearable
></dict-selector>
</el-form-item>
<!--
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
-->
<!--
<el-form-item
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
clearable
size=
"small"
>
<el-option
:label=
"$t('下单时间')"
value=
"createTime"
/>
...
...
@@ -39,6 +33,31 @@
<!--
<el-date-picker
v-model=
"queryParams.endStartTime"
:placeholder=
"$t('请选择结束时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
<!--
</el-form-item>
-->
<el-form-item>
<el-form-item
:label=
"$t('报价单号')"
prop=
"key"
>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入报价单号')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户名称')"
prop=
"key"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入客户名称')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('联系方式')"
prop=
"key"
>
<el-input
v-model=
"queryParams.phoneNew"
:placeholder=
"$t('请输入联系方式')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"destinationId"
>
<el-select
v-model=
"queryParams.originId"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的仓')"
prop=
"destinationId"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.destinationId"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExportDetail"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:achievement:export']"
>
{{
$t
(
'
导出明细
'
)
}}
</el-button>
...
...
@@ -129,7 +148,8 @@
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
export
default
{
name
:
"
EcwDepttargetAllachievement
"
,
components
:
{},
...
...
@@ -204,7 +224,8 @@
sumVolume
:
0
,
sumNum
:
0
,
},
myAchievementData
:{}
myAchievementData
:{},
warehouseList
:[]
};
},
computed
:
{
...
...
@@ -218,7 +239,14 @@
}
return
'
/
'
}
}
},
exportWarehouseList
(){
/* tradeType 1 进口,2出口,3进出口 */
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
2
||
item
.
tradeType
==
3
)
},
importWarehouseList
(){
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
1
||
item
.
tradeType
==
3
)
},
},
activated
()
{
this
.
getChannelList
();
...
...
@@ -230,6 +258,7 @@
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
getWarehouseList
().
then
(
res
=>
this
.
warehouseList
=
res
.
data
)
},
methods
:
{
getChannelList
()
{
...
...
src/views/ecw/deptTarget/index.vue
View file @
2fd54c8f
...
...
@@ -164,7 +164,7 @@
import
{
listDept
,
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
parseTime
}
from
'
@/utils/ruoyi
'
;
import
{
parseTime
}
from
'
@/utils/ruoyi
'
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
...
...
@@ -234,7 +234,8 @@ import { parseTime } from '@/utils/ruoyi';
cubeNum
:
[{
required
:
true
,
message
:
this
.
$t
(
"
立方数不能为空
"
),
trigger
:
"
blur
"
}],
startTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
起始时间不能为空
"
),
trigger
:
"
change
"
}],
endTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
截止时间不能为空
"
),
trigger
:
"
change
"
}],
}
},
};
},
computed
:
{
...
...
src/views/ecw/deptTarget/myAchievement.vue
View file @
2fd54c8f
...
...
@@ -39,6 +39,31 @@
<!--
<el-date-picker
v-model=
"queryParams.endStartTime"
:placeholder=
"$t('请选择结束时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
<!--
</el-form-item>
-->
<el-form-item>
<el-form-item
:label=
"$t('报价单号')"
prop=
"key"
>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入报价单号')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户名称')"
prop=
"key"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入客户名称')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('联系方式')"
prop=
"key"
>
<el-input
v-model=
"queryParams.phoneNew"
:placeholder=
"$t('请输入联系方式')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"destinationId"
>
<el-select
v-model=
"queryParams.originId"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的仓')"
prop=
"destinationId"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.destinationId"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
<!--
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
...
...
@@ -125,6 +150,7 @@
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
export
default
{
name
:
"
EcwDepttargetMyachievement
"
,
...
...
@@ -200,7 +226,8 @@
sumVolume
:
0
,
sumNum
:
0
,
},
myAchievementData
:{}
myAchievementData
:{},
warehouseList
:[]
};
},
computed
:
{
...
...
@@ -214,7 +241,14 @@
}
return
'
/
'
}
}
},
exportWarehouseList
(){
/* tradeType 1 进口,2出口,3进出口 */
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
2
||
item
.
tradeType
==
3
)
},
importWarehouseList
(){
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
1
||
item
.
tradeType
==
3
)
},
},
activated
()
{
this
.
getChannelList
();
...
...
src/views/ecw/deptTarget/myDeptAchievement.vue
View file @
2fd54c8f
...
...
@@ -39,6 +39,31 @@
<!--
<el-date-picker
v-model=
"queryParams.endStartTime"
:placeholder=
"$t('请选择结束时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
<!--
</el-form-item>
-->
<el-form-item>
<el-form-item
:label=
"$t('报价单号')"
prop=
"key"
>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入报价单号')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户名称')"
prop=
"key"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入客户名称')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('联系方式')"
prop=
"key"
>
<el-input
v-model=
"queryParams.phoneNew"
:placeholder=
"$t('请输入联系方式')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"destinationId"
>
<el-select
v-model=
"queryParams.originId"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的仓')"
prop=
"destinationId"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.destinationId"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<!--
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
-->
...
...
@@ -125,7 +150,8 @@
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
export
default
{
name
:
"
EcwDepttargetMydeptachievement
"
,
components
:
{},
...
...
@@ -200,7 +226,8 @@
sumVolume
:
0
,
sumNum
:
0
,
},
myAchievementData
:{}
myAchievementData
:{},
warehouseList
:[]
};
},
computed
:
{
...
...
@@ -214,7 +241,14 @@
}
return
'
/
'
}
}
},
exportWarehouseList
(){
/* tradeType 1 进口,2出口,3进出口 */
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
2
||
item
.
tradeType
==
3
)
},
importWarehouseList
(){
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
1
||
item
.
tradeType
==
3
)
},
},
created
()
{
this
.
getChannelList
();
...
...
src/views/ecw/myCustomerService/index.vue
View file @
2fd54c8f
...
...
@@ -363,7 +363,7 @@ export default {
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
this
.
$router
.
push
(
'
/customer/
add-
edit/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
2fd54c8f
...
...
@@ -368,7 +368,7 @@ export default {
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
this
.
$router
.
push
(
'
/customer/
add-
edit/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
...
...
src/views/ecw/offer/detail.vue
View file @
2fd54c8f
...
...
@@ -141,9 +141,10 @@
<div>
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div>
<div
v-if=
"row.oneClearanceFreight"
>
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
<div
v-else
>
{{
$t
(
'
清关费未报价
'
)
}}
</div>
</
template
>
</template>
</el-table-column>
...
...
src/views/ecw/offer/edit.vue
View file @
2fd54c8f
...
...
@@ -1103,11 +1103,11 @@ export default {
this
.
form
.
prodCreateReqVOList
.
forEach
(
item
=>
{
let
tmp
=
{...
item
}
tmp
.
prodAttrIds
=
tmp
.
prodAttrArr
.
join
(
'
,
'
)
if
(
!
tmp
.
volume
)
tmp
.
volume
=
1
if
(
!
tmp
.
weight
)
tmp
.
weight
=
1
if
(
!
tmp
.
quantity
)
tmp
.
quantity
=
1
if
(
!
tmp
.
num
)
tmp
.
num
=
1
if
(
!
tmp
.
worth
)
tmp
.
worth
=
1
if
(
!
tmp
.
volume
)
tmp
.
volume
=
0
if
(
!
tmp
.
weight
)
tmp
.
weight
=
0
if
(
!
tmp
.
quantity
)
tmp
.
quantity
=
0
if
(
!
tmp
.
num
)
tmp
.
num
=
0
if
(
!
tmp
.
worth
)
tmp
.
worth
=
0
arr
.
push
(
tmp
)
})
return
arr
...
...
src/views/ecw/order/detail.vue
View file @
2fd54c8f
...
...
@@ -81,7 +81,7 @@
<el-descriptions-item
:label=
"$t('运输方式')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"order.transportId"
/>
</el-descriptions-item>
<el-descriptions-item
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, order.transportId).cssClass == 'channel'"
:label=
"$t('出货渠道')"
>
{{channelName}}
</el-descriptions-item>
<el-descriptions-item
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, order.transportId).cssClass == 'channel'"
:label=
"$t('出货渠道')"
>
{{
order.
channelName}}
</el-descriptions-item>
</el-descriptions>
</el-card>
...
...
@@ -164,6 +164,36 @@
</el-descriptions>
</el-card>
<el-card
class=
"card"
v-if=
"[3,4].indexOf(+order.transportId) > -1"
>
<el-descriptions
class=
"mr-10"
border
:title=
"$t('空运专线')"
:column=
"2"
:labelStyle=
"{width:'110px'}"
:contentStyle=
"{width:'150px'}"
>
<el-descriptions-item
:label=
"$t('是否双清')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
:value=
"order.doubleClear"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('航空公司')"
>
{{ order.companyName||'' }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('清关证书')"
>
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('清关证书备注')"
>
{{ order.customsClearCertRemarks }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('是否拆包')"
>
{{order.isUnpack? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('单票立刻转运')"
>
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('特殊要求')"
>
<
template
v-if=
"order.packageType"
>
<dict-tag
v-for=
"packageType in order.packageType.split(',').filter(item => !!item)"
class=
"mr-10"
:key=
"packageType"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
:value=
"packageType"
/>
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('特殊要求备注')"
>
{{order.packageRemarks}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
:label=
"$t('货物详情')"
name=
"first"
>
...
...
@@ -179,6 +209,11 @@
<dict-tag
v-else
:type=
"DICT_TYPE.ECW_IS_BRAND"
:value=
"row.brandType"
/>
</template>
</el-table-column>
<el-table-column
prop=
"brand"
:label=
"$t('特性')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
{{
showAttrText
(
row
.
warehouseInInfoVO
?
row
.
warehouseInProdAttrIds
:
row
.
prodAttrIds
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"num"
:label=
"$t('填单件数')"
width=
"90px"
/>
<el-table-column
prop=
"sumNum"
:label=
"$t('入仓件数')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
...
...
@@ -415,7 +450,12 @@
<
/div
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
v
-
if
=
"
feeDetail.charging != 1
"
>
<
div
>
{{
$t
(
'
清关费
'
)
}}
<
/div
>
<
div
>
{{
$t
(
'
清关费
'
)
}}
<
template
v
-
if
=
"
order.transportId == 3 || order.transportId == 4
"
>
{{
$t
(
'
来自{source
}
'
,
{
source
:
feeDetail
.
airClearanceSource
+
feeDetail
.
sourceName
}
)
}}
<
/template
>
<
/div
>
<
div
v
-
for
=
"
item in feeDetail.clearance
"
>
{{
item
.
label
}}
:
{{
item
.
value
}}
<
template
v
-
if
=
"
item.currency
"
>
...
...
@@ -493,6 +533,8 @@ import FeeDetail from "@/views/ecw/order/components/FeeDetail.vue";
import
PackHistory
from
'
./components/PackHistory
'
;
import
PackHistoryDetail
from
'
./components/PackHistoryDetail
'
;
import
{
getOfferCheck
}
from
'
@/api/ecw/offer
'
import
{
getSupplier
}
from
"
@/api/ecw/supplier
"
;
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
;
export
default
{
name
:
"
detail
"
,
...
...
@@ -549,7 +591,7 @@ export default {
showFeeSummary
:
false
,
// 是否显示费用汇总
shopPackId
:
null
,
//显示打包历史的ID
packAfterData
:
null
,
//显示打包历史详情
attrList
:
[]
}
}
,
computed
:{
...
...
@@ -585,6 +627,18 @@ export default {
// 判断用户是否有查看客户详情的权限
hasCustomerDetailPermi
(){
return
checkPermi
([
'
ecw:customer:index-query
'
])
}
,
// 显示特性
showAttrText
(){
return
ids
=>
{
if
(
!
ids
)
return
''
ids
=
!
Array
.
isArray
(
ids
)
?
ids
.
split
(
'
,
'
)
:
ids
const
attrMap
=
{
}
this
.
attrList
.
forEach
(
item
=>
{
attrMap
[
item
.
id
]
=
this
.
$l
(
item
,
'
attrName
'
)
}
)
return
ids
.
map
(
id
=>
attrMap
[
id
]).
join
(
'
,
'
)
}
}
}
,
watch
:{
...
...
@@ -596,9 +650,6 @@ export default {
this
.
loadLogs
()
}
}
,
'
order.channelId
'
(){
this
.
getChannel
()
}
,
'
order.consigneeVO
'
(
val
){
if
(
!
val
)
return
'
-
'
listByIds
({
ids
:
[
val
.
country
,
val
.
province
,
val
.
city
].
join
(
'
,
'
)
}
).
then
(
res
=>
{
...
...
@@ -620,6 +671,10 @@ export default {
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
getProductAttrList
().
then
(
response
=>
{
this
.
attrList
=
response
.
data
;
}
)
}
,
methods
:
{
checkPermi
,
// 检查权限
...
...
@@ -636,6 +691,11 @@ export default {
handleChange
(
val
){
this
.
showText
=
val
.
length
>
0
?
this
.
$t
(
'
隐藏
'
)
:
this
.
$t
(
'
显示更多
'
)
}
,
getAirCompany
(){
getSupplier
(
this
.
order
.
airlineCompany
).
then
(
res
=>
{
this
.
$set
(
this
.
order
,
'
companyName
'
,
this
.
$l
(
res
.
data
,
'
company
'
))
}
)
}
,
//订单信息显示更多
consigneeChange
(){
this
.
showMore
=
!
this
.
showMore
;
...
...
@@ -721,8 +781,16 @@ export default {
label
:
this
.
$t
(
'
价格更新时间
'
),
value
:
parseTime
(
row
.
updateTime
)
}
)
this
.
feeDetail
=
{
freight
,
clearance
,
charging
:
row
.
charging
,
coupons
:
row
.
couponInfoVOList
}
this
.
feeDetail
=
{
freight
,
clearance
,
charging
:
row
.
charging
,
coupons
:
row
.
couponInfoVOList
,
airClearanceSource
:
row
.
airClearanceSource
==
1
?
this
.
$t
(
'
商品
'
)
:
this
.
$t
(
'
渠道
'
),
// 空运清关费来源:1 商品 2 渠道
airClearanceInfo
:
JSON
.
parse
(
row
.
airClearanceInfo
),
//空运清关费来源数据详情,
sourceName
:
row
.
airClearanceSource
==
1
?
this
.
$l
(
row
,
'
prodTitle
'
)
:
this
.
order
?.
channelName
}
}
,
closeFeeDetail
(){
this
.
showFeeDetailDialog
=
null
...
...
@@ -734,7 +802,7 @@ export default {
// 执行查询
getOrder
(
that
.
orderId
).
then
(
response
=>
{
that
.
order
=
response
.
data
;
// this.loadBrand
()
if
(
that
.
order
.
airlineCompany
)
that
.
getAirCompany
()
}
);
}
,
/* loadBrands(){
...
...
@@ -751,12 +819,12 @@ export default {
}
)
}
)
}
, */
getChannel
(){
/*
getChannel(){
if(!this.order || !this.order.channelId || this.order.transportId == 1 || this.order.transportId == 2) return
getChannel(this.order.channelId).then(res => {
this.channelName = res.data.nameZh
}
)
}
,
}
,
*/
loadFeeList
(){
getReceivableListByOrderId
({
id
:
this
.
orderId
}
).
then
(
res
=>
{
this
.
feeList
=
res
.
data
...
...
src/views/ecw/order/edit.vue
View file @
2fd54c8f
...
...
@@ -1464,10 +1464,10 @@ export default {
let
arr
=
[]
this
.
form
.
orderItemVOList
.
forEach
(
item
=>
{
let
tmp
=
{...
item
}
if
(
!
tmp
.
volume
)
tmp
.
volume
=
1
if
(
!
tmp
.
weight
)
tmp
.
weight
=
1
if
(
!
tmp
.
quantity
)
tmp
.
quantity
=
1
if
(
!
tmp
.
num
)
tmp
.
num
=
1
if
(
!
tmp
.
volume
)
tmp
.
volume
=
0
if
(
!
tmp
.
weight
)
tmp
.
weight
=
0
if
(
!
tmp
.
quantity
)
tmp
.
quantity
=
0
if
(
!
tmp
.
num
)
tmp
.
num
=
0
tmp
.
orderType
=
item
.
orderItemType
arr
.
push
(
tmp
)
})
...
...
src/views/ecw/order/exception/index.vue
View file @
2fd54c8f
...
...
@@ -108,6 +108,13 @@
<el-option
:label=
"$t('自有仓')"
:value=
"0"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('特需')"
prop=
"packageType"
>
<el-select
v-model=
"queryParams.packageTypeArr"
multiple
:placeholder=
"$t('请选择')"
clearable
>
<
template
v-for=
"item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"
>
<el-option
:label=
"$l(item, 'label')"
:value=
"item.value"
></el-option>
</
template
>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
""
>
...
...
@@ -254,7 +261,7 @@
<el-button
v-else-if=
"scope.row.orderExceptionType=='in_warehousing_diff_exception'"
v-hasPermi=
"['ecw:exception:inWarehousingException']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handEdit(scope.row.orderId)"
>
{{
$t
(
'
处理
'
)
}}
</el-button>
<el-button
v-else-if=
"scope.row.orderExceptionType=='stock_up_exception'"
v-hasPermi=
"['ecw:exception:stockUpException']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handEdit(scope.row.orderId)"
>
{{
$t
(
'
处理
'
)
}}
</el-button>
<el-button
v-else-if=
"scope.row.orderExceptionType=='channel_exception'"
v-hasPermi=
"['ecw:exception:channelException']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handEdit(scope.row.orderId)"
>
{{
$t
(
'
处理
'
)
}}
</el-button>
<el-button
v-else-if=
"scope.row.orderExceptionType=='channel_packaging_overweight_exception'"
v-hasPermi=
"['ecw:exception:channelPackagingException']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handEdit(scope.row.orderId)"
>
{{
$t
(
'
处理
'
)
}}
</el-button>
<el-button
v-else-if=
"scope.row.orderExceptionType=='channel_packaging_overweight_exception'"
v-hasPermi=
"['ecw:exception:channelPackagingException']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handEdit(scope.row.orderId)"
>
{{
$t
(
'
处理
'
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -273,10 +280,12 @@ import {listServiceUser,userList} from "@/api/system/user"
import
CustomerSelector
from
'
@/components/CustomerSelector
'
import
ProductSelector
from
'
@/components/ProductSelector
'
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
name
:
"
EcwOrderException
"
,
components
:
{
Template
,
CustomerSelector
,
ProductSelector
},
data
()
{
...
...
@@ -343,6 +352,10 @@ export default {
this
.
list
=
[]
// 处理查询参数
let
params
=
{...
this
.
queryParams
}
if
(
params
.
packageTypeArr
&&
params
.
packageTypeArr
.
length
){
params
.
packageType
=
params
.
packageTypeArr
.
join
(
'
,
'
)
delete
params
.
packageTypeArr
}
// 执行查询
getOrderExceptionPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
src/views/ecw/order/penddingList.vue
View file @
2fd54c8f
...
...
@@ -95,6 +95,13 @@
<el-form-item
:label=
"$t('出货渠道')"
prop=
"number"
>
<selector
:options=
"channelList"
:label-field=
"$l('name')"
value-field=
"channelId"
v-model=
"queryParams.channelId"
></selector>
</el-form-item>
<el-form-item
:label=
"$t('特需')"
prop=
"packageType"
>
<el-select
v-model=
"queryParams.packageTypeArr"
multiple
:placeholder=
"$t('请选择')"
clearable
>
<template
v-for=
"item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"
>
<el-option
:label=
"$l(item, 'label')"
:value=
"item.value"
></el-option>
</
template
>
</el-select>
</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>
...
...
@@ -171,7 +178,19 @@
{{
scope
.
row
.
statusMsg
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('预计运费/清关费')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"{row}"
>
<div
v-if=
"row.costVO"
>
<template
v-for=
"item in row.costVO.feeDtoList"
>
<div
v-if=
"[1,2].indexOf(item.feeType) > -1"
>
{{
item
.
feeType
==
1
?
$t
(
'
运费
'
):
$t
(
'
清关费
'
)
}}
{{
item
.
amount
}}
{{
currencyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
</div>
</template>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width actions"
width=
"150px"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"setCanShipment(scope.row)"
v-hasPermi=
"['ecw:order:peddingList:can_shipment']"
>
{{
$t
(
'
可出
'
)
}}
</el-button>
...
...
@@ -237,9 +256,11 @@ import { getCurrencyPage } from "@/api/ecw/currency";
import
SplitRevoke
from
"
@/views/ecw/order/components/SplitRevoke
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
ImageAndVideoUpload
from
"
@/components/ImageAndVideoUpload
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
name
:
"
EcwPeddingList
"
,
components
:
{
Template
,
UserSelector
,
FeeApplication
,
BatchSingleApplication
,
...
...
@@ -331,6 +352,13 @@ export default {
}
let
queryParams
=
Object
.
assign
({},
this
.
queryParams
,
timeParams
)
return
queryParams
},
currencyMap
(){
let
map
=
{}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
'
title
'
)
})
return
map
}
},
activated
(){
...
...
@@ -348,8 +376,12 @@ export default {
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
const
query
=
{...
this
.
combinedQueryParams
}
if
(
query
.
packageTypeArr
&&
query
.
packageTypeArr
.
length
){
query
.
packageType
=
query
.
packageTypeArr
.
join
(
'
,
'
)
}
// 执行查询
waitingShipmentPage
(
this
.
combinedQueryParams
).
then
(
response
=>
{
waitingShipmentPage
(
query
).
then
(
response
=>
{
// 部分情况下,订单后面的操作下拉菜单会显示按钮,但是下来没有选项,在elTable组件更新的时候会导致渲染错误,所以要在更新渲染前清空一次list让table彻底重新渲染,避免部分更新导致异常
this
.
list
=
[]
this
.
$nextTick
(()
=>
{
...
...
src/views/ecw/order/prepayDeal.vue
View file @
2fd54c8f
...
...
@@ -114,7 +114,7 @@
<
/el-row
>
<
el
-
row
v
-
if
=
"
orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType!='goods_add_exception'
"
>
<
el
-
form
-
item
:
label
=
"
$t('收费参数')+':'
"
>
<
span
>
{{
orderData
.
sumNum
||
0
}}
{{
$t
(
'
箱
'
)
}}
{{
orderData
.
wvolume
||
0
}}
m
³
{{
orderData
.
vweight
||
0
}}
Kg
{{
orderData
.
sumQuantity
||
0
}}
{{
$t
(
'
个
'
)
}}
<
/span
>
<
span
>
{{
shopData
.
num
||
0
}}
{{
$t
(
'
箱
'
)
}}
{{
shopData
.
wvolume
||
0
}}
m
³
{{
shopData
.
vweight
||
0
}}
Kg
{{
shopData
.
warehouseInInfoVO
?
shopData
.
warehouseInInfoVO
.
quantityAll
:
shopData
.
quantity
}}
{{
$t
(
'
个
'
)
}}
<
/span
>
<
/el-form-item
>
<
/el-row
>
<
el
-
row
>
...
...
@@ -1196,9 +1196,13 @@
}
}
if
((
this
.
orderExceptionData
.
orderExceptionType
==
'
not_shipping_channel_exception
'
)
||
this
.
orderExceptionData
.
orderExceptionType
==
'
line_loop_exception
'
){
this
.
handlerParams
.
orderItemVOList
=
this
.
orderData
.
orderItemVOList
if
(
this
.
orderExceptionData
.
orderExceptionType
==
'
line_loop_exception
'
){
this
.
handlerParams
.
orderItemVOList
=
this
.
loopOrderItem
}
else
{
this
.
handlerParams
.
orderItemVOList
=
this
.
orderData
.
orderItemVOList
}
this
.
handlerParams
.
channelPriceList
=
[]
this
.
orderData
.
orderItemVOList
.
map
(
v
=>
{
this
.
handlerParams
.
orderItemVOList
.
map
(
v
=>
{
var
listItem
=
{
orderId
:
v
.
orderId
,
orderItemId
:
v
.
orderItemId
,
...
...
src/views/ecw/order/stockingList.vue
View file @
2fd54c8f
...
...
@@ -95,6 +95,13 @@
<el-form-item
:label=
"$t('出货渠道')"
prop=
"number"
>
<selector
:options=
"channelList"
:label-field=
"$l('name')"
value-field=
"channelId"
v-model=
"queryParams.channelId"
></selector>
</el-form-item>
<el-form-item
:label=
"$t('特需')"
prop=
"packageType"
>
<el-select
v-model=
"queryParams.packageTypeArr"
multiple
:placeholder=
"$t('请选择')"
clearable
>
<template
v-for=
"item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"
>
<el-option
:label=
"$l(item, 'label')"
:value=
"item.value"
></el-option>
</
template
>
</el-select>
</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>
...
...
@@ -213,9 +220,11 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import
{
getCurrencyPage
}
from
"
@/api/ecw/currency
"
;
import
SplitRevoke
from
"
@/views/ecw/order/components/SplitRevoke
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
name
:
"
EcwOrderStockinglist
"
,
components
:
{
Template
,
UserSelector
,
FeeApplication
,
BatchSingleApplication
,
...
...
@@ -305,8 +314,12 @@ export default {
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
const
query
=
{...
this
.
combinedQueryParams
}
if
(
query
.
packageTypeArr
&&
query
.
packageTypeArr
.
length
){
query
.
packageType
=
query
.
packageTypeArr
.
join
(
'
,
'
)
}
// 执行查询
canShipmentPage
(
this
.
combinedQueryParams
).
then
(
response
=>
{
canShipmentPage
(
query
).
then
(
response
=>
{
// 部分情况下,订单后面的操作下拉菜单会显示按钮,但是下来没有选项,在elTable组件更新的时候会导致渲染错误,所以要在更新渲染前清空一次list让table彻底重新渲染,避免部分更新导致异常
this
.
list
=
[]
this
.
$nextTick
(()
=>
{
...
...
src/views/ecw/order/success.vue
View file @
2fd54c8f
<
template
>
<div
v-if=
"order"
>
<div
class=
"wrapper flex w-1000 pb-20"
style=
"margin:auto"
>
<div
class=
"icon"
>
<img
src=
"../../../assets/svg/success.svg"
/>
</div>
<div
class=
"flex-1"
>
<div
class=
"title"
>
{{
$t
(
'
新增订单生成成功
'
)
}}
</div>
<div
class=
"line bold font-lg"
>
{{
$t
(
'
订单号
'
)
}}
:
{{
order
.
orderNo
}}
</div>
<div
class=
"line"
>
{{
$t
(
'
唛头
'
)
}}
:
{{
order
.
marks
}}
</div>
<div
v-if=
"order"
style=
"width: 1120px"
>
<div
style=
"display: flex;justify-content: space-around;margin-top: 30px;"
>
<div
class=
"el-icon-check"
style=
"font-size: 100px;color: #67C23A;"
/>
<div>
<el-row>
<span
style=
"font-weight: bold;font-size: 18px;"
>
{{
$t
(
'
新建订单成功
'
)
}}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 16px; font-weight: bold; color: #666;"
>
{{
$t
(
'
您的订舱号
'
)
}}
:
{{
order
.
orderNo
}}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
唛头
'
)
}}
:
{{
order
.
marks
}}
</span>
</el-row>
<el-row
v-if=
"order.channelId"
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
出货渠道
'
)
}}
:
{{
order
.
channelName
}}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
路线
'
)
}}
:
{{
$l
(
order
.
logisticsInfoDto
,
'
startTitle
'
)
}}
>>
{{
$l
(
order
.
logisticsInfoDto
,
'
destTitle
'
)
}}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
单证报关
'
)
}}
:
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"order.customsType"
/></span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
是否控货
'
)
}}
:
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"order.isCargoControl"
/></span>
</el-row>
<div
class=
"flex"
>
<div
class=
"line flex-1"
>
{{
$t
(
'
运输方式
'
)
}}
:
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"order.transportId"
/></div>
<div
class=
"line flex-1"
v-if=
"order.channelName"
>
{{
$t
(
'
出货渠道
'
)
}}
:
{{
order
.
channelName
}}
</div>
</div>
<div
class=
"flex"
>
<div
class=
"line flex-1"
>
{{
$t
(
'
路线
'
)
}}
:
{{
$l
(
order
.
logisticsInfoDto
,
'
startTitle
'
)
}}
>>
{{
$l
(
order
.
logisticsInfoDto
,
'
destTitle
'
)
}}
</div>
<div
class=
"line flex-1"
>
{{
$t
(
'
单证报关
'
)
}}
:
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"order.customsType"
/></div>
</div>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{
$t
(
'
商品列表
'
)
}}
:
<span
v-for=
"(item, index) in order.orderItemVOList"
:key=
"index"
>
{{
$l
(
item
,
'
prodTitle
'
)
}}
<template
v-if=
"index
<
order
.
orderItemVOList
.
length
-
1
"
>
{{
$t
(
'
、
'
)
}}
</
template
>
</span>
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{ $t('总件数') }}:{{ order.costVO.totalNum }}
</span>
</el-row>
<div
class=
"line"
>
{{
$t
(
'
商品列表
'
)
}}
:
<span
v-for=
"(item, index) in order.orderItemVOList"
:key=
"index"
>
{{
$l
(
item
,
'
prodTitle
'
)
}}
<template
v-if=
"index
<
order
.
orderItemVOList
.
length
-
1
"
>
{{
$t
(
'
、
'
)
}}
</
template
>
</span>
</div>
<div
class=
"line"
>
{{$t('总件数')}}:{{order.costVO.totalNum}}
</div>
</div>
</div>
<div
class=
"w-800"
style=
"margin: auto"
>
<div
class=
"line mt-20"
>
{{$t('仓库地址')}}:{{$l(order.logisticsInfoDto, 'startAddress')}}
</div>
<div
class=
"line"
>
{{$t('仓库电话')}}: {{order.logisticsInfoDto.startTell}}
</div>
<!-- v1.7新增 -->
<div
class=
"line"
>
{{$t('为保证入仓数据准确性,入仓请带上一份装箱单(品名,件数,毛重,尺寸方数,是否有牌)')}}
</div>
<div
class=
"line"
></div>
<div
class=
"line"
>
{{$t('您的订单已提交,谢谢您选择捷道物流!')}}
</div>
<el-row
style=
"margin-top: 30px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{ $t('仓库地址') }}:{{ order.logisticsInfoDto.startAddressZh }}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{ $t('仓库电话') }}:{{ order.logisticsInfoDto.startTell }}
</span>
</el-row>
<el-row
style=
"margin-top: 10px;"
>
<span
style=
"font-size: 14px;color: #666;"
>
{{ $t('为保证入仓数据准确性,入仓请带上一份装箱单(品名,件数,毛重,尺寸方数,是否有牌)') }}
</span>
</el-row>
<el-row
style=
"margin-top: 20px;"
>
<span
style=
"text-decoration: underline;font-size: 14px;color: #999;"
>
{{ $t('您的订单已提交,谢谢您选择捷道物流!') }}
</span>
</el-row>
</div>
</div>
<div
class=
"actions mt-50"
>
<el-button
type=
"primary"
@
click=
"$redirect('detail?orderId=' + order.orderId)"
>
{{$t('查看订单')}}
</el-button>
<el-button
type=
"warning"
@
click=
"showNotice = true"
>
{{$t('入仓须知')}}
</el-button>
<el-button
type=
"info"
@
click=
"$redirect('create')"
>
{{$t('再来一单')}}
</el-button>
<el-button
class=
"copy-btn"
:data-clipboard-text=
"orderInfoForCopy"
>
{{$t('复制订单信息')}}
</el-button>
</div>
<el-dialog
:title=
"$t('查看须知')"
:visible.sync=
"showNotice"
width=
"700px"
>
...
...
@@ -55,6 +73,9 @@ import {getOrder} from '@/api/ecw/order'
import
FileSaver
from
'
file-saver
'
import
{
dataURLtoBlob
}
from
'
@/utils/index
'
import
NeedKnow
from
'
@/components/NeedKnow
'
import
ClipboardJS
from
"
clipboard
"
;
let
clipboard
;
export
default
{
components
:
{
NeedKnow
},
...
...
@@ -65,16 +86,32 @@ export default {
// noticeUrl: 'http://v4.groupage.cn/Public/images/notice.png'
}
},
created
(){
this
.
loadData
()
computed
:{
orderInfoForCopy
(){
return
`订单号:
${
this
.
order
.
orderNo
}
\n唛头:
${
this
.
order
.
marks
}
\n提货点:
${
this
.
order
.
logisticsInfoDto
?.
destTitleZh
}
\
n
送货地址:
$
{
this
.
order
.
logisticsInfoDto
?.
startAddressZh
}
`
}
},
async created(){
await this.loadData()
await this.$nextTick()
clipboard = new ClipboardJS('.copy-btn')
clipboard.on('success', () => {
this.$message.success(this.$t('复制成功'))
})
clipboard.on('error', () => {
this.$message.error(this.$t('复制失败'))
})
},
destroyed() {
clipboard.destroy()
},
methods:{
loadData
(){
getOrder
(
this
.
$route
.
query
.
orderId
)
.
then
(
res
=>
{
this
.
order
=
res
.
data
})
}
async
loadData(){
await
getOrder(this.$route.query.orderId)
.then(res => {
this.order = res.data
})
}
}
}
</
script
>
...
...
src/views/ecw/order/weightDeal.vue
View file @
2fd54c8f
...
...
@@ -52,6 +52,20 @@
{{
orderData
.
consigneeVO
?((
orderData
.
consigneeVO
.
countryCode
?
checkCode
(
orderData
.
consigneeVO
.
countryCode
):
''
)
+
orderData
.
consigneeVO
.
phone
)
||
$t
(
'
无
'
):
$t
(
'
无
'
)
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
:label=
"$t('仓库实测')"
>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
sumNum
||
0
)
+
$t
(
'
箱
'
)
}}
</span>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
sumVolume
||
0
)
+
'
m³
'
}}
</span>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
sumWeight
||
0
)
+
'
kg
'
}}
</span>
<span>
{{
(
orderData
.
sumQuantity
||
0
)
+
$t
(
'
个
'
)
}}
</span>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收费参数')"
>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
sumNum
||
0
)
+
$t
(
'
箱
'
)
}}
</span>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
wvolume
||
0
)
+
'
m³
'
}}
</span>
<span
style=
"margin-right:10px"
>
{{
(
orderData
.
vweight
||
0
)
+
'
kg
'
}}
</span>
<span>
{{
(
orderData
.
sumQuantity
||
0
)
+
$t
(
'
个
'
)
}}
</span>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
<!-- 列表 -->
...
...
src/views/ecw/productBrank/Empower/components/showContacts.vue
View file @
2fd54c8f
...
...
@@ -7,28 +7,41 @@ export default {
data
(){
return
{
phoneList
:[],
show
:
false
}
},
mounted
()
{
let
phone
=
this
.
phoneString
this
.
phoneList
=
phone
.
split
(
'
(;)
'
);
console
.
log
(
this
.
phoneList
)
}
}
</
script
>
<
template
>
<div>
<div
v-for=
"(item, index) in phoneList"
:key=
"index"
>
<div>
<span>
联系人
{{
index
+
1
}}
:
</span>
<span>
{{
item
.
split
(
'
(@)
'
)[
1
]
}}
</span>
<el-dialog
:modal-append-to-body=
"false"
:append-to-body=
"true"
:visible.sync=
"show"
>
<div
v-for=
"(item, index) in phoneList"
:key=
"index"
>
<div>
<span>
联系人
{{
index
+
1
}}
:
</span>
<span>
{{
item
.
split
(
'
(@)
'
)[
1
]
}}
</span>
</div>
<div>
<span>
联系电话
{{
index
+
1
}}
:
</span>
<span>
{{
item
.
split
(
'
(@)
'
)[
0
]
}}
</span>
</div>
</div>
</el-dialog>
<div>
<div>
<span>
联系人:
</span>
<span>
{{
phoneList
[
0
]
?
phoneList
[
0
].
split
(
'
(@)
'
)[
1
]
:
''
}}
</span>
</div>
<div
style=
"white-space: normal;"
>
<span>
联系电话:
</span>
<span>
{{
phoneList
[
0
]
?
phoneList
[
0
].
split
(
'
(@)
'
)[
0
]
:
''
}}
</span>
<el-button
v-if=
"phoneList.length > 1"
@
click=
"show = true;"
style=
"margin-left: 10px;"
size=
"mini"
type=
"text"
>
更多
</el-button>
</div>
<div>
<span>
联系电话
{{
index
+
1
}}
:
</span>
<span>
+
{{
item
.
split
(
'
(@)
'
)[
0
]
}}
</span>
</div>
</div>
</div>
</div>
</
template
>
...
...
src/views/ecw/productBrank/Empower/index.vue
View file @
2fd54c8f
...
...
@@ -45,7 +45,7 @@
<el-table-column
:label=
"$t('客户号码')"
>
<template
v-slot=
"
{row}">
<show-contacts
:phone-string=
"row.phone"
></show-contacts>
<show-contacts
:key=
"row.phone"
:phone-string=
"row.phone"
></show-contacts>
</
template
>
</el-table-column>
<el-table-column
...
...
@@ -79,10 +79,10 @@
:label=
"$t('客户名称')"
>
</el-table-column>
<el-table-column
width=
"2
1
0"
width=
"2
6
0"
:label=
"$t('客户号码')"
>
<
template
v-slot=
"{row}"
>
<show-contacts
:phone-string=
"row.phone"
></show-contacts>
<show-contacts
:
key=
"row.phone"
:
phone-string=
"row.phone"
></show-contacts>
</
template
>
</el-table-column>
<el-table-column
...
...
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