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
b8695a51
Commit
b8695a51
authored
Aug 12, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
1ea531c3
c3ac3e4f
Changes
36
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
704 additions
and
196 deletions
+704
-196
task.js
src/api/bpm/task.js
+8
-0
box.js
src/api/ecw/box.js
+9
-0
boxSea.js
src/api/ecw/boxSea.js
+79
-0
order.js
src/api/ecw/order.js
+8
-1
warehouseAreaPosition.js
src/api/ecw/warehouseAreaPosition.js
+6
-6
index.vue
src/components/ImageAndVideoUpload/index.vue
+10
-10
Navbar.vue
src/layout/components/Navbar.vue
+9
-1
user.js
src/store/modules/user.js
+17
-1
dict.js
src/utils/dict.js
+5
-1
detail.vue
src/views/bpm/processInstance/detail.vue
+11
-0
index.vue
src/views/ecw/bannerPop/index.vue
+2
-2
costForm.vue
src/views/ecw/box/costForm.vue
+108
-0
indexSea.vue
src/views/ecw/box/indexSea.vue
+31
-9
arrival.vue
src/views/ecw/box/shippingSea/nodePage/arrival.vue
+1
-1
index.vue
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
+1
-1
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+17
-11
supplementOrder.vue
.../ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
+11
-5
cusClearance.vue
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
+1
-1
departure.vue
src/views/ecw/box/shippingSea/nodePage/departure.vue
+1
-1
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+2
-2
preinstallReview.vue
src/views/ecw/box/shippingSea/nodePage/preinstallReview.vue
+2
-2
regError.vue
src/views/ecw/box/shippingSea/nodePage/regError.vue
+23
-10
subMaterial.vue
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
+1
-1
index.vue
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
+7
-3
startUnloading.vue
...ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
+138
-36
unloadingError.vue
...ecw/box/shippingSea/nodePage/unloading/unloadingError.vue
+27
-5
shippingSea.vue
src/views/ecw/box/shippingSea/shippingSea.vue
+3
-3
utils.js
src/views/ecw/box/shippingSea/utils.js
+66
-47
index.vue
src/views/ecw/node/index.vue
+18
-1
transferWarehousing.vue
src/views/ecw/order/transferWarehousing.vue
+17
-6
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+0
-8
index.vue
src/views/ecw/order/warehousing/index.vue
+10
-4
index.vue
src/views/ecw/warehouse/index.vue
+38
-0
index.vue
src/views/ecw/warehouseArea/index.vue
+1
-1
index.vue
src/views/ecw/warehouseAreaPosition/index.vue
+15
-15
index.vue
src/views/member/user/index.vue
+1
-1
No files found.
src/api/bpm/task.js
View file @
b8695a51
...
...
@@ -62,3 +62,11 @@ export function getTaskListByProcessInstanceId(processInstanceId) {
method
:
'
get
'
,
})
}
export
function
taskTodoCount
(){
return
request
(
{
url
:
'
/bpm/task/todo-count
'
,
method
:
'
get
'
}
)
}
src/api/ecw/box.js
View file @
b8695a51
...
...
@@ -52,3 +52,12 @@ export function exportboxExcel(query) {
responseType
:
'
blob
'
})
}
// 创建费用登记
export
function
createCost
(
data
)
{
return
request
({
url
:
'
/ecw/box-cost/create
'
,
method
:
'
post
'
,
data
:
data
})
}
src/api/ecw/boxSea.js
View file @
b8695a51
...
...
@@ -334,6 +334,21 @@ export function approvalCreate(data) {
});
}
/**
* 异常登记
*
* @export
* @param {*} data
* @return {*}
*/
export
function
abnormalCreate
(
data
)
{
return
request
({
url
:
"
/ecw/box-abnormal/create
"
,
method
:
"
post
"
,
data
,
});
}
/***************************** 预装 start **********************************/
/**
...
...
@@ -521,6 +536,70 @@ export function boxUpdate(data) {
/***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/
/**
* 获取卸柜数据
*
* @export
* @param {*} data
* @return {*}
*/
export
function
loadGoodsList
(
params
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/loadGoodsList
"
,
method
:
"
get
"
,
params
,
});
}
/**
* 批量卸柜
*
* @export
* @param {*} data
* @return {*}
*/
export
function
batchUnload
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/batchUnload
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 一键卸柜
*
* @export
* @param {*} data
* @return {*}
*/
export
function
allUnload
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/allUnload
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 异常
*
* @export
* @param {*} data
* @return {*}
*/
export
function
createError
(
data
)
{
return
request
({
url
:
"
/ecw/box-cabinet-unload-abnormal/create
"
,
method
:
"
post
"
,
data
,
});
}
/***************************** 卸柜 end **********************************/
/**
* 服务提示消息回调
*
...
...
src/api/ecw/order.js
View file @
b8695a51
...
...
@@ -294,4 +294,11 @@ export function getCargoControlOrderPage(params){
method
:
'
put
'
,
data
})
}
\ No newline at end of file
}
export
function
listByOrderId
(
params
){
return
request
({
url
:
'
/order/location/list-by-order-id
'
,
method
:
'
get
'
,
params
,
})
}
src/api/ecw/warehouseAreaPosition.js
View file @
b8695a51
import
request
from
'
@/utils/request
'
// 创建
仓
位
// 创建
储
位
export
function
createWarehouseAreaPosition
(
data
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/create
'
,
...
...
@@ -9,7 +9,7 @@ export function createWarehouseAreaPosition(data) {
})
}
// 更新
仓
位
// 更新
储
位
export
function
updateWarehouseAreaPosition
(
data
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/update
'
,
...
...
@@ -18,7 +18,7 @@ export function updateWarehouseAreaPosition(data) {
})
}
// 删除
仓
位
// 删除
储
位
export
function
deleteWarehouseAreaPosition
(
id
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/delete?id=
'
+
id
,
...
...
@@ -26,7 +26,7 @@ export function deleteWarehouseAreaPosition(id) {
})
}
// 获得
仓
位
// 获得
储
位
export
function
getWarehouseAreaPosition
(
id
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/get?id=
'
+
id
,
...
...
@@ -34,7 +34,7 @@ export function getWarehouseAreaPosition(id) {
})
}
// 获得
仓
位分页
// 获得
储
位分页
export
function
getWarehouseAreaPositionPage
(
query
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/page
'
,
...
...
@@ -43,7 +43,7 @@ export function getWarehouseAreaPositionPage(query) {
})
}
// 导出
仓
位 Excel
// 导出
储
位 Excel
export
function
exportWarehouseAreaPositionExcel
(
query
)
{
return
request
({
url
:
'
/ecw/warehouse-area-position/export-excel
'
,
...
...
src/components/ImageAndVideoUpload/index.vue
View file @
b8695a51
<
template
>
<div
class=
"component-upload-image"
>
<div
style=
"display: flex;flex-wrap: wrap "
>
<div
v-for=
"(item, index) in fileList "
:key=
"index"
style=
"height: 148px; width:148px;
border:1px solid;margin:5px 10px
"
>
<el-image
style=
"height: 148px; width:148px;"
fit=
"fit"
:src=
"item.url"
>
<div
v-for=
"(item, index) in fileList "
:key=
"index"
style=
"height: 148px; width:148px;
margin:5px 10px;position: relative;box-sizing: border-box;
"
>
<el-image
@
click=
"dialogImageUrl = item.url; dialogVisible = true; "
style=
"height: 148px; width:148px;"
fit=
"fit"
:src=
"item.url"
>
<video
controls
width=
"148px"
height=
"148px"
slot=
"error"
:src=
"item.url"
></video>
</el-image>
<div
@
click=
"handleRemove(index)"
class=
"el-icon-error"
style=
"font-size: 25px;cursor: pointer;position: absolute;right: -10px; top: -10px"
></div>
</div>
<div>
<el-upload
...
...
@@ -15,7 +16,6 @@
:before-upload=
"handleBeforeUpload"
:on-error=
"handleUploadError"
name=
"file"
:on-remove=
"handleRemove"
:show-file-list=
"false"
:headers=
"headers"
:on-preview=
"handlePictureCardPreview"
...
...
@@ -79,7 +79,7 @@ export default {
headers
:
{
Authorization
:
"
Bearer
"
+
getToken
(),
},
fileList
:
[]
fileList
:
[]
,
};
},
watch
:
{
...
...
@@ -105,7 +105,8 @@ export default {
}
},
deep
:
true
,
immediate
:
true
immediate
:
true
,
}
},
computed
:
{
...
...
@@ -116,12 +117,10 @@ export default {
},
methods
:
{
// 删除图片
handleRemove
(
file
,
fileList
)
{
const
findex
=
this
.
fileList
.
map
(
f
=>
f
.
name
).
indexOf
(
file
.
name
);
if
(
findex
>
-
1
)
{
this
.
fileList
.
splice
(
findex
,
1
);
handleRemove
(
index
)
{
this
.
fileList
.
splice
(
index
,
1
);
this
.
$emit
(
"
input
"
,
this
.
listToString
(
this
.
fileList
));
}
},
// 上传成功回调
handleUploadSuccess
(
res
)
{
...
...
@@ -202,6 +201,7 @@ export default {
opacity
:
0
;
transform
:
translateY
(
0
);
}
</
style
>
src/layout/components/Navbar.vue
View file @
b8695a51
...
...
@@ -7,8 +7,11 @@
<div
class=
"right-menu"
>
<template
v-if=
"device!=='mobile'"
>
<el-badge
:value=
"matterNum !== 0 ? matterNum : '' "
class=
"right-menu-item badge"
>
<div
@
click=
"$router.push('/bpm/task/todo')"
style=
"font-size: 28px; color: #cccccc;cursor: pointer;"
class=
"el-icon-postcard"
></div>
</el-badge>
<el-badge
:value=
"notMessage"
class=
"right-menu-item badge"
>
<el-badge
:value=
"notMessage
!== 0 ? notMessage : ''
"
class=
"right-menu-item badge"
>
<el-image
style=
"width: 22px;height: 20px;cursor: pointer;"
:src=
"unreadMessage"
@
click=
"notRead"
></el-image>
</el-badge>
...
...
@@ -81,6 +84,7 @@ export default {
},
created
()
{
this
.
$store
.
dispatch
(
'
getNotMessage
'
);
this
.
$store
.
dispatch
(
'
getToDoList
'
);
},
components
:
{
Breadcrumb
,
...
...
@@ -116,7 +120,11 @@ export default {
},
notMessage
(){
return
this
.
$store
.
state
.
user
.
notMessage
},
matterNum
(){
return
this
.
$store
.
state
.
user
.
matterNum
}
},
methods
:
{
toggleSideBar
()
{
...
...
src/store/modules/user.js
View file @
b8695a51
import
{
login
,
logout
,
getInfo
,
socialLogin
,
socialLogin2
}
from
'
@/api/login
'
import
{
getToken
,
setToken
,
removeToken
}
from
'
@/utils/auth
'
import
{
getNotReadInternalMessageTotal
}
from
'
@/api/system/internalMessage
'
import
{
getNotReadInternalMessageTotal
,}
from
'
@/api/system/internalMessage
'
import
{
taskTodoCount
}
from
"
@/api/bpm/task
"
;
const
user
=
{
state
:
{
...
...
@@ -11,6 +12,7 @@ const user = {
roles
:
[],
permissions
:
[],
notMessage
:
0
,
matterNum
:
0
},
mutations
:
{
...
...
@@ -34,6 +36,9 @@ const user = {
},
NOt_MESSAGE
:(
state
,
notMessage
)
=>
{
state
.
notMessage
=
notMessage
;
},
GET_MAATER
:(
state
,
matterNum
)
=>
{
state
.
matterNum
=
matterNum
;
}
},
...
...
@@ -163,6 +168,17 @@ const user = {
})
})
},
//获取待办事项
getToDoList
({
commit
}){
return
new
Promise
((
resolve
,
reject
)
=>
{
taskTodoCount
().
then
(
r
=>
{
commit
(
'
GET_MAATER
'
,
r
.
data
)
resolve
()
}).
catch
(
err
=>
{
reject
(
err
)
})
})
}
}
}
...
...
src/utils/dict.js
View file @
b8695a51
...
...
@@ -147,7 +147,7 @@ export const DICT_TYPE = {
ORDER_ERROR_TYPE
:
'
order_error_type
'
,
//订单异常类型
ORDER_EXCEPTION_STATUS
:
'
order_exception_status
'
,
//异常订单状态
PAYMENT_TYPE
:
'
payment_type
'
,
//收款类型
WAREHOUSE_IN_STATUS
:
'
warehouse_in_status
'
,
// 入仓状态
ORDER_WAREHOUSE_IN_STATUS
:
'
order_
warehouse_in_status
'
,
// 入仓状态
ECASH_INIT
:
'
ecash_init
'
,
//e-cash
FEE_TYPE
:
'
receivable_fee_type
'
,
...
...
@@ -162,6 +162,10 @@ export const DICT_TYPE = {
BOX_SHIPPING_CUSTOMS_TYPE
:
'
shipping_customs_type
'
,
// 报关方式
BOX_SHIPPING_DCCUSTOMS_STATUS
:
'
shipping_dcCustoms_status
'
,
// 报关放行状态
BOX_SHIPPING_CHECK_STATUS
:
'
shipping_check_status
'
,
// 查验状态
BOX_SHIPPING_UNLOADING_ERROR
:
'
shipping_unloading_error
'
,
// 卸柜异常类型
BOX_SHIPPING_PRICE_UNIT
:
'
shipping_price_unit
'
,
// 金额单位
BOX_SHIPPING_TICKET_EXCEPTION
:
'
shipping_ticket_exception
'
,
// 票异常
BOX_SHIPPING_PROCESS
:
'
shipping_process
'
,
// 海运出货流程
}
/**
...
...
src/views/bpm/processInstance/detail.vue
View file @
b8695a51
...
...
@@ -154,6 +154,11 @@ export default {
specialDiscount
,
warehouseDetails
},
computed
:{
matterNum
(){
return
this
.
$store
.
state
.
user
.
matterNum
}
},
data
()
{
return
{
// 遮罩层
...
...
@@ -390,11 +395,15 @@ export default {
}
if
(
pass
)
{
approveTask
(
data
).
then
(
response
=>
{
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
this
.
$modal
.
msgSuccess
(
"
审批通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
});
}
else
{
rejectTask
(
data
).
then
(
response
=>
{
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
this
.
$modal
.
msgSuccess
(
"
审批不通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
});
...
...
@@ -417,6 +426,8 @@ export default {
}
updateTaskAssignee
(
this
.
updateAssignee
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
转派任务成功!
"
);
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
this
.
updateAssignee
.
open
=
false
;
this
.
getDetail
();
// 获得最新详情
});
...
...
src/views/ecw/bannerPop/index.vue
View file @
b8695a51
...
...
@@ -76,8 +76,8 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<!--
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:banner-pop:update']"
>
修改
</el-button>
-->
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:banner-pop:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleStatus(scope.row)"
v-hasPermi=
"['ecw:banner-pop:update']"
>
{{
scope
.
row
.
status
==
CommonStatusEnum
.
ENABLE
?
'
禁用
'
:
'
启用
'
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
...
...
src/views/ecw/box/costForm.vue
0 → 100644
View file @
b8695a51
<
template
>
<div
class=
"app-costForm"
>
<el-form
ref=
"costForm"
:model=
"costObj"
label-width=
"80px"
>
<el-form-item
label=
"操作步骤"
>
<el-select
v-model=
"costObj.opStepType"
placeholder=
"请选择操作步骤"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PROCESS)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"费用类型"
>
<el-select
v-model=
"costObj.costType"
placeholder=
"请选择费用类型"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.FEE_TYPE)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"供应商"
>
<el-select
v-model=
"costObj.supplierId"
placeholder=
"请选择供应商"
>
<el-option
v-for=
"supplier in allSupplier"
:key=
"supplier.id"
:label=
"supplier.companyZh"
:value=
"supplier.id"
></el-option>
</el-select>
</el-form-item>
<el-row
class=
"two-element"
>
<el-form-item
label=
"金额"
>
<el-input-number
v-model=
"costObj.price"
controls-position=
"right"
:min=
"1"
></el-input-number>
</el-form-item>
<el-form-item
label=
""
label-width=
"0px"
>
<el-select
v-model=
"costObj.priceUnit"
placeholder=
"请选择单位"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PRICE_UNIT)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-form-item
label=
"备注"
>
<el-input
v-model=
"costObj.remarks"
type=
"textarea"
rows=
"2"
placeholder=
"请输入备注"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"submit"
>
确定
</el-button>
<el-button
@
click=
"$emit('closeDialog')"
>
取消
</el-button>
</div>
</div>
</
template
>
<
script
>
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
createCost
}
from
"
@/api/ecw/box
"
;
import
{
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
export
default
{
name
:
"
costForm
"
,
inheritAttrs
:
false
,
data
()
{
return
{
// 费用登记对象
costObj
:
{},
// 供应商
allSupplier
:
[],
};
},
created
()
{
// 供应商
getSupplierPage
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allSupplier
=
data
.
list
;
});
},
methods
:
{
submit
()
{
this
.
$refs
[
"
costForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
createCost
({
shipmentId
:
this
.
$attrs
.
currRow
.
id
,
...
this
.
costObj
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
}
});
},
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.app-costForm
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
}
</
style
>
src/views/ecw/box/indexSea.vue
View file @
b8695a51
...
...
@@ -108,12 +108,6 @@
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<!--
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
v-hasPermi=
"['shipment:box:query']"
>
查看
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['shipment:box:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['shipment:box:delete']"
>
删除
</el-button>
-->
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleCommand(scope.row, command)"
>
<el-button
type=
"primary"
>
操作
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
...
...
@@ -134,8 +128,9 @@
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"800px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"600px"
append-to-body
>
<
template
v-if=
"dialogType === 'edit' || dialogType === 'add'"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<el-radio-group
v-model=
"form.transportType"
>
...
...
@@ -166,6 +161,10 @@
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</
template
>
<
template
v-if=
"dialogType === 'cost'"
>
<costForm
v-if=
"open"
@
closeDialog=
"closeDialog"
:currRow=
"currRow"
/>
</
template
>
</el-dialog>
</div>
</template>
...
...
@@ -175,10 +174,13 @@
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
costForm
from
'
./costForm.vue
'
export
default
{
name
:
"
box
"
,
components
:
{},
components
:
{
costForm
},
data
()
{
return
{
dateTypes
:[
...
...
@@ -203,6 +205,10 @@
list
:
[],
// 弹出层标题
title
:
""
,
// 弹出类型
dialogType
:
""
,
// 当前行
currRow
:
{},
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
...
...
@@ -316,6 +322,7 @@
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加出货
"
;
this
.
dialogType
=
"
add
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
...
...
@@ -325,6 +332,7 @@
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改出货
"
;
this
.
dialogType
=
"
edit
"
;
});
},
/** 提交按钮 */
...
...
@@ -379,6 +387,16 @@
}).
catch
(()
=>
{
});
},
closeDialog
()
{
this
.
open
=
false
;
},
/* 费用登记 */
createCost
(
row
)
{
this
.
title
=
'
费用登记
'
this
.
dialogType
=
'
cost
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
},
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
...
...
@@ -393,6 +411,10 @@
case
'
delete
'
:
this
.
handleDelete
(
row
);
break
;
case
'
cost
'
:
this
.
createCost
(
row
);
break
;
}
},
}
...
...
src/views/ecw/box/shippingSea/nodePage/arrival.vue
View file @
b8695a51
...
...
@@ -24,7 +24,7 @@
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"票异常"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
/>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
View file @
b8695a51
...
...
@@ -37,7 +37,7 @@
<
script
>
import
startPacking
from
"
./startPacking.vue
"
;
import
{
cabinetCreate
,
serviceMsg
,
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
cabinetCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
b8695a51
...
...
@@ -38,7 +38,7 @@
<!-- 表格 -->
<el-row
class=
"table-content"
>
<el-table
:data=
"tableData.sectionOrderList"
>
<el-table
:data=
"tableData.sectionOrderList"
border
>
<el-table-column
label=
"序号"
type=
"index"
align=
"center"
width=
"50"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"orderNo"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -48,7 +48,7 @@
<el-table-column
label=
"货物信息"
align=
"center"
prop=
"goodsList"
>
<
template
slot-scope=
"scope"
>
<section
class=
"table-goodList"
>
<div
v-for=
"
item in scope.row.goodsList"
:key=
"item.orderId
"
class=
"goodList-div"
>
<div
v-for=
"
(item, index) in scope.row.goodsList"
:key=
"index
"
class=
"goodList-div"
>
<p>
品名:
{{
item
.
prodTitleZh
}}
</p>
<p>
品牌:【
<dict-tag
:type=
"DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
:value=
"item.productRecord"
/>
...
...
@@ -82,7 +82,7 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"moveOut(scope.row)"
v-if=
"!isUnderReview"
>
移出
</el-button>
<
el-button
type=
"text"
size=
"small"
disabled
>
拆单
</el-button
>
<
!--
<el-button
type=
"text"
size=
"small"
disabled
>
拆单
</el-button>
--
>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -139,12 +139,10 @@
<el-option
v-for=
"warehouse in $attrs.warehouseList"
:key=
"warehouse.id"
:label=
"warehouse.titleZh"
:value=
"warehouse.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"预计时间"
prop=
"estimatedTime"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"modifyCabinetObj.estimatedTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"预计时间"
>
{{
preinstallDate
}}
</el-form-item>
<el-form-item
label=
"选择柜型"
prop=
"cabinetId"
>
<el-select
v-model=
"modifyCabinetObj.cabinetId"
placeholder=
"请选择柜型"
>
<el-option
v-for=
"item in cabinetList"
:label=
"item.name"
:value=
"item.
name
"
:key=
"item.id"
></el-option>
<el-option
v-for=
"item in cabinetList"
:label=
"item.name"
:value=
"item.
id
"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"柜号"
>
...
...
@@ -197,6 +195,7 @@
</template>
<
script
>
import
dayjs
from
"
dayjs
"
;
import
supplementOrder
from
"
./supplementOrder.vue
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
...
...
@@ -259,7 +258,6 @@ export default {
startWarehouseId
:
[
{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
},
],
estimatedTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
cabinetId
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
qrCode
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
orderNo
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
...
...
@@ -378,7 +376,7 @@ export default {
};
if
(
type
===
"
single
"
)
{
if
(
!
this
.
qrCode
)
{
this
.
$message
.
warning
(
"
请输入二维码/条码编号
"
);
this
.
$message
.
error
(
"
请输入二维码/条码编号
"
);
return
;
}
params
.
orderNumCode
=
this
.
qrCode
;
...
...
@@ -426,6 +424,7 @@ export default {
};
boxUpdate
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
);
this
.
closeDialog
();
});
},
/* 补单完成 */
...
...
@@ -438,7 +437,7 @@ export default {
approvalCreate
({
shipmentId
:
this
.
shipmentObj
.
id
,
approvalStatus
:
0
,
approvalType
:
2
,
approvalType
:
2
,
// 封柜
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
);
});
...
...
@@ -470,7 +469,14 @@ export default {
/* 是否审核中 */
isUnderReview
()
{
const
{
currNode
}
=
this
.
$attrs
;
this
.
shipmentObj
[
currNode
.
keyName
]
===
44
?
true
:
false
;
return
this
.
shipmentObj
[
currNode
.
keyName
]
===
44
?
true
:
false
;
},
/* 预计时间 */
preinstallDate
()
{
if
(
this
.
shipmentObj
.
yzDate
)
{
return
dayjs
(
this
.
shipmentObj
.
yzDate
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
}
return
null
;
},
},
};
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
View file @
b8695a51
...
...
@@ -84,7 +84,7 @@
</el-row>
<el-collapse-transition>
<div
v-show=
"!item.fold"
>
<el-table
:data=
"item.orderItemList"
border
>
<el-table
v-loading=
"loading"
:data=
"item.orderItemList"
border
>
<el-table-column
label=
"序号"
type=
"index"
align=
"center"
width=
"50"
/>
<el-table-column
label=
"品名"
align=
"center"
prop=
"prodTitleZh"
min-width=
"500"
/>
<el-table-column
label=
"品牌"
align=
"center"
prop=
"brandType"
width=
"120"
>
...
...
@@ -147,7 +147,7 @@ import {
deleteSection
,
serviceMsg
,
createGoods
,
deleteGoods
,
remove
,
}
from
"
@/api/ecw/boxSea
"
;
/**
* 补单
...
...
@@ -173,6 +173,7 @@ export default {
// 待预装
toBePreList
:
[],
total
:
0
,
loading
:
false
,
};
},
created
()
{
...
...
@@ -204,6 +205,7 @@ export default {
},
/* 查询待预装 */
getPreLoad
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{
...
this
.
queryParams
,
...
...
@@ -211,13 +213,17 @@ export default {
preloadPage
({
...
params
,
...
this
.
pageParam
}).
then
((
res
)
=>
{
this
.
toBePreList
=
res
.
data
.
list
;
this
.
total
=
res
.
data
.
total
;
this
.
loading
=
false
;
});
},
/* 删除订单 */
deleteOrder
(
data
)
{
let
ids
=
[
data
.
orderItemId
];
deleteGoods
(
ids
).
then
((
res
)
=>
{
let
params
=
{
secId
:
this
.
partData
.
id
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
orderId
:
data
.
orderId
,
};
remove
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getSecGoods
();
});
...
...
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
View file @
b8695a51
...
...
@@ -20,7 +20,7 @@
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"票异常"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
/>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
...
...
src/views/ecw/box/shippingSea/nodePage/departure.vue
View file @
b8695a51
...
...
@@ -24,7 +24,7 @@
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"票异常"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
/>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
b8695a51
...
...
@@ -401,7 +401,7 @@ export default {
...
this
.
operatorData
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
approvalStatus
:
0
,
approvalType
:
1
,
approvalType
:
1
,
// 预装
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
,
"
submit
"
);
...
...
@@ -503,7 +503,7 @@ export default {
if (type === "selected") {
const rows = this.selectedRows[data.id] ?? [];
if (!rows.length) {
this.$message.
warning
("请选择订单");
this.$message.
error
("请选择订单");
return;
}
ids = rows.map((item) => item.orderItemId);
...
...
src/views/ecw/box/shippingSea/nodePage/preinstallReview.vue
View file @
b8695a51
...
...
@@ -35,8 +35,8 @@ export default {
approvalCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
this
.
reviewObj
,
approvalStatus
:
-
1
,
approvalType
:
4
,
approvalStatus
:
0
,
approvalType
:
4
,
// 预装反审
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
...
...
src/views/ecw/box/shippingSea/nodePage/regError.vue
View file @
b8695a51
...
...
@@ -2,30 +2,32 @@
<div>
<el-form
ref=
"errorForm"
:model=
"errorObj"
label-width=
"140px"
>
<el-form-item
label=
"操作步骤"
>
<el-select
v-model=
"errorObj.step"
placeholder=
"请选择操作步骤"
>
<el-select
v-model=
"errorObj.opStep"
placeholder=
"请选择操作步骤"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PROCESS)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"票异常"
>
<el-select
v-model=
"errorObj.ticketError"
placeholder=
"请选择票异常"
>
<el-select
v-model=
"errorObj.billAbnId"
placeholder=
"请选择票异常"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"异常情况"
>
<el-input
v-model=
"errorObj.
description
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入异常情况"
></el-input>
<el-input
v-model=
"errorObj.
abnDetail
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入异常情况"
></el-input>
</el-form-item>
<el-form-item
label=
"异常时间"
prop=
"arrivalTime"
class=
"two-element"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.
errorStart
"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.
errorend
"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.
abnStartTime
"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.
abnEndTime
"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"是否更新订单状态"
>
<el-radio-group
v-model=
"errorObj.
updateOrder
"
>
<el-radio-group
v-model=
"errorObj.
orderStatus
"
>
<el-radio
v-for=
"item in status"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"中文内容"
>
<el-input
v-model=
"errorObj.c
hContent
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入中文内容"
></el-input>
<el-input
v-model=
"errorObj.c
ontentZh
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入中文内容"
></el-input>
</el-form-item>
<el-form-item
label=
"英文内容"
>
<el-input
v-model=
"errorObj.
enContent
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入英文内容"
></el-input>
<el-input
v-model=
"errorObj.
contentEn
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入英文内容"
></el-input>
</el-form-item>
</el-form>
...
...
@@ -37,6 +39,7 @@
</
template
>
<
script
>
import
{
abnormalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
/**
* 异常登记
*/
...
...
@@ -60,13 +63,23 @@ export default {
],
};
},
watch
:
{},
created
()
{
const
{
currNode
}
=
this
.
$attrs
;
this
.
errorObj
=
{
opStep
:
currNode
.
dataKey
};
},
methods
:
{
/** 提交 */
onSubmit
()
{
this
.
$refs
[
"
errorForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
"
submit!
"
);
abnormalCreate
({
...
this
.
errorObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
}
});
},
...
...
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
View file @
b8695a51
...
...
@@ -35,7 +35,7 @@
<el-form-item
label=
"包装数量与单位"
class=
"two-element"
>
<el-input
v-model=
"subMaterialObj.packageNum"
placeholder=
"请输入包装数量"
></el-input>
<el-select
v-model=
"subMaterialObj.packageUnit"
placeholder=
"请选择单位"
>
<el-option
v-for=
"unit in units"
:key=
"unit.id"
:value=
"unit.
fuhao"
>
{{
unit
.
titleZh
}}
</el-option>
<el-option
v-for=
"unit in units"
:key=
"unit.id"
:value=
"unit.
id"
:label=
"unit.titleZh"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"毛重(KGS)"
>
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
View file @
b8695a51
...
...
@@ -20,8 +20,8 @@
</el-row>
<!-- 开始卸柜 -->
<el-dialog
title=
"开始卸柜"
:visible.sync=
"dialogVisible"
fullscreen
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<startUnloading
/>
<el-dialog
title=
"开始卸柜"
:visible.sync=
"dialogVisible"
fullscreen
:modal-append-to-body=
false
append-to-body
>
<startUnloading
v-if=
"dialogVisible"
v-bind=
"$attrs"
@
closeStart=
"closeStart"
/>
</el-dialog>
</div>
</
template
>
...
...
@@ -62,7 +62,7 @@ export default {
const
{
keyName
}
=
this
.
$attrs
.
currNode
;
const
ulStatus
=
this
.
$attrs
.
shipmentObj
[
keyName
];
if
(
ulStatus
!==
145
)
{
this
.
$message
.
warning
(
"
请先通过卸柜审批
"
);
this
.
$message
.
error
(
"
请先通过卸柜审批
"
);
return
;
}
}
...
...
@@ -82,6 +82,10 @@ export default {
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
/* 关闭弹窗 */
closeStart
()
{
this
.
dialogVisible
=
false
;
},
// 开始卸柜
startUnloading
()
{
this
.
dialogVisible
=
true
;
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
View file @
b8695a51
...
...
@@ -4,11 +4,11 @@
<!-- 自编号 -->
<el-row
class=
"number-area"
>
<p
class=
"label-font"
>
自编号:
</p>
<p
class=
"label-font"
>
CNG2510
</p>
<p
class=
"label-font"
>
{{
selfNo
}}
</p>
<el-input
v-model=
"labelNo"
placeholder=
"请输入标签号"
></el-input>
<div>
<el-button>
批量输入
</el-button>
<el-button>
一键卸柜
</el-button>
<el-button
type=
"primary"
@
click=
"modifyBatchUnload"
>
批量输入
</el-button>
<el-button
type=
"primary"
@
click=
"modifyAllUnload"
>
一键卸柜
</el-button>
</div>
</el-row>
...
...
@@ -25,24 +25,33 @@
</el-row>
<!-- 表格 -->
<el-row>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
/>
<!--
<el-table-column
label=
"订单号"
align=
"center"
prop=
"selfNo"
>
<el-row
class=
"table-area"
>
<el-table
v-loading=
"loading"
:data=
"pageData.sectionOrderList"
border
>
<el-table-column
label=
"序号"
type=
"index"
align=
"center"
width=
"50"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"orderNo"
>
<template
slot-scope=
"scope"
>
<a
href=
"javascript:void(0);"
class=
"order-href"
>
{{
scope
.
row
.
orderNo
}}
</a>
</
template
>
</el-table-column>
<el-table-column
label=
"商品信息"
align=
"center"
prop=
"goodsList"
>
<
template
slot-scope=
"scope"
>
<a
href=
"javascript:void(0);"
class=
"order-href"
@
click=
"orderClick(scope.row)"
>
{{
scope
.
row
.
selfNo
}}
</a>
<section
class=
"table-goodList"
>
<div
v-for=
"(item, index) in scope.row.goodsList"
:key=
"index"
class=
"goodList-div"
>
<p>
{{
index
+
1
}}
:
{{
item
.
prodTitleZh
}}
</p>
</div>
</section>
</
template
>
</el-table-column>
-->
<el-table-column
label=
"
订单号"
align=
"center"
prop=
"cubNo
"
/>
<el-table-column
label=
"
商品信息"
align=
"center"
prop=
"cubNo
"
/>
<el-table-column
label=
"
实装箱数"
align=
"center"
prop=
"cabinetId"
/
>
<el-table-column
label=
"卸柜箱数"
align=
"center"
prop=
"transportType"
/
>
<
el-table-column
label=
"清关状态"
align=
"center"
prop=
"squareNumber"
/
>
<el-table-column
label=
"体积"
align=
"center"
prop=
"
weight
"
/>
</el-table-column>
<el-table-column
label=
"
实装箱数"
align=
"center"
prop=
"installNum
"
/>
<el-table-column
label=
"
卸柜箱数"
align=
"center"
prop=
"unloadNum
"
/>
<el-table-column
label=
"
清关状态"
align=
"center"
prop=
""
>
<
template
slot-scope=
"scope"
>
{{
clearStatus
(
scope
.
row
)
}}
</
template
>
<
/el-table-column
>
<el-table-column
label=
"体积"
align=
"center"
prop=
"
volume
"
/>
<el-table-column
label=
"重量"
align=
"center"
prop=
"weight"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"danger"
size=
"small"
@
click=
"openError"
>
异常
</el-button>
<el-button
type=
"danger"
size=
"small"
@
click=
"openError
(scope.row)
"
>
异常
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -50,40 +59,48 @@
<!-- 总计 -->
<el-row>
<div>
<div
class=
"label-font"
>
<p>
<span>
总计:
</span>
<span>
33箱子
</span>
<span>
10.83
m3
</span>
<span>
210
kg
</span>
<span>
{{pageData.totalStatistics ? pageData.totalStatistics.num : 0}}箱
</span>
<span>
{{pageData.totalStatistics ? pageData.totalStatistics.volume : 0}}
m3
</span>
<span>
{{pageData.totalStatistics ? pageData.totalStatistics.weight : 0}}
kg
</span>
</p>
</div>
<div>
<div
class=
"label-font"
>
<p>
<span>
已卸:
</span>
<span>
16
</span>
<span>
0
</span>
</p>
</div>
</el-row>
<el-row>
<el-button
type=
"success"
>
卸柜完成
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit"
>
卸柜完成
</el-button>
</el-row>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"异常"
:visible.sync=
"dialogVisible"
width=
"
500px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<unloadingError
@
closeDialog=
"dialogVisible = false
"
/>
<el-dialog
custom-class=
"shipping-dialog"
title=
"异常"
:visible.sync=
"dialogVisible"
width=
"
600px"
:modal-append-to-body=
false
append-to-body
>
<unloadingError
v-if=
"dialogVisible"
@
closeDialog=
"closeDialog"
v-bind=
"$attrs"
:currRow=
"currRow
"
/>
</el-dialog>
</div>
</template>
<
script
>
import
unloadingError
from
"
./unloadingError.vue
"
;
import
{
loadGoodsList
,
batchUnload
,
allUnload
,
approvalCreate
,
serviceMsg
,
}
from
"
@/api/ecw/boxSea
"
;
/**
* 开始卸柜
*/
export
default
{
name
:
"
startUnloading
"
,
inheritAttrs
:
false
,
components
:
{
unloadingError
},
data
()
{
return
{
...
...
@@ -93,31 +110,102 @@ export default {
currPart
:
""
,
// loading
loading
:
false
,
//
表格
数据
list
:
[{}]
,
//
页面
数据
pageData
:
{}
,
// 弹窗配置
dialogVisible
:
false
,
// 自编号
selfNo
:
this
.
$attrs
.
shipmentObj
.
selfNo
,
// 当前行
currRow
:
{},
};
},
watch
:
{},
created
()
{
this
.
getLoadGoodsList
();
},
methods
:
{
/* 获取卸柜数据 */
getLoadGoodsList
(
params
)
{
this
.
loading
=
true
;
params
=
{
secId
:
0
,
...
params
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
};
loadGoodsList
(
params
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
pageData
=
data
;
this
.
loading
=
false
;
});
},
/* 批量输入 */
modifyBatchUnload
()
{
if
(
!
this
.
labelNo
)
{
this
.
$message
.
error
(
"
请输入标签号
"
);
return
;
}
batchUnload
({
orderNo
:
this
.
labelNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getLoadGoodsList
();
});
});
},
/* 一键卸柜 */
modifyAllUnload
()
{
this
.
$confirm
(
"
确认卸柜?
"
,
"
提示
"
,
{
type
:
"
warning
"
,
})
.
then
((
_
)
=>
{
allUnload
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getLoadGoodsList
();
});
});
})
.
catch
((
_
)
=>
{});
},
/** 提交 */
onSubmit
()
{
this
.
$refs
[
"
unloadingForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
// TODO 判断是否已经卸柜
this
.
$message
.
warning
(
"
请先通过卸柜审批
"
);
}
approvalCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
approvalStatus
:
0
,
approvalType
:
3
,
// 卸柜
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
();
});
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
this
.
$emit
(
"
closeStart
"
);
},
/* 关闭弹窗 */
closeDialog
()
{
this
.
dialogVisible
=
false
;
this
.
getLoadGoodsList
();
},
// 打开异常
openError
()
{
/* 打开异常 */
openError
(
row
)
{
this
.
currRow
=
row
;
this
.
dialogVisible
=
true
;
},
/* 清关状态 */
clearStatus
(
row
)
{
const
{
installNum
,
unloadNum
}
=
row
;
if
(
installNum
===
unloadNum
)
{
return
"
全部清关
"
;
}
if
(
installNum
>=
unloadNum
)
{
return
"
部分清关
"
;
}
if
(
unloadNum
===
0
)
{
return
"
未清关
"
;
}
},
},
};
</
script
>
...
...
@@ -147,5 +235,19 @@ export default {
width
:
200px
;
}
}
.table-area
{
.table-goodList
{
.goodList-div
{
>
p
{
text-align
:
left
;
}
>
p
:last-child
{
>
span
{
margin-right
:
5px
;
}
}
}
}
}
}
</
style
>
src/views/ecw/box/shippingSea/nodePage/unloading/unloadingError.vue
View file @
b8695a51
...
...
@@ -2,18 +2,20 @@
<div>
<el-form
ref=
"errorForm"
:model=
"errorObj"
label-width=
"100px"
>
<el-form-item
label=
"异常"
>
<el-radio-group
v-model=
"errorObj.errorStatus"
>
<el-radio-group
v-model=
"errorObj.exceptionType "
>
<el-radio
v-for=
"item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_UNLOADING_ERROR)"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"品名"
>
<el-select
v-model=
"errorObj.goodName"
placeholder=
"请选择品名"
>
<el-select
v-model=
"errorObj.productId"
placeholder=
"请选择品名"
>
<el-option
v-for=
"(item, index) in goodsList"
:key=
"index"
:value=
"item.orderItemId"
:label=
"item.prodTitleZh"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"件数"
>
<el-input-number
v-model=
"errorObj.p
ieces
"
controls-position=
"right"
:min=
"1"
></el-input-number>
<el-input-number
v-model=
"errorObj.p
roductNum
"
controls-position=
"right"
:min=
"1"
></el-input-number>
</el-form-item>
<el-form-item
label=
"异常详情"
>
<el-input
v-model=
"errorObj.
details
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入异常详情"
></el-input>
<el-input
v-model=
"errorObj.
exceptionDetail
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入异常详情"
></el-input>
</el-form-item>
</el-form>
...
...
@@ -25,15 +27,21 @@
</
template
>
<
script
>
import
{
createError
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
/**
* 卸柜异常
*/
export
default
{
name
:
"
unloadingError
"
,
inheritAttrs
:
false
,
data
()
{
const
{
currRow
}
=
this
.
$attrs
;
return
{
// 异常对象
errorObj
:
{},
// 品名
goodsList
:
currRow
.
goodsList
??
[],
};
},
methods
:
{
...
...
@@ -41,7 +49,21 @@ export default {
onSubmit
()
{
this
.
$refs
[
"
errorForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
"
submit!
"
);
const
{
productNum
=
0
}
=
this
.
errorObj
;
const
{
currRow
}
=
this
.
$attrs
;
if
(
productNum
>
currRow
.
installNum
)
{
this
.
$message
.
error
(
"
货物异常数量不能大于装柜数量
"
);
return
;
}
createError
({
...
this
.
errorObj
,
orderId
:
this
.
$attrs
.
currRow
.
orderId
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
}
});
},
...
...
src/views/ecw/box/shippingSea/shippingSea.vue
View file @
b8695a51
...
...
@@ -43,7 +43,7 @@ import { getWarehouseList } from "@/api/ecw/warehouse";
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
getDockPage
}
from
"
@/api/ecw/dock
"
;
import
{
listUser
}
from
"
@/api/system/user
"
;
import
{
s
tatusName
,
seaBaseData
}
from
"
./utils
"
;
import
{
getS
tatusName
,
seaBaseData
}
from
"
./utils
"
;
/**
* 海运操作主页面
...
...
@@ -144,7 +144,7 @@ export default {
}
if
(
isBreak
)
break
;
}
this
.
statusLabel
=
statusName
.
get
(
currNodeStatus
);
this
.
statusLabel
=
getStatusName
()
.
get
(
currNodeStatus
);
},
},
};
...
...
@@ -161,7 +161,7 @@ export default {
}
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
b8695a51
import
dayjs
from
"
dayjs
"
;
const
statusName
=
new
Map
();
function
getStatusName
()
{
const
statusName
=
new
Map
();
statusName
.
set
(
11
,
"
未订舱
"
);
statusName
.
set
(
12
,
"
已订舱
"
);
statusName
.
set
(
11
,
"
未订舱
"
);
statusName
.
set
(
12
,
"
已订舱
"
);
statusName
.
set
(
21
,
"
未预装
"
);
statusName
.
set
(
22
,
"
预装审核中
"
);
statusName
.
set
(
23
,
"
预装审核失败
"
);
statusName
.
set
(
24
,
"
预装审核成功
"
);
statusName
.
set
(
21
,
"
未预装
"
);
statusName
.
set
(
22
,
"
预装审核中
"
);
statusName
.
set
(
23
,
"
预装审核失败
"
);
statusName
.
set
(
24
,
"
预装审核成功
"
);
statusName
.
set
(
31
,
"
未派车
"
);
statusName
.
set
(
32
,
"
已派车
"
);
statusName
.
set
(
31
,
"
未派车
"
);
statusName
.
set
(
32
,
"
已派车
"
);
statusName
.
set
(
41
,
"
未装柜
"
);
statusName
.
set
(
42
,
"
装柜中
"
);
statusName
.
set
(
43
,
"
已装柜、待封柜
"
);
statusName
.
set
(
44
,
"
封柜审核中
"
);
statusName
.
set
(
45
,
"
封柜审核失败
"
);
statusName
.
set
(
46
,
"
封柜审核成功
"
);
statusName
.
set
(
41
,
"
未装柜
"
);
statusName
.
set
(
42
,
"
装柜中
"
);
statusName
.
set
(
43
,
"
已装柜、待封柜
"
);
statusName
.
set
(
44
,
"
封柜审核中
"
);
statusName
.
set
(
45
,
"
封柜审核失败
"
);
statusName
.
set
(
46
,
"
封柜审核成功
"
);
statusName
.
set
(
51
,
"
未报关
"
);
statusName
.
set
(
52
,
"
报关中
"
);
statusName
.
set
(
53
,
"
已报关
"
);
statusName
.
set
(
51
,
"
未报关
"
);
statusName
.
set
(
52
,
"
报关中
"
);
statusName
.
set
(
53
,
"
已报关
"
);
statusName
.
set
(
61
,
"
未配船
"
);
statusName
.
set
(
62
,
"
已配船
"
);
statusName
.
set
(
61
,
"
未配船
"
);
statusName
.
set
(
62
,
"
已配船
"
);
statusName
.
set
(
71
,
"
未提单补料
"
);
statusName
.
set
(
72
,
"
已提单补料
"
);
statusName
.
set
(
71
,
"
未提单补料
"
);
statusName
.
set
(
72
,
"
已提单补料
"
);
statusName
.
set
(
81
,
"
未驳船
"
);
statusName
.
set
(
82
,
"
已驳船
"
);
statusName
.
set
(
81
,
"
未驳船
"
);
statusName
.
set
(
82
,
"
已驳船
"
);
statusName
.
set
(
91
,
"
未起运
"
);
statusName
.
set
(
92
,
"
已起运
"
);
statusName
.
set
(
91
,
"
未起运
"
);
statusName
.
set
(
92
,
"
已起运
"
);
statusName
.
set
(
101
,
"
未上传
"
);
statusName
.
set
(
102
,
"
已上传
"
);
statusName
.
set
(
101
,
"
未上传
"
);
statusName
.
set
(
102
,
"
已上传
"
);
statusName
.
set
(
111
,
"
未清关文件
"
);
statusName
.
set
(
112
,
"
已清关文件
"
);
statusName
.
set
(
111
,
"
未清关文件
"
);
statusName
.
set
(
112
,
"
已清关文件
"
);
statusName
.
set
(
121
,
"
未到港
"
);
statusName
.
set
(
122
,
"
已到港
"
);
statusName
.
set
(
121
,
"
未到港
"
);
statusName
.
set
(
122
,
"
已到港
"
);
statusName
.
set
(
131
,
"
未清关
"
);
statusName
.
set
(
132
,
"
已清关
"
);
statusName
.
set
(
131
,
"
未清关
"
);
statusName
.
set
(
132
,
"
已清关
"
);
statusName
.
set
(
141
,
"
未卸柜
"
);
statusName
.
set
(
142
,
"
卸柜中
"
);
statusName
.
set
(
143
,
"
卸柜审核中
"
);
statusName
.
set
(
144
,
"
卸柜审核失败
"
);
statusName
.
set
(
145
,
"
卸柜审核成功
"
);
statusName
.
set
(
146
,
"
已卸柜
"
);
statusName
.
set
(
141
,
"
未卸柜
"
);
statusName
.
set
(
142
,
"
卸柜中
"
);
statusName
.
set
(
143
,
"
卸柜审核中
"
);
statusName
.
set
(
144
,
"
卸柜审核失败
"
);
statusName
.
set
(
145
,
"
卸柜审核成功
"
);
statusName
.
set
(
146
,
"
已卸柜
"
);
statusName
.
set
(
151
,
"
未结算
"
);
statusName
.
set
(
152
,
"
结算中
"
);
statusName
.
set
(
153
,
"
已结算
"
);
statusName
.
set
(
151
,
"
未结算
"
);
statusName
.
set
(
152
,
"
结算中
"
);
statusName
.
set
(
153
,
"
已结算
"
);
const
seaBaseData
=
()
=>
{
return
statusName
;
}
function
seaBaseData
()
{
return
[
[
{
...
...
@@ -69,6 +73,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/dc-end.png
"
),
},
type
:
"
booking
"
,
// 类型
dataKey
:
"
1
"
,
// 字典数据键值
/**
* 订舱状态:11、未订舱;12、已订舱
*/
...
...
@@ -90,6 +95,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/yz-end.png
"
),
},
type
:
"
preinstall
"
,
dataKey
:
"
2
"
,
// 字典数据键值
/**
* 预装状态:21、未预装;22、预装审核中;23、预装审核失败;24、预装审核成功
*/
...
...
@@ -109,6 +115,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/tc-end.png
"
),
},
type
:
"
trailer
"
,
dataKey
:
"
3
"
,
// 字典数据键值
/**
* 拖车状态:31、未派车;32、已派车
*/
...
...
@@ -141,6 +148,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/zg-end.png
"
),
},
type
:
"
cabinet
"
,
dataKey
:
"
4
"
,
// 字典数据键值
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功
*/
...
...
@@ -162,10 +170,11 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/bg-end.png
"
),
},
type
:
"
cusDeclaration
"
,
voName
:
"
customsInfo
"
,
dataKey
:
"
5
"
,
// 字典数据键值
/**
*报关状态:51、未报关;52、报关中;53、已报关
*/
voName
:
"
customsInfo
"
,
keyName
:
"
dcStatus
"
,
status
:
{
start
:
[
51
],
...
...
@@ -181,6 +190,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/pc-end.png
"
),
},
type
:
"
ship
"
,
dataKey
:
"
6
"
,
// 字典数据键值
/**
* 配船状态:61、未配船;62、已配船
*/
...
...
@@ -200,6 +210,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/tdcl-end.png
"
),
},
type
:
"
subMaterial
"
,
dataKey
:
"
7
"
,
// 字典数据键值
/**
* 提单补料状态:71、未提单补料;72、已提单补料
*/
...
...
@@ -221,6 +232,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/bc-end.png
"
),
},
type
:
"
barge
"
,
dataKey
:
"
8
"
,
// 字典数据键值
/**
* 驳船状态:81、未驳船;82、已驳船
*/
...
...
@@ -242,6 +254,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/qy-end.png
"
),
},
type
:
"
departure
"
,
dataKey
:
"
9
"
,
// 字典数据键值
/**
* 起运状态:91、未起运;92、已起运
*/
...
...
@@ -263,6 +276,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/tdcopy-end.png
"
),
},
type
:
"
blCopy
"
,
dataKey
:
"
10
"
,
// 字典数据键值
/**
* 提单COPY状态:101、未上传;102、已上传
*/
...
...
@@ -282,6 +296,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/qg-end.png
"
),
},
title
:
"
清关文件
"
,
dataKey
:
"
11
"
,
// 字典数据键值
/**
* 清关文件状态:111、未清关文件;112、已清关文件
*/
...
...
@@ -303,6 +318,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/dg-end.png
"
),
},
type
:
"
arrival
"
,
dataKey
:
"
12
"
,
// 字典数据键值
/**
* 到港状态:121、未到港;112、已到港
*/
...
...
@@ -324,6 +340,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/qg-end.png
"
),
},
type
:
"
cusClearance
"
,
dataKey
:
"
13
"
,
// 字典数据键值
/**
* 清关状态:131、未清关;132、已清关
*/
...
...
@@ -345,6 +362,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/xg-end.png
"
),
},
type
:
"
unloading
"
,
dataKey
:
"
14
"
,
// 字典数据键值
/**
* 卸柜状态:141、未卸柜;142、卸柜中;143、卸柜审核中;144、卸柜审核失败;145、卸柜审核成功;146、已卸柜
*/
...
...
@@ -366,6 +384,7 @@ const seaBaseData = () => {
end
:
require
(
"
@/assets/images/shipping/js-end.png
"
),
},
type
:
"
settlement
"
,
dataKey
:
"
15
"
,
// 字典数据键值
/**
* 结算状态:151、未结算;152、结算中;153、已结算
*/
...
...
@@ -379,7 +398,7 @@ const seaBaseData = () => {
},
],
];
}
;
}
const
constantDict
=
{
// 配船状态
...
...
@@ -467,7 +486,7 @@ export const fileTypes = [
];
export
{
s
tatusName
,
getS
tatusName
,
seaBaseData
,
constantDict
,
formatStringNumber
,
...
...
src/views/ecw/node/index.vue
View file @
b8695a51
...
...
@@ -173,6 +173,13 @@
<el-checkbox
v-for=
"dict in transportDatas"
:label=
"dict.value"
:key=
"dict.value"
:value=
"dict.value"
name=
"freight"
>
{{dict.label}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
label=
"其他服务"
prop=
"otherServiceList"
>
<el-checkbox-group
v-model=
"form.otherServiceList"
>
<el-checkbox
label=
"1"
>
送货上门
</el-checkbox>
<el-checkbox
label=
"2"
>
非控货订单代收货款
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
label=
"网点详情"
prop=
"contentZh"
>
...
...
@@ -267,6 +274,7 @@ export default {
// 表单参数
form
:
{
checkList
:[],
otherServiceList
:[],
},
// 表单校验
rules
:
{
...
...
@@ -463,7 +471,8 @@ export default {
worktime
:
undefined
,
adminId
:
undefined
,
aorder
:
undefined
,
checkList
:
[]
checkList
:
[],
otherServiceList
:
[]
};
this
.
resetForm
(
"
form
"
);
...
...
@@ -498,6 +507,9 @@ export default {
let
ckList
=
response
.
data
.
freight
.
split
(
'
,
'
);
this
.
$set
(
this
.
form
,
'
checkList
'
,
ckList
);
let
otherService
=
response
.
data
.
otherService
.
split
(
"
,
"
);
this
.
$set
(
this
.
form
,
'
otherServiceList
'
,
otherService
);
this
.
open
=
true
;
this
.
title
=
"
修改服务网点
"
;
...
...
@@ -518,6 +530,11 @@ export default {
freight
=
freight
.
substring
(
0
,
freight
.
length
-
1
);
this
.
form
.
freight
=
freight
;
var
otherService
=
this
.
form
.
otherServiceList
.
join
(
'
,
'
);
this
.
form
.
otherService
=
otherService
;
// console.log(otherService);
// return;
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateNode
(
this
.
form
).
then
(
response
=>
{
...
...
src/views/ecw/order/transferWarehousing.vue
View file @
b8695a51
...
...
@@ -73,9 +73,11 @@
<el-descriptions
style=
"margin-top: 20px"
:column=
"4"
border
>
<el-descriptions-item
label=
"集运仓库"
>
{{ warehouseDetails.warehouseOutName }}
</el-descriptions-item>
<el-descriptions-item
label=
"储位"
>
{{}}
</el-descriptions-item>
<el-descriptions-item
label=
"调拨目标仓"
>
{{ warehouseDetails.warehouseIn
Id
}}
</el-descriptions-item>
<el-descriptions-item
label=
"调拨目标仓"
>
{{ warehouseDetails.warehouseIn
Name
}}
</el-descriptions-item>
<el-descriptions-item
label=
"物流公司"
>
<el-input
v-model=
"params.logisticsCompany"
></el-input>
<el-select
v-model=
"params.logisticsCompany"
>
<el-option
v-for=
"(item,index) in expressList "
:key=
"index"
:value=
"item.id"
:label=
"item.companyZh"
></el-option>
</el-select>
</el-descriptions-item>
<el-descriptions-item
label=
"物流单号"
>
<el-input
v-model=
"params.logisticsNo"
></el-input>
...
...
@@ -118,7 +120,7 @@
<
script
>
import
ordeDetailsForm
from
"
@/views/ecw/order/components/ordeDetailsForm
"
;
import
{
getOrder
,
getOrder
,
listByOrderId
,
orderWarehouseInGetAdjustInfo
,
orderWarehousePicturePage
,
warehouseAdjustArrived
,
warehouseAdjustPage
,
warehouseAdjustSendOut
...
...
@@ -126,6 +128,7 @@ import {
import
Template
from
"
@/views/cms/template
"
;
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
ImageAndVideoUpload
from
"
@/components/ImageAndVideoUpload/index
"
;
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
let
STATUS
=
{
1
:
'
审核中
'
,
2
:
'
已通过
'
,
3
:
'
已拒绝
'
,
4
:
'
已出仓
'
,
5
:
'
已到仓
'
}
export
default
{
name
:
"
transferWarehousing
"
,
...
...
@@ -149,14 +152,19 @@ export default {
deliveryDate
:
""
,
deliveryRemark
:
""
,
id
:
undefined
,
logisticsCompany
:
""
,
logisticsCompany
:
undefined
,
logisticsNo
:
""
,
phone
:
""
,
urls
:
[]
}
},
expressList
:[]
}
},
created
()
{
getSupplierPage
({
pageNo
:
1
,
pageSize
:
10000
}).
then
(
r
=>
{
this
.
expressList
=
r
.
data
.
list
;
})
getOrder
(
this
.
orderId
).
then
(
r
=>
{
if
(
r
.
code
===
0
)
{
this
.
orderDetails
=
r
.
data
;
...
...
@@ -169,16 +177,19 @@ export default {
}
orderWarehouseInGetAdjustInfo
({
orderId
:
this
.
orderId
,
lang
:
0
}).
then
(
r
=>
{
this
.
warehouseDetails
=
r
.
data
[
0
]
listByOrderId
({
orderId
:
this
.
orderId
}).
then
(
r
=>
{
console
.
log
(
r
,
'
r
'
)
})
this
.
params
.
phone
=
this
.
warehouseDetails
.
phone
;
this
.
params
.
logisticsNo
=
this
.
warehouseDetails
.
logisticsNo
;
this
.
params
.
id
=
this
.
warehouseDetails
.
id
;
this
.
params
.
deliveryDate
=
this
.
warehouseDetails
.
deliveryDate
this
.
params
.
logisticsCompany
=
this
.
warehouseDetails
.
logisticsCompany
?
parseInt
(
this
.
warehouseDetails
.
logisticsCompany
)
:
undefined
;
orderWarehousePicturePage
({
rows
:
100
,
bizId
:
this
.
params
.
id
,
type
:
this
.
type
==
1
?
2
:
3
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
params
.
urls
=
r
.
data
.
list
.
map
(
e
=>
e
.
url
);
}
})
})
},
methods
:{
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
b8695a51
...
...
@@ -15,7 +15,6 @@
v-else
v-model=
"form.brand"
placeholder=
"可修改"
filterable
@
change=
"handleChangeBrand"
allow-create
>
<el-option
v-for=
"item in brandList"
...
...
@@ -205,13 +204,6 @@ export default {
},
methods
:
{
handleChangeBrand
(
b
){
if
(
this
.
brandList
.
find
(
e
=>
e
.
titleZh
===
b
)){
this
.
isBeian
=
'
有备案
'
}
else
{
this
.
isBeian
=
'
无备案
'
}
},
handleSubmit
()
{
const
orderWarehouseInItemDoList
=
this
.
form
.
orderWarehouseInItemDoList
.
map
(
e
=>
{
return
{
...
...
src/views/ecw/order/warehousing/index.vue
View file @
b8695a51
...
...
@@ -56,7 +56,7 @@
prop=
"diffType"
v-slot=
"{row}"
label=
"状态"
>
<dict-tag
:type=
"DICT_TYPE.
WAREHOUSE_IN_STATUS"
:value=
"
row.warehouseInInfoVO.diffType"
/>
<dict-tag
:type=
"DICT_TYPE.
ORDER_WAREHOUSE_IN_STATUS"
:value=
"row.warehouseInInfoVO &&
row.warehouseInInfoVO.diffType"
/>
</el-table-column>
<el-table-column
prop=
"address"
...
...
@@ -102,12 +102,14 @@
<div
style=
"text-align: center"
>
在完成入仓前,您还可以
</div>
<div
style=
"text-align: center;padding: 15px 0"
>
<el-button
type=
"info"
@
click=
"areaVisible = true"
>
选择储位
</el-button>
<el-button
type=
"info"
>
打印标签
</el-button>
<el-button
type=
"info"
@
click=
"isShowPrint = true"
>
打印标签
</el-button>
</div>
<div
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"handleSubmit()"
>
确 定
</el-button>
</div>
</el-dialog>
<print-tag
v-if=
"isShowPrint"
:order-id=
"orderId"
@
close=
"isShowPrint = false"
></print-tag>
</div>
</template>
...
...
@@ -124,6 +126,7 @@ import orderBaseInfo from "@/components/OrderBaseInfo"
import
WarehouseAreaDialog
from
'
@/components/WarehouseAreaDialog
'
import
editDialog
from
'
@/views/ecw/order/warehousing/components/editDialog
'
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
PrintTag
from
"
@/views/ecw/order/components/PrintTag
"
export
default
{
name
:
"
Warehousing
"
,
...
...
@@ -131,7 +134,8 @@ export default {
components
:
{
orderBaseInfo
,
WarehouseAreaDialog
,
editDialog
editDialog
,
PrintTag
},
mounted
()
{
...
...
@@ -156,9 +160,11 @@ export default {
},
currencyList
:[],
order
:
{},
orderId
:
undefined
,
orderItemList
:
[],
specialList
:
[],
warehousing
:
undefined
warehousing
:
undefined
,
isShowPrint
:
false
}
},
...
...
src/views/ecw/warehouse/index.vue
View file @
b8695a51
...
...
@@ -41,6 +41,20 @@
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"仓库编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"仓库名称"
align=
"center"
prop=
"titleZh"
/>
<el-table-column
label=
"英文名称"
align=
"center"
prop=
"titleEn"
/>
<el-table-column
label=
"贸易属性"
align=
"center"
prop=
"tradeType"
>
<template
slot-scope=
"scope"
>
<div>
{{
tradeTypeName
(
scope
.
row
.
tradeType
)
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"运输方式"
align=
"center"
prop=
"freight"
>
<
template
slot-scope=
"scope"
>
<div>
{{
transportNames
(
scope
.
row
.
freight
)
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"仓库容量(m)³"
align=
"center"
prop=
"volume"
/>
<el-table-column
label=
"仓库地址"
align=
"center"
prop=
"addressZh"
/>
...
...
@@ -483,6 +497,30 @@ export default {
}
}
},
transportNames
()
{
return
freight
=>
{
let
transportTypes
=
freight
.
split
(
"
,
"
);
let
names
=
[];
for
(
let
index
in
transportTypes
)
{
let
transportType
=
transportTypes
[
index
];
let
name
=
this
.
transportName
(
transportType
);
names
.
push
(
name
);
}
return
names
.
join
(
'
,
'
);
}
},
tradeTypeName
()
{
return
tradeType
=>
{
for
(
let
index
in
this
.
regionTypeDatas
)
{
let
regionTypeItem
=
this
.
regionTypeDatas
[
index
];
if
(
regionTypeItem
.
value
==
tradeType
)
{
return
regionTypeItem
.
label
;
}
}
}
},
},
watch
:
{
...
...
src/views/ecw/warehouseArea/index.vue
View file @
b8695a51
...
...
@@ -35,7 +35,7 @@
<el-button
size=
"mini"
type=
"text"
@
click=
"handleCreate(scope.row)"
v-if=
"scope.row.pid==0"
v-hasPermi=
"['ecw:warehouse-area:create']"
>
添加库区
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"positionManager(scope.row)"
v-if=
"scope.row.pid>0"
v-hasPermi=
"['ecw:warehouse-area:create']"
>
查看
仓
位
</el-button>
v-hasPermi=
"['ecw:warehouse-area:create']"
>
查看
储
位
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
src/views/ecw/warehouseAreaPosition/index.vue
View file @
b8695a51
...
...
@@ -4,8 +4,8 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"
仓
位代码"
prop=
"code"
>
<el-input
v-model=
"queryParams.code"
placeholder=
"请输入
仓
位代码"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"
储
位代码"
prop=
"code"
>
<el-input
v-model=
"queryParams.code"
placeholder=
"请输入
储
位代码"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
...
...
@@ -18,7 +18,7 @@
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:warehouse-area-position:create']"
>
新增
仓
位
</el-button>
v-hasPermi=
"['ecw:warehouse-area-position:create']"
>
新增
储
位
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
...
...
@@ -26,7 +26,7 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
row-key=
"id"
default-expand-all
:tree-props=
"
{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column
label=
"
仓
位代码"
align=
"center"
prop=
"code"
/>
<el-table-column
label=
"
储
位代码"
align=
"center"
prop=
"code"
/>
<el-table-column
label=
"仓库"
align=
"center"
prop=
"warehouseId"
>
<template
slot-scope=
"scope"
>
<span>
{{
warehouseName
(
scope
.
row
.
warehouseId
)
}}
</span>
...
...
@@ -53,7 +53,7 @@
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:warehouse-area-position:delete']"
>
删除
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleCreate(scope.row)"
v-if=
"scope.row.pid==0"
v-hasPermi=
"['ecw:warehouse-area:create']"
>
添加
仓
位
</el-button>
v-hasPermi=
"['ecw:warehouse-area:create']"
>
添加
储
位
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -68,8 +68,8 @@
<span>
{{parentDo.code}}
</span>
</el-form-item>
<el-form-item
label=
"
仓
位代码"
prop=
"code"
>
<el-input
v-model=
"form.code"
placeholder=
"请输
入仓
位代码"
/>
<el-form-item
label=
"
储
位代码"
prop=
"code"
>
<el-input
v-model=
"form.code"
placeholder=
"请输
储
位代码"
/>
</el-form-item>
<el-form-item
label=
"仓库"
prop=
"warehouseId"
>
...
...
@@ -143,7 +143,7 @@ export default {
showSearch
:
true
,
// 总条数
total
:
0
,
//
仓
位列表
//
储
位列表
list
:
[],
// 弹出层标题
title
:
""
,
...
...
@@ -168,7 +168,7 @@ export default {
form
:
{},
// 表单校验
rules
:
{
code
:
[{
required
:
true
,
message
:
"
仓
位代码不能为空
"
,
trigger
:
"
blur
"
}],
code
:
[{
required
:
true
,
message
:
"
储
位代码不能为空
"
,
trigger
:
"
blur
"
}],
warehouseId
:
[{
required
:
true
,
message
:
"
仓库不能为空
"
,
trigger
:
"
blur
"
}],
domainId
:
[{
required
:
true
,
message
:
"
库域不能为空
"
,
trigger
:
"
blur
"
}],
areaId
:
[{
required
:
true
,
message
:
"
库区不能为空
"
,
trigger
:
"
blur
"
}],
...
...
@@ -331,7 +331,7 @@ computed: {
this
.
parentDo
=
null
;
this
.
form
.
status
=
0
;
this
.
form
.
isShelf
=
1
;
this
.
title
=
"
添加
仓
位
"
;
this
.
title
=
"
添加
储
位
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
...
...
@@ -344,7 +344,7 @@ computed: {
}
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改
仓
位
"
;
this
.
title
=
"
修改
储
位
"
;
});
},
/** 提交按钮 */
...
...
@@ -373,7 +373,7 @@ computed: {
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除
仓
位编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认删除
储
位编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteWarehouseAreaPosition
(
id
);
}).
then
(()
=>
{
this
.
getList
();
...
...
@@ -388,7 +388,7 @@ computed: {
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有
仓
位数据项?
'
).
then
(()
=>
{
this
.
$modal
.
confirm
(
'
是否确认导出所有
储
位数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportWarehouseAreaPositionExcel
(
params
);
}).
then
(
response
=>
{
...
...
@@ -397,7 +397,7 @@ computed: {
}).
catch
(()
=>
{});
},
/** 新增
仓
位 */
/** 新增
储
位 */
handleCreate
(
row
)
{
this
.
reset
();
this
.
parentDo
=
row
;
...
...
@@ -410,7 +410,7 @@ computed: {
this
.
form
.
areaName
=
row
.
areaName
;
this
.
form
.
pid
=
row
.
id
;
this
.
open
=
true
;
this
.
title
=
"
添加
仓
位
"
;
this
.
title
=
"
添加
储
位
"
;
},
}
};
...
...
src/views/member/user/index.vue
View file @
b8695a51
...
...
@@ -446,8 +446,8 @@ export default {
setGuarantee
(){
seTupdateBackletter
({
userId
:
this
.
publicObj
.
id
,
backLetter
:
this
.
guaranteeUrl
}
).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
publicObj
.
backLetterImg
=
this
.
guaranteeUrl
;
this
.
guaranteeShow
=
false
;
this
.
guaranteeUrl
=
''
;
this
.
$message
.
success
(
'
保存成功
'
);
}
}
)
...
...
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