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
548352b4
Commit
548352b4
authored
Sep 26, 2022
by
dcy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
e80196b4
1d040bb3
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
429 additions
and
380 deletions
+429
-380
boxSea.js
src/api/ecw/boxSea.js
+14
-0
index.vue
src/components/DictSelector/index.vue
+7
-14
index.vue
src/components/UserSelector/index.vue
+12
-3
ProcessViewer.vue
...ts/bpmnProcessDesigner/package/designer/ProcessViewer.vue
+1
-2
detail.vue
src/views/bpm/processInstance/detail.vue
+4
-4
indexFutureBox.vue
src/views/ecw/box/indexFutureBox.vue
+6
-5
index.vue
src/views/ecw/box/ladingBill/index.vue
+5
-1
splitOrder.vue
...views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
+188
-239
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+2
-2
review.vue
src/views/ecw/box/shippingSea/nodePage/review.vue
+24
-3
index.vue
src/views/ecw/channel/index.vue
+2
-12
edit.vue
src/views/ecw/offer/edit.vue
+46
-8
index.vue
src/views/ecw/offer/index.vue
+15
-60
result.vue
src/views/ecw/offer/result.vue
+2
-1
a订单列表操作按钮状态判断.txt
src/views/ecw/order/a订单列表操作按钮状态判断.txt
+75
-0
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+6
-6
edit.vue
src/views/ecw/order/edit.vue
+5
-5
index.vue
src/views/ecw/order/index.vue
+7
-7
index.vue
src/views/ecw/productPrice/index.vue
+5
-5
index.vue
src/views/ecw/supplier/index.vue
+2
-2
index.vue
src/views/system/menu/index.vue
+1
-1
No files found.
src/api/ecw/boxSea.js
View file @
548352b4
...
...
@@ -610,6 +610,20 @@ export function boxUpdate(data) {
});
}
/**
* 拆单审核
*
* @param {*} params
* @returns
*/
export
function
createApproval
(
data
)
{
return
request
({
url
:
"
/ecw/box-approval/create
"
,
method
:
"
post
"
,
data
,
});
}
/***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/
...
...
src/components/DictSelector/index.vue
View file @
548352b4
...
...
@@ -40,10 +40,6 @@ export default {
type
:
[
Function
,
String
],
default
:
String
},
/* forceString: {
type: Boolean,
default: true
}, */
defaultable
:
Boolean
,
// 是否默认选择第一个
disabled
:
Boolean
,
/**
...
...
@@ -80,11 +76,10 @@ export default {
},
watch
:{
valueSync
(
val
){
//this.$emit('input', this.forceString ? String(this.valueSync) : this.valueSync)
this
.
$emit
(
'
input
'
,
this
.
format
(
val
))
this
.
$emit
(
'
input
'
,
val
)
},
value
(
val
){
this
.
setValueSync
()
if
(
val
!=
this
.
valueSync
)
this
.
setValueSync
()
},
dictList
(){
this
.
setDefault
()
...
...
@@ -96,7 +91,7 @@ export default {
},
methods
:{
format
(
val
){
if
(
val
===
null
||
val
==
undefined
)
return
val
if
(
val
===
null
||
val
==
undefined
||
val
==
''
)
return
val
let
formatter
=
typeof
this
.
formatter
==
'
function
'
?
this
.
formatter
:
FORMATTERS
[
this
.
formatter
]
if
(
!
formatter
){
console
.
warn
(
'
格式器无效
'
,
this
.
formatter
)
...
...
@@ -108,7 +103,9 @@ export default {
this
.
valueSync
=
val
},
setValueSync
(){
if
(
this
.
value
===
null
||
this
.
value
===
undefined
||
this
.
value
===
''
)
return
if
(
this
.
value
===
null
||
this
.
value
===
undefined
||
this
.
value
===
''
){
return
this
.
valueSync
=
this
.
multiple
?
[]
:
this
.
value
}
if
(
this
.
multiple
){
let
value
=
[]
if
(
typeof
this
.
value
==
'
string
'
){
...
...
@@ -118,17 +115,13 @@ export default {
}
else
{
this
.
valueSync
=
this
.
format
(
this
.
value
)
}
/* if(this.forceString && this.multiple){
this.valueSync = this.value.split(',')
}else this.valueSync = this.forceString ? String(this.value) : this.value */
},
getList
(){
return
this
.
getDictDatas
(
this
.
type
)
},
setDefault
(){
if
(
!
this
.
defaultable
)
return
if
(
this
.
dictList
.
length
&&
(
this
.
valueSync
===
null
||
this
.
valueSync
==
''
)){
if
(
this
.
dictList
.
length
&&
(
this
.
valueSync
===
null
||
this
.
valueSync
==
undefined
||
this
.
valueSync
==
''
)){
this
.
valueSync
=
this
.
multiple
?
[]
:
this
.
formattedList
[
0
].
value
}
}
...
...
src/components/UserSelector/index.vue
View file @
548352b4
...
...
@@ -2,7 +2,7 @@
<el-select
v-model=
"index"
filterable
clearable
:clearable=
"clearable"
remote
reserve-keyword
placeholder=
"请选择"
...
...
@@ -20,7 +20,8 @@ import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customer
import
{
listSimpleUsers
}
from
'
@/api/system/user
'
export
default
{
props
:{
value
:
[
String
,
Number
]
value
:
[
String
,
Number
],
clearable
:
Boolean
},
data
(){
return
{
...
...
@@ -36,7 +37,10 @@ export default {
this
.
$emit
(
'
change
'
,
val
!==
null
?
this
.
list
[
val
]:
null
)
},
value
(
val
){
// this.init()
this
.
resetIndex
()
},
list
(){
this
.
resetIndex
()
}
},
created
(){
...
...
@@ -46,6 +50,11 @@ export default {
// this.init()
},
methods
:{
resetIndex
(){
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
id
==
this
.
value
)
if
(
index
<
0
)
this
.
index
=
null
else
this
.
index
=
index
}
/* init(){
console.log('初始化联系人选择', this.value)
if(!this.value) return
...
...
src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
View file @
548352b4
...
...
@@ -317,8 +317,7 @@ export default {
};
</
script
>
<
style
>
<
style
scoped
>
/** 处理中 */
.highlight-todo.djs-connection
>
.djs-visual
>
path
{
stroke
:
#1890ff
!important
;
...
...
src/views/bpm/processInstance/detail.vue
View file @
548352b4
...
...
@@ -37,7 +37,7 @@
</el-col>
</el-card>
<!-- 申请信息 -->
<el-card
class=
"box-card"
v-loading=
"processInstanceLoading"
>
<el-card
class=
"box-card
mt-10
"
v-loading=
"processInstanceLoading"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-document"
>
申请信息【
{{
processInstance
.
name
}}
】
</span>
</div>
...
...
@@ -59,7 +59,7 @@
</div>
</el-card>
<el-card
class=
"box-card"
v-loading=
"tasksLoad"
>
<el-card
class=
"box-card
mt-10
"
v-loading=
"tasksLoad"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
审批记录
</span>
</div>
...
...
@@ -94,7 +94,7 @@
</el-card>
<!-- 高亮流程图 -->
<el-card
class=
"box-card"
v-loading=
"processInstanceLoading"
>
<el-card
class=
"box-card
mt-10
"
v-loading=
"processInstanceLoading"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
流程图
</span>
</div>
...
...
@@ -594,7 +594,7 @@ export default {
};
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.my-process-designer
{
height
:
calc
(
100vh
-
200px
);
}
...
...
src/views/ecw/box/indexFutureBox.vue
View file @
548352b4
...
...
@@ -7,16 +7,16 @@
<!--
<el-select
v-model=
"queryParams.transportType"
placeholder=
"请选择运输方式"
clearable
size=
"small"
>
<el-option
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
-->
<dict-selector
:type=
"DICT_TYPE.TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
/>
<dict-selector
:type=
"DICT_TYPE.TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
clearable
/>
</el-form-item>
<el-form-item
label=
"始发仓"
prop=
"startWarehouseId"
>
<el-select
v-model=
"queryParams.startWarehouseId"
placeholder=
"请选择始发地"
>
<el-select
v-model=
"queryParams.startWarehouseId"
placeholder=
"请选择始发地"
clearable
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"目的仓"
prop=
"destWarehouseId"
>
<el-select
v-model=
"queryParams.destWarehouseId"
placeholder=
"请选择目的地"
>
<el-select
v-model=
"queryParams.destWarehouseId"
placeholder=
"请选择目的地"
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -179,6 +179,7 @@ import {getCabinetPage} from "@/api/ecw/cabinet";
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
Decimal
from
'
decimal.js
'
export
default
{
name
:
"
indexFutureBox
"
,
components
:
{
...
...
@@ -327,11 +328,11 @@ export default {
},
'
form.warehousedNumber
'
(){
//在仓 = 已入仓-已封柜
this
.
$set
(
this
.
form
,
'
warehousingNumber
'
,
this
.
form
.
warehousedNumber
-
this
.
form
.
loadingNumber
)
this
.
$set
(
this
.
form
,
'
warehousingNumber
'
,
Decimal
(
this
.
form
.
warehousedNumber
).
minus
(
this
.
form
.
loadingNumber
)
)
},
'
form.loadingNumber
'
(){
//在仓 = 已入仓-已封柜
this
.
$set
(
this
.
form
,
'
warehousingNumber
'
,
this
.
form
.
warehousedNumber
-
this
.
form
.
loadingNumber
)
this
.
$set
(
this
.
form
,
'
warehousingNumber
'
,
Decimal
(
this
.
form
.
warehousedNumber
).
minus
(
this
.
form
.
loadingNumber
)
)
}
},
methods
:
{
...
...
src/views/ecw/box/ladingBill/index.vue
View file @
548352b4
...
...
@@ -175,7 +175,11 @@ export default {
this.$set(this.dialogCfg, "visible", true);
},
makeBill(row) {
makeBillService({ orderId: row.orderId }).then((res) => {
const { bookSeaInfo } = this.shipmentObj;
makeBillService({
orderId: row.orderId,
zgDate: bookSeaInfo.sailTime,
}).then((res) => {
const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
let billContent = `
$
{
titleZh
}
$
{
contentZh
}
`,
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
View file @
548352b4
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<div
class=
"app-container shipping-split-order"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
拆单申请-
{{
orderData
.
orderNo
||
''
}}
</div>
<div
class=
"btn-header"
>
<span
class=
"card-title"
>
原单信息
</span>
<div>
<span
v-if=
"orderData.status==99"
class=
"red"
>
异常无法拆单
</span>
<el-button
v-else
type=
"primary"
@
click=
"addSplit"
>
新建拆单
</el-button>
</div>
</div>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
label=
"唛头"
>
{{
orderData
.
marks
?
orderData
.
marks
:
'
无
'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"已
到
箱数/总箱数"
>
<span>
{{
orderData
.
sum
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
<el-descriptions-item
label=
"已
实装
箱数/总箱数"
>
<span>
{{
currRow
.
install
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
</el-descriptions-item>
<el-descriptions-item
label=
"订单状态"
>
<!--
<dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"orderData.status"
/>
-->
{{
orderData
.
status
==
99
?
'
异常
'
:
'
正常
'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"送货日期"
>
...
...
@@ -55,11 +49,11 @@
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
company
||
'
无
'
:
'
无
'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货电话"
>
{{
orderData
.
consigneeVO
?
(
orderData
.
consigneeVO
.
phone
?(
orderData
.
consigneeVo
.
countryCode
+
orderData
.
consigneeVO
.
phone
):
'
无
'
)
:
'
无
'
}}
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
phone
?
orderData
.
consigneeVO
.
countryCode
+
orderData
.
consigneeVO
.
phone
:
'
无
'
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
<!-- 列表 -->
<div
slot=
"header"
class=
"card-title"
>
货物信息
</div>
...
...
@@ -77,6 +71,7 @@
</el-table-column>
<el-table-column
label=
"装柜货物属性"
align=
"center"
width=
"600"
>
<
template
slot-scope=
"scope"
>
<el-row
style=
"text-align:left;"
>
<el-row>
<span>
规格:
{{
scope
.
row
.
boxGauge
}}
</span>
</el-row>
...
...
@@ -88,6 +83,10 @@
<span
style=
"margin-left: 10px;"
>
体积:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
volume
:
0
}}
m³
</span>
<span
style=
"margin-left: 10px;"
>
重量:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
weight
:
0
}}
kg
</span>
</el-row>
<el-row>
<span>
计划装柜:无返回
</span>
</el-row>
</el-row>
</
template
>
</el-table-column>
<el-table-column
label=
"最后操作时间"
align=
"center"
>
...
...
@@ -102,27 +101,26 @@
</el-table-column>
</el-table>
</el-card>
<el-card
class=
"card"
v-if=
"splitData.length>0"
>
<el-card
class=
"card"
v-if=
"splitData"
>
<!-- 列表 -->
<div
slot=
"header"
class=
"card-title"
>
拆单信息
</div>
<div
v-for=
"(item, index) in splitData"
:key=
"index"
>
<div>
<div
class=
"btn-header"
>
<div>
<p
class=
"card-info"
>
<span
class=
"card-title"
>
{{
item
.orderNo}}
{{
splitData
.orderNo}}
</span>
<
dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"item.transportId"
/
>
<span>
发往:{{
importCityName(item.dstWarehouseId)
}}
</span>
<
span>
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:'无'}}
</span
>
<span>
发往:{{
splitData.dstWarehouseName
}}
</span>
</p>
</div>
<div>
<el-button
v-if=
"index==0"
disabled
type=
"primary"
@
click=
"addShop(index)"
>
放入
</el-button>
<el-button
v-if=
"index!=0"
type=
"primary"
@
click=
"addShop(index)"
>
放入
</el-button>
<el-button
type=
"primary"
plain
@
click=
"deleteSplit(item.id)"
>
删除
</el-button>
<el-button
type=
"primary"
@
click=
"addShop"
>
放入
</el-button>
</div>
</div>
<el-table
border
:data=
"
item
.orderSplitItemBackVOList"
>
<el-table
border
:data=
"
splitData
.orderSplitItemBackVOList"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
...
...
@@ -155,71 +153,49 @@
</
template
>
</el-table-column>
<el-table-column
label=
"计划装柜"
align=
"center"
>
无
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"index==0"
disabled
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
<el-button
v-else
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
</el-card>
<el-row
style=
"marginTop:15px;"
>
<work-flow
xmlkey=
"split_order"
v-model=
"selectedUsers"
></work-flow>
</el-row>
<div
slot=
"footer"
class=
"card footer_btn"
v-if=
"orderData.status!=99"
>
<el-button
v-if=
"orderData.status!=19"
type=
"primary"
@
click=
"submitForm"
>
提交申请
</el-button>
<el-button
v-if=
"orderData.status!=19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
取消
</el-button>
<el-button
v-if=
"orderData.status==19"
type=
"primary"
disabled
>
审核中
</el-button>
<el-button
v-if=
"orderData.status==19"
type=
"primary"
>
审核中
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"cancelSplit"
>
取消审核
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
</div>
<!-- 对话框(添加 / 修改) -->
<el-dialog
title=
"新建拆单"
:visible.sync=
"open"
width=
"400px"
append-to-body
>
<el-form
ref=
"formSplit"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-row>
<el-form-item
label=
"运输方式"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
formatter=
"number"
/>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"目的仓库:"
>
<el-select
v-model=
"form.destWarehouseId"
placeholder=
"请选择目的仓库"
>
<el-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"出货渠道"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<el-select
v-model=
"form.channelId"
placeholder=
"请选择出货渠道"
>
<el-option
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-for=
"item in channelData"
:key=
"item.channelId"
:label=
"item.nameZh"
:value=
"item.channelId"
/>
</el-select>
</el-form-item>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"haddleAdd"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<el-dialog
title=
"放入品名"
:visible.sync=
"shopOpen"
width=
"400px"
append-to-body
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"
8
0px"
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"
10
0px"
>
<el-row>
<el-form-item
label=
"中文品名:"
>
<el-form-item
label=
"中文品名:"
prop=
"prodTitleZh"
>
<el-select
v-model=
"shopForm.prodTitleZh"
placeholder=
"请选择中文品名"
@
change=
"changeProdTitleZh"
>
<el-option
v-for=
"item in order
Data.orderItemVOList
"
:label=
"item.prodTitleZh"
:value=
"item.prodTitleZh"
:key=
"item.prodTitleZh"
></el-option>
<el-option
v-for=
"item in order
Items
"
:label=
"item.prodTitleZh"
:value=
"item.prodTitleZh"
:key=
"item.prodTitleZh"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"英文品名:"
>
<el-form-item
label=
"英文品名:"
prop=
"prodTitleEn"
>
<el-select
v-model=
"shopForm.prodTitleEn"
placeholder=
"请选择英文品名"
@
change=
"changeProdTitleEn"
>
<el-option
v-for=
"item in order
Data.orderItemVOList
"
:label=
"item.prodTitleEn"
:value=
"item.prodTitleEn"
:key=
"item.prodTitleEn"
></el-option>
<el-option
v-for=
"item in order
Items
"
:label=
"item.prodTitleEn"
:value=
"item.prodTitleEn"
:key=
"item.prodTitleEn"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"剩余箱数:"
>
{{shopForm.sum||0}}
</el-form-item>
<el-form-item
label=
"放入箱数:"
>
<el-form-item
label=
"放入箱数:"
prop=
"num"
>
<el-input-number
v-model=
"shopForm.num"
controls-position=
"right"
:min=
"1"
:max=
"shopForm.sum"
></el-input-number>
</el-form-item>
<el-form-item
label=
"备注信息:"
>
...
...
@@ -236,23 +212,22 @@
</template>
<
script
>
import
{
getDictData
,
getDictDatas
}
from
"
@/utils/dict
"
;
import
{
getSplitList
,
splitApply
,
createSplit
,
cancelApply
,
createSplitItem
,
deleteSplitItem
,
deleteSplit
,
}
from
"
@/api/ecw/orderHandle
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
serviceMsg
}
from
"
../../utils
"
;
import
{
createApproval
}
from
"
@/api/ecw/boxSea
"
;
export
default
{
name
:
"
splitOrder
"
,
inheritAttrs
:
false
,
components
:
{
WorkFlow
,
},
...
...
@@ -261,33 +236,17 @@ export default {
},
data
()
{
return
{
checked
:
false
,
orderData
:
{},
splitData
:
[],
splitIndex
:
0
,
channelData
:
[],
tradeCityList
:
[],
multipleSelection
:
[],
splitData
:
{},
detail
:
{},
loading
:
false
,
open
:
false
,
form
:
{},
selectedUsers
:
[],
shopOpen
:
false
,
tradeCityList
:
[]
,
shopOpen
:
false
,
orderItems
:
[],
shopForm
:
{},
// 表单校验
rules
:
{
transportId
:
[
{
required
:
true
,
message
:
"
请选择运输方式
"
,
trigger
:
"
change
"
},
],
warehouseIds
:
[
{
required
:
true
,
message
:
"
请选择目的仓库
"
,
trigger
:
"
change
"
},
],
channelId
:
[
{
required
:
true
,
message
:
"
请选择出货渠道
"
,
trigger
:
"
change
"
},
],
},
// 表单校验
shopRules
:
{
prodTitleZh
:
[
{
required
:
true
,
message
:
"
请选择中文品名
"
,
trigger
:
"
change
"
},
...
...
@@ -295,24 +254,19 @@ export default {
prodTitleEn
:
[
{
required
:
true
,
message
:
"
请选择英文品名
"
,
trigger
:
"
change
"
},
],
num
:
[{
required
:
true
,
message
:
"
请输入箱数
"
,
trigger
:
"
change
"
}],
},
queryParams
:
{
orderId
:
96
,
orderId
:
0
,
lang
:
0
,
},
query
:
{
page
:
1
,
rows
:
20
,
},
splitItemIndex
:
0
,
};
},
created
()
{
this
.
getChannel
();
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
));
this
.
queryParams
.
orderId
=
this
.
currRow
.
orderId
;
this
.
get
List
();
this
.
get
Order
();
this
.
get
OrderDetail
();
this
.
get
Split
();
},
watch
:
{
//监听table这个对象
...
...
@@ -334,51 +288,64 @@ export default {
},
},
},
computed
:
{
getDictData
()
{
return
(
type
,
value
)
=>
getDictData
(
type
,
value
)
||
{};
},
getDictDatas
()
{
return
getDictDatas
;
},
importCityList
()
{
return
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
type
==
1
);
methods
:
{
/* 拆箱总数 */
totalSplitNum
()
{
let
_total
=
0
;
const
{
orderSplitItemBackVOList
=
[]
}
=
this
.
splitData
;
orderSplitItemBackVOList
.
forEach
((
v
)
=>
{
_total
+=
Number
(
v
.
splitNum
);
});
return
_total
;
},
/* 打开拆单 */
getSplit
()
{
this
.
querySplitGoods
().
then
((
res
)
=>
{
if
(
res
)
{
if
(
this
.
currRow
.
goodsList
&&
this
.
currRow
.
goodsList
.
length
)
{
const
[
orderItem
]
=
this
.
currRow
.
goodsList
;
createSplit
({
parentOrderId
:
this
.
currRow
.
orderId
,
parentOrderNo
:
this
.
currRow
.
orderNo
,
dstWarehouseId
:
orderItem
.
destWarehouseId
,
transportId
:
orderItem
.
transportId
,
shipmentType
:
1
,
}).
then
((
res
)
=>
{
this
.
querySplitGoods
();
});
}
}
});
},
/* 查询拆单项 */
querySplitGoods
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getSplitList
({
lang
:
0
,
orderId
:
this
.
currRow
.
orderId
,
shipmentType
:
1
,
}).
then
((
res
)
=>
{
const
{
orderSplitBackVOList
}
=
res
.
data
;
if
(
orderSplitBackVOList
&&
orderSplitBackVOList
.
length
)
{
this
.
orderItems
=
this
.
currRow
.
goodsList
??
[];
// 取拆单项
this
.
splitData
=
orderSplitBackVOList
.
filter
(
(
item
)
=>
!
item
.
isMaster
)[
0
];
resolve
(
false
);
}
else
{
resolve
(
true
);
}
});
});
},
methods
:
{
getOrder
()
{
getOrderDetail
()
{
this
.
loading
=
true
;
getOrder
(
this
.
queryParams
.
orderId
).
then
((
response
)
=>
{
this
.
orderData
=
response
.
data
;
this
.
query
.
destWarehouseId
=
response
.
data
.
logisticsInfoDto
.
startWarehouseId
;
this
.
loading
=
false
;
});
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 执行查询
getSplitList
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
splitData
=
response
.
data
;
this
.
loading
=
false
;
});
},
getChannel
()
{
getChannelList
().
then
((
res
)
=>
(
this
.
channelData
=
res
.
data
));
},
changeDest
()
{
this
.
query
.
warehouseIds
=
this
.
form
.
destWarehouseId
;
},
arraySpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
rowIndex
==
this
.
orderData
.
orderItemVOList
.
length
)
{
if
(
columnIndex
===
1
)
{
return
[
2
,
3
];
}
else
if
(
columnIndex
>
1
)
{
return
[
0
,
0
];
}
}
},
getSummaries
()
{
const
sums
=
[];
...
...
@@ -390,12 +357,12 @@ export default {
)
{
return
sums
;
}
var
orderSum
=
0
;
var
orderV
=
0
;
var
orderW
=
0
;
var
leviteSum
=
0
;
var
leviteV
=
0
;
var
leviteW
=
0
;
let
orderSum
=
0
;
let
orderV
=
0
;
let
orderW
=
0
;
let
leviteSum
=
0
;
let
leviteV
=
0
;
let
leviteW
=
0
;
this
.
orderData
.
orderItemVOList
.
forEach
((
column
,
index
)
=>
{
orderSum
+=
column
.
num
??
0
;
orderV
+=
column
.
volume
??
0
;
...
...
@@ -422,31 +389,32 @@ export default {
return
sums
;
},
importCityName
(
id
)
{
var
arr
=
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
id
==
id
);
let
arr
=
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
id
==
id
);
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
},
submitForm
()
{
var
params
=
{
orderId
:
this
.
queryParams
.
orderId
,
const
{
shipmentObj
}
=
this
.
$attrs
;
// 创建拆单审核
createApproval
({
applyReason
:
"
拆单审核
"
,
approvalStatus
:
0
,
approvalType
:
8
,
copyUserId
:
this
.
selectedUsers
,
};
splitApply
(
params
).
then
((
res
)
=>
{
this
.
$modal
.
msgSuccess
(
"
申请成功
"
);
that
.
getList
();
orderId
:
this
.
currRow
.
orderId
,
shipmentId
:
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getSplit
();
});
});
},
addShop
(
index
)
{
this
.
splitItemIndex
=
index
;
addShop
()
{
this
.
shopOpen
=
true
;
},
addSplit
()
{
this
.
open
=
true
;
},
changeProdTitleZh
()
{
var
list
=
[];
list
=
this
.
orderData
.
orderItemVO
List
.
filter
(
let
list
=
[];
list
=
this
.
currRow
.
goods
List
.
filter
(
(
item
)
=>
item
.
prodTitleZh
==
this
.
shopForm
.
prodTitleZh
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
...
...
@@ -454,73 +422,58 @@ export default {
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
;
},
changeProdTitleEn
()
{
var
list
=
[];
let
list
=
[];
list
=
this
.
orderData
.
orderItemVOList
.
filter
(
(
item
)
=>
item
.
prodTitleEn
==
this
.
shopForm
.
prodTitleEn
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
prodTitleZh
=
list
[
0
].
prodTitleZh
;
},
haddleAdd
()
{
let
that
=
this
;
if
(
!
that
.
form
.
transportId
)
{
that
.
$message
.
error
(
"
请选择运输方式
"
);
}
if
(
!
that
.
form
.
destWarehouseId
)
{
that
.
$message
.
error
(
"
请选择目的仓库
"
);
}
// if(!this.form.channelId){
// this.$modal.msgError("请选择出货渠道");
// }
var
params
=
{
dstWarehouseId
:
that
.
form
.
destWarehouseId
,
parentOrderId
:
that
.
orderData
.
orderId
,
parentOrderNo
:
that
.
orderData
.
orderNo
,
transportId
:
that
.
form
.
transportId
,
};
createSplit
(
params
).
then
((
res
)
=>
{
that
.
getList
();
});
that
.
open
=
false
;
},
cancel
()
{
this
.
open
=
false
;
this
.
form
=
{};
},
shopAdd
()
{
this
.
$refs
[
"
shopForm
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
if
(
valid
)
{
// 输入箱数大于实装箱数
const
total
=
this
.
totalSplitNum
();
const
canSplitNum
=
this
.
currRow
.
num
-
this
.
currRow
.
installNum
;
const
remain
=
canSplitNum
-
total
;
if
(
this
.
shopForm
.
num
>
remain
)
{
this
.
$message
.
error
(
"
放入箱数不能大于总箱数
"
);
return
;
}
});
var
params
=
{
let
params
=
{
num
:
this
.
shopForm
.
num
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderSplitId
:
this
.
splitData
[
this
.
splitItemIndex
]
.
id
,
orderSplitId
:
this
.
splitData
.
id
,
remarks
:
this
.
shopForm
.
remarks
,
};
createSplitItem
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
放入成功
"
);
this
.
getLis
t
();
this
.
getSpli
t
();
this
.
shopForm
=
{};
});
this
.
shopOpen
=
false
;
}
});
},
removeShop
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
"
是否移除货物吗?
"
).
then
(
function
()
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
移除成功
"
);
that
.
get
Lis
t
();
that
.
get
Spli
t
();
});
});
},
cancelSplit
()
{
let
that
=
this
;
that
.
$confirm
(
"
是否取消审核吗?
"
).
then
(
function
()
{
cancelApply
({
orderId
:
that
.
queryParams
.
orderId
}).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
取消成功
"
);
that
.
getList
();
const
{
shipmentObj
}
=
this
.
$attrs
;
approvalCancel
({
applyReason
:
"
取消审核
"
,
id
:
shipmentObj
[
"
cabinetApprovalInfo
"
].
id
,
shipmentId
:
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
},
...
...
@@ -528,43 +481,39 @@ export default {
this
.
shopOpen
=
false
;
this
.
shopForm
=
{};
},
/** 删除按钮操作 */
deleteSplit
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
"
是否确认删除新拆的订单吗?
"
).
then
(
function
()
{
deleteSplit
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
删除成功
"
);
that
.
getList
();
});
});
},
},
};
</
script
>
<
style
>
.card-title
{
<
style
lang=
"scss"
>
.shipping-split-order
{
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
margin-top
:
10px
;
}
.card-info
{
}
.card-info
{
font-size
:
16px
;
}
.card
{
>
span
{
margin-right
:
10px
;
}
}
.card
{
margin-top
:
20px
;
}
.btn-header
{
}
.btn-header
{
width
:
90%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin
:
20px
0
;
}
.red
{
}
.red
{
color
:
#ff3430
;
font-size
:
15px
;
}
.footer_btn
{
}
.footer_btn
{
padding-bottom
:
60px
;
}
}
</
style
>
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
548352b4
...
...
@@ -80,7 +80,7 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"moveOut(scope.row)"
v-if=
"!isUnderReview && scope.row.installNum === 0"
>
移出
</el-button>
<
!--
<el-button
type=
"text"
size=
"small"
v-if=
"isShowSplitOrder(scope.row)"
@
click=
"handlerSplitOrder(scope.row, 'splitOrder','拆单')"
>
拆单
</el-button>
--
>
<
el-button
type=
"text"
size=
"small"
v-if=
"isShowSplitOrder(scope.row)"
@
click=
"handlerSplitOrder(scope.row, 'splitOrder','拆单')"
>
拆单
</el-button
>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -194,7 +194,7 @@
</el-row>
</
template
>
<!-- 拆单 -->
<splitOrder
v-if=
"dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible"
:currRow=
"currRow"
@
closeDialog=
"closeDialog"
/>
<splitOrder
v-
bind=
"$attrs"
:shipmentObj=
"shipmentObj"
v-
if=
"dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible"
:currRow=
"currRow"
@
closeDialog=
"closeDialog"
/>
</el-dialog>
</div>
</template>
...
...
src/views/ecw/box/shippingSea/nodePage/review.vue
View file @
548352b4
...
...
@@ -2,11 +2,12 @@
<div>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form-item
label=
"申请理由"
>
<el-input
v-model=
"reviewObj.applyReason"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
></el-input>
<el-input
v-model=
"reviewObj.applyReason"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
:disabled=
"isReview"
></el-input>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"success"
@
click=
"onSubmit"
>
发起申请
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit"
:disabled=
"isReview"
>
发起申请
</el-button>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
:disabled=
"!isReview"
>
审核中
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
</el-row>
</div>
...
...
@@ -14,7 +15,7 @@
<
script
>
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../utils
"
;
import
{
serviceMsg
,
toReviewDetail
}
from
"
../utils
"
;
/**
* 反审
...
...
@@ -26,9 +27,29 @@ export default {
return
{
// 反审对象
reviewObj
:
{},
isReview
:
false
,
bpmProcessId
:
""
,
};
},
created
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
if
(
currNode
.
type
===
"
preinstall
"
)
{
this
.
isReview
=
shipmentObj
[
"
preInstallBackInfo
"
]
?
true
:
false
;
this
.
bpmProcessId
=
shipmentObj
[
"
preInstallBackInfo
"
]?.
bpmProcessId
;
}
if
(
currNode
.
type
===
"
unloading
"
)
{
this
.
isReview
=
shipmentObj
[
"
cabinetUnloadBackApprovalInfo
"
]
?
true
:
false
;
this
.
bpmProcessId
=
shipmentObj
[
"
cabinetUnloadBackApprovalInfo
"
]?.
bpmProcessId
;
}
},
methods
:
{
jumpReviewDetail
()
{
toReviewDetail
.
apply
(
this
,
[
this
.
bpmProcessId
]);
this
.
$emit
(
"
closeDialog
"
);
},
/** 提交 */
onSubmit
()
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
...
...
src/views/ecw/channel/index.vue
View file @
548352b4
...
...
@@ -229,21 +229,11 @@ export default {
},
/** 新增按钮操作 */
handleAdd
()
{
return
this
.
$router
.
push
(
'
edit
'
)
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加渠道管理
"
;
return
this
.
$router
.
push
(
'
create_channel
'
)
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
return
this
.
$router
.
push
(
'
edit?id=
'
+
row
.
channelId
)
this
.
reset
();
const
channelId
=
row
.
channelId
;
getChannel
(
channelId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改渠道管理
"
;
});
return
this
.
$router
.
push
(
'
edit_channel?id=
'
+
row
.
channelId
)
},
/** 删除按钮操作 */
...
...
src/views/ecw/offer/edit.vue
View file @
548352b4
...
...
@@ -499,7 +499,7 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import
QuickCreateCustomer
from
'
@/components/QuickCreateCustomer
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
import
Decimal
from
'
decimal.js
'
window
.
Decimal
=
Decimal
export
default
{
name
:
"
EcwOfferEdit
"
,
components
:
{
...
...
@@ -657,26 +657,61 @@ export default {
originalFeeList
(){
let
arr
=
[]
this
.
clearanceFeeList
.
forEach
(
item
=>
{
let
it
=
{...
item
}
let
it
=
{
src
:
'
清关费
'
,
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
}
let
freight
=
this
.
freightFeeList
.
find
(
fee
=>
fee
.
currencyId
==
item
.
currencyId
)
if
(
freight
){
it
.
amount
+=
freight
.
amount
it
.
amount
=
it
.
amount
.
plus
(
freight
.
amount
)
}
arr
.
push
(
it
)
})
// 判断是否有运费单位不在清关费里的
this
.
freightFeeList
.
forEach
(
item
=>
{
if
(
!
arr
.
find
(
arrItem
=>
arrItem
.
currencyId
==
item
.
currencyId
)){
arr
.
push
({
src
:
'
未计算的运费
'
,
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
})
}
})
return
arr
},
// 预计费用(原价 - 优惠金额)
// 预计费用(原价 - 优惠金额
+ 其他费用 + 保价费
)
estimatedCosts
(){
let
arr
=
[]
let
withInsuranceFee
=
false
this
.
originalFeeList
.
forEach
(
item
=>
{
let
it
=
{...
item
}
let
it
=
{
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
}
let
coupon
=
this
.
couponList
.
find
(
coupon
=>
coupon
.
reduceCurrencyId
==
item
.
currencyId
)
if
(
coupon
){
it
.
amount
-=
coupon
.
reduceAmount
it
.
amount
=
it
.
amount
.
minus
(
coupon
.
reduceAmount
)
}
if
(
this
.
form
.
otherFee
&&
this
.
form
.
otherFeeCurrencyId
==
item
.
currencyId
){
it
.
amount
=
it
.
amount
.
plus
(
this
.
form
.
otherFee
)
}
// 保价费(美元)
if
(
item
.
currencyId
==
1
&&
this
.
fee
&&
this
.
fee
.
insuranceFee
){
it
.
amount
=
it
.
amount
.
plus
(
this
.
fee
.
insuranceFee
)
withInsuranceFee
=
true
}
arr
.
push
(
it
)
})
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if
(
!
withInsuranceFee
&&
this
.
fee
&&
this
.
fee
.
insuranceFee
){
arr
.
push
({
currencyId
:
1
,
amount
:
Decimal
(
this
.
fee
.
insuranceFee
)
})
}
return
arr
},
// 路线开通的服务
...
...
@@ -935,8 +970,11 @@ export default {
orderType
:
this
.
form
.
orderType
,
}).
then
(
res
=>
{
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
if
(
res
.
data
.
availableDto
){
this
.
$set
(
this
,
'
couponTotalAmountList
'
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
this
.
$set
(
this
,
'
couponAvailableGroupDtoList
'
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
}
this
.
form
.
prodCreateReqVOList
.
map
((
item
,
index
)
=>
{
this
.
$set
(
item
,
'
fee
'
,
res
.
data
.
prodCostDtoList
[
index
]
||
null
)
...
...
src/views/ecw/offer/index.vue
View file @
548352b4
...
...
@@ -18,33 +18,33 @@
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"departureId"
>
<el-select
v-model=
"queryParams.departureId"
:placeholder=
"$t('请选择始发地')"
>
<el-select
v-model=
"queryParams.departureId"
:placeholder=
"$t('请选择始发地')"
clearable
>
<el-option
v-for=
"item in exportCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"objectiveId"
>
<el-select
v-model=
"queryParams.objectiveId"
:placeholder=
"$t('请选择目的地')"
>
<el-select
v-model=
"queryParams.objectiveId"
:placeholder=
"$t('请选择目的地')"
clearable
>
<el-option
v-for=
"item in importCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('商品')"
prop=
"prodTitle"
>
<el-input
v-model=
"queryParams.prodTitle"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"control"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model=
"queryParams.control"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model=
"queryParams.control"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUpSalesmanId"
>
<user-selector
v-model=
"queryParams.followUpSalesmanId"
/>
<user-selector
v-model=
"queryParams.followUpSalesmanId"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
v-model=
"queryParams.status"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
v-model=
"queryParams.status"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
clearable
/>
</el-form-item>
<div>
...
...
@@ -164,44 +164,10 @@ export default {
total
:
0
,
// 报价单管理列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeStopTime
:
[],
dateRangeStartTime
:
[],
dateRangeEndTime
:
[],
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
orderIds
:
null
,
orderNo
:
null
,
consignorId
:
null
,
consigneeId
:
null
,
marks
:
null
,
customsType
:
null
,
departureId
:
null
,
departure
:
null
,
objectiveId
:
null
,
objective
:
null
,
control
:
null
,
competitor
:
null
,
importance
:
null
,
tradeType
:
null
,
tradeAdress
:
null
,
remarks
:
null
,
status
:
null
,
oldStatus
:
null
,
relation
:
null
,
relationId
:
null
,
commissionType
:
null
,
warehousingType
:
null
,
reason
:
null
,
estCost
:
null
,
sendstatus
:
null
,
pageSize
:
10
}
,
currencyList
:
[],
tradeCityList
:[]
...
...
@@ -236,14 +202,8 @@ export default {
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
}
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStopTime
,
'
stopTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getOfferPage
(
p
arams
).
then
(
response
=>
{
getOfferPage
(
this
.
queryP
arams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
...
...
@@ -257,16 +217,15 @@ export default {
}
,
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeStopTime
=
[];
this
.
dateRangeStartTime
=
[];
this
.
dateRangeEndTime
=
[];
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
}
this
.
handleQuery
();
}
,
/** 新增按钮操作 */
handleAdd
()
{
return
this
.
$router
.
push
(
'
edit
'
)
return
this
.
$router
.
push
(
'
create
'
)
}
,
/** 修改按钮操作 */
handleUpdate
(
row
)
{
...
...
@@ -289,16 +248,12 @@ export default {
let
params
=
{...
this
.
queryParams
}
;
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStopTime
,
'
stopTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有报价单管理数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportOfferExcel
(
params
);
}
).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment
}
.xls
'
);
this
.
$download
.
excel
(
response
,
'
报价列表
.xls
'
);
this
.
exportLoading
=
false
;
}
).
catch
(()
=>
{
}
);
}
,
...
...
src/views/ecw/offer/result.vue
View file @
548352b4
...
...
@@ -87,11 +87,12 @@ export default {
}
let
data
=
Object
.
assign
({},
this
.
form
)
updateOfferResult
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
赢单成功
"
));
if
(
response
.
data
>
0
){
this
.
$message
.
success
(
this
.
$t
(
'
赢单成功
'
))
this
.
$redirect
(
'
../order/edit?id=
'
+
response
.
data
)
return
}
this
.
$message
.
success
(
this
.
$t
(
'
输单成功
'
))
this
.
$router
.
back
();
});
});
...
...
src/views/ecw/order/a订单列表操作按钮状态判断.txt
0 → 100644
View file @
548352b4
编辑
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
status != 20,21
shipmentState != 320,322,323
inWarehouseState != 212, 218, 213, 214, 215 && status != 5,8
取消
status = 0,2
费用申请
status != 0,
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
特需,关联,互斥
status != 0,
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
status > 5
inWarehouseState == 204
特价
status !=0
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
确认提货
status != 0,2
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
合单,拆单
status != 0,2
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState > 320
入仓操作
status == 0,2
abnormalState == 1
入仓补充
inWarehouseState == 201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216
abnormalState != 99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
入仓修改
inWarehouseState == 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206
退仓
inWarehouseState == 201, 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216
abnormalState != 1
调仓
inWarehouseState == 201, 202, 208, 202, 210, 202, 211, 202, 213, 215, 216
取消调仓
inWarehouseState == 212,213,214
调拨出仓
inWarehouseState == 213
调拨到仓
inWarehouseState= 214
打印标签
status != 0
shipmentState != 320,322,323
abnormalState !=5,6,7,8
打印入仓单
status != 0,2
abnormalState != 1,5,6,7,8
shipmentState != 320,322,323
打印提单
src/views/ecw/order/cargoControl.vue
View file @
548352b4
...
...
@@ -8,29 +8,29 @@
<el-date-picker
v-model=
"dateFilter"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"startWarehouseId"
>
<el-select
v-model=
"queryParams.startWarehouseId"
:placeholder=
"$t('请选择始发地')"
>
<el-select
v-model=
"queryParams.startWarehouseId"
:placeholder=
"$t('请选择始发地')"
clearable
>
<el-option
v-for=
"item in expoerCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destWarehouseId"
>
<el-select
v-model=
"queryParams.destWarehouseId"
:placeholder=
"$t('请选择目的地')"
>
<el-select
v-model=
"queryParams.destWarehouseId"
:placeholder=
"$t('请选择目的地')"
clearable
>
<el-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model
=
"queryParams.transportId"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model
.number=
"queryParams.transportId"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('订单编号')"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
:placeholder=
"$t('订单编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('品名')"
prop=
"prodId"
>
<product-selector
v-model=
"queryParams.prodId"
@
keyup.enter.native=
"handleQuery"
/>
<product-selector
v-model=
"queryParams.prodId"
@
keyup.enter.native=
"handleQuery"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"isCargoControl"
>
<dict-selector
v-model=
"queryParams.isCargoControl"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"queryParams.isCargoControl"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('订单状态')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.PAY_ORDER_STATUS"
v-model=
"queryParams.status"
<dict-selector
:type=
"DICT_TYPE.PAY_ORDER_STATUS"
v-model=
"queryParams.status"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('提单号')"
prop=
"tidanNo"
>
...
...
src/views/ecw/order/edit.vue
View file @
548352b4
...
...
@@ -409,7 +409,7 @@
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
defaultable
/>
</el-form-item>
</div>
...
...
@@ -425,7 +425,7 @@
</div>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('清关证书')"
>
<dict-selector
v-model=
"form.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
defaultable
/>
</el-form-item>
<el-form-item
label=
"清关证书备注"
>
<el-input
v-model=
"form.remarks"
></el-input>
...
...
@@ -433,12 +433,12 @@
</div>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
label=
"是否拆包"
>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
defaultable
/>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单票立刻转运')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
defaultable
/>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
</el-form-item>
</div>
...
...
@@ -462,7 +462,7 @@
<el-dialog
:title=
"$t('批量导入')"
:visible.sync=
"showBatchImportDialog"
width=
"1000px"
:close-on-click-modal=
"false"
>
<el-steps
:active=
"importList.length > 0 ? 1 : 0"
finish-status=
"success"
class=
"w-500"
style=
"margin: 20px auto"
>
<el-step
:title=
"$t('上传
集装箱
')"
></el-step>
<el-step
:title=
"$t('上传
装箱单
')"
></el-step>
<el-step
:title=
"$t('开始导入')"
></el-step>
<el-step
:title=
"$t('完成')"
></el-step>
</el-steps>
...
...
src/views/ecw/order/index.vue
View file @
548352b4
...
...
@@ -21,18 +21,18 @@
<el-date-picker
v-model=
"dateFilter"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"startWarehouseId"
>
<el-select
v-model=
"queryParams.startWarehouseId"
:placeholder=
"$t('请选择始发地')"
>
<el-select
v-model=
"queryParams.startWarehouseId"
:placeholder=
"$t('请选择始发地')"
clearable
>
<el-option
v-for=
"item in exportCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destWarehouseId"
>
<el-select
v-model=
"queryParams.destWarehouseId"
:placeholder=
"$t('请选择目的地')"
>
<el-select
v-model=
"queryParams.destWarehouseId"
:placeholder=
"$t('请选择目的地')"
clearable
>
<el-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
v-if=
"!transportId"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model
=
"queryParams.transportId"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model
.number=
"queryParams.transportId"
clearable
/>
</el-form-item>
<!--
<el-form-item
label=
"商品分类"
prop=
"goodsType"
>
...
...
@@ -52,17 +52,17 @@
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"isCargoControl"
>
<dict-selector
v-model=
"queryParams.isCargoControl"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"queryParams.isCargoControl"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('入仓类型')"
prop=
"warehouseType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"queryParams.warehousingType"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"queryParams.warehousingType"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
>
<user-selector
v-model=
"queryParams.salesmanId"
/>
</el-form-item>
<el-form-item
:label=
"$t('订单状态')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ORDER_STATUS"
v-model=
"queryParams.status"
@
keyup.enter.native=
"handleQuery"
/>
@
keyup.enter.native=
"handleQuery"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
clearable
...
...
@@ -70,7 +70,7 @@
</el-form-item>
<el-form-item
:label=
"$t('是否齐货')"
>
<!--// 字段存疑-->
<dict-selector
v-model=
"queryParams.isNeat"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"queryParams.isNeat"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
clearable
/>
</el-form-item>
<!--
<el-form-item
label=
"重货比"
prop=
"weightRatio"
>
<el-input
style=
"width: 100px;"
v-model=
"molecule"
placeholder=
""
clearable
@
change=
"moleculeChange"
...
...
src/views/ecw/productPrice/index.vue
View file @
548352b4
...
...
@@ -29,27 +29,27 @@
// TODO
</el-form-item>
-->
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
formatter=
"number"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"shippingChannelId"
>
<el-select
v-model=
"queryParams.shippingChannelId"
clearable
>
<el-option
v-for=
"item in channelList"
:key=
"item.id"
:label=
"
item.nameZh
"
:value=
"item.channelId"
/>
<el-option
v-for=
"item in channelList"
:key=
"item.id"
:label=
"
$l(item, 'name')
"
:value=
"item.channelId"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"startCityId"
>
<el-select
v-model=
"queryParams.startCityId"
clearable
>
<el-option
v-for=
"city in startCityList"
:key=
"city.id"
:label=
"
city.titleZh
"
:value=
"city.id"
/>
<el-option
v-for=
"city in startCityList"
:key=
"city.id"
:label=
"
$l(city, 'title')
"
:value=
"city.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destCityId"
>
<el-select
v-model=
"queryParams.destCityId"
clearable
>
<el-option
v-for=
"city in destCityList"
:key=
"city.id"
:label=
"
city.titleZh
"
:value=
"city.id"
/>
<el-option
v-for=
"city in destCityList"
:key=
"city.id"
:label=
"
$l(city, 'title')
"
:value=
"city.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('审核状态')"
prop=
"auditStatus"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_AUDIT_STATUS"
v-model=
"queryParams.auditStatus"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_AUDIT_STATUS"
v-model=
"queryParams.auditStatus"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('状态')"
prop=
"status"
>
// TODO
...
...
src/views/ecw/supplier/index.vue
View file @
548352b4
...
...
@@ -44,10 +44,10 @@
<el-option
v-for=
"dict in this.getDictDatas('company_type')"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select-->
<dict-selector
:type=
"DICT_TYPE.ECW_COMPANY_TYPE"
v-model=
"queryParams.companyType"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_COMPANY_TYPE"
v-model=
"queryParams.companyType"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('合作类型')"
prop=
"cooperationType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_COOPERATION_TYPE"
v-model=
"queryParams.cooperationType"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_COOPERATION_TYPE"
v-model=
"queryParams.cooperationType"
clearable
/>
<!--el-select v-model="queryParams.cooperationType" placeholder="请选择合作类型" clearable size="small">
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select-->
...
...
src/views/system/menu/index.vue
View file @
548352b4
...
...
@@ -318,7 +318,7 @@ export default {
||
this
.
form
.
type
===
SystemMenuTypeEnum
.
MENU
)
{
// 如果是外链,则不进行校验
const
path
=
this
.
form
.
path
if
(
path
.
indexOf
(
'
http://
'
)
===
-
1
||
path
.
indexOf
(
'
https://
'
)
===
-
1
)
{
if
(
path
&&
path
.
indexOf
(
'
http://
'
)
===
-
1
||
path
.
indexOf
(
'
https://
'
)
===
-
1
)
{
// 父权限为根节点,path 必须以 / 开头
if
(
this
.
form
.
parentId
===
0
&&
path
.
charAt
(
0
)
!==
'
/
'
)
{
this
.
$modal
.
msgSuccess
(
'
前端必须以 / 开头
'
)
...
...
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