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
3fd048f0
Commit
3fd048f0
authored
Oct 08, 2023
by
zhoutong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复多次到港清关
parent
f941e5a5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
125 additions
and
108 deletions
+125
-108
arrival.vue
src/views/ecw/box/shippingAir/nodePage/arrival.vue
+20
-3
cusClearance.vue
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
+105
-105
No files found.
src/views/ecw/box/shippingAir/nodePage/arrival.vue
View file @
3fd048f0
...
...
@@ -16,6 +16,7 @@
reserve-keyword
:filter-method=
"filterOrder"
:placeholder=
"$t('请输入订单号、提单号、唛头')"
@
change=
"selectOrderId"
>
<el-option
v-for=
"(item) in statusOrderList"
...
...
@@ -60,7 +61,7 @@ import regError from "../../regError";
import
dayjs
from
"
dayjs
"
;
import
{
arrivalCreate
}
from
"
@/api/ecw/boxSeaAir
"
;
import
{
shipmentOrderList
}
from
"
@/api/ecw/boxAir
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
import
{
formatDateStr
,
serviceMsg
,
formatDate
}
from
"
../utils
"
;
/**
* 到港
...
...
@@ -106,6 +107,7 @@ export default {
dtRealHeadTimeFlag
:
false
,
orderList
:
[],
orderListFilter
:
[],
arrivalOrderList
:
[]
};
},
created
()
{
...
...
@@ -121,7 +123,8 @@ export default {
this
.
dtRealHeadTimeFlag
=
true
}
if
(
!
this
.
airArrivalInfo
.
arriveType
)
this
.
$set
(
this
.
airArrivalInfo
,
'
arriveType
'
,
0
)
if
(
this
.
airArrivalInfo
.
arrivalOrderList
)
this
.
$set
(
this
.
airArrivalInfo
,
'
arriveOrderIdList
'
,
this
.
airArrivalInfo
.
arrivalOrderList
.
map
(
item
=>
{
return
item
.
orderId
}))
if
(
this
.
airArrivalInfo
.
arrivalOrderList
)
this
.
$set
(
this
.
airArrivalInfo
,
'
arriveOrderIdList
'
,[])
if
(
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
)
this
.
arrivalOrderList
=
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
shipmentOrderList
(
this
.
$attrs
.
shipmentObj
.
id
).
then
(
r
=>
{
this
.
orderList
=
r
.
data
this
.
orderListFilter
=
r
.
data
...
...
@@ -137,7 +140,7 @@ export default {
tidanNo
:
item
.
tidanNo
,
marks
:
item
.
marks
,
}
let
index
=
this
.
a
irArrivalInfo
.
arrivalOrderLis
?
this
.
airArrivalInfo
.
arrivalOrderList
.
findIndex
(
p
=>
p
.
orderId
==
item
.
orderId
):
-
1
let
index
=
this
.
a
rrivalOrderList
.
findIndex
(
p
=>
p
.
orderId
==
item
.
orderId
)
if
(
index
!=
-
1
){
json
.
arrival
=
this
.
$t
(
'
已到港
'
)
}
else
{
...
...
@@ -177,6 +180,20 @@ export default {
this
.
orderListFilter
=
this
.
orderList
}
},
selectOrderId
(
val
)
{
if
(
val
.
length
==
1
)
{
let
arr
=
this
.
arrivalOrderList
.
find
((
item
)
=>
item
.
orderId
==
val
[
0
])
if
(
arr
)
{
this
.
$set
(
this
.
airArrivalInfo
,
'
actSecondTime
'
,
formatDate
(
arr
.
actSecondTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
estTime
'
,
formatDate
(
arr
.
estTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
actTime
'
,
formatDate
(
arr
.
actTime
))
}
}
else
{
this
.
$set
(
this
.
airArrivalInfo
,
'
actSecondTime
'
,
null
)
this
.
$set
(
this
.
airArrivalInfo
,
'
estTime
'
,
null
)
this
.
$set
(
this
.
airArrivalInfo
,
'
actTime
'
,
null
)
}
},
regCloseDialog
(
type
)
{
this
.
dialogVisible
=
false
;
if
(
type
===
"
error
"
)
{
...
...
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
View file @
3fd048f0
...
...
@@ -8,80 +8,65 @@
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"$t('选择订单')"
prop=
"clearanceOrderIdList"
v-show=
"cusClearanceObj.clearanceType == 1"
>
<el-select
v-model=
"cusClearanceObj.clearanceOrderIdList"
multiple
filterable
clearable
reserve-keyword
:filter-method=
"filterOrder"
:placeholder=
"$t('请输入订单号、提单号、唛头')"
>
<el-option
v-for=
"(item) in statusOrderList"
:key=
"item.orderId"
:label=
"item.orderNo+' '+item.arrival"
:value=
"item.orderId"
>
</el-option>
<el-select
v-model=
"cusClearanceObj.clearanceOrderIdList"
multiple
filterable
clearable
reserve-keyword
:filter-method=
"filterOrder"
:placeholder=
"$t('请输入订单号、提单号、唛头')"
@
change=
"selectOrderId"
>
<el-option
v-for=
"item in statusOrderList"
:key=
"item.orderId"
:label=
"item.orderNo + ' ' + item.arrival"
:value=
"item.orderId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('已清关订单')"
v-show=
"cusClearanceObj.clearanceType == 1"
>
<span
v-for=
"order in cusClearanceObj.clearanceOrderList"
:key=
"order.id"
>
{{
order
.
orderNo
}}
</span>
<span
v-for=
"order in cusClearanceObj.clearanceOrderList"
:key=
"order.id"
>
{{
order
.
orderNo
}}
</span>
</el-form-item>
<
el-card
v-for=
"order in cusClearanceObj.clearanceOrderIdList"
:key=
"order"
style=
"margin: 20px;
"
>
<el-form-item
v-if=
"cusClearanceObj.clearanceType==1"
:label=
"$t('订单号')
"
>
{{
arrivalOrderList
.
find
(
item
=>
item
.
orderId
==
order
).
orderNo
}}
<
div
v-if=
"cusClearanceObj.clearanceOrderIdList.length > 0
"
>
<el-form-item
:label=
"$t('实际二程起飞时间')"
prop=
"actSecondTime
"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"airArrivalInfo.actSecondTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
v-if=
"cusClearanceObj.clearanceType==1"
:label=
"$t('实际二程起飞时间')"
prop=
"actSecond
Time"
>
{{
formatDate
(
arrivalOrderList
.
find
(
item
=>
item
.
orderId
==
order
).
actSecondTime
)
}}
<el-form-item
:label=
"$t('预计到港时间')"
prop=
"est
Time"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"airArrivalInfo.estTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
v-if=
"cusClearanceObj.clearanceType==1"
:label=
"$t('预计到港时间')"
prop=
"es
tTime"
>
{{
formatDate
(
arrivalOrderList
.
find
(
item
=>
item
.
orderId
==
order
).
estTime
)
}}
<el-form-item
:label=
"$t('实际到港时间')"
prop=
"ac
tTime"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"airArrivalInfo.actTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
v-if=
"cusClearanceObj.clearanceType==1"
:label=
"$t('实际到港时间')"
prop=
"actTime"
>
{{
formatDate
(
arrivalOrderList
.
find
(
item
=>
item
.
orderId
==
order
).
actTime
)
}}
</el-form-item>
</el-card>
</div>
<el-form-item
:label=
"$t('预计清关时间')"
prop=
"clEstTime"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"cusClearanceObj.clEstTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('清关时间')"
prop=
"clClearTime"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"cusClearanceObj.clClearTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<p
class=
"message-area"
v-show=
"showMsg"
>
{{
$t
(
'
清关时间与预计时间不符,如有异常请登记
'
)
}}
</p>
<p
class=
"message-area"
v-show=
"showMsg"
>
{{
$t
(
'
清关时间与预计时间不符,如有异常请登记
'
)
}}
</p>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
{{
$t
(
'
保存
'
)
}}
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
{{
$t
(
'
提交
'
)
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{
$t
(
'
关闭
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"exceptionReg"
:disabled=
"!showMsg"
>
{{
$t
(
'
异常登记
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
{{
$t
(
'
保存
'
)
}}
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
{{
$t
(
'
提交
'
)
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{
$t
(
'
关闭
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"exceptionReg"
:disabled=
"!showMsg"
>
{{
$t
(
'
异常登记
'
)
}}
</el-button>
</el-row>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
:title=
"$t('票异常')"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<el-dialog
custom-class=
"shipping-dialog"
:title=
"$t('票异常')"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
"false"
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
<
script
>
import
regError
from
"
../../regError
"
;
import
dayjs
from
"
dayjs
"
;
import
{
clearanceCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
shipmentOrderList
}
from
"
@/api/ecw/boxAir
"
;
import
{
formatDateStr
,
serviceMsg
,
formatDate
}
from
"
../utils
"
;
import
regError
from
'
../../regError
'
import
dayjs
from
'
dayjs
'
import
{
clearanceCreate
}
from
'
@/api/ecw/boxSea
'
import
{
shipmentOrderList
}
from
'
@/api/ecw/boxAir
'
import
{
formatDateStr
,
serviceMsg
,
formatDate
}
from
'
../utils
'
import
{
updateOrderArrival
}
from
"
@/api/ecw/boxAir
"
;
/**
* 清关
*/
export
default
{
name
:
"
cusClearance
"
,
name
:
'
cusClearance
'
,
inheritAttrs
:
false
,
components
:
{
regError
,
regError
},
data
()
{
return
{
...
...
@@ -89,12 +74,8 @@ export default {
cusClearanceObj
:
{},
// 校验
rules
:
{
clEstTime
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
必填
"
),
trigger
:
"
change
"
},
],
clClearTime
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
必填
"
),
trigger
:
"
change
"
},
],
clEstTime
:
[{
required
:
true
,
message
:
this
.
$t
(
'
必填
'
),
trigger
:
'
change
'
}],
clClearTime
:
[{
required
:
true
,
message
:
this
.
$t
(
'
必填
'
),
trigger
:
'
change
'
}]
},
// 弹窗配置
dialogVisible
:
false
,
...
...
@@ -102,47 +83,48 @@ export default {
showMsg
:
false
,
orderList
:
[],
orderListFilter
:
[],
arrivalOrderList
:
[]
};
arrivalOrderList
:
[],
airArrivalInfo
:
{}
}
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
}
;
oldData
=
formatDateStr
(
oldData
,
[
"
clEstTime
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
clClearTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
this
.
cusClearanceObj
=
oldData
;
if
(
!
this
.
cusClearanceObj
.
clearanceType
)
this
.
$set
(
this
.
cusClearanceObj
,
'
clearanceType
'
,
0
)
if
(
this
.
cusClearanceObj
.
clearanceOrderList
)
this
.
$set
(
this
.
cusClearanceObj
,
'
clearanceOrderIdList
'
,
this
.
cusClearanceObj
.
clearanceOrderList
.
map
(
item
=>
{
return
item
.
orderId
})
)
this
.
arrivalOrderList
=
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
shipmentOrderList
(
this
.
$attrs
.
shipmentObj
.
id
).
then
(
r
=>
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
}
oldData
=
formatDateStr
(
oldData
,
[
'
clEstTime
'
])
oldData
=
formatDateStr
(
oldData
,
[
'
clClearTime
'
],
'
YYYY-MM-DD HH:mm:ss
'
)
this
.
cusClearanceObj
=
oldData
if
(
!
this
.
cusClearanceObj
.
clearanceType
)
this
.
$set
(
this
.
cusClearanceObj
,
'
clearanceType
'
,
0
)
if
(
this
.
cusClearanceObj
.
clearanceOrderList
)
this
.
$set
(
this
.
cusClearanceObj
,
'
clearanceOrderIdList
'
,
[]
)
if
(
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
)
this
.
arrivalOrderList
=
this
.
$attrs
.
shipmentObj
.
airArrivalInfo
.
arrivalOrderList
shipmentOrderList
(
this
.
$attrs
.
shipmentObj
.
id
).
then
(
(
r
)
=>
{
this
.
orderList
=
r
.
data
this
.
orderListFilter
=
r
.
data
})
},
watch
:
{
// 预计清关时间
"
cusClearanceObj.clEstTime
"
(
val
)
{
this
.
compareDate
(
val
,
this
.
cusClearanceObj
.
clClearTime
)
;
'
cusClearanceObj.clEstTime
'
(
val
)
{
this
.
compareDate
(
val
,
this
.
cusClearanceObj
.
clClearTime
)
},
// 清关时间
"
cusClearanceObj.clClearTime
"
(
val
)
{
this
.
compareDate
(
this
.
cusClearanceObj
.
clEstTime
,
val
)
;
}
,
'
cusClearanceObj.clClearTime
'
(
val
)
{
this
.
compareDate
(
this
.
cusClearanceObj
.
clEstTime
,
val
)
}
},
computed
:
{
statusOrderList
(){
statusOrderList
()
{
let
data
=
[]
this
.
orderListFilter
.
forEach
(
item
=>
{
this
.
orderListFilter
.
forEach
(
(
item
)
=>
{
let
json
=
{
orderId
:
item
.
orderId
,
orderNo
:
item
.
orderNo
,
tidanNo
:
item
.
tidanNo
,
marks
:
item
.
marks
,
}
let
index
=
this
.
cusClearanceObj
.
clearanceOrderList
?
this
.
cusClearanceObj
.
clearanceOrderList
.
findIndex
(
p
=>
p
.
orderId
==
item
.
orderId
):
-
1
if
(
index
!=
-
1
)
{
orderId
:
item
.
orderId
,
orderNo
:
item
.
orderNo
,
tidanNo
:
item
.
tidanNo
,
marks
:
item
.
marks
}
let
index
=
this
.
cusClearanceObj
.
clearanceOrderList
?
this
.
cusClearanceObj
.
clearanceOrderList
.
findIndex
((
p
)
=>
p
.
orderId
==
item
.
orderId
)
:
-
1
if
(
index
!=
-
1
)
{
json
.
arrival
=
this
.
$t
(
'
已清关
'
)
}
else
{
}
else
{
json
.
arrival
=
this
.
$t
(
'
未清关
'
)
}
data
.
push
(
json
)
...
...
@@ -152,63 +134,81 @@ export default {
},
methods
:
{
formatDate
,
filterOrder
(
val
){
if
(
val
!=
''
)
{
this
.
orderListFilter
=
this
.
orderList
.
filter
(
item
=>
{
filterOrder
(
val
)
{
if
(
val
!=
''
)
{
this
.
orderListFilter
=
this
.
orderList
.
filter
(
(
item
)
=>
{
return
item
.
orderNo
.
indexOf
(
val
)
>
-
1
||
item
.
tidanNo
.
indexOf
(
val
)
>
-
1
||
item
.
marks
.
indexOf
(
val
)
>
-
1
})
}
else
{
}
else
{
this
.
orderListFilter
=
this
.
orderList
}
},
selectOrderId
(
val
)
{
if
(
val
.
length
==
1
)
{
let
arr
=
this
.
arrivalOrderList
.
find
((
item
)
=>
item
.
orderId
==
val
[
0
])
if
(
arr
)
{
this
.
$set
(
this
.
airArrivalInfo
,
'
actSecondTime
'
,
formatDate
(
arr
.
actSecondTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
estTime
'
,
formatDate
(
arr
.
estTime
))
this
.
$set
(
this
.
airArrivalInfo
,
'
actTime
'
,
formatDate
(
arr
.
actTime
))
}
}
else
{
this
.
$set
(
this
.
airArrivalInfo
,
'
actSecondTime
'
,
null
)
this
.
$set
(
this
.
airArrivalInfo
,
'
estTime
'
,
null
)
this
.
$set
(
this
.
airArrivalInfo
,
'
actTime
'
,
null
)
}
},
getClAgent
(
type
)
{
const
agentId
=
this
.
$attrs
.
shipmentObj
.
agentInfo
.
agentId
;
if
(
type
===
"
label
"
)
{
const
selected
=
this
.
$attrs
.
allSupplier
.
find
(
(
item
)
=>
item
.
id
===
agentId
);
return
this
.
$l
(
selected
,
"
company
"
)
??
agentId
;
const
agentId
=
this
.
$attrs
.
shipmentObj
.
agentInfo
.
agentId
if
(
type
===
'
label
'
)
{
const
selected
=
this
.
$attrs
.
allSupplier
.
find
((
item
)
=>
item
.
id
===
agentId
)
return
this
.
$l
(
selected
,
'
company
'
)
??
agentId
}
return
agentId
;
return
agentId
},
// 时间比较
compareDate
(
clEstTime
,
clClearTime
)
{
this
.
showMsg
=
false
;
this
.
showMsg
=
false
let
date1
=
null
,
date2
=
null
;
if
(
clEstTime
)
date1
=
dayjs
(
clEstTime
)
;
if
(
clClearTime
)
date2
=
dayjs
(
clClearTime
)
;
date2
=
null
if
(
clEstTime
)
date1
=
dayjs
(
clEstTime
)
if
(
clClearTime
)
date2
=
dayjs
(
clClearTime
)
if
(
date1
&&
date2
&&
!
date2
.
isSame
(
date1
))
{
this
.
showMsg
=
true
;
this
.
showMsg
=
true
}
},
// 异常登记
exceptionReg
()
{
this
.
dialogVisible
=
true
;
this
.
dialogVisible
=
true
},
/** 提交 */
onSubmit
(
operateType
)
{
this
.
$refs
[
"
cusClearanceForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
'
cusClearanceForm
'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
clearanceCreate
({
...
this
.
cusClearanceObj
,
updateOrderArrival
({
...
this
.
airArrivalInfo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
clAgentId
:
this
.
getClAgent
(),
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
orderIdList
:
this
.
cusClearanceObj
.
clearanceOrderIdList
}).
then
(()
=>
{
clearanceCreate
({
...
this
.
cusClearanceObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
clAgentId
:
this
.
getClAgent
(),
operateType
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
'
submit
'
)
})
})
})
}
})
;
})
},
/** 取消 */
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
}
,
}
,
}
;
this
.
$emit
(
'
closeDialog
'
,
type
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
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