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
83f7efc1
Commit
83f7efc1
authored
Oct 22, 2023
by
邓春圆
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
418e9c05
bb97a3d1
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
134 additions
and
21 deletions
+134
-21
order.js
src/api/ecw/order.js
+8
-0
Item.vue
src/layout/components/Sidebar/Item.vue
+16
-4
SidebarItem.vue
src/layout/components/Sidebar/SidebarItem.vue
+7
-2
index.vue
src/layout/components/Sidebar/index.vue
+8
-0
getters.js
src/store/getters.js
+3
-1
permission.js
src/store/modules/permission.js
+2
-1
user.js
src/store/modules/user.js
+8
-1
cancelClear.vue
src/views/ecw/box/cancelClear.vue
+17
-3
startUnloading.vue
...ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
+18
-4
seaProcess.vue
src/views/ecw/box/shippingAir/seaProcess.vue
+2
-1
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+10
-0
detail.vue
src/views/ecw/order/detail.vue
+4
-1
edit.vue
src/views/ecw/order/edit.vue
+8
-0
index.vue
src/views/ecw/order/index.vue
+18
-3
index.vue
src/views/system/menu/index.vue
+5
-0
No files found.
src/api/ecw/order.js
View file @
83f7efc1
...
...
@@ -999,3 +999,11 @@ export function exportOrderSummaryByContainerNumber(params){
responseType
:
'
blob
'
})
}
// 查询权限范围内待出订单数量
export
function
getWaitingShipmentCount
(){
return
request
({
url
:
'
/air/order/data/scope/waiting/shipment/count
'
,
method
:
'
get
'
})
}
src/layout/components/Sidebar/Item.vue
View file @
83f7efc1
...
...
@@ -10,20 +10,32 @@ export default {
title
:
{
type
:
String
,
default
:
''
}
},
badge
:
Number
},
render
(
h
,
context
)
{
const
{
icon
,
title
}
=
context
.
props
const
{
icon
,
title
,
badge
}
=
context
.
props
const
vnodes
=
[]
if
(
icon
)
{
vnodes
.
push
(
<
svg
-
icon
icon
-
class
=
{
icon
}
/>
)
vnodes
.
push
(
<
svg
-
icon
icon
-
class
=
{
icon
}
test
=
"
1
"
/>
)
}
if
(
title
)
{
vnodes
.
push
(
<
span
slot
=
'
title
'
>
{(
title
)}
<
/span>
)
vnodes
.
push
(
<
span
><
span
>
{(
title
)}
<
/span><span class="badge">{badge}</
span
>
<
/span>
)
}
return
vnodes
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.badge
:not
(
:empty
)
{
background
:
red
;
color
:
#fff
;
padding
:
2px
8px
;
font-size
:
12px
;
border-radius
:
10px
;
margin-left
:
5px
;
}
</
style
>
src/layout/components/Sidebar/SidebarItem.vue
View file @
83f7efc1
...
...
@@ -3,14 +3,14 @@
<template
v-if=
"hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"
>
<app-link
v-if=
"onlyOneChild.meta"
:to=
"resolvePath(onlyOneChild.path)"
>
<el-menu-item
:index=
"resolvePath(onlyOneChild.path)"
:class=
"
{'submenu-title-noDropdown':!isNest}">
<item
:icon=
"onlyOneChild.meta.icon||(item.meta&&item.meta.icon)"
:title=
"$l(onlyOneChild.meta, 'title')"
/>
<item
:icon=
"onlyOneChild.meta.icon||(item.meta&&item.meta.icon)"
:title=
"$l(onlyOneChild.meta, 'title')"
:badge=
"badge"
/>
</el-menu-item>
</app-link>
</
template
>
<el-submenu
v-else
ref=
"subMenu"
:index=
"resolvePath(item.path)"
popper-append-to-body
>
<
template
slot=
"title"
>
<item
v-if=
"item.meta"
:icon=
"item.meta && item.meta.icon"
:title=
"$l(item.meta, 'title')"
/>
<item
v-if=
"item.meta"
:icon=
"item.meta && item.meta.icon"
:title=
"$l(item.meta, 'title')"
:badge=
"badge"
/>
</
template
>
<sidebar-item
v-for=
"child in item.children"
...
...
@@ -54,6 +54,11 @@ export default {
this
.
onlyOneChild
=
null
return
{}
},
computed
:{
badge
(){
return
this
.
$store
.
getters
.
badgeData
[
this
.
item
.
meta
.
badgeField
]
}
},
methods
:
{
hasOneShowingChild
(
children
=
[],
parent
)
{
if
(
!
children
)
{
...
...
src/layout/components/Sidebar/index.vue
View file @
83f7efc1
...
...
@@ -28,6 +28,7 @@ import { mapGetters, mapState } from "vuex";
import
Logo
from
"
./Logo
"
;
import
SidebarItem
from
"
./SidebarItem
"
;
import
variables
from
"
@/assets/styles/variables.scss
"
;
import
{
getWaitingShipmentCount
}
from
"
@/api/ecw/order
"
;
export
default
{
components
:
{
SidebarItem
,
Logo
},
...
...
@@ -52,6 +53,13 @@ export default {
isCollapse
()
{
return
!
this
.
sidebar
.
opened
;
}
},
created
()
{
// 查询待出订单数量 waitingShipment
getWaitingShipmentCount
().
then
(
res
=>
{
console
.
log
(
'
getWaitingShipmentCount
'
,
res
.
data
)
this
.
$store
.
commit
(
'
SET_BADGE_DATA
'
,
{
waitingShipment
:
res
.
data
},
)
})
}
};
</
script
>
src/store/getters.js
View file @
83f7efc1
...
...
@@ -17,6 +17,8 @@ const getters = {
defaultRoutes
:
state
=>
state
.
permission
.
defaultRoutes
,
sidebarRouters
:
state
=>
state
.
permission
.
sidebarRouters
,
// 数据字典
dict_datas
:
state
=>
state
.
dict
.
dictDatas
dict_datas
:
state
=>
state
.
dict
.
dictDatas
,
// 角标数据
badgeData
:
state
=>
state
.
user
.
badgeData
}
export
default
getters
src/store/modules/permission.js
View file @
83f7efc1
...
...
@@ -56,7 +56,8 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
titleEn
:
route
.
nameEn
,
icon
:
route
.
icon
,
noCache
:
!
route
.
keepalive
,
// 不缓存,如果需要缓存则需要组件名称能对应上
componentPath
:
route
.
component
componentPath
:
route
.
component
,
badgeField
:
route
.
badgeField
}
route
.
hidden
=
typeof
route
.
isShowInMenuBar
!=
'
undefined
'
&&
(
route
.
isShowInMenuBar
==
'
false
'
||
!
route
.
isShowInMenuBar
)
// 处理 component 属性
...
...
src/store/modules/user.js
View file @
83f7efc1
...
...
@@ -13,7 +13,11 @@ const user = {
permissions
:
[],
notMessage
:
0
,
matterNum
:
0
,
download
:
0
download
:
0
,
badgeData
:{
// 待出订单数量
waitingShipment
:
0
}
},
mutations
:
{
...
...
@@ -43,6 +47,9 @@ const user = {
},
SET_DOWNLOAD
(
state
,
cnt
){
state
.
download
=
cnt
;
},
SET_BADGE_DATA
(
state
,
data
){
state
.
badgeData
=
Object
.
assign
({},
state
.
badgeData
,
data
)
}
},
...
...
src/views/ecw/box/cancelClear.vue
View file @
83f7efc1
...
...
@@ -3,12 +3,16 @@
<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
-
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
>
<
/el-form-item
>
<
/el-form
>
<
el
-
row
class
=
"
operate-button
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
onSubmit
"
>
{{
$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
@
click
=
"
cancel
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-button
>
<
/el-row
>
<
/div
>
...
...
@@ -34,9 +38,19 @@ export default {
applyReason
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
必填
"
),
trigger
:
"
change
"
}
,
]
}
}
,
apply
:
{
}
,
flag
:
true
}
;
}
,
created
()
{
let
orders
=
this
.
shipmentObj
.
clearanceInfo
?.
clearanceOrderBackList
let
order
=
orders
.
find
(
item
=>
item
.
orderId
==
this
.
cancelClearInfo
.
orderId
)
if
(
order
){
this
.
apply
=
order
this
.
flag
=
false
}
}
,
methods
:
{
onSubmit
()
{
this
.
$refs
[
"
arrivalForm
"
].
validate
((
valid
)
=>
{
...
...
src/views/ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
View file @
83f7efc1
...
...
@@ -19,6 +19,10 @@
{{
$t
(
'
过机重量异常
'
)
}}
:
{{
$t
(
'
过机放行-已找到重货订单
'
)
}}
:
<span
v-for=
"order in strToArray(pageData.boxCustomsBackVO.overOrders)"
:key=
"order"
>
{{
getOrders
(
order
)
}}
</span>
</p>
</el-row>
<el-row
class=
"number-area"
>
<p
class=
"label-font"
><span
style=
"color:red"
>
*
</span>
{{
$t
(
'
到仓时间
'
)
}}
:
</p>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"ulWarehouseTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-row>
<el-row
class=
"number-area"
>
<p
class=
"label-font"
>
{{
$t
(
'
自编号
'
)
}}
:
</p>
<p
class=
"label-font"
>
{{
selfNo
}}
</p>
...
...
@@ -127,12 +131,12 @@
<!-- 操作 -->
<div
v-if=
"!isUnderReview"
>
<el-button
type=
"success"
@
click=
"onSubmit"
>
{{$t('提交完成到仓审核')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('close
Start
')"
>
{{$t('返回')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('close
Dialog
')"
>
{{$t('返回')}}
</el-button>
</div>
<div
v-if=
"isUnderReview"
>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
>
{{$t('到仓审核中')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
{{$t('取消审核')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('close
Start
')"
>
{{$t('返回')}}
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('close
Dialog
')"
>
{{$t('返回')}}
</el-button>
</div>
</el-row>
...
...
@@ -193,7 +197,8 @@ export default {
totalStatistics
:
{},
},
selectedUsers
:
[],
sectionOrderList
:
[]
sectionOrderList
:
[],
ulWarehouseTime
:
null
};
},
created
()
{
...
...
@@ -265,9 +270,14 @@ export default {
this
.
$message
.
error
(
this
.
$t
(
"
请输入订单号
"
));
return
;
}
if
(
!
this
.
ulWarehouseTime
)
{
this
.
$message
.
error
(
this
.
$t
(
"
请选择到仓时间
"
));
return
;
}
batchUnload
({
orderNo
:
this
.
labelNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
unloadTime
:
this
.
ulWarehouseTime
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
labelNo
=
""
;
...
...
@@ -277,11 +287,15 @@ export default {
},
/* 一键卸柜 */
modifyAllUnload
()
{
if
(
!
this
.
ulWarehouseTime
)
{
this
.
$message
.
error
(
this
.
$t
(
"
请选择到仓时间
"
));
return
;
}
this
.
$confirm
(
this
.
$t
(
"
确认到仓?
"
),
this
.
$t
(
"
提示
"
),
{
type
:
"
warning
"
,
})
.
then
((
_
)
=>
{
allUnload
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
}).
then
((
res
)
=>
{
allUnload
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
unloadTime
:
this
.
ulWarehouseTime
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getLoadGoodsList
();
});
...
...
src/views/ecw/box/shippingAir/seaProcess.vue
View file @
83f7efc1
...
...
@@ -42,7 +42,7 @@ import arrivalWidget from "./nodePage/arrival.vue";
import
cusClearanceWidget
from
"
./nodePage/cusClearance.vue
"
;
import
twoWayTakeoffWidget
from
"
./nodePage/twoWayTakeoff.vue
"
;
import
twoWayArrivalWidget
from
"
./nodePage/twoWayArrival.vue
"
;
import
unloadingWidget
from
"
./nodePage/unloading/
index
.vue
"
;
import
unloadingWidget
from
"
./nodePage/unloading/
startUnloading
.vue
"
;
import
settlementWidget
from
"
./nodePage/settlement.vue
"
;
import
reviewWidget
from
"
./nodePage/review.vue
"
;
import
shipmentWidget
from
"
./nodePage/shipment.vue
"
;
...
...
@@ -216,6 +216,7 @@ export default {
break
;
// 卸柜
case
"
unloading
"
:
this
.
$set
(
this
.
dialogConfig
,
"
fullscreen
"
,
true
);
// 卸柜反审
const
unStatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
186
].
includes
(
unStatus
))
{
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
83f7efc1
...
...
@@ -157,6 +157,11 @@
<
/div
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('特性')
"
align
=
"
center
"
prop
=
"
attrNameList
"
width
=
"
120
"
>
<
template
slot
-
scope
=
"
scope
"
>
{{
scope
.
row
.
warehouseInAttrNameList
?
scope
.
row
.
warehouseInAttrNameList
.
toString
():
""
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('备案')
"
align
=
"
center
"
prop
=
"
productRecord
"
width
=
"
100
"
>
<
template
slot
-
scope
=
"
{row
}
"
>
<
template
v
-
if
=
"
row.brandName
"
>
{{
row
.
brandName
}}
<
/template
>
...
...
@@ -274,6 +279,11 @@
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_PRODUCT_MATERIAL
"
:
value
=
"
scope.row.material
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('特性')
"
align
=
"
center
"
prop
=
"
warehouseInAttrNameList
"
width
=
"
120
"
>
<
template
slot
-
scope
=
"
scope
"
>
{{
scope
.
row
.
warehouseInAttrNameList
?
scope
.
row
.
warehouseInAttrNameList
.
toString
():
""
}}
<
/template
>
<
/el-table-column
>
<!--
<
el
-
table
-
column
:
label
=
"
$t('操作')
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
el
-
dropdown
trigger
=
"
click
"
@
command
=
"
(command)=>handleGoods('single',scope.row,command)
"
>
...
...
src/views/ecw/order/detail.vue
View file @
83f7efc1
...
...
@@ -261,7 +261,7 @@
<el-timeline
v-if=
"order.orderTimeVOList && order.orderTimeVOList.length"
:reverse=
"true"
>
<el-timeline-item
v-for=
"(activity, index) in order.orderTimeVOList"
:key=
"index"
:timestamp=
"parseTime(activity.businessTime)"
>
{{ $l(activity, 'title') }}
<div>
{{$l(activity, 'remarks')}}
</div>
<div
:class=
"{red: !!activity.mark}"
>
{{$l(activity, 'remarks')}}
</div>
</el-timeline-item>
</el-timeline>
<el-result
v-else
icon=
"info "
:title=
"$t('暂无数据')"
:subTitle=
"$t('暂无订单动态数据')"
/>
...
...
@@ -794,6 +794,9 @@ export default {
<
/script
>
<
style
scoped
>
.
red
{
color
:
red
;
}
.
card
{
margin
-
bottom
:
20
px
;
}
...
...
src/views/ecw/order/edit.vue
View file @
83f7efc1
...
...
@@ -490,6 +490,14 @@
/>
</el-select>
</el-form-item>
<div>
<el-form-item
:label=
"$t('提单是否显示价格')"
prop=
"displayBillLadingPrice"
>
<el-radio-group
v-model=
"form.displayBillLadingPrice"
>
<el-radio
:label=
"true"
>
{{$t('显示')}}
</el-radio>
<el-radio
:label=
"false"
>
{{$t('不显示')}}
</el-radio>
</el-radio-group>
</el-form-item>
</div>
</el-card>
<el-card
class=
"mt-10"
v-if=
"transport"
>
...
...
src/views/ecw/order/index.vue
View file @
83f7efc1
...
...
@@ -124,6 +124,13 @@
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
v-if=
"channelList.length"
>
<selector
:options=
"channelList"
:label-field=
"$l('name')"
value-field=
"channelId"
v-model=
"queryParams.channelId"
></selector>
</el-form-item>
<el-form-item
:label=
"$t('特需')"
prop=
"packageType"
>
<el-select
v-model=
"queryParams.packageTypeArr"
multiple
:placeholder=
"$t('请选择')"
clearable
>
<
template
v-for=
"item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"
>
<el-option
:label=
"$l(item, 'label')"
:value=
"item.value"
></el-option>
</
template
>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
:loading=
"loading"
>
{{$t('搜索')}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{$t('重置')}}
</el-button>
...
...
@@ -561,6 +568,7 @@ import { getCurrencyPage } from "@/api/ecw/currency";
import
SplitRevoke
from
"
@/views/ecw/order/components/SplitRevoke
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
{
getDictDatas
}
from
"
@/utils/dict
"
;
export
default
{
name
:
"
EcwOrderIndex
"
,
components
:
{
...
...
@@ -602,7 +610,8 @@ export default {
// 查询参数
queryParams
:
{
page
:
1
,
rows
:
10
rows
:
10
,
packageTypeArr
:
[]
},
warehouseList
:[],
// tradeCityList: [],
...
...
@@ -734,6 +743,7 @@ export default {
}
},
methods
:
{
getDictDatas
,
// 取消拆单申请
splitRevoke
(
row
){
...
...
@@ -844,6 +854,10 @@ export default {
getList
()
{
this
.
loading
=
true
;
console
.
log
(
'
this.combinedQueryParams
'
,
this
.
combinedQueryParams
)
const
query
=
{...
this
.
combinedQueryParams
}
if
(
query
.
packageTypeArr
&&
query
.
packageTypeArr
.
length
){
query
.
packageType
=
query
.
packageTypeArr
.
join
(
'
,
'
)
}
let
func
=
getOrderPage
if
(
this
.
mine
){
func
=
getMyOrderPage
...
...
@@ -856,7 +870,7 @@ export default {
func
=
deptOrderPage
}
// 执行查询
func
(
this
.
combinedQueryParams
).
then
(
response
=>
{
func
(
query
).
then
(
response
=>
{
// 部分情况下,订单后面的操作下拉菜单会显示按钮,但是下来没有选项,在elTable组件更新的时候会导致渲染错误,所以要在更新渲染前清空一次list让table彻底重新渲染,避免部分更新导致异常
this
.
list
=
[]
this
.
$nextTick
(()
=>
{
...
...
@@ -890,7 +904,8 @@ export default {
resetQuery
()
{
this
.
queryParams
=
{
page
:
1
,
rows
:
10
rows
:
10
,
packageTypeArr
:
[]
}
this
.
noParam
.
value
=
''
this
.
prodParam
.
value
=
''
...
...
src/views/system/menu/index.vue
View file @
83f7efc1
...
...
@@ -148,6 +148,11 @@
<el-input
v-model=
"form.redirect"
:placeholder=
"$t('请输入重定向地址')"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('角标字段')"
prop=
"redirect"
>
<el-input
v-model=
"form.badgeField"
:placeholder=
"$t('不清楚请留空,已设勿改')"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
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