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
1df20f6a
Commit
1df20f6a
authored
Sep 27, 2022
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
50fe2f07
275abef7
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
835 additions
and
456 deletions
+835
-456
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
index.vue
src/views/ecw/customer/index.vue
+67
-25
transferCustomer.vue
src/views/ecw/customer/transferCustomer.vue
+72
-0
index.vue
src/views/ecw/deptTarget/index.vue
+2
-2
index.vue
src/views/ecw/myCustomerService/index.vue
+88
-16
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
+9
-6
index.vue
src/views/ecw/order/index.vue
+166
-30
discount.vue
src/views/ecw/order/special/discount.vue
+2
-0
index.vue
src/views/ecw/order/special/index.vue
+5
-3
index.vue
src/views/ecw/order/warehousing/index.vue
+4
-3
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
index.vue
src/views/system/myInternalMessage/index.vue
+3
-3
No files found.
src/api/ecw/boxSea.js
View file @
1df20f6a
...
@@ -610,6 +610,20 @@ export function boxUpdate(data) {
...
@@ -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 **********************************/
/***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/
/***************************** 卸柜 start **********************************/
...
...
src/components/DictSelector/index.vue
View file @
1df20f6a
...
@@ -40,10 +40,6 @@ export default {
...
@@ -40,10 +40,6 @@ export default {
type
:
[
Function
,
String
],
type
:
[
Function
,
String
],
default
:
String
default
:
String
},
},
/* forceString: {
type: Boolean,
default: true
}, */
defaultable
:
Boolean
,
// 是否默认选择第一个
defaultable
:
Boolean
,
// 是否默认选择第一个
disabled
:
Boolean
,
disabled
:
Boolean
,
/**
/**
...
@@ -80,11 +76,10 @@ export default {
...
@@ -80,11 +76,10 @@ export default {
},
},
watch
:{
watch
:{
valueSync
(
val
){
valueSync
(
val
){
//this.$emit('input', this.forceString ? String(this.valueSync) : this.valueSync)
this
.
$emit
(
'
input
'
,
val
)
this
.
$emit
(
'
input
'
,
this
.
format
(
val
))
},
},
value
(
val
){
value
(
val
){
this
.
setValueSync
()
if
(
val
!=
this
.
valueSync
)
this
.
setValueSync
()
},
},
dictList
(){
dictList
(){
this
.
setDefault
()
this
.
setDefault
()
...
@@ -96,7 +91,7 @@ export default {
...
@@ -96,7 +91,7 @@ export default {
},
},
methods
:{
methods
:{
format
(
val
){
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
]
let
formatter
=
typeof
this
.
formatter
==
'
function
'
?
this
.
formatter
:
FORMATTERS
[
this
.
formatter
]
if
(
!
formatter
){
if
(
!
formatter
){
console
.
warn
(
'
格式器无效
'
,
this
.
formatter
)
console
.
warn
(
'
格式器无效
'
,
this
.
formatter
)
...
@@ -108,7 +103,9 @@ export default {
...
@@ -108,7 +103,9 @@ export default {
this
.
valueSync
=
val
this
.
valueSync
=
val
},
},
setValueSync
(){
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
){
if
(
this
.
multiple
){
let
value
=
[]
let
value
=
[]
if
(
typeof
this
.
value
==
'
string
'
){
if
(
typeof
this
.
value
==
'
string
'
){
...
@@ -118,17 +115,13 @@ export default {
...
@@ -118,17 +115,13 @@ export default {
}
else
{
}
else
{
this
.
valueSync
=
this
.
format
(
this
.
value
)
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
(){
getList
(){
return
this
.
getDictDatas
(
this
.
type
)
return
this
.
getDictDatas
(
this
.
type
)
},
},
setDefault
(){
setDefault
(){
if
(
!
this
.
defaultable
)
return
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
this
.
valueSync
=
this
.
multiple
?
[]
:
this
.
formattedList
[
0
].
value
}
}
}
}
...
...
src/components/UserSelector/index.vue
View file @
1df20f6a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<el-select
<el-select
v-model=
"index"
v-model=
"index"
filterable
filterable
clearable
:clearable=
"clearable"
remote
remote
reserve-keyword
reserve-keyword
placeholder=
"请选择"
placeholder=
"请选择"
...
@@ -20,7 +20,8 @@ import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customer
...
@@ -20,7 +20,8 @@ import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customer
import
{
listSimpleUsers
}
from
'
@/api/system/user
'
import
{
listSimpleUsers
}
from
'
@/api/system/user
'
export
default
{
export
default
{
props
:{
props
:{
value
:
[
String
,
Number
]
value
:
[
String
,
Number
],
clearable
:
Boolean
},
},
data
(){
data
(){
return
{
return
{
...
@@ -36,7 +37,10 @@ export default {
...
@@ -36,7 +37,10 @@ export default {
this
.
$emit
(
'
change
'
,
val
!==
null
?
this
.
list
[
val
]:
null
)
this
.
$emit
(
'
change
'
,
val
!==
null
?
this
.
list
[
val
]:
null
)
},
},
value
(
val
){
value
(
val
){
// this.init()
this
.
resetIndex
()
},
list
(){
this
.
resetIndex
()
}
}
},
},
created
(){
created
(){
...
@@ -46,6 +50,11 @@ export default {
...
@@ -46,6 +50,11 @@ export default {
// this.init()
// this.init()
},
},
methods
:{
methods
:{
resetIndex
(){
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
id
==
this
.
value
)
if
(
index
<
0
)
this
.
index
=
null
else
this
.
index
=
index
}
/* init(){
/* init(){
console.log('初始化联系人选择', this.value)
console.log('初始化联系人选择', this.value)
if(!this.value) return
if(!this.value) return
...
...
src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
View file @
1df20f6a
...
@@ -317,8 +317,7 @@ export default {
...
@@ -317,8 +317,7 @@ export default {
};
};
</
script
>
</
script
>
<
style
>
<
style
scoped
>
/** 处理中 */
/** 处理中 */
.highlight-todo.djs-connection
>
.djs-visual
>
path
{
.highlight-todo.djs-connection
>
.djs-visual
>
path
{
stroke
:
#1890ff
!important
;
stroke
:
#1890ff
!important
;
...
...
src/views/bpm/processInstance/detail.vue
View file @
1df20f6a
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
</el-col>
</el-col>
</el-card>
</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"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-document"
>
申请信息【
{{
processInstance
.
name
}}
】
</span>
<span
class=
"el-icon-document"
>
申请信息【
{{
processInstance
.
name
}}
】
</span>
</div>
</div>
...
@@ -59,7 +59,7 @@
...
@@ -59,7 +59,7 @@
</div>
</div>
</el-card>
</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"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
审批记录
</span>
<span
class=
"el-icon-picture-outline"
>
审批记录
</span>
</div>
</div>
...
@@ -94,7 +94,7 @@
...
@@ -94,7 +94,7 @@
</el-card>
</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"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
流程图
</span>
<span
class=
"el-icon-picture-outline"
>
流程图
</span>
</div>
</div>
...
@@ -594,7 +594,7 @@ export default {
...
@@ -594,7 +594,7 @@ export default {
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.my-process-designer
{
.my-process-designer
{
height
:
calc
(
100vh
-
200px
);
height
:
calc
(
100vh
-
200px
);
}
}
...
...
src/views/ecw/box/indexFutureBox.vue
View file @
1df20f6a
...
@@ -7,16 +7,16 @@
...
@@ -7,16 +7,16 @@
<!--
<el-select
v-model=
"queryParams.transportType"
placeholder=
"请选择运输方式"
clearable
size=
"small"
>
<!--
<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-option
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
-->
</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>
<el-form-item
label=
"始发仓"
prop=
"startWarehouseId"
>
<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-option
v-for=
"item in exportWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"目的仓"
prop=
"destWarehouseId"
>
<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-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
@@ -179,6 +179,7 @@ import {getCabinetPage} from "@/api/ecw/cabinet";
...
@@ -179,6 +179,7 @@ import {getCabinetPage} from "@/api/ecw/cabinet";
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
Decimal
from
'
decimal.js
'
export
default
{
export
default
{
name
:
"
indexFutureBox
"
,
name
:
"
indexFutureBox
"
,
components
:
{
components
:
{
...
@@ -327,11 +328,11 @@ export default {
...
@@ -327,11 +328,11 @@ export default {
},
},
'
form.warehousedNumber
'
(){
'
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
'
(){
'
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
:
{
methods
:
{
...
...
src/views/ecw/box/ladingBill/index.vue
View file @
1df20f6a
...
@@ -175,7 +175,11 @@ export default {
...
@@ -175,7 +175,11 @@ export default {
this.$set(this.dialogCfg, "visible", true);
this.$set(this.dialogCfg, "visible", true);
},
},
makeBill(row) {
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 { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
let billContent = `
$
{
titleZh
}
$
{
contentZh
}
`,
let billContent = `
$
{
titleZh
}
$
{
contentZh
}
`,
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
View file @
1df20f6a
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container shipping-split-order"
>
<!-- 搜索工作栏 -->
<el-card>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
拆单申请-
{{
orderData
.
orderNo
||
''
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
拆单申请-
{{
orderData
.
orderNo
||
''
}}
</div>
<div
class=
"btn-header"
>
<div
class=
"btn-header"
>
<span
class=
"card-title"
>
原单信息
</span>
<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>
</div>
<el-descriptions
:column=
"4"
>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
label=
"唛头"
>
<el-descriptions-item
label=
"唛头"
>
{{
orderData
.
marks
?
orderData
.
marks
:
'
无
'
}}
{{
orderData
.
marks
?
orderData
.
marks
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"已
到
箱数/总箱数"
>
<el-descriptions-item
label=
"已
实装
箱数/总箱数"
>
<span>
{{
orderData
.
sum
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
<span>
{{
currRow
.
install
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"订单状态"
>
<el-descriptions-item
label=
"订单状态"
>
<!--
<dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"orderData.status"
/>
-->
{{
orderData
.
status
==
99
?
'
异常
'
:
'
正常
'
}}
{{
orderData
.
status
==
99
?
'
异常
'
:
'
正常
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"送货日期"
>
<el-descriptions-item
label=
"送货日期"
>
...
@@ -55,11 +49,11 @@
...
@@ -55,11 +49,11 @@
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
company
||
'
无
'
:
'
无
'
}}
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
company
||
'
无
'
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"收货电话"
>
<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-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"card"
>
<el-card
class=
"card"
>
<!-- 列表 -->
<!-- 列表 -->
<div
slot=
"header"
class=
"card-title"
>
货物信息
</div>
<div
slot=
"header"
class=
"card-title"
>
货物信息
</div>
...
@@ -77,16 +71,21 @@
...
@@ -77,16 +71,21 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"装柜货物属性"
align=
"center"
width=
"600"
>
<el-table-column
label=
"装柜货物属性"
align=
"center"
width=
"600"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-row>
<el-row
style=
"text-align:left;"
>
<span>
规格:
{{
scope
.
row
.
boxGauge
}}
</span>
<el-row>
</el-row>
<span>
规格:
{{
scope
.
row
.
boxGauge
}}
</span>
<el-row>
</el-row>
<span>
品牌:
<el-row>
<dict-tag
:type=
"DICT_TYPE.ECW_IS_BRAND"
:value=
"scope.row.brandType"
/>
<span>
品牌:
</span>
<dict-tag
:type=
"DICT_TYPE.ECW_IS_BRAND"
:value=
"scope.row.brandType"
/>
<span
style=
"margin-left: 10px;"
>
箱数:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
cartonsNum
:
0
}}
</span>
</span>
<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
.
cartonsNum
:
0
}}
</span>
<span
style=
"margin-left: 10px;"
>
重量:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
weight
:
0
}}
kg
</span>
<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>
</el-row>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -102,27 +101,26 @@
...
@@ -102,27 +101,26 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</el-card>
</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
slot=
"header"
class=
"card-title"
>
拆单信息
</div>
<div
v-for=
"(item, index) in splitData"
:key=
"index"
>
<div>
<div
class=
"btn-header"
>
<div
class=
"btn-header"
>
<div>
<div>
<p
class=
"card-info"
>
<p
class=
"card-info"
>
<span
class=
"card-title"
>
<span
class=
"card-title"
>
{{
item
.orderNo}}
{{
splitData
.orderNo}}
</span>
</span>
<
dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"item.transportId"
/
>
<
span>
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:'无'}}
</span
>
<span>
发往:{{
importCityName(item.dstWarehouseId)
}}
</span>
<span>
发往:{{
splitData.dstWarehouseName
}}
</span>
</p>
</p>
</div>
</div>
<div>
<div>
<el-button
v-if=
"index==0"
disabled
type=
"primary"
@
click=
"addShop(index)"
>
放入
</el-button>
<el-button
type=
"primary"
@
click=
"addShop"
>
放入
</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>
</div>
</div>
</div>
</div>
<el-table
border
:data=
"
item
.orderSplitItemBackVOList"
>
<el-table
border
:data=
"
splitData
.orderSplitItemBackVOList"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
<span>
{{
scope
.
$index
+
1
}}
</span>
...
@@ -155,71 +153,49 @@
...
@@ -155,71 +153,49 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"计划装柜"
align=
"center"
>
<el-table-column
label=
"计划装柜"
align=
"center"
>
无
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
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
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>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
</el-card>
</el-card>
<work-flow
xmlkey=
"split_order"
v-model=
"selectedUsers"
></work-flow>
<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"
>
<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"
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"
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=
"cancelSplit"
>
取消审核
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
</div>
</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-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-row>
<el-form-item
label=
"中文品名:"
>
<el-form-item
label=
"中文品名:"
prop=
"prodTitleZh"
>
<el-select
v-model=
"shopForm.prodTitleZh"
placeholder=
"请选择中文品名"
@
change=
"changeProdTitleZh"
>
<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-select>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
<el-row>
<el-row>
<el-form-item
label=
"英文品名:"
>
<el-form-item
label=
"英文品名:"
prop=
"prodTitleEn"
>
<el-select
v-model=
"shopForm.prodTitleEn"
placeholder=
"请选择英文品名"
@
change=
"changeProdTitleEn"
>
<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-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"剩余箱数:"
>
<el-form-item
label=
"剩余箱数:"
>
{{shopForm.sum||0}}
{{shopForm.sum||0}}
</el-form-item>
</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-input-number
v-model=
"shopForm.num"
controls-position=
"right"
:min=
"1"
:max=
"shopForm.sum"
></el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"备注信息:"
>
<el-form-item
label=
"备注信息:"
>
...
@@ -236,23 +212,22 @@
...
@@ -236,23 +212,22 @@
</template>
</template>
<
script
>
<
script
>
import
{
getDictData
,
getDictDatas
}
from
"
@/utils/dict
"
;
import
{
import
{
getSplitList
,
getSplitList
,
splitApply
,
createSplit
,
createSplit
,
cancelApply
,
cancelApply
,
createSplitItem
,
createSplitItem
,
deleteSplitItem
,
deleteSplitItem
,
deleteSplit
,
}
from
"
@/api/ecw/orderHandle
"
;
}
from
"
@/api/ecw/orderHandle
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
serviceMsg
}
from
"
../../utils
"
;
import
{
createApproval
}
from
"
@/api/ecw/boxSea
"
;
export
default
{
export
default
{
name
:
"
splitOrder
"
,
name
:
"
splitOrder
"
,
inheritAttrs
:
false
,
components
:
{
components
:
{
WorkFlow
,
WorkFlow
,
},
},
...
@@ -261,33 +236,17 @@ export default {
...
@@ -261,33 +236,17 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
checked
:
false
,
orderData
:
{},
orderData
:
{},
splitData
:
[],
splitData
:
{},
splitIndex
:
0
,
detail
:
{},
channelData
:
[],
tradeCityList
:
[],
multipleSelection
:
[],
loading
:
false
,
loading
:
false
,
open
:
false
,
form
:
{},
selectedUsers
:
[],
selectedUsers
:
[],
shopOpen
:
false
,
tradeCityList
:
[]
,
shopOpen
:
false
,
orderItems
:
[],
shopForm
:
{},
shopForm
:
{},
// 表单校验
// 表单校验
rules
:
{
transportId
:
[
{
required
:
true
,
message
:
"
请选择运输方式
"
,
trigger
:
"
change
"
},
],
warehouseIds
:
[
{
required
:
true
,
message
:
"
请选择目的仓库
"
,
trigger
:
"
change
"
},
],
channelId
:
[
{
required
:
true
,
message
:
"
请选择出货渠道
"
,
trigger
:
"
change
"
},
],
},
// 表单校验
shopRules
:
{
shopRules
:
{
prodTitleZh
:
[
prodTitleZh
:
[
{
required
:
true
,
message
:
"
请选择中文品名
"
,
trigger
:
"
change
"
},
{
required
:
true
,
message
:
"
请选择中文品名
"
,
trigger
:
"
change
"
},
...
@@ -295,24 +254,19 @@ export default {
...
@@ -295,24 +254,19 @@ export default {
prodTitleEn
:
[
prodTitleEn
:
[
{
required
:
true
,
message
:
"
请选择英文品名
"
,
trigger
:
"
change
"
},
{
required
:
true
,
message
:
"
请选择英文品名
"
,
trigger
:
"
change
"
},
],
],
num
:
[{
required
:
true
,
message
:
"
请输入箱数
"
,
trigger
:
"
change
"
}],
},
},
queryParams
:
{
queryParams
:
{
orderId
:
96
,
orderId
:
0
,
lang
:
0
,
lang
:
0
,
},
},
query
:
{
page
:
1
,
rows
:
20
,
},
splitItemIndex
:
0
,
};
};
},
},
created
()
{
created
()
{
this
.
getChannel
();
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
));
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
));
this
.
queryParams
.
orderId
=
this
.
currRow
.
orderId
;
this
.
queryParams
.
orderId
=
this
.
currRow
.
orderId
;
this
.
get
List
();
this
.
get
OrderDetail
();
this
.
get
Order
();
this
.
get
Split
();
},
},
watch
:
{
watch
:
{
//监听table这个对象
//监听table这个对象
...
@@ -334,51 +288,64 @@ export default {
...
@@ -334,51 +288,64 @@ export default {
},
},
},
},
},
},
computed
:
{
methods
:
{
getDictData
()
{
/* 拆箱总数 */
return
(
type
,
value
)
=>
getDictData
(
type
,
value
)
||
{};
totalSplitNum
()
{
let
_total
=
0
;
const
{
orderSplitItemBackVOList
=
[]
}
=
this
.
splitData
;
orderSplitItemBackVOList
.
forEach
((
v
)
=>
{
_total
+=
Number
(
v
.
splitNum
);
});
return
_total
;
},
},
getDictDatas
()
{
/* 打开拆单 */
return
getDictDatas
;
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
();
});
}
}
});
},
},
importCityList
()
{
/* 查询拆单项 */
return
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
type
==
1
);
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
);
}
});
});
},
},
},
getOrderDetail
()
{
methods
:
{
getOrder
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
getOrder
(
this
.
queryParams
.
orderId
).
then
((
response
)
=>
{
getOrder
(
this
.
queryParams
.
orderId
).
then
((
response
)
=>
{
this
.
orderData
=
response
.
data
;
this
.
orderData
=
response
.
data
;
this
.
query
.
destWarehouseId
=
response
.
data
.
logisticsInfoDto
.
startWarehouseId
;
this
.
loading
=
false
;
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
()
{
getSummaries
()
{
const
sums
=
[];
const
sums
=
[];
...
@@ -390,12 +357,12 @@ export default {
...
@@ -390,12 +357,12 @@ export default {
)
{
)
{
return
sums
;
return
sums
;
}
}
var
orderSum
=
0
;
let
orderSum
=
0
;
var
orderV
=
0
;
let
orderV
=
0
;
var
orderW
=
0
;
let
orderW
=
0
;
var
leviteSum
=
0
;
let
leviteSum
=
0
;
var
leviteV
=
0
;
let
leviteV
=
0
;
var
leviteW
=
0
;
let
leviteW
=
0
;
this
.
orderData
.
orderItemVOList
.
forEach
((
column
,
index
)
=>
{
this
.
orderData
.
orderItemVOList
.
forEach
((
column
,
index
)
=>
{
orderSum
+=
column
.
num
??
0
;
orderSum
+=
column
.
num
??
0
;
orderV
+=
column
.
volume
??
0
;
orderV
+=
column
.
volume
??
0
;
...
@@ -422,31 +389,32 @@ export default {
...
@@ -422,31 +389,32 @@ export default {
return
sums
;
return
sums
;
},
},
importCityName
(
id
)
{
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
:
"
无
"
;
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
},
},
submitForm
()
{
submitForm
()
{
var
params
=
{
const
{
shipmentObj
}
=
this
.
$attrs
;
orderId
:
this
.
queryParams
.
orderId
,
// 创建拆单审核
createApproval
({
applyReason
:
"
拆单审核
"
,
approvalStatus
:
0
,
approvalType
:
8
,
copyUserId
:
this
.
selectedUsers
,
copyUserId
:
this
.
selectedUsers
,
};
orderId
:
this
.
currRow
.
orderId
,
splitApply
(
params
).
then
((
res
)
=>
{
shipmentId
:
shipmentObj
.
id
,
this
.
$modal
.
msgSuccess
(
"
申请成功
"
);
}).
then
((
res
)
=>
{
that
.
getList
();
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getSplit
();
});
});
});
},
},
addShop
(
index
)
{
addShop
()
{
this
.
splitItemIndex
=
index
;
this
.
shopOpen
=
true
;
this
.
shopOpen
=
true
;
},
},
addSplit
()
{
this
.
open
=
true
;
},
changeProdTitleZh
()
{
changeProdTitleZh
()
{
var
list
=
[];
let
list
=
[];
list
=
this
.
orderData
.
orderItemVO
List
.
filter
(
list
=
this
.
currRow
.
goods
List
.
filter
(
(
item
)
=>
item
.
prodTitleZh
==
this
.
shopForm
.
prodTitleZh
(
item
)
=>
item
.
prodTitleZh
==
this
.
shopForm
.
prodTitleZh
);
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
sum
=
list
[
0
].
num
;
...
@@ -454,73 +422,58 @@ export default {
...
@@ -454,73 +422,58 @@ export default {
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
;
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
;
},
},
changeProdTitleEn
()
{
changeProdTitleEn
()
{
var
list
=
[];
let
list
=
[];
list
=
this
.
orderData
.
orderItemVOList
.
filter
(
list
=
this
.
orderData
.
orderItemVOList
.
filter
(
(
item
)
=>
item
.
prodTitleEn
==
this
.
shopForm
.
prodTitleEn
(
item
)
=>
item
.
prodTitleEn
==
this
.
shopForm
.
prodTitleEn
);
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
prodTitleZh
=
list
[
0
].
prodTitleZh
;
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
()
{
shopAdd
()
{
this
.
$refs
[
"
shopForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
"
shopForm
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
if
(
valid
)
{
return
;
// 输入箱数大于实装箱数
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
;
}
let
params
=
{
num
:
this
.
shopForm
.
num
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderSplitId
:
this
.
splitData
.
id
,
remarks
:
this
.
shopForm
.
remarks
,
};
createSplitItem
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
放入成功
"
);
this
.
getSplit
();
this
.
shopForm
=
{};
});
this
.
shopOpen
=
false
;
}
}
});
});
var
params
=
{
num
:
this
.
shopForm
.
num
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderSplitId
:
this
.
splitData
[
this
.
splitItemIndex
].
id
,
remarks
:
this
.
shopForm
.
remarks
,
};
createSplitItem
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
放入成功
"
);
this
.
getList
();
this
.
shopForm
=
{};
});
this
.
shopOpen
=
false
;
},
},
removeShop
(
id
)
{
removeShop
(
id
)
{
let
that
=
this
;
let
that
=
this
;
that
.
$confirm
(
"
是否移除货物吗?
"
).
then
(
function
()
{
that
.
$confirm
(
"
是否移除货物吗?
"
).
then
(
function
()
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
移除成功
"
);
that
.
$message
.
success
(
"
移除成功
"
);
that
.
get
Lis
t
();
that
.
get
Spli
t
();
});
});
});
});
},
},
cancelSplit
()
{
cancelSplit
()
{
let
that
=
this
;
const
{
shipmentObj
}
=
this
.
$attrs
;
that
.
$confirm
(
"
是否取消审核吗?
"
).
then
(
function
()
{
approvalCancel
({
cancelApply
({
orderId
:
that
.
queryParams
.
orderId
}).
then
((
res
)
=>
{
applyReason
:
"
取消审核
"
,
that
.
$message
.
success
(
"
取消成功
"
);
id
:
shipmentObj
[
"
cabinetApprovalInfo
"
].
id
,
that
.
getList
();
shipmentId
:
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
});
});
},
},
...
@@ -528,43 +481,39 @@ export default {
...
@@ -528,43 +481,39 @@ export default {
this
.
shopOpen
=
false
;
this
.
shopOpen
=
false
;
this
.
shopForm
=
{};
this
.
shopForm
=
{};
},
},
/** 删除按钮操作 */
deleteSplit
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
"
是否确认删除新拆的订单吗?
"
).
then
(
function
()
{
deleteSplit
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
删除成功
"
);
that
.
getList
();
});
});
},
},
},
};
};
</
script
>
</
script
>
<
style
>
.card-title
{
<
style
lang=
"scss"
>
font-size
:
18px
;
.shipping-split-order
{
font-weight
:
bold
;
.card-title
{
margin-top
:
10px
;
font-size
:
18px
;
}
font-weight
:
bold
;
.card-info
{
margin-top
:
10px
;
font-size
:
16px
;
}
}
.card-info
{
.card
{
font-size
:
16px
;
margin-top
:
20px
;
>
span
{
}
margin-right
:
10px
;
.btn-header
{
}
width
:
90%
;
}
display
:
flex
;
.card
{
align-items
:
center
;
margin-top
:
20px
;
justify-content
:
space-between
;
}
margin
:
20px
0
;
.btn-header
{
}
width
:
90%
;
.red
{
display
:
flex
;
color
:
#ff3430
;
align-items
:
center
;
font-size
:
15px
;
justify-content
:
space-between
;
}
margin
:
20px
0
;
.footer_btn
{
}
padding-bottom
:
60px
;
.red
{
color
:
#ff3430
;
font-size
:
15px
;
}
.footer_btn
{
padding-bottom
:
60px
;
}
}
}
</
style
>
</
style
>
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
1df20f6a
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
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"
@
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
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -194,7 +194,7 @@
...
@@ -194,7 +194,7 @@
</el-row>
</el-row>
</
template
>
</
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>
</el-dialog>
</div>
</div>
</template>
</template>
...
...
src/views/ecw/box/shippingSea/nodePage/review.vue
View file @
1df20f6a
...
@@ -2,11 +2,12 @@
...
@@ -2,11 +2,12 @@
<div>
<div>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form-item
label=
"申请理由"
>
<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-item>
</el-form>
</el-form>
<el-row
class=
"operate-button"
>
<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-button
@
click=
"cancel"
>
关闭
</el-button>
</el-row>
</el-row>
</div>
</div>
...
@@ -14,7 +15,7 @@
...
@@ -14,7 +15,7 @@
<
script
>
<
script
>
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../utils
"
;
import
{
serviceMsg
,
toReviewDetail
}
from
"
../utils
"
;
/**
/**
* 反审
* 反审
...
@@ -26,9 +27,29 @@ export default {
...
@@ -26,9 +27,29 @@ export default {
return
{
return
{
// 反审对象
// 反审对象
reviewObj
:
{},
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
:
{
methods
:
{
jumpReviewDetail
()
{
toReviewDetail
.
apply
(
this
,
[
this
.
bpmProcessId
]);
this
.
$emit
(
"
closeDialog
"
);
},
/** 提交 */
/** 提交 */
onSubmit
()
{
onSubmit
()
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
...
...
src/views/ecw/channel/index.vue
View file @
1df20f6a
...
@@ -229,21 +229,11 @@ export default {
...
@@ -229,21 +229,11 @@ export default {
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
return
this
.
$router
.
push
(
'
edit
'
)
return
this
.
$router
.
push
(
'
create_channel
'
)
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加渠道管理
"
;
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
return
this
.
$router
.
push
(
'
edit?id=
'
+
row
.
channelId
)
return
this
.
$router
.
push
(
'
edit_channel?id=
'
+
row
.
channelId
)
this
.
reset
();
const
channelId
=
row
.
channelId
;
getChannel
(
channelId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改渠道管理
"
;
});
},
},
/** 删除按钮操作 */
/** 删除按钮操作 */
...
...
src/views/ecw/customer/index.vue
View file @
1df20f6a
...
@@ -10,36 +10,50 @@
...
@@ -10,36 +10,50 @@
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系方式"
>
<el-input
placeholder=
"请输入联系方式"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
label=
"客户类别"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
label=
"客户经理"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
placeholder=
"请选择客户经理"
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=
"客户来源"
prop=
"source"
>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
客户经理"
prop=
"customerServi
ce"
>
<el-form-item
label=
"
国家"
prop=
"sour
ce"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择客户经理"
clearable
size=
"small
"
>
<el-select
clearable
v-model=
"form.country"
placeholder=
"请选择国家
"
>
<el-option
v-for=
"dict in c
ustomerService
List"
<el-option
v-for=
"dict in c
ountry
List"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"信用等级"
prop=
"department"
>
<el-select
clearable
v-model=
"form.level"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
@@ -56,36 +70,42 @@
...
@@ -56,36 +70,42 @@
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
导出
</el-button>
v-hasPermi=
"['ecw:customer:export']"
>
导出
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"transferShow = true;"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
批量移交
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
</el-row>
<!-- 列表 -->
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"客户编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"客户编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户等级"
align=
"center"
prop=
"
level
"
>
<el-table-column
label=
"客户等级"
align=
"center"
prop=
"
vipLevelNameZh
"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
label=
"信用等级"
prop=
"creditLevelNameZh"
></el-table-column>
<el-table-column
label=
"客户经理"
align=
"center"
prop=
"customerService"
:formatter=
"customerServiceFn"
>
</el-table-column>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
>
<el-table-column
label=
"主联系人"
prop=
"defaultContactName"
></el-table-column>
<
template
v-slot:default=
"scope"
>
<el-table-column
label=
"主联系方式"
prop=
"defaultContactPhone"
></el-table-column>
{{
scope
.
row
.
department
}}
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"客户经理"
align=
"center"
prop=
"customerService"
:formatter=
"customerServiceFn"
>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
...
@@ -451,6 +471,7 @@
...
@@ -451,6 +471,7 @@
</el-dialog>
</el-dialog>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
ref=
"CustomerFollowList"
></customer-follow-list>
<customer-follow-list
:customer-id=
"customerId"
:id=
"customerId"
ref=
"CustomerFollowList"
></customer-follow-list>
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
<customer-complaints
:customer-id=
"customerId"
ref=
"customerComplaints"
></customer-complaints>
<transfer-customer
:show.sync=
"transferShow"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
</div>
</div>
</template>
</template>
...
@@ -467,13 +488,16 @@ import CustomerFollowList from "@/components/CustomerFollowList"
...
@@ -467,13 +488,16 @@ import CustomerFollowList from "@/components/CustomerFollowList"
import
customerComplaints
from
"
@/components/customerComplaints
"
import
customerComplaints
from
"
@/components/customerComplaints
"
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
;
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
;
export
default
{
export
default
{
name
:
"
Customer
"
,
name
:
"
Customer
"
,
components
:
{
components
:
{
upload
,
upload
,
CustomerFollowList
,
CustomerFollowList
,
customerComplaints
customerComplaints
,
transferCustomer
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -525,11 +549,16 @@ export default {
...
@@ -525,11 +549,16 @@ export default {
showLine
:
false
,
showLine
:
false
,
customerId
:
undefined
,
customerId
:
undefined
,
customerServiceList
:[],
customerServiceList
:[],
countryList
:
[],
countryList
:
[]
creditList
:[],
selectCustomerList
:[],
transferShow
:
false
};
};
},
},
created
()
{
created
()
{
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
(
r
=>
{
this
.
creditList
=
r
.
data
.
list
})
this
.
getList
();
this
.
getList
();
// getNodeList().then(r => {
// getNodeList().then(r => {
// this.nodeList = r.data
// this.nodeList = r.data
...
@@ -682,7 +711,6 @@ export default {
...
@@ -682,7 +711,6 @@ export default {
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
// 处理查询参数
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
params
.
pageSize
=
undefined
;
...
@@ -693,6 +721,8 @@ export default {
...
@@ -693,6 +721,8 @@ export default {
return
exportCustomerExcel
(
params
);
return
exportCustomerExcel
(
params
);
}).
then
(
response
=>
{
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
客户信息.xls
'
);
this
.
$download
.
excel
(
response
,
'
客户信息.xls
'
);
console
.
log
(
response
,
'
response
'
)
this
.
$download
.
excel
(
response
,
'
全部客户信息.xls
'
);
this
.
exportLoading
=
false
;
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}).
catch
(()
=>
{});
},
},
...
@@ -707,7 +737,19 @@ export default {
...
@@ -707,7 +737,19 @@ export default {
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
customerComplaints
.
handleAdd
();
this
.
$refs
.
customerComplaints
.
handleAdd
();
})
})
},
handleSelectionChange
(
val
){
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
}
}
},
watch
:{
selectCustomerList
(
val
){
if
(
val
.
length
===
0
){
this
.
getList
()
this
.
$refs
.
multipleTable
.
clearSelection
();
}
},
}
}
};
};
</
script
>
</
script
>
src/views/ecw/customer/transferCustomer.vue
0 → 100644
View file @
1df20f6a
<
template
>
<el-dialog
center
title=
"客服"
:visible.sync=
"show"
width=
"30%"
>
<div
style=
"width: 100%;min-height: 200px;text-align: center"
>
<el-select
filterable
v-model=
"service"
>
<el-option
v-for=
"(item,index) in customerServiceList"
:key=
"index"
:label=
"item.nickname"
:value=
"item.id"
></el-option>
</el-select>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submit"
>
确 定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
handOverCustomer
}
from
"
@/api/ecw/customer
"
;
export
default
{
name
:
"
transferCustomer
"
,
props
:{
show
:{
type
:
Boolean
,
default
:
false
},
customerIds
:[
Array
,
String
],
tableName
:
String
},
created
()
{
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
},
computed
:{
getCustomerIds
(){
if
(
this
.
customerIds
instanceof
Array
)
return
this
.
customerIds
else
return
this
.
customerIds
.
split
(
'
,
'
)
}
},
data
(){
return
{
customerServiceList
:[],
service
:
''
,
}
},
methods
:{
submit
(){
if
(
!
this
.
service
){
return
this
.
$message
.
warning
(
'
请选择客户经理!
'
);
}
handOverCustomer
({
customerServiceId
:
this
.
service
,
customerIdList
:
this
.
getCustomerIds
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
$emit
(
'
update:show
'
,
false
)
this
.
$emit
(
'
update:customerIds
'
,[])
this
.
$message
.
success
(
'
用户批量转移成功!
'
)
}
})
},
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/ecw/deptTarget/index.vue
View file @
1df20f6a
...
@@ -315,8 +315,8 @@
...
@@ -315,8 +315,8 @@
setTime
(
item
)
{
setTime
(
item
)
{
this
.
targetPeriod
.
forEach
((
i
,
index
)
=>
{
this
.
targetPeriod
.
forEach
((
i
,
index
)
=>
{
if
(
i
.
name
===
item
)
{
if
(
i
.
name
===
item
)
{
this
.
form
.
startTime
=
i
.
startDate
;
this
.
form
.
startTime
=
i
.
startDate
+
"
00:00:00
"
;
this
.
form
.
endTime
=
i
.
endDate
;
this
.
form
.
endTime
=
i
.
endDate
+
"
23:59:59
"
;
}
}
})
})
},
},
...
...
src/views/ecw/myCustomerService/index.vue
View file @
1df20f6a
...
@@ -11,30 +11,50 @@
...
@@ -11,30 +11,50 @@
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系方式"
>
<el-input
placeholder=
"请输入联系方式"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
label=
"客户类别"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
label=
"客户经理"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
placeholder=
"请选择客户经理"
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=
"客户来源"
prop=
"source"
>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"source"
>
<el-select
clearable
v-model=
"form.country"
placeholder=
"请选择国家"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-select
clearable
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"信用等级"
prop=
"department"
>
<el-select
clearable
v-model=
"form.level"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
@@ -51,34 +71,42 @@
...
@@ -51,34 +71,42 @@
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
导出
</el-button>
v-hasPermi=
"['ecw:customer:export']"
>
导出
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"show = true;"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
批量移交
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
</el-row>
<!-- 列表 -->
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
ref=
"multipleTable"
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"客户编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"客户编号"
align=
"center"
prop=
"number"
/>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户等级"
align=
"center"
prop=
"
level
"
>
<el-table-column
label=
"客户等级"
align=
"center"
prop=
"
vipLevelNameZh
"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
>
<el-table-column
label=
"信用等级"
prop=
"creditLevelNameZh"
></el-table-column>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COUNTRY"
:value=
"scope.row.country"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
/>
<el-table-column
label=
"主联系人"
prop=
"defaultContactName"
></el-table-column>
<el-table-column
label=
"主联系方式"
prop=
"defaultContactPhone"
></el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"客户经理"
align=
"center"
prop=
"customerService"
:formatter=
"customerServiceFn"
>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
:formatter=
"countryFormatter"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleView(scope.row)"
...
@@ -98,6 +126,7 @@
...
@@ -98,6 +126,7 @@
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<customer-follow-list
ref=
"customerFollowList"
:customer-id=
"customerId"
:id=
"customerId"
></customer-follow-list>
<customer-follow-list
ref=
"customerFollowList"
:customer-id=
"customerId"
:id=
"customerId"
></customer-follow-list>
<customer-complaints
ref=
"customerComplaint"
:customer-id.sync=
"customerId"
></customer-complaints>
<customer-complaints
ref=
"customerComplaint"
:customer-id.sync=
"customerId"
></customer-complaints>
<transfer-customer
:show.sync=
"show"
:customer-ids.sync=
"selectCustomerList"
></transfer-customer>
</div>
</div>
</template>
</template>
...
@@ -108,15 +137,24 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict';
...
@@ -108,15 +137,24 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import
upload
from
'
@/components/ImageUpload
'
import
upload
from
'
@/components/ImageUpload
'
import
customerFollowList
from
"
@/components/CustomerFollowList
"
;
import
customerFollowList
from
"
@/components/CustomerFollowList
"
;
import
customerComplaints
from
"
@/components/customerComplaints
"
;
import
customerComplaints
from
"
@/components/customerComplaints
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
;
import
{
getCreditPage
}
from
"
@/api/customer/credit
"
;
import
transferCustomer
from
"
@/views/ecw/customer/transferCustomer
"
;
export
default
{
export
default
{
name
:
"
myCustomerService
"
,
name
:
"
myCustomerService
"
,
components
:
{
components
:
{
upload
,
upload
,
customerFollowList
,
customerFollowList
,
customerComplaints
customerComplaints
,
transferCustomer
},
},
data
()
{
data
()
{
return
{
return
{
show
:
false
,
creditList
:[],
countryList
:[],
customerServiceList
:[],
getDictDatas
,
getDictDatas
,
DICT_TYPE
,
DICT_TYPE
,
// 遮罩层
// 遮罩层
...
@@ -163,6 +201,7 @@ export default {
...
@@ -163,6 +201,7 @@ export default {
nodeList
:
[],
nodeList
:
[],
showLine
:
false
,
showLine
:
false
,
customerId
:
undefined
,
customerId
:
undefined
,
selectCustomerList
:[],
};
};
},
},
created
()
{
created
()
{
...
@@ -170,8 +209,32 @@ export default {
...
@@ -170,8 +209,32 @@ export default {
// getNodeList().then(r => {
// getNodeList().then(r => {
// this.nodeList = r.data
// this.nodeList = r.data
// })
// })
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
(
r
=>
{
this
.
creditList
=
r
.
data
.
list
})
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
getCountryListAll
().
then
(
r
=>
{
this
.
countryList
=
r
.
data
})
},
},
methods
:
{
methods
:
{
handleSelectionChange
(
val
){
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
},
countryFormatter
(
row
,
column
,
cellValue
)
{
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
return
country
?.
nameZh
},
customerServiceFn
(
val
){
if
(
this
.
customerServiceList
.
length
>
0
){
let
index
=
this
.
customerServiceList
.
findIndex
(
item
=>
item
.
id
===
val
.
customerService
);
return
index
!==
-
1
?
this
.
customerServiceList
[
index
]?.
nickname
:
''
}
else
{
return
''
}
},
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
...
@@ -323,6 +386,15 @@ export default {
...
@@ -323,6 +386,15 @@ export default {
this
.
$refs
[
'
customerComplaint
'
].
handleAdd
()
this
.
$refs
[
'
customerComplaint
'
].
handleAdd
()
})
})
}
}
},
watch
:{
selectCustomerList
(
val
){
if
(
val
.
length
===
0
){
this
.
getList
()
this
.
$refs
.
multipleTable
.
clearSelection
();
}
},
}
}
};
};
</
script
>
</
script
>
src/views/ecw/offer/edit.vue
View file @
1df20f6a
...
@@ -499,7 +499,7 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
...
@@ -499,7 +499,7 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import
QuickCreateCustomer
from
'
@/components/QuickCreateCustomer
'
import
QuickCreateCustomer
from
'
@/components/QuickCreateCustomer
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
import
Decimal
from
'
decimal.js
'
import
Decimal
from
'
decimal.js
'
window
.
Decimal
=
Decimal
export
default
{
export
default
{
name
:
"
EcwOfferEdit
"
,
name
:
"
EcwOfferEdit
"
,
components
:
{
components
:
{
...
@@ -657,26 +657,61 @@ export default {
...
@@ -657,26 +657,61 @@ export default {
originalFeeList
(){
originalFeeList
(){
let
arr
=
[]
let
arr
=
[]
this
.
clearanceFeeList
.
forEach
(
item
=>
{
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
)
let
freight
=
this
.
freightFeeList
.
find
(
fee
=>
fee
.
currencyId
==
item
.
currencyId
)
if
(
freight
){
if
(
freight
){
it
.
amount
+=
freight
.
amount
it
.
amount
=
it
.
amount
.
plus
(
freight
.
amount
)
}
}
arr
.
push
(
it
)
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
return
arr
},
},
// 预计费用(原价 - 优惠金额)
// 预计费用(原价 - 优惠金额
+ 其他费用 + 保价费
)
estimatedCosts
(){
estimatedCosts
(){
let
arr
=
[]
let
arr
=
[]
let
withInsuranceFee
=
false
this
.
originalFeeList
.
forEach
(
item
=>
{
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
)
let
coupon
=
this
.
couponList
.
find
(
coupon
=>
coupon
.
reduceCurrencyId
==
item
.
currencyId
)
if
(
coupon
){
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
)
arr
.
push
(
it
)
})
})
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if
(
!
withInsuranceFee
&&
this
.
fee
&&
this
.
fee
.
insuranceFee
){
arr
.
push
({
currencyId
:
1
,
amount
:
Decimal
(
this
.
fee
.
insuranceFee
)
})
}
return
arr
return
arr
},
},
// 路线开通的服务
// 路线开通的服务
...
@@ -935,8 +970,11 @@ export default {
...
@@ -935,8 +970,11 @@ export default {
orderType
:
this
.
form
.
orderType
,
orderType
:
this
.
form
.
orderType
,
}).
then
(
res
=>
{
}).
then
(
res
=>
{
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
this
.
$set
(
this
,
'
couponTotalAmountList
'
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
if
(
res
.
data
.
availableDto
){
this
.
$set
(
this
,
'
couponAvailableGroupDtoList
'
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
this
.
$set
(
this
,
'
couponTotalAmountList
'
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
this
.
$set
(
this
,
'
couponAvailableGroupDtoList
'
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
}
this
.
form
.
prodCreateReqVOList
.
map
((
item
,
index
)
=>
{
this
.
form
.
prodCreateReqVOList
.
map
((
item
,
index
)
=>
{
this
.
$set
(
item
,
'
fee
'
,
res
.
data
.
prodCostDtoList
[
index
]
||
null
)
this
.
$set
(
item
,
'
fee
'
,
res
.
data
.
prodCostDtoList
[
index
]
||
null
)
...
...
src/views/ecw/offer/index.vue
View file @
1df20f6a
...
@@ -18,33 +18,33 @@
...
@@ -18,33 +18,33 @@
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"departureId"
>
<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-option
v-for=
"item in exportCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"objectiveId"
>
<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-option
v-for=
"item in importCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<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>
<el-form-item
:label=
"$t('商品')"
prop=
"prodTitle"
>
<el-form-item
:label=
"$t('商品')"
prop=
"prodTitle"
>
<el-input
v-model=
"queryParams.prodTitle"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.prodTitle"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"control"
>
<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>
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUpSalesmanId"
>
<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>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"status"
>
<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>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<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>
</el-form-item>
<div>
<div>
...
@@ -164,44 +164,10 @@ export default {
...
@@ -164,44 +164,10 @@ export default {
total
:
0
,
total
:
0
,
// 报价单管理列表
// 报价单管理列表
list
:
[],
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeStopTime
:
[],
dateRangeStartTime
:
[],
dateRangeEndTime
:
[],
dateRangeCreateTime
:
[],
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
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
,
}
,
}
,
currencyList
:
[],
currencyList
:
[],
tradeCityList
:[]
tradeCityList
:[]
...
@@ -236,14 +202,8 @@ export default {
...
@@ -236,14 +202,8 @@ export default {
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
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
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
this
.
loading
=
false
;
...
@@ -257,16 +217,15 @@ export default {
...
@@ -257,16 +217,15 @@ export default {
}
,
}
,
/** 重置按钮操作 */
/** 重置按钮操作 */
resetQuery
()
{
resetQuery
()
{
this
.
dateRangeStopTime
=
[];
this
.
queryParams
=
{
this
.
dateRangeStartTime
=
[];
pageNo
:
1
,
this
.
dateRangeEndTime
=
[];
pageSize
:
10
this
.
dateRangeCreateTime
=
[];
}
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
this
.
handleQuery
();
}
,
}
,
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
return
this
.
$router
.
push
(
'
edit
'
)
return
this
.
$router
.
push
(
'
create
'
)
}
,
}
,
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
...
@@ -289,16 +248,12 @@ export default {
...
@@ -289,16 +248,12 @@ export default {
let
params
=
{...
this
.
queryParams
}
;
let
params
=
{...
this
.
queryParams
}
;
params
.
pageNo
=
undefined
;
params
.
pageNo
=
undefined
;
params
.
pageSize
=
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
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有报价单管理数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
this
.
exportLoading
=
true
;
return
exportOfferExcel
(
params
);
return
exportOfferExcel
(
params
);
}
).
then
(
response
=>
{
}
).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment
}
.xls
'
);
this
.
$download
.
excel
(
response
,
'
报价列表
.xls
'
);
this
.
exportLoading
=
false
;
this
.
exportLoading
=
false
;
}
).
catch
(()
=>
{
}
);
}
).
catch
(()
=>
{
}
);
}
,
}
,
...
...
src/views/ecw/offer/result.vue
View file @
1df20f6a
...
@@ -87,11 +87,12 @@ export default {
...
@@ -87,11 +87,12 @@ export default {
}
}
let
data
=
Object
.
assign
({},
this
.
form
)
let
data
=
Object
.
assign
({},
this
.
form
)
updateOfferResult
(
data
).
then
(
response
=>
{
updateOfferResult
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
赢单成功
"
));
if
(
response
.
data
>
0
){
if
(
response
.
data
>
0
){
this
.
$message
.
success
(
this
.
$t
(
'
赢单成功
'
))
this
.
$redirect
(
'
../order/edit?id=
'
+
response
.
data
)
this
.
$redirect
(
'
../order/edit?id=
'
+
response
.
data
)
return
return
}
}
this
.
$message
.
success
(
this
.
$t
(
'
输单成功
'
))
this
.
$router
.
back
();
this
.
$router
.
back
();
});
});
});
});
...
...
src/views/ecw/order/a订单列表操作按钮状态判断.txt
0 → 100644
View file @
1df20f6a
编辑
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 @
1df20f6a
...
@@ -8,29 +8,29 @@
...
@@ -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-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>
<el-form-item
:label=
"$t('始发地')"
prop=
"startWarehouseId"
>
<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-option
v-for=
"item in expoerCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destWarehouseId"
>
<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-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<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>
<el-form-item
:label=
"$t('订单编号')"
prop=
"orderNo"
>
<el-form-item
:label=
"$t('订单编号')"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
:placeholder=
"$t('订单编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.orderNo"
:placeholder=
"$t('订单编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('品名')"
prop=
"prodId"
>
<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>
<el-form-item
:label=
"$t('控货')"
prop=
"isCargoControl"
>
<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>
<el-form-item
:label=
"$t('订单状态')"
prop=
"status"
>
<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"
/>
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('提单号')"
prop=
"tidanNo"
>
<el-form-item
:label=
"$t('提单号')"
prop=
"tidanNo"
>
...
...
src/views/ecw/order/edit.vue
View file @
1df20f6a
...
@@ -409,7 +409,7 @@
...
@@ -409,7 +409,7 @@
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
>
<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>
</el-form-item>
</div>
</div>
...
@@ -425,7 +425,7 @@
...
@@ -425,7 +425,7 @@
</div>
</div>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('清关证书')"
>
<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>
<el-form-item
label=
"清关证书备注"
>
<el-form-item
label=
"清关证书备注"
>
<el-input
v-model=
"form.remarks"
></el-input>
<el-input
v-model=
"form.remarks"
></el-input>
...
@@ -433,18 +433,18 @@
...
@@ -433,18 +433,18 @@
</div>
</div>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
label=
"是否拆包"
>
<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>
</el-form-item>
</div>
</div>
<div
class=
"form-section"
>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单票立刻转运')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<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>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"form-section"
>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<dict-selector
v-model=
"form.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
<dict-selector
v-model=
"form.packageType
Arr
"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
</el-form-item>
</div>
</div>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-form-item
:label=
"$t('特殊要求备注')"
>
...
@@ -462,7 +462,7 @@
...
@@ -462,7 +462,7 @@
<el-dialog
:title=
"$t('批量导入')"
:visible.sync=
"showBatchImportDialog"
width=
"1000px"
:close-on-click-modal=
"false"
>
<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-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-step
:title=
"$t('完成')"
></el-step>
<el-step
:title=
"$t('完成')"
></el-step>
</el-steps>
</el-steps>
...
@@ -718,6 +718,9 @@ export default {
...
@@ -718,6 +718,9 @@ export default {
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
},
},
'
form.packageTypeArr
'
(
val
){
this
.
$set
(
this
.
form
,
'
form.packageType
'
,
val
.
join
(
'
,
'
))
},
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter
(
val
){
selectedRouter
(
val
){
if
(
!
val
)
return
if
(
!
val
)
return
...
...
src/views/ecw/order/index.vue
View file @
1df20f6a
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<!--
<el-form-item
label=
"唛头"
prop=
"marks"
>
<!--
<el-form-item
label=
"唛头"
prop=
"marks"
>
<el-input
v-model=
"queryParams.marks"
placeholder=
"唛头"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.marks"
placeholder=
"唛头"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
-->
</el-form-item>
-->
<el-form-item
:label=
"$t('发货人')"
prop=
"consignorId"
>
<el-form-item
:label=
"$t('发货人')"
prop=
"consignorId"
>
<el-input
v-model=
"queryParams.consignorId"
:placeholder=
"$t('发货人')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.consignorId"
:placeholder=
"$t('发货人')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
...
@@ -21,18 +21,18 @@
...
@@ -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-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>
<el-form-item
:label=
"$t('始发地')"
prop=
"startWarehouseId"
>
<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-option
v-for=
"item in exportCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destWarehouseId"
>
<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-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
v-if=
"!transportId"
>
<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>
<!--
<el-form-item
label=
"商品分类"
prop=
"goodsType"
>
<!--
<el-form-item
label=
"商品分类"
prop=
"goodsType"
>
...
@@ -52,17 +52,17 @@
...
@@ -52,17 +52,17 @@
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"isCargoControl"
>
<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>
<el-form-item
:label=
"$t('入仓类型')"
prop=
"warehouseType"
>
<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>
<el-form-item
:label=
"$t('客户经理')"
>
<el-form-item
:label=
"$t('客户经理')"
>
<user-selector
v-model=
"queryParams.salesmanId"
/>
<user-selector
v-model=
"queryParams.salesmanId"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('订单状态')"
prop=
"status"
>
<el-form-item
:label=
"$t('订单状态')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ORDER_STATUS"
v-model=
"queryParams.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>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
clearable
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
clearable
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('是否齐货')"
>
<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>
<!--
<el-form-item
label=
"重货比"
prop=
"weightRatio"
>
<!--
<el-form-item
label=
"重货比"
prop=
"weightRatio"
>
<el-input
style=
"width: 100px;"
v-model=
"molecule"
placeholder=
""
clearable
@
change=
"moleculeChange"
<el-input
style=
"width: 100px;"
v-model=
"molecule"
placeholder=
""
clearable
@
change=
"moleculeChange"
...
@@ -162,20 +162,80 @@
...
@@ -162,20 +162,80 @@
<el-dropdown>
<el-dropdown>
<el-button
type=
"text"
>
{{
$t
(
'
操作
'
)
}}
</el-button>
<el-button
type=
"text"
>
{{
$t
(
'
操作
'
)
}}
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
@
click.native=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
编辑
'
)
}}
</el-dropdown-item>
<!-- 编辑 -->
<el-dropdown-item
@
click.native=
"oprateOrder(scope.row.orderId, 'deleteOrder')"
v-hasPermi=
"['ecw:order:delete']"
>
{{
$t
(
'
删除
'
)
}}
</el-dropdown-item>
<template
v-if=
"
<el-dropdown-item
@
click.native=
"oprateOrder(scope.row.orderId, 'cancelOrder')"
>
{{
$t
(
'
取消订单
'
)
}}
</el-dropdown-item>
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
<el-dropdown-item
@
click.native=
"oprateOrder(scope.row.orderId, 'recoveryOrder')"
>
{{
$t
(
'
恢复订单
'
)
}}
</el-dropdown-item>
exclude(scope.row.status, [20,21]) &&
<el-dropdown-item
@
click.native=
"feeApplicationBol = true; orderId = scope.row.orderId"
>
{{
$t
(
'
费用申请
'
)
}}
</el-dropdown-item>
exclude(scope.row.shipmentState, [320,322,323]) &&
<el-dropdown-item
@
click.native=
"orderId = scope.row.orderId;orderNo = scope.row.orderNo;isShow = true"
>
{{
$t
(
'
特需
'
)
}}
</el-dropdown-item>
(exclude(scope.row.inWarehouseState, [ 212, 218, 213, 214, 215]) && exclude(scope.row.status, [5,8]) )
<el-dropdown-item
@
click.native=
"$router.push(`/order/associated-order/$
{scope.row.orderId}`)" >
{{
$t
(
'
关联
'
)
}}
</el-dropdown-item>
"
>
<el-dropdown-item
@
click.native=
"$router.push(`/order/mutex-order/$
{scope.row.orderId}`)" >
{{
$t
(
'
互斥
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
编辑
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push('/order/special/' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
特价
'
)
}}
</el-dropdown-item>
</
template
>
<el-dropdown-item
@
click.native=
"$router.push(`/order/release?orderId=$
{scope.row.orderId}`)" >
{{
$t
(
'
确认放货
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push(`/order/singleApply?orderNo=$
{scope.row.orderNo}`)" >
{{
$t
(
'
合单申请
'
)
}}
</el-dropdown-item>
<!-- 删除 -->
<el-dropdown-item
@
click.native=
"$router.push(`/order/splitApply?orderId=$
{scope.row.orderId}`)" >
{{
$t
(
'
拆单申请
'
)
}}
</el-dropdown-item>
<
template
v-if=
"include(scope.row.status, [0,2])"
>
<el-dropdown-item
@
click.native=
"showMergedLogOrderNo=scope.row.orderNo"
>
{{
$t
(
'
合单日志
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"oprateOrder(scope.row.orderId, 'deleteOrder')"
v-hasPermi=
"['ecw:order:delete']"
>
{{
$t
(
'
删除
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"showPickupLogOrderNo=scope.row.orderNo"
>
{{
$t
(
'
提货日志
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 取消 -->
<
template
v-if=
"include(scope.row.status, [2])"
>
<el-dropdown-item
@
click.native=
"oprateOrder(scope.row.orderId, 'cancelOrder')"
>
{{
$t
(
'
取消订单
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 恢复 -->
<!-- <el-dropdown-item @click.native="oprateOrder(scope.row.orderId, 'recoveryOrder')" >{{$t('恢复订单')}}</el-dropdown-item>-->
<!-- 费用申请 -->
<
template
v-if=
"
exclude(scope.row.status, [0]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.shipmentState, [320,322,323])
"
>
<el-dropdown-item
@
click.native=
"feeApplicationBol = true; orderId = scope.row.orderId"
>
{{
$t
(
'
费用申请
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 特需,互斥,关联 -->
<
template
v-if=
"
exclude(scope.row.status, [0]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.inWarehouseState, [204])
"
>
<el-dropdown-item
@
click.native=
"orderId = scope.row.orderId;orderNo = scope.row.orderNo;isShow = true"
>
{{
$t
(
'
特需
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push(`/order/associated-order/$
{scope.row.orderId}`)" >
{{
$t
(
'
关联
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push(`/order/mutex-order/$
{scope.row.orderId}`)" >
{{
$t
(
'
互斥
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 特价 -->
<
template
v-if=
"
exclude(scope.row.status, [0]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.shipmentState, [320,322,323])
"
>
<el-dropdown-item
@
click.native=
"$router.push('/order/special/' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
特价
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 确认放货 -->
<
template
v-if=
"
exclude(scope.row.status, [0,2]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.shipmentState, [320,322,323])
"
>
<el-dropdown-item
@
click.native=
"$router.push(`/order/release?orderId=$
{scope.row.orderId}`)" >
{{
$t
(
'
确认放货
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 合单,拆单 -->
<
template
v-if=
"
exclude(scope.row.status, [0,2]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
scope.row.shipmentState > 320
"
>
<el-dropdown-item
@
click.native=
"$router.push(`/order/singleApply?orderNo=$
{scope.row.orderNo}`)" >
{{
$t
(
'
合单申请
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push(`/order/splitApply?orderId=$
{scope.row.orderId}`)" >
{{
$t
(
'
拆单申请
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 合单日志,提货日志 -->
<el-dropdown-item
@
click.native=
"showMergedLogOrderNo=scope.row.orderNo"
>
{{$t('合单日志')}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"showPickupLogOrderNo=scope.row.orderNo"
>
{{$t('提货日志')}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
...
@@ -185,11 +245,61 @@
...
@@ -185,11 +245,61 @@
<el-dropdown>
<el-dropdown>
<el-button
type=
"text"
>
{{$t('仓库')}}
</el-button>
<el-button
type=
"text"
>
{{$t('仓库')}}
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
@
click.native=
"$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
入仓
'
)
}}
</el-dropdown-item>
<!-- 入仓操作 -->
<el-dropdown-item
@
click.native=
"show = true;orderId = scope.row.orderId; "
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
退仓
'
)
}}
</el-dropdown-item>
<
template
v-if=
"include(scope.row.status, [0,2]) || include(scope.row.abnormalState, [1])"
>
<el-dropdown-item
@
click.native=
"orderId = scope.row.orderId;warehouseBol=true;"
>
{{
$t
(
'
调仓
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
入仓操作
'
)
}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$router.push(
{path:'/order/transfer-warehousing/' + scope.row.orderId + '/' + 1 })" >
{{
$t
(
'
调拨出仓
'
)
}}
</el-dropdown-item>
</
template
>
<el-dropdown-item
@
click.native=
"$router.push(
{path:'/order/transfer-to-warehouse/' + scope.row.orderId + '/' + 2 })" >
{{
$t
(
'
调拨到仓
'
)
}}
</el-dropdown-item>
<!-- 入仓补充 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216]) ||
include(scope.row.abnormalState, [99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14])
"
>
<el-dropdown-item
@
click.native=
"$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
入仓补充
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 入仓修改 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206])
"
>
<el-dropdown-item
@
click.native=
"$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
入仓修改
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 退仓 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [201, 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216]) &&
exclude(scope.row.abnormalState, [1])
"
>
<el-dropdown-item
@
click.native=
"show = true;orderId = scope.row.orderId; "
v-hasPermi=
"['ecw:order:update']"
>
{{
$t
(
'
退仓
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 调仓 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [201, 202, 208, 202, 210, 202, 211, 202, 213, 215, 216])
"
>
<el-dropdown-item
@
click.native=
"orderId = scope.row.orderId;warehouseBol=true;"
>
{{
$t
(
'
调仓
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 取消调仓 -->
<!-- <template v-if="
include(scope.row.inWarehouseState, [212,213,214])
">
<el-dropdown-item @click.native="$alert('// TODO')" >{{$t('取消调仓')}}</el-dropdown-item>
</template> -->
<!-- 调拨出仓 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [213])
"
>
<el-dropdown-item
@
click.native=
"$router.push(
{path:'/order/transfer-warehousing/' + scope.row.orderId + '/' + 1 })" >
{{
$t
(
'
调拨出仓
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 调拨到仓 -->
<
template
v-if=
"
include(scope.row.inWarehouseState, [214])
"
>
<el-dropdown-item
@
click.native=
"$router.push(
{path:'/order/transfer-to-warehouse/' + scope.row.orderId + '/' + 2 })" >
{{
$t
(
'
调拨到仓
'
)
}}
</el-dropdown-item>
</
template
>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
...
@@ -199,8 +309,25 @@
...
@@ -199,8 +309,25 @@
<el-dropdown>
<el-dropdown>
<el-button
type=
"text"
>
{{$t('操作')}}
</el-button>
<el-button
type=
"text"
>
{{$t('操作')}}
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
@
click.native=
"printTagOrderId=scope.row.orderId"
>
{{
$t
(
'
打印标签
'
)
}}
</el-dropdown-item>
<!-- 打印标签 -->
<el-dropdown-item
@
click.native=
"printWarehouseReceiptOrderId=scope.row.orderId"
>
{{
$t
(
'
打印入仓单
'
)
}}
</el-dropdown-item>
<
template
v-if=
"
exclude(scope.row.status, [0]) &&
exclude(scope.row.shipmentState, [320,322,323]) &&
exclude(scope.row.abnormalState, [5,6,7,8])
"
>
<el-dropdown-item
@
click.native=
"printTagOrderId=scope.row.orderId"
>
{{
$t
(
'
打印标签
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 打印入仓单 -->
<
template
v-if=
"
exclude(scope.row.status, [0, 2]) &&
exclude(scope.row.shipmentState, [320,322,323]) &&
exclude(scope.row.abnormalState, [1, 5,6,7,8])
"
>
<el-dropdown-item
@
click.native=
"printWarehouseReceiptOrderId=scope.row.orderId"
>
{{
$t
(
'
打印入仓单
'
)
}}
</el-dropdown-item>
</
template
>
<!-- 打印提单 -->
<el-dropdown-item
@
click.native=
"printLadingBillInfo={tidanNO: scope.row.tidanNo, transportType: scope.row.transportId}"
:disabled=
"!scope.row.tidanNo"
>
{{$t('打印提单')}}
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"printLadingBillInfo={tidanNO: scope.row.tidanNo, transportType: scope.row.transportId}"
:disabled=
"!scope.row.tidanNo"
>
{{$t('打印提单')}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
...
@@ -340,7 +467,16 @@ export default {
...
@@ -340,7 +467,16 @@ export default {
batchWarehouseAdjustment
(){
batchWarehouseAdjustment
(){
return
this
.
multipleSelection
.
length
>
0
&&
this
.
multipleSelection
.
every
(
e
=>
e
.
status
===
5
)
return
this
.
multipleSelection
.
length
>
0
&&
this
.
multipleSelection
.
every
(
e
=>
e
.
status
===
5
)
},
},
include
(){
return
(
state
,
arr
)
=>
{
return
arr
.
indexOf
(
state
)
>
-
1
}
},
exclude
(){
return
(
state
,
arr
)
=>
{
return
arr
.
indexOf
(
state
)
==
-
1
}
}
},
},
created
()
{
created
()
{
this
.
getTransportFromRoute
()
this
.
getTransportFromRoute
()
...
...
src/views/ecw/order/special/discount.vue
View file @
1df20f6a
...
@@ -214,6 +214,8 @@ export default {
...
@@ -214,6 +214,8 @@ export default {
getOrderSpecial
(){
getOrderSpecial
(){
getOrderSpecial
(
this
.
form
.
orderItemId
).
then
(
r
=>
{
getOrderSpecial
(
this
.
form
.
orderItemId
).
then
(
r
=>
{
this
.
form
=
r
.
data
this
.
form
=
r
.
data
this
.
form
.
freight
=
''
this
.
form
.
clearanceFreight
=
''
}
)
}
)
}
,
}
,
getOrderSpecialByApproveId
(){
getOrderSpecialByApproveId
(){
...
...
src/views/ecw/order/special/index.vue
View file @
1df20f6a
...
@@ -79,9 +79,11 @@
...
@@ -79,9 +79,11 @@
prop=
"address"
prop=
"address"
label=
"操作"
>
label=
"操作"
>
<
template
v-slot=
"{row}"
>
<
template
v-slot=
"{row}"
>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/discount/$
{row.orderItemId}?orderId=${row.orderId}`)">优惠申请
</el-button>
<template
v-if=
"row.originalSeaFreight !== 0 && row.originalClearanceFreight !== 0"
>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/specialCommission/$
{row.orderItemId}`)">佣金规则
</el-button>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/discount/$
{row.orderItemId}?orderId=${row.orderId}`)">优惠申请
</el-button>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/discount1/$
{row.orderItemId}?orderId=${row.orderId}
&
discount=1`)">管理折扣
</el-button>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/specialCommission/$
{row.orderItemId}`)">佣金规则
</el-button>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
@
click=
"$router.push(`/order/discount1/$
{row.orderItemId}?orderId=${row.orderId}
&
discount=1`)">管理折扣
</el-button>
</
template
>
</template>
</template>
</el-table-column>
</el-table-column>
...
...
src/views/ecw/order/warehousing/index.vue
View file @
1df20f6a
...
@@ -76,11 +76,12 @@
...
@@ -76,11 +76,12 @@
<
template
v-slot=
"{ row, column, $index }"
>
<
template
v-slot=
"{ row, column, $index }"
>
<el-button
v-if=
"order.status === 5"
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
修改
</el-button>
<el-button
v-if=
"order.status === 5"
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
修改
</el-button>
<template
v-else
>
<template
v-else
>
<el-button
v-if=
"orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0"
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
追加
</el-button>
<template
v-if=
"orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
追加
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousingReturn(row)"
>
退仓
</el-button>
</
template
>
<el-button
v-else
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
入仓
</el-button>
<el-button
v-else
size=
"mini"
type=
"text"
@
click=
"handleWarehousing($index)"
>
入仓
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleWarehousingReturn(row)"
>
退仓
</el-button>
</template>
</template>
</template>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
...
src/views/ecw/productPrice/index.vue
View file @
1df20f6a
...
@@ -29,27 +29,27 @@
...
@@ -29,27 +29,27 @@
// TODO
// TODO
</el-form-item>
-->
</el-form-item>
-->
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportType"
>
<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>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"shippingChannelId"
>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"shippingChannelId"
>
<el-select
v-model=
"queryParams.shippingChannelId"
clearable
>
<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-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"startCityId"
>
<el-form-item
:label=
"$t('始发地')"
prop=
"startCityId"
>
<el-select
v-model=
"queryParams.startCityId"
clearable
>
<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-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"destCityId"
>
<el-form-item
:label=
"$t('目的地')"
prop=
"destCityId"
>
<el-select
v-model=
"queryParams.destCityId"
clearable
>
<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-select>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('审核状态')"
prop=
"auditStatus"
>
<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>
<el-form-item
:label=
"$t('状态')"
prop=
"status"
>
<el-form-item
:label=
"$t('状态')"
prop=
"status"
>
// TODO
// TODO
...
...
src/views/ecw/supplier/index.vue
View file @
1df20f6a
...
@@ -44,10 +44,10 @@
...
@@ -44,10 +44,10 @@
<el-option
v-for=
"dict in this.getDictDatas('company_type')"
<el-option
v-for=
"dict in this.getDictDatas('company_type')"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select-->
</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>
<el-form-item
:label=
"$t('合作类型')"
prop=
"cooperationType"
>
<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-select v-model="queryParams.cooperationType" placeholder="请选择合作类型" clearable size="small">
<el-option
label=
"请选择字典生成"
value=
""
/>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select-->
</el-select-->
...
...
src/views/system/menu/index.vue
View file @
1df20f6a
...
@@ -318,7 +318,7 @@ export default {
...
@@ -318,7 +318,7 @@ export default {
||
this
.
form
.
type
===
SystemMenuTypeEnum
.
MENU
)
{
||
this
.
form
.
type
===
SystemMenuTypeEnum
.
MENU
)
{
// 如果是外链,则不进行校验
// 如果是外链,则不进行校验
const
path
=
this
.
form
.
path
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 必须以 / 开头
// 父权限为根节点,path 必须以 / 开头
if
(
this
.
form
.
parentId
===
0
&&
path
.
charAt
(
0
)
!==
'
/
'
)
{
if
(
this
.
form
.
parentId
===
0
&&
path
.
charAt
(
0
)
!==
'
/
'
)
{
this
.
$modal
.
msgSuccess
(
'
前端必须以 / 开头
'
)
this
.
$modal
.
msgSuccess
(
'
前端必须以 / 开头
'
)
...
...
src/views/system/myInternalMessage/index.vue
View file @
1df20f6a
...
@@ -3,9 +3,9 @@
...
@@ -3,9 +3,9 @@
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"来源"
prop=
"fromId"
>
<!--
<el-form-item
label=
"来源"
prop=
"fromId"
>
<el-input
v-model=
"queryParams.fromId"
placeholder=
"请输入站内信来源"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.fromId"
placeholder=
"请输入站内信来源"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"发送时间"
>
<el-form-item
label=
"发送时间"
>
<el-date-picker
v-model=
"dateRangeSendTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
<el-date-picker
v-model=
"dateRangeSendTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
<!-- 列表 -->
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
""
align=
"center"
prop=
"id"
/>
<el-table-column
label=
""
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"来源"
align=
"center"
prop=
"fromId"
/
>
<!--
<el-table-column
label=
"来源"
align=
"center"
prop=
"fromId"
/>
--
>
<el-table-column
label=
"发送时间"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<el-table-column
label=
"发送时间"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
sendTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
sendTime
)
}}
</span>
...
...
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