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
1dab8cab
Commit
1dab8cab
authored
Dec 28, 2023
by
邓春圆
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/release' into release
parents
a4580857
0dd3dc37
Changes
30
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
681 additions
and
173 deletions
+681
-173
box.js
src/api/ecw/box.js
+12
-0
boxAir.js
src/api/ecw/boxAir.js
+12
-0
order.js
src/api/ecw/order.js
+8
-0
index.vue
src/components/ImageUpload/index.vue
+3
-3
index.vue
src/views/ecw/banner/index.vue
+2
-2
indexAir.vue
src/views/ecw/box/indexAir.vue
+47
-3
query.vue
src/views/ecw/box/query.vue
+1
-0
queryAir.vue
src/views/ecw/box/queryAir.vue
+38
-7
regError.vue
src/views/ecw/box/regError.vue
+3
-3
checkout.vue
src/views/ecw/box/shippingAir/nodePage/checkout.vue
+14
-0
index.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/index.vue
+3
-3
pkgPage.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
+43
-8
printTag.vue
src/views/ecw/box/shippingAir/nodePage/mergePkg/printTag.vue
+44
-47
subMaterial.vue
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
+1
-1
index.vue
src/views/ecw/box/shippingAir/nodePage/tally/index.vue
+148
-5
seaProcess.vue
src/views/ecw/box/shippingAir/seaProcess.vue
+8
-0
index.vue
src/views/ecw/customer/index.vue
+1
-1
myAchievement.vue
src/views/ecw/deptTarget/myAchievement.vue
+15
-8
myDeptAchievement.vue
src/views/ecw/deptTarget/myDeptAchievement.vue
+15
-7
detail.vue
src/views/ecw/order/detail.vue
+3
-0
edit.vue
src/views/ecw/order/edit.vue
+2
-2
penddingList.vue
src/views/ecw/order/penddingList.vue
+1
-1
prepayDeal.vue
src/views/ecw/order/prepayDeal.vue
+100
-42
index.vue
src/views/ecw/order/splitApply/index.vue
+2
-21
ChooseOrderProducts.vue
...ews/ecw/order/stocking/components/ChooseOrderProducts.vue
+94
-0
NewProduct.vue
src/views/ecw/order/stocking/components/NewProduct.vue
+1
-1
Package.vue
src/views/ecw/order/stocking/components/Package.vue
+1
-1
index.vue
src/views/ecw/order/stocking/index.vue
+2
-2
WarehouseRecordDetail.vue
...cw/order/warehousing/components/WarehouseRecordDetail.vue
+50
-4
index.vue
src/views/ecw/productPrice/index.vue
+7
-1
No files found.
src/api/ecw/box.js
View file @
1dab8cab
...
...
@@ -328,6 +328,18 @@ export function downloadLoadGoodsList(params) {
});
}
/**
* 下载空运已装单
*/
export
function
downloadLoadGoods
(
params
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/downloadAirLoadGoodsList
"
,
method
:
"
get
"
,
timeout
:
120000
,
params
,
})
}
// 下载预装单
export
function
downloadPreloadGoodsList
(
params
)
{
return
request
({
...
...
src/api/ecw/boxAir.js
View file @
1dab8cab
...
...
@@ -391,3 +391,15 @@ export function getLineInfo(params) {
params
});
}
/**
* 下载空运已装单
*/
export
function
downloadLoadGoods
(
params
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/downloadAirLoadGoodsList
"
,
method
:
"
get
"
,
timeout
:
120000
,
params
,
})
}
\ No newline at end of file
src/api/ecw/order.js
View file @
1dab8cab
...
...
@@ -1023,3 +1023,11 @@ export function getParentOrder(orderId){
method
:
'
get
'
})
}
// 获取订单入仓商品明细通用属性集合,用于备货选择订单商品到明细
export
function
getOrderItemCommonAttr
(
orderId
){
return
request
({
url
:
'
/order/order-warehouse-in/get-order-warehouse-in-common-attr-list?orderId=
'
+
orderId
,
method
:
'
get
'
})
}
src/components/ImageUpload/index.vue
View file @
1dab8cab
...
...
@@ -207,9 +207,9 @@ export default {
},
// 预览
handlePictureCardPreview
(
file
)
{
//
this.dialogImageUrl = file.url;
//
this.dialogVisible = true;
window
.
open
(
file
.
url
)
this
.
dialogImageUrl
=
file
.
url
;
this
.
dialogVisible
=
true
;
//
window.open(file.url)
},
// 对象转成指定字符串分隔
listToString
(
list
,
separator
)
{
...
...
src/views/ecw/banner/index.vue
View file @
1dab8cab
...
...
@@ -101,7 +101,7 @@
<el-form-item
:label=
"$t('英文内容')"
prop=
"contentEn"
>
<editor
v-model=
"form.contentEn"
:min-height=
"150"
/>
</el-form-item>
<el-form-item
:label=
"$t('WEB端广告图片(建议尺寸长*宽')+'
902*31
0)'"
prop=
"bannerUrlWeb"
>
<el-form-item
:label=
"$t('WEB端广告图片(建议尺寸长*宽')+'
1120*45
0)'"
prop=
"bannerUrlWeb"
>
<el-col
:span=
"8"
>
<el-input
v-model=
"form.bannerUrlWeb"
:placeholder=
"$t('请上传WEB端广告图片')"
/>
</el-col>
...
...
@@ -113,7 +113,7 @@
</el-button>
</el-upload>
</el-form-item>
<el-form-item
:label=
"$t('APP端广告图片(建议尺寸长*宽')+'6
88*29
4)'"
prop=
"bannerUrlApp"
>
<el-form-item
:label=
"$t('APP端广告图片(建议尺寸长*宽')+'6
75*30
4)'"
prop=
"bannerUrlApp"
>
<el-col
:span=
"8"
>
<el-input
v-model=
"form.bannerUrlApp"
:placeholder=
"$t('请上传APP端广告图片')"
/>
</el-col>
...
...
src/views/ecw/box/indexAir.vue
View file @
1dab8cab
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"
6
8px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"
8
8px"
>
<el-form-item
:label=
"$t('自编号')"
prop=
"selfNo"
>
<el-input
v-model=
"queryParams.selfNo"
:placeholder=
"$t('请输入自编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -43,6 +43,18 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的港清关')"
prop=
"destinationClearance"
>
<el-select
v-model=
"queryParams.destinationClearance"
:placeholder=
"$t('请选择目的港清关')"
clearable
size=
"small"
>
<el-option
v-for=
"item in destinationClearanceData"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('发货方式')"
prop=
"deliveryType"
>
<el-select
v-model=
"queryParams.deliveryType"
:placeholder=
"$t('请选择发货方式')"
clearable
size=
"small"
>
<el-option
v-for=
"item in deliveryTypeData"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
...
...
@@ -134,12 +146,12 @@
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"downloadPreloadGoodsList"
v-hasPermi=
"['shipment:air:download:downloadPreloadGoodsList']"
>
{{
$t
(
'
预装单
'
)
}}
</el-dropdown-item>
<!--el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:air:download:downloadLoadGoodsList']">
{{
$t
(
'
已装单
'
)
}}
</el-dropdown-item-->
<el-dropdown-item
command=
"downloadReceivableList"
v-hasPermi=
"['shipment:air:download:downloadReceivableList']"
>
{{
$t
(
'
应收汇总表
'
)
}}
</el-dropdown-item>
<el-dropdown-item
command=
"downloadAgentListFiles"
v-hasPermi=
"['shipment:air:download:downloadAgentListFiles']"
>
agent list
</el-dropdown-item>
<el-dropdown-item
command=
"downloadSoncapFiles"
v-hasPermi=
"['shipment:air:download:downloadSoncapFiles']"
>
soncap
</el-dropdown-item>
<el-dropdown-item
command=
"zipDownload"
v-hasPermi=
"['shipment:air:download:zipDownload']"
>
{{
$t
(
'
提货单
'
)
}}
</el-dropdown-item>
<el-dropdown-item
command=
"downloadLadingCopy"
v-hasPermi=
"['shipment:air:download:downloadLadingCopy']"
>
{{
$t
(
'
提单Copy
'
)
}}
</el-dropdown-item>
<el-dropdown-item
command=
"downloadLoadGoods"
v-hasPermi=
"['shipment:air:download:downloadLoadGoods']"
>
{{
$t
(
'
已装单
'
)
}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</
template
>
...
...
@@ -211,6 +223,7 @@ import {
}
from
'
@/api/ecw/box
'
import
{
getLineInfo
}
from
'
@/api/ecw/boxAir
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
import
{
downloadLoadGoods
}
from
'
@/api/ecw/boxAir
'
import
{
getWarehouseList
}
from
'
@/api/ecw/warehouse
'
import
costForm
from
'
./costForm.vue
'
import
regError
from
'
./regError.vue
'
...
...
@@ -331,7 +344,31 @@ export default {
'
13
'
:
430
,
'
14
'
:
435
,
'
15
'
:
438
,
}
,
destinationClearanceData
:
[
{
label
:
'
我司清关
'
,
value
:
1
}
,
{
label
:
'
合作方清关
'
,
value
:
2
}
,
{
label
:
'
客户
'
,
value
:
3
}
,
],
deliveryTypeData
:
[
{
label
:
'
多票
'
,
value
:
1
}
,
{
label
:
'
单票
'
,
value
:
2
}
]
}
}
,
computed
:
{
...
...
@@ -597,6 +634,13 @@ export default {
case "downloadLadingCopy":
downloadFileByUrl(command, {shipmentId: row.id
}
);
break;
case "downloadLoadGoods":
if(row.tyStatus < 2112){
this.$message.error('请先完成理货后,再下载已装单')
return
}
this.exportExcel(downloadLoadGoods, { shipmentId: row.id
}
, this.$t("已装单") + `
(
$
{
row
.
selfNo
}
).
xls
`)
break;
case "handle":
const { noticeType
}
= row;
if ([1, 2, 3, 4, 8, 14].includes(noticeType)) {
...
...
src/views/ecw/box/query.vue
View file @
1dab8cab
...
...
@@ -573,6 +573,7 @@ export default {
fileFormat ?? "xlsx"
);
}
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
},
handleApproval(id) {
this.$router.push({path: '/bpm/process-instance/detail', query: {id: id}})
...
...
src/views/ecw/box/queryAir.vue
View file @
1dab8cab
...
...
@@ -166,7 +166,7 @@
</el-table-column>
<el-table-column
prop=
"billAbnId"
:label=
"$t('异常')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE
.BOX_AIR_SHIPMENT_PROCESS
"
:value=
"scope.row.billAbnId"
/>
<dict-tag
:type=
"DICT_TYPE
[getregprocess(scope.row.opStep)]
"
:value=
"scope.row.billAbnId"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"abnDetail"
:label=
"$t('异常描述')"
align=
"center"
width=
"300"
></el-table-column>
...
...
@@ -321,27 +321,33 @@ export default {
costDetail
:
{},
// 下载
downloadList
:
[
{
title
:
this
.
$t
(
"
预装单
"
),
serviceName
:
"
downloadPreloadGoodsList
"
,
hasPermi
:
"
shipment:
box
:download:downloadPreloadGoodsList
"
},
{
title
:
this
.
$t
(
"
预装单
"
),
serviceName
:
"
downloadPreloadGoodsList
"
,
hasPermi
:
"
shipment:
air
:download:downloadPreloadGoodsList
"
},
// { title: this.$t("已装单"), serviceName: "downloadLoadGoodsList", hasPermi: "shipment:box:download:downloadLoadGoodsList" },
{
title
:
this
.
$t
(
"
应收汇总表
"
),
serviceName
:
"
downloadReceivableList
"
,
hasPermi
:
"
shipment:
box
:download:downloadReceivableList
"
},
{
title
:
this
.
$t
(
"
应收汇总表
"
),
serviceName
:
"
downloadReceivableList
"
,
hasPermi
:
"
shipment:
air
:download:downloadReceivableList
"
},
{
title
:
this
.
$t
(
"
提货单
"
),
serviceName
:
"
zipDownload
"
,
fileFormat
:
"
zip
"
,
hasPermi
:
"
shipment:
box
:download:zipDownload
"
hasPermi
:
"
shipment:
air
:download:zipDownload
"
},
{
title
:
"
agent list
"
,
serviceName
:
"
downloadAgentListFiles
"
,
type
:
"
url
"
,
hasPermi
:
"
shipment:
box
:download:downloadAgentListFiles
"
hasPermi
:
"
shipment:
air
:download:downloadAgentListFiles
"
},
{
title
:
"
soncap
"
,
serviceName
:
"
downloadSoncapFiles
"
,
type
:
"
url
"
,
hasPermi
:
"
shipment:
box
:download:downloadSoncapFiles
"
},
{
title
:
"
soncap
"
,
serviceName
:
"
downloadSoncapFiles
"
,
type
:
"
url
"
,
hasPermi
:
"
shipment:
air
:download:downloadSoncapFiles
"
},
{
title
:
this
.
$t
(
"
提单Copy
"
),
serviceName
:
"
downloadLadingCopy
"
,
type
:
"
url
"
,
hasPermi
:
"
shipment:box:download:downloadLadingCopy
"
hasPermi
:
"
shipment:air:download:downloadLadingCopy
"
},
{
title
:
this
.
$t
(
"
已装单
"
),
serviceName
:
"
downloadLoadGoods
"
,
type
:
"
url
"
,
hasPermi
:
"
shipment:air:download:downloadLoadGoods
"
},
],
// 选中行
...
...
@@ -362,6 +368,24 @@ export default {
};
},
methods
:
{
getregprocess
(
val
)
{
var
data
=
''
switch
(
val
){
case
10
:
data
=
'
FLYING_TICKET_EXCEPTION
'
break
;
case
12
:
data
=
'
ARRIVAL_TICKET_EXCEPTION
'
break
case
13
:
data
=
'
CLEARANCE_TICKET_EXCEPTION
'
break
default
:
data
=
'
BOX_SHIPPING_TICKET_EXCEPTION
'
break
}
return
data
},
selectable
(
row
,
index
)
{
if
(
row
.
abnormalDealStatus
===
1
)
return
false
;
return
true
;
...
...
@@ -641,6 +665,12 @@ export default {
},
formatDate
,
downloadDetailFile
(
row
)
{
if
(
row
.
serviceName
==
'
downloadLoadGoods
'
){
if
(
this
.
shipmentObj
.
tyStatus
<
2112
){
this
.
$message
.
error
(
'
请先完成理货后,再下载已装单
'
)
return
}
}
const
{
fileFormat
,
type
}
=
row
;
if
(
type
===
"
url
"
)
{
downloadFileByUrl
(
row
.
serviceName
,
{
shipmentId
:
this
.
shipmentId
});
...
...
@@ -655,6 +685,7 @@ export default {
fileFormat ?? "xlsx"
);
}
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
},
handleApproval(id) {
this.$router.push({path: '/bpm/process-instance/detail', query: {id: id}})
...
...
src/views/ecw/box/regError.vue
View file @
1dab8cab
...
...
@@ -27,12 +27,12 @@
<userSelect
v-model=
"errorObj.notifyUsers"
:placeholder=
"$t('请选择通知人')"
:allUsers=
"this.$attrs.allUsers"
multiple
/>
</el-form-item>
<
!--
<el-form-item
:label=
"$t('是否更新订单状
态')"
>
<el-radio-group
v-model=
"errorObj.
order
Status"
>
<
el-form-item
:label=
"$t('是否更新订单动
态')"
>
<el-radio-group
v-model=
"errorObj.
update
Status"
>
<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=
"$t('中文内容')"
>
<
!--
<
el-form-item
:label=
"$t('中文内容')"
>
<el-input
v-model=
"errorObj.contentZh"
type=
"textarea"
rows=
"2"
:placeholder=
"$t('请输入中文内容')"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('英文内容')"
>
...
...
src/views/ecw/box/shippingAir/nodePage/checkout.vue
View file @
1dab8cab
...
...
@@ -60,6 +60,14 @@
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
v-model=
"airCheckoutObj.checkoutTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('计划箱数')"
prop=
"planNum"
>
<el-input-number
v-model=
"airCheckoutObj.planNum"
:controls=
"false"
:precision=
"0"
disabled
/>
</el-form-item>
<el-form-item
:label=
"$t('出仓箱数')"
prop=
"realNum"
>
<el-input-number
v-model=
"airCheckoutObj.realNum"
:controls=
"false"
:precision=
"0"
/>
</el-form-item>
<el-form-item
:label=
"$t('出仓影像')"
>
<ImageUpload
:limit=
"1"
:isShowTip=
false
v-model=
"airCheckoutObj.checkoutFiles"
/>
</el-form-item>
...
...
@@ -113,6 +121,8 @@ export default {
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
checkoutTime
"
]);
this
.
airCheckoutObj
=
oldData
;
this
.
$set
(
this
.
airCheckoutObj
,
'
planNum
'
,
this
.
$attrs
.
shipmentObj
.
planNum
)
this
.
$set
(
this
.
airCheckoutObj
,
'
realNum
'
,
this
.
$attrs
.
shipmentObj
.
realNum
)
let
shipmentdData
=
{
...
this
.
$attrs
.
shipmentObj
[
"
boxAirShipmentBackVO
"
]
};
shipmentdData
=
formatDateStr
(
shipmentdData
,
[
"
deliverTime
"
]);
...
...
@@ -124,6 +134,10 @@ export default {
onSubmit
(
operateType
)
{
this
.
$refs
[
"
airCheckoutForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
this
.
airCheckoutObj
.
planNum
!=
this
.
airCheckoutObj
.
realNum
){
this
.
$message
.
error
(
this
.
$t
(
"
出仓件数与计划出仓件数不一致,请检查
"
));
return
;
}
airCheckoutCreate
({
...
this
.
airCheckoutObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/index.vue
View file @
1dab8cab
...
...
@@ -118,7 +118,7 @@
<pkg-page
v-if=
"pkgPageType == 2"
:pkgData=
"pkgData"
:shipmentObj=
"shipmentObj"
@
closeDialog=
"closeDialog"
@
reload=
"getList"
/>
</el-dialog>
<!-- 打印标签 -->
<el-dialog
:title=
"$t('
集运
封箱标签')"
:visible.sync=
"printdialogVisible"
width=
"350px"
:modal-append-to-body=
"false"
append-to-body
>
<el-dialog
:title=
"$t('封箱标签')"
:visible.sync=
"printdialogVisible"
width=
"350px"
:modal-append-to-body=
"false"
append-to-body
>
<print-tag
v-if=
"printdialogVisible"
:tagData=
"tagData"
/>
</el-dialog>
...
...
@@ -129,7 +129,7 @@
<el-radio-button
:label=
"2"
>
{{ $t('已装箱列表') }}
</el-radio-button>
</el-radio-group>
</div>
<pkg-page
:pkgData=
"showPkgData"
:shipmentObj=
"shipmentObj"
flag=
"show"
@
closeDialog=
"closeDialog"
@
reload=
"getList"
/>
<pkg-page
v-if=
"showPagedialogVisible"
:pkgData=
"showPkgData"
:shipmentObj=
"shipmentObj"
flag=
"show"
@
closeDialog=
"closeDialog"
@
reload=
"getList"
/>
</el-dialog>
<el-row
style=
"margin-top: 15px"
class=
"operate-button"
>
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/pkgPage.vue
View file @
1dab8cab
...
...
@@ -63,25 +63,43 @@
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.page"
:limit.sync=
"queryParams.rows"
@
pagination=
"getList"
/>
</el-row>
<!-- 封箱 -->
<el-dialog
:title=
"$t('封箱确认')"
:visible.sync=
"sealBoxdialogVisible"
width=
"
7
00px"
:modal-append-to-body=
"false"
append-to-body
>
<el-dialog
:title=
"$t('封箱确认')"
:visible.sync=
"sealBoxdialogVisible"
width=
"
8
00px"
:modal-append-to-body=
"false"
append-to-body
>
<el-form
ref=
"sealBoxForm"
:model=
"sealBoxForm"
label-width=
"100px"
>
<el-form-item
:label=
"$t('箱号')"
prop=
"pkgNum"
>
{{ pkgData.pkgNum }}
</el-form-item>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('长')"
prop=
"pkgLength"
>
<el-input-number
v-model=
"sealBoxForm.pkgLength"
:controls=
"false"
:precision=
"2"
style=
"width: 100px"
/>
<el-form-item
:label=
"$t('长')"
prop=
"pkgLength"
:rules=
"[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('长度保留两位小数')}
]"
>
<el-input
v-model=
"sealBoxForm.pkgLength"
style=
"width: 150px"
@
change=
"culSumVolume"
>
<
template
slot=
"append"
>
{{
$t
(
'
cm
'
)
}}
</
template
>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('宽')"
prop=
"pkgWidth"
>
<el-input-number
v-model=
"sealBoxForm.pkgWidth"
:controls=
"false"
:precision=
"2"
style=
"width: 100px"
/>
<el-form-item
:label=
"$t('宽')"
prop=
"pkgWidth"
:rules=
"[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('宽度保留两位小数')}
]"
>
<el-input
v-model=
"sealBoxForm.pkgWidth"
style=
"width: 150px"
@
change=
"culSumVolume"
>
<
template
slot=
"append"
>
{{
$t
(
'
cm
'
)
}}
</
template
>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('高')"
prop=
"pkgHight"
>
<el-input-number
v-model=
"sealBoxForm.pkgHight"
:controls=
"false"
:precision=
"2"
style=
"width: 100px"
/>
<el-form-item
:label=
"$t('高')"
prop=
"pkgHight"
:rules=
"[
{ pattern: /^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$/, message: $t('高度保留两位小数')}
]"
>
<el-input
v-model=
"sealBoxForm.pkgHight"
style=
"width: 150px"
@
change=
"culSumVolume"
>
<
template
slot=
"append"
>
{{
$t
(
'
cm
'
)
}}
</
template
>
</el-input>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -122,7 +140,7 @@
</div>
</el-dialog>
<!-- 打印标签 -->
<el-dialog
:title=
"$t('
集运
封箱标签')"
:visible.sync=
"printdialogVisible"
width=
"350px"
:modal-append-to-body=
"false"
append-to-body
>
<el-dialog
:title=
"$t('封箱标签')"
:visible.sync=
"printdialogVisible"
width=
"350px"
:modal-append-to-body=
"false"
append-to-body
>
<print-tag
v-if=
"printdialogVisible"
:tagData=
"tagData"
/>
</el-dialog>
</el-row>
...
...
@@ -188,6 +206,23 @@ export default {
})
return
arr
.
toString
()
},
//计算封箱体积
culSumVolume
()
{
let
temp
=
this
.
sealBoxForm
.
pkgLength
*
this
.
sealBoxForm
.
pkgWidth
*
0.01
*
0.01
let
sumVolume
=
this
.
accMul
(
temp
,
this
.
sealBoxForm
.
pkgHight
*
0.01
)
if
(
sumVolume
<=
0
){
sumVolume
=
0.01
}
this
.
$set
(
this
.
sealBoxForm
,
'
sumVolume
'
,
sumVolume
)
},
accMul
(
arg1
,
arg2
)
{
var
m
=
0
,
s1
=
arg1
.
toString
(),
s2
=
arg2
.
toString
();
try
{
m
+=
s1
.
split
(
"
.
"
)[
1
].
length
}
catch
(
e
){}
try
{
m
+=
s2
.
split
(
"
.
"
)[
1
].
length
}
catch
(
e
){}
let
num
=
Number
(
s1
.
replace
(
"
.
"
,
""
))
*
Number
(
s2
.
replace
(
"
.
"
,
""
))
/
Math
.
pow
(
10
,
m
)
return
num
.
toFixed
(
2
)
},
getpositionNo
(
arr
){
if
(
!
arr
)
return
arr
let
data
=
[]
...
...
src/views/ecw/box/shippingAir/nodePage/mergePkg/printTag.vue
View file @
1dab8cab
<
template
>
<div>
<div>
<div
class=
"tag"
>
<div
style=
"display: flex;height: 18
0px;"
>
<div
style=
"display: flex;height: 16
0px;"
>
<div
style=
"border-right: 1px solid #999; width: 140px"
>
<div
>
<div
style=
"text-align: center"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 3mm"
>
{{
$t
(
'
扫码查看产品数量
'
)
}}
</span>
</p>
<img
:src=
"tagData.qrCodeUrl"
:alt=
"tagData.qrCodeUrl"
style=
"width: 26mm"
/>
<img
:src=
"tagData.qrCodeUrl"
:alt=
"tagData.qrCodeUrl"
style=
"width: 26mm"
/>
<p
style=
"margin-top: -1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
mergePkgNo
}}
</span>
</p>
...
...
@@ -17,15 +17,17 @@
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
mergePkgNo
}}
</span>
</p>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
company
}}
</span>
</p>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
startWarehouse
}}
->
{{
tagData
.
endWarehouse
}}
</span>
<span
style=
"text-align: center; font-weight: 600; font-size: 4mm"
>
{{
tagData
.
startWarehouse
}}
->
{{
tagData
.
endWarehouse
}}
</span>
</p>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"border-top: 1px solid #999;margin-left: 10px;"
/>
<div
style=
"display: flex;margin-top: 10px;"
>
<div
style=
"border-right: 1px solid #999;width: 45px;"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
...
...
@@ -40,18 +42,13 @@
</div>
</div>
</div>
<div
style=
"border-top: 1px solid #999;margin: 10px;"
/>
<!--
<div>
<img
:src=
"tagData.barcodeUrl"
style=
"width:250px;height: 50px;"
/>
</div>
-->
<div
style=
"height: 50px;"
>
<p
style=
"margin-top: 1mm; text-align: center"
>
<span
style=
"text-align: center; font-weight: 600; font-size: 3mm"
>
E
&
C Logistics: www.groupage.com
</span>
</p>
<div
style=
"border-top: 1px solid #999;margin: 10px;"
/>
<div
style=
"padding: 10px; width: 250px; height: 20px; text-align: center; font-size: 12px; color:#000;"
>
E
&
C Logistics: www.groupage.com
</div>
</div>
<div
style=
"text-align:center;margin-top: 20px;"
>
<el-button
type=
"primary"
@
click=
"print"
>
{{
$t
(
'
确定打印
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"print"
>
{{
$t
(
'
确定打印
'
)
}}
</el-button>
</div>
</div>
</
template
>
...
...
@@ -79,7 +76,7 @@ export default {
LODOP
.
SET_PRINT_PAGESIZE
(
0
,
800
,
600
,
"
TAG
"
);
for
(
let
i
in
items
){
LODOP
.
ADD_PRINT_HTM
(
"
2mm
"
,
0
,
800
,
600
,
items
[
i
].
inn
erHTML
);
LODOP
.
ADD_PRINT_HTM
(
0
,
0
,
800
,
600
,
items
[
i
].
out
erHTML
);
if
(
i
<
items
.
length
){
LODOP
.
NewPage
()
}
...
...
src/views/ecw/box/shippingAir/nodePage/subMaterial.vue
View file @
1dab8cab
...
...
@@ -140,7 +140,7 @@ export default {
this
.
$set
(
this
.
subMaterialObj
,
'
soNo
'
,
this
.
shipmentObj
.
bookAirInfo
?.
sono
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
blMblNo
'
,
this
.
shipmentObj
.
bookAirInfo
?.
blNo
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
markNo
'
,
"
N/M
"
)
this
.
$set
(
this
.
subMaterialObj
,
'
startPortId
'
,
this
.
shipmentObj
.
bookAirInfo
?.
big
PortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
startPortId
'
,
this
.
shipmentObj
.
bookAirInfo
?.
departure
PortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
shipCompanyId
'
,
Number
(
this
.
shipmentObj
.
bookAirInfo
?.
shipCompanyType
)
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
destPortId
'
,
this
.
shipmentObj
.
bookAirInfo
?.
destPortId
||
undefined
)
this
.
$set
(
this
.
subMaterialObj
,
'
kgs
'
,
this
.
shipmentObj
.
customsInfo
?.
dcGoodsWgt
||
undefined
)
...
...
src/views/ecw/box/shippingAir/nodePage/tally/index.vue
View file @
1dab8cab
...
...
@@ -20,9 +20,21 @@
</el-card>
<el-row
style=
"margin-top: 15px"
>
<el-row>
<el-row
class=
"table-title"
>
<div>
<el-button
:disabled=
"shipmentObj.approvaling"
size=
"small"
type=
"primary"
@
click=
"()=>tallyClick('batch')"
>
{{
$t
(
'
批量理货
'
)
}}
</el-button>
<el-button
:disabled=
"shipmentObj.approvaling"
size=
"small"
type=
"primary"
@
click=
"()=>removeClick('batch')"
>
{{
$t
(
'
批量移出
'
)
}}
</el-button>
</div>
<div
v-if=
"false"
>
<template>
<el-input
v-model=
"qrCode"
:placeholder=
"$t('请输入二维码/条码编号')"
clearable
></el-input>
<el-button
type=
"primary"
@
click=
"handlerBatchCreate('single')"
>
{{
$t
(
'
确定
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"handlerClick('batchInput',$t('批量输入'))"
>
{{
$t
(
'
批量输入
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"handlerClick('correction',$t('理货纠错'))"
>
{{
$t
(
'
理货纠错
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"handlerClick('correctionOrder',$t('批量理货纠错'))"
>
{{
$t
(
'
批量理货纠错
'
)
}}
</el-button>
</
template
>
</div>
</el-row>
<el-row
style=
"margin-top: 5px"
>
<el-table
border
:data=
"tallyList"
@
select=
"checkboxSelect"
@
select-all=
"checkboxSelect"
max-height=
"600px"
>
...
...
@@ -123,13 +135,83 @@
append-to-body
@
cancel=
"currentTurnExceptionOrder=null"
@
success=
"currentTurnExceptionOrder=null"
/>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
:fullscreen=
"dialogConfig.fullscreen"
:width=
"dialogConfig.width"
:modal-append-to-body=
false
append-to-body
>
<!-- 装柜纠错 -->
<
template
v-if=
"dialogConfig.type === 'correction' && dialogConfig.dialogVisible"
>
<el-form
ref=
"correctionForm"
:rules=
"rules"
:model=
"correctionObj"
label-position=
"top"
>
<el-form-item
:label=
"$t('装柜纠错(二维码/条形码编号)')"
prop=
"qrCode"
>
<el-input
v-model=
"correctionObj.qrCode"
:placeholder=
"$t('请输入二维码/条形码编号')"
clearable
/>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit('correctionForm')"
>
{{
$t
(
'
提交
'
)
}}
</el-button>
<el-button
@
click=
"closeDialog2"
>
{{
$t
(
'
取消
'
)
}}
</el-button>
</el-row>
</
template
>
<!-- 批量装柜纠错(订单号) -->
<
template
v-if=
"dialogConfig.type === 'correctionOrder' && dialogConfig.dialogVisible"
>
<el-form
ref=
"orderForm"
:rules=
"rules"
:model=
"orderObj"
label-position=
"top"
>
<el-form-item
:label=
"$t('装柜纠错') +'(' + $t('订单号') + ')'"
prop=
"orderNo"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"orderObj.orderNo"
:placeholder=
"$t('请输入,多个以逗号分隔')"
clearable
/>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit('orderForm')"
>
{{
$t
(
'
提交
'
)
}}
</el-button>
<el-button
@
click=
"closeDialog2"
>
{{
$t
(
'
取消
'
)
}}
</el-button>
</el-row>
</
template
>
<!-- 装柜批量输入 -->
<
template
v-if=
"dialogConfig.type === 'batchInput' && dialogConfig.dialogVisible"
>
<el-form
ref=
"batchForm"
:rules=
"rules"
:model=
"batchObj"
>
<el-form-item
label=
""
prop=
"qrCode"
class=
"two-element"
>
<el-input
v-model=
"batchObj.qrCode"
:placeholder=
"$t('请输入订单号')"
clearable
/>
<el-button
style=
"marginLeft:10px;"
type=
"primary"
@
click=
"queryOrderInfo"
>
{{
$t
(
'
确定
'
)
}}
</el-button>
</el-form-item>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('订单号')"
>
{{
boxOrderInfo
.
orderNo
}}
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('箱数')"
>
<el-input-number
v-if=
"boxOrderInfo.isExternalWarehouse === 1"
v-model=
"batchObj.boxNum"
:min=
"0"
:max=
"boxOrderInfo.num"
/>
<template
v-else
>
{{
boxOrderInfo
.
num
}}
</
template
>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('方数')"
>
{{getTotlContent(boxOrderInfo, ['volume'])}}
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('重量')"
>
{{getTotlContent(boxOrderInfo, ['weight'])}}
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
:disabled=
"boxOrderInfo.orderId ? false : true"
@
click=
"batchLoad"
>
{{$t('提交')}}
</el-button>
<el-button
@
click=
"closeDialog2"
>
{{$t('取消')}}
</el-button>
</el-row>
</template>
</el-dialog>
</div>
</template>
<
script
>
import
batchTally
from
"
./batchTally.vue
"
;
import
{
getTallyList
,
tallyRemove
,
tallyCommit
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDate
,
serviceMsg
}
from
"
../../utils
"
;
import
{
formatDate
,
serviceMsg
,
getTotlContent
}
from
"
../../utils
"
;
import
WarehouseDetail
from
"
./warehouseDetail
"
;
import
{
getOrder
,
orderSpecialNeed
}
from
"
@/api/ecw/order
"
;
import
Exception
from
"
@/views/ecw/box/components/Exception.vue
"
;
...
...
@@ -163,7 +245,27 @@ export default {
fullscreen
:
false
,
},
// 当前转异订单
currentTurnExceptionOrder
:
null
currentTurnExceptionOrder
:
null
,
// 二维码/条码编号
qrCode
:
""
,
// 批量输入
batchObj
:
{
boxNum
:
0
,
},
// 批量纠错(订单号)
orderObj
:
{},
// 纠错
correctionObj
:
{},
// 弹窗配置
dialogConfig
:
{
title
:
""
,
dialogVisible
:
false
,
width
:
"
30%
"
,
type
:
""
,
fullscreen
:
false
,
},
// 订单信息
boxOrderInfo
:
{},
};
},
created
()
{
...
...
@@ -172,6 +274,7 @@ export default {
methods
:
{
// 格式化日期
formatDate
,
getTotlContent
,
//去重
notset
(
string
){
if
(
!
string
)
return
string
...
...
@@ -357,6 +460,31 @@ export default {
this
.
showWarehouseInItemId
=
row
.
orderItemId
;
});
},
/** 点击事件统一入口 */
handlerClick
(
type
,
title
)
{
this
.
shwoDialog
({
type
,
title
});
},
/** 弹窗事件 */
shwoDialog
(
config
)
{
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
config
.
title
);
this
.
$set
(
this
.
dialogConfig
,
"
type
"
,
config
.
type
);
switch
(
config
.
type
)
{
case
"
batchInput
"
:
this
.
$set
(
this
.
dialogConfig
,
"
fullscreen
"
,
false
);
this
.
batchObj
=
{
boxNum
:
0
};
this
.
boxOrderInfo
=
{};
break
;
case
"
correction
"
:
this
.
$set
(
this
.
dialogConfig
,
"
fullscreen
"
,
false
);
this
.
correctionObj
=
{};
break
;
case
"
correctionOrder
"
:
this
.
$set
(
this
.
dialogConfig
,
"
fullscreen
"
,
false
);
this
.
orderObj
=
{};
break
;
}
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
},
},
computed
:
{
/* 获取仓库 */
...
...
@@ -371,4 +499,19 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.table-title
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
10px
;
>
div
:first-child
{
flex
:
1
;
font-size
:
16px
;
}
>
div
:last-child
{
display
:
flex
;
>
.el-input
{
margin-right
:
10px
;
}
}
}
</
style
>
src/views/ecw/box/shippingAir/seaProcess.vue
View file @
1dab8cab
...
...
@@ -186,6 +186,10 @@ export default {
break
;
// 清关
case
"
cusClearance
"
:
if
(
!
this
.
shipmentObj
.
sapStatus
||
this
.
shipmentObj
.
sapStatus
<=
151
){
this
.
$message
.
error
(
this
.
$t
(
"
请先完成到港操作
"
));
return
;
}
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
break
;
// AGENT
...
...
@@ -220,6 +224,10 @@ export default {
break
;
// 卸柜
case
"
unloading
"
:
if
(
!
this
.
shipmentObj
.
sapStatus
||
this
.
shipmentObj
.
sapStatus
<=
151
){
this
.
$message
.
error
(
this
.
$t
(
"
请先完成到港操作
"
));
return
;
}
// 卸柜反审
const
unStatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
186
].
includes
(
unStatus
))
{
...
...
src/views/ecw/customer/index.vue
View file @
1dab8cab
...
...
@@ -66,7 +66,7 @@
</el-form>
<!-- 操作工具栏 -->
<div
style=
"color: red;margin-bottom: 5px;"
>
<div
v-if=
"path === '/customer/customer'"
style=
"color: red;margin-bottom: 5px;"
>
注意:创建的客户需接收
</div>
<el-row
:gutter=
"10"
class=
"mb8"
>
...
...
src/views/ecw/deptTarget/myAchievement.vue
View file @
1dab8cab
...
...
@@ -48,19 +48,19 @@
<el-form-item
:label=
"$t('联系方式')"
prop=
"key"
>
<el-input
v-model=
"queryParams.phoneNew"
:placeholder=
"$t('请输入联系方式')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"
customerService
"
>
<el-select
clearable
v-model=
"queryParams.
customerService
"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"
userId
"
>
<el-select
clearable
v-model=
"queryParams.
userId
"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"
destination
Id"
>
<el-select
v-model=
"queryParams.
origin
Id"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-form-item
:label=
"$t('始发仓')"
prop=
"
startWarehouse
Id"
>
<el-select
v-model=
"queryParams.
startWarehouse
Id"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的仓')"
prop=
"dest
inationId
"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.dest
inationId
"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-form-item
:label=
"$t('目的仓')"
prop=
"dest
WarehouseIdArr
"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.dest
WarehouseIdArr
"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -256,6 +256,9 @@
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
getWarehouseList
().
then
(
res
=>
{
this
.
warehouseList
=
res
.
data
})
},
methods
:
{
getChannelList
()
{
...
...
@@ -295,8 +298,12 @@
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
const
params
=
{...
this
.
queryParams
}
if
(
params
.
destWarehouseIdArr
?.
length
){
params
.
destWarehouseIds
=
params
.
destWarehouseIdArr
.
join
(
'
,
'
)
}
// 执行查询
myAchievementByPage
(
this
.
queryP
arams
).
then
(
response
=>
{
myAchievementByPage
(
p
arams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
myAchievementDtos
.
list
;
this
.
total
=
response
.
data
.
myAchievementDtos
.
total
;
this
.
myAchievementData
=
response
.
data
...
...
src/views/ecw/deptTarget/myDeptAchievement.vue
View file @
1dab8cab
...
...
@@ -48,19 +48,19 @@
<el-form-item
:label=
"$t('联系方式')"
prop=
"key"
>
<el-input
v-model=
"queryParams.phoneNew"
:placeholder=
"$t('请输入联系方式')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"
customerService
"
>
<el-select
clearable
v-model=
"queryParams.
customerService
"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"
userId
"
>
<el-select
clearable
v-model=
"queryParams.
userId
"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发仓')"
prop=
"
destination
Id"
>
<el-select
v-model=
"queryParams.
origin
Id"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-form-item
:label=
"$t('始发仓')"
prop=
"
startWarehouse
Id"
>
<el-select
v-model=
"queryParams.
startWarehouse
Id"
:placeholder=
"$t('请选择始发仓')"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的仓')"
prop=
"dest
inationId
"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.dest
inationId
"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-form-item
:label=
"$t('目的仓')"
prop=
"dest
WarehouseIdArr
"
>
<el-select
:multiple=
"true"
v-model=
"queryParams.dest
WarehouseIdArr
"
multiple
:placeholder=
"$t('请选择目的仓')"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -196,6 +196,7 @@
transportType
:
null
,
shippingChannel
:
null
,
endStartTime
:
null
,
destWarehouseIdArr
:[]
},
tableQueryParams
:
{
pageNo
:
1
,
...
...
@@ -252,6 +253,9 @@
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
getWarehouseList
().
then
(
res
=>
{
this
.
warehouseList
=
res
.
data
})
},
methods
:
{
getChannelList
()
{
...
...
@@ -291,8 +295,12 @@
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
const
params
=
{...
this
.
queryParams
}
if
(
params
.
destWarehouseIdArr
?.
length
){
params
.
destWarehouseIds
=
params
.
destWarehouseIdArr
.
join
(
'
,
'
)
}
// 执行查询
myDeptAchievementByPage
(
this
.
queryP
arams
).
then
(
response
=>
{
myDeptAchievementByPage
(
p
arams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
myAchievementDtos
.
list
;
this
.
total
=
response
.
data
.
myAchievementDtos
.
total
;
this
.
myAchievementData
=
response
.
data
...
...
src/views/ecw/order/detail.vue
View file @
1dab8cab
...
...
@@ -161,6 +161,9 @@
<el-descriptions-item
:label=
"$t('客户经理')"
>
{{order.salesmanName}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('提单是否显示价格')"
>
{{order.displayBillLadingPrice ? $t('是') : $t('否')}}
</el-descriptions-item>
</el-descriptions>
</el-card>
...
...
src/views/ecw/order/edit.vue
View file @
1dab8cab
...
...
@@ -514,11 +514,11 @@
</el-form-item>
</div>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<
!--<
div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('航空公司')">
<supplier-selector v-model="form.airlineCompany" company-type="10" :disabled="false"/>
</el-form-item>
</div>
</div>
-->
<div
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('船公司')"
>
<supplier-selector
v-model=
"form.shippingCompany"
company-type=
"9"
:disabled=
"false"
/>
...
...
src/views/ecw/order/penddingList.vue
View file @
1dab8cab
...
...
@@ -435,7 +435,7 @@ export default {
},
// 批量可出
batchCanShipment
(){
let
orderNo
=
this
.
multipleSelection
.
map
(
item
=>
item
.
orderNo
).
join
(
'
,
'
)
let
orderNo
=
this
.
multipleSelection
.
map
(
item
=>
item
.
orderNo
).
join
(
'
,
'
)
this
.
$confirm
(
this
.
$t
(
`您确定要将订单{orderNo}设置为可出吗?`
,
{
orderNo
})).
then
(()
=>
{
return
batchCanShipment
(
this
.
ids
)
}).
then
(
res
=>
{
...
...
src/views/ecw/order/prepayDeal.vue
View file @
1dab8cab
This diff is collapsed.
Click to expand it.
src/views/ecw/order/splitApply/index.vue
View file @
1dab8cab
...
...
@@ -621,11 +621,8 @@ export default {
this
.
reset
()
}
// 空运需要获取货币和体积单位
if
([
3
,
4
].
indexOf
(
this
.
orderData
.
transportId
)
>
-
1
){
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
}
})
// 获取入仓记录
getOrderWarehouseIn
(
this
.
queryParams
.
orderId
).
then
(
res
=>
{
...
...
@@ -946,22 +943,6 @@ export default {
if
(
!
this
.
orderData
||
!
this
.
orderData
.
orderItemVOList
||
this
.
orderData
.
length
==
0
){
return
sums
}
/*var orderSum = 0
var orderV = 0
var orderW = 0
var leviteSum = 0
var leviteV = 0
var leviteW = 0
this.orderData.orderItemVOList.forEach((column, index) => {
orderSum += column.num
orderV += column.volume
orderW += column.weight
leviteSum += column.warehouseInInfoVO?column.warehouseInInfoVO.cartonsNum:0
leviteV += column.warehouseInInfoVO?column.warehouseInInfoVO.volume:0
leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0
});
sums[1] = this.$t('下单统计')+' '+ orderSum+' '+this.$t('箱')+' '+ orderV.toFixed(2) +' m³ ' + orderW + ' kg ' + ' '+this.$t('入仓统计:')+ leviteSum+' '+this.$t('箱')+' '+ leviteV.toFixed(2) +' m³ ' + leviteW + ' kg'
*/
sums
[
1
]
=
[
this
.
$t
(
'
下单统计
'
),
this
.
orderData
.
costVO
?.
totalNum
+
'
'
+
this
.
$t
(
'
箱
'
),
...
...
src/views/ecw/order/stocking/components/ChooseOrderProducts.vue
0 → 100644
View file @
1dab8cab
<
template
>
<el-dialog
:title=
"$t('选择订单商品')"
:visible.sync=
"visible"
append-to-body
width=
"90vw"
>
<el-table
ref=
"multipleTable"
:data=
"orderItemDetails"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
></el-table-column>
<el-table-column
:label=
"$t('品名')"
prop=
"name"
>
<template
#default
="
{row}">
{{
$l
(
row
,
"
prodName
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('品牌')"
prop=
"brand"
>
<
template
#default
="{
row
}"
>
{{
$l
(
row
,
"
brandName
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('材质')"
prop=
"material"
>
<
template
#default
="{
row
}"
>
{{
$l
(
row
,
"
materialLabel
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('商品特性')"
prop=
"attr"
>
<
template
#default
="{
row
}"
>
{{
$l
(
row
,
"
prodAttrNames
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('用途')"
prop=
"unit"
>
<
template
#default
="{
row
}"
>
{{
$l
(
row
,
"
usageNames
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('数量')"
prop=
"quantityAll"
></el-table-column>
</el-table>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
{{$t('确定')}}
</el-button>
<el-button
@
click=
"handleClose"
>
{{$t('取消')}}
</el-button>
</div>
</el-dialog>
</template>
<
script
>
import
ProductSelector
from
"
@/components/ProductSelector
"
import
WarehouseAreaSelect
from
"
@/components/WarehouseAreaSelect
"
import
{
getFeeTypeByOrderProduct
,
getProductBrankPage
}
from
"
@/api/ecw/productBrank
"
import
{
cancelProcessInstance
}
from
"
@/api/bpm/processInstance
"
import
WorkFlow
from
"
@/components/WorkFlow
"
import
{
DICT_TYPE
,
getDictDataLabel
,
getDictDatas
}
from
"
@/utils/dict
"
import
{
finishPacked
,
getOrderItemCommonAttr
,
orderWarehouseIn
,
orderWarehouseInUpdateApply
}
from
"
@/api/ecw/order
"
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
addProduct
}
from
"
@/api/ecw/product
"
import
WarehouseRecordDetail
from
"
@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue
"
;
import
ImageAndVideoUpload
from
"
@/components/ImageAndVideoUpload/index.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
;
export
default
{
props
:
{
orderId
:
{
type
:
Number
,
default
:
undefined
}
},
data
(){
return
{
visible
:
true
,
// 备选的商品明细
orderItemDetails
:
[],
multipleSelection
:[]
}
},
watch
:{
visible
(
val
){
if
(
!
val
)
{
this
.
$emit
(
'
close
'
)
}
},
},
async
created
()
{
getOrderItemCommonAttr
(
this
.
orderId
).
then
(
res
=>
{
this
.
orderItemDetails
=
res
.
data
})
},
methods
:
{
handleSelectionChange
(
e
){
console
.
log
(
"
handleSelectionChange
"
,
e
)
this
.
multipleSelection
=
e
},
handleSubmit
(){
this
.
$emit
(
"
success
"
,
this
.
multipleSelection
)
},
handleClose
()
{
this
.
visible
=
false
}
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/ecw/order/stocking/components/NewProduct.vue
View file @
1dab8cab
<
template
>
<el-dialog
<el-dialog
:title=
"$t('添加新品名')"
:visible.sync=
"visible"
width=
"90vw"
...
...
src/views/ecw/order/stocking/components/Package.vue
View file @
1dab8cab
...
...
@@ -196,7 +196,7 @@
</el-table-column>
<el-table-column
:label=
"$t('操作')"
>
<
template
v-slot=
"{ row, column, $index}"
>
<WarehouseRecordDetail
v-model=
"form.table[$index].orderWarehouseInDetailsVOList"
/>
<WarehouseRecordDetail
v-model=
"form.table[$index].orderWarehouseInDetailsVOList"
show-choose-order-item
:order-id=
"order.orderId"
/>
<el-popconfirm
v-if=
"$index >= protectRowCount"
title=
"确定要删除该行记录吗?"
...
...
src/views/ecw/order/stocking/index.vue
View file @
1dab8cab
...
...
@@ -65,9 +65,9 @@
<el-button
type=
"text"
@
click=
"showMedia(props.row)"
>
{{
$t
(
'
查看
'
)
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
prop=
"areaName"
:label=
"$t(' ')"
width=
"220px"
>
<el-table-column
prop=
"areaName"
width=
"220px"
>
<
template
v-slot=
"{row}"
>
<WarehouseRecordDetail
v-model=
"row.orderWarehouseInDetailsVOList"
@
input=
"saveDetail(props.row)"
/>
<WarehouseRecordDetail
v-model=
"row.orderWarehouseInDetailsVOList"
@
input=
"saveDetail(props.row)"
show-choose-order-item
:order-id=
"orderId"
/>
<el-button
class=
"pl-5 pr-5"
size=
"mini"
type=
"primary"
@
click=
"package(props.row, $t('修改打包'))"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
<el-button
class=
"pl-5 pr-5"
size=
"mini"
type=
"danger"
@
click=
"package(props.row, $t('修改打包'))"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
</
template
>
...
...
src/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue
View file @
1dab8cab
...
...
@@ -12,6 +12,13 @@
:visible.sync=
"dialogVisible"
width=
"1024px"
:before-close=
"handleClose"
>
<
template
v-slot:title
>
<div
class=
"flex flex-items-center"
>
<div
class=
"title flex-1 flex flex-items-center"
>
{{
$t
(
'
选择订单商品
'
)
}}
</div>
<el-button
v-if=
"showChooseOrderItem"
type=
"primary"
size=
"mini"
@
click=
"handleShowChooseDialog"
>
选择订单商品
</el-button>
<div
style=
"width: 100px"
>
<!--占位,防止被关闭按钮挡住-->
</div>
</div>
</
template
>
<el-form
v-if=
"dialogVisible"
>
<WarehouseRecordDetailItem
...
...
@@ -30,6 +37,7 @@
<el-button
type=
"primary"
@
click=
"handleSave"
>
确 定
</el-button>
</span>
</el-dialog>
<choose-order-products
v-if=
"showChooseDialog"
:order-id=
"orderId"
@
close=
"showChooseDialog=false"
@
success=
"handleChooseOrderProducts"
></choose-order-products>
</div>
</template>
...
...
@@ -37,13 +45,15 @@
import
ProductSelector
from
"
@/components/ProductSelector/index.vue
"
;
import
WarehouseRecordDetailItem
from
"
@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue
"
;
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
;
import
{
getOrderItemCommonAttr
}
from
"
@/api/ecw/order
"
;
import
ChooseOrderProducts
from
"
@/views/ecw/order/stocking/components/ChooseOrderProducts.vue
"
;
/**
* 入仓明细弹窗
*/
export
default
{
name
:
'
WarehouseRecordDetail
'
,
components
:
{
WarehouseRecordDetailItem
,
ProductSelector
},
components
:
{
ChooseOrderProducts
,
WarehouseRecordDetailItem
,
ProductSelector
},
props
:
{
value
:
{
...
...
@@ -61,7 +71,10 @@ export default {
num
:{
type
:
Number
,
default
:
0
}
},
// 是否显示添加订单商品按钮
showChooseOrderItem
:
Boolean
,
orderId
:
Number
},
data
()
{
...
...
@@ -69,7 +82,8 @@ export default {
dialogVisible
:
false
,
dataList
:
[],
// 特性列表
attrList
:
[]
attrList
:
[],
showChooseDialog
:
false
};
},
...
...
@@ -158,6 +172,36 @@ export default {
}
this
.
$emit
(
'
input
'
,
this
.
dataList
)
this
.
dialogVisible
=
false
},
handleShowChooseDialog
(){
this
.
showChooseDialog
=
true
},
handleChooseOrderProducts
(
data
){
this
.
showChooseDialog
=
false
if
(
!
data
?.
length
)
return
// 如果第一条是空的,则删除先
let
firstItem
=
this
.
dataList
[
0
]
if
(
!
firstItem
.
prodId
&&
!
firstItem
.
brand
&&
!
firstItem
.
prodAttrIds
&&
!
firstItem
.
material
&&
!
firstItem
.
quantityAll
){
this
.
dataList
.
splice
(
0
,
1
)
}
data
.
forEach
(
item
=>
{
this
.
dataList
.
push
({
"
boxGauge
"
:
""
,
"
brand
"
:
item
.
brand
,
"
cartonsNum
"
:
undefined
,
"
createTime
"
:
""
,
"
expressNo
"
:
""
,
"
prodAttrIds
"
:
item
.
prodAttrIds
,
"
prodId
"
:
item
.
prodId
,
"
quantityAll
"
:
item
.
quantityAll
,
"
specificationType
"
:
undefined
,
"
unit
"
:
""
,
"
usageIds
"
:
item
.
usageIds
||
""
,
"
volume
"
:
undefined
,
"
weight
"
:
undefined
,
"
material
"
:
item
.
material
})
})
}
},
...
...
@@ -173,5 +217,7 @@ export default {
</
script
>
<
style
scoped
lang=
"scss"
>
.title
{
font-size
:
16px
;
}
</
style
>
src/views/ecw/productPrice/index.vue
View file @
1dab8cab
...
...
@@ -886,8 +886,14 @@ export default {
let
params
=
{...
this
.
queryParams
}
;
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
if
(
this
.
type
==
'
sea
'
){
params
.
transportType
=
1
}
if
(
this
.
type
==
'
air
'
){
params
.
transportType
=
3
}
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// c
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportProductPriceExcel
(
params
);
...
...
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