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
04e0d9f9
Commit
04e0d9f9
authored
Aug 17, 2022
by
dcy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
f458c7ff
05f6e30f
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1514 additions
and
686 deletions
+1514
-686
App.vue
src/App.vue
+15
-0
boxSea.js
src/api/ecw/boxSea.js
+39
-8
deptTarget.js
src/api/ecw/deptTarget.js
+9
-0
order.js
src/api/ecw/order.js
+0
-9
orderCargoControl.js
src/api/ecw/orderCargoControl.js
+28
-0
needKnow.js
src/api/system/needKnow.js
+54
-0
index.vue
src/components/OrderBaseInfo/index.vue
+13
-11
index.js
src/router/index.js
+5
-5
dict.js
src/utils/dict.js
+4
-2
detail.vue
src/views/bpm/processInstance/detail.vue
+56
-0
costForm.vue
src/views/ecw/box/costForm.vue
+2
-24
indexSea.vue
src/views/ecw/box/indexSea.vue
+81
-23
query.vue
src/views/ecw/box/query.vue
+146
-112
regError.vue
src/views/ecw/box/regError.vue
+2
-1
shippingDetail.vue
src/views/ecw/box/shippingDetail.vue
+13
-6
arrival.vue
src/views/ecw/box/shippingSea/nodePage/arrival.vue
+1
-1
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+13
-12
supplementOrder.vue
.../ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
+6
-7
cusClearance.vue
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
+1
-1
departure.vue
src/views/ecw/box/shippingSea/nodePage/departure.vue
+1
-1
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+22
-20
utils.js
src/views/ecw/box/shippingSea/utils.js
+37
-0
index.vue
src/views/ecw/deptTarget/index.vue
+344
-255
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+4
-10
cargoControlDetail.vue
src/views/ecw/order/cargoControlDetail.vue
+3
-18
SendSmsCode.vue
src/views/ecw/order/components/SendSmsCode.vue
+55
-0
Transfer.vue
src/views/ecw/order/components/Transfer.vue
+63
-31
edit.vue
src/views/ecw/order/edit.vue
+8
-2
index.vue
src/views/ecw/order/index.vue
+18
-15
index.vue
src/views/ecw/order/warehousing/index.vue
+12
-5
edit.vue
src/views/ecw/productPrice/edit.vue
+110
-53
index.vue
src/views/ecw/productPrice/index.vue
+77
-54
index.vue
src/views/system/needKnow/index.vue
+272
-0
No files found.
src/App.vue
View file @
04e0d9f9
...
...
@@ -17,3 +17,18 @@ export default {
}
}
</
script
>
<
style
lang=
"scss"
>
.page-title
{
font-size
:
16px
;
margin
:
20px
0
;
display
:flex
;
align-items
:center
;
&
:before
{
content
:
''
;
width
:
5px
;
height
:
15px
;
background
:
#666
;
margin-right
:
10px
;
}
}
</
style
>
src/api/ecw/boxSea.js
View file @
04e0d9f9
...
...
@@ -355,14 +355,14 @@ export function abnormalCreate(data) {
* 获得已预装部分列表
*
* @export
* @param {*}
params
* @param {*}
data
* @return {*}
*/
export
function
secGoodsList
(
params
)
{
export
function
secGoodsList
(
data
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/secGoodsList
"
,
method
:
"
ge
t
"
,
params
,
method
:
"
pos
t
"
,
data
,
});
}
...
...
@@ -370,14 +370,14 @@ export function secGoodsList(params) {
* 获得预装分页
*
* @export
* @param {*}
params
* @param {*}
data
* @return {*}
*/
export
function
preloadPage
(
params
)
{
export
function
preloadPage
(
data
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/preloadPage
"
,
method
:
"
ge
t
"
,
params
,
method
:
"
pos
t
"
,
data
,
});
}
...
...
@@ -396,6 +396,37 @@ export function createSection(data) {
});
}
/**
* 查询出货单下的所有部分列表
*
* @export
* @param {*} data
* @return {*}
*/
export
function
getSectionList
(
params
)
{
return
request
({
url
:
"
/ecw/box-preload-section/list
"
,
method
:
"
get
"
,
params
,
});
}
/**
* 装柜订单明细
*
* @export
* @param {*} data
* @return {*}
*/
export
function
boxGoodsDetail
(
data
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/boxGoodsDetail
"
,
method
:
"
post
"
,
headers
:
{
"
Content-Type
"
:
"
application/x-www-form-urlencoded
"
},
data
:
jsonToFormData
(
data
),
});
}
/**
* 删除预装部分
*
...
...
src/api/ecw/deptTarget.js
View file @
04e0d9f9
...
...
@@ -50,6 +50,15 @@ export function getDeptTargetPage(query) {
})
}
// 获得个人目标进度分页
export
function
getPersonTargetPage
(
query
)
{
return
request
({
url
:
'
/sale/dept-target/personal/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出部门业绩目标设置 Excel
export
function
exportDeptTargetExcel
(
query
)
{
return
request
({
...
...
src/api/ecw/order.js
View file @
04e0d9f9
...
...
@@ -249,15 +249,6 @@ export function feeApplicationGet(params){
})
}
// 获得控货分页
export
function
getCargoControlOrderPage
(
params
){
return
request
({
url
:
'
ecw/order-cargo-control/cargo/control/order
'
,
method
:
'
get
'
,
params
})
}
//获得调仓明细
export
function
orderWarehouseInGetAdjustInfo
(
params
){
return
request
({
...
...
src/api/ecw/orderCargoControl.js
0 → 100644
View file @
04e0d9f9
import
request
from
'
@/utils/request
'
// 获得控货分页
export
function
getCargoControlOrderPage
(
params
){
return
request
({
url
:
'
ecw/order-cargo-control/cargo/control/order
'
,
method
:
'
get
'
,
params
})
}
// 发送手机验证码
export
function
sendSmsCode
(
data
){
return
request
({
url
:
'
/ecw/order-cargo-control/send-sms-code
'
,
method
:
'
post
'
,
data
})
}
// 创建订单控货人信息
export
function
create
(
data
){
return
request
({
url
:
'
/ecw/order-cargo-control/create
'
,
method
:
'
post
'
,
data
})
}
\ No newline at end of file
src/api/system/needKnow.js
0 → 100644
View file @
04e0d9f9
import
request
from
'
@/utils/request
'
// 创建需知
export
function
createNeedKnow
(
data
)
{
return
request
({
url
:
'
/system/need-know/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新需知
export
function
updateNeedKnow
(
data
)
{
return
request
({
url
:
'
/system/need-know/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除需知
export
function
deleteNeedKnow
(
id
)
{
return
request
({
url
:
'
/system/need-know/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得需知
export
function
getNeedKnow
(
id
)
{
return
request
({
url
:
'
/system/need-know/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得需知分页
export
function
getNeedKnowPage
(
query
)
{
return
request
({
url
:
'
/system/need-know/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出需知 Excel
export
function
exportNeedKnowExcel
(
query
)
{
return
request
({
url
:
'
/system/need-know/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/components/OrderBaseInfo/index.vue
View file @
04e0d9f9
...
...
@@ -4,36 +4,38 @@
<el-descriptions-item
label=
"唛头"
>
{{
order
.
marks
}}
</el-descriptions-item>
<el-descriptions-item
label=
"已到箱数"
>
{{
order
.
sumNum
}}
</el-descriptions-item>
<el-descriptions-item
label=
"订单状态"
><dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"order.status"
/></el-descriptions-item>
<el-descriptions-item
label=
"送货时间"
>
todo
</el-descriptions-item>
<el-descriptions-item
label=
"送货时间"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
deliveryDate
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"运输方式"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"order.logisticsInfoDto.transportId"
></dict-tag>
</el-descriptions-item>
<el-descriptions-item
label=
"始发地"
>
{{
order
.
logisticsInfoDto
.
start
WarehouseId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"目的地"
>
{{
order
.
logisticsInfoDto
.
dest
WarehouseId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人姓名"
>
{{
order
.
consignorVO
&&
order
.
consignorVO
.
name
}}
</el-descriptions-item>
<el-descriptions-item
label=
"始发地"
>
{{
order
.
logisticsInfoDto
.
start
AddressZh
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"目的地"
>
{{
order
.
logisticsInfoDto
.
dest
TitleZh
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人姓名"
>
{{
order
.
consignorVO
&&
order
.
consignorVO
.
name
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人公司"
>
{{
order
.
consignorVO
&&
order
.
consignorVO
.
company
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人电话"
>
{{
order
.
consignorVO
&&
order
.
consignorVO
.
phone
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人姓名"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
name
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人公司"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
company
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人电话"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
phone
}}
</el-descriptions-item>
<el-descriptions-item
label=
"入仓类型"
>
{{
order
.
warehouseType
}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人电话"
>
{{
order
.
consignorVO
&&
order
.
consignorVO
.
phone
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人姓名"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
name
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人公司"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
company
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人电话"
>
{{
order
.
consigneeVO
&&
order
.
consigneeVO
.
phone
||
''
}}
</el-descriptions-item>
<el-descriptions-item
label=
"入仓类型"
>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_WAREHOUSING_TYPE
,
order
.
warehouseType
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"订单号"
>
{{
order
.
orderNo
}}
</el-descriptions-item>
</el-descriptions>
</div>
</
template
>
<
script
>
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
export
default
{
name
:
"
orderBaseInfo
"
,
props
:
{
order
:
Object
},
data
()
{
return
{
DICT_TYPE
DICT_TYPE
,
getDictDataLabel
}
}
}
...
...
src/router/index.js
View file @
04e0d9f9
...
...
@@ -363,13 +363,13 @@ export const constantRoutes = [
hidden
:
true
,
redirect
:
'
noredirect
'
,
children
:
[
/*
{
path: 'query/:
box
Id(\\d+)',
{
path
:
'
query/:
shipment
Id(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/box/query
'
),
props
:
true
,
name: '
boxQuery
',
meta: {title: '出货详情', icon: '', activeMenu: '/shipment/box'}
},
*/
name
:
'
shippingDetail
'
,
meta
:
{
title
:
'
出货详情
'
,
icon
:
''
,
activeMenu
:
'
/shipment/box
Detail
'
}
},
{
path
:
'
shippingSea/:shipmentId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/box/shippingSea/shippingSea
'
),
...
...
src/utils/dict.js
View file @
04e0d9f9
...
...
@@ -103,6 +103,7 @@ export const DICT_TYPE = {
ECW_BEGINTIME_TYPE_ENDTIME
:
'
begintime_type_endtime
'
,
// 时间筛选字段(订单)
ECW_CUSTOM_DRAWEE
:
'
custom_drawee
'
,
// 自定义付款人费用类型
ECW_IS_DRAFT
:
'
is_draft
'
,
// 草稿发布状态
ECW_PRICE_TYPE
:
'
price_type
'
,
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
@@ -162,8 +163,9 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT
:
'
order_cod_exception_result
'
,
//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT
:
'
order_other_exception_result
'
,
//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT
:
'
order_bulky_cargo_exception_result
'
,
//泡货异常处理结果
PAYMENT_TYPE
:
'
payment_type
'
,
//收款类型
NEED_KNOW_TYPE
:
'
need_know_type
'
,
//需知类型
NEED_KNOW_STATUS
:
'
need_know_status
'
,
//需知状态
ECASH_INIT
:
'
ecash_init
'
,
//e-cash
FEE_TYPE
:
'
receivable_fee_type
'
,
...
...
src/views/bpm/processInstance/detail.vue
View file @
04e0d9f9
...
...
@@ -62,6 +62,62 @@
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='warehouse_transfer'"
>
<!--调仓申请-->
<warehouseDetails
:processId=
"this.processInstance.businessKey"
:type=
"1"
></warehouseDetails>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='container_modify'"
>
<!--出货审核-柜子修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='trailer_modify'"
>
<!--出货审核-拖车修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='ship_modify'"
>
<!--出货审核-配船修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='ship_modify'"
>
<!--出货审核-配船修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='customs_declare_modify'"
>
<!--出货审核-报关修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='arrival_modify'"
>
<!--出货审核-到港修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='customs_clearance_modify'"
>
<!--出货审核-清关修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='customs_exit_part'"
>
<!--出货审核-报关部分退场审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='customs_exit_all'"
>
<!--出货审核-报关退场审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='start_port_modify'"
>
<!--出货审核-起运修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='book_space_modify'"
>
<!--出货审核-订舱修改审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='sorting_apply_no'"
>
<!--出货审核-分拣反审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='sorting_apply'"
>
<!--出货审核-分拣审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='unload_container_no'"
>
<!--出货审核-卸柜反审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='unload_container'"
>
<!--出货审核-卸柜审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='close_container'"
>
<!--出货审核-封柜审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='shipment_preassemble_no'"
>
<!--出货审核-预装反审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-if=
"this.processInstance.processDefinition.formCustomViewPath=='shipment_preassemble'"
>
<!--出货审核-预装审核-->
<shippingDetail
:processId=
"this.processInstance.businessKey"
></shippingDetail>
</div>
<div
v-else
>
<router-link
:to=
"this.processInstance.processDefinition.formCustomViewPath + '?id='
+ this.processInstance.businessKey"
>
...
...
src/views/ecw/box/costForm.vue
View file @
04e0d9f9
...
...
@@ -20,7 +20,7 @@
</el-select>
</el-form-item>
<el-row
class=
"two-element"
>
<el-row
class=
"two-element
-formItem
"
>
<el-form-item
label=
"金额"
>
<el-input-number
v-model=
"costObj.price"
controls-position=
"right"
:min=
"1"
></el-input-number>
</el-form-item>
...
...
@@ -36,7 +36,7 @@
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"operate-button"
>
<div
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"submit"
>
确定
</el-button>
<el-button
@
click=
"$emit('closeDialog')"
>
取消
</el-button>
</div>
...
...
@@ -84,25 +84,3 @@ export default {
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.app-costForm
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
}
</
style
>
src/views/ecw/box/indexSea.vue
View file @
04e0d9f9
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container
shipping-sea
"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
...
...
@@ -45,8 +45,8 @@
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<el-select
v-model=
"queryParams.transportType"
placeholder=
"请选择运输方式"
clearable
size=
"small"
>
<el-option
v-for=
"dict in transportTypes"
...
...
@@ -54,7 +54,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
...
@@ -79,7 +79,11 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"自编号"
align=
"center"
prop=
"selfNo"
/>
<el-table-column
label=
"自编号"
align=
"center"
prop=
"selfNo"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleCommand(scope.row, 'detail')"
>
{{
scope
.
row
.
selfNo
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
label=
"柜号"
align=
"center"
prop=
"cubNo"
/>
<el-table-column
label=
"柜型"
align=
"center"
prop=
"cabinetId"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -100,15 +104,15 @@
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPMENT_STATUS"
:value=
"scope.row.boxStatus"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"日期"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
new
Date
(
scope
.
row
.
createTime
).
format
(
'
yyyy-MM-dd
'
)
}}
</span>
</
template
>
</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"
width=
"200px"
>
<
template
slot-scope=
"scope"
>
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleCommand(scope.row, command)"
>
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleCommand(scope.row, command)"
style=
"marginRight:10px;"
>
<el-button
type=
"primary"
>
操作
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
...
...
@@ -120,6 +124,20 @@
<el-dropdown-item
command=
"delete"
>
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown
trigger=
"click"
>
<el-button
type=
"primary"
>
下载
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
""
>
预装单
</el-dropdown-item>
<el-dropdown-item
command=
""
>
已装单
</el-dropdown-item>
<el-dropdown-item
command=
""
>
应收汇总表
</el-dropdown-item>
<el-dropdown-item
command=
""
>
agent list
</el-dropdown-item>
<el-dropdown-item
command=
""
>
son cap
</el-dropdown-item>
<el-dropdown-item
command=
""
>
提货单
</el-dropdown-item>
<el-dropdown-item
command=
""
>
提单Copy
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -128,7 +146,7 @@
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"600px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"600px"
append-to-body
class=
"shippingSea-dialog"
>
<
template
v-if=
"dialogType === 'edit' || dialogType === 'add'"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
...
...
@@ -155,9 +173,9 @@
<el-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer
"
>
<div
class=
"operate-button
"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
...
...
@@ -165,6 +183,9 @@
<
template
v-if=
"dialogType === 'cost'"
>
<costForm
v-if=
"open"
@
closeDialog=
"closeDialog"
:currRow=
"currRow"
/>
</
template
>
<
template
v-if=
"dialogType === 'error'"
>
<regError
v-if=
"open"
@
closeDialog=
"closeDialog"
:shipmentObj=
"currRow"
/>
</
template
>
</el-dialog>
</div>
</template>
...
...
@@ -173,13 +194,15 @@
import
{
createbox
,
updatebox
,
deletebox
,
getbox
,
getboxPage
,
exportboxExcel
}
from
"
@/api/ecw/box
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
costForm
from
'
./costForm.vue
'
import
regError
from
'
./regError.vue
'
export
default
{
name
:
"
box
"
,
components
:
{
costForm
costForm
,
regError
},
data
()
{
return
{
...
...
@@ -266,7 +289,7 @@
created
()
{
this
.
transportTypes
=
this
.
transportTypes
.
filter
(
item
=>
item
.
value
==
'
1
'
||
item
.
value
==
'
2
'
);
getWarehouseList
().
then
(
res
=>
this
.
warehouseList
=
res
.
data
);
getCabinetPage
(
null
).
then
(
response
=>
{
...
...
@@ -275,7 +298,6 @@
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
...
...
@@ -390,13 +412,6 @@
closeDialog
()
{
this
.
open
=
false
;
},
/* 费用登记 */
createCost
(
row
)
{
this
.
title
=
'
费用登记
'
this
.
dialogType
=
'
cost
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
},
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
...
...
@@ -413,10 +428,53 @@
break
;
case
'
cost
'
:
this
.
createCost
(
row
);
this
.
title
=
'
费用登记
'
this
.
dialogType
=
'
cost
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
'
error
'
:
this
.
title
=
'
异常登记
'
this
.
dialogType
=
'
error
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
'
detail
'
:
this
.
$router
.
push
(
'
/boxSea/query/
'
+
row
.
id
)
break
;
}
},
}
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shippingSea-dialog
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element-formItem
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
src/views/ecw/box/query.vue
View file @
04e0d9f9
<
template
>
<div>
<el-row
type=
"flex"
style=
"margin-top: 15px; margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"1
6
"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"1
9
"
>
<div
style=
"display: flex; justify-content: space-between;align-items: flex-end;"
>
<h2>
出货详情
</h2>
<div>
...
...
@@ -14,15 +14,33 @@
</div>
<el-card
style=
"margin-top: 15px"
>
<el-descriptions
:column=
"4"
border
>
<el-descriptions-item
label=
"自编号"
></el-descriptions-item>
<el-descriptions-item
label=
"运输方式"
></el-descriptions-item>
<el-descriptions-item
label=
"出货渠道"
></el-descriptions-item>
<!--
<el-descriptions-item
label=
"柜型"
></el-descriptions-item>
-->
<el-descriptions-item
label=
"状态"
></el-descriptions-item>
<el-descriptions-item
label=
"总计"
></el-descriptions-item>
<el-descriptions-item
label=
"始发地"
></el-descriptions-item>
<el-descriptions-item
label=
"目的地"
></el-descriptions-item>
<el-descriptions-item
label=
"SO.NO"
></el-descriptions-item>
<el-descriptions-item
label=
"自编号"
>
{{
shipmentObj
.
selfNo
}}
</el-descriptions-item>
<el-descriptions-item
label=
"运输方式"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"shipmentObj.transportType"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"出货渠道"
v-if=
"shipmentObj.transportType !== '2'"
>
{{
getShipChannelName
(
shipmentObj
.
shippingChannelId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"柜型"
v-if=
"shipmentObj.transportType === '2'"
>
{{
getCabinetLabel
(
shipmentObj
.
cabinetId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"状态"
>
{{
getBoxStatus
(
shipmentObj
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"总计"
>
{{
getBoxSum
(
shipmentObj
.
boxStatistics
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"始发地"
>
{{
getCityName
(
shipmentObj
.
startWarehouseId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"目的地"
>
{{
getCityName
(
shipmentObj
.
destWarehouseId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"SO NO"
>
{{
shipmentObj
.
bookSeaInfo
?
shipmentObj
.
bookSeaInfo
.
sono
:
''
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
...
...
@@ -30,11 +48,12 @@
<el-tab-pane
label=
"明细"
>
<div
class=
"detail-pane"
>
<p>
当前部分:
</p>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
<el-select
placeholder=
"请选择"
v-model=
"sectionId"
@
change=
"sectionChange"
>
<el-option
v-for=
"item in sectionList"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
<p
class=
"box-weight"
>
9箱子xxx
</p>
<p
class=
"box-weight"
>
{{
getSectionInfo
}}
</p>
<p
class=
"document-status"
>
单证状态:我司全代
</p>
</div>
<el-table
:data=
"[]"
style=
"width: 100%"
>
...
...
@@ -86,123 +105,138 @@
</
template
>
<
script
>
import
{
getCustomer
,
getCustomerSelect
}
from
"
@/api/ecw/customer
"
;
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
;
import
{
getNodeList
}
from
"
@/api/ecw/node
"
;
import
CustomerFollow
from
"
@/components/CustomerFollow
"
;
import
{
parseTime
}
from
"
@/utils/ruoyi
"
;
import
CustomerComplaint
from
"
@/views/ecw/customerComplaint
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
{
getCustomerContactsListByCustomer
}
from
"
@/api/ecw/customerContacts
"
;
import
{
getbox
}
from
"
@/api/ecw/box
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
import
{
getSeaStatus
,
getStatusName
,
getTotlContent
,
}
from
"
./shippingSea/utils
"
;
import
{
getSectionList
,
boxGoodsDetail
}
from
"
@/api/ecw/boxSea
"
;
export
default
{
name
:
"
box
Query
"
,
name
:
"
box
Detail
"
,
props
:
{
customerId
:
String
,
},
components
:
{
CustomerFollow
,
CustomerComplaint
,
shipmentId
:
String
,
},
components
:
{},
created
()
{
getNodeList
().
then
((
r
)
=>
{
this
.
nodeList
=
r
.
data
;
});
getCustomer
(
this
.
id
).
then
((
response
)
=>
{
this
.
customer
=
{
...
this
.
customer
,
...
response
.
data
};
getCustomerContactsListByCustomer
({
customerId
:
this
.
id
}).
then
((
r
)
=>
{
this
.
customerContacts
=
r
.
data
;
});
});
getProductTypeList
().
then
((
r
)
=>
{
this
.
productTypeList
=
r
.
data
;
// 查询出货信息
getbox
(
this
.
shipmentId
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
shipmentObj
=
data
??
{};
});
getCustomerSelect
().
then
((
r
)
=>
{
this
.
customerSelect
=
r
.
data
;
// 查询渠道
getChannelList
().
then
((
res
)
=>
(
this
.
channelList
=
res
.
data
));
// 查询柜型
getCabinetPage
(
null
).
then
(
(
response
)
=>
(
this
.
cabinetList
=
response
.
data
.
list
)
);
// 仓库
getWarehouseList
().
then
((
r
)
=>
{
this
.
warehouseList
=
r
.
data
;
});
listServiceUser
().
then
((
r
)
=>
{
this
.
serviceUserList
=
r
.
data
;
// 部分
getSectionList
({
shipmentId
:
this
.
shipmentId
}).
then
((
res
)
=>
{
this
.
sectionList
=
res
.
data
.
map
((
item
,
index
)
=>
{
return
{
...
item
,
title
:
`第
${
index
+
1
}
部分`
,
};
});
});
// 装柜明细
this
.
getBoxGoodsDetail
(
0
);
},
data
()
{
return
{
DICT_TYPE
,
getDictDataLabel
,
parseTime
,
nodeList
:
[],
productTypeList
:
[],
customerSelect
:
[],
serviceUserList
:
[],
customerContacts
:
[],
customer
:
{
id
:
undefined
,
number
:
undefined
,
name
:
undefined
,
level
:
undefined
,
country
:
undefined
,
type
:
undefined
,
agentId
:
undefined
,
company
:
undefined
,
address
:
undefined
,
productType
:
undefined
,
productId
:
undefined
,
pickupPoint
:
undefined
,
memberId
:
undefined
,
birthday
:
undefined
,
balance
:
undefined
,
source
:
undefined
,
picture
:
undefined
,
customerService
:
undefined
,
customerLines
:
[],
promoter
:
undefined
,
status
:
undefined
,
founder
:
undefined
,
department
:
undefined
,
invoiceTitle
:
undefined
,
licenseNumber
:
undefined
,
bank
:
undefined
,
bankNumber
:
undefined
,
project
:
undefined
,
billingAddress
:
undefined
,
billingTell
:
undefined
,
taxRate
:
undefined
,
remarks
:
undefined
,
arrivalConfirm
:
undefined
,
weightUnit
:
undefined
,
createTime
:
undefined
,
// 出货对象
shipmentObj
:
{},
// 渠道
channelList
:
[],
// 柜型
cabinetList
:
[],
// 仓库
warehouseList
:
[],
// 部分list
sectionList
:
[],
// 部分订单商品
sectionObj
:
{
secStatistics
:
{},
sectionOrderList
:
[],
totalStatistics
:
{},
},
sectionId
:
""
,
};
},
methods
:
{
sectionChange
(
val
)
{
console
.
log
(
val
)
this
.
getBoxGoodsDetail
(
this
.
sectionId
)
},
getBoxGoodsDetail
(
secId
)
{
boxGoodsDetail
({
shipmentId
:
this
.
shipmentId
,
secId
}).
then
((
res
)
=>
{
this
.
sectionObj
=
res
.
data
;
});
},
},
computed
:
{
productType
()
{
const
productType
=
this
.
productTypeList
.
find
(
(
p
)
=>
p
.
id
===
parseInt
(
this
.
customer
.
productType
)
);
return
productType
?
productType
.
titleZh
:
""
;
/* 渠道 */
getShipChannelName
()
{
return
(
shippingChannelId
)
=>
{
for
(
const
channelItem
of
this
.
channelList
)
{
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
return
"
/
"
;
}
};
},
/* 获取柜型 */
getCabinetLabel
()
{
return
(
cabinetId
)
=>
{
for
(
const
cabinetItem
of
this
.
cabinetList
)
{
if
(
cabinetItem
.
id
==
cabinetId
)
{
return
cabinetItem
.
name
;
}
return
"
/
"
;
}
};
},
pickupPoint
()
{
const
pickupPoint
=
this
.
nodeList
.
find
(
(
p
)
=>
p
.
id
===
parseInt
(
this
.
customer
.
pickupPoint
)
);
return
pickupPoint
?
pickupPoint
.
titleZh
:
""
;
/* 状态 */
getBoxStatus
()
{
return
(
shippingVO
)
=>
{
return
getStatusName
(
getSeaStatus
(
shippingVO
)
);
}
;
},
promoter
()
{
return
(
this
.
customerSelect
.
find
((
e
)
=>
e
.
id
===
this
.
customer
.
promoter
)
?.
name
||
""
);
/* 总计 */
getBoxSum
()
{
return
(
boxStatistics
)
=>
{
if
(
boxStatistics
)
{
return
`
${
boxStatistics
.
num
??
0
}
箱
$
{
boxStatistics
.
volume
??
0
}
m3
$
{
boxStatistics
.
weight
??
0
}
kg
`;
}
return;
};
},
customerService
()
{
return
(
this
.
serviceUserList
.
find
((
e
)
=>
e
.
id
===
this
.
customer
.
customerService
)
?.
nickname
||
""
);
/* 获取仓库 */
getCityName() {
return (id) => {
let arr = this.warehouseList.filter((item) => item.id == id);
return arr.length > 0 ? arr[0].titleZh : "无";
};
},
id
()
{
return
this
.
customerId
?
parseInt
(
this
.
customerId
)
:
undefined
;
// 部分信息
getSectionInfo() {
const { totalStatistics, secStatistics } = this.sectionObj;
if (!this.sectionId) {
return getTotlContent(totalStatistics);
} else {
return getTotlContent(secStatistics);
}
},
},
};
...
...
src/views/ecw/box/
shippingSea/nodePage/
regError.vue
→
src/views/ecw/box/regError.vue
View file @
04e0d9f9
...
...
@@ -18,6 +18,7 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.abnStartTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"errorObj.abnEndTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"是否更新订单状态"
>
<el-radio-group
v-model=
"errorObj.orderStatus"
>
<el-radio
v-for=
"item in status"
:key=
"item.value"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
...
...
@@ -65,7 +66,7 @@ export default {
},
created
()
{
const
{
currNode
}
=
this
.
$attrs
;
this
.
errorObj
=
{
opStep
:
currNode
.
dataKey
};
this
.
errorObj
=
{
opStep
:
currNode
?.
dataKey
??
undefined
};
},
methods
:
{
/** 提交 */
...
...
src/views/ecw/box/shippingDetail.vue
View file @
04e0d9f9
...
...
@@ -73,7 +73,7 @@
<section
class=
"table-goodList"
>
<div>
合计:
{{
calcSum
(
row
.
goodsList
)
}}
箱
</div>
<div
v-for=
"(item, index) in row.goodsList"
:key=
"index"
class=
"goodList-div"
>
{{
item
.
volume
}}
m³
{{
item
.
weight
}}
kg
{{
getTotlContent
(
item
,[
'
volume
'
,
'
weight
'
])
}}
</div>
</section>
</
template
>
...
...
@@ -90,7 +90,11 @@
<
script
>
import
{
approvalDetail
}
from
"
@/api/ecw/box
"
;
import
{
getSeaStatus
,
getStatusName
}
from
"
./shippingSea/utils
"
;
import
{
getSeaStatus
,
getStatusName
,
getTotlContent
,
}
from
"
./shippingSea/utils
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
...
...
@@ -123,6 +127,7 @@ export default {
getChannelList
().
then
((
res
)
=>
(
this
.
channelList
=
res
.
data
));
},
methods
:
{
getTotlContent
,
/* 获取详情 */
getApprovalDetail
(
processId
)
{
approvalDetail
({
approvalId
:
processId
}).
then
((
res
)
=>
{
...
...
@@ -144,7 +149,11 @@ export default {
},
/* 打开订单列表 */
showOrder
()
{
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
`
${
this
.
boxBackVO
.
selfNo
}
订单列表`
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
`
${
this
.
boxBackVO
.
selfNo
}
订单列表`
);
this
.
$set
(
this
.
dialogConfig
,
"
visible
"
,
true
);
},
/* 合计 */
...
...
@@ -190,9 +199,7 @@ export default {
/* 体积重量 */
getVolumeWeight
()
{
return
(
total
)
=>
{
return
`
${
total
?.
num
??
0
}
箱
$
{
total
?.
volume
??
0
}
m
³
$
{
total
?.
weight
??
0
}
kg
`;
return
this
.
getTotlContent
(
total
);
};
},
/* 是否显示卸柜箱数 */
...
...
src/views/ecw/box/shippingSea/nodePage/arrival.vue
View file @
04e0d9f9
...
...
@@ -30,7 +30,7 @@
</
template
>
<
script
>
import
regError
from
"
./regError
"
;
import
regError
from
"
.
./..
/regError
"
;
import
dayjs
from
"
dayjs
"
;
import
{
arrivalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
04e0d9f9
...
...
@@ -11,9 +11,7 @@
</div>
<div>
<template
v-if=
"item.secStatistics"
>
<p>
{{
item
.
secStatistics
.
num
}}
箱
</p>
<p>
{{
item
.
secStatistics
.
volume
}}
m³
</p>
<p>
{{
item
.
secStatistics
.
weight
}}
Kg
</p>
{{
getTotlContent
(
item
.
secStatistics
)
}}
</
template
>
</div>
</el-row>
...
...
@@ -54,29 +52,29 @@
<dict-tag
:type=
"DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
:value=
"item.productRecord"
/>
】
</p>
<p>
其他:
<span>
{{
item
.
num
}}
箱
</span><span>
{{
item
.
volume
}}
m³
</span><span>
{{
item
.
weight
}}
Kg
</span>
</p>
<p>
其他:
{{
getTotlContent
(
item
)
}}
</p>
</div>
</section>
</
template
>
</el-table-column>
<el-table-column
label=
"计划箱数"
align=
"center"
prop=
"num"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
num
}}
箱
{{
getTotlContent
(
scope
.
row
,[
'
num
'
])
}}
</
template
>
</el-table-column>
<el-table-column
label=
"实装箱数"
align=
"center"
prop=
"installNum"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
installNum
}}
箱
{{
scope
.
row
.
installNum
}}
箱
</
template
>
</el-table-column>
<el-table-column
label=
"体积"
align=
"center"
prop=
"volume"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
volume
}}
m³
{{
getTotlContent
(
scope
.
row
,[
'
volume
'
])
}}
</
template
>
</el-table-column>
<el-table-column
label=
"重量"
align=
"center"
prop=
"weight"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
weight
}}
Kg
{{
getTotlContent
(
scope
.
row
,[
'
weight
'
])
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
...
...
@@ -97,14 +95,15 @@
<el-col
:span=
"6"
class=
"totle-info"
>
<div
class=
"count-info"
>
<p>
总计:
<!-- <span>{{sumData.count.num}}箱</span><span>{{sumData.count.volume}}m³</span><span>{{sumData.count.weight}}Kg</span> -->
111
无返回
<!-- <span>{{sumData.count.num}}箱</span><span>{{sumData.count.volume}}m³</span><span>{{sumData.count.weight}}Kg</span> -->
</p>
</div>
<div>
<p>
容量:
</p>
<p>
111
</p>
<p>
无返回
</p>
</div>
<div>
已装
0
箱
</div>
<div>
已装
无返回
箱
</div>
</el-col>
</el-row>
...
...
@@ -204,6 +203,7 @@ import {
boxUpdate
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
getTotlContent
}
from
"
../../utils
"
;
/**
* 开始装柜
...
...
@@ -268,6 +268,7 @@ export default {
});
},
methods
:
{
getTotlContent
,
/* 装柜部分列表 */
getLoadSecGoodsList
()
{
loadSecGoodsList
({
shipmentId
:
this
.
shipmentObj
.
id
}).
then
((
res
)
=>
{
...
...
@@ -275,7 +276,7 @@ export default {
this
.
listData
=
data
.
map
((
item
,
index
)
=>
{
return
{
...
item
,
title
:
`第
${
++
index
}
部分`
,
title
:
`第
${
++
index
}
部分`
,
};
});
if
(
this
.
listData
.
length
)
{
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
View file @
04e0d9f9
...
...
@@ -28,9 +28,7 @@
</el-collapse-transition>
<div
class=
"part-secGoog"
>
<template>
<p>
{{
item
.
secStatistics
?
item
.
secStatistics
.
num
:
0
}}
箱
</p>
<p>
{{
item
.
secStatistics
?
item
.
secStatistics
.
volume
:
0
}}
m³
</p>
<p>
{{
item
.
secStatistics
?
item
.
secStatistics
.
weight
:
0
}}
Kg
</p>
{{
getTotlContent
(
item
.
secStatistics
)
}}
</
template
>
</div>
</el-row>
...
...
@@ -95,12 +93,12 @@
<el-table-column
label=
"箱数"
align=
"center"
prop=
"num"
width=
"120"
/>
<el-table-column
label=
"体积"
align=
"center"
prop=
"volume"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<p
v-if=
"scope.row.volume"
>
{{
scope
.
row
.
volume
}}
m³
</p>
<p
v-if=
"scope.row.volume"
>
{{
getTotlContent
(
scope
.
row
,[
'
volume
'
])
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"重量"
align=
"center"
prop=
"weight"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<p
v-if=
"scope.row.weight"
>
{{
scope
.
row
.
weight
}}
kg
</p>
<p
v-if=
"scope.row.weight"
>
{{
getTotlContent
(
scope
.
row
,[
'
weight
'
])
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"预装柜"
align=
"center"
prop=
""
width=
"120"
>
...
...
@@ -151,7 +149,7 @@ import {
createGoods
,
remove
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDate
}
from
"
../../utils
"
;
import
{
formatDate
,
getTotlContent
}
from
"
../../utils
"
;
/**
* 补单
*/
...
...
@@ -197,7 +195,7 @@ export default {
}
return
{
...
item
,
title
:
`第
${
++
index
}
部分`
,
title
:
`第
${
++
index
}
部分`
,
};
});
...
...
@@ -324,6 +322,7 @@ export default {
.
catch
((
_
)
=>
{});
},
formatDate
,
getTotlContent
,
},
computed
:
{
/** 目的地 */
...
...
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
View file @
04e0d9f9
...
...
@@ -26,7 +26,7 @@
</
template
>
<
script
>
import
regError
from
"
./regError
"
;
import
regError
from
"
.
./..
/regError
"
;
import
dayjs
from
"
dayjs
"
;
import
{
clearanceCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
...
...
src/views/ecw/box/shippingSea/nodePage/departure.vue
View file @
04e0d9f9
...
...
@@ -30,7 +30,7 @@
</
template
>
<
script
>
import
regError
from
"
./regError
"
;
import
regError
from
"
.
./..
/regError
"
;
import
{
shippingCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
dayjs
from
"
dayjs
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
04e0d9f9
...
...
@@ -11,7 +11,7 @@
</el-select>
</el-form-item>
<el-form-item
label=
"目的地"
prop=
"destWarehouseIdList"
>
<el-select
v-model=
"queryParams.destWarehouseIdList"
placeholder=
"请选择目的地"
multiple
>
<el-select
v-model=
"queryParams.destWarehouseIdList"
placeholder=
"请选择目的地"
multiple
clearable
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -108,11 +108,7 @@
<el-row
class=
"preinstall-title"
>
<div
class=
"pre-part-info"
>
<p>
第
{{
index
+
1
}}
部分
</p>
<p>
<span>
{{
part
.
secStatistics
?
part
.
secStatistics
.
num
:
0
}}
箱
</span>
<span>
{{
part
.
secStatistics
?
part
.
secStatistics
.
volume
:
0
}}
m³
</span>
<span>
{{
part
.
secStatistics
?
part
.
secStatistics
.
weight
:
0
}}
kg
</span>
</p>
<p>
{{
getTotlContent
(
part
.
secStatistics
)
}}
</p>
</div>
<div
class=
"table-button"
>
<el-button
type=
"danger"
size=
"small"
@
click=
"deletePart(part)"
>
删除部分
</el-button>
...
...
@@ -131,8 +127,8 @@
<el-table-column
label=
"箱数"
align=
"center"
prop=
"num"
/>
<el-table-column
label=
"体积/重量/重货比"
align=
"center"
width=
"140"
prop=
"volumeWeight"
>
<template
slot-scope=
"scope"
>
<p
v-if=
"scope.row.volume"
>
{{
scope
.
row
.
volume
}}
m³
</p>
<p
v-if=
"scope.row.weight"
>
{{
scope
.
row
.
weight
}}
kg
</p>
<p
v-if=
"scope.row.volume"
>
{{
getTotlContent
(
scope
.
row
,[
'
volume
'
])
}}
</p>
<p
v-if=
"scope.row.weight"
>
{{
getTotlContent
(
scope
.
row
,[
'
weight
'
])
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"报关方式"
align=
"center"
prop=
"customsType"
width=
"120"
>
...
...
@@ -169,15 +165,15 @@
<div
class=
"preinstall-title preinstalled"
>
<div
class=
"red-label"
>
<p>
筛选后待预装数量:
</p>
<p>
{{
unloadStatistics.num}}箱
</p>
<p>
{{
getTotlContent(unloadStatistics,['num'])}}
</p>
</div>
<div
class=
"red-label"
>
<p>
方数:
</p>
<p>
{{
unloadStatistics.volume}}m³
</p>
<p>
{{
getTotlContent(unloadStatistics,['volume'])}}
</p>
</div>
<div
class=
"red-label"
>
<p>
重量:
</p>
<p>
{{
unloadStatistics.weight}}kg
</p>
<p>
{{
getTotlContent(unloadStatistics,['weight'])}}
</p>
</div>
</div>
</el-row>
...
...
@@ -225,8 +221,8 @@
<el-table-column
label=
"箱数"
align=
"center"
prop=
"num"
/>
<el-table-column
label=
"体积/重量"
align=
"center"
prop=
"volumeWeight"
>
<
template
slot-scope=
"scope"
>
<p
v-if=
"scope.row.volume"
>
{{
scope
.
row
.
volume
}}
m³
</p>
<p
v-if=
"scope.row.weight"
>
{{
scope
.
row
.
weight
}}
kg
</p>
<p
v-if=
"scope.row.volume"
>
{{
getTotlContent
(
scope
.
row
,[
'
volume
'
])
}}
</p>
<p
v-if=
"scope.row.weight"
>
{{
getTotlContent
(
scope
.
row
,[
'
weight
'
])
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"报关方式"
align=
"center"
prop=
""
>
...
...
@@ -284,7 +280,8 @@ import {
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
formatDate
}
from
"
../utils
"
;
import
{
formatDate
,
getTotlContent
}
from
"
../utils
"
;
import
dayjs
from
"
dayjs
"
;
/**
* 预装
...
...
@@ -354,6 +351,7 @@ export default {
},
methods
:
{
formatDate
,
getTotlContent
,
/* 获取城市 */
importCityName
(
id
)
{
var
arr
=
this
.
$attrs
.
warehouseList
.
filter
((
item
)
=>
item
.
id
==
id
);
...
...
@@ -370,7 +368,6 @@ export default {
let
params
=
this
.
getParams
();
// 已预装单号
params
.
orderNo
=
params
.
preOrderNo
;
delete
params
.
preOrderNo
;
params
.
shipmentId
=
this
.
shipmentObj
.
id
;
secGoodsList
(
params
).
then
((
res
)
=>
{
this
.
preList
=
res
.
data
;
...
...
@@ -384,7 +381,6 @@ export default {
let
params
=
this
.
getParams
();
// 订单号
params
.
orderNo
=
params
.
toBePreOrderNo
;
delete
params
.
toBePreOrderNo
;
preloadPage
({
...
params
,
...
this
.
pageParam
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
toBePreList
=
data
.
dataList
?.
list
??
[];
...
...
@@ -438,7 +434,10 @@ export default {
if
(
column
.
property
===
"
volumeWeight
"
)
{
const
volume
=
this
.
calcSum
(
"
volume
"
,
data
);
const
weight
=
this
.
calcSum
(
"
weight
"
,
data
);
sums
[
index
]
=
`
${
volume
??
0
}
m
³
$
{
weight
??
0
}
kg
`;
sums
[
index
]
=
getTotlContent
({
volume
,
weight
},
[
"
volume
"
,
"
weight
"
,
]);
}
});
...
...
@@ -540,11 +539,14 @@ export default {
},
getParams
()
{
const
{
rucangtime
=
[]
}
=
this
.
queryParams
;
delete this.queryParams.rucangtime;
return
{
...
this
.
queryParams
,
rucangTimeStart: rucangtime[0],
rucangTimeEnd: rucangtime[1],
rucangTimeStart
:
rucangtime
[
0
]
?
dayjs
(
rucangtime
[
0
]).
format
(
"
YYYY-MM-DD 00:00:00
"
)
:
rucangtime
[
0
],
rucangTimeEnd
:
rucangtime
[
1
]
?
dayjs
(
rucangtime
[
1
]).
format
(
"
YYYY-MM-DD 23:59:59
"
)
:
rucangtime
[
1
],
};
},
},
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
04e0d9f9
...
...
@@ -859,11 +859,24 @@ function formatDateStr(obj, keys, format = "YYYY-MM-DD") {
return
obj
;
}
/**
* 格式化日期
*
* @param {*} date
* @param {string} [format="YYYY-MM-DD"]
* @return {*}
*/
function
formatDate
(
date
,
format
=
"
YYYY-MM-DD
"
)
{
if
(
!
date
)
return
date
;
return
dayjs
(
date
).
format
(
format
);
}
/**
* 获取海运流程状态
*
* @param {*} val
* @return {*}
*/
function
getSeaStatus
(
val
)
{
let
currNodeStatus
=
11
,
isBreak
=
false
,
...
...
@@ -896,6 +909,29 @@ function getSeaStatus(val) {
return
currNodeStatus
;
}
/**
* 组装统计信息文字
*
* @param {*} total
* @param {string} [keys=["num", "volume", "weight"]]
* @return {*}
*/
function
getTotlContent
(
total
,
keys
=
[
"
num
"
,
"
volume
"
,
"
weight
"
])
{
let
content
=
[];
for
(
const
key
of
keys
)
{
if
(
key
===
"
num
"
)
{
content
.
push
(
`
${
total
?.
num
??
0
}
箱
`);
}
if (key === "volume") {
content.push(`
$
{
total
?.
volume
??
0
}
m
³
`);
}
if (key === "weight") {
content.push(`
$
{
total
?.
weight
??
0
}
kg
`);
}
}
return content.join(" ");
}
export const fileTypes = [
"doc",
"xls",
...
...
@@ -917,4 +953,5 @@ export {
formatDateStr,
formatNumberString,
formatDate,
getTotlContent,
};
src/views/ecw/deptTarget/index.vue
View file @
04e0d9f9
...
...
@@ -9,14 +9,15 @@
</el-select>
</el-form-item>
<el-form-item
label=
"目标类型"
prop=
"targetType"
>
<dict-selector
:type=
"DICT_TYPE.TARGET_TYPE"
v-model=
"queryParams.targetType"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.TARGET_TYPE"
v-model=
"queryParams.targetType"
formatter=
"number"
/>
</el-form-item>
<el-form-item
label=
"运输方式"
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"
/>
</el-form-item>
<el-form-item
label=
"出货渠道"
prop=
"shippingChannel"
>
<el-select
v-model=
"queryParams.shippingChannel"
placeholder=
"请选择出货渠道"
>
<el-option
v-for=
"item in channelList"
:label=
"item.nameZh"
:value=
"item.channelId"
:key=
"item.channelId"
></el-option>
<el-option
v-for=
"item in channelList"
:label=
"item.nameZh"
:value=
"item.channelId"
:key=
"item.channelId"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
...
...
@@ -29,7 +30,8 @@
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:dept-target:create']"
>
目标设置
</el-button>
v-hasPermi=
"['ecw:dept-target:create']"
>
目标设置
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -41,7 +43,7 @@
<span>
{{
scope
.
row
.
deptName
}}{{
scope
.
row
.
targetPeriodName
}}
目标
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
prop=
"deptName"
/>
<el-table-column
label=
"部门"
align=
"center"
prop=
"deptName"
/>
<el-table-column
label=
"目标类型"
align=
"center"
prop=
"targetType"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.TARGET_TYPE"
:value=
"scope.row.targetType"
/>
...
...
@@ -53,7 +55,7 @@
</
template
>
</el-table-column>
<el-table-column
label=
"部门人数"
align=
"center"
prop=
"deptEmpCount"
/>
<el-table-column
label=
"目标方数"
align=
"center"
prop=
"cubeNum"
/>
<el-table-column
label=
"目标方数"
align=
"center"
prop=
"cubeNum"
/>
<el-table-column
label=
"运输方式"
align=
"center"
prop=
"transportType"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.TRANSPORT_TYPE"
:value=
"scope.row.transportType"
/>
...
...
@@ -64,7 +66,7 @@
<span>
{{
getShipChannelName
(
scope
.
row
.
shippingChannel
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"已完成方数"
align=
"center"
prop=
"completeCubeNum"
/>
<el-table-column
label=
"已完成方数"
align=
"center"
prop=
"completeCubeNum"
/>
<el-table-column
label=
"完成比例"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
(
scope
.
row
.
completeCubeNum
/
scope
.
row
.
cubeNum
*
100
).
toFixed
(
2
)
+
'
%
'
}}
</span>
...
...
@@ -73,9 +75,13 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:dept-target:update']"
>
修改
</el-button>
v-hasPermi=
"['ecw:dept-target:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:dept-target:delete']"
>
删除
</el-button>
v-hasPermi=
"['ecw:dept-target:delete']"
>
删除
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-search"
@
click=
"handleView(scope.row)"
v-hasPermi=
"['ecw:dept-target:create']"
></el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -94,7 +100,7 @@
<el-form-item
label=
"目标类型"
prop=
"targetType"
>
<el-select
v-model=
"form.targetType"
placeholder=
"请选择运输方式"
@
change=
"changeList"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.TARGET_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"计算周期"
prop=
"targetPeriodName"
>
...
...
@@ -103,15 +109,16 @@
</el-select>
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportType"
formatter=
"number"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportType"
formatter=
"number"
/>
</el-form-item>
<el-form-item
label=
"出货渠道"
prop=
"shippingChannel"
>
<el-select
v-model=
"form.shippingChannel"
placeholder=
"请选择出货渠道"
>
<el-option
v-for=
"item in channelList"
:label=
"item.nameZh"
:value=
"item.channelId"
:key=
"item.channelId"
></el-option>
<el-option
v-for=
"item in channelList"
:label=
"item.nameZh"
:value=
"item.channelId"
:key=
"item.channelId"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"立方数"
prop=
"cubeNum"
>
<el-input
v-model=
"form.cubeNum"
placeholder=
"请输入立方数"
/>
<el-input
v-model=
"form.cubeNum"
placeholder=
"请输入立方数"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -119,256 +126,338 @@
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<!--人员目标进度-->
<el-dialog
title=
"人员目标进度"
:visible.sync=
"tableOpen"
width=
"1000px"
append-to-body
>
<div><span><b>
{{detail.deptName}}-{{getDictDataLabel(DICT_TYPE.TARGET_TYPE,detail.targetType)}}
</b></span></div>
<div>
<span>
运输方式:
</span><span>
{{getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE,detail.transportType)}}
</span>
<span>
出货渠道:
</span><span>
{{ getShipChannelName(detail.shippingChannel) }}
</span>
<span>
部门目标:
</span><span>
{{detail.cubeNum}}
</span>
</div>
<el-table
v-loading=
"loading"
:data=
"tableList"
>
<el-table-column
label=
"员工名称"
align=
"center"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
userName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
>
<
template
>
<span>
{{
detail
.
deptName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"目标类型"
align=
"center"
prop=
"targetType"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.TARGET_TYPE"
:value=
"scope.row.targetType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"时间范围"
align=
"center"
prop=
"targetPeriodName"
>
<
template
slot-scope=
"scope"
>
<span>
{{
dateFormat
(
scope
.
row
.
startTime
)
}}
~
{{
dateFormat
(
scope
.
row
.
endTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"个人目标方数"
align=
"center"
prop=
"personalCubeNum"
/>
<el-table-column
label=
"已完成方数"
align=
"center"
prop=
"personalCompleteCubeNum"
/>
<el-table-column
label=
"完成比例"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
(
scope
.
row
.
personalCompleteCubeNum
/
scope
.
row
.
personalCubeNum
*
100
).
toFixed
(
2
)
+
'
%
'
}}
</span>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"tableTotal > 0"
:total=
"tableTotal"
:page.sync=
"tableQueryParams.pageNo"
:limit.sync=
"tableQueryParams.pageSize"
@
pagination=
"getTableList"
/>
</el-dialog>
</div>
</template>
<
script
>
import
{
createDeptTarget
,
updateDeptTarget
,
deleteDeptTarget
,
getDeptTarget
,
getDeptTargetPage
,
exportDeptTargetExcel
,
getCreateInitData
}
from
"
@/api/ecw/deptTarget
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
createDeptTarget
,
updateDeptTarget
,
deleteDeptTarget
,
getDeptTarget
,
getDeptTargetPage
,
exportDeptTargetExcel
,
getCreateInitData
,
getPersonTargetPage
}
from
"
@/api/ecw/deptTarget
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
export
default
{
name
:
"
DeptTarget
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 部门业绩目标设置列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
dateRangeStartTime
:
[],
dateRangeEndTime
:
[],
deptData
:[],
deptArr
:[],
channelList
:[],
monthList
:[],
quarterList
:[],
yearList
:[],
targetPeriod
:[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
deptId
:
null
,
targetType
:
null
,
targetPeriodName
:
null
,
transportType
:
null
,
shippingChannel
:
null
,
cubeNum
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
deptId
:
[{
required
:
true
,
message
:
"
部门ID不能为空
"
,
trigger
:
"
blur
"
}],
targetType
:
[{
required
:
true
,
message
:
"
目标类型不能为空
"
,
trigger
:
"
change
"
}],
cubeNum
:
[{
required
:
true
,
message
:
"
立方数不能为空
"
,
trigger
:
"
blur
"
}],
}
};
},
computed
:{
getShipChannelName
()
{
return
shippingChannelId
=>
{
for
(
let
index
in
this
.
channelList
)
{
let
channelItem
=
this
.
channelList
[
index
];
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
}
return
'
/
'
}
}
},
created
()
{
listSimpleDepts
().
then
(
res
=>
{
res
.
data
.
forEach
((
item
)
=>
{
if
(
item
.
parentId
==
0
){
export
default
{
name
:
"
DeptTarget
"
,
components
:
{},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
tableTotal
:
0
,
// 部门业绩目标设置列表
list
:
[],
tableList
:
[],
// 弹出层标题
title
:
""
,
detail
:
{
deptName
:
null
,
targetType
:
null
,
cubeNum
:
null
,
shippingChannel
:
null
,
transportType
:
null
,
},
// 是否显示弹出层
open
:
false
,
tableOpen
:
false
,
dateRangeCreateTime
:
[],
dateRangeStartTime
:
[],
dateRangeEndTime
:
[],
deptData
:
[],
deptArr
:
[],
channelList
:
[],
monthList
:
[],
quarterList
:
[],
yearList
:
[],
targetPeriod
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
deptId
:
null
,
targetType
:
null
,
targetPeriodName
:
null
,
transportType
:
null
,
shippingChannel
:
null
,
cubeNum
:
null
,
},
tableQueryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
id
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
deptId
:
[{
required
:
true
,
message
:
"
部门ID不能为空
"
,
trigger
:
"
blur
"
}],
targetType
:
[{
required
:
true
,
message
:
"
目标类型不能为空
"
,
trigger
:
"
change
"
}],
cubeNum
:
[{
required
:
true
,
message
:
"
立方数不能为空
"
,
trigger
:
"
blur
"
}],
}
};
},
computed
:
{
getShipChannelName
()
{
return
shippingChannelId
=>
{
for
(
let
index
in
this
.
channelList
)
{
let
channelItem
=
this
.
channelList
[
index
];
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
}
return
'
/
'
}
}
},
created
()
{
listSimpleDepts
().
then
(
res
=>
{
res
.
data
.
forEach
((
item
)
=>
{
if
(
item
.
parentId
==
0
)
{
this
.
deptArr
.
push
(
item
)
this
.
deptArr
.
push
(
item
)
}
else
{
this
.
deptData
.
push
(
item
)
}
})
this
.
deptData
.
forEach
((
value
)
=>
{
var
dept
=
this
.
deptArr
.
filter
(
itt
=>
itt
.
id
==
value
.
parentId
)
if
(
dept
.
length
>
0
)
{
value
.
name
=
dept
[
0
].
name
+
'
|
'
+
value
.
name
}
}
else
{
this
.
deptData
.
push
(
item
)
}
})
this
.
deptData
.
forEach
((
value
)
=>
{
var
dept
=
this
.
deptArr
.
filter
(
itt
=>
itt
.
id
==
value
.
parentId
)
if
(
dept
.
length
>
0
)
{
value
.
name
=
dept
[
0
].
name
+
'
|
'
+
value
.
name
}
})
});
getCreateInitData
().
then
(
res
=>
{
this
.
monthList
=
res
.
data
.
month
;
this
.
quarterList
=
res
.
data
.
quarter
;
this
.
yearList
=
res
.
data
.
year
;
});
this
.
getChannelList
();
this
.
getList
();
},
methods
:
{
getChannelList
(){
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
},
dateFormat
(
val
){
return
dayjs
(
val
).
format
(
"
YYYY-MM-DD
"
);
},
changeList
(
val
){
if
(
val
===
1
){
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
monthList
;
}
else
if
(
val
===
2
){
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
quarterList
;
}
else
{
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
yearList
;
}
},
setTime
(
item
){
this
.
targetPeriod
.
forEach
((
i
,
index
)
=>
{
if
(
i
.
name
===
item
){
this
.
form
.
startTime
=
i
.
startDate
;
this
.
form
.
endTime
=
i
.
endDate
;
}
})
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
// 执行查询
getDeptTargetPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
deptId
:
undefined
,
targetType
:
undefined
,
targetPeriodName
:
undefined
,
startTime
:
undefined
,
endTime
:
undefined
,
transportType
:
undefined
,
shippingChannel
:
undefined
,
cubeNum
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
dateRangeStartTime
=
[];
this
.
dateRangeEndTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
targetPeriod
=
this
.
monthList
;
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加部门业绩目标设置
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getDeptTarget
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
if
(
response
.
data
.
targetType
===
1
){
this
.
targetPeriod
=
this
.
monthList
;
}
else
if
(
response
.
data
.
targetType
===
2
){
this
.
targetPeriod
=
this
.
quarterList
;
}
else
{
this
.
targetPeriod
=
this
.
yearList
;
}
this
.
open
=
true
;
this
.
title
=
"
修改部门业绩目标设置
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
})
});
getCreateInitData
().
then
(
res
=>
{
this
.
monthList
=
res
.
data
.
month
;
this
.
quarterList
=
res
.
data
.
quarter
;
this
.
yearList
=
res
.
data
.
year
;
});
this
.
getChannelList
();
this
.
getList
();
});
return
;
},
methods
:
{
getChannelList
()
{
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
},
dateFormat
(
val
)
{
return
dayjs
(
val
).
format
(
"
YYYY-MM-DD
"
);
},
changeList
(
val
)
{
if
(
val
===
1
)
{
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
monthList
;
}
else
if
(
val
===
2
)
{
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
quarterList
;
}
else
{
this
.
form
.
targetPeriodName
=
undefined
;
this
.
targetPeriod
=
this
.
yearList
;
}
},
setTime
(
item
)
{
this
.
targetPeriod
.
forEach
((
i
,
index
)
=>
{
if
(
i
.
name
===
item
)
{
this
.
form
.
startTime
=
i
.
startDate
;
this
.
form
.
endTime
=
i
.
endDate
;
}
})
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
// 执行查询
getDeptTargetPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
deptId
:
undefined
,
targetType
:
undefined
,
targetPeriodName
:
undefined
,
startTime
:
undefined
,
endTime
:
undefined
,
transportType
:
undefined
,
shippingChannel
:
undefined
,
cubeNum
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
dateRangeStartTime
=
[];
this
.
dateRangeEndTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
targetPeriod
=
this
.
monthList
;
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加部门业绩目标设置
"
;
},
/** 查看人员目标情况 */
handleView
(
row
)
{
this
.
detail
=
row
;
this
.
tableQueryParams
.
id
=
row
.
id
;
this
.
getTableList
();
this
.
tableOpen
=
true
;
},
getTableList
()
{
getPersonTargetPage
(
this
.
tableQueryParams
).
then
(
res
=>
{
this
.
tableList
=
res
.
data
.
list
;
this
.
tableTotal
=
res
.
data
.
total
;
});
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getDeptTarget
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
if
(
response
.
data
.
targetType
===
1
)
{
this
.
targetPeriod
=
this
.
monthList
;
}
else
if
(
response
.
data
.
targetType
===
2
)
{
this
.
targetPeriod
=
this
.
quarterList
;
}
else
{
this
.
targetPeriod
=
this
.
yearList
;
}
this
.
open
=
true
;
this
.
title
=
"
修改部门业绩目标设置
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除部门业绩目标设置编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteDeptTarget
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{
});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有部门业绩目标设置数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportDeptTargetExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{
});
}
}
// 添加的提交
createDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除部门业绩目标设置编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteDeptTarget
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeStartTime
,
'
startTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeEndTime
,
'
endTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有部门业绩目标设置数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportDeptTargetExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
};
</
script
>
src/views/ecw/order/cargoControl.vue
View file @
04e0d9f9
...
...
@@ -113,7 +113,7 @@
<el-button
type=
"text"
size=
"mini"
@
click=
"$router.push('detail?id=' + scope.row.orderId)"
>
查看
</el-button>
<el-button
type=
"text"
size=
"mini"
>
调货
</el-button>
<el-button
type=
"text"
size=
"mini"
>
反复核
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click=
"showTransferOrder
Id = scope.row.orderId
"
>
控货权转移
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click=
"showTransferOrder
= scope.row
"
>
控货权转移
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -121,7 +121,7 @@
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.page"
:limit.sync=
"queryParams.rows"
@
pagination=
"getList"
/>
<transfer
v-if=
"showTransferOrder
Id"
:order-id=
"showTransferOrderId"
@
close=
"showTransferOrderId
=null"
/>
<transfer
v-if=
"showTransferOrder
"
v-bind=
"showTransferOrder"
@
close=
"showTransferOrder
=null"
/>
<release
v-if=
"showReleaseOrderId"
:order-id=
"showReleaseOrderId"
@
close=
"showReleaseOrderId=null"
/>
<release
v-if=
"showEditOrderId"
:order-id=
"showEditOrderId"
@
close=
"showEditOrderId=null"
/>
</div>
...
...
@@ -132,17 +132,11 @@ import Selector from '@/components/Selector'
import
ProductSelector
from
'
@/components/ProductSelector
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
CustomerSelector
from
'
@/components/CustomerSelector
'
import
specialNeeds
from
'
@/views/ecw/order/components/specialNeeds
'
;
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
Transfer
from
'
@/views/ecw/order/components/Transfer
'
import
Release
from
'
./components/Release
'
import
CargoControlEdit
from
'
./components/CargoControlEdit
'
import
{
getOrder
,
getOrderPage
,
exportOrderExcel
,
getCargoControlOrderPage
}
from
"
@/api/ecw/order
"
;
import
{
getCargoControlOrderPage
}
from
"
@/api/ecw/orderCargoControl
"
export
default
{
...
...
@@ -181,7 +175,7 @@ export default {
denominator
:
''
,
//重货比分母
dateFilterType
:
''
,
//日期筛选类别
dateFilter
:
[],
//筛选日期
showTransferOrder
Id
:
null
,
// 控制权转移操作订单
showTransferOrder
:
null
,
// 控制权转移操作订单
showReleaseOrderId
:
null
,
// 放货ID
showEditOrderId
:
null
,
// 修改ID
};
...
...
src/views/ecw/order/cargoControlDetail.vue
View file @
04e0d9f9
<
template
>
<div
class=
"app-container"
>
<div
class=
"title"
>
控货订单
</div>
<div
class=
"
page-
title"
>
控货订单
</div>
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"6"
>
...
...
@@ -36,7 +36,7 @@
</el-row>
</el-form>
<div
class=
"title"
>
放货详情
</div>
<div
class=
"
page-
title"
>
放货详情
</div>
<el-table
:data=
"[1]"
border
>
<el-table-column
label=
"序号"
width=
"50px"
>
...
...
@@ -77,7 +77,7 @@
</el-table-column>
</el-table>
<div
class=
"title"
>
历史放货记录
</div>
<div
class=
"
page-
title"
>
历史放货记录
</div>
<el-table
:data=
"[1]"
border
>
<el-table-column
label=
"序号"
width=
"50px"
>
...
...
@@ -131,18 +131,3 @@ export default {
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.title
{
font-size
:
16px
;
margin
:
20px
0
;
display
:flex
;
align-items
:center
;
&
:before
{
content
:
''
;
width
:
5px
;
height
:
15px
;
background
:
#666
;
margin-right
:
10px
;
}
}
</
style
>
src/views/ecw/order/components/SendSmsCode.vue
0 → 100644
View file @
04e0d9f9
<
template
>
<span
@
click=
"send"
>
{{
text
}}
</span>
</
template
>
<
script
>
import
{
sendSmsCode
}
from
'
@/api/ecw/orderCargoControl
'
const
timeout
=
null
export
default
{
props
:{
orderId
:
[
String
,
Number
],
scene
:
[
String
,
Number
]
},
data
(){
return
{
leftTime
:
60
,
loading
:
false
}
},
computed
:{
text
(){
if
(
this
.
leftTime
===
60
){
return
'
发送验证码
'
}
if
(
this
.
leftTime
>
0
){
return
this
.
leftTime
+
'
秒
'
}
return
'
重新发送
'
}
},
destroyed
(){
if
(
timeout
)
clearTimeout
(
timeout
)
},
methods
:{
send
(){
if
(
this
.
loading
||
(
this
.
leftTime
>
0
&&
this
.
leftTime
<
60
))
return
false
this
.
loading
=
true
sendSmsCode
({
orderId
:
this
.
orderId
,
scene
:
this
.
scene
}).
then
(
res
=>
{
this
.
$message
.
success
(
'
发送成功
'
)
this
.
countDown
()
}).
finally
(
res
=>
{
this
.
loading
=
false
})
},
countDown
(){
this
.
leftTime
--
if
(
this
.
leftTime
<=
0
){
return
false
}
timeout
=
setTimeout
(
this
.
countDown
,
1000
)
}
}
}
</
script
>
\ No newline at end of file
src/views/ecw/order/components/Transfer.vue
View file @
04e0d9f9
<
template
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<div
class=
""
v-if=
"agreement"
>
<el-form
ref=
"form"
:model=
"form"
label-position=
"left"
label-width=
"120px"
>
<el-form-item
v-if=
"detail"
label=
"原控货人"
>
<el-input
v-model=
"
detail.orderNo
"
readonly
></el-input>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"left"
label-width=
"120px"
>
<el-form-item
label=
"原控货人"
>
<el-input
v-model=
"
cargoControlName
"
readonly
></el-input>
</el-form-item>
<el-form-item
label=
"原控货手机号"
prop=
"start"
required
>
<el-input
v-model
.number=
"form.start"
type=
"number"
></el-input>
<el-form-item
label=
"原控货手机号"
>
<el-input
v-model
=
"cargoControlPhone"
readonly
></el-input>
</el-form-item>
<el-form-item
label=
"新控货人"
prop=
"end"
required
>
<el-input
v-model.number=
"form.end"
type=
"number"
:max=
"detail ? detail.num : 1"
></el-input>
<el-form-item
label=
"新控货人"
prop=
"name"
>
<el-input
v-model=
"form.name"
></el-input>
</el-form-item>
<el-form-item
label=
"新控货手机号"
prop=
"
start"
required
>
<el-input
v-model
.number=
"form.start"
type=
"number
"
>
<el-select
slot=
"prepend"
v-model=
"form.
areaCode"
placeholder=
"
"
>
<el-option
:label=
"1"
:value=
"1
"
></el-option>
<el-form-item
label=
"新控货手机号"
prop=
"
phone"
>
<el-input
v-model
=
"form.phone"
type=
"tel
"
>
<el-select
slot=
"prepend"
v-model=
"form.
dialCode"
placeholder=
""
style=
"width:200px
"
>
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"item.nameZh + item.tel"
:value=
"item.tel.replace('+', '')
"
></el-option>
</el-select>
</el-input>
</el-form-item>
<el-form-item
label=
"新控货人邮箱"
prop=
"e
nd"
required
>
<el-input
v-model
.number=
"form.end"
type=
"number"
:max=
"detail ? detail.num : 1
"
></el-input>
<el-form-item
label=
"新控货人邮箱"
prop=
"e
mail"
>
<el-input
v-model
=
"form.email"
type=
"email
"
></el-input>
</el-form-item>
<el-form-item
label=
"手机验证码"
prop=
"
end"
required
>
<el-input
v-model.number=
"form.
end
"
type=
"number"
>
<s
pan
slot=
"append"
>
获取验证码
</span
>
<el-form-item
label=
"手机验证码"
prop=
"
code"
>
<el-input
v-model.number=
"form.
code
"
type=
"number"
>
<s
end-sms-code
slot=
"append"
:order-id=
"orderId"
scene=
"4"
/
>
</el-input>
</el-form-item>
<el-form-item
label=
""
>
<el-button
type=
"primary"
@
click=
"s
howPreview
"
>
确定转移
</el-button>
<el-button
type=
"primary"
@
click=
"s
ubmit
"
>
确定转移
</el-button>
</el-form-item>
</el-form>
</div>
...
...
@@ -42,41 +43,72 @@
</
template
>
<
script
>
import
TransferAgreement
from
"
./TransferAgreement
"
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
SendSmsCode
from
'
./SendSmsCode
'
import
{
create
}
from
'
@/api/ecw/orderCargoControl
'
export
default
{
props
:{
orderId
:
[
String
,
Number
]
orderId
:
[
String
,
Number
],
cargoControlName
:
String
,
cargoControlPhone
:
String
,
orderNo
:
String
},
components
:
{
TransferAgreement
},
components
:
{
TransferAgreement
,
SendSmsCode
},
data
(){
return
{
show
:
false
,
detail
:
null
,
//
detail: null,
form
:{},
agreement
:
false
,
// 是否同意协议
countryList
:
[],
rules
:{
name
:
[{
required
:
true
,
message
:
'
请输入控货人
'
}],
phone
:
[{
required
:
true
,
message
:
'
请输入控货人手机
'
}],
// email: [{required: true, message: '请输入控货人'}],
code
:
[{
required
:
true
,
message
:
'
验证码不能为空
'
}]
}
}
},
computed
:{
title
(){
let
t
=
'
控货权转移
'
if
(
this
.
detail
){
t
+=
'
-
'
+
this
.
detail
.
orderNo
}
return
t
return
this
.
orderNo
}
},
watch
:{
countryList
(){
if
(
this
.
countryList
.
length
){
this
.
$set
(
this
.
form
,
'
dialCode
'
,
this
.
countryList
[
0
].
tel
.
replace
(
'
+
'
,
''
))
}
}
},
created
(){
this
.
show
=
true
this
.
loadData
()
getCountryListAll
().
then
(
res
=>
{
this
.
countryList
=
res
.
data
})
},
methods
:{
loadData
(){
},
closeDialog
(){
this
.
show
=
false
this
.
$emit
(
'
close
'
);
},
submit
(){
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
!
valid
){
return
false
}
let
data
=
Object
.
assign
({
orderId
:
this
.
orderId
,
orderNo
:
this
.
orderNo
},
this
.
form
)
create
(
data
)
.
then
(
res
=>
{
this
.
$message
.
success
(
res
.
message
||
'
操作成功
'
)
this
.
closeDialog
()
})
})
}
}
}
</
script
>
\ No newline at end of file
src/views/ecw/order/edit.vue
View file @
04e0d9f9
...
...
@@ -278,7 +278,7 @@
<el-input
v-model=
"form.marks"
placeholder=
""
></el-input>
</el-descriptions-item>
<el-descriptions-item
label=
"是否控货"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.
c
ontrol"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.
isCargoC
ontrol"
form-type=
"radio"
/>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item
label=
"是否代收货款"
>
...
...
@@ -527,7 +527,13 @@ export default {
this
.
getOpenedRouterList
()
},
'
form.transportId
'
(){
this
.
getOpenedRouterList
this
.
getOpenedRouterList
()
},
'
form.lineId
'
(
lineId
){
let
router
=
this
.
routerList
.
find
(
item
=>
item
.
id
==
lineId
)
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
// TODO 还需要回填渠道信息,暂时缺少渠道ID
},
/* // 发货联系人发生变化获取发货客户
consignorContact(){
...
...
src/views/ecw/order/index.vue
View file @
04e0d9f9
...
...
@@ -3,12 +3,12 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
>
<el-form-item
label=
"
订单
编号"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
placeholder=
"
订单编
号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"编号"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
placeholder=
"
请输入订单号、唛头、提单
号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<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-form-item>
</el-form-item>
-->
<el-form-item
label=
"发货人"
prop=
"consignorId"
>
<el-input
v-model=
"queryParams.consignorId"
placeholder=
"发货人"
clearable
@
keyup.enter.native=
"handleQuery"
/>
...
...
@@ -17,8 +17,8 @@
<el-form-item
label=
"收货人"
prop=
"consigneeId"
>
<el-input
v-model=
"queryParams.consigneeId"
placeholder=
"收货人"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"
日期筛选
"
>
<dict-selector
:type=
"DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME"
v-model=
"dateFilterType"
style=
"width: 150px; margin-right: 5px"
/>
<el-form-item
label=
""
>
<dict-selector
:type=
"DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME"
v-model=
"dateFilterType"
defaultable
style=
"width: 150px; margin-right: 5px"
/>
<el-date-picker
v-model=
"dateFilter"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
...
...
@@ -37,7 +37,7 @@
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
/>
</el-form-item>
<el-form-item
label=
"商品分类"
prop=
"goodsType"
>
<
!--
<
el-form-item
label=
"商品分类"
prop=
"goodsType"
>
<selector
v-model=
"queryParams.goodsType"
:options=
"productAttrList"
label-field=
"attrName"
value-field=
"id"
>
</selector>
</el-form-item>
...
...
@@ -47,9 +47,10 @@
<el-form-item
label=
"品牌"
prop=
"brand"
>
<dict-selector
v-model=
"queryParams.brand"
:type=
"DICT_TYPE.ECW_IS_BRAND"
formatter=
"bool"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"提单号"
prop=
"tidanNo"
>
<el-input
v-model=
"queryParams.tidanNo"
placeholder=
"提单号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
-->
<el-form-item
label=
"商品"
prop=
"tidanNo"
>
<el-input
v-model=
"queryParams.product"
placeholder=
"请输入商品类型、品名或品牌"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"控货"
prop=
"isCargoControl"
>
...
...
@@ -58,11 +59,12 @@
<el-form-item
label=
"入仓类型"
prop=
"warehouseType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"queryParams.warehousingType"
/>
</el-form-item>
<el-form-item
label=
"跟进客服"
>
<customer-selector
/>
<el-form-item
label=
"客户经理"
>
<!--
<customer-selector
/>
-->
// TODO
</el-form-item>
<el-form-item
label=
"订单状态"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.
PAY_
ORDER_STATUS"
v-model=
"queryParams.status"
<dict-selector
:type=
"DICT_TYPE.ORDER_STATUS"
v-model=
"queryParams.status"
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"报关方式"
prop=
"customsType"
>
...
...
@@ -70,15 +72,16 @@
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"是否齐货"
>
<!--// 字段存疑-->
<dict-selector
v-model=
"queryParams.isCargoControl"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</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"
@
keyup.enter.native=
"handleQuery"
/>
-
<el-input
style=
"width: 100px;"
v-model=
"denominator"
placeholder=
""
clearable
@
change=
"denominatorChange"
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"备案属性"
prop=
"productRecord"
>
<dict-selector
:type=
"DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
v-model=
"queryParams.productRecord"
clearable
@
keyup.enter.native=
"handleQuery"
/>
...
...
src/views/ecw/order/warehousing/index.vue
View file @
04e0d9f9
...
...
@@ -103,14 +103,16 @@
<div
style=
"text-align: center"
>
在完成入仓前,您还可以
</div>
<div
style=
"text-align: center;padding: 15px 0"
>
<el-button
type=
"info"
@
click=
"areaVisible = true"
>
选择储位
</el-button>
<el-button
type=
"info"
@
click=
"isShowPrint = true"
>
打印标签
</el-button>
<el-button
type=
"info"
@
click=
"isShowPrint
Tag
= true"
>
打印标签
</el-button>
</div>
<div
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"handleSubmit()"
>
确 定
</el-button>
</div>
</el-dialog>
<print-tag
v-if=
"isShowPrint"
:order-id=
"orderId"
@
close=
"isShowPrint = false"
></print-tag>
<print-tag
v-if=
"isShowPrintTag"
:order-id=
"orderId"
@
close=
"isShowPrintTag = false"
></print-tag>
<print-warehouse-receipt
v-if=
"isShowPrint"
:order-id=
"orderId"
@
close=
"isShowPrint = false"
/>
</div>
</template>
...
...
@@ -128,6 +130,7 @@ import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
import
editDialog
from
'
@/views/ecw/order/warehousing/components/editDialog
'
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
PrintTag
from
"
@/views/ecw/order/components/PrintTag
"
import
PrintWarehouseReceipt
from
"
@/views/ecw/order/components/PrintWarehouseReceipt
"
export
default
{
name
:
"
Warehousing
"
,
...
...
@@ -136,7 +139,8 @@ export default {
orderBaseInfo
,
WarehouseAreaDialog
,
editDialog
,
PrintTag
PrintTag
,
PrintWarehouseReceipt
},
mounted
()
{
...
...
@@ -166,6 +170,7 @@ export default {
orderItemList
:
[],
specialList
:
[],
warehousing
:
undefined
,
isShowPrintTag
:
false
,
isShowPrint
:
false
}
},
...
...
@@ -182,10 +187,12 @@ export default {
'
该订单已成功入仓,是否打印?
'
,
'
货物已入仓
'
,
{
confirmButton
Class
:
'
是
'
,
confirmButton
Text
:
'
是
'
,
cancelButtonText
:
'
否
'
}
).
then
().
catch
(()
=>
{
).
then
(()
=>
{
this
.
isShowPrint
=
true
}).
catch
(()
=>
{
// this.$store.dispatch('tagsView/delVisitedView')
this
.
$message
.
success
(
'
入仓成功
'
)
})
...
...
src/views/ecw/productPrice/edit.vue
View file @
04e0d9f9
...
...
@@ -55,82 +55,124 @@
<el-card
style=
"margin-bottom: 10px"
>
<div
slot=
"header"
style=
"font-size:20px;"
>
价格设置
<span>
<el-checkbox
label=
""
@
change=
"form.advanceStatus=$event ? 1 : 0"
>
预付
</el-checkbox>
<el-checkbox
label=
""
@
change=
"form.stepPrice=$event ? 1 : 0"
>
阶梯订单
</el-checkbox>
</span>
</div>
<el-form-item
label=
"默认运费"
prop=
"transportPrice"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"form.transportPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"form.transportPrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
/
<selector
v-model=
"form.transportVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
<el-form-item
label=
"单价模式"
prop=
"priceType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_TYPE"
v-model=
"form.priceType"
form-type=
"radio"
defaultable
/>
</el-form-item>
<el-form-item
label=
"默认清关费"
prop=
"clearancePrice"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"form.clearancePriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"form.clearancePrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
<!--阶梯订单-->
<
template
v-if=
"form.stepPrice==1"
>
<div
v-for=
"(item, index) in priceStepList"
:key=
"index"
>
<div
style=
"font-size:14px; margin:10px 0"
>
第
{{
index
+
1
}}
阶梯定价方案:
<template
v-if=
"index == priceStepList.length - 1"
>
<el-link
type=
"primary"
@
click.native=
"priceStepList.push(
{})">添加区间
</el-link>
<el-divider
direction=
"vertical"
></el-divider>
<el-link
type=
"danger"
@
click.native=
"priceStepList.splice(index, 1)"
>
删除
</el-link>
</
template
>
</div>
<el-form-item
:label=
"`第${index+1}阶梯`"
>
<el-input
v-model=
"item.startNum"
type=
"number"
placeholder=
""
class=
"w100"
></el-input>
-
<el-input
v-model=
"item.endNum"
type=
"number"
placeholder=
""
class=
"w100"
></el-input>
/
<selector
v-model=
"form.clearanceVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
</el-form-item>
<selector
v-model=
"form.weightUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
</el-form-item>
<el-form-item
label=
"默认运费"
v-if=
"form.priceType != 1"
>
<inputor
default=
"0"
v-model.number=
"item.transportPrice"
type=
"number"
placeholder=
"整数或者两位小数"
class=
"w100 mr10"
/>
<selector
v-model=
"item.transportPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
/
<selector
v-model=
"item.transportVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
</el-form-item>
<el-form-item
label=
"默认清关费"
v-if=
"form.priceType != 1"
>
<inputor
default=
"0"
v-model.number=
"item.clearancePrice"
type=
"number"
placeholder=
"整数或者两位小数"
class=
"w100 mr10"
/>
<selector
v-model=
"item.clearancePriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
/
<selector
v-model=
"item.clearanceVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
</el-form-item>
<el-form-item
label=
"默认全包价"
v-if=
"form.priceType == 1"
>
<inputor
default=
"0"
v-model.number=
"item.allPrice"
type=
"number"
placeholder=
"整数或者两位小数"
class=
"w100 mr10"
/>
<selector
v-model=
"item.allPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
/
<selector
v-model=
"item.allVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w100"
/>
</el-form-item>
</div>
</template>
<!--特需-->
<
template
v-for=
"(special, specialIndex) in this.specialProducts"
>
<el-form-item
:label=
"getDictDataLabel(DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS, special.specialDictType) + '运费'"
:key=
"specialIndex + 'transport'"
>
<
template
v-else
>
<el-form-item
label=
"默认运费"
prop=
"transportPrice"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"
special
.transportPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-model=
"
form
.transportPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"
special
.transportPrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
<inputor
default=
"0"
v-model.number=
"
form
.transportPrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
/
<selector
v-model=
"
special
.transportVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
/
<selector
v-model=
"
form
.transportVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
</el-form-item>
<el-form-item
:label=
"getDictDataLabel(DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS, special.specialDictType) + '清关费'"
:key=
"specialIndex + 'clearance'"
>
<el-form-item
label=
"默认清关费"
prop=
"clearancePrice"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"
special
.clearancePriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-model=
"
form
.clearancePriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"
special
.clearancePrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
<inputor
default=
"0"
v-model.number=
"
form
.clearancePrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
/
<selector
v-model=
"special.clearanceVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
/
<selector
v-model=
"form.clearanceVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
</el-form-item>
</
template
>
<!--特需-->
<template
v-for=
"(special, specialIndex) in this.specialProducts"
>
<el-form-item
:label=
"getDictDataLabel(DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS, special.specialDictType) + '运费'"
:key=
"specialIndex + 'transport'"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"special.transportPriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"special.transportPrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
/
<selector
v-model=
"special.transportVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
</el-form-item>
<el-form-item
:label=
"getDictDataLabel(DICT_TYPE.ECW_SPECIAL_REQ_FOR_LINE_PRODUCTS, special.specialDictType) + '清关费'"
:key=
"specialIndex + 'clearance'"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
>
<selector
v-model=
"special.clearancePriceUnit"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
<el-col
:span=
"6"
>
<inputor
default=
"0"
v-model.number=
"special.clearancePrice"
type=
"number"
placeholder=
"整数或者两位小数"
/>
</el-col>
<el-col
:span=
"4"
>
/
<selector
v-model=
"special.clearanceVolumeUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
</el-col>
</el-row>
</el-form-item>
</
template
>
</template>
<el-form-item
label=
"是否预付"
prop=
"advanceStatus"
>
<
!-- <
el-form-item label="是否预付" prop="advanceStatus">
<dict-selector form-type="radio" :type="DICT_TYPE.ADVANCE_STATUS" v-model="form.advanceStatus" />
</el-form-item>
</el-form-item>
-->
</el-card>
...
...
@@ -181,8 +223,12 @@ export default {
return
{
checkList
:
[],
selectedRoutes
:
[],
// 勾选的路线渠道
form
:
{},
form
:
{
stepPrice
:
0
,
advanceStatus
:
0
},
specialProducts
:
[],
priceStepList
:
[{},{}],
// 阶梯价格
// specialList:[], // 特殊需求,默认四个
rules
:
{
/* typeId: [{ required: true, message: "产品类型不能为空", trigger: "blur" }],
...
...
@@ -321,6 +367,9 @@ export default {
specialList
:
this
.
specialProducts
,
isAllProduct
:
0
})
if
(
this
.
form
.
stepPrice
==
1
){
data
.
priceStepList
=
this
.
priceStepList
}
// 修改的提交
if
(
this
.
$route
.
query
.
ids
)
{
...
...
@@ -348,7 +397,7 @@ export default {
data
.
productIdList
=
[
this
.
form
.
productId
]
batchUpdateProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$router
.
replace
(
'
/product/product-price
'
)
this
.
$router
.
replace
(
'
/product/product-price
?
'
+
(
new
URLSearchParams
(
this
.
$route
.
query
)).
toString
()
)
})
return
;
...
...
@@ -358,10 +407,18 @@ export default {
data
.
lineChannelList
=
this
.
selectedRoutes
createProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
请求成功
"
);
this
.
$router
.
replace
(
'
/product/product-price
'
)
this
.
$router
.
replace
(
'
/product/product-price
?
'
+
(
new
URLSearchParams
(
this
.
$route
.
query
)).
toString
()
)
});
});
},
}
}
</
script
>
\ No newline at end of file
</
script
>
<
style
scoped
>
.w100
{
width
:
100px
;
}
.mr10
{
margin-right
:
10px
;
}
</
style
>
\ No newline at end of file
src/views/ecw/productPrice/index.vue
View file @
04e0d9f9
<
template
>
<div
class=
"app-container"
>
<div
class=
"page-title"
>
{{
$route
.
query
.
product_id
?
productTitle
+
'
-
'
:
'
全部
'
}}
路线价格列表
</div>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"商品编码"
prop=
"productCode"
>
<el-form-item
label=
"商品编码"
prop=
"productCode"
v-if=
"!$route.query.product_id"
>
<el-input
v-model=
"queryParams.productCode"
placeholder=
"请输入商品编码"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"海关编码"
prop=
"customsCode"
>
<el-form-item
label=
"海关编码"
prop=
"customsCode"
v-if=
"!$route.query.product_id"
>
<el-input
v-model=
"queryParams.customsCode"
placeholder=
"请输入海关编码"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"商品名称"
prop=
"titleZh"
>
<el-form-item
label=
"商品名称"
prop=
"titleZh"
v-if=
"!$route.query.product_id"
>
<el-input
v-model=
"queryParams.titleZh"
placeholder=
"请输入商品名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"商品类型"
prop=
"typeId"
>
<el-form-item
label=
"商品类型"
prop=
"typeId"
v-if=
"!$route.query.product_id"
>
<el-select
v-model=
"queryParams.typeId"
placeholder=
"选择商品类型"
clearable
>
<el-option
v-for=
"type in typeList"
:key=
"type.id"
:label=
"type.titleZh"
:value=
"type.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"商品特性"
prop=
"attrId"
>
<el-select
v-model=
"queryParams.attrId"
placeholder=
"选择商品特性"
clearable
>
<el-form-item
label=
"商品属性"
prop=
"attrId"
v-if=
"!$route.query.product_id"
>
<el-select
v-model=
"queryParams.attrId"
placeholder=
"选择商品属性"
clearable
>
<el-option
v-for=
"attr in attrList"
:key=
"attr.id"
:label=
"attr.attrName"
:value=
"attr.id"
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"商品特性"
prop=
"attrId"
v-if=
"!$route.query.product_id"
>
// TODO
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
formatter=
"number"
/>
</el-form-item>
<el-form-item
label=
"空运渠道"
prop=
"shippingChannelId"
>
<el-select
v-model=
"queryParams.shippingChannelId"
clearable
>
<el-option
v-for=
"item in channelList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.channelId"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"始发地"
prop=
"startCityId"
>
<el-select
v-model=
"queryParams.startCityId"
clearable
>
<el-option
v-for=
"city in startCityList"
:key=
"city.id"
:label=
"city.titleZh"
:value=
"city.id"
/>
...
...
@@ -38,17 +47,10 @@
<el-option
v-for=
"city in destCityList"
:key=
"city.id"
:label=
"city.titleZh"
:value=
"city.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"空运渠道"
prop=
"shippingChannelId"
>
<el-select
v-model=
"queryParams.shippingChannelId"
clearable
>
<el-option
v-for=
"item in channelList"
:key=
"item.id"
:label=
"item.nameZh"
:value=
"item.channelId"
/>
</el-select>
</el-form-item>
<el-form-item
label=
""
prop=
"blacklist"
v-if=
"false"
>
<el-checkbox
v-model=
"queryParams.blacklist"
:true-label=
"1"
:false-label=
"0"
>
黑名单
</el-checkbox>
<el-form-item
label=
"状态"
prop=
"destCityId"
v-if=
"!$route.query.product_id"
>
// TODO
</el-form-item>
<el-form-item>
...
...
@@ -59,11 +61,16 @@
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:product-price:create']"
>
新增
</el-button>
<!--全部路线吗没有新增入口,指定商品的路线价格才有添加路线-->
<el-col
:span=
"1.5"
v-if=
"$route.query.product_id"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:product-price:create']"
>
添加路线
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"handleBatchEdit"
:disabled=
"multiple"
v-hasPermi=
"['ecw:product:attr']"
>
批量设置路线
</el-button>
<el-button
v-if=
"!$route.query.product_id"
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"handleBatchEdit"
:disabled=
"multiple"
>
设置已选路线价格
</el-button>
<el-button
v-if=
"!$route.query.product_id"
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"handleBatchEdit"
:disabled=
"multiple"
>
批量加入黑名单
</el-button>
<el-button
v-if=
"!$route.query.product_id"
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"handleBatchEdit"
:disabled=
"multiple"
>
批量下架
</el-button>
<el-button
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"handleBatchEdit"
:disabled=
"multiple"
>
批量设置路线
</el-button>
</el-col>
<!--
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
...
...
@@ -77,7 +84,7 @@
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
></el-table-column>
<el-table-column
label=
"序号"
prop=
"id"
width=
"50"
/>
<el-table-column
label=
"商品编码"
align=
"center"
prop=
"productCode"
>
<el-table-column
label=
"商品编码"
align=
"center"
prop=
"productCode"
v-if=
"!$route.query.product_id"
>
<template
slot-scope=
"
{row}">
<div>
{{
row
.
productDO
?
row
.
productDO
.
productCode
:
'
无productDO字段
'
}}
...
...
@@ -85,7 +92,7 @@
</
template
>
</el-table-column>
<el-table-column
label=
"海关编码"
align=
"center"
prop=
"customsCode"
>
<el-table-column
label=
"海关编码"
align=
"center"
prop=
"customsCode"
v-if=
"!$route.query.product_id"
>
<
template
slot-scope=
"{row}"
>
<div>
{{
row
.
productDO
?
row
.
productDO
.
customsCode
:
'
无productDO字段
'
}}
...
...
@@ -93,16 +100,16 @@
</
template
>
</el-table-column>
<el-table-column
label=
"商品类型"
align=
"center"
prop=
"typeId"
>
<el-table-column
label=
"商品类型"
align=
"center"
prop=
"typeId"
v-if=
"!$route.query.product_id"
>
<
template
slot-scope=
"{row}"
>
<span>
{{
row
.
productDO
?
getTypeName
(
row
.
productDO
.
typeId
)
:
'
无productDO字段
'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"商品名称"
align=
"center"
prop=
"productName"
>
<el-table-column
label=
"商品名称"
align=
"center"
prop=
"productName"
v-if=
"!$route.query.product_id"
>
<
template
slot-scope=
"{row}"
>
<div>
{{
row
.
productDO
?
row
.
productDO
.
titleZh
:
'
无productDO字段
'
}}
{{
row
.
productDO
?
row
.
productDO
.
titleZh
+
'
/
'
+
row
.
productDO
.
titleEn
:
'
无productDO字段
'
}}
</div>
</
template
>
</el-table-column>
...
...
@@ -154,7 +161,8 @@
<el-table-column
prop=
"advanceStatus"
label=
"预付"
align=
"center"
width=
"80"
>
<
template
slot-scope=
"scope"
>
<div>
{{
getAdvanceStatuTitle
(
scope
.
row
.
advanceStatus
)
}}
<!--
{{
getAdvanceStatuTitle
(
scope
.
row
.
advanceStatus
)
}}
-->
<dict-tag
:type=
"DICT_TYPE.ADVANCE_STATUS"
:value=
"scope.row.advanceStatus"
></dict-tag>
</div>
</
template
>
</el-table-column>
...
...
@@ -162,14 +170,14 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"140"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:product-price:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateStatus(scope.row, 'blacklist')"
v-hasPermi=
"['ecw:product-price:update']"
>
{{
scope
.
row
.
blacklist
==
0
?
'
加入黑名单
'
:
'
移除黑名单
'
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateStatus(scope.row, 'auditStatus')"
v-hasPermi=
"['ecw:product-price:update']"
>
{{
scope
.
row
.
auditStatus
==
AuditStatusEnum
.
PASS
?
'
下架
'
:
'
上架
'
}}
</el-button>
<
!--
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:product-price:delete']"
>
删除
</el-button>
-->
v-hasPermi=
"['ecw:product-price:update']"
>
编辑
</el-button>
<el-button
v-if=
"!$route.query.product_id"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateStatus(scope.row, 'blacklist')"
>
{{
scope
.
row
.
blacklist
==
0
?
'
加入黑名单
'
:
'
移除黑名单
'
}}
</el-button>
<el-button
v-if=
"!$route.query.product_id"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"updateStatus(scope.row, 'auditStatus')"
>
{{
scope
.
row
.
auditStatus
==
AuditStatusEnum
.
PASS
?
'
下架
'
:
'
上架
'
}}
</el-button>
<
el-button
v-if=
"!$route.query.product_id"
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:product-price:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -193,6 +201,7 @@ import { AuditStatusEnum} from '@/utils/constants'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
DictTag
from
'
@/components/DictTag
'
import
{
arrryToKeyedObjectBy
}
from
'
@/utils/index
'
import
{
getProduct
}
from
'
@/api/ecw/product
'
;
export
default
{
name
:
"
ProductPrice
"
,
components
:
{
...
...
@@ -273,7 +282,7 @@ export default {
lineList
:
[],
transportDatas
:
getDictDatas
(
DICT_TYPE
.
ECW_TRANSPORT_TYPE
),
advanceStatusDictDatas
:
getDictDatas
(
DICT_TYPE
.
ADVANCE_STATUS
),
/* advanceStatusDictDatas: getDictDatas(DICT_TYPE.ADVANCE_STATUS), */
AuditStatusEnum
:
AuditStatusEnum
,
locationList
:
getDictDatas
(
DICT_TYPE
.
ECW_CONTAINER_LOCATION
),
...
...
@@ -281,14 +290,24 @@ export default {
},
computed
:
{
// 商品名称
productTitle
(){
if
(
!
this
.
product
){
return
''
}
return
this
.
product
.
titleZh
},
// 渠道用id做键值
keyedChannel
(){
return
arrryToKeyedObjectBy
(
this
.
channelList
,
'
channelId
'
)
},
// 根据渠道id获取渠道名
channelName
(){
return
id
=>
{
return
this
.
keyedChannel
[
id
]
?
this
.
keyedChannel
[
id
].
nameZh
:
null
}
},
// 根据类型获取类型名称
getTypeName
()
{
return
typeId
=>
{
for
(
let
index
in
this
.
typeList
)
{
...
...
@@ -299,7 +318,7 @@ export default {
}
}
},
// 根据状态获取状态名称 ,这个应该可以改成字典,目前接口缺少相关数据,待定
statusName
()
{
return
row
=>
{
if
(
row
.
blacklist
)
return
'
黑名单
'
;
...
...
@@ -308,18 +327,13 @@ export default {
}
},
// 根据运输方式获取名称
transportName
()
{
return
transportType
=>
{
return
this
.
getDictDataLabel
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
,
transportType
)
/* for(let index in this.transportDatas) {
let transportItem = this.transportDatas[index];
if(transportItem.value == transportType) {
return transportItem.label;
}
} */
}
},
// 显示币种符号
getCurrencySymbol
()
{
return
currencyId
=>
{
for
(
let
index
in
this
.
currecyList
)
{
...
...
@@ -330,7 +344,7 @@ export default {
}
}
},
// 显示币种名称
getCurrencyTitle
()
{
return
currencyId
=>
{
for
(
let
index
in
this
.
currecyList
)
{
...
...
@@ -353,7 +367,7 @@ export default {
}
},
getAdvanceStatuTitle
()
{
/*
getAdvanceStatuTitle() {
return value => {
for(let index in this.advanceStatusDictDatas) {
let dictItem = this.advanceStatusDictDatas[index];
...
...
@@ -362,7 +376,7 @@ export default {
}
}
}
}
}
*/
},
activated
()
{
...
...
@@ -391,13 +405,22 @@ export default {
if
(
this
.
$route
.
query
.
product_type
){
this
.
$set
(
this
.
queryParams
,
'
typeId
'
,
+
this
.
$route
.
query
.
product_type
);
}
this
.
getTypeList
();
// 指定产品获取产品信息
if
(
this
.
$route
.
query
.
product_id
){
getProduct
(
this
.
$route
.
query
.
product_id
).
then
(
res
=>
{
this
.
product
=
res
.
data
})
}
else
{
// 不指定产品获取类型等信息
this
.
getTypeList
();
//获取城市列表
this
.
getAllCityList
();
this
.
getAttrList
();
}
this
.
getChannelList
()
this
.
getAttrList
();
//获取城市列表
this
.
getAllCityList
();
//获取货币列表
this
.
requestCurrencyList
();
//获取单位列表
...
...
src/views/system/needKnow/index.vue
0 → 100644
View file @
04e0d9f9
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"需知类型"
prop=
"knowType"
>
<el-select
v-model=
"queryParams.knowType"
placeholder=
"请选择需知类型"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.NEED_KNOW_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标题中文"
prop=
"titleZh"
>
<el-input
v-model=
"queryParams.titleZh"
placeholder=
"请输入标题中文"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"标题英文"
prop=
"titleEn"
>
<el-input
v-model=
"queryParams.titleEn"
placeholder=
"请输入标题英文"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.NEED_KNOW_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['system:need-know:create']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['system:need-know:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
""
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"需知类型"
align=
"center"
prop=
"knowType"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.NEED_KNOW_TYPE"
:value=
"scope.row.knowType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"标题中文"
align=
"center"
prop=
"titleZh"
/>
<el-table-column
label=
"标题英文"
align=
"center"
prop=
"titleEn"
/>
<el-table-column
label=
"内容中文"
align=
"center"
prop=
"contentZh"
/>
<el-table-column
label=
"内容英语"
align=
"center"
prop=
"contentEn"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.NEED_KNOW_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:need-know:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:need-know:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"700px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"需知类型"
prop=
"knowType"
>
<el-select
v-model=
"form.knowType"
placeholder=
"请选择需知类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.NEED_KNOW_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"标题中文"
prop=
"titleZh"
>
<el-input
v-model=
"form.titleZh"
placeholder=
"请输入标题中文"
/>
</el-form-item>
<el-form-item
label=
"标题英文"
prop=
"titleEn"
>
<el-input
v-model=
"form.titleEn"
placeholder=
"请输入标题英文"
/>
</el-form-item>
<el-form-item
label=
"内容中文"
prop=
"contentZh"
>
<editor
v-model=
"form.contentZh"
:min-height=
"192"
placeholder=
"请输入内容中文"
/>
</el-form-item>
<el-form-item
label=
"内容英语"
prop=
"contentEn"
>
<editor
v-model=
"form.contentEn"
:min-height=
"192"
placeholder=
"plese entry english"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in this.getDictDatas(DICT_TYPE.NEED_KNOW_STATUS)"
:key=
"dict.value"
:label=
"parseInt(dict.value)"
>
{{dict.label}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createNeedKnow
,
updateNeedKnow
,
deleteNeedKnow
,
getNeedKnow
,
getNeedKnowPage
,
exportNeedKnowExcel
}
from
"
@/api/system/needKnow
"
;
import
Editor
from
'
@/components/Editor
'
;
export
default
{
name
:
"
NeedKnow
"
,
components
:
{
Editor
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 需知列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
knowType
:
null
,
titleZh
:
null
,
titleEn
:
null
,
status
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getNeedKnowPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
knowType
:
undefined
,
titleZh
:
undefined
,
titleEn
:
undefined
,
contentZh
:
undefined
,
contentEn
:
undefined
,
status
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加需知
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getNeedKnow
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改需知
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateNeedKnow
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createNeedKnow
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除需知编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteNeedKnow
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有需知数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportNeedKnowExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
</
script
>
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