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
4bc0e2fd
Commit
4bc0e2fd
authored
Aug 01, 2022
by
huhaiqing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
海运出货操作开发
parent
4a94c0fb
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
289 additions
and
164 deletions
+289
-164
boxSea.js
src/api/ecw/boxSea.js
+51
-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
No files found.
src/api/ecw/boxSea.js
View file @
4bc0e2fd
...
...
@@ -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/utils/dict.js
View file @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
<
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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
<
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 @
4bc0e2fd
<
template
>
<div>
<el-form
ref=
"cusDeclarationForm"
:rules=
"rules"
:model=
"cusDeclaration"
label-width=
"120px"
>
<el-form
ref=
"cusDeclarationForm"
:rules=
"rules"
:model=
"cusDeclaration
Obj
"
label-width=
"120px"
>
<el-form-item
label=
"单证要求"
>
我司全代
<el-button
type=
"primary"
style=
"margin-left:10px;"
@
click=
"downloadVGM"
>
VGM声明
</el-button>
</el-form-item>
<el-form-item
label=
"柜重"
prop=
"
cabinetWeigh
t"
>
<el-input
v-model=
"cusDeclaration
.cabinetWeigh
t"
placeholder=
"请输入柜重"
clearable
/>
<el-form-item
label=
"柜重"
prop=
"
dcBoxWg
t"
>
<el-input
v-model=
"cusDeclaration
Obj.dcBoxWg
t"
placeholder=
"请输入柜重"
clearable
/>
</el-form-item>
<el-form-item
label=
"货重"
prop=
"
cargoWeigh
t"
>
<el-input
v-model=
"cusDeclaration
.cargoWeigh
t"
placeholder=
"请输入货重"
clearable
/>
<el-form-item
label=
"货重"
prop=
"
dcGoodsWg
t"
>
<el-input
v-model=
"cusDeclaration
Obj.dcGoodsWg
t"
placeholder=
"请输入货重"
clearable
/>
</el-form-item>
<el-form-item
label=
"VGM重量
(柜重+货重)
"
>
<el-input
v-model=
"cusDeclaration
.vgmWeigh
t"
placeholder=
"请输入VGM重量"
clearable
/>
<el-form-item
label=
"VGM重量"
>
<el-input
v-model=
"cusDeclaration
Obj.dcVgmWg
t"
placeholder=
"请输入VGM重量"
clearable
/>
</el-form-item>
<el-form-item
label=
"报关方式"
prop=
"
method
"
>
<el-select
v-model=
"cusDeclaration
.method
"
placeholder=
"请选择报关方式"
>
<el-option
v-for=
"
item in methods"
:key=
"item.value"
:label=
"item.label"
:value=
"item
.value"
></el-option>
<el-form-item
label=
"报关方式"
prop=
"
dcCustomsType
"
>
<el-select
v-model=
"cusDeclaration
Obj.dcCustomsType
"
placeholder=
"请选择报关方式"
>
<el-option
v-for=
"
type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CUSTOMS_TYPE)"
:key=
"type.value"
:label=
"type.label"
:value=
"type
.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"正常报关订单"
>
</el-form-item>
<el-form-item
label=
"报关公司名称"
>
<el-select
v-model=
"cusDeclaration.companyName"
placeholder=
"请选择报关公司名称"
>
</el-select>
<supplierSelect
v-model=
"cusDeclarationObj.dcCompanyId"
:companyType=
"'2'"
placeholder=
"请选择报关公司名称"
:allSupplier=
"this.$attrs.allSupplier"
/>
</el-form-item>
<el-form-item
label=
"截关时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
.cut
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
Obj.dcCutOff
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-radio-group
v-model=
"cusDeclaration
.s
tatus"
>
<el-radio
v-for=
"item in
status
"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
<el-radio-group
v-model=
"cusDeclaration
Obj.dcCustomsS
tatus"
>
<el-radio
v-for=
"item in
this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)
"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 查验 -->
<div
v-show=
"cusDeclaration
.s
tatus === '3'"
>
<div
v-show=
"cusDeclaration
Obj.dcCustomsS
tatus === '3'"
>
<el-form-item
label=
"查验"
>
<el-radio-group
v-model=
"cusDeclaration
.check
"
>
<el-radio
v-for=
"item in
checkItems
"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
<el-radio-group
v-model=
"cusDeclaration
Obj.dcCheckStatus
"
>
<el-radio
v-for=
"item in
this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)
"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
</div>
<!-- 退场 -->
<div
v-show=
"cusDeclaration
.check === '1' || cusDeclaration.check
=== '2'"
>
<div
v-show=
"cusDeclaration
Obj.dcCheckStatus === '1' || cusDeclarationObj.dcCheckStatus
=== '2'"
>
<el-form-item
label=
"查验时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
.c
heckTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
Obj.dcC
heckTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"查验前图片"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cusDeclaration
.checkFile
"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cusDeclaration
Obj.dcCheckPreImg
"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
</el-form-item>
<el-form-item
label=
"新封条"
>
<el-input
v-model=
"cusDeclaration
.new
Seal"
placeholder=
"请输入新封条"
clearable
/>
<el-input
v-model=
"cusDeclaration
Obj.dcStrip
Seal"
placeholder=
"请输入新封条"
clearable
/>
</el-form-item>
</div>
<!-- 放行 -->
<el-form-item
label=
"放行时间"
v-show=
"cusDeclaration
.status === '2' || cusDeclaration.check
=== '2'"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
.release
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-form-item
label=
"放行时间"
v-show=
"cusDeclaration
Obj.dcCustomsStatus === '2' || cusDeclarationObj.dcCheckStatus
=== '2'"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclaration
Obj.dcPass
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"装箱单"
>
...
...
@@ -70,8 +69,8 @@
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit"
>
提交
</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=
"primary"
@
click=
"extraCost"
>
额外费用
</el-button>
</el-row>
...
...
@@ -131,66 +130,25 @@
</template>
<
script
>
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
customsCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
}
from
"
../utils
"
;
/**
* 报关
*/
export
default
{
name
:
"
cusDeclaration
"
,
inheritAttrs
:
false
,
components
:
{
supplierSelect
},
data
()
{
return
{
// 报关方式
methods
:
[
{
value
:
"
1
"
,
label
:
"
整柜买单报关
"
,
},
{
value
:
"
2
"
,
label
:
"
整柜正常报关
"
,
},
{
value
:
"
3
"
,
label
:
"
买单报关+正常报关
"
,
},
],
// 状态
status
:
[
{
value
:
"
1
"
,
label
:
"
报关中
"
,
},
{
value
:
"
2
"
,
label
:
"
放行
"
,
},
{
value
:
"
3
"
,
label
:
"
查验
"
,
},
],
// check
checkItems
:
[
{
value
:
"
1
"
,
label
:
"
退场
"
,
},
{
value
:
"
2
"
,
label
:
"
部分退场
"
,
},
{
value
:
"
3
"
,
label
:
"
查验后放行
"
,
},
],
// 报关对象
cusDeclaration
:
{},
cusDeclaration
Obj
:
{},
// 校验
rules
:
{
cabinetWeigh
t
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
cargoWeigh
t
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
method
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcBoxWg
t
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcGoodsWg
t
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcCustomsType
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
},
// 弹窗配置
dialogConfig
:
{
...
...
@@ -201,25 +159,41 @@ export default {
orderNo
:
""
,
};
},
watch
:
{
"
cusDeclaration.status
"
(
val
)
{
if
(
val
!==
"
3
"
)
{
this
.
$set
(
this
.
cusDeclaration
,
"
check
"
,
""
);
}
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
dcCutOffTime
"
,
"
dcCheckTime
"
,
"
dcPassTime
"
,
]);
oldData
=
formatNumberString
(
oldData
,
[
"
dcCustomsType
"
,
"
dcCustomsStatus
"
,
"
dcCheckStatus
"
,
]);
this
.
cusDeclarationObj
=
oldData
;
},
methods
:
{
/** 提交 */
onSubmit
()
{
onSubmit
(
operateType
)
{
this
.
$refs
[
"
cusDeclarationForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
"
submit!
"
);
customsCreate
({
...
this
.
cusDeclarationObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
// 下载VGM
downloadVGM
()
{
...
...
@@ -232,6 +206,35 @@ export default {
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
自编号
"
);
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
},
// 计算VGM重量
calcVGM
(
dcBoxWgt
,
dcGoodsWgt
)
{
let
dcBoxWgtTmp
=
0
,
dcGoodsWgtTmp
=
0
;
if
(
!
Number
.
isNaN
(
Number
(
dcBoxWgt
)))
{
dcBoxWgtTmp
=
Number
(
dcBoxWgt
);
}
if
(
!
Number
.
isNaN
(
Number
(
dcGoodsWgt
)))
{
dcGoodsWgtTmp
=
Number
(
dcGoodsWgt
);
}
this
.
$set
(
this
.
cusDeclarationObj
,
"
dcVgmWgt
"
,
dcBoxWgtTmp
+
dcGoodsWgtTmp
);
},
},
watch
:
{
"
cusDeclarationObj.dcBoxWgt
"
(
dcBoxWgt
)
{
this
.
calcVGM
(
dcBoxWgt
,
this
.
cusDeclarationObj
.
dcGoodsWgt
);
},
"
cusDeclarationObj.dcGoodsWgt
"
(
dcGoodsWgt
)
{
this
.
calcVGM
(
this
.
cusDeclarationObj
.
dcBoxWgt
,
dcGoodsWgt
);
},
"
cusDeclarationObj.dcCustomsStatus
"
(
val
)
{
if
(
val
!==
"
3
"
)
{
this
.
$set
(
this
.
cusDeclarationObj
,
"
dcCheckStatus
"
,
""
);
}
},
},
};
</
script
>
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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 @
4bc0e2fd
...
...
@@ -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
,
...
...
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