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
5a76222e
Commit
5a76222e
authored
Dec 11, 2023
by
houjn@hikoon.cn
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
df2e7b44
d0061874
Changes
42
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
414 additions
and
183 deletions
+414
-183
box.js
src/api/ecw/box.js
+17
-0
boxAir.js
src/api/ecw/boxAir.js
+15
-0
orderHandle.js
src/api/ecw/orderHandle.js
+2
-2
product.js
src/api/ecw/product.js
+9
-0
index.vue
src/components/ProductsSelector/index.vue
+51
-34
index.vue
src/components/WarehouseAreaSelect/index.vue
+1
-1
en_US.json
src/i18n/languages/en_US.json
+1
-1
index.vue
src/views/ecw/bannerPop/index.vue
+5
-3
cancelClear.vue
src/views/ecw/box/cancelClear.vue
+9
-5
batchMakeUpDetail.vue
src/views/ecw/box/components/batchMakeUpDetail.vue
+5
-1
indexAir.vue
src/views/ecw/box/indexAir.vue
+6
-3
indexSea.vue
src/views/ecw/box/indexSea.vue
+2
-2
index.vue
src/views/ecw/box/ladingBill/index.vue
+11
-6
makeLadingBill.vue
src/views/ecw/box/ladingBill/makeLadingBill.vue
+1
-1
previewBill.vue
src/views/ecw/box/ladingBill/previewBill.vue
+18
-3
queryAir.vue
src/views/ecw/box/queryAir.vue
+1
-1
arrival.vue
src/views/ecw/box/shippingAir/nodePage/arrival.vue
+3
-1
splitOrder.vue
...views/ecw/box/shippingAir/nodePage/cabinet/splitOrder.vue
+1
-1
cusClearance.vue
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
+6
-4
index.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/index.vue
+27
-5
pkgPage.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
+5
-1
supplementOrder.vue
...ecw/box/shippingAir/nodePage/mergePkg/supplementOrder.vue
+16
-1
subMaterial.vue
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
+5
-5
startUnloading.vue
...ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
+10
-0
seaProcess.vue
src/views/ecw/box/shippingAir/seaProcess.vue
+1
-13
splitOrder.vue
...views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
+2
-2
supplementOrder.vue
.../ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
+16
-1
allAchievement.vue
src/views/ecw/deptTarget/allAchievement.vue
+9
-4
NotShipingChannel.vue
src/views/ecw/order/components/NotShipingChannel.vue
+5
-0
PrintWarehouseReceipt.vue
src/views/ecw/order/components/PrintWarehouseReceipt.vue
+2
-2
SplitDetail.vue
src/views/ecw/order/components/SplitDetail.vue
+1
-2
WarehouseDetail.vue
src/views/ecw/order/components/WarehouseDetail.vue
+5
-0
detail.vue
src/views/ecw/order/detail.vue
+6
-0
edit.vue
src/views/ecw/order/edit.vue
+22
-15
index.vue
src/views/ecw/order/exception/index.vue
+6
-6
index.vue
src/views/ecw/order/index.vue
+3
-2
prepayDeal.vue
src/views/ecw/order/prepayDeal.vue
+6
-9
index.vue
src/views/ecw/order/splitApply/index.vue
+55
-33
index.vue
src/views/ecw/order/stocking/index.vue
+16
-6
batchEdit.vue
src/views/ecw/productPrice/batchEdit.vue
+21
-5
index.vue
src/views/ecw/productPrice/index.vue
+6
-0
index.vue
src/views/ecw/region/index.vue
+5
-2
No files found.
src/api/ecw/box.js
View file @
5a76222e
...
...
@@ -63,6 +63,15 @@ export function exportPreloadGoodsList(query) {
});
}
// 导出海运预装单,上面的预装单是空运的
export
function
exportSeaPreloadGoodsList
(
query
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/downloadSeaPreloadGoodsList
"
,
method
:
"
get
"
,
params
:
query
});
}
// 创建费用登记
export
function
createCost
(
data
)
{
if
(
data
.
id
)
{
...
...
@@ -401,3 +410,11 @@ export function exportSettlementExcel(params) {
params
,
});
}
// 刷新空运提单
export
function
updateAirBill
(
id
)
{
return
request
({
url
:
"
/shipment/make-bill-of-lading/updateAirBill?ids=
"
+
id
,
method
:
"
get
"
});
}
src/api/ecw/boxAir.js
View file @
5a76222e
...
...
@@ -317,6 +317,21 @@ export function updateOrderArrival(data) {
});
}
/**
* 创建到港订单
*
* @export
* @param {*} data
* @return {*}
*/
export
function
createOrderArrival
(
data
)
{
return
request
({
url
:
`/ecw/box-arrival-air/create`
,
method
:
"
post
"
,
data
:
data
});
}
/**
* 更新所有订单到港状态
*
...
...
src/api/ecw/orderHandle.js
View file @
5a76222e
...
...
@@ -112,9 +112,9 @@ export function createSplitItem(data) {
}
// 删除订单拆单项
export
function
deleteSplitItem
(
id
)
{
export
function
deleteSplitItem
(
id
,
shipmentSplit
=
false
)
{
return
request
({
url
:
'
/order/split-item/delete?id=
'
+
id
,
url
:
'
/order/split-item/delete?id=
'
+
id
+
'
&shipmentSplit=
'
+
shipmentSplit
,
method
:
'
delete
'
})
}
...
...
src/api/ecw/product.js
View file @
5a76222e
...
...
@@ -59,6 +59,15 @@ export function getProductList(params) {
})
}
// 返回简洁的商品列表
export
function
getSimpleProductList
(
params
)
{
return
request
({
url
:
'
/ecw/product/simpleList
'
,
method
:
'
get
'
,
params
})
}
// 获得产品分页
export
function
getProductPage
(
query
)
{
return
request
({
...
...
src/components/ProductsSelector/index.vue
View file @
5a76222e
...
...
@@ -12,39 +12,39 @@
<el-input
v-model=
"queryParams.titleZh"
:placeholder=
"$t('产品关键字')"
style=
"width:120px"
clearable
:disabled=
"loading"
/>
<el-button
type=
"primary"
@
click=
"reLoad"
:loading=
"loading"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<div
v-if=
"showAll"
>
<el-checkbox
:label=
"$t('全选') + `($
{total > 500 ? $t('最多500') : $t('{total}个', {total})})`" @change="toggleAll" :disabled="isAllProduct || loading">
</el-checkbox>
<el-checkbox
:label=
"$t('全选库内商品(共
{cnt}个)', {cnt: allTotal})" v-model="isAllProduct" :disabled="loading">
</el-checkbox>
<el-checkbox
v-if=
"showFiltered && enableFiltered"
:label=
"$t('根据商品搜索结果(共
{cnt}个)', {cnt: total})" v-model="isAllFiltered" :disabled="loading">
</el-checkbox>
<div>
<el-checkbox
:label=
"$t('全选') + `($
{$t('{total}个', {total})})`" @change="toggleAll" :disabled="isAllProduct || loading">
</el-checkbox>
</div>
</div>
<div
class=
"list"
>
<div
class=
"item"
v-for=
"item in
l
ist"
:key=
"item.id"
>
<div
class=
"item"
v-for=
"item in
currentL
ist"
:key=
"item.id"
>
<el-checkbox
@
change=
"toggleCheck(item, $event)"
:value=
"ids.indexOf(item.id) > -1"
:disabled=
"isAllProduct"
/>
{{
item
.
titleZh
}}
<div>
{{
item
.
titleEn
}}
</div>
</div>
</div>
<el-pagination
:total=
"list.length"
:page-sizes=
"[100, 200, 300, 500]"
:page-size=
"pageSize"
@
current-change=
"leftPage = $event"
layout=
"prev, pager, next, total, sizes"
:current-page=
"leftPage"
/>
</el-card>
</div>
<div
class=
"flex-1 ml-10"
>
<el-card
style=
"height:100%"
>
<div
slot=
"header"
class=
"header flex"
>
<div
class=
"flex-1 flex items-center"
>
{{
$t
(
'
已选{cnt
}
个产品
'
,
{
cnt
:
isAllProduct
||
isAllFiltered
?
total
:
choosedList
.
length
}
)
}}
<
/div
>
<div
class=
"flex-1 flex items-center"
>
{{
$t
(
'
已选{cnt
}
个产品
'
,
{
cnt
:
choosedList
.
length
}
)
}}
<
/div
>
<
el
-
button
:
disabled
=
"
!choosedList.length
"
type
=
"
text
"
@
click
=
"
clearAll
"
>
{{
$t
(
'
全部清除
'
)
}}
<
/el-button
>
<
/div
>
<
div
class
=
"
list
"
>
<
div
class
=
"
item
"
v
-
for
=
"
(choosed) in
choos
edList
"
:
key
=
"
choosed.id
"
:
data
-
data
=
"
JSON.stringify(choosed)
"
>
<
div
class
=
"
item
"
v
-
for
=
"
(choosed) in
select
edList
"
:
key
=
"
choosed.id
"
:
data
-
data
=
"
JSON.stringify(choosed)
"
>
<
el
-
link
class
=
"
el-icon-delete
"
@
click
=
"
remove(choosed)
"
:
disabled
=
"
isAllProduct
"
/>
{{
choosed
.
titleZh
}}
<
div
>
{{
choosed
.
titleEn
}}
<
/div
>
<
/div
>
<
/div
>
<
el
-
pagination
:
total
=
"
choosedList.length
"
:
page
-
sizes
=
"
[100, 200, 300, 500]
"
:
page
-
size
=
"
pageSize
"
@
current
-
change
=
"
rightPage = $event
"
layout
=
"
prev, pager, next, total, sizes
"
:
current
-
page
=
"
rightPage
"
/>
<
/el-card
>
<
/div
>
<
/div
>
<
/template
>
<
script
>
import
{
getProductPage
,
getProductList
,
getProductIds
}
from
'
@/api/ecw/product
'
import
{
getProductPage
,
getProductList
,
getProductIds
,
getSimpleProductList
}
from
'
@/api/ecw/product
'
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
...
...
@@ -67,11 +67,10 @@ export default {
list
:
[],
page
:
1
,
pages
:
1
,
total
:
0
,
// 当前筛选条件的商品总数
allTotal
:
0
,
// 全库商品总数
queryParams
:
{
pageNo
:
1
,
pageSize
:
5
00
,
pageSize
:
100
00
,
attrId
:
null
,
titleZh
:
null
,
typeId
:
null
...
...
@@ -80,12 +79,21 @@ export default {
typeList
:
[],
attrList
:
[],
isAllProduct
:
false
,
isAllFiltered
:
false
,
// 是否全部搜索结果
//
isAllFiltered: false, // 是否全部搜索结果
// 是否显示搜索结果勾选,有筛选条件才显示
showFiltered
:
false
showFiltered
:
false
,
// 左侧页码
leftPage
:
1
,
// 右侧页码
rightPage
:
1
,
// 页大小
pageSize
:
100
}
}
,
computed
:
{
total
(){
return
this
.
list
.
length
}
,
ids
:
{
get
()
{
let
arr
=
[]
...
...
@@ -97,6 +105,14 @@ export default {
set
(
v
)
{
}
}
,
// 左侧当前显示的列表
currentList
(){
return
this
.
list
.
slice
((
this
.
leftPage
-
1
)
*
this
.
pageSize
,
this
.
leftPage
*
this
.
pageSize
)
}
,
// 已勾选的显示列表
selectedList
(){
return
this
.
choosedList
.
slice
((
this
.
rightPage
-
1
)
*
this
.
pageSize
,
this
.
rightPage
*
this
.
pageSize
)
}
}
,
watch
:
{
...
...
@@ -108,11 +124,11 @@ export default {
this
.
choosedList
=
[]
this
.
$emit
(
'
setall
'
,
isAllProduct
)
}
,
isAllFiltered
(
isAllFiltered
){
/*
isAllFiltered(isAllFiltered){
this.choosedList = []
this.isAllProduct = false
this.$emit('setFiltered', isAllFiltered)
}
,
}
,
*/
defaultIds
(
newValue
,
oldValue
){
if
(
!
oldValue
||
!
oldValue
.
length
){
this
.
loadDefaultProds
()
...
...
@@ -122,27 +138,28 @@ export default {
this
.
isAllProduct
=
isall
}
}
,
created
()
{
async
created
()
{
getProductTypeList
().
then
(
res
=>
this
.
typeList
=
res
.
data
)
getProductAttrList
().
then
(
res
=>
this
.
attrList
=
res
.
data
)
this
.
reLoad
()
await
this
.
reLoad
()
this
.
ids
=
this
.
defaultIds
//数据回显
this
.
isAllProduct
=
this
.
isall
// 如果有默认商品则获取内容供回显
if
(
this
.
defaultIds
.
length
){
this
.
loadDefaultProds
()
this
.
setDefaultChooseProds
()
//this.loadDefaultProds()
}
// 获取全库商品总数
getProductPage
({
pageNo
:
1
,
pageSize
:
1
}
).
then
(
res
=>
{
/*
getProductPage({pageNo: 1, pageSize: 1
}
).then(res => {
this.allTotal = res.data.total
}
)
}
)
*/
}
,
methods
:
{
/* setAllProduct(status){
this.isAllProduct = true
}
, */
loadDefaultProds
(){
/*
loadDefaultProds(){
if(!this.defaultIds || !this.defaultIds.length){
return false
}
...
...
@@ -151,16 +168,24 @@ export default {
this.choose(item)
}
)
}
)
}
,*/
// 设置默认选中的商品
setDefaultChooseProds
(){
this
.
list
.
forEach
(
item
=>
{
if
(
this
.
defaultIds
.
indexOf
(
item
.
id
)
>
-
1
){
this
.
choose
(
item
)
}
}
)
}
,
toggleAll
(
status
){
this
.
list
.
forEach
(
item
=>
{
this
.
toggleCheck
(
item
,
status
)
}
)
}
,
reLoad
()
{
async
reLoad
()
{
this
.
queryParams
.
page
=
1
this
.
list
=
[]
this
.
getList
()
await
this
.
getList
()
}
,
loadNextPage
()
{
if
(
this
.
page
>=
this
.
pages
)
{
...
...
@@ -169,19 +194,11 @@ export default {
this
.
queryParams
.
page
++
this
.
getList
()
}
,
getList
()
{
async
getList
()
{
this
.
loading
=
true
getProductPage
(
this
.
queryParams
).
then
(
res
=>
{
this
.
list
=
res
.
data
.
list
//.concat(res.data.list || [])
this
.
page
=
res
.
data
.
page
this
.
pages
=
res
.
data
.
pages
this
.
total
=
res
.
data
.
total
// 必须在搜索之后才显示勾选,这个时候才有数量
this
.
showFiltered
=
!!
this
.
queryParams
.
attrId
||
!!
this
.
queryParams
.
titleZh
||
!!
this
.
queryParams
.
typeId
}
).
finally
(()
=>
{
this
.
loading
=
false
}
)
let
res
=
await
getSimpleProductList
(
this
.
queryParams
)
this
.
loading
=
false
this
.
list
=
res
.
data
}
,
// 获得指定条件的商品的全部ID
getFilteredIds
(){
...
...
src/components/WarehouseAreaSelect/index.vue
View file @
5a76222e
...
...
@@ -191,7 +191,7 @@ export default {
this
.
$emit
(
'
input
'
,
data
)
this
.
dialogVisible
=
false
if
(
this
.
isEditing
||
this
.
warehouseInId
)
{
if
(
(
this
.
isEditing
||
this
.
warehouseInId
)
&&
this
.
warehouseInId
)
{
updateWarehouseInLocation
({
"
orderId
"
:
this
.
orderId
,
"
orderItemId
"
:
this
.
orderItemId
,
...
...
src/i18n/languages/en_US.json
View file @
5a76222e
...
...
@@ -3832,7 +3832,7 @@
"流程详情"
:
"Flow details"
,
"收款单核销审核"
:
"The payment voucher verification review"
,
"系统提示"
:
"System prompt"
,
"合计:{totalNum}箱,{totalVolume}m³(测) {totalChargeVolume}m³(重) {totalWeight}KG
"
:
"Total:{totalNum}Box,{totalVolume}m³(Test) {totalChargeVolume}m³(Weight) {totalWeight}KG
"
,
"合计:{totalNum}箱,{totalVolume}m³(测) {totalChargeVolume}m³(重) {totalWeight}KG
(测), {totalChargeWeight}kg(收费)"
:
"Total:{totalNum}Box,{totalVolume}m³(measure) {totalChargeVolume}m³(Weight) {totalWeight}KG(measure),{totalChargeWeight}kg(charge)
"
,
"确定要取消此报价单么?"
:
"Are you sure you want to cancel this quote?"
,
"确定要恢复此报价单么?"
:
"Are you sure you want to restore this quote?"
,
"确定要删除此报价单么?"
:
"Are you sure you want to delete this quote?"
,
...
...
src/views/ecw/bannerPop/index.vue
View file @
5a76222e
...
...
@@ -86,7 +86,7 @@
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.page
No"
:limit.sync=
"queryParams.pageSize
"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.page
"
:limit.sync=
"queryParams.rows
"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
...
...
@@ -158,8 +158,10 @@ export default {
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
// pageNo: 1,
// pageSize: 10,
page
:
1
,
rows
:
10
,
titleZh
:
null
,
titleEn
:
null
,
validateStart
:
null
,
...
...
src/views/ecw/box/cancelClear.vue
View file @
5a76222e
...
...
@@ -3,7 +3,7 @@
<div
class=
"message-title"
>
{{
$t
(
`您确定撤销${cancelClearInfo.orderNo
}
已清关状态吗?`
)
}}
<
/div
>
<
el
-
form
ref
=
"
arrivalForm
"
:
rules
=
"
rules
"
:
model
=
"
cusClearanceObj
"
label
-
width
=
"
120px
"
>
<
el
-
form
-
item
:
label
=
"
$t('撤销理由')
"
prop
=
"
clEstTime
"
>
<
el
-
input
v
-
if
=
"
[0,3,4].includes(apply.approvalStatus)
"
v
-
model
=
"
cusClearanceObj.applyReason
"
type
=
"
textarea
"
:
rows
=
"
4
"
><
/el-input
>
<
el
-
input
v
-
if
=
"
!flag
"
v
-
model
=
"
cusClearanceObj.applyReason
"
type
=
"
textarea
"
:
rows
=
"
4
"
><
/el-input
>
<
template
v
-
else
>
{{
apply
.
applyReason
}}
<
/template
>
...
...
@@ -11,9 +11,9 @@
<
/el-form
>
<
el
-
row
class
=
"
operate-button
"
>
<
el
-
button
v
-
if
=
"
[0,3,4].includes(apply.approvalStatus)
"
type
=
"
primary
"
@
click
=
"
onSubmit
"
>
{{
$t
(
'
确定
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
apply.approvalStatus == 1
"
type
=
"
primary
"
@
click
=
"
$router.push({path: '/bpm/process-instance/detail', query: {id: apply.bpmProcessId
}}
)
"
>
{{
$t
(
'
审核中
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
apply.approvalStatus == 1
"
plain
type
=
"
primary
"
@
click
=
"
canclAudit
"
>
{{
$t
(
'
取消审核
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
!flag
"
type
=
"
primary
"
@
click
=
"
onSubmit
"
>
{{
$t
(
'
确定
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
flag
"
type
=
"
primary
"
@
click
=
"
$router.push({path: '/bpm/process-instance/detail', query: {id: apply.bpmProcessId
}}
)
"
>
{{
$t
(
'
审核中
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
flag
"
plain
type
=
"
primary
"
@
click
=
"
canclAudit
"
>
{{
$t
(
'
取消审核
'
)
}}
<
/el-button
>
<
el
-
button
@
click
=
"
cancel
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-button
>
<
/el-row
>
<
/div
>
...
...
@@ -41,7 +41,8 @@ export default {
{
required
:
true
,
message
:
this
.
$t
(
"
必填
"
),
trigger
:
"
change
"
}
,
]
}
,
apply
:
{
}
apply
:
{
}
,
flag
:
false
}
;
}
,
created
()
{
...
...
@@ -50,6 +51,9 @@ export default {
console
.
log
(
order
,
11
,
this
.
cancelClearInfo
.
orderId
,
orders
);
if
(
order
){
this
.
apply
=
order
if
(
this
.
apply
.
approvalStatus
==
1
){
this
.
flag
=
true
}
}
}
,
methods
:
{
...
...
src/views/ecw/box/components/batchMakeUpDetail.vue
View file @
5a76222e
...
...
@@ -26,7 +26,7 @@
</div>
</div>
<el-table
:data=
"
loadDetail.sectionOrderList
"
border
class=
"mt-10"
>
<el-table
:data=
"
orders
"
border
class=
"mt-10"
>
<el-table-column
prop=
"orderNo"
:label=
"$t('订单号')"
align=
"center"
>
<template
v-slot=
"
{row}">
<el-button
type=
"text"
@
click=
"jumpOrderDetail(row)"
>
{{
row
.
orderNo
}}
</el-button>
...
...
@@ -152,6 +152,10 @@ export default {
},
},
computed
:
{
orders
()
{
if
(
!
this
.
loadDetail
)
return
[];
return
this
.
loadDetail
.
sectionOrderList
?.
filter
(
item
=>
this
.
details
.
orderIds
?.
indexOf
(
item
.
orderId
)
>
-
1
)
},
/* 渠道 */
getShipChannelName
()
{
return
(
shippingChannelId
)
=>
{
...
...
src/views/ecw/box/indexAir.vue
View file @
5a76222e
...
...
@@ -125,7 +125,10 @@
</el-dropdown-menu>
</el-dropdown>
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleCommand(scope.row, command)"
v-hasPermi=
"['shipment:box:download:downloadPreloadGoodsList','shipment:box:download:downloadLoadGoodsList','shipment:box:download:downloadReceivableList','shipment:box:download:downloadAgentListFiles','shipment:box:download:downloadSoncapFiles','shipment:box:download:zipDownload','shipment:box:download:downloadLadingCopy']"
>
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleCommand(scope.row, command)"
v-hasPermi=
"['shipment:air:download:downloadPreloadGoodsList',
'shipment:air:download:downloadLoadGoodsList','shipment:air:download:downloadReceivableList',
'shipment:air:download:downloadAgentListFiles','shipment:air:download:downloadSoncapFiles',
'shipment:air:download:zipDownload','shipment:air:download:downloadLadingCopy']"
>
<el-button
type=
"primary"
>
{{
$t
(
'
下载
'
)
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
...
...
@@ -234,8 +237,8 @@ export default {
cabinetList
:[],
dateTypes
:
[
{
value
:
'
1
'
,
label
:
this
.
$t
(
'
分拣时间
'
)
}
,
{
value
:
'
2
'
,
label
:
this
.
$t
(
'
装柜
时间
'
)
}
,
{
value
:
'
3
'
,
label
:
this
.
$t
(
'
起
运
时间
'
)
}
,
{
value
:
'
7
'
,
label
:
this
.
$t
(
'
出仓
时间
'
)
}
,
{
value
:
'
3
'
,
label
:
this
.
$t
(
'
起
飞
时间
'
)
}
,
{
value
:
'
4
'
,
label
:
this
.
$t
(
'
到港时间
'
)
}
,
{
value
:
'
5
'
,
label
:
this
.
$t
(
'
清关时间
'
)
}
,
{
value
:
'
6
'
,
label
:
this
.
$t
(
'
提货时间
'
)
}
...
...
src/views/ecw/box/indexSea.vue
View file @
5a76222e
...
...
@@ -213,7 +213,7 @@ import {
getbox
,
getboxPage
,
exportboxExcel
,
getNoticeList
,
dealCustomsSplitNotify
,
exportPreloadGoodsList
,
zipDownload
,
getNoticeList
,
dealCustomsSplitNotify
,
export
Sea
PreloadGoodsList
,
zipDownload
,
}
from
"
@/api/ecw/box
"
;
import
{
downloadFile
,
...
...
@@ -495,7 +495,7 @@ export default {
// this.$t("预装单") + `($
{
row
.
selfNo
}
).
xlsx
`,
// "xlsx"
// );
this.exportExcel(exportPreloadGoodsList, { shipmentId: row.id
}
, this.$t("预装单") + `
(
$
{
row
.
selfNo
}
).
xlsx
`)
this.exportExcel(export
Sea
PreloadGoodsList, { shipmentId: row.id
}
, this.$t("预装单") + `
(
$
{
row
.
selfNo
}
).
xlsx
`)
break;
case "downloadLoadGoodsList":
downloadFile(
...
...
src/views/ecw/box/ladingBill/index.vue
View file @
5a76222e
...
...
@@ -101,7 +101,7 @@
<el-dialog
:title=
"dialogCfg.title"
:visible.sync=
"dialogCfg.visible"
:width=
"dialogCfg.width"
:fullscreen=
"dialogCfg.fullscreen"
append-to-body
class=
"shippingSea-dialog"
@
closed=
"dialogclosed"
>
<makeLadingBill
v-if=
"dialogCfg.visible && ['makeBill','queryBill','resetBill'].includes(dialogCfg.type)"
:currData=
"currData"
:currRow=
"currRow"
:dialogCfg=
"dialogCfg"
@
closeDialog=
"closeDialog"
:selfNo=
"shipmentObj.selfNo"
/>
<previewBill
v-if=
"dialogCfg.type === 'previewBill'"
:contentHtml=
"currData.billContent"
:currRow=
"currRow"
:type=
"dialogCfg.type"
/>
<previewBill
v-if=
"dialogCfg.type === 'previewBill'"
:contentHtml=
"currData.billContent"
:currRow=
"currRow"
:type=
"dialogCfg.type"
:air=
"type === 'air'"
/>
</el-dialog>
</el-row>
</template>
...
...
@@ -195,14 +195,14 @@ export default {
this
.
getBillList
();
}
},
handleCommand
(
type
,
row
)
{
async
handleCommand
(
type
,
row
)
{
this
.
handleType
=
type
;
switch
(
type
)
{
case
"
previewBill
"
:
this
.
getBill
(
row
);
break
;
case
"
makeBill
"
:
this
.
makeBill
(
row
);
await
this
.
makeBill
(
row
);
break
;
case
"
queryBill
"
:
this
.
getBill
(
row
);
...
...
@@ -236,9 +236,10 @@ export default {
this
.
$set
(
this
.
dialogCfg
,
"
width
"
,
"
1200px
"
);
this
.
$set
(
this
.
dialogCfg
,
"
visible
"
,
true
);
},
makeBill
(
row
)
{
async
makeBill
(
row
)
{
let
api
=
this
.
type
!=
'
air
'
?
makeBillService
:
makeAirBillService
;
api
({
let
loading
=
this
.
$loading
()
await
api
({
orderId
:
row
.
orderId
,
shipmentId
:
this
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
...
...
@@ -247,8 +248,12 @@ export default {
let
billContent
=
`
${
titleZh
}${
data
.
orderInfo
}${
contentZh
}
`
;
this
.
currData
=
{
billContent
,
orderNo
:
this
.
currR
ow
.
orderNo
,
orderNo
:
r
ow
.
orderNo
,
};
}).
catch
(()
=>
{
throw
new
Error
(
'
制作提单失败
'
)
}).
finally
(()
=>
{
loading
.
close
()
});
},
getBill
(
row
)
{
...
...
src/views/ecw/box/ladingBill/makeLadingBill.vue
View file @
5a76222e
...
...
@@ -63,7 +63,7 @@ export default {
currData
:
Object
,
currRow
:
Object
,
dialogCfg
:
Object
,
selfNo
:
String
selfNo
:
String
,
},
data
()
{
return
{
...
...
src/views/ecw/box/ladingBill/previewBill.vue
View file @
5a76222e
...
...
@@ -4,7 +4,7 @@
<el-row
v-if=
"currRow.status === 2 && type === 'previewBill'"
style=
"text-align: center;"
>
<el-button
type=
"primary"
@
click=
"download"
>
{{
$t
(
'
下载
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"print"
>
{{
$t
(
'
打印
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"
createPdf
"
>
{{
$t
(
'
刷新提单文件
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"
update
"
>
{{
$t
(
'
刷新提单文件
'
)
}}
</el-button>
</el-row>
</el-row>
</
template
>
...
...
@@ -16,6 +16,7 @@ import FileSaver from "file-saver";
import
html2canvas
from
'
html2canvas
'
;
import
{
jsPDF
}
from
"
jspdf
"
;
import
{
uploadFile
}
from
'
@/api/infra/file
'
import
{
updateAirBill
}
from
"
@/api/ecw/box
"
;
export
default
{
name
:
"
previewBill
"
,
...
...
@@ -23,8 +24,22 @@ export default {
contentHtml
:
String
,
currRow
:
Object
,
type
:
String
,
// 是否是空运
air
:
Boolean
,
},
methods
:
{
// 刷新提单
update
(){
if
(
this
.
air
){
let
loading
=
this
.
$loading
()
return
updateAirBill
(
this
.
currRow
.
orderId
).
then
(
res
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
刷新成功
'
))
}).
finally
(()
=>
{
loading
.
close
()
})
}
this
.
createPdf
()
},
download
()
{
_BOX
[
"
downloadBillService
"
]({
id
:
this
.
currRow
.
id
}).
then
((
res
)
=>
{
if
(
res
.
data
&&
res
.
data
.
imgUrl
)
{
...
...
@@ -46,9 +61,9 @@ export default {
}
const
_left
=
(
595.28
-
_w
)
/
2
;
doc
.
addImage
(
canvas
,
'
PNG
'
,
_left
,
0
,
_w
,
_h
,
''
,
'
FAST
'
);
return
_BOX
[
"
downloadBillService
"
]({
id
:
this
.
currRow
.
id
})
}).
then
(
res
=>
{
let
form
=
new
FormData
()
let
pathname
=
(
new
URL
(
res
.
data
.
imgUrl
)).
pathname
...
...
src/views/ecw/box/queryAir.vue
View file @
5a76222e
...
...
@@ -108,7 +108,7 @@
<el-table-column
prop=
""
:label=
"$t('操作')"
align=
"center"
width=
"120px"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
:disabled=
"scope.row.abnormalDealStatus === 1"
@
click=
"()=>updateStatus('single', scope.row)"
>
{{
$t
(
'
更新状态
'
)
}}
</el-button>
<el-button
type=
"primary"
size=
"small"
:disabled=
"shipmentObj.clStatus==132|| (shipmentObj.clearanceInfo == null) || (shipmentObj.clearanceInfo&&shipmentObj.clearanceInfo.clearanceOrder
Back
List.findIndex(ff=>ff.orderId == scope.row.orderId) == -1)"
@
click=
"()=>cancleClear(scope.row)"
>
{{
$t
(
'
撤销清关申请
'
)
}}
</el-button>
<el-button
type=
"primary"
size=
"small"
:disabled=
"shipmentObj.clStatus==132|| (shipmentObj.clearanceInfo == null) || (shipmentObj.clearanceInfo&&shipmentObj.clearanceInfo.clearanceOrderList.findIndex(ff=>ff.orderId == scope.row.orderId) == -1)"
@
click=
"()=>cancleClear(scope.row)"
>
{{
$t
(
'
撤销清关申请
'
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
src/views/ecw/box/shippingAir/nodePage/arrival.vue
View file @
5a76222e
...
...
@@ -160,7 +160,7 @@ export default {
this
.
$set
(
this
.
airArrivalInfo
,
'
arriveOrderIdList
'
,
[])
this
.
arrivalOrderList
=
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
?
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
:
[]
shipmentOrderList
(
this
.
$attrs
.
shipmentObj
.
id
).
then
((
r
)
=>
{
this
.
orderList
=
r
.
data
this
.
orderList
=
r
.
data
??
[]
})
},
computed
:
{
...
...
@@ -243,7 +243,9 @@ export default {
this
.
selectOrders
=
[]
this
.
selectOrders
.
push
(
val
)
let
arr
=
this
.
arrivalOrderList
.
find
((
item
)
=>
item
.
orderId
==
val
.
orderId
)
console
.
log
(
arr
,
'
arr
'
);
if
(
arr
)
{
console
.
log
(
formatDate
(
arr
.
actSecondTime
),
arr
.
actSecondTime
);
this
.
$set
(
this
.
airArrivalInfo
,
'
actSecondTime
'
,
formatDate
(
arr
.
actSecondTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
estTime
'
,
formatDate
(
arr
.
estTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
actTime
'
,
formatDate
(
arr
.
actTime
))
...
...
src/views/ecw/box/shippingAir/nodePage/cabinet/splitOrder.vue
View file @
5a76222e
...
...
@@ -638,7 +638,7 @@ export default {
removeShop
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
this
.
$t
(
"
是否移除货物吗?
"
)).
then
(
function
()
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
deleteSplitItem
(
id
,
true
).
then
((
res
)
=>
{
that
.
$message
.
success
(
that
.
$t
(
"
移除成功
"
));
that
.
querySplitGoods
();
});
...
...
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
View file @
5a76222e
...
...
@@ -118,7 +118,7 @@ import dayjs from 'dayjs'
import
{
clearanceCreate
}
from
'
@/api/ecw/boxSea
'
import
{
shipmentOrderList
}
from
'
@/api/ecw/boxAir
'
import
{
formatDateStr
,
serviceMsg
,
formatDate
}
from
'
../utils
'
import
{
upd
ateOrderArrival
}
from
'
@/api/ecw/boxAir
'
import
{
cre
ateOrderArrival
}
from
'
@/api/ecw/boxAir
'
/**
* 清关
...
...
@@ -173,7 +173,7 @@ export default {
if
(
typeof
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
?.
arrivalOrderList
!=
'
undefined
'
&&
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
)
this
.
arrivalOrderList
=
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
if
(
typeof
this
.
$attrs
.
shipmentObj
.
clearanceInfo
?.
clearanceOrderList
!=
'
undefined
'
&&
this
.
$attrs
.
shipmentObj
.
clearanceInfo
.
clearanceOrderList
)
this
.
clearanceOrderList
=
this
.
$attrs
.
shipmentObj
.
clearanceInfo
.
clearanceOrderList
shipmentOrderList
(
this
.
$attrs
.
shipmentObj
.
id
).
then
((
r
)
=>
{
this
.
orderList
=
r
.
data
this
.
orderList
=
r
.
data
??
[]
})
},
watch
:
{
...
...
@@ -339,10 +339,12 @@ export default {
if
(
this
.
cusClearanceObj
.
clearanceType
==
1
)
{
this
.
$refs
[
'
airArrivalForm
'
].
validate
((
arrvalid
)
=>
{
if
(
arrvalid
)
{
upd
ateOrderArrival
({
cre
ateOrderArrival
({
...
this
.
airArrivalInfo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
orderIdList
:
this
.
cusClearanceObj
.
clearanceOrderIdList
arriveOrderIdList
:
this
.
cusClearanceObj
.
clearanceOrderIdList
,
arriveType
:
1
,
operateType
:
2
}).
then
(()
=>
{
clearanceCreate
({
...
this
.
cusClearanceObj
,
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/index.vue
View file @
5a76222e
...
...
@@ -38,15 +38,19 @@
<el-row
style=
"margin-top: 5px"
>
<el-table
border
:data=
"pagList"
max-height=
"600px"
>
<el-table-column
align=
"center"
:label=
"$t('序号')"
width=
"50"
type=
"index"
/>
<el-table-column
:label=
"$t('箱号')"
align=
"center"
prop=
"pkgNum"
/>
<el-table-column
:label=
"$t('箱号')"
align=
"center"
prop=
"pkgNum"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"showPageOrder(scope.row)"
>
{{
scope
.
row
.
pkgNum
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('尺寸')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pkgLength
}}
*
{{
scope
.
row
.
pkgWidth
}}
*
{{
scope
.
row
.
pkgHight
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('订单数')"
align=
"center"
prop=
"orderCount"
/>
<el-table-column
:label=
"$t('箱数')"
align=
"center"
prop=
"sumNum"
/>
<el-table-column
:label=
"$t('
入仓
体积')"
align=
"center"
prop=
"sumVolume"
/>
<el-table-column
:label=
"$t('
入仓
重量')"
align=
"center"
prop=
"sumWeight"
/>
<el-table-column
:label=
"$t('
入仓
数量(个)')"
align=
"center"
prop=
"sumQuantity"
/>
<el-table-column
:label=
"$t('体积')"
align=
"center"
prop=
"sumVolume"
/>
<el-table-column
:label=
"$t('重量')"
align=
"center"
prop=
"sumWeight"
/>
<el-table-column
:label=
"$t('数量(个)')"
align=
"center"
prop=
"sumQuantity"
/>
<el-table-column
:label=
"$t('状态')"
align=
"center"
prop=
"tallyStatus"
>
<
template
slot-scope=
"scope"
>
{{
statusData
[
scope
.
row
.
status
]
}}
...
...
@@ -118,6 +122,16 @@
<print-tag
v-if=
"printdialogVisible"
:tagData=
"tagData"
/>
</el-dialog>
<!-- 查看已装箱订单 -->
<el-dialog
:title=
"showPageTitle"
:visible.sync=
"showPagedialogVisible"
:fullscreen=
"true"
:modal-append-to-body=
"false"
append-to-body
@
close=
"pkgPageType=0"
>
<div
class=
"flex"
>
<el-radio-group
v-model=
"pkgPageType"
>
<el-radio-button
:label=
"2"
>
{{ $t('已装箱列表') }}
</el-radio-button>
</el-radio-group>
</div>
<pkg-page
:pkgData=
"showPkgData"
:shipmentObj=
"shipmentObj"
flag=
"show"
@
closeDialog=
"closeDialog"
@
reload=
"getList"
/>
</el-dialog>
<el-row
style=
"margin-top: 15px"
class=
"operate-button"
>
<el-button
:disabled=
"shipmentObj.approvaling"
size=
"small"
type=
"primary"
@
click=
"finish"
>
{{ $t('完成') }}
</el-button>
<el-button
size=
"small"
@
click=
"$emit('closeDialog')"
>
{{ $t('取消') }}
</el-button>
...
...
@@ -186,7 +200,10 @@ export default {
printdialogVisible
:
false
,
tagData
:
{},
// 是否显示补单弹层
showPackDialog
:
false
showPackDialog
:
false
,
showPagedialogVisible
:
false
,
showPageTitle
:
''
,
showPkgData
:
{}
}
},
created
()
{
...
...
@@ -260,6 +277,11 @@ export default {
this
.
pkgPageTitle
=
this
.
$t
(
'
合包箱号:
'
)
+
row
.
pkgNum
this
.
pkgData
=
row
},
showPageOrder
(
row
)
{
this
.
showPagedialogVisible
=
true
this
.
showPageTitle
=
this
.
$t
(
'
合包箱号:
'
)
+
row
.
pkgNum
this
.
showPkgData
=
row
},
printTag
(
id
)
{
getMergeTagById
(
id
).
then
(
res
=>
{
this
.
tagData
=
res
.
data
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
View file @
5a76222e
<
template
>
<div>
<el-row
style=
"margin-top: 25px"
>
<el-row>
<el-row
v-if=
"flag == 'edit'"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"removeBatch"
>
{{
$t
(
'
批量移出合包
'
)
}}
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"sealBox"
>
{{
$t
(
'
封箱
'
)
}}
</el-button>
</el-row>
...
...
@@ -137,6 +137,10 @@ export default {
props
:
{
pkgData
:
Object
,
shipmentObj
:
Object
,
flag
:
{
type
:
String
,
default
:
'
edit
'
}
},
components
:
{
printTag
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/supplementOrder.vue
View file @
5a76222e
...
...
@@ -18,7 +18,7 @@
</div>
<el-collapse-transition>
<div
v-if=
"item.fold === false ? true : false"
>
<div
v-for=
"(secGoog, index) in item.sectionOrderList"
:key=
"index"
class=
"part-secGoog"
>
<div
v-for=
"(secGoog, index) in item.sectionOrderList"
:key=
"index"
class=
"part-secGoog
-not
"
>
<p>
{{
secGoog
.
orderNo
}}
</p>
<p>
{{
secGoog
.
prodTitleZh
}}
</p>
<div>
...
...
@@ -567,6 +567,21 @@ export default {
}
}
}
.part-secGoog-not
{
margin-top
:
5px
;
display
:
flex
;
>
p
{
margin-right
:
10px
;
color
:
#4f9cdd
;
}
>
div
{
flex
:
1
;
>
i
{
cursor
:
pointer
;
color
:
red
;
}
}
}
}
}
.right-area
{
...
...
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
View file @
5a76222e
...
...
@@ -137,12 +137,12 @@ export default {
if
(
!
this
.
shipmentObj
.
ladingBillInfo
){
this
.
$set
(
this
.
subMaterialObj
,
'
agentId
'
,
this
.
shipmentObj
.
agentInfo
?.
agentId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
soNo
'
,
this
.
shipmentObj
.
book
Sea
Info
?.
sono
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
blMblNo
'
,
this
.
shipmentObj
.
book
SeaInfo
?.
son
o
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
soNo
'
,
this
.
shipmentObj
.
book
Air
Info
?.
sono
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
blMblNo
'
,
this
.
shipmentObj
.
book
AirInfo
?.
blN
o
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
markNo
'
,
"
N/M
"
)
this
.
$set
(
this
.
subMaterialObj
,
'
startPortId
'
,
this
.
shipmentObj
.
book
Sea
Info
?.
bigPortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
shipCompanyId
'
,
Number
(
this
.
shipmentObj
.
book
Sea
Info
?.
shipCompanyType
)
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
destPortId
'
,
this
.
shipmentObj
.
book
Sea
Info
?.
destPortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
startPortId
'
,
this
.
shipmentObj
.
book
Air
Info
?.
bigPortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
shipCompanyId
'
,
Number
(
this
.
shipmentObj
.
book
Air
Info
?.
shipCompanyType
)
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
destPortId
'
,
this
.
shipmentObj
.
book
Air
Info
?.
destPortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
kgs
'
,
this
.
shipmentObj
.
customsInfo
?.
dcGoodsWgt
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
containerSealNo
'
,(
this
.
shipmentObj
.
trailerInfo
?.
tlContainerNo
||
''
)
+
'
/
'
+
(
this
.
shipmentObj
.
trailerInfo
?.
tlStripSeal
||
'
/
'
))
this
.
subMaterialObj
.
containerSealNo
=
this
.
subMaterialObj
.
containerSealNo
.
replace
(
'
//
'
,
''
)
...
...
src/views/ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
View file @
5a76222e
...
...
@@ -305,6 +305,16 @@ export default {
},
/** 提交 */
onSubmit
()
{
// let flag = false
// this.pageData.sectionOrderList.forEach(item=>{
// if(![118428,15].includes(item.status)){
// flag = true
// }
// })
// if(flag){
// this.$message.error(this.$t("存在未到港或未清关的订单"));
// return
// }
if
(
this
.
getUnLoadNumCount
>
0
){
approvalCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
...
src/views/ecw/box/shippingAir/seaProcess.vue
View file @
5a76222e
...
...
@@ -150,7 +150,7 @@ export default {
}
}
console
.
log
(
currIndex
,
this
.
currIndex
)
if
(
currIndex
>
this
.
currIndex
)
{
if
(
currIndex
>
this
.
currIndex
&&
!
[
'
cusClearance
'
,
'
unloading
'
].
includes
(
node
.
type
)
)
{
this
.
$message
.
error
(
this
.
errorMsg
);
return
;
}
...
...
@@ -186,10 +186,6 @@ export default {
break
;
// 清关
case
"
cusClearance
"
:
if
((
!
this
.
shipmentObj
.
airArrivalInfo
||
this
.
shipmentObj
.
airArrivalInfo
.
arriveType
==
0
)
&&
this
.
shipmentObj
.
sapStatus
!=
152
){
this
.
$message
.
error
(
this
.
$t
(
"
请先完成到港操作
"
));
return
;
}
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
break
;
// AGENT
...
...
@@ -224,10 +220,6 @@ export default {
break
;
// 卸柜
case
"
unloading
"
:
if
((
!
this
.
shipmentObj
.
clearanceInfo
||
this
.
shipmentObj
.
clearanceInfo
.
clearanceType
==
0
)
&&
this
.
shipmentObj
.
clStatus
!=
132
){
this
.
$message
.
error
(
this
.
$t
(
"
请先完成清关操作
"
));
return
;
}
// 卸柜反审
const
unStatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
186
].
includes
(
unStatus
))
{
...
...
@@ -277,10 +269,6 @@ export default {
if
(
start
.
includes
(
val
[
keyName
])
&&
val
[
voName
])
{
node
.
currStatus
=
"
wait
"
;
if
(
type
===
"
arrival
"
||
type
===
"
cusClearance
"
){
++
nodeIndex
;
continue
;
}
}
if
(
wait
.
includes
(
val
[
keyName
]))
{
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
View file @
5a76222e
...
...
@@ -860,8 +860,8 @@ export default {
},
removeShop
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
this
.
$t
(
"
是否
移除货物吗?
"
)).
then
(
function
()
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
that
.
$confirm
(
this
.
$t
(
"
确定
移除货物吗?
"
)).
then
(
function
()
{
deleteSplitItem
(
id
,
true
).
then
((
res
)
=>
{
that
.
$message
.
success
(
that
.
$t
(
"
移除成功
"
));
that
.
querySplitGoods
();
});
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
View file @
5a76222e
...
...
@@ -17,7 +17,7 @@
</div>
<el-collapse-transition>
<div
v-if=
"item.fold === false ? true : false"
>
<div
v-for=
"(secGoog, index) in item.sectionOrderList"
:key=
"index"
class=
"part-secGoog"
>
<div
v-for=
"(secGoog, index) in item.sectionOrderList"
:key=
"index"
class=
"part-secGoog
-not
"
>
<p>
{{
secGoog
.
orderNo
}}
</p>
<p>
{{
secGoog
.
prodTitleZh
}}
</p>
<div>
...
...
@@ -538,6 +538,21 @@ export default {
}
}
}
.part-secGoog-not
{
margin-top
:
5px
;
display
:
flex
;
>
p
{
margin-right
:
10px
;
color
:
#4f9cdd
;
}
>
div
{
flex
:
1
;
>
i
{
cursor
:
pointer
;
color
:
red
;
}
}
}
}
}
.right-area
{
...
...
src/views/ecw/deptTarget/allAchievement.vue
View file @
5a76222e
...
...
@@ -49,12 +49,12 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"destinationId"
>
<el-select
v-model=
"queryParams.
origin
Id"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-select
v-model=
"queryParams.
startWarehouse
Id"
: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.dest
inationId
"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-select
:multiple=
"true"
v-model=
"queryParams.dest
WarehouseIdArr
"
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>
...
...
@@ -293,9 +293,14 @@
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
let
params
=
{
...
this
.
queryParams
}
if
(
params
.
destWarehouseIdArr
?.
length
){
params
.
destWarehouseIds
=
params
.
destWarehouseIdArr
?.
join
(
'
,
'
)
}
// 执行查询
allAchievementByPage
(
this
.
queryP
arams
).
then
(
response
=>
{
allAchievementByPage
(
p
arams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
myAchievementDtos
.
list
;
this
.
total
=
response
.
data
.
myAchievementDtos
.
total
;
this
.
myAchievementData
=
response
.
data
...
...
src/views/ecw/order/components/NotShipingChannel.vue
View file @
5a76222e
...
...
@@ -93,6 +93,11 @@
</
template
>
</el-table-column>
</el-table>
<el-descriptions
:colon=
"false"
style=
"margin-top:10px"
>
<el-descriptions-item
:label=
"$t('备注')"
:span=
"2"
>
{{orderExceptionData.applyNotes}}
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<
script
>
...
...
src/views/ecw/order/components/PrintWarehouseReceipt.vue
View file @
5a76222e
...
...
@@ -60,7 +60,7 @@
</td>
</tr>
</
template
>
<tr>
<tr
style=
"border-top:2px solid #000"
>
<td
style=
"text-align:center;width: 50px;"
v-if=
"!preview"
>
</td>
...
...
@@ -68,7 +68,7 @@
</td>
<td
style=
"text-align:center;padding:0 0px;border:1px dashed #ccc;"
>
合计
</td>
<td
style=
"text-align:center;padding:0 0px;border:1px dashed #ccc;"
>
{{calcTotal('cartonsNum')}}
...
...
src/views/ecw/order/components/SplitDetail.vue
View file @
5a76222e
...
...
@@ -88,8 +88,7 @@
</
template
>
<
template
v-else
>
{{
$t
(
'
全包价
'
)
}}
<el-input
v-model=
"scope.row.oneSeaFreight"
@
change=
"updateField(scope.row, 'oneSeaFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
currencyId
]
}}
{{
unitMap
[
scope
.
row
.
clearanceFreightVolume
]
}}
{{
currencyMap
[
scope
.
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
seaFreightVolume
]
}}
</
template
>
</template>
</el-table-column>
...
...
src/views/ecw/order/components/WarehouseDetail.vue
View file @
5a76222e
...
...
@@ -58,6 +58,11 @@
</image-display>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('备注')"
prop=
"remark"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
remark
}}
</
template
>
</el-table-column>
</el-table>
</el-dialog>
</template>
...
...
src/views/ecw/order/detail.vue
View file @
5a76222e
...
...
@@ -192,6 +192,12 @@
<el-descriptions-item
:label=
"$t('特殊要求备注')"
>
{{order.packageRemarks}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('目的港清关')"
>
{{['', $t('我司承接'), $t('客户自清')][order.portDestCustomsClear] || ''}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货方式')"
>
{{['', $t('多票'), $t('单票')][order.deliveryWay] || ''}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
...
...
src/views/ecw/order/edit.vue
View file @
5a76222e
...
...
@@ -223,7 +223,7 @@
{{
$t
(
'
件数
'
)
}}
<span
class=
"red"
>
*
</span>
</
template
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model.number=
"row.num"
@
keyup.native=
"checkPositiveInterge(row, 'num')
"
:disabled=
"!canAddProduct || !productEditable"
/>
<el-input
-number
:min=
"0"
:controls=
"false"
style=
"width: 65px"
v-model.number=
"row.num
"
:disabled=
"!canAddProduct || !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('包装单位')"
width=
"100px"
>
...
...
@@ -236,7 +236,7 @@
</el-table-column>
<el-table-column
:label=
"`${$t('数量')}(${$t('个')})`"
width=
"120px"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.quantity"
@
keyup.native=
"checkPositiveInterge(row, 'quantity')
"
:disabled=
"!canAddProduct || !productEditable"
/>
<el-input
-number
:min=
"1"
:step=
"1"
style=
"width: 80px;"
:controls=
"false"
v-model=
"row.quantity
"
:disabled=
"!canAddProduct || !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总体积') + '(m³)'"
width=
"120px"
>
...
...
@@ -248,7 +248,7 @@
]"
class="mb-0 mr-0"
>
<el-input
v-model=
"scope.row.volume"
:disabled=
"!canAddProduct || !productEditable
"
/>
<el-input
-number
:min=
"0"
v-model=
"scope.row.volume"
:disabled=
"!canAddProduct || !productEditable"
:controls=
"false"
style=
"width: 80px
"
/>
</el-form-item>
</
template
>
</el-table-column>
...
...
@@ -261,7 +261,7 @@
]"
class="mb-0 mr-0"
>
<el-input
v-model=
"scope.row.weight"
:disabled=
"!canAddProduct || !productEditable"
/>
<el-input
-number
:min=
"0"
:controls=
"false"
style=
"width: 80px"
v-model=
"scope.row.weight"
:disabled=
"!canAddProduct || !productEditable"
/>
</el-form-item>
</
template
>
</el-table-column>
...
...
@@ -279,7 +279,7 @@
class="mb-0 mr-0"
>
<!--input事件在快速输入的时候,可能最后拿到的结果不是最后输入的参数,所以改成在blur的时候计算-->
<el-input
v-model.number=
"scope.row.worth"
:disabled=
"!canAddProduct"
@
blur=
"calculationPrice"
type=
"number
"
/>
<el-input
-number
:min=
"0"
:controls=
"false"
style=
"width: 80px"
v-model.number=
"scope.row.worth"
:disabled=
"!canAddProduct"
@
blur=
"calculationPrice
"
/>
</el-form-item>
</
template
>
</el-table-column>
...
...
@@ -1060,8 +1060,8 @@ export default {
},
activated
(){
if
(
this
.
$route
.
query
.
id
!=
this
.
form
.
id
){
console
.
log
(
"
activated 加载订单数据
"
)
this
.
getOrder
()
console
.
log
(
"
activated 加载订单数据
"
)
this
.
getOrder
()
}
let
transportType
=
undefined
if
(
this
.
$route
.
query
.
transportType
){
...
...
@@ -1075,19 +1075,22 @@ export default {
this
.
updateChannel
=
this
.
$route
.
query
.
updateChannel
==
1
},
async
created
()
{
// 初始化自定义付款人需要在前面,否则先执行activated里的getOrder,会被覆盖
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOM_DRAWEE
).
forEach
(
item
=>
{
this
.
customDraweeList
.
push
({
label
:
item
.
label
,
// 显示文字
name
:
item
.
value
,
// key值
value
:
2
// 1 发货人,2收货人,默认收货人,可修改
})
})
this
.
productAttrList
=
(
await
getProductAttrList
()).
data
this
.
channelList
=
(
await
getChannelList
()).
data
this
.
tradeCityList
=
(
await
getTradeCityList
()).
data
this
.
currencyList
=
(
await
getCurrencyList
()).
data
this
.
unitList
=
(
await
getUnitList
()).
data
this
.
transportList
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
)
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOM_DRAWEE
).
forEach
(
item
=>
{
this
.
customDraweeList
.
push
({
label
:
item
.
label
,
// 显示文字
name
:
item
.
value
,
// key值
value
:
2
// 1 发货人,2收货人,默认收货人,可修改
})
})
if
(
this
.
$route
.
query
.
transportType
){
this
.
$set
(
this
.
form
,
'
transportId
'
,
+
this
.
$route
.
query
.
transportType
)
}
...
...
@@ -1110,11 +1113,12 @@ export default {
onTableMounted
(
e
){
// console.warn('onTableMounted', e)
},
getOrder
(){
async
getOrder
(){
if
(
this
.
form
.
orderId
==
this
.
$route
.
query
.
id
){
console
.
log
(
'
加载中或者已加载此订单数据,不重复加载
'
,
this
.
initing
,
this
.
form
.
orderId
,
this
.
$route
.
query
.
id
)
return
}
this
.
$nextTick
()
this
.
initing
=
true
getUpdateInfo
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
this
.
form
=
Object
.
assign
({},
{...
res
.
data
},
{
orderItemVOList
:
[]})
...
...
@@ -1168,9 +1172,12 @@ export default {
// 如果是自定义付款人,则需要同步具体发货人信息
if
(
this
.
form
.
drawee
==
3
){
console
.
log
(
'
同步自定义付款人信息
'
,
JSON
.
stringify
(
this
.
customDraweeList
))
this
.
customDraweeList
.
forEach
(
item
=>
{
console
.
log
(
item
.
name
,
this
.
form
.
customDraweeVOList
.
find
(
it
=>
it
.
name
==
item
.
name
)?.
value
,
item
.
value
)
item
.
value
=
this
.
form
.
customDraweeVOList
.
find
(
it
=>
it
.
name
==
item
.
name
)?.
value
||
item
.
value
})
console
.
log
(
'
同步自定义付款人信息
'
,
this
.
customDraweeList
,
this
.
form
.
customDraweeVOList
)
}
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
...
...
src/views/ecw/order/exception/index.vue
View file @
5a76222e
...
...
@@ -202,15 +202,15 @@
<el-table-column
:label=
"$t('体积/重量')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.orderType==1"
>
<span
v-if=
"scope.row.
orderS
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
v-if=
"scope.row.
s
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
v-else
>
{{
scope
.
row
.
totalVolume
+
"
m³/
"
+
scope
.
row
.
totalWeight
+
"
kg
"
}}
</span>
</div>
<el-tooltip
v-else-if=
"scope.row.orderType==2"
class=
"item"
effect=
"dark"
:content=
"(scope.row.wvolume||0)+'m³'"
placement=
"bottom"
>
<span
class=
"red"
v-if=
"scope.row.
orderS
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
class=
"red"
v-if=
"scope.row.
s
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
class=
"red"
v-else
>
{{
scope
.
row
.
totalVolume
+
"
m³/
"
+
scope
.
row
.
totalWeight
+
"
kg
"
}}
</span>
</el-tooltip>
<el-tooltip
v-else-if=
"scope.row.orderType==3"
class=
"item"
effect=
"dark"
:content=
"(scope.row.vweight||0)+'kg'"
placement=
"bottom"
>
<span
class=
"red"
v-if=
"scope.row.
orderS
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
class=
"red"
v-if=
"scope.row.
s
tatus >= 5 "
>
{{
scope
.
row
.
volume
+
"
m³/
"
+
scope
.
row
.
weight
+
"
kg
"
}}
</span>
<span
class=
"red"
v-else
>
{{
scope
.
row
.
totalVolume
+
"
m³/
"
+
scope
.
row
.
totalWeight
+
"
kg
"
}}
</span>
</el-tooltip>
</
template
>
...
...
@@ -226,10 +226,10 @@
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.isCargoControl"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('订单状态')"
align=
"center"
prop=
"
orderExceptionAmount
"
>
<
template
slot-scope=
"scope"
>
<el-table-column
:label=
"$t('订单状态')"
align=
"center"
prop=
"
statusMsg
"
>
<!--
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.orderStatus" />
</
template
>
</template>
-->
</el-table-column>
<el-table-column
:label=
"$t('异常状态')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
...
...
src/views/ecw/order/index.vue
View file @
5a76222e
...
...
@@ -172,7 +172,7 @@
</el-col>
<el-col
:span=
"15"
v-if=
"statistics"
>
<!-- 订单列表显示搜索条件对应箱数、仓库实测、收款方数、重量 -->
{{$t('合计:{totalNum}箱,{totalVolume}m³(测) {totalChargeVolume}m³(重) {totalWeight}KG', statistics)}}
{{$t('合计:{totalNum}箱,{totalVolume}m³(测) {totalChargeVolume}m³(重) {totalWeight}KG
(测), {totalChargeWeight}kg(收费)
', statistics)}}
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -396,7 +396,8 @@
'ecw:order:warehouse_exit',
'ecw:order:warehouse_adjustment',
'ecw:order:warehouse_transfer',
'ecw:order:warehouse_arrive'
'ecw:order:warehouse_arrive',
'ecw:order:stocking'
]"
>
<el-button
type=
"text"
>
{{
$t
(
'
仓库
'
)
}}
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
...
...
src/views/ecw/order/prepayDeal.vue
View file @
5a76222e
...
...
@@ -1197,12 +1197,6 @@
that
.
loading
=
true
;
getExceptionById
(
that
.
orderExceptionId
).
then
(
response
=>
{
that
.
orderExceptionData
=
response
.
data
;
// that.orderExceptionData.orderExceptionType = 'order_other_exception'
// that.orderExceptionData.orderExceptionType = 'order_miss_exception'
// that.orderExceptionData.orderExceptionType = 'not_customer_service_exception'
// that.orderExceptionData.orderExceptionType = 'not_shipping_channel_exception'
// that.orderExceptionData.orderExceptionType = 'channel_exception'
// that.orderExceptionData.orderExceptionType = 'fee_exception'
that
.
loading
=
false
;
that
.
orderId
=
response
.
data
.
orderId
that
.
getOrderData
()
...
...
@@ -1272,7 +1266,7 @@
if
(
response
.
data
.
customerId
){
this
.
getCustomerData
(
response
.
data
.
customerId
)
}
if
([
'
overweight_exception
'
,
'
not_shipping_channel_exception
'
,
'
channel_packaging_overweight_exception
'
].
indexOf
(
this
.
orderExceptionData
.
orderExceptionType
)
>-
1
){
if
([
'
overweight_exception
'
,
'
not_shipping_channel_exception
'
,
'
channel_packaging_overweight_exception
'
,
'
channel_exception
'
].
indexOf
(
this
.
orderExceptionData
.
orderExceptionType
)
>-
1
){
// this.handlerParams.channelPriceList = []
this
.
getOpenedRouterList
()
if
(
this
.
orderExceptionData
.
orderExceptionStatus
==
0
){
...
...
@@ -1286,10 +1280,11 @@
v
.
clearanceFreightVolume
=
this
.
unitList
[
1
][
'
id
'
]
}
}
)
}
else
if
(
this
.
orderExceptionData
.
orderExceptionType
==
'
line_loop_exception
'
){
this
.
getExceptionPriceList
(
'
line_loop_exception
'
,
1
)
}
}
if
(
this
.
orderExceptionData
.
orderExceptionType
==
'
line_loop_exception
'
){
this
.
getExceptionPriceList
(
'
line_loop_exception
'
,
1
)
}
if
(
this
.
handlerParams
.
orderExceptionHandlerResult
==
'
continue_channel
'
){
this
.
getExceptionPriceList
(
'
continue_channel
'
,
1
)
}
...
...
@@ -1311,6 +1306,7 @@
getOrderExcptionResult
(){
getOrderExcptionResult
({
orderExceptionId
:
this
.
orderExceptionId
}
).
then
(
res
=>
{
this
.
handlerParams
=
Object
.
assign
(
this
.
handlerParams
,
res
.
data
.
list
[
0
])
if
(
!
this
.
orderExceptionData
.
handlerTime
){
this
.
orderExceptionData
.
handlerTime
=
this
.
handlerParams
.
handlerTime
}
...
...
@@ -1654,6 +1650,7 @@
}
}
}
)
console
.
log
(
that
.
loopOrderItem
)
}
else
{
getOrderExceptionChannelPriceList
({
orderId
:
that
.
orderId
,
exceptionId
:
parseInt
(
that
.
orderExceptionId
),
exceptionResultId
:
that
.
handlerParams
.
id
}
).
then
(
res
=>
{
if
(
res
.
code
==
0
){
...
...
src/views/ecw/order/splitApply/index.vue
View file @
5a76222e
...
...
@@ -215,20 +215,25 @@
<
template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.charging != 1"
>
<div
class=
"flex"
>
{{
$t
(
'
运费
'
)
}}
<el-input
v-model=
"scope.row.oneSeaFreight"
@
change=
"updateField(scope.row, 'oneSeaFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
seaFreightVolume
]
}}
{{
$t
(
'
运费
'
)
}}
:
<template
v-if=
"scope.row.oneSeaFreight"
>
<el-input
v-model=
"scope.row.oneSeaFreight"
@
change=
"updateField(scope.row, 'oneSeaFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
seaFreightVolume
]
}}
</
template
>
<
template
v-else
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
</div>
<div
class=
"flex"
>
{{
$t
(
'
清关费
'
)
}}
<el-input
v-model=
"scope.row.oneClearanceFreight"
@
change=
"updateField(scope.row, 'oneClearanceFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
clearanceFreightVolume
]
}}
{{$t('清关费')}}:
<
template
v-if=
"scope.row.oneClearanceFreight"
>
<el-input
v-model=
"scope.row.oneClearanceFreight"
@
change=
"updateField(scope.row, 'oneClearanceFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
clearanceFreightVolume
]
}}
</
template
>
<
template
v-else
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
</div>
</template>
<
template
v-else
>
{{
$t
(
'
全包价
'
)
}}
<el-input
v-model=
"scope.row.oneSeaFreight"
@
change=
"updateField(scope.row, 'oneSeaFreight')"
size=
"mini"
style=
"width: 80px"
></el-input>
{{
currencyMap
[
scope
.
row
.
currencyId
]
}}
{{
unitMap
[
scope
.
row
.
clearanceFreightVolume
]
}}
{{
currencyMap
[
scope
.
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
scope
.
row
.
seaFreightVolume
]
}}
</
template
>
</template>
</el-table-column>
...
...
@@ -261,7 +266,7 @@
<el-form-item
:label=
"$t('运输方式')"
>
<dict-selector
:clearable=
"true"
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
@
change=
"changeTransport"
v-model=
"form.transportId"
/>
</el-form-item>
<el-form-item
:label=
"$t('出货渠道')"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<el-select
v-model=
"form.channelId"
:placeholder=
"$t('请选择出货渠道')"
:clearable=
"true"
>
<el-option
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-for=
"item in channelData"
:key=
"item.channelId"
:label=
"$l(item, 'name')"
:value=
"item.channelId"
/>
</el-select>
...
...
@@ -569,7 +574,7 @@ export default {
rules
:
{
transportId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择运输方式
"
),
trigger
:
"
change
"
}],
warehouseIds
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择目的仓库
"
),
trigger
:
"
change
"
}],
channelId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择出货渠道
"
),
trigger
:
"
change
"
}],
channelId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择出货渠道
"
),
trigger
:
"
blur
"
}],
},
// 表单校验
shopRules
:
{
...
...
@@ -941,7 +946,7 @@ export default {
if
(
!
this
.
orderData
||
!
this
.
orderData
.
orderItemVOList
||
this
.
orderData
.
length
==
0
){
return
sums
}
var
orderSum
=
0
/*
var orderSum = 0
var orderV = 0
var orderW = 0
var leviteSum = 0
...
...
@@ -956,6 +961,17 @@ export default {
leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0
});
sums[1] = this.$t('下单统计')+' '+ orderSum+' '+this.$t('箱')+' '+ orderV.toFixed(2) +' m³ ' + orderW + ' kg ' + ' '+this.$t('入仓统计:')+ leviteSum+' '+this.$t('箱')+' '+ leviteV.toFixed(2) +' m³ ' + leviteW + ' kg'
*/
sums
[
1
]
=
[
this
.
$t
(
'
下单统计
'
),
this
.
orderData
.
costVO
?.
totalNum
+
'
'
+
this
.
$t
(
'
箱
'
),
this
.
orderData
.
costVO
?.
totalVolume
+
'
m³
'
,
this
.
orderData
.
costVO
?.
totalWeight
+
'
kg
'
,
this
.
$t
(
'
入仓统计:
'
),
this
.
orderData
.
sumNum
+
'
'
+
this
.
$t
(
'
箱
'
),
this
.
orderData
.
sumVolume
+
'
m³
'
,
this
.
orderData
.
sumWeight
+
'
kg
'
].
join
(
'
'
)
return
sums
;
},
...
...
@@ -1022,29 +1038,35 @@ export default {
this.shopForm.prodTitleZh = list[0].prodTitleZh
},*/
haddleAdd
(){
let
that
=
this
if
(
!
that
.
form
.
transportId
){
that
.
$message
.
error
(
this
.
$t
(
"
请选择运输方式
"
));
return
}
if
(
!
that
.
form
.
destWarehouseId
){
that
.
$message
.
error
(
this
.
$t
(
"
请选择目的仓库
"
));
return
}
// if(!this.form.channelId){
// this.$modal.msgError("请选择出货渠道");
// }
var
params
=
{
dstWarehouseId
:
that
.
form
.
destWarehouseId
,
parentOrderId
:
that
.
orderData
.
orderId
,
parentOrderNo
:
that
.
orderData
.
orderNo
,
transportId
:
that
.
form
.
transportId
,
channelId
:
that
.
form
.
channelId
}
createSplit
(
params
).
then
(
res
=>
{
that
.
getList
()
this
.
$refs
.
formSplit
.
validate
(
valid
=>
{
console
.
log
({
valid
})
if
(
!
valid
)
{
return
;
}
let
that
=
this
if
(
!
that
.
form
.
transportId
){
that
.
$message
.
error
(
this
.
$t
(
"
请选择运输方式
"
));
return
}
if
(
!
that
.
form
.
destWarehouseId
){
that
.
$message
.
error
(
this
.
$t
(
"
请选择目的仓库
"
));
return
}
// if(!this.form.channelId){
// this.$modal.msgError("请选择出货渠道");
// }
var
params
=
{
dstWarehouseId
:
that
.
form
.
destWarehouseId
,
parentOrderId
:
that
.
orderData
.
orderId
,
parentOrderNo
:
that
.
orderData
.
orderNo
,
transportId
:
that
.
form
.
transportId
,
channelId
:
that
.
form
.
channelId
}
createSplit
(
params
).
then
(
res
=>
{
that
.
getList
()
})
that
.
open
=
false
})
that
.
open
=
false
},
/*cancel(){
this.open = false
...
...
src/views/ecw/order/stocking/index.vue
View file @
5a76222e
...
...
@@ -158,17 +158,18 @@
</el-table-column>
<el-table-column
prop=
"address"
:label=
"$t('操作')"
width=
"2
2
0"
>
:label=
"$t('操作')"
width=
"2
5
0"
>
<
template
v-slot=
"{ row, column, $index }"
>
<!--没有入仓记录的不显示打包按钮 https://zentao.test.jdshangmen.com/bug-view-5389.html-->
<el-button-group
v-if=
"orderWarehouseInList(row.orderItemId).length"
>
<template
v-if=
"wareItemPackStatus(row.orderItemId) == 1"
>
<el-button
size=
"mini"
type=
"warning"
@
click=
"noNeedPack(row)"
>
{{
$t
(
'
无需打包
'
)
}}
</el-button>
<el-button
class=
"pl-5 pr-5"
size=
"mini"
type=
"warning"
@
click=
"noNeedPack(row)"
>
{{
$t
(
'
无需打包
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"package(row, $t('打包'))"
>
{{
$t
(
'
打包
'
)
}}
</el-button>
</
template
>
<el-button
v-else
size=
"mini"
type=
"primary"
@
click=
"package(row, $t('修改打包'))"
>
{{$t('修改打包')}}
</el-button>
<el-button
class=
"pl-5 pr-5"
v-else
size=
"mini"
type=
"primary"
@
click=
"package(row, $t('修改打包'))"
>
{{$t('修改打包')}}
</el-button>
<el-button
size=
"mini"
type=
"danger"
@
click=
"rollback(row)"
>
{{$t('退仓')}}
</el-button>
<el-button
class=
"pl-5 pr-5"
size=
"mini"
type=
"info"
@
click=
"printTag"
>
{{$t('打印标签')}}
</el-button>
</el-button-group>
</template>
</el-table-column>
...
...
@@ -212,6 +213,7 @@
<div
style=
"text-align: center;margin-top: 15px"
>
<el-button
@
click=
"escapeBol = true;"
type=
"primary"
>
{{$t('转异')}}
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
{{$t('完成备货')}}
</el-button>
<el-button
type=
"info"
@
click=
"printTag"
>
{{$t('打印标签')}}
</el-button>
</div>
</el-form>
...
...
@@ -249,6 +251,7 @@
@
close=
"onPackageClose"
></new-product>
<media-dialog
v-if=
"curPictrues"
:value=
"curPictrues"
@
close=
"curPictrues=null"
></media-dialog>
<print-tag
v-if=
"showPrintTagDialog"
:order-id=
"orderId"
@
close=
"showPrintTagDialog=false"
:warehouse-in-num=
"order.sumNum"
/>
</div>
</template>
...
...
@@ -363,7 +366,9 @@ export default {
// 当前查看的影像
curPictrues
:
null
,
// 是否显示添加新品弹窗
showNewProductDialog
:
false
showNewProductDialog
:
false
,
// 是否显示打印标签弹层
showPrintTagDialog
:
false
}
},
...
...
@@ -434,9 +439,11 @@ export default {
form
.
orderId
=
this
.
orderId
form
.
manualExceptionType
=
form
.
manualExceptionType
.
join
(
'
,
'
)
finishStock
(
form
).
then
(
res
=>
{
return
this
.
$alert
(
this
.
$t
(
'
操作成功
'
))
return
this
.
$confirm
(
"
备货成功,是否需要打印标签
"
).
catch
(()
=>
{
this
.
$tab
.
closePage
()
})
}).
then
(()
=>
{
this
.
$tab
.
closePage
()
this
.
printTag
()
})
},
// 显示打包弹层
...
...
@@ -496,6 +503,9 @@ export default {
this
.
$message
.
success
(
this
.
$t
(
'
操作成功
'
))
this
.
getList
()
})
},
printTag
(){
this
.
showPrintTagDialog
=
true
}
},
watch
:
{
...
...
src/views/ecw/productPrice/batchEdit.vue
View file @
5a76222e
...
...
@@ -54,7 +54,7 @@
/
<
selector
:
disabled
=
"
index > 0
"
@
input
=
"
syncAllUnit
"
v
-
model
=
"
item.weightUnit
"
:
options
=
"
unitList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable2
class
=
"
w100
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认运费')
"
v
-
if
=
"
form.priceType != 1
"
>
<
el
-
form
-
item
:
label
=
"
$t('默认运费')
"
v
-
if
=
"
form.priceType != 1
"
:
key
=
"
`transportPrice-${index
}
`
"
>
<
inputor
default2
=
"
0
"
v
-
model
.
number
=
"
item.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
:
disabled
=
"
index > 0
"
@
input
=
"
syncAllUnit
"
v
-
model
=
"
item.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable2
class
=
"
w100
"
/>
/ <selector :disabled="index > 0" @input="syncAllUnit" v-model="item.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable2 class="w100" /
>
...
...
@@ -65,7 +65,7 @@
/ <selector :disabled="index > 0" @input="syncAllUnit" v-model="item.clearanceVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable2 class="w100" /
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认全包价')
"
v
-
if
=
"
form.priceType == 1
"
>
<
el
-
form
-
item
:
label
=
"
$t('默认全包价')
"
v
-
if
=
"
form.priceType == 1
"
:
key
=
"
`allPrice-${index
}
`
"
>
<
inputor
default2
=
"
0
"
v
-
model
.
number
=
"
item.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
:
disabled
=
"
index > 0
"
@
input
=
"
syncAllUnit
"
v
-
model
=
"
item.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable2
class
=
"
w100
"
/>
/ <selector :disabled="index > 0" @input="syncAllUnit" v-model="item.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable2 class="w100" /
>
...
...
@@ -278,9 +278,25 @@ export default {
// 判断阶梯价是否设置不完整
isStepPriceOk
(){
return
(
stepPrice
)
=>
{
console
.
log
({
stepPrice
,
startNum
:
this
.
isEmpty
(
stepPrice
.
startNum
),
endNum
:
this
.
isEmpty
(
stepPrice
.
endNum
),
allPrice
:
this
.
isEmpty
(
stepPrice
.
allPrice
),
allPriceUnit
:
this
.
isEmpty
(
stepPrice
.
allPriceUnit
),
allVolumeUnit
:
this
.
isEmpty
(
stepPrice
.
allVolumeUnit
),
transportPrice
:
this
.
isEmpty
(
stepPrice
.
transportPrice
),
transportPriceUnit
:
this
.
isEmpty
(
stepPrice
.
transportPriceUnit
),
transportVolumeUnit
:
this
.
isEmpty
(
stepPrice
.
transportVolumeUnit
),
priceType
:
this
.
form
.
priceType
}
)
if
(
this
.
isEmpty
(
stepPrice
.
startNum
)
||
this
.
isEmpty
(
stepPrice
.
endNum
))
return
false
if
(
this
.
form
.
priceType
==
1
&&
(
this
.
isEmpty
(
stepPrice
.
allPrice
)
||
this
.
isEmpty
(
stepPrice
.
allPriceUnit
)
||
this
.
isEmpty
(
stepPrice
.
allVolumeUnit
)))
return
false
else
if
(
this
.
isEmpty
(
stepPrice
.
transportPrice
)
||
this
.
isEmpty
(
stepPrice
.
transportPriceUnit
)){
// 清关费可能为0或者空
if
(
this
.
form
.
priceType
==
1
&&
(
this
.
isEmpty
(
stepPrice
.
allPrice
)
||
this
.
isEmpty
(
stepPrice
.
allPriceUnit
)
||
this
.
isEmpty
(
stepPrice
.
allVolumeUnit
))){
console
.
log
(
'
全包价设置不完整
'
)
return
false
}
else
if
(
this
.
form
.
priceType
!=
1
&&
(
this
.
isEmpty
(
stepPrice
.
transportPrice
)
||
this
.
isEmpty
(
stepPrice
.
transportPriceUnit
)
||
this
.
isEmpty
(
stepPrice
.
transportVolumeUnit
))){
// 清关费可能为0或者空
console
.
log
(
'
非全报价,未设置完整
'
)
return
false
}
return
true
...
...
@@ -323,7 +339,7 @@ export default {
'
form.needBook
'
(
val
){
if
(
val
)
this
.
$set
(
this
.
form
,
'
dayLimit
'
,
10000
)
else
delete
this
.
form
.
dayLimit
}
}
,
}
,
async
created
()
{
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
...
...
src/views/ecw/productPrice/index.vue
View file @
5a76222e
...
...
@@ -724,6 +724,12 @@ export default {
console
.
log
(
this
.
queryParams
,
'
this.queryParams
'
)
// 处理查询参数
let
params
=
{...
this
.
queryParams
}
;
if
(
this
.
type
==
'
sea
'
){
params
.
transportType
=
1
}
if
(
this
.
type
==
'
air
'
){
params
.
transportType
=
3
}
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
console
.
log
(
params
,
'
params
'
)
...
...
src/views/ecw/region/index.vue
View file @
5a76222e
...
...
@@ -102,9 +102,12 @@
<el-option
v-for=
"dict in regionTypeDatas"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('
国家代码-城市代码
')"
prop=
"labelCode"
v-if=
"form.type == '1' || form.type == '3' "
>
<el-input
v-model=
"form.labelCode"
placeholder=
"请输入
国家代码-城市
代码"
/>
<el-form-item
:label=
"$t('
海运订单国家代码-海运订单城市代码-空运订单国家代码-空运自编号国家代码,没有可填0-
')"
prop=
"labelCode"
v-if=
"form.type == '1' || form.type == '3' "
>
<el-input
v-model=
"form.labelCode"
placeholder=
"请输入
海运订单国家代码-海运订单城市代码-空运订单国家代码-空运自编号国家
代码"
/>
</el-form-item>
<el-tooltip
effect=
"dark"
:content=
"$t('海运目的国家简称-海运目的城市简称-空运订单编号目的国家简称-空运自编号目的国简称,\n注意:如果没有海运业务的城市设置,请将海运目的国家简称-海运目的城市简称设置为->0-0,前置的参数不能为空')"
placement=
"top"
>
<i
class=
"el-icon-question"
></i>
</el-tooltip>
<el-form-item
:label=
"$t('显示顺序')"
prop=
"sort"
>
<el-input
v-model=
"form.sort"
:placeholder=
"$t('请输入显示顺序')"
/>
</el-form-item>
...
...
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