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
4e8f4b8c
Commit
4e8f4b8c
authored
Oct 25, 2023
by
我在何方
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
f43fc7e9
9a722ed7
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
773 additions
and
139 deletions
+773
-139
boxSea.js
src/api/ecw/boxSea.js
+46
-0
auth.js
src/utils/auth.js
+1
-1
cusClearance.vue
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
+421
-125
supplementOrder.vue
...ecw/box/shippingAir/nodePage/mergePkg/supplementOrder.vue
+2
-2
index.vue
src/views/ecw/box/shippingAir/nodePage/tally/index.vue
+1
-1
startUnloading.vue
...ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
+6
-6
seaProcess.vue
src/views/ecw/box/shippingAir/seaProcess.vue
+4
-0
utils.js
src/views/ecw/box/shippingAir/utils.js
+2
-2
detail.vue
src/views/ecw/offer/detail.vue
+2
-1
Warehouse.vue
src/views/ecw/order/warehousing/components/Warehouse.vue
+11
-1
WarehouseRecordDetail.vue
...cw/order/warehousing/components/WarehouseRecordDetail.vue
+138
-0
WarehouseRecordDetailItem.vue
...rder/warehousing/components/WarehouseRecordDetailItem.vue
+139
-0
No files found.
src/api/ecw/boxSea.js
View file @
4e8f4b8c
...
...
@@ -834,6 +834,21 @@ export function batchUnload(data) {
});
}
/**
* 批量到仓
*
* @export
* @param {*} data
* @return {*}
*/
export
function
airBatchUnload
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/airBatchUnload
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 单个卸柜
*
...
...
@@ -849,6 +864,21 @@ export function singleUnload(data) {
});
}
/**
* 单个到仓
*
* @export
* @param {*} data
* @return {*}
*/
export
function
airSingleUnload
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/airSingleUnload
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 一键卸柜
*
...
...
@@ -864,6 +894,22 @@ export function allUnload(data) {
});
}
/**
* 一键到仓
*
* @export
* @param {*} data
* @return {*}
*/
export
function
airAllUnload
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/airAllUnload
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 异常
*
...
...
src/utils/auth.js
View file @
4e8f4b8c
import
Cookies
from
'
js-cookie
'
const
TokenKey
=
'
Admin-Token
'
const
TokenKey
=
'
Jd-
Admin-Token
'
export
function
getToken
()
{
return
Cookies
.
get
(
TokenKey
)
...
...
src/views/ecw/box/shippingAir/nodePage/cusClearance.vue
View file @
4e8f4b8c
This diff is collapsed.
Click to expand it.
src/views/ecw/box/shippingAir/nodePage/mergePkg/supplementOrder.vue
View file @
4e8f4b8c
...
...
@@ -87,7 +87,7 @@
</div>
<div>
{{$t('入仓时间')}}:{{formatDate(item.rucangTime)}}
</div>
<div>
<el-button
v-if=
"
toBePreList.sectionGoodList&&
item.airShipment==4"
type=
"text"
@
click=
"handleGoods('all', item)"
>
[{{$t('全部分拣')}}]
</el-button>
<el-button
v-if=
"item.airShipment==4"
type=
"text"
@
click=
"handleGoods('all', item)"
>
[{{$t('全部分拣')}}]
</el-button>
<el-button
type=
"text"
@
click=
"foldTable(index, item)"
>
[{{item.fold ? $t('展开') : $t('收起')}}]
</el-button>
</div>
</el-row>
...
...
@@ -123,7 +123,7 @@
width="120">{{ $t('无返回') }}</el-table-column> -->
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"
toBePreList.sectionGoodList&&
item.airShipment==4"
type=
"text"
size=
"small"
@
click=
"handleGoods('singele',scope.row)"
>
{{
$t
(
'
分拣
'
)
}}
</el-button>
<el-button
v-if=
"item.airShipment==4"
type=
"text"
size=
"small"
@
click=
"handleGoods('singele',scope.row)"
>
{{
$t
(
'
分拣
'
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
src/views/ecw/box/shippingAir/nodePage/tally/index.vue
View file @
4e8f4b8c
...
...
@@ -190,7 +190,7 @@ export default {
list
.
push
({
...
oItem
,
warehouseInInfo
,
multiSpecification
:
i
tem
.
multiSpecification
,
multiSpecification
:
oI
tem
.
multiSpecification
,
positionNo
:
oItem
.
positionNo
,
tallyStatus
:
item
.
tallyStatus
,
tallyTime
:
item
.
tallyTime
,
...
...
src/views/ecw/box/shippingAir/nodePage/unloading/startUnloading.vue
View file @
4e8f4b8c
...
...
@@ -151,12 +151,12 @@
import
unloadingError
from
"
./unloadingError.vue
"
;
import
{
loadGoodsList
,
b
atchUnload
,
allUnload
,
airB
atchUnload
,
a
irA
llUnload
,
approvalCreate
,
approvalCancel
,
getSectionList
,
s
ingleUnload
,
airS
ingleUnload
,
boxGoodsDetail
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
,
getTotlContent
,
toReviewDetail
}
from
"
../../utils
"
;
...
...
@@ -254,7 +254,7 @@ export default {
this
.
$message
.
error
(
this
.
$t
(
"
请输入箱号标签
"
));
return
;
}
s
ingleUnload
({
airS
ingleUnload
({
orderNumCode
:
this
.
labelNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
...
...
@@ -274,7 +274,7 @@ export default {
this
.
$message
.
error
(
this
.
$t
(
"
请选择到仓时间
"
));
return
;
}
b
atchUnload
({
airB
atchUnload
({
orderNo
:
this
.
labelNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
unloadTime
:
this
.
ulWarehouseTime
...
...
@@ -295,7 +295,7 @@ export default {
type
:
"
warning
"
,
})
.
then
((
_
)
=>
{
allUnload
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
unloadTime
:
this
.
ulWarehouseTime
}).
then
((
res
)
=>
{
a
irA
llUnload
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
unloadTime
:
this
.
ulWarehouseTime
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getLoadGoodsList
();
});
...
...
src/views/ecw/box/shippingAir/seaProcess.vue
View file @
4e8f4b8c
...
...
@@ -184,6 +184,10 @@ export default {
case
"
cusDeclaration
"
:
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
break
;
// 清关
case
"
cusClearance
"
:
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
break
;
// AGENT
case
"
agent
"
:
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
this
.
$t
(
"
代理商设置
"
));
...
...
src/views/ecw/box/shippingAir/utils.js
View file @
4e8f4b8c
...
...
@@ -297,8 +297,8 @@ function airBaseData() {
keyName
:
"
toWarehouseStatus
"
,
status
:
{
start
:
[
181
],
wait
:
[
182
,
183
,
184
,
185
],
end
:
[
186
],
wait
:
[
182
,
183
,
184
],
end
:
[
18
5
,
18
6
],
},
},
],
...
...
src/views/ecw/offer/detail.vue
View file @
4e8f4b8c
...
...
@@ -141,9 +141,10 @@
<div>
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div>
<div
v-if=
"row.oneClearanceFreight"
>
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
<div
v-else
>
{{
$t
(
'
清关费未报价
'
)
}}
</div>
</
template
>
</template>
</el-table-column>
...
...
src/views/ecw/order/warehousing/components/Warehouse.vue
View file @
4e8f4b8c
...
...
@@ -4,7 +4,7 @@
<el-dialog
:title=
"title + ' - ' + warehousing.orderNo"
:visible.sync=
"visible"
width=
"1
280px
"
width=
"1
00%
"
>
<el-tabs
v-model=
"activeName"
type=
"card"
>
<el-tab-pane
:label=
"edit ? $t('货物修改') : $t('货物入仓')"
name=
"first"
>
...
...
@@ -185,8 +185,16 @@
:is-editing=
"edit"
></warehouse-area-select>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('备注')"
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item>
<el-input
v-model=
"form.table[$index].remark"
type=
"textarea"
show-word-limit
maxlength=
"100"
placeholder=
""
></el-input>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
>
<
template
v-slot=
"{ row, column, $index}"
>
<WarehouseRecordDetail
v-model=
"form.table[$index].orderWarehouseInDetailsVOList"
/>
<el-popconfirm
v-if=
"$index >= protectRowCount"
title=
"确定要删除该行入仓记录吗?"
...
...
@@ -505,11 +513,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr"
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
import
{
addProduct
}
from
"
@/api/ecw/product
"
import
ImageAndVideoUpload
from
"
@/components/ImageAndVideoUpload/index.vue
"
import
WarehouseRecordDetail
from
"
@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue
"
export
default
{
name
:
"
Warehouse
"
,
components
:
{
WarehouseRecordDetail
,
ImageAndVideoUpload
,
ProductSelector
,
WarehouseAreaSelect
,
...
...
src/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue
0 → 100644
View file @
4e8f4b8c
<
template
>
<div
style=
"display: inline-block"
>
<el-button
size=
"mini"
type=
"primary"
style=
"margin-right: 10px"
@
click=
"handleOpen"
>
{{
title
}}
</el-button>
<el-dialog
append-to-body
:title=
"title"
:visible.sync=
"dialogVisible"
width=
"1024px"
:before-close=
"handleClose"
>
<el-form>
<WarehouseRecordDetailItem
v-for=
"(item, index) in dataList"
:key=
"index"
v-model=
"dataList[index]"
:index=
"index"
:attr-list=
"attrList"
/>
</el-form>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleAddItem"
>
添加一条明细
</el-button>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSave"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
ProductSelector
from
"
@/components/ProductSelector/index.vue
"
;
import
WarehouseRecordDetailItem
from
"
@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue
"
;
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
;
/**
* 入仓明细弹窗
*/
export
default
{
name
:
'
WarehouseRecordDetail
'
,
components
:
{
WarehouseRecordDetailItem
,
ProductSelector
},
props
:
{
value
:
{
type
:
Array
,
default
:
()
=>
[]
},
readOnly
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
dialogVisible
:
false
,
dataList
:
[],
// 特性列表
attrList
:
[]
};
},
mounted
()
{
this
.
getAttrList
()
},
methods
:
{
init
()
{
if
(
!
this
.
value
||
this
.
value
.
length
===
0
)
{
this
.
dataList
=
[{
"
boxGauge
"
:
""
,
"
boxGauge1
"
:
""
,
"
boxGauge2
"
:
""
,
"
boxGauge3
"
:
""
,
"
brand
"
:
undefined
,
"
cartonsNum
"
:
undefined
,
"
createTime
"
:
""
,
"
expressNo
"
:
""
,
"
prodAttrIds
"
:
[],
"
prodId
"
:
undefined
,
"
quantityAll
"
:
undefined
,
"
specificationType
"
:
undefined
,
"
unit
"
:
""
,
"
usageIds
"
:
""
,
"
volume
"
:
undefined
,
"
weight
"
:
undefined
}]
}
else
{
this
.
dataList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
value
))
}
},
/** 获取产品属性列表 */
getAttrList
()
{
getProductAttrList
().
then
(
response
=>
{
this
.
attrList
=
response
.
data
;
})
},
handleAddItem
()
{
this
.
dataList
.
push
({
"
boxGauge
"
:
""
,
"
boxGauge1
"
:
""
,
"
boxGauge2
"
:
""
,
"
boxGauge3
"
:
""
,
"
brand
"
:
undefined
,
"
cartonsNum
"
:
undefined
,
"
createTime
"
:
""
,
"
expressNo
"
:
""
,
"
prodAttrIds
"
:
[],
"
prodId
"
:
undefined
,
"
quantityAll
"
:
undefined
,
"
specificationType
"
:
undefined
,
"
unit
"
:
""
,
"
usageIds
"
:
""
,
"
volume
"
:
undefined
,
"
weight
"
:
undefined
})
},
handleOpen
()
{
this
.
init
()
this
.
dialogVisible
=
true
},
handleClose
(
done
)
{
this
.
$confirm
(
'
确认关闭?
'
)
.
then
(
_
=>
{
done
();
})
.
catch
(
_
=>
{});
},
handleSave
()
{
this
.
$emit
(
'
input
'
,
this
.
dataList
)
}
},
computed
:
{
title
()
{
return
!
this
.
value
||
this
.
value
.
length
===
0
?
'
添加箱明细
'
:
'
编辑箱明细
'
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue
0 → 100644
View file @
4e8f4b8c
<
template
>
<el-card
style=
"margin-bottom: 10px"
>
<div
slot=
"header"
>
<span>
序号
{{
index
+
1
}}
</span>
</div>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('中文品名')"
>
<product-selector
v-if=
"!readOnly"
v-model=
"value.prodId"
determined
protect-once
/>
<span
v-else
>
{{
value
.
prodTitleZh
}}
</span>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('品牌')"
>
<el-select
v-model=
"value.brand"
:placeholder=
"$t('可修改')"
filterable
remote
@
change=
"handleBrandChange"
:remote-method=
"getProductBrandPage"
clearable
>
<el-option
v-for=
"item in brandList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('商品特性')"
>
<el-checkbox-group
v-model=
"value.prodAttrIds"
>
<el-checkbox
v-for=
"item in attrList"
:key=
"item.id"
:label=
"item.id"
>
{{
item
.
attrName
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('用途')"
>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"10"
>
<el-col
:span=
"4"
>
<el-form-item
:label=
"$t('长')"
>
<el-input
v-model=
"value.boxGauge1"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
:label=
"$t('宽')"
>
<el-input
v-model=
"value.boxGauge2"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
:label=
"$t('高')"
>
<el-input
v-model=
"value.boxGauge3"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
:label=
"$t('重量')"
>
<el-input
v-model=
"value.weight"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
:label=
"$t('体积')"
>
<el-input
v-model=
"value.volume"
/>
</el-form-item>
</el-col>
</el-row>
</el-card>
</
template
>
<
script
>
import
ProductSelector
from
"
@/components/ProductSelector/index.vue
"
;
import
{
getProductBrankPage
}
from
"
@/api/ecw/productBrank
"
;
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
;
// import {getFeeTypeByOrderProduct} from "@/api/ecw/productBrank";
export
default
{
name
:
"
WarehouseRecordDetailItem
"
,
components
:
{
ProductSelector
},
props
:
{
value
:
{
type
:
Object
,
default
:
()
=>
{}
},
index
:
{
type
:
Number
,
default
:
0
},
readOnly
:
{
type
:
Boolean
,
default
:
false
},
// 特性列表
attrList
:
{
type
:
Array
,
default
:
()
=>
[]
}
},
data
()
{
return
{
brandList
:
[],
}
},
methods
:
{
/** 获取产品属性列表 */
getAttrList
()
{
getProductAttrList
().
then
(
response
=>
{
this
.
attrList
=
response
.
data
;
})
},
handleBrandChange
(
v
){
// getFeeTypeByOrderProduct({
// brandId: parseInt(v),
// productId: this.warehousing.prodId,
// orderId: this.orderId
// }).then(r => {
// if(r.code === 0){
// (this.activeName === "first" ? this.form : this.form1).feeType = parseInt(r.data.feeType);
// (this.activeName === "first" ? this.form : this.form1).recordMode = parseInt(r.data.recordMode)
// }
// })
},
getProductBrandPage
(
titleZh
=
undefined
)
{
getProductBrankPage
({
pageSize
:
20
,
titleZh
}).
then
(
r
=>
{
this
.
brandList
=
r
.
data
.
list
})
},
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
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