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
41ee17b6
Commit
41ee17b6
authored
Aug 20, 2023
by
邓春圆
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
fc2029fc
d6896598
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
738 additions
and
1342 deletions
+738
-1342
order.js
src/api/ecw/order.js
+38
-0
detail.vue
src/views/bpm/processInstance/detail.vue
+7
-0
editAirForm.vue
src/views/ecw/box/editAirForm.vue
+2
-0
indexAir.vue
src/views/ecw/box/indexAir.vue
+102
-71
pkgPage.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
+9
-1
printTag.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/printTag.vue
+8
-8
unPkgPage.vue
...views/ecw/box/shippingAir/nodePage/mergePkg/unPkgPage.vue
+1
-1
subMaterial.vue
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
+1
-1
utils.js
src/views/ecw/box/shippingAir/utils.js
+2
-2
packaging-type.vue
src/views/ecw/channel/componrnts/packaging-type.vue
+7
-3
edit.vue
src/views/ecw/offer/edit.vue
+4
-0
BatchFeeApplication.vue
src/views/ecw/order/components/BatchFeeApplication.vue
+97
-0
detail.vue
src/views/ecw/order/detail.vue
+5
-2
edit.vue
src/views/ecw/order/edit.vue
+1
-1
feeApplication.vue
src/views/ecw/order/feeApplication.vue
+53
-70
index.vue
src/views/ecw/order/index.vue
+1
-1
Discounts.vue
src/views/ecw/order/special/Discounts.vue
+4
-4
splitApply.vue
src/views/ecw/order/splitApply.vue
+0
-805
index.vue
src/views/ecw/order/splitApply/index.vue
+369
-369
edit.vue
src/views/ecw/productPrice/edit.vue
+27
-3
No files found.
src/api/ecw/order.js
View file @
41ee17b6
...
...
@@ -96,6 +96,44 @@ export function feeApplicationListByOrderId(query){
data
:
data
,
})
}
// 批量申请费用
export
function
feeApplicationCreateBatch
(
data
){
return
request
({
url
:
'
order/fee-application/create/batch
'
,
method
:
'
post
'
,
data
:
data
,
})
}
// 根据订单ID获取是否有正在申请的费用申请
export
function
getFeeApplicationApproveByOrderId
(
orderId
){
return
request
({
url
:
'
/order/fee-application/get/isApprove
'
,
method
:
'
get
'
,
params
:
{
id
:
orderId
}
})
}
// 根据流程主键ID得到批量申请费用
export
function
getBatchFeeByBusinessId
(
businessId
){
return
request
({
url
:
'
/order/fee-application/getBatchFeeByBusinessId
'
,
method
:
'
get
'
,
params
:
{
businessId
}
})
}
// 查询批量申请费用
export
function
feeApplicationGetBatch
(
params
){
return
request
({
url
:
'
/order/fee-application/get/batch
'
,
method
:
'
get
'
,
params
})
}
//费用申请修改
export
function
applicationUpdate
(
data
){
return
request
({
...
...
src/views/bpm/processInstance/detail.vue
View file @
41ee17b6
...
...
@@ -181,11 +181,18 @@ export default {
id
:
this
.
processInstance
.
businessKey
,
type
:
2
},
// 原来的费用申请
free_apply
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
2
},
// 2.0空运加的批量申请
batch_free_apply
:
{
component
:
()
=>
import
(
'
@/views/ecw/order/components/BatchFeeApplication
'
),
businessId
:
this
.
processInstance
.
businessKey
,
processInstanceId
:
this
.
$route
.
query
.
id
},
retired_warehouse
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
...
...
src/views/ecw/box/editAirForm.vue
View file @
41ee17b6
...
...
@@ -71,6 +71,8 @@ export default {
this
.
form
=
{
...
this
.
shipmentObj
};
if
(
this
.
form
.
destinationClearance
&&
this
.
form
.
destinationClearance
!=
3
){
this
.
form
.
destinationClearanceSelect
=
1
}
else
{
this
.
form
.
destinationClearanceSelect
=
3
}
this
.
getChannelList
()
},
...
...
src/views/ecw/box/indexAir.vue
View file @
41ee17b6
...
...
@@ -194,7 +194,7 @@
<
/template
>
<
script
>
import
{
deletebox
,
getbox
,
getboxPage
,
exportboxExcel
}
from
'
@/api/ecw/box
'
import
{
deletebox
,
getbox
,
getboxPage
,
exportboxExcel
,
getNoticeList
,
dealCustomsSplitNotify
}
from
'
@/api/ecw/box
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
import
costForm
from
'
./costForm.vue
'
...
...
@@ -342,13 +342,27 @@ export default {
getWarehouseList
().
then
((
res
)
=>
(
this
.
warehouseList
=
res
.
data
))
this
.
getList
()
this
.
getChannelList
()
this
.
queryNotice
()
}
,
methods
:
{
formatDate
,
getChannelList
()
{
getChannelList
().
then
((
res
)
=>
(
this
.
channelList
=
res
.
data
))
}
,
queryNotice
()
{
getNoticeList
({
transportTypeList
:
this
.
transportTypes
.
map
((
item
)
=>
item
.
value
),
}
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
noticeList
=
data
??
[];
if
(
data
.
length
)
{
this
.
$set
(
this
.
dialogCfg
,
"
title
"
,
this
.
$t
(
"
出货操作提醒
"
));
this
.
$set
(
this
.
dialogCfg
,
"
dialogType
"
,
"
notice
"
);
this
.
$set
(
this
.
dialogCfg
,
"
width
"
,
"
650px
"
);
this
.
$set
(
this
.
dialogCfg
,
"
open
"
,
true
);
}
}
);
}
,
/** 查询列表 */
getList
()
{
this
.
loading
=
true
...
...
@@ -405,7 +419,10 @@ export default {
this
.
$set
(
this
.
dialogCfg
,
'
fullscreen
'
,
false
)
this
.
$set
(
this
.
dialogCfg
,
'
open
'
,
true
)
this
.
currRow
=
{
transportType
:
'
3
'
transportType
:
'
3
'
,
destinationClearanceSelect
:
1
,
destinationClearance
:
1
,
deliveryType
:
1
}
}
,
/** 修改按钮操作 */
...
...
@@ -449,91 +466,105 @@ export default {
return
exportboxExcel
(
params
)
}
)
.
then
((
response
)
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment
}
.xls
'
)
this
.
$download
.
excel
(
response
,
this
.
$t
(
"
空运管理
"
)
+
"
.xls
"
);
this
.
exportLoading
=
false
}
)
.
catch
(()
=>
{
}
)
}
,
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
case
"
detail
"
:
this
.
$router
.
push
(
"
/boxAir/query/
"
+
row
.
id
);
break
;
case
'
air
'
:
this
.
$router
.
push
(
'
/boxAir/shippingAir/
'
+
row
.
id
)
break
async
handleCommand
(
row
,
command
)
{
console
.
log
(
command
,
row
);
switch
(
command
)
{
case
"
detail
"
:
this
.
$router
.
push
(
"
/boxAir/query/
"
+
row
.
id
);
break
;
case
'
air
'
:
this
.
$router
.
push
(
'
/boxAir/shippingAir/
'
+
row
.
id
)
break
case
'
edit
'
:
this
.
handleUpdate
(
row
)
break
case
'
edit
'
:
this
.
handleUpdate
(
row
)
break
case
'
delete
'
:
this
.
handleDelete
(
row
);
break
;
case
"
editLadingBill
"
:
const
cabinetLabel
=
this
.
getCabinetName
(
row
.
cabinetId
);
const
title
=
this
.
$t
(
"
查看提单 {selfNo
}
柜号:{cubNo
}
柜型:{cabinetLabel
}
"
,
{
selfNo
:
row
.
selfNo
,
cubNo
:
row
.
cubNo
,
cabinetLabel
:
cabinetLabel
,
}
);
this
.
$set
(
this
.
dialogCfg
,
"
title
"
,
title
);
this
.
$set
(
this
.
dialogCfg
,
"
fullscreen
"
,
true
);
break
;
const
cabinetLabel
=
this
.
getCabinetName
(
row
.
cabinetId
);
const
title
=
this
.
$t
(
"
查看提单 {selfNo
}
柜号:{cubNo
}
柜型:{cabinetLabel
}
"
,
{
selfNo
:
row
.
selfNo
,
cubNo
:
row
.
cubNo
,
cabinetLabel
:
cabinetLabel
,
}
);
this
.
$set
(
this
.
dialogCfg
,
"
title
"
,
title
);
this
.
$set
(
this
.
dialogCfg
,
"
fullscreen
"
,
true
);
break
;
case
'
batchMarkup
'
:
this
.
$router
.
push
(
'
/boxAir/batch_markup?shipmentId=
'
+
row
.
id
)
break
case
"
downloadPreloadGoodsList
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
预装单
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
downloadLoadGoodsList
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
已装单
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
downloadReceivableList
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
应收汇总表
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
zipDownload
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
提货单
"
)
+
`(${row.selfNo
}
).zip`
,
"
zip
"
);
break
;
case
"
downloadAgentListFiles
"
:
case
"
downloadSoncapFiles
"
:
case
"
downloadLadingCopy
"
:
downloadFileByUrl
(
command
,
{
shipmentId
:
row
.
id
}
);
break
;
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
预装单
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
downloadLoadGoodsList
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
已装单
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
downloadReceivableList
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
应收汇总表
"
)
+
`(${row.selfNo
}
).xlsx`
,
"
xlsx
"
);
break
;
case
"
zipDownload
"
:
downloadFile
(
command
,
{
shipmentId
:
row
.
id
}
,
this
.
$t
(
"
提货单
"
)
+
`(${row.selfNo
}
).zip`
,
"
zip
"
);
break
;
case
"
downloadAgentListFiles
"
:
case
"
downloadSoncapFiles
"
:
case
"
downloadLadingCopy
"
:
downloadFileByUrl
(
command
,
{
shipmentId
:
row
.
id
}
);
break
;
case
"
handle
"
:
const
{
noticeType
}
=
row
;
if
([
1
,
2
,
3
,
4
,
8
].
includes
(
noticeType
))
{
this
.
$router
.
push
(
"
/boxAir/shippingAir/
"
+
row
.
id
);
}
if
([
5
,
6
,
7
].
includes
(
noticeType
))
{
this
.
$router
.
push
(
"
/boxAir/query/
"
+
row
.
id
);
}
if
([
9
].
includes
(
noticeType
)){
await
dealCustomsSplitNotify
(
row
.
notifyId
)
}
this
.
closeDialog
();
break
;
}
if
([
"
editLadingBill
"
,
"
cost
"
,
"
error
"
].
includes
(
command
))
{
this
.
currRow
=
row
;
this
.
$set
(
this
.
dialogCfg
,
"
dialogType
"
,
command
);
this
.
$set
(
this
.
dialogCfg
,
"
width
"
,
"
600px
"
);
this
.
$set
(
this
.
dialogCfg
,
"
open
"
,
true
);
}
}
,
}
if
([
"
editLadingBill
"
,
"
cost
"
,
"
error
"
].
includes
(
command
))
{
this
.
currRow
=
row
;
this
.
$set
(
this
.
dialogCfg
,
"
dialogType
"
,
command
);
this
.
$set
(
this
.
dialogCfg
,
"
width
"
,
"
600px
"
);
this
.
$set
(
this
.
dialogCfg
,
"
open
"
,
true
);
}
}
,
}
}
<
/script
>
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
View file @
41ee17b6
...
...
@@ -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
(
item
.
positionNo
)
}}
{{
notset
(
getpositionNo
(
item
.
warehouseInInfoVO
.
orderLocationMergeVOSet
)
)
}}
</div>
</
template
>
</el-table-column>
...
...
@@ -184,6 +184,14 @@ export default {
})
return
arr
.
toString
()
},
getpositionNo
(
arr
){
if
(
!
arr
)
return
arr
let
data
=
[]
arr
.
forEach
(
item
=>
{
data
.
push
(
item
.
areaName
+
item
.
locationName
)
})
return
data
.
toString
()
},
removePkg
(
row
)
{
deleteRelate
(
this
.
pkgData
.
id
,
row
.
orderId
).
then
(()
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
移出成功
'
))
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/printTag.vue
View file @
41ee17b6
...
...
@@ -15,17 +15,17 @@
</div>
<div
style=
"width: 140px"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
EC001141212
</span>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
mergePkgNo
}}
</span>
</p>
<div
style=
"border: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border
-top
: 1px solid #999;margin-left: 10px;"
/>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
company
}}
</span>
</p>
<div
style=
"border: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border
-top
: 1px solid #999;margin-left: 10px;"
/>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
startWarehouse
}}
->
{{
tagData
.
endWarehouse
}}
</span>
</p>
<div
style=
"border: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border
-top
: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"display: flex;margin-top: 10px;"
>
<div
style=
"border-right: 2px solid #999;width: 45px;"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
...
...
@@ -40,10 +40,10 @@
</div>
</div>
</div>
<div
style=
"border: 1px solid #999;margin: 10px;"
/>
<div>
<div
style=
"border
-top
: 1px solid #999;margin: 10px;"
/>
<
!--
<
div>
<img
:src=
"tagData.barcodeUrl"
style=
"width:250px;height: 50px;"
/>
</div>
</div>
-->
<div
style=
"height: 50px;"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 3mm"
>
E
&
C Logistics: www.groupage.com
</span>
...
...
@@ -110,4 +110,4 @@ export default {
border
:
1px
solid
#999
;
border-radius
:
5px
;
}
</
style
>
\ No newline at end of file
</
style
>
src/views/ecw/box/shippingAir/nodePage/mergePkg/unPkgPage.vue
View file @
41ee17b6
...
...
@@ -112,7 +112,7 @@ export default {
if
(
!
arr
)
return
arr
let
data
=
[]
arr
.
forEach
(
item
=>
{
data
.
push
(
item
.
locationName
)
data
.
push
(
item
.
areaName
+
item
.
locationName
)
})
return
data
.
toString
()
},
...
...
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
View file @
41ee17b6
...
...
@@ -127,7 +127,7 @@ export default {
});
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
shipmentObj
[
voName
]
};
if
(
oldData
.
issueType
==
0
)
oldData
.
issueType
=
2
if
(
!
oldData
.
issueType
||
oldData
.
issueType
==
0
)
oldData
.
issueType
=
2
oldData
=
formatNumberString
(
oldData
,
[
"
issueType
"
]);
this
.
subMaterialObj
=
{
...
oldData
,
...
...
src/views/ecw/box/shippingAir/utils.js
View file @
41ee17b6
...
...
@@ -666,11 +666,11 @@ const constantDict = {
billingMethod
:
[
{
value
:
"
1
"
,
label
:
i18n
.
$t
(
"
电放
"
),
label
:
i18n
.
$t
(
"
正本
"
),
},
{
value
:
"
2
"
,
label
:
i18n
.
$t
(
"
正本
"
),
label
:
i18n
.
$t
(
"
电放
"
),
},
],
// 是否有文件
...
...
src/views/ecw/channel/componrnts/packaging-type.vue
View file @
41ee17b6
<
template
>
<div>
<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>
...
...
@@ -8,12 +9,13 @@
</el-col>
</el-row>
<h1>
空运清关费
</h1>
</
template
>
<div
v-for=
"(item ,index) in value1[keyArr]"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"4"
>
第{{index + 1 }}阶梯定价方案:
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
v-if=
"!readonly"
>
<el-button
type=
"primary"
@
click=
"addInterval"
v-if=
"index === 0"
>
添加区间
</el-button>
...
...
@@ -54,6 +56,7 @@ import {getCurrencyPage} from "@/api/ecw/currency";
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
"
;
export
default
{
props
:{
value
:{
...
...
@@ -63,10 +66,11 @@ export default {
keyArr
:{
type
:
String
,
default
:
'
channelPriceStepClearanceList
'
}
},
readonly
:
Boolean
},
name
:
"
packaging-type
"
,
components
:
{
WeightSelect
,
CurrencySelect
},
components
:
{
Template
,
WeightSelect
,
CurrencySelect
},
created
()
{
getCurrencyPage
(
this
.
params
).
then
(
res
=>
this
.
currencyList
=
res
.
data
.
list
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
...
...
src/views/ecw/offer/edit.vue
View file @
41ee17b6
...
...
@@ -1019,6 +1019,10 @@ export default {
item
.
transportId
=
this
.
form
.
transportId
})
if
(
this
.
form
.
transportVO
?.
packageTypeArr
){
this
.
form
.
transportVO
.
packageType
=
this
.
form
.
transportVO
.
packageTypeArr
.
join
(
'
,
'
)
}
// 修改的提交
if
(
this
.
form
.
offerId
!=
null
)
{
let
data
=
Object
.
assign
({},
this
.
form
,
{
...
...
src/views/ecw/order/components/BatchFeeApplication.vue
0 → 100644
View file @
41ee17b6
<
template
>
<div>
<h1>
{{
$t
(
'
申请信息【订单信息】
'
)
}}
</h1>
<el-descriptions
:column=
"4"
border
>
<el-descriptions-item
:label=
"$t('订单号')"
>
{{
order
.
orderNo
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('运输方式')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"order.transportId"
></dict-tag>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('出货方式')"
>
{{
order
.
channelName
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('订单状态')"
>
{{
order
.
statusMsg
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('唛头')"
>
{{
order
.
marks
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('始发仓')"
>
{{
order
.
logisticsInfoDto
.
startTitleZh
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('目的仓')"
>
{{
order
.
logisticsInfoDto
.
destTitleZh
}}
</el-descriptions-item>
</el-descriptions>
<div
style=
"font-size: 14px"
>
<p>
{{
$t
(
'
申请理由
'
)
}}
</p>
<div
v-for=
"(item, index) in feeList"
:key=
"item.id"
>
{{
index
+
1
}}
、【
<dict-tag
:type=
"DICT_TYPE.FEE_TYPE"
:value=
"item.feeType"
/>
】,
<dict-tag
:value=
"item.payType"
:type=
"DICT_TYPE.PAYMENT_TYPE"
></dict-tag>
,
{{
item
.
applicationFee
}}{{
currencyName
(
item
.
applicationFeeCurrency
)
}}
{{
$t
(
'
备注
'
)
}}
:
{{
item
.
remarks
||
$t
(
'
无
'
)
}}
</div>
</div>
</div>
</
template
>
<
script
>
import
{
warehouseApprovalGetByFormId
,
warehouseApprovalGetById
,
warehouseAreaPositionList
}
from
"
@/api/ecw/batchSingleApplication
"
;
import
{
applicationGetOrderByProcessId
,
feeApplicationGet
,
feeApplicationGetBatch
,
getBatchFeeByBusinessId
,
getBatchFeeByProcessId
,
getOrder
,
getOrderPage
,
getWarehouseUpdateApprovalInfo
,
qetBatchFeeByBusinessId
}
from
'
@/api/ecw/order
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
Template
from
"
@/views/cms/template
"
;
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
{
getCurrencyList
}
from
"
@/api/ecw/currency
"
;
import
{
arrryToKeyedObjectBy
}
from
'
@/utils/index
'
export
default
{
components
:
{
Template
},
props
:{
businessId
:
[
Number
,
String
],
processInstanceId
:
String
},
name
:
"
BatchFeeApplicationDetail
"
,
data
(){
return
{
order
:
null
,
feeList
:
[],
currencyList
:[]
}
},
computed
:{
currencyMap
(){
return
arrryToKeyedObjectBy
(
this
.
currencyList
,
'
id
'
)
},
currencyName
(){
return
id
=>
{
let
obj
=
this
.
currencyMap
[
id
]
if
(
obj
)
return
this
.
$l
(
obj
,
'
title
'
)
return
this
.
$t
(
'
未知
'
)
}
}
},
created
()
{
getCurrencyList
().
then
(
res
=>
{
this
.
currencyList
=
res
.
data
})
getBatchFeeByBusinessId
(
this
.
businessId
).
then
(
res
=>
{
console
.
log
({
res
})
this
.
feeList
=
res
.
data
return
getOrder
(
res
.
data
[
0
].
orderId
)
}).
then
(
res
=>
{
this
.
order
=
res
.
data
})
},
methods
:{
}
}
</
script
>
src/views/ecw/order/detail.vue
View file @
41ee17b6
...
...
@@ -159,7 +159,7 @@
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('清关证书备注')"
>
{{ order.c
learCertRemark
}}
{{ order.c
ustomsClearCertRemarks
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('是否拆包')"
>
{{order.isUnpack? this.$t('是'):this.$t('否')}}
...
...
@@ -168,7 +168,10 @@
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('特殊要求')"
>
<dict-tag
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
:value=
"order.packageTypeArr"
/>
<
template
v-for=
"packageType in order.packageType.split(',')"
>
<dict-tag
class=
"mr-10"
v-if=
"packageType"
:key=
"packageType"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
:value=
"packageType"
/>
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('特殊要求备注')"
>
{{order.packageRemarks}}
...
...
src/views/ecw/order/edit.vue
View file @
41ee17b6
...
...
@@ -1273,7 +1273,7 @@ export default {
this
.
form
.
packageType
=
this
.
form
.
packageTypeArr
.
join
(
'
,
'
)
// 付款人=发货人提示
if
(
+
this
.
form
.
drawee
===
1
)
{
if
(
+
this
.
form
.
drawee
===
1
&&
!
this
.
updateChannel
)
{
await
this
.
$confirm
(
this
.
$t
(
'
请再次确认运费由您支付还是收货人支付?
'
))
}
...
...
src/views/ecw/order/feeApplication.vue
View file @
41ee17b6
...
...
@@ -12,35 +12,35 @@
</div></el-form-item>
<el-form-item
:label=
"$t('发货人')+':'"
><div
class=
"content"
>
{{
orderDetails
.
consignorVO
?
orderDetails
.
consignorVO
.
name
:
''
}}
</div></el-form-item>
<el-form-item
:label=
"$t('唛头')"
><div
class=
"content"
>
{{
orderDetails
.
marks
}}
</div></el-form-item>
<el-form-item>
<el-button
@
click=
"addCost"
>
{{
$t
(
'
添加申请
'
)
}}
</el-button></el-form-item>
<el-form-item>
<el-button
:disabled=
"!!processInstanceId"
@
click=
"addCost"
>
{{
$t
(
'
添加申请
'
)
}}
</el-button></el-form-item>
</el-form>
<el-table
:data=
"list"
>
<el-table-column
:label=
"$t('序号')"
type=
"index"
></el-table-column>
<el-table-column
:label=
"$t('费用类型')"
>
<template
v-slot:default =
"scope"
>
<dict-selector
:disabled=
"
isModify[forbidden(scope.row)]
"
:type=
"DICT_TYPE.FEE_TYPE"
v-model=
"scope.row.feeType"
/>
<dict-selector
:disabled=
"
!!processInstanceId
"
:type=
"DICT_TYPE.FEE_TYPE"
v-model=
"scope.row.feeType"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('金额')"
>
<
template
v-slot:default =
'scope'
>
<el-input
:disabled=
"
isModify[forbidden(scope.row)]
"
v-model.number=
"scope.row.applicationFee"
></el-input>
<el-input
:disabled=
"
!!processInstanceId
"
v-model.number=
"scope.row.applicationFee"
></el-input>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('货币类型')"
>
<
template
v-slot:default =
'scope'
>
<el-select
:disabled=
"
isModify[forbidden(scope.row)]
"
v-model=
"scope.row.applicationFeeCurrency"
>
<el-select
:disabled=
"
!!processInstanceId
"
v-model=
"scope.row.applicationFeeCurrency"
>
<el-option
v-for=
"item in JSON.parse(currencys)"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('付款类型')"
>
<
template
v-slot =
{row}
>
<dict-selector
:disabled=
"
isModify[forbidden(row)]
"
:type=
"DICT_TYPE.PAYMENT_TYPE"
v-model=
"row.payType"
/>
<dict-selector
:disabled=
"
!!processInstanceId
"
:type=
"DICT_TYPE.PAYMENT_TYPE"
v-model=
"row.payType"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('备注')"
>
<
template
v-slot:default=
"scope"
>
<el-input
:disabled=
"
isModify[forbidden(scope.row)]
"
v-model=
"scope.row.remarks"
type=
"textarea"
></el-input>
<el-input
:disabled=
"
!!processInstanceId
"
v-model=
"scope.row.remarks"
type=
"textarea"
></el-input>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('确认收款')"
>
...
...
@@ -55,9 +55,10 @@
</el-table-column>
<el-table-column
:label=
"$t('操作')"
>
<
template
v-slot:default =
'scope'
>
<el-button
type=
"text"
v-if=
"scope.row.status !== 0&&scope.row.status !== 1"
>
{{
STATUS
[
scope
.
row
.
status
]
}}
</el-button>
<
!--
<
el-button
type=
"text"
v-if=
"scope.row.status !== 0&&scope.row.status !== 1"
>
{{
STATUS
[
scope
.
row
.
status
]
}}
</el-button>
<el-button
type=
"text"
v-if=
"scope.row.status == 1"
@
click=
"examineFn"
>
{{
$t
(
'
审核中
'
)
}}
</el-button>
<el-button
type=
"text"
v-if=
"scope.row.status === 2"
@
click=
"modify(scope.row)"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
<el-button
type=
"text"
v-if=
"scope.row.status === 2"
@
click=
"modify(scope.row)"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
-->
<el-button
type=
"text"
:disabled=
"!!processInstanceId"
@
click=
"del(scope.$index)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -65,9 +66,9 @@
<work-flow
xmlkey=
"free_apply"
v-model=
"selectedUsers"
/>
</div>
<div
style=
"text-align: center;margin-top: 20px;"
>
<el-button
v-if=
"!IsExamine
"
style=
"margin-right: 30px;"
@
click=
"submit"
>
{{$t('提交')}}
</el-button>
<el-button
v-if=
"IsExamine"
style=
"margin-right: 30px;"
@
click=
"examineFn
"
>
{{$t('审核中')}}
</el-button>
<el-button
v-if=
"IsExamine
"
style=
"margin-right: 30px;"
@
click=
"cancel"
>
{{$t('取消审核')}}
</el-button>
<el-button
type=
"primary"
v-if=
"!processInstanceId
"
style=
"margin-right: 30px;"
@
click=
"submit"
>
{{$t('提交')}}
</el-button>
<el-button
type=
"primary"
v-if=
"processInstanceId"
style=
"margin-right: 30px;"
@
click=
"goProcessDetail
"
>
{{$t('审核中')}}
</el-button>
<el-button
type=
"primary"
v-if=
"processInstanceId
"
style=
"margin-right: 30px;"
@
click=
"cancel"
>
{{$t('取消审核')}}
</el-button>
<el-button
@
click=
"$emit('update:dialogVisible',false)"
>
{{$t('返回')}}
</el-button>
</div>
</div>
...
...
@@ -78,10 +79,14 @@
<
script
>
import
{
getOrder
,
feeApplicationCreate
,
feeApplicationCreate
Batch
,
ApplicationListByOrderId
,
applicationUpdate
,
feeApplicationListByOrderId
,
feeApplicationCancel
feeApplicationListByOrderId
,
feeApplicationCancel
,
getFeeApplicationApproveByOrderId
,
getBatchFeeByProcessId
,
qetBatchFeeByBusinessId
,
getBatchFeeByBusinessId
}
from
"
@/api/ecw/order
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
Template
from
"
@/views/cms/template
"
;
...
...
@@ -100,7 +105,11 @@ export default {
data
(){
return
{
orderDetails
:{},
// 费用列表
list
:[],
// 审核ID,没有则表示不在审核中
processInstanceId
:
null
,
DICT_TYPE
,
getDictDatas
,
STATUS
:{},
...
...
@@ -114,24 +123,28 @@ export default {
this
.
STATUS
[
e
.
value
]
=
e
.
label
})
},
computed
:{
forbidden
(){
return
(
row
)
=>
{
return
this
.
list
.
findIndex
(
e
=>
e
.
id
===
row
.
id
)
getOrder
(
this
.
orderId
).
then
(
res
=>
{
this
.
orderDetails
=
res
.
data
})
// 查询是否有审核中的费用申请
getFeeApplicationApproveByOrderId
(
this
.
orderId
).
then
(
res
=>
{
if
(
res
.
data
.
formId
){
this
.
processInstanceId
=
res
.
data
.
formId
getBatchFeeByBusinessId
(
res
.
data
.
orderApprovalId
).
then
(
res
=>
{
this
.
list
=
res
.
data
})
}
},
IsExamine
(){
return
this
.
list
.
some
(
e
=>
e
.
status
===
1
)
}
})
},
methods
:{
del
(
index
){
this
.
$confirm
(
this
.
$t
(
"
确定要删除此条费用申请么?
"
)).
then
(()
=>
{
this
.
list
.
splice
(
index
,
1
)
})
},
addCost
(){
if
(
this
.
list
.
some
(
e
=>
e
.
status
===
0
||
e
.
status
===
1
)){
return
this
.
$message
.
success
(
this
.
$t
(
'
当前有申请费用为审核中或未提交,请审核后在申请
'
));
}
this
.
list
.
push
(
{
this
.
list
.
push
({
orderId
:
this
.
orderId
,
feeType
:
undefined
,
//费用申请类型
applicationFee
:
undefined
,
//金额
...
...
@@ -140,54 +153,24 @@ export default {
receiveFlag
:
0
,
applicationAuthor
:
undefined
,
status
:
0
,
}
)
this
.
isModify
.
push
(
false
)
this
.
isModifyIf
=
false
;
},
submit
(){
if
(
this
.
isModifyIf
){
applicationUpdate
({...
this
.
list
[
this
.
isModify
.
findIndex
(
e
=>
e
===
false
)],
status
:
1
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
$emit
(
'
update:dialogVisible
'
,
false
)
this
.
$message
.
success
(
this
.
$t
(
'
修改成功
'
));
}
})
}
else
{
if
(
this
.
list
[
this
.
list
.
length
-
1
].
status
===
0
){
feeApplicationCreate
(
{...
this
.
list
[
this
.
list
.
length
-
1
],
status
:
1
,
copyUserId
:
this
.
selectedUsers
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
$emit
(
'
update:dialogVisible
'
,
false
)
this
.
$message
.
success
(
this
.
$t
(
'
添加成功
'
));
this
.
selectedUsers
=
[];
}
})
}
else
{
this
.
$message
.
success
(
this
.
$t
(
'
当前有申请费用为审核中或未提交,请审核后在申请
'
));
}
}
},
getOrderList
(){
ApplicationListByOrderId
({
orderId
:
this
.
orderId
}).
then
(
r
=>
{
submit
(){
feeApplicationCreateBatch
(
{
orderFeeApplicationCreateReqVOList
:
this
.
list
,
copyUserId
:
this
.
selectedUsers
,
orderId
:
this
.
orderId
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
list
=
r
.
data
;
this
.
list
.
forEach
(()
=>
this
.
isModify
.
push
(
true
))
let
p
=
this
.
list
.
find
(
e
=>
e
.
status
===
1
)
this
.
$emit
(
'
update:dialogVisible
'
,
false
)
this
.
$message
.
success
(
this
.
$t
(
'
添加成功
'
));
this
.
selectedUsers
=
[];
}
})
},
modify
(
row
){
if
(
this
.
list
.
some
(
i
=>
i
.
status
===
0
||
i
.
status
===
1
))
return
this
.
$message
.
warning
(
this
.
$t
(
'
当前有未提交的数据或审核中的数据不能修改
'
))
this
.
isModifyIf
=
true
;
this
.
isModify
.
forEach
((
item
,
index
)
=>
{
this
.
$set
(
this
.
isModify
,
index
,
true
)
})
this
.
$set
(
this
.
isModify
,
this
.
list
.
findIndex
(
e
=>
e
.
id
===
row
.
id
),
false
)
},
examineFn
(){
let
item
=
this
.
list
.
find
(
e
=>
e
.
status
===
1
);
console
.
log
(
item
)
this
.
$router
.
push
({
path
:
'
/bpm/process-instance/detail
'
,
query
:{
id
:
item
.
bpmProcessId
}})
goProcessDetail
(){
this
.
$emit
(
'
update:dialogVisible
'
,
false
)
this
.
$router
.
push
(
'
/bpm/process-instance/detail?id=
'
+
this
.
processInstanceId
)
},
cancel
(){
this
.
$prompt
(
this
.
$t
(
'
请输入取消原因
'
),
this
.
$t
(
'
提示
'
),
{
...
...
@@ -195,7 +178,7 @@ export default {
cancelButtonText
:
this
.
$t
(
'
取消
'
),
}).
then
(({
value
})
=>
{
let
item
=
this
.
list
.
find
(
e
=>
e
.
status
===
1
);
feeApplicationCancel
({
huifu
:
value
,
bpmProcessId
:
item
.
bpmProcess
Id
}).
then
(
r
=>
{
feeApplicationCancel
({
huifu
:
value
,
bpmProcessId
:
this
.
processInstance
Id
}).
then
(
r
=>
{
this
.
$message
({
type
:
'
success
'
,
message
:
this
.
$t
(
'
取消成功
'
)
...
...
src/views/ecw/order/index.vue
View file @
41ee17b6
...
...
@@ -497,7 +497,7 @@
<batch-pickup
v-if=
"showBatchPickup"
@
close=
"onBatchClose"
@
success=
"onBatchClose"
/>
<withdrawal
v-if=
"show"
:dialog-visible=
"show"
:orderId=
"orderId"
></withdrawal>
<batch-single-application
@
getList=
"getList"
:order-list=
"orderId"
:dialog-visible.sync=
"warehouseBol"
></batch-single-application>
<fee-application
:order-id=
"orderId"
:currencys=
"JSON.stringify(currencyList)"
:dialog-visible.sync=
"feeApplicationBol"
></fee-application>
<fee-application
v-if=
"feeApplicationBol"
:order-id=
"orderId"
:currencys=
"JSON.stringify(currencyList)"
:dialog-visible.sync=
"feeApplicationBol"
></fee-application>
<merge-log
:order-no=
"showMergedLogOrderNo"
v-if=
"showMergedLogOrderNo !== null"
@
close=
"showMergedLogOrderNo=null"
/>
<pickup-log
v-if=
"showPickupLogOrderNo"
:order-no=
"showPickupLogOrderNo"
@
close=
"showPickupLogOrderNo=null"
@
delete=
"getList"
/>
<SplitRevoke
v-if=
"splitRevokeOrderId"
:order-id=
"splitRevokeOrderId"
@
close=
"splitRevokeOrderId=null;getList()"
></SplitRevoke>
...
...
src/views/ecw/order/special/Discounts.vue
View file @
41ee17b6
...
...
@@ -5,7 +5,7 @@
<span>
{{
order
.
orderNo
}}
</span>
</el-form-item>
<el-form-item
:label=
"$t('线路')"
>
{{
$t
(
'
【
'
)
}}
<dict-tag
:type=
"DICT_TYPE.TRANSPORT_TYPE"
:value=
"order.transportId"
/>
】
{{
channel
?
$l
(
channel
,
'
title
'
)
:
''
}}
{{
order
.
channelName
}}
{{
$t
(
"
从【{departureName
}
】发往【{objectiveName
}
】
"
,
{
departureName
:
$l
(
order
.
logisticsInfoDto
,
'
startTitle
'
),
objectiveName
:
$l
(
order
.
logisticsInfoDto
,
'
destTitle
'
)
}
)
}}
<
/el-form-item
>
<
/el-form
>
...
...
@@ -109,11 +109,11 @@ export default {
// getProductType(this.orderItem.prodType).then(res =>
{
// this.productType = res.data
//
}
)
if
(
this
.
order
.
channelId
){
/*
if(this.order.channelId){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
}
)
}
}
*/
}
,
data
()
{
return
{
...
...
@@ -125,7 +125,7 @@ export default {
ccIdArr
:
[],
form
:
{
}
,
productType
:
null
,
channel
:
null
//
channel: null
}
}
,
watch
:{
...
...
src/views/ecw/order/splitApply.vue
deleted
100644 → 0
View file @
fc2029fc
This diff is collapsed.
Click to expand it.
src/views/ecw/order/splitApply/index.vue
View file @
41ee17b6
This diff is collapsed.
Click to expand it.
src/views/ecw/productPrice/edit.vue
View file @
41ee17b6
...
...
@@ -60,6 +60,9 @@
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
v-if=
"channel"
:label=
"$t('出货渠道')"
>
{{$l(channel, 'name')}}
</el-form-item>
<!--有路线则不显示路线选择器-->
<routers-selector
v-else
v-model=
"selectedRoutes"
:option=
"routerOption"
:type=
"type"
/>
...
...
@@ -202,7 +205,9 @@
<
el
-
date
-
picker
v
-
model
=
"
form.validateEndDate
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
><
/el-date-picker
>
<
/el-form-item
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
>
<!--
编辑的时候右侧显示快捷设置,查看的时候空运显示商品清关费
-->
<
el
-
col
:
span
=
"
12
"
v
-
if
=
"
!readonly
"
>
<
h2
>
{{
$t
(
'
快捷设置
'
)
}}
<
/h2
>
<
div
class
=
"
flex items-center
"
>
{{
$t
(
'
批量加价
'
)
}}
+
...
...
@@ -222,6 +227,15 @@
<
el
-
button
@
click
=
"
quickSet
"
type
=
"
primary
"
:
disabled
=
"
!quickForm.plus && !quickForm.minus
"
>
{{
$t
(
'
确定
'
)
}}
<
/el-button
>
<
/div
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
v
-
else
-
if
=
"
readonly && type === 'air'
"
>
<!--
商品清关费
-->
<
h2
>
商品清关费价格
<
/h2
>
<
packaging
-
type
v
-
if
=
"
product && product.priceStepClearanceList && product.priceStepClearanceList.length
"
:
value
=
"
product
"
key
-
arr
=
"
priceStepClearanceList
"
readonly
/>
<
div
v
-
else
>
未设置清关费
<
/div
>
<
/el-col
>
<
/el-row
>
<
/el-card
>
...
...
@@ -363,8 +377,10 @@ import Inputor from '@/components/Inputor'
import
{
parseTime
}
from
'
@/utils/ruoyi
'
import
{
openedRouterList
}
from
'
@/api/ecw/warehouse
'
import
Decimal
from
"
decimal.js
"
;
import
{
getChannel
}
from
"
@/api/ecw/channel
"
;
import
PackagingType
from
"
@/views/ecw/channel/componrnts/packaging-type.vue
"
;
export
default
{
components
:
{
RoutersSelector
,
ProductSelector
,
Selector
,
Inputor
}
,
components
:
{
PackagingType
,
RoutersSelector
,
ProductSelector
,
Selector
,
Inputor
}
,
filters
:
{
parseTime
}
,
data
()
{
return
{
...
...
@@ -399,7 +415,9 @@ export default {
showLogsDialog
:
false
,
// 显示价格日志弹层
logs
:
[],
// 批量加价/减价
quickForm
:{
}
// 快速加价/减价表单
quickForm
:{
}
,
// 快速加价/减价表单
// 渠道信息
channel
:
null
}
}
,
computed
:
{
...
...
@@ -555,6 +573,12 @@ export default {
if
(
this
.
$route
.
query
.
action
==
'
update
'
){
let
res
=
await
getProductPrice
(
this
.
$route
.
query
.
id
)
this
.
$set
(
this
,
'
form
'
,
res
.
data
)
// 显示渠道
if
(
this
.
readonly
&&
this
.
form
.
shippingChannelId
){
getChannel
(
this
.
form
.
shippingChannelId
).
then
(
res
=>
{
this
.
channel
=
res
.
data
}
)
}
if
(
this
.
form
.
needPay
){
this
.
needPay
=
true
}
...
...
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