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
79be3706
Commit
79be3706
authored
Aug 01, 2022
by
dcy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
45b2b77f
1ee25581
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
425 additions
and
227 deletions
+425
-227
boxSea.js
src/api/ecw/boxSea.js
+51
-0
order.js
src/api/ecw/order.js
+10
-0
dict.js
src/utils/dict.js
+4
-1
agent.vue
src/views/ecw/box/shippingSea/nodePage/agent.vue
+12
-4
barge.vue
src/views/ecw/box/shippingSea/nodePage/barge.vue
+9
-3
index.vue
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
+36
-20
dockSelect.vue
src/views/ecw/box/shippingSea/nodePage/common/dockSelect.vue
+1
-3
supplierSelect.vue
...ws/ecw/box/shippingSea/nodePage/common/supplierSelect.vue
+1
-3
userSelect.vue
src/views/ecw/box/shippingSea/nodePage/common/userSelect.vue
+2
-4
cusDeclaration.vue
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
+88
-85
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+3
-8
ship.vue
src/views/ecw/box/shippingSea/nodePage/ship.vue
+11
-13
subMaterial.vue
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
+20
-17
trailer.vue
src/views/ecw/box/shippingSea/nodePage/trailer.vue
+1
-1
seaStepDetail.vue
src/views/ecw/box/shippingSea/seaStepDetail.vue
+33
-0
shippingSea.vue
src/views/ecw/box/shippingSea/shippingSea.vue
+2
-2
utils.js
src/views/ecw/box/shippingSea/utils.js
+15
-0
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+75
-48
index.vue
src/views/ecw/order/warehousing/index.vue
+51
-15
No files found.
src/api/ecw/boxSea.js
View file @
79be3706
...
...
@@ -61,6 +61,50 @@ export function agentSet(data) {
});
}
/**
* 装柜
*
* @export
* @param {*} data
* @return {*}
*/
export
function
cabinetCreate
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-cabinet/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
"
/ecw/box-cabinet/create
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 报关
*
* @export
* @param {*} data
* @return {*}
*/
export
function
customsCreate
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-customs/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
"
/ecw/box-customs/create
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 配船
*
...
...
@@ -85,6 +129,13 @@ export function shipConfigure(data) {
* @return {*}
*/
export
function
billCreate
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-lading-bill/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
"
/ecw/box-lading-bill/create
"
,
method
:
"
post
"
,
...
...
src/api/ecw/order.js
View file @
79be3706
...
...
@@ -164,6 +164,15 @@ export function orderWarehouseInFinish(data){
})
}
// 退仓
export
function
rollbackApply
(
data
){
return
request
({
url
:
'
/order/order-warehouse-in/rollback-apply
'
,
method
:
'
put
'
,
data
})
}
//取消订单
export
function
cancelOrder
(
orderId
){
return
request
({
...
...
@@ -189,6 +198,7 @@ export function getMyOrderPage(query) {
})
}
// 创建提货
export
function
createOrderPickup
(
data
){
return
request
({
...
...
src/utils/dict.js
View file @
79be3706
...
...
@@ -155,7 +155,10 @@ export const DICT_TYPE = {
ORDER_ABNORMAL_STATE
:
'
order_abnormal_state
'
,
TARGET_TYPE
:
'
target_type
'
,
//部门业绩目标类型
// ========== 出货模块 ==========
BOX_SHIPMENT_TRAILER_STATUS
:
'
shipment_trailer_status
'
,
// 拖车状态
BOX_SHIPPING_TRAILER_STATUS
:
'
shipping_trailer_status
'
,
// 拖车状态
BOX_SHIPPING_CUSTOMS_TYPE
:
'
shipping_customs_type
'
,
// 报关方式
BOX_SHIPPING_DCCUSTOMS_STATUS
:
'
shipping_dcCustoms_status
'
,
// 报关放行状态
BOX_SHIPPING_CHECK_STATUS
:
'
shipping_check_status
'
,
// 查验状态
}
/**
...
...
src/views/ecw/box/shippingSea/nodePage/agent.vue
View file @
79be3706
...
...
@@ -2,7 +2,7 @@
<div>
<el-form
ref=
"agentForm"
:model=
"agentObj"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"代理商Agent"
prop=
"agentId"
>
<supplierSelect
v-model=
"agentObj.agentId"
placeholder=
"请选择代理商"
:allSupplier=
"this.$attrs.allSupplier"
/>
<supplierSelect
v-model=
"agentObj.agentId"
:companyType=
"'1'"
placeholder=
"请选择代理商"
:allSupplier=
"this.$attrs.allSupplier"
/>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
...
...
@@ -15,6 +15,7 @@
<
script
>
import
{
agentSet
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
formatStringNumber
}
from
"
../utils
"
;
/**
* agent
*/
...
...
@@ -32,6 +33,13 @@ export default {
},
};
},
created
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
const
voName
=
currNode
.
voName
;
let
oldData
=
{
...
shipmentObj
[
voName
]
};
oldData
=
formatStringNumber
(
oldData
,
[
"
agentId
"
]);
this
.
agentObj
=
oldData
;
},
methods
:
{
/** 提交 */
onSubmit
()
{
...
...
@@ -42,15 +50,15 @@ export default {
...
this
.
agentObj
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
();
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
...
...
src/views/ecw/box/shippingSea/nodePage/barge.vue
View file @
79be3706
...
...
@@ -66,6 +66,12 @@ export default {
},
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
console
.
log
(
oldData
)
this
.
bargeObj
=
oldData
;
},
methods
:
{
/** 提交 */
onSubmit
(
operateType
)
{
...
...
@@ -77,15 +83,15 @@ export default {
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
();
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
View file @
79be3706
<
template
>
<div>
<el-form
ref=
"cabinetForm"
:rules=
"rules"
:model=
"cabinet"
label-width=
"80px"
>
<el-form
ref=
"cabinetForm"
:rules=
"rules"
:model=
"cabinet
Obj
"
label-width=
"80px"
>
<el-form-item
label=
"到仓时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
.arrival
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
Obj.ldInWarehouse
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"仓库"
>
<el-select
v-model=
"cabinet.warehouse"
placeholder=
"请选择仓库"
>
<el-select
v-model=
"cabinetObj.ldWarehouseType"
placeholder=
"请选择仓库"
filterable
>
<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=
"
t
ime"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
.cabinet
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-form-item
label=
"装柜时间"
prop=
"
ldBoxT
ime"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
Obj.ldBox
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"出仓时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
.out
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinet
Obj.ldOutWarehouse
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"装柜图片"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cabinet
.fileList
"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cabinet
Obj.ldPictures
"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
</el-form-item>
...
...
@@ -28,8 +29,8 @@
<!-- 操作 -->
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
保存
</el-button>
<el-button
type=
"success"
>
封柜
</el-button>
<el-button
type=
"primary"
@
click=
"onSubmit
(1)
"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
封柜
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"danger"
@
click=
"startCabinet"
>
开始装柜
</el-button>
</el-row>
...
...
@@ -38,6 +39,8 @@
<
script
>
import
startPacking
from
"
./startPacking.vue
"
;
import
{
cabinetCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../../utils
"
;
/**
* 装柜
...
...
@@ -46,35 +49,48 @@ export default {
name
:
"
cabinet
"
,
inheritAttrs
:
false
,
components
:
{
startPacking
},
props
:
{
boxId
:
String
,
},
data
()
{
return
{
// 弹窗
dialogVisible
:
false
,
// 装柜对象
cabinet
:
{
fileList
:
[],
},
cabinetObj
:
{},
// 校验
rules
:
{
time
:
[{
required
:
true
,
message
:
"
请选择时间
"
,
trigger
:
"
change
"
}],
ldBoxTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
},
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
ldInWarehouseTime
"
,
"
ldBoxTime
"
,
"
ldOutWarehouseTime
"
,
]);
this
.
cabinetObj
=
oldData
;
},
methods
:
{
/** 提交 */
onSubmit
()
{
onSubmit
(
operateType
)
{
this
.
$refs
[
"
cabinetForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
"
submit!
"
);
cabinetCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
this
.
cabinetObj
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
/** 开始装柜 */
startCabinet
()
{
...
...
src/views/ecw/box/shippingSea/nodePage/common/dockSelect.vue
View file @
79be3706
...
...
@@ -20,9 +20,7 @@ export default {
event
:
"
change
"
,
},
data
()
{
return
{
supplier
:
[],
};
return
{};
},
computed
:
{
getDock
()
{
...
...
src/views/ecw/box/shippingSea/nodePage/common/supplierSelect.vue
View file @
79be3706
...
...
@@ -20,9 +20,7 @@ export default {
event
:
"
change
"
,
},
data
()
{
return
{
supplier
:
[],
};
return
{};
},
computed
:
{
getSuppliers
()
{
...
...
src/views/ecw/box/shippingSea/nodePage/common/userSelect.vue
View file @
79be3706
<
template
>
<el-select
filterable
:value=
"value"
@
change=
"change"
v-bind=
"$attrs"
>
<el-option
v-for=
"user in getUser"
:key=
"user.id"
:value=
"user.id"
>
{{
user
.
nickname
}}
</el-option>
<el-option
v-for=
"user in getUser"
:key=
"user.id"
:value=
"user.id"
:label=
"user.nickname"
>
</el-option>
</el-select>
</
template
>
...
...
@@ -20,9 +20,7 @@ export default {
event
:
"
change
"
,
},
data
()
{
return
{
supplier
:
[],
};
return
{};
},
computed
:
{
getUser
()
{
...
...
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
View file @
79be3706
This diff is collapsed.
Click to expand it.
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
79be3706
...
...
@@ -261,7 +261,6 @@
<
script
>
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
import
{
secGoodsList
,
preloadPage
,
...
...
@@ -291,8 +290,6 @@ export default {
filingOps
:
this
.
getDictDatas
(
DICT_TYPE
.
COMMISSION_PRODUCT_APPROVAL
),
// 报关方式
declarationMethodOps
:
this
.
getDictDatas
(
DICT_TYPE
.
ECW_CUSTOMS_TYPE
),
// 仓库
warehouseList
:
[],
// 查询标识
type
:
""
,
// 已预装 遮罩层
...
...
@@ -327,27 +324,25 @@ export default {
computed
:
{
/** 始发地 */
exportWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
return
this
.
$attrs
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
2
"
||
item
.
type
==
"
3
"
);
},
/** 目的地 */
importWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
return
this
.
$attrs
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
1
"
||
item
.
type
==
"
3
"
);
},
},
created
()
{
// 查询仓库数据
getWarehouseList
().
then
((
res
)
=>
(
this
.
warehouseList
=
res
.
data
));
// 查询待预装
this
.
handleQuery
(
"
toBePre
"
);
},
methods
:
{
/* 获取城市 */
importCityName
(
id
)
{
var
arr
=
this
.
warehouseList
.
filter
((
item
)
=>
item
.
id
==
id
);
var
arr
=
this
.
$attrs
.
warehouseList
.
filter
((
item
)
=>
item
.
id
==
id
);
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
},
/* 选中行 */
...
...
src/views/ecw/box/shippingSea/nodePage/ship.vue
View file @
79be3706
...
...
@@ -21,6 +21,7 @@
<
script
>
import
{
shipConfigure
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
constantDict
}
from
"
../utils
"
;
/**
* 配船
*/
...
...
@@ -35,22 +36,19 @@ export default {
// 配船对象
shipObj
:
{},
// 状态
status
:
[
{
value
:
"
1
"
,
label
:
"
免配
"
,
},
{
value
:
"
2
"
,
label
:
"
已配
"
,
},
],
status
:
constantDict
.
saExmtStatus
,
// 校验
rules
:
{
saExmtStatus
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
},
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
shipmentObj
[
voName
]
};
oldData
=
formatNumberString
(
oldData
,
[
"
saExmtStatus
"
]);
this
.
shipObj
=
oldData
;
},
methods
:
{
/** 提交 */
onSubmit
(
operateType
)
{
...
...
@@ -62,15 +60,15 @@ export default {
...
this
.
shipObj
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
();
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
...
...
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
View file @
79be3706
...
...
@@ -2,7 +2,7 @@
<div>
<el-form
ref=
"subMaterialForm"
:model=
"subMaterialObj"
label-width=
"140px"
>
<el-form-item
label=
"代理商AGENT"
>
<supplierSelect
v-model=
"subMaterialObj.agentId"
placeholder=
"请选择供应商"
:allSupplier=
"this.$attrs.allSupplier"
/>
<supplierSelect
v-model=
"subMaterialObj.agentId"
:companyType=
"'1'"
placeholder=
"请选择供应商"
:allSupplier=
"this.$attrs.allSupplier"
/>
</el-form-item>
<el-form-item
label=
"提单号M/BL NO."
class=
"two-element"
>
<el-input
v-model=
"subMaterialObj.blMblNo"
placeholder=
"请输入提单号"
></el-input>
...
...
@@ -51,7 +51,7 @@
<el-input
v-model=
"subMaterialObj.containerSealNo"
placeholder=
"请输入柜号/封条"
></el-input>
</el-form-item>
<el-form-item
label=
"柜型"
>
{{
getCabinetName
(
shipmentObj
.
cabinetId
)
}}
{{
cabinetType
}}
</el-form-item>
<el-form-item
label=
"出单方式"
>
<el-radio-group
v-model=
"subMaterialObj.issueType"
>
...
...
@@ -78,6 +78,8 @@ import userSelect from "./common/userSelect.vue";
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
billCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
constantDict
}
from
"
../utils
"
;
/**
* 提单补料
*/
...
...
@@ -107,6 +109,8 @@ export default {
],
// 单位
units
:
[],
// 柜型
cabinetType
:
"
/
"
,
};
},
created
()
{
...
...
@@ -117,10 +121,19 @@ export default {
});
// 柜型
getCabinetPage
(
null
).
then
((
response
)
=>
{
this
.
cabinetList
=
response
.
data
.
list
;
const
cabinetList
=
response
.
data
.
list
;
for
(
let
index
in
cabinetList
)
{
let
cabinetItem
=
cabinetList
[
index
];
if
(
cabinetItem
.
id
==
this
.
shipmentObj
.
cabinetId
)
{
this
.
cabinetType
=
cabinetItem
.
name
;
}
}
});
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
shipmentObj
[
voName
]
};
this
.
subMaterialObj
=
oldData
;
},
computed
:
{},
methods
:
{
/** 提交 */
onSubmit
(
operateType
)
{
...
...
@@ -132,25 +145,15 @@ export default {
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
();
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
},
/* 获取柜名 */
getCabinetName
(
cabinetId
)
{
for
(
let
index
in
this
.
cabinetList
)
{
let
cabinetItem
=
this
.
cabinetList
[
index
];
if
(
cabinetItem
.
id
==
cabinetId
)
{
return
cabinetItem
.
name
;
}
}
return
"
/
"
;
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
...
...
src/views/ecw/box/shippingSea/nodePage/trailer.vue
View file @
79be3706
...
...
@@ -3,7 +3,7 @@
<el-form
ref=
"trailerForm"
:rules=
"rules"
:model=
"trailerObj"
label-width=
"120px"
>
<el-form-item
label=
"状态"
>
<el-select
v-model=
"trailerObj.tlContainerStatus"
placeholder=
"请选择状态"
>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIP
MENT
_TRAILER_STATUS)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
<el-option
v-for=
"type in this.getDictDatas(DICT_TYPE.BOX_SHIP
PING
_TRAILER_STATUS)"
:key=
"type.value"
:label=
"type.label"
:value=
"type.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"拖车公司"
>
...
...
src/views/ecw/box/shippingSea/seaStepDetail.vue
View file @
79be3706
...
...
@@ -18,6 +18,7 @@
<
script
>
import
dayjs
from
"
dayjs
"
;
import
*
as
_C
from
"
./utils
"
;
export
default
{
name
:
"
seaStepDetail
"
,
...
...
@@ -126,6 +127,7 @@ export default {
{
title
:
"
代理商
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
业务员
"
,
...
...
@@ -141,6 +143,7 @@ export default {
{
title
:
"
仓库类型
"
,
key
:
"
ldWarehouseType
"
,
type
:
"
warehouse
"
,
},
{
title
:
"
装柜时间
"
,
...
...
@@ -161,10 +164,12 @@ export default {
{
title
:
"
报关方式
"
,
key
:
"
dcCustomsType
"
,
type
:
"
shipping_customs_type
"
,
},
{
title
:
"
报关行公司
"
,
key
:
"
dcCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
截关时间
"
,
...
...
@@ -174,10 +179,12 @@ export default {
{
title
:
"
状态
"
,
key
:
"
dcCustomsStatus
"
,
type
:
"
shipping_dcCustoms_status
"
,
},
{
title
:
"
放行时间
"
,
key
:
"
dcPassTime
"
,
type
:
"
date
"
,
},
{
title
:
"
新封条
"
,
...
...
@@ -204,6 +211,7 @@ export default {
{
title
:
"
已配/免配
"
,
key
:
"
saExmtStatus
"
,
type
:
"
saExmtStatus
"
,
},
{
title
:
"
业务员
"
,
...
...
@@ -214,6 +222,7 @@ export default {
{
title
:
"
清关代理
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
提单品名
"
,
...
...
@@ -373,6 +382,15 @@ export default {
case
"
dock
"
:
val
=
this
.
getDock
(
Number
(
val
));
break
;
case
"
warehouse
"
:
val
=
this
.
getWarehouse
(
Number
(
val
));
break
;
case
"
shipping_customs_type
"
:
val
=
this
.
getDict
(
type
,
String
(
val
));
break
;
case
"
saExmtStatus
"
:
val
=
this
.
getConstant
(
type
,
String
(
val
));
break
;
}
}
return
val
;
...
...
@@ -387,6 +405,21 @@ export default {
this
.
$attrs
.
allSupplier
.
find
((
item
)
=>
item
.
id
===
id
)?.
countryZh
??
id
);
},
getWarehouse
(
id
)
{
return
(
this
.
$attrs
.
warehouseList
.
find
((
item
)
=>
item
.
id
===
id
)?.
titleZh
??
id
);
},
getDict
(
code
,
id
)
{
return
(
this
.
getDictDatas
(
code
).
find
((
item
)
=>
item
.
value
===
id
)?.
label
??
id
);
},
getConstant
(
code
,
id
)
{
return
(
_C
.
constantDict
[
code
].
find
((
item
)
=>
item
.
value
===
id
)?.
label
??
id
);
},
},
};
</
script
>
...
...
src/views/ecw/box/shippingSea/shippingSea.vue
View file @
79be3706
...
...
@@ -26,10 +26,10 @@
</el-card>
<!-- 海运流程图 -->
<seaProcess
:seaBaseData=
"seaBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
@
setStatus=
"setStatus"
@
getBoxInfo=
"getBoxInfo"
/>
<seaProcess
:seaBaseData=
"seaBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
:warehouseList=
"warehouseList"
@
setStatus=
"setStatus"
@
getBoxInfo=
"getBoxInfo"
/>
<!-- 海运步骤图 -->
<seaStepDetail
:seaBaseData=
"seaBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
/>
<seaStepDetail
:seaBaseData=
"seaBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
:warehouseList=
"warehouseList"
/>
</el-col>
</el-row>
</div>
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
79be3706
...
...
@@ -379,6 +379,20 @@ const seaBaseData = [
],
];
const
constantDict
=
{
// 配船状态
saExmtStatus
:
[
{
value
:
"
1
"
,
label
:
"
免配
"
,
},
{
value
:
"
2
"
,
label
:
"
已配
"
,
},
],
};
function
formatStringNumber
(
obj
,
keys
)
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
obj
))
{
if
(
keys
.
includes
(
key
)
&&
!
Number
.
isNaN
(
Number
(
value
)))
{
...
...
@@ -409,6 +423,7 @@ function formatDateStr(obj, keys) {
export
{
statusName
,
seaBaseData
,
constantDict
,
formatStringNumber
,
formatDateStr
,
formatNumberString
,
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
79be3706
...
...
@@ -7,10 +7,25 @@
width=
"960px"
>
<el-descriptions
border
:column=
"2"
>
<el-descriptions-item
label=
"中文品名"
></el-descriptions-item>
<el-descriptions-item
label=
"英文品名"
></el-descriptions-item>
<el-descriptions-item
label=
"品牌"
>
{{
[
'
无牌
'
,
'
有牌
'
,
'
中性
'
][
warehousing
.
brandType
]
}}
</el-descriptions-item>
<el-descriptions-item
label=
"是否备案"
></el-descriptions-item>
<el-descriptions-item
label=
"中文品名"
>
{{
warehousing
.
prodTitleZh
}}
</el-descriptions-item>
<el-descriptions-item
label=
"英文品名"
>
{{
warehousing
.
prodTitleEn
}}
</el-descriptions-item>
<el-descriptions-item
label=
"品牌"
>
<span
v-if=
"warehousing.orderWarehouseInBackItemDoList && warehousing.orderWarehouseInBackItemDoList.length"
>
{{
form
.
brand
||
'
无
'
}}
</span>
<el-select
v-else
v-model=
"form.brand"
placeholder=
"可修改"
filterable
@
change=
"handleChangeBrand"
allow-create
>
<el-option
v-for=
"item in brandList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.titleZh"
>
</el-option>
</el-select>
</el-descriptions-item>
<el-descriptions-item
label=
"是否备案"
>
{{
isBeian
}}
</el-descriptions-item>
<el-descriptions-item
label=
"填单参数"
></el-descriptions-item>
</el-descriptions>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
style=
"margin-top: 20px"
>
...
...
@@ -29,73 +44,59 @@
<el-button
style=
"float: right"
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
circle
@
click=
"handleAdd()"
></el-button>
</div>
<el-table
:data=
"warehousing.orderWarehouseInBackItemDoList"
style=
"width: 100%"
>
<el-table-column
label=
"箱数"
prop=
"cartonsNum"
>
</el-table-column>
<el-table-column
label=
"包装类型"
prop=
"boxGauge"
>
</el-table-column>
<el-table-column
label=
"长(cm)"
prop=
""
>
</el-table-column>
<el-table-column
label=
"款(cm)"
prop=
""
>
</el-table-column>
<el-table-column
label=
"高(cm)"
prop=
""
>
</el-table-column>
<el-table-column
label=
"体积(m³)"
prop=
""
>
</el-table-column>
<el-table-column
label=
"重量(Kg)"
prop=
""
>
</el-table-column>
<el-table-column
label=
"数量"
prop=
"quantityAll"
>
</el-table-column>
<el-table-column
label=
"快递单号"
prop=
"expressNo"
>
</el-table-column>
</el-table>
<el-table
:data=
"form.orderWarehouseInItemDoList"
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
label=
"箱数"
>
<template
v-slot=
"
{r,c,$index}">
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].cartonsNum"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
tableData
[
$index
].
cartonsNum
}}
</span>
<el-input
v-else
v-model=
"tableData[$index].cartonsNum"
placeholder=
""
></el-input>
<span>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_PACKAGE_TYPE
,
tableData
[
$index
].
boxGauge
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"包装类型"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].boxGauge"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_PACKAGE_TYPE
,
tableData
[
$index
].
boxGauge
)
}}
</span>
<!--
<el-input
v-else
v-model=
"tableData[$index].boxGauge"
placeholder=
""
></el-input>
-->
<dict-selector
v-else
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
v-model=
"tableData[$index].boxGauge"
></dict-selector>
</
template
>
</el-table-column>
<el-table-column
label=
"长(cm)"
>
<!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="
form.orderWarehouseInItemDoList
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- <el-input v-model="
tableData
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>-->
</el-table-column>
<el-table-column
label=
"
款
(cm)"
>
<el-table-column
label=
"
宽
(cm)"
>
<!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="
form.orderWarehouseInItemDoList
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- <el-input v-model="
tableData
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>-->
</el-table-column>
<el-table-column
label=
"高(cm)"
>
<!-- <template v-slot="{r,c,$index}">-->
<!-- <el-input v-model="
form.orderWarehouseInItemDoList
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- <el-input v-model="
tableData
[$index].cartonsNum" placeholder=""></el-input>-->
<!-- </template>-->
</el-table-column>
<el-table-column
label=
"体积(m³)"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].volume"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
tableData
[
$index
].
volume
}}
</span>
<el-input
v-else
v-model=
"tableData[$index].volume"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"重量(Kg)"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].weight"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
tableData
[
$index
].
weight
}}
</span>
<el-input
v-else
v-model=
"tableData[$index].weight"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"数量"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].quantityAll"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
tableData
[
$index
].
quantityAll
}}
</span>
<el-input
v-else
v-model=
"tableData[$index].quantityAll"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"快递单号"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-input
v-model=
"form.orderWarehouseInItemDoList[$index].expressNo"
placeholder=
""
></el-input>
<span
v-if=
"tableData[$index].id"
>
{{
tableData
[
$index
].
expressNo
}}
</span>
<el-input
v-else
v-model=
"tableData[$index].expressNo"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -111,9 +112,10 @@
<
script
>
import
dictSelector
from
"
@/components/DictSelector
"
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
import
warehousing
from
"
@/views/ecw/order/warehousing
"
import
{
orderWarehouseIn
}
from
"
@/api/ecw/order
"
import
{
getProductBrankPage
}
from
"
@/api/ecw/productBrank
"
export
default
{
name
:
'
editDialog
'
,
...
...
@@ -140,12 +142,17 @@ export default {
},
mounted
()
{
getProductBrankPage
({
pageSize
:
100000
}).
then
(
r
=>
{
this
.
brandList
=
r
.
data
.
list
})
},
data
()
{
return
{
DICT_TYPE
,
getDictDataLabel
,
opened
:
false
,
brandList
:
[],
form
:
{
"
brand
"
:
""
,
"
brandType
"
:
0
,
...
...
@@ -179,7 +186,8 @@ export default {
},
opened
(
val
)
{
if
(
val
)
{
this
.
form
.
material
=
warehousing
.
material
this
.
form
.
material
=
this
.
warehousing
.
material
this
.
form
.
brand
=
this
.
warehousing
.
brand
}
else
{
this
.
$emit
(
'
update:visible
'
,
false
)
}
...
...
@@ -187,6 +195,13 @@ export default {
},
methods
:
{
handleChangeBrand
(
b
){
if
(
this
.
brandList
.
find
(
e
=>
e
.
titleZh
===
b
)){
this
.
isBeian
=
'
有备案
'
}
else
{
this
.
isBeian
=
'
无备案
'
}
},
handleSubmit
()
{
// Promise.all(
// this.form.orderWarehouseInItemDoList.map(e => {
...
...
@@ -205,14 +220,17 @@ export default {
// })
return
orderWarehouseIn
({
...
this
.
form
,
inTime
:
this
.
form
.
inTime
,
material
:
this
.
form
.
material
,
brandType
:
this
.
warehousing
.
brandType
,
brandType
:
this
.
form
.
brand
?
1
:
0
,
orderId
:
this
.
warehousing
.
orderId
,
orderItemId
:
this
.
warehousing
.
orderItemId
,
orderNo
:
this
.
warehousing
.
orderNo
}).
then
(()
=>
{
}).
then
(
r
=>
{
if
(
r
.
data
){
this
.
$message
.
success
(
'
入仓成功
'
)
this
.
handleClose
()
}
else
{
this
.
$message
.
success
(
'
入仓失败
'
)
}
})
},
handleClose
()
{
...
...
@@ -225,14 +243,23 @@ export default {
handleAdd
()
{
this
.
form
.
orderWarehouseInItemDoList
.
push
({
"
boxGauge
"
:
""
,
"
cartonsNum
"
:
0
,
"
cartonsNum
"
:
""
,
"
expressNo
"
:
""
,
"
quantityAll
"
:
0
,
"
quantityAll
"
:
""
,
"
unit
"
:
""
,
"
volume
"
:
0
,
"
weight
"
:
0
"
volume
"
:
''
,
"
weight
"
:
''
})
}
},
computed
:
{
tableData
()
{
return
[...
this
.
warehousing
.
orderWarehouseInBackItemDoList
,
...
this
.
form
.
orderWarehouseInItemDoList
]
},
isBeian
(){
return
this
.
brandList
.
find
(
e
=>
e
.
titleZh
===
this
.
form
.
brand
)
?
'
有备案
'
:
'
无备案
'
}
}
}
</
script
>
...
...
src/views/ecw/order/warehousing/index.vue
View file @
79be3706
...
...
@@ -5,7 +5,7 @@
<order-base-info
:order=
"order"
></order-base-info>
<div
style=
"margin-top: 20px"
>
<span>
储位:
</span><el-button
type=
"primary"
size=
"mini"
@
click=
"areaVisible = true
"
>
选择
</el-button>
<span>
储位:
{{
locationName
}}
</span><el-button
type=
"primary"
size=
"mini"
@
click=
"areaVisible = true"
style=
"margin-left: 15px
"
>
选择
</el-button>
</div>
<h2>
货物信息
</h2>
...
...
@@ -44,8 +44,11 @@
label=
"快递单号"
>
</el-table-column>
<el-table-column
prop=
"
address
"
prop=
"
updateTime
"
label=
"最后操作时间"
>
<
template
v-slot=
"{row}"
>
{{
row
.
updateTime
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
...
...
@@ -55,8 +58,8 @@
prop=
"address"
label=
"操作"
>
<
template
v-slot=
"{ row, column, $index }"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
入仓
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousing(row.prodId)"
>
追加
</el-button>
<el-button
v-if=
"orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0"
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
追加
</el-button>
<el-button
v-else
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
入仓
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousingReturn(row)"
>
退仓
</el-button>
</
template
>
</el-table-column>
...
...
@@ -151,19 +154,34 @@
<div
style=
"text-align: center"
>
<el-button
type=
"primary"
>
转异
</el-button>
<el-button
type=
"primary"
@
click=
"
handleSubmit()
"
>
完成入仓
</el-button>
<el-button
type=
"primary"
@
click=
"
finishVisible = true
"
>
完成入仓
</el-button>
</div>
</el-form>
<warehouse-area-dialog
:visible.sync=
"areaVisible"
v-model=
"locationName"
></warehouse-area-dialog>
<edit-dialog
:visible.sync=
"warehousingVisible"
:warehousing=
"warehousing"
></edit-dialog>
<!-- 完成入仓 -->
<el-dialog
title=
"确认入仓"
:visible.sync=
"finishVisible"
width=
"300px"
>
<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>
</div>
<div
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"handleSubmit()"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
getCurrencyList
}
from
"
@/api/ecw/currency
"
import
{
getOrder
,
getOrderWarehouseIn
,
orderWarehouseInFinish
}
from
"
@/api/ecw/order
"
import
{
getOrder
,
getOrderWarehouseIn
,
orderWarehouseInFinish
,
rollbackApply
}
from
"
@/api/ecw/order
"
import
orderBaseInfo
from
"
@/components/OrderBaseInfo
"
import
WarehouseAreaDialog
from
'
@/components/WarehouseAreaDialog
'
import
editDialog
from
'
@/views/ecw/order/warehousing/components/editDialog
'
...
...
@@ -189,6 +207,7 @@ export default {
data
()
{
return
{
areaVisible
:
false
,
finishVisible
:
false
,
locationName
:
''
,
warehousingVisible
:
false
,
form
:
{
...
...
@@ -207,6 +226,20 @@ export default {
orderWarehouseInFinish
({
"
locationName
"
:
this
.
locationName
,
"
orderId
"
:
this
.
order
.
orderId
}).
then
(
r
=>
{
if
(
r
.
data
)
{
this
.
$confirm
(
'
该订单已成功入仓,是否打印?
'
,
'
货物已入仓
'
,
{
confirmButtonClass
:
'
是
'
,
cancelButtonText
:
'
否
'
}
).
then
().
catch
(()
=>
{
// this.$store.dispatch('tagsView/delVisitedView')
this
.
$message
.
success
(
'
入仓成功
'
)
})
}
})
},
handleWarehousing
(
index
)
{
...
...
@@ -219,16 +252,19 @@ export default {
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
(()
=>
{
console
.
log
(
item
.
id
)
console
.
log
(
item
)
rollbackApply
({
"
orderId
"
:
item
.
orderId
,
"
orderNo
"
:
item
.
orderNo
,
"
reason
"
:
""
}).
then
(()
=>
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
删除
成功!
'
message
:
'
申请退仓
成功!
'
});
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'
info
'
,
message
:
'
已取消删除
'
});
});
}
},
...
...
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