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
7621950a
Commit
7621950a
authored
Mar 07, 2023
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
cdbe51f4
2903c444
Changes
44
Hide whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
1491 additions
and
242 deletions
+1491
-242
.env.dev
.env.dev
+1
-1
.env.development
.env.development
+1
-1
.env.sit
.env.sit
+1
-1
coupon.js
src/api/ecw/coupon.js
+9
-0
customer.js
src/api/ecw/customer.js
+29
-0
deptTarget.js
src/api/ecw/deptTarget.js
+8
-0
offer.js
src/api/ecw/offer.js
+10
-1
order.js
src/api/ecw/order.js
+66
-0
user.js
src/api/system/user.js
+8
-1
index.vue
src/components/ChooseContactDialog/index.vue
+1
-0
index.js
src/router/index.js
+23
-10
dict.js
src/utils/dict.js
+1
-0
ruoyi.js
src/utils/ruoyi.js
+3
-3
modelEditor.vue
src/views/bpm/model/modelEditor.vue
+1
-1
detail.vue
src/views/bpm/processInstance/detail.vue
+1
-1
booking.vue
src/views/ecw/box/shippingSea/nodePage/booking.vue
+3
-3
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+29
-2
index.vue
src/views/ecw/cabinet/index.vue
+41
-6
edit.vue
src/views/ecw/coupon/edit.vue
+0
-2
index.vue
src/views/ecw/coupon/index.vue
+54
-3
index.vue
src/views/ecw/currency/index.vue
+7
-7
Delay.vue
src/views/ecw/customer/components/Delay.vue
+7
-3
edit.vue
src/views/ecw/customer/edit.vue
+42
-14
index.vue
src/views/ecw/customer/index.vue
+150
-113
indirectCustomer.vue
src/views/ecw/customer/indirectCustomer.vue
+8
-4
query.vue
src/views/ecw/customer/query.vue
+12
-6
index.vue
src/views/ecw/customerConfirm/index.vue
+11
-3
index.vue
src/views/ecw/customerToBeAssigned/index.vue
+8
-4
myAchievement.vue
src/views/ecw/deptTarget/myAchievement.vue
+1
-1
myDeptAchievement.vue
src/views/ecw/deptTarget/myDeptAchievement.vue
+462
-0
creatCollection.vue
src/views/ecw/financial/creatCollection.vue
+10
-1
index.vue
src/views/ecw/myCustomerService/index.vue
+7
-3
index.vue
src/views/ecw/oceanCustomer/index.vue
+4
-0
dept.vue
src/views/ecw/offer/dept.vue
+283
-0
index.vue
src/views/ecw/offer/index.vue
+18
-12
dept.vue
src/views/ecw/order/dept.vue
+10
-0
index.vue
src/views/ecw/order/index.vue
+111
-10
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+25
-16
index.vue
src/views/ecw/order/warehousing/index.vue
+3
-3
index.vue
src/views/member/user/index.vue
+11
-2
index.vue
src/views/system/dict/index.vue
+4
-1
index.vue
src/views/system/internalMessage/index.vue
+1
-1
index.vue
src/views/system/myInternalMessage/index.vue
+1
-1
index.vue
src/views/system/role/index.vue
+5
-1
No files found.
.env.dev
View file @
7621950a
...
...
@@ -5,7 +5,7 @@ NODE_ENV = 'production'
VUE_APP_TITLE = 捷道管理系统 - 测试版
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.
jd
.jdshangmen.com'
VUE_APP_BASE_API = 'https://api.
sit
.jdshangmen.com'
# VUE_APP_BASE_API = '/api'
# 路由懒加载
...
...
.env.development
View file @
7621950a
...
...
@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.
jd
.jdshangmen.com'
VUE_APP_BASE_API = 'https://api.
sit
.jdshangmen.com'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
...
...
.env.sit
View file @
7621950a
...
...
@@ -2,7 +2,7 @@
NODE_ENV = 'production'
# 页面标题
VUE_APP_TITLE = 捷道管理系统 -
测试
版
VUE_APP_TITLE = 捷道管理系统 -
开发
版
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
...
...
src/api/ecw/coupon.js
View file @
7621950a
...
...
@@ -69,4 +69,13 @@ export function getCustomerAvailableCouponList(data){
method
:
'
post
'
,
data
})
}
// 更新优惠券有效期
export
function
updateEndtime
(
data
){
return
request
({
url
:
'
/product/coupon/update/endTime
'
,
method
:
'
put
'
,
data
})
}
\ No newline at end of file
src/api/ecw/customer.js
View file @
7621950a
...
...
@@ -51,6 +51,16 @@ export function getCustomerPage(query) {
params
:
query
})
}
/**
* 获得部门客户
* */
export
function
getCustomerDeptPage
(
query
){
return
request
({
url
:
'
/ecw/customer/deptPage
'
,
method
:
'
get
'
,
params
:
query
})
}
// 获得客户下拉
export
function
getCustomerSelect
(
query
)
{
...
...
@@ -350,3 +360,22 @@ export function testEnterToOpenSea(customerId) {
params
:
{
customerId
}
})
}
/**
* 获取常用提货网点
* */
export
function
getServiceNetwork
(){
return
request
({
url
:
'
/ecw/node/list
'
,
method
:
'
get
'
,
})
}
//设置空运客户
export
function
changeCustomerAir
(
data
){
return
request
({
url
:
'
/ecw/customer/change-customer-air
'
,
method
:
'
put
'
,
data
})
}
src/api/ecw/deptTarget.js
View file @
7621950a
...
...
@@ -10,6 +10,14 @@ export function createDeptTarget(data) {
}
// 我的业绩
export
function
myDeptAchievementByPage
(
data
)
{
return
request
({
url
:
'
/sale/dept-target/myDeptAchievementByPage
'
,
method
:
'
post
'
,
data
:
data
})
}
// 我的部门业绩
export
function
myAchievementByPage
(
data
)
{
return
request
({
url
:
'
/sale/dept-target/myAchievementByPage
'
,
...
...
src/api/ecw/offer.js
View file @
7621950a
...
...
@@ -123,4 +123,13 @@ export function recovery(id) {
method
:
'
delete
'
,
params
:
{
id
}
})
}
\ No newline at end of file
}
// 获取部门报价单列表
export
function
offerDeptPage
(
params
)
{
return
request
({
url
:
'
/ecw/offer/dept/page
'
,
method
:
'
get
'
,
params
})
}
src/api/ecw/order.js
View file @
7621950a
...
...
@@ -505,3 +505,69 @@ export function warehousePictureList(data){
data
})
}
// 获得部门订单分页
export
function
deptOrderPage
(
params
){
return
request
({
url
:
'
/ecw/order/dept-order-page
'
,
method
:
'
GET
'
,
params
})
}
// 获得订单统计
export
function
orderStatistics
(
params
){
return
request
({
url
:
'
/ecw/order/statistics
'
,
method
:
'
GET
'
,
params
})
}
// 获得我的订单统计
export
function
orderMyStatistics
(
params
){
return
request
({
url
:
'
/ecw/order/my/statistics
'
,
method
:
'
GET
'
,
params
})
}
// 获得部门订单统计
export
function
orderDeptStatistics
(
params
){
return
request
({
url
:
'
/ecw/order/dept/statistics
'
,
method
:
'
GET
'
,
params
})
}
// 参数搜索导出订单管理 Excel
export
function
orderExportSearch
(
params
){
return
request
({
url
:
'
/ecw/order/export/search
'
,
method
:
'
GET
'
,
responseType
:
'
arraybuffer
'
,
params
})
}
// 参数搜索导出我的订单管理 Excel
export
function
orderExportMySearch
(
params
){
return
request
({
url
:
'
/ecw/order/export/my/search
'
,
responseType
:
'
arraybuffer
'
,
method
:
'
GET
'
,
params
})
}
// 参数搜索导出部门订单管理 Excel
export
function
orderExportDeptSearch
(
params
){
return
request
({
url
:
'
/ecw/order/export/dept/search
'
,
method
:
'
GET
'
,
responseType
:
'
arraybuffer
'
,
params
})
}
\ No newline at end of file
src/api/system/user.js
View file @
7621950a
...
...
@@ -27,13 +27,20 @@ export function listSimpleUsers() {
}
// 获取
用户
精简信息列表
// 获取
客服岗位
精简信息列表
export
function
listServiceUser
()
{
return
request
({
url
:
'
/system/user/list-service-user
'
,
method
:
'
get
'
})
}
// 获取用户精简信息列表
export
function
listAllSimpl
(){
return
request
({
url
:
'
/system/user/list-all-simple
'
,
method
:
'
get
'
,
})
}
// 查询用户详细
export
function
getUser
(
userId
)
{
...
...
src/components/ChooseContactDialog/index.vue
View file @
7621950a
...
...
@@ -11,6 +11,7 @@
<div
class=
"line"
>
<div
class=
"label"
>
{{
$t
(
'
姓名
'
)
}}
:
</div>
<div
class=
"value"
>
{{
item
.
contactsName
}}
</div>
<el-tag
v-if=
"item.isInOpenSea"
type=
"danger"
effect=
"dark"
>
{{
$t
(
'
公
'
)
}}
</el-tag>
</div>
<div
class=
"line"
>
<div
class=
"label"
>
{{
$t
(
'
电话
'
)
}}
:
</div>
...
...
src/router/index.js
View file @
7621950a
...
...
@@ -172,7 +172,13 @@ export const constantRoutes = [
component
:
(
resolve
)
=>
require
([
'
@/views/ecw/deptTarget/empAchievement
'
],
resolve
),
name
:
'
员工业绩
'
,
meta
:
{
title
:
'
员工业绩
'
,
activeMenu
:
'
/deptTarget/index
'
}
}
},
{
path
:
'
myDeptAchievement
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/ecw/deptTarget/myDeptAchievement
'
],
resolve
),
name
:
'
我的部门业绩
'
,
meta
:
{
title
:
'
我的部门业绩
'
,
activeMenu
:
'
/deptTarget/myDeptAchievement
'
}
}
]
},
{
...
...
@@ -258,11 +264,18 @@ export const constantRoutes = [
meta
:
{
title
:
'
佣金设置
'
,
titleEn
:
'
Commission settings
'
,
icon
:
''
,
activeMenu
:
'
/customer/customerCommissionInfo
'
},
props
:
true
,
},
// {
// path: 'edit/:customerId(\\d+)',
// component: (resolve) => import('@/views/ecw/customer/edit'),
// props: true,
// name: 'customerEdit',
// meta: {title:'编辑客户',titleEn:'Edit Customer', icon: ''}
// },
{
path
:
'
edit/:customerId(
\\
d+)
'
,
path
:
'
edit
-distribution
/:customerId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/customer/edit
'
),
props
:
true
,
name
:
'
c
ustomerEdit
'
,
name
:
'
allocatedC
ustomerEdit
'
,
meta
:
{
title
:
'
编辑客户
'
,
titleEn
:
'
Edit Customer
'
,
icon
:
''
}
},
{
...
...
@@ -278,13 +291,13 @@ export const constantRoutes = [
name
:
'
perfect
'
,
meta
:
{
title
:
'
完善客户
'
,
titleEn
:
'
Perfect customers
'
,
icon
:
''
}
},
{
path
:
'
query/:customerId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/customer/query
'
),
props
:
true
,
name
:
'
customerQuery
'
,
meta
:
{
title
:
'
客户详情
'
,
titleEn
:
'
Customer details
'
,
icon
:
''
,
activeMenu
:
'
/customer/customer
'
}
}
//
{
//
path: 'query/:customerId(\\d+)',
//
component: (resolve) => import('@/views/ecw/customer/query'),
//
props: true,
//
name: 'customerQuery',
//
meta: {title: '客户详情',titleEn:'Customer details', icon: '', activeMenu: '/customer/customer'}
//
}
]
},
{
...
...
src/utils/dict.js
View file @
7621950a
...
...
@@ -117,6 +117,7 @@ export const DICT_TYPE = {
ECW_CANCEL_PICK_TYPE
:
'
cancel_pick_type
'
,
// 取消放货类型
ECW_CUSTOMER_RESOURCE_TYPE
:
'
customer_resource_type
'
,
// 客户资源类型
ECW_CUSTOMER_TRANSPORT_TYPE
:
'
customer_transport_type
'
,
// 客户出货渠道(跟运输方式相同,但是显示全部)
ECW_ORDER_APPROVAL_TYPE
:
'
order_approval_type
'
,
// 订单相关审批类型
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
src/utils/ruoyi.js
View file @
7621950a
...
...
@@ -84,7 +84,7 @@ export function addDateRange(params, dateRange, propName) {
* 大小为 2 的数组,每个时间为 yyyy-MM-dd 格式
* @param propName 加入的参数名,可以为空
*/
export
function
addBeginAndEndTime
(
params
,
dateRange
,
propName
)
{
export
function
addBeginAndEndTime
(
params
,
dateRange
,
propName
,
isTime
=
true
)
{
// 必须传入参数
if
(
!
dateRange
)
{
return
params
;
...
...
@@ -97,10 +97,10 @@ export function addBeginAndEndTime(params, dateRange, propName) {
}
// 设置参数
if
(
dateRange
[
0
])
{
params
[
'
begin
'
+
propName
]
=
dateRange
[
0
]
+
'
00:00:00
'
;
params
[
'
begin
'
+
propName
]
=
dateRange
[
0
]
+
(
isTime
?
'
00:00:00
'
:
''
)
;
}
if
(
dateRange
[
1
])
{
params
[
'
end
'
+
propName
]
=
dateRange
[
1
]
+
'
23:59:59
'
;
params
[
'
end
'
+
propName
]
=
dateRange
[
1
]
+
(
isTime
?
'
23:59:59
'
:
''
)
;
}
return
params
;
}
...
...
src/views/bpm/model/modelEditor.vue
View file @
7621950a
...
...
@@ -96,7 +96,7 @@ export default {
},
/** 关闭按钮 */
close
()
{
this
.
$tab
.
closeOpenPage
({
path
:
"
/
bpm/
manager/model
"
});
this
.
$tab
.
closeOpenPage
({
path
:
"
/manager/model
"
});
},
}
};
...
...
src/views/bpm/processInstance/detail.vue
View file @
7621950a
...
...
@@ -340,7 +340,7 @@ export default {
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
},
}
console
.
log
(
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
())
console
.
log
(
'
formCustomViewPath
'
,
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
())
return
map
[
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
()]
}
},
...
...
src/views/ecw/box/shippingSea/nodePage/booking.vue
View file @
7621950a
...
...
@@ -38,7 +38,7 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('
预计提单
补料时间')"
>
<el-form-item
:label=
"$t('
截
补料时间')"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
v-model=
"bookingObj.ladingBillTime"
></el-date-picker>
</el-form-item>
</el-col>
...
...
@@ -51,7 +51,7 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('
预计报关
时间')"
>
<el-form-item
:label=
"$t('
VGM提交
时间')"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
v-model=
"bookingObj.customsTime"
></el-date-picker>
</el-form-item>
</el-col>
...
...
@@ -64,7 +64,7 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('
预计
截关时间')"
>
<el-form-item
:label=
"$t('截关时间')"
>
<el-date-picker
type=
"datetime"
:placeholder=
"$t('请选择日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
v-model=
"bookingObj.cutOffTime"
></el-date-picker>
</el-form-item>
</el-col>
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
7621950a
...
...
@@ -229,6 +229,7 @@
<
p
>
{{
$t
(
'
外部仓
'
)
}}
<
/p
>
<
/div
>
<
div
class
=
"
table-button
"
>
<
el
-
button
v
-
if
=
"
item.relateOrderList
"
type
=
"
primary
"
size
=
"
small
"
style
=
"
margin-right: 20px;
"
@
click
=
"
getRelationOrder(item)
"
>
{{
$t
(
'
关联订单
'
)
}}
<
/el-button
>
<
el
-
dropdown
trigger
=
"
click
"
@
command
=
"
(command)=>handleGoods('all',item,command)
"
>
<
el
-
button
type
=
"
success
"
size
=
"
small
"
:
disabled
=
"
isAudit
"
>
{{
$t
(
'
预装全部
'
)
}}
<
/el-button
>
<
el
-
dropdown
-
menu
slot
=
"
dropdown
"
v
-
if
=
"
preList.sectionGoodList
"
>
...
...
@@ -316,6 +317,15 @@
<
el
-
button
type
=
"
primary
"
@
click
=
"
onSubmit
"
>
{{
$t
(
'
提交申请
'
)
}}
<
/el-button
>
<
/div
>
<
/el-row
>
<!--
关联订单弹窗
-->
<
el
-
dialog
:
title
=
"
relationOrderListDialog.title
"
:
visible
.
sync
=
"
relationOrderListDialog.visible
"
width
=
"
30%
"
append
-
to
-
body
>
<
el
-
row
v
-
for
=
"
(item,index) in relationOrderListDialog.data
"
:
key
=
"
item.id
"
>
{{
index
+
1
}}
.
{{
item
.
orderNo
}}
<
/el-row
>
<
el
-
row
style
=
"
margin-top: 10px;text-align: center;
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
relationOrderListDialog.visible = false
"
>
{{
$t
(
'
关闭窗口
'
)
}}
<
/el-button
>
<
/el-row
>
<
/el-dialog
>
<
/div
>
<
/template
>
...
...
@@ -406,6 +416,13 @@ export default {
selectedUsers
:
[],
// 智慧预装
smartInstall
:
1
,
//关联订单
relationOrderListDialog
:
{
title
:
''
,
visible
:
false
,
data
:
[]
}
,
}
;
}
,
computed
:
{
...
...
@@ -491,8 +508,19 @@ export default {
this
.
total
=
data
.
dataList
?.
total
??
0
;
this
.
unloadStatistics
=
data
.
unloadStatistics
??
{
}
;
this
.
toBePreLoading
=
false
;
if
(
this
.
toBePreList
.
length
==
0
&&
this
.
total
!=
0
){
--
this
.
pageParam
.
pageNo
this
.
getPreLoad
()
}
}
);
}
,
/**查看关联订单 */
getRelationOrder
(
item
)
{
console
.
log
(
item
)
this
.
relationOrderListDialog
.
title
=
item
.
orderNo
+
'
关联订单
'
this
.
relationOrderListDialog
.
visible
=
true
this
.
relationOrderListDialog
.
data
=
item
.
relateOrderList
}
,
/** 搜索按钮操作 */
handleQuery
(
type
)
{
this
.
pageParam
.
pageNo
=
1
;
...
...
@@ -602,7 +630,7 @@ export default {
.
then
((
_
)
=>
{
deleteSection
(
part
.
id
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getSecGoods
();
this
.
queryAllData
();
}
);
}
);
}
)
...
...
@@ -695,7 +723,6 @@ export default {
}
,
/* 查询所有数据 */
queryAllData
()
{
this
.
pageParam
.
pageNo
=
1
;
this
.
getSecGoods
();
this
.
getPreLoad
();
}
,
...
...
src/views/ecw/cabinet/index.vue
View file @
7621950a
...
...
@@ -50,6 +50,13 @@
{{
scope
.
row
.
weight
}}
Kg
</
template
>
</el-table-column>
<el-table-column
label=
"提单补料(CBM)"
align=
"center"
prop=
"ladingBill"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
ladingBill
}}
CBM
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('是否启用')"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
...
...
@@ -75,16 +82,20 @@
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"
8
0px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"
12
0px"
>
<el-form-item
:label=
"$t('柜型名称')"
prop=
"name"
>
<el-input
v-model=
"form.name"
:placeholder=
"$t('请输入柜型名称')"
/>
</el-form-item>
<el-form-item
label=
"体积(m³)"
prop=
"volume"
>
<el-input
v-model
=
"form.volume"
:placeholder=
"$t('请输入体积')"
/>
<el-input
v-model
.trim=
"form.volume"
@
input=
"limitInput($event,'volume')"
:placeholder=
"$t('请输入体积')"
/>
</el-form-item>
<el-form-item
label=
"重量(Kg)"
prop=
"weight"
>
<el-input
v-model=
"form.weight"
:placeholder=
"$t('请输入重量')"
/>
<el-input
v-model.trim=
"form.weight"
@
input=
"limitInput($event,'weight')"
:placeholder=
"$t('请输入重量')"
/>
</el-form-item>
<el-form-item
label=
"提单补料(CBM)"
prop=
"ladingBill"
>
<el-input
v-model.trim=
"form.ladingBill"
@
input=
"limitInput($event,'ladingBill')"
:placeholder=
"$t('请输入提单补料')"
/>
</el-form-item>
<el-form-item
:label=
"$t('是否启用')"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
...
...
@@ -135,7 +146,11 @@ export default {
status
:
null
,
},
// 表单参数
form
:
{},
form
:
{
volume
:
0
,
weight
:
0
,
ladingBill
:
0
},
// 表单校验
rules
:
{
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
柜型名称不能为空
"
),
trigger
:
"
blur
"
}],
...
...
@@ -171,8 +186,9 @@ export default {
this
.
form
=
{
id
:
undefined
,
name
:
undefined
,
volume
:
undefined
,
weight
:
undefined
,
volume
:
0
,
weight
:
0
,
ladingBill
:
0
,
status
:
undefined
,
sort
:
undefined
,
};
...
...
@@ -253,6 +269,25 @@ export default {
this
.
$download
.
excel
(
response
,
'
机柜配置.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
},
limitInput
(
value
,
name
)
{
let
val
=
(
value
&&
value
.
split
(
""
))
||
[];
let
reg1
=
/
\d
/
;
let
reg2
=
/
\.
/
;
// 第一个字符不能为小数点
if
(
val
[
0
]
==
"
.
"
)
{
this
.
form
[
name
]
=
""
;
return
;
}
// 过滤掉除数字和小数点外的字符
val
=
val
.
filter
((
e
)
=>
reg1
.
test
(
e
)
||
reg2
.
test
(
e
));
// 匹配小数点后只能有两位小数
// 解释一下这个match正则规格
// ^\d* 是指以数字开头,后面允许输入0到多位数字
// (\.?) 是指只允许一个小数点
// \d{0,2} 是指只允许0到2位小数
this
.
form
[
name
]
=
val
.
join
(
""
).
match
(
/^
\d
*
(\.?\d{0,2})
/g
)[
0
]
||
null
;
}
}
};
...
...
src/views/ecw/coupon/edit.vue
View file @
7621950a
...
...
@@ -494,9 +494,7 @@ export default {
// 对没有默认值的给一个空表单
[
1
,
2
].
forEach
(
type
=>
{
console
.
log
(
`fee
${
type
}
判断是否为空`
,
this
.
fee
[
type
],
this
.
fee
[
type
].
length
)
if
(
!
this
.
fee
[
type
].
length
){
console
.
log
(
`fee
${
type
}
给默认值`
,
this
.
fee
[
type
],
this
.
fee
[
type
].
length
)
this
.
fee
[
type
]
=
[{
type
}]
}
})
...
...
src/views/ecw/coupon/index.vue
View file @
7621950a
...
...
@@ -159,7 +159,7 @@
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('结束时间')
"
align
=
"
center
"
prop
=
"
endTime
"
width
=
"
180
"
>
<
template
slot
-
scope
=
"
{row
}
"
>
<
div
:
style
=
"
{red: row.overdueStatus ==0 ? 'red' : null
}
"
>
{{
parseTime
(
row
.
endTime
,
'
{y
}
-{m
}
-{d
}
'
)
}}
<
/div
>
<
div
:
style
=
"
{red: row.overdueStatus ==
0 ? 'red' : null
}
"
>
{{
parseTime
(
row
.
endTime
,
'
{y
}
-{m
}
-{d
}
'
)
}}
<
/div
>
<
div
v
-
if
=
"
row.overdueStatus == 0
"
style
=
"
color: red
"
>
{{
$t
(
'
已过期
'
)
}}
<
/div
>
<
/template
>
<
/el-table-column
>
...
...
@@ -188,6 +188,8 @@
v
-
hasPermi
=
"
['ecw:coupon:update']
"
>
{{
$t
(
'
编辑
'
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
@
click
=
"
handleCopy(scope.row)
"
v
-
hasPermi
=
"
['ecw:coupon:create']
"
>
{{
$t
(
'
复制
'
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
@
click
=
"
updateEndtimeItem = scope.row
"
v
-
if
=
"
scope.row.endTime && scope.row.status
"
v
-
hasPermi
=
"
['ecw:coupon:update']
"
>
{{
$t
(
'
延期
'
)
}}
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-delete
"
@
click
=
"
handleDelete(scope.row)
"
v
-
hasPermi
=
"
['ecw:coupon:delete']
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-button
>
<
/template
>
...
...
@@ -196,12 +198,32 @@
<!--
分页组件
-->
<
pagination
v
-
show
=
"
total > 0
"
:
total
=
"
total
"
:
page
.
sync
=
"
queryParams.pageNo
"
:
limit
.
sync
=
"
queryParams.pageSize
"
@
pagination
=
"
getList
"
/>
<
el
-
dialog
:
title
=
"
$t('延期活动时间')
"
:
visible
=
"
!!updateEndtimeItem
"
:
before
-
close
=
"
() => updateEndtimeItem=null
"
>
<
div
v
-
if
=
"
updateEndtimeItem
"
>
{{
$t
(
'
优惠活动“{name
}
”的当前结束时间:{time
}
'
,{
name
:
$l
(
updateEndtimeItem
,
'
title
'
),
time
:
updateEndtimeItem
.
endTime
||
$t
(
'
永久有效
'
)
}
)
}}
<
/div
>
<
div
>
{{
$t
(
'
请问您确定延长活动吗?
'
)
}}
<
/div
>
<
el
-
form
:
model
=
"
updateEndtimeForm
"
:
rules
=
"
updateEndtimeRules
"
label
-
position
=
"
left
"
>
<
el
-
form
-
item
:
label
=
"
$t('活动结束时间')
"
prop
=
"
endTime
"
>
<
el
-
date
-
picker
v
-
if
=
"
!updateEndtimeForm.forever
"
type
=
"
datetime
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
v
-
model
=
"
updateEndtimeForm.endTime
"
placeholder
=
""
><
/el-date-picker
>
<
el
-
checkbox
:
label
=
"
$t('永久有效')
"
v
-
model
=
"
updateEndtimeForm.forever
"
class
=
"
ml-10
"
><
/el-checkbox
>
<
/el-form-item
>
<
/el-form
>
<
div
slot
=
"
footer
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
updateEndtime
"
>
{{
$t
(
'
确定
'
)
}}
<
/el-button
>
<
el
-
button
type
=
"
default
"
@
click
=
"
updateEndtimeItem = null
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-button
>
<
/div
>
<
/el-dialog
>
<
/div
>
<
/template
>
<
script
>
import
{
createCoupon
,
updateCoupon
,
deleteCoupon
,
getCoupon
,
getCouponPage
,
exportCouponExcel
}
from
"
@/api/ecw/coupon
"
;
import
{
createCoupon
,
updateCoupon
,
deleteCoupon
,
getCoupon
,
getCouponPage
,
exportCouponExcel
,
updateEndtime
}
from
"
@/api/ecw/coupon
"
;
export
default
{
name
:
"
EcwCouponIndex
"
,
...
...
@@ -260,9 +282,25 @@ export default {
form
:
{
}
,
// 表单校验
rules
:
{
}
}
,
updateEndtimeItem
:
null
,
// 延期操作的数据
updateEndtimeForm
:{
}
// 延长有效期的表单数据
}
;
}
,
computed
:{
updateEndtimeRules
(){
return
{
endTime
:
[
{
required
:
!
this
.
updateEndtimeForm
.
forever
,
message
:
"
请填写结束时间
"
}
]
}
}
}
,
watch
:{
updateEndtimeItem
(){
this
.
updateEndtimeForm
=
{
}
}
}
,
created
()
{
this
.
getList
();
}
,
...
...
@@ -331,6 +369,19 @@ export default {
this
.
$message
.
success
(
this
.
$t
(
"
删除成功
"
));
}
).
catch
(()
=>
{
}
);
}
,
// 延期
updateEndtime
(){
if
(
!
this
.
updateEndtimeForm
.
forever
&&
!
this
.
updateEndtimeForm
.
endTime
){
return
this
.
$message
.
error
(
this
.
$t
(
"
请填写结束时间
"
))
}
let
form
=
{
couponId
:
this
.
updateEndtimeItem
.
couponId
,
...
this
.
updateEndtimeForm
}
form
.
isValidity
=
!
form
.
forever
// 是否设置有效期
updateEndtime
(
form
).
then
(
res
=>
{
this
.
getList
()
this
.
updateEndtimeItem
=
null
this
.
$message
.
success
(
this
.
$t
(
'
操作成功
'
))
}
)
}
,
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
...
...
src/views/ecw/currency/index.vue
View file @
7621950a
...
...
@@ -60,11 +60,7 @@
</
template
>
</el-table-column>
<el-table-column
label=
"100外币兑人民币汇率"
align=
"center"
prop=
"huilv"
/>
<el-table-column
label=
"100人民币兑外币汇率"
align=
"center"
prop=
"huilv"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
huilv
?
(
10000
/
scope
.
row
.
huilv
).
toFixed
(
6
)
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"100人民币兑外币汇率"
align=
"center"
prop=
"exchangeToFc"
/>
<el-table-column
:label=
"$t('排序')"
align=
"center"
prop=
"aorder"
/>
<!-- <el-table-column label="" align="center" prop="createAt" width="180">-->
<!-- <template slot-scope="scope">-->
...
...
@@ -107,9 +103,13 @@
<el-form-item
label=
"100外币兑人民币汇率"
prop=
"huilv"
>
<el-input
v-model=
"form.huilv"
placeholder=
"请输入100外币兑人民币汇率汇率"
/>
</el-form-item>
<el-form-item
label=
"100人民币兑外币汇率"
prop=
"huilv"
>
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}}
<el-form-item
label=
"100人民币兑外币汇率"
prop=
"exchangeToFc"
>
<el-input
v-model=
"form.exchangeToFc"
placeholder=
"请输入100人民币兑外币汇率"
/>
</el-form-item>
<!-- <el-form-item label="100人民币兑外币汇率" prop="huilv">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}}
</el-form-item> -->
<el-form-item
:label=
"$t('排序')"
prop=
"aorder"
>
<el-input
v-model=
"form.aorder"
:placeholder=
"$t('请输入排序')"
/>
</el-form-item>
...
...
src/views/ecw/customer/components/Delay.vue
View file @
7621950a
<
template
>
<div>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
:label=
"$t('客户编号')"
>
{{
detail
.
customer
Id
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户编号')"
>
{{
detail
.
customer
Number
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户名称')"
>
{{
detail
.
customerName
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('跟进客服')"
>
{{
detail
.
followUpSalesmanName
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('创建时间')"
>
{{
detail
.
createTime
|
parseTime
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('创建时间')"
>
{{
parseTime
(
detail
.
customerCreateTime
)
}}
</el-descriptions-item>
<el-descriptions-item
:span=
"2"
:label=
"$t('客户原计划掉入公海池时间')"
>
{{
parseTime
(
detail
.
orgEstimateEnterOpenSeaTime
)
}}
</el-descriptions-item>
<el-descriptions-item
:span=
"2"
:label=
"$t('申请延期后时间')"
>
{{
parseTime
(
detail
.
estimateEnterOpenSeaTime
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('申请凭证')"
:span=
"4"
>
<el-image
v-for=
"(item, index) in pictures"
:key=
"index"
:src=
"item"
style=
"width:100px; height:100px"
:preview-src-list=
"pictures"
></el-image>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('申请原因')"
:span=
"4"
>
{{
detail
.
reason
}}
</el-descriptions-item>
</el-descriptions>
</div>
...
...
@@ -16,7 +20,6 @@
import
{
getApproval
}
from
'
@/api/ecw/customer
'
;
import
{
parseTime
}
from
'
@/utils/ruoyi
'
export
default
{
filters
:
{
parseTime
},
props
:{
id
:
[
String
,
Number
]
},
...
...
@@ -36,6 +39,7 @@ export default {
}
},
created
(){
parseTime
,
getApproval
(
this
.
id
).
then
(
res
=>
{
this
.
info
=
res
.
data
})
...
...
src/views/ecw/customer/edit.vue
View file @
7621950a
...
...
@@ -33,7 +33,10 @@
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE"
form-type=
"checkbox"
multiple
v-model=
"form.transportType"
></dict-selector>
<!--
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE"
form-type=
"checkbox"
multiple
v-model=
"form.transportType"
></dict-selector>
-->
<el-checkbox-group
v-model=
"form.transportType"
>
<el-checkbox
v-for=
"item in getDictDatas(DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE)"
:key=
"item.value"
:label=
"item.value"
:disabled=
"item.value == 4"
>
{{
item
.
label
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
...
...
@@ -42,8 +45,13 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('资源类型')"
prop=
"remarks"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"form.resourceType"
formatter=
"number"
></dict-selector>
<!--
<el-form-item
:label=
"$t('资源类型')"
prop=
"remarks"
>
-->
<!--
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"form.resourceType"
formatter=
"number"
></dict-selector>
-->
<!--
</el-form-item>
-->
<el-form-item
:label=
"$t('常用提货网点')"
prop=
"remarks"
>
<el-select
v-model=
"form.pickupPoint"
>
<el-option
v-for=
"item in serviceNetworkList "
:value=
"item.id"
:label=
"isChinese ? item.titleZh : item.titleEn "
></el-option>
</el-select>
</el-form-item>
</el-col>
...
...
@@ -106,8 +114,8 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
:disabled=
"(
customerId !== '0' || isCustomerServiceConfirmed)
"
>
<el-option
v-for=
"item in
serviceUser
List"
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
:disabled=
"(
(customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed
"
>
<el-option
v-for=
"item in
!(((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed) ? serviceUserList : allSimpl
List"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
/>
</el-select>
</el-form-item>
...
...
@@ -142,7 +150,7 @@
<el-form-item
:label=
"$t('创建人')"
prop=
"founder"
>
<el-select
v-model=
"form.founder"
disabled
>
<el-option
v-for=
"item in
serviceUser
List"
v-for=
"item in
allSimpl
List"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
...
...
@@ -205,6 +213,14 @@
<customer-line-table
v-if=
"showPao1"
:warehouse-list=
"warehouseList"
:import-city-list=
"importCityList"
v-model=
"paoLines"
:zhong-pao-type=
"2"
></customer-line-table>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-hasPermi=
"['ecw:customer:edit-card']"
:label=
"$t('身份证姓名')"
>
<el-input
v-model=
"form.carName"
></el-input>
</el-form-item>
<el-form-item
v-hasPermi=
"['ecw:customer:edit-card']"
:label=
"$t('身份证号码')"
>
<el-input
v-model=
"form.carNo"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-card
class=
"box-card"
>
...
...
@@ -417,7 +433,7 @@ import {
getCustomerPage
,
memberUserList
,
updateCustomer
,
userMemberUserList
,
getCustomerLines
,
fillupCustomeInfo
getCustomerLines
,
fillupCustomeInfo
,
getServiceNetwork
}
from
'
@/api/ecw/customer
'
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
...
...
@@ -426,7 +442,7 @@ import {getTradeCityList} from "@/api/ecw/region"
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
CustomerLineTable
from
'
@/components/CustomerLineTable
'
import
{
getCustomerSelect
}
from
"
@/api/ecw/customer
"
import
{
listServiceUser
,
listSimpleUsers
}
from
"
@/api/system/user
"
import
{
list
AllSimpl
,
list
ServiceUser
,
listSimpleUsers
}
from
"
@/api/system/user
"
import
{
getZhongPaoBest
,
getZhongPaoPage
}
from
'
@/api/ecw/zhongPao
'
import
{
getCustomerContactsListByCustomer
}
from
'
@/api/ecw/customerContacts
'
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
...
...
@@ -437,9 +453,7 @@ import MemberSelector from '@/components/MemberSelector'
export
default
{
name
:
"
edit
"
,
props
:
{
customerId
:
String
,
},
components
:
{
Template
,
upload
,
...
...
@@ -514,9 +528,16 @@ export default {
listServiceUser
().
then
(
r
=>
{
this
.
serviceUserList
=
r
.
data
})
listAllSimpl
().
then
(
r
=>
{
this
.
allSimplList
=
r
.
data
})
getCountryListAll
().
then
(
r
=>
{
this
.
countryList
=
r
.
data
})
// 获取服务网点
getServiceNetwork
().
then
(
r
=>
{
this
.
serviceNetworkList
=
r
.
data
})
},
data
(){
return
{
...
...
@@ -566,7 +587,9 @@ export default {
zhongLines
:
[],
// 重货线路
paoLines
:
[],
// 泡货线路
memberList
:[],
//会员列表
selectMemberList
:[]
//选中会员列表
selectMemberList
:[],
//选中会员列表
serviceNetworkList
:[],
//网点列表
allSimplList
:[]
}
},
...
...
@@ -751,13 +774,15 @@ export default {
weightUnit
:
undefined
,
createTime
:
undefined
,
isShowTidanPrice
:
true
,
carName
:
undefined
,
carNo
:
undefined
,
};
this
.
form
.
createTime
=
(
new
Date
()).
getTime
()
this
.
resetForm
(
"
form
"
);
},
getCustomer
(
id
)
{
return
getCustomer
(
id
).
then
(
response
=>
{
this
.
form
=
{
...
this
.
form
,
...
response
.
data
,
id
:
this
.
customerId
};
this
.
form
=
{
...
this
.
form
,
...
response
.
data
,
id
:
this
.
customerId
,
transportType
:
response
.
data
.
transportType
.
split
(
'
,
'
)
};
this
.
open
=
true
;
this
.
title
=
this
.
$t
(
'
修改客户
'
);
this
.
getZhongPao
()
...
...
@@ -776,7 +801,7 @@ export default {
handleAddContact
()
{
this
.
form
.
customerContacts
.
push
({
"
areaCode
"
:
""
,
// "customerId": 0,
// "customerId": 0,
q
"
department
"
:
""
,
"
email
"
:
""
,
"
isDefault
"
:
this
.
form
.
customerContacts
.
length
===
0
?
1
:
0
,
...
...
@@ -817,6 +842,9 @@ export default {
userId
(){
return
this
.
$store
.
state
.
user
.
id
},
customerId
(){
return
this
.
$route
.
params
.
customerId
;
},
/* userMemberUser(){
let list = this.memberList.filter(item => {
return this.selectMemberList.findIndex(i => i.id === item.id) < 0
...
...
src/views/ecw/customer/index.vue
View file @
7621950a
...
...
@@ -46,13 +46,18 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
<el-date-picker
type=
"datetimerange"
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd HH:mm:ss"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"queryParams.creditLevel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
...
...
@@ -74,6 +79,14 @@
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:export']"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(true)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:transport']"
>
{{
$t
(
'
设为空运客户
'
)
}}
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"!selectCustomerList.length"
@
click=
"setChangeCustomerAir(false)"
v-if=
"$route.path === '/customer/customer'"
type=
"primary"
plain
size=
"mini"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:customer:transport']"
>
{{
$t
(
'
设为非空运客户
'
)
}}
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -308,8 +321,8 @@
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"重货标准(CBM
)"
prop=
"weightUnit"
>
<el-input
v-model=
"form.weightUnit"
placeholder=
"请输入重货标准(CBM
)"
/>
<el-form-item
:label=
"$t('重货标准(CBM)'
)"
prop=
"weightUnit"
>
<el-input
v-model=
"form.weightUnit"
:placeholder=
"$t('请输入重货标准(CBM)'
)"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
...
...
@@ -504,7 +517,7 @@
<
script
>
import
{
createCustomer
,
updateCustomer
,
deleteCustomer
,
getCustomer
,
getCustomerPage
,
exportCustomerExcel
,
testEnterToOpenSea
getCustomerPage
,
exportCustomerExcel
,
testEnterToOpenSea
,
getCustomerDeptPage
,
changeCustomerAir
}
from
"
@/api/ecw/customer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
...
...
@@ -522,19 +535,6 @@ import Template from "@/views/cms/template/index.vue";
export
default
{
name
:
"
EcwCustomerIndex
"
,
activated
(){
this
.
getList
();
},
computed
:{
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
},
channel
(){
return
(
val
)
=>
{
return
!!
val
?
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOMER_TRANSPORT_TYPE
).
filter
(
i
=>
(
val
.
split
(
'
,
'
)
||
[]).
includes
(
i
.
value
)).
map
(
i
=>
this
.
isChinese
?
i
.
label
:
i
.
labelEn
).
join
(
'
,
'
)
:
''
}
}
},
components
:
{
Template
,
upload
,
...
...
@@ -575,6 +575,7 @@ export default {
department
:
null
,
creditLevel
:
null
,
country
:
null
,
marketType
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -601,6 +602,24 @@ export default {
transferShow
:
false
};
},
computed
:{
channel
(){
return
(
val
)
=>
{
return
!!
val
?
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOMER_TRANSPORT_TYPE
).
filter
(
i
=>
(
val
.
split
(
'
,
'
)
||
[]).
includes
(
i
.
value
)).
map
(
i
=>
this
.
isChinese
?
i
.
label
:
i
.
labelEn
).
join
(
'
,
'
)
:
''
}
},
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
}
},
watch
:{
selectCustomerList
(
val
){
if
(
val
.
length
===
0
){
this
.
getList
()
this
.
$refs
.
multipleTable
.
clearSelection
();
}
},
},
created
()
{
getCreditPage
({
page
:
1
,
rows
:
999
}).
then
(
r
=>
{
this
.
creditList
=
r
.
data
.
list
...
...
@@ -616,29 +635,126 @@ export default {
this
.
countryList
=
r
.
data
})
},
activated
(){
this
.
getList
();
},
methods
:
{
// 设置空运客户
setChangeCustomerAir
(
isAir
){
changeCustomerAir
({
customerIdList
:
this
.
selectCustomerList
,
isAir
}).
then
(
r
=>
{
console
.
log
(
r
)
if
(
r
.
code
===
0
){
this
.
$message
.
success
(
isAir
?
'
设为空运客户成功!
'
:
'
设为非空运客户成功!
'
)
this
.
selectCustomerList
=
[]
this
.
getList
()
}
})
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
complaint
(
row
){
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
customerComplaints
.
handleAdd
();
})
},
countryFormatter
(
row
,
column
,
cellValue
)
{
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
},
delay
(
row
){
this
.
$router
.
push
({
path
:
'
/customer/delay
'
,
query
:{
id
:
row
.
id
}})
},
followUp
(
row
){
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
CustomerFollowList
.
customerFollow
.
dialogVisible
=
true
;
})
},
/** 查询列表 */
getList
()
{
console
.
log
(
this
.
$route
.
path
,
'
path
'
)
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getCustomerPage
(
params
).
then
(
response
=>
{
console
.
log
(
response
,
'
response
'
)
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
switch
(
this
.
$route
.
path
){
case
'
/customer/customer
'
:
getCustomerPage
(
params
).
then
(
this
.
setData
);
break
;
case
'
/customer/department-customers
'
:
getCustomerDeptPage
(
params
).
then
(
this
.
setData
);
break
;
}
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
/** 新增按钮操作 */
handleAdd
()
{
this
.
$router
.
push
(
'
/customer/add-edit/0
'
)
// this.reset();
// this.open = true;
// this.title = this.$t("添加客户");
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
name
=
row
.
name
;
const
number
=
row
.
number
;
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
number
+
this
.
$t
(
'
"的数据项?
'
)).
then
(
function
()
{
return
deleteCustomer
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
删除成功
'
));
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有客户数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportCustomerExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
`
${
this
.
$t
(
'
客户信息
'
)}
.xls`
);
/* console.log(response,'response')
this.$download.excel(response, `${this.$t('全部客户信息')}.xls`); */
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
handleSelectionChange
(
val
){
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
// this.form = { ...this.form, ...response.data };
// this.open = true;
// this.title = this.$t("修改客户");
// });
},
/** 查看按钮操作 */
handleView
(
row
)
{
this
.
$router
.
push
(
'
/customer/query/
'
+
row
.
id
)
},
/** 表单重置 */
reset
()
{
...
...
@@ -681,11 +797,6 @@ export default {
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
...
...
@@ -705,17 +816,6 @@ export default {
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
$router
.
push
(
'
/customer/add-edit/0
'
)
// this.reset();
// this.open = true;
// this.title = this.$t("添加客户");
},
/** 查看按钮操作 */
handleView
(
row
)
{
this
.
$router
.
push
(
'
/customer/query/
'
+
row
.
id
)
},
/** 调入公海池测试用 */
seasPond
(
row
)
{
testEnterToOpenSea
(
row
.
id
).
then
(
r
=>
{
...
...
@@ -725,16 +825,11 @@ export default {
}
})
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
// this.form = { ...this.form, ...response.data };
// this.open = true;
// this.title = this.$t("修改客户");
// });
setData
(
response
){
console
.
log
(
response
,
'
response
'
)
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
},
/** 提交按钮 */
submitForm
()
{
...
...
@@ -758,65 +853,7 @@ export default {
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
name
=
row
.
name
;
const
number
=
row
.
number
;
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除客户编号为"
'
)
+
number
+
this
.
$t
(
'
"的数据项?
'
)).
then
(
function
()
{
return
deleteCustomer
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
删除成功
'
));
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有客户数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportCustomerExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
`
${
this
.
$t
(
'
客户信息
'
)}
.xls`
);
/* console.log(response,'response')
this.$download.excel(response, `${this.$t('全部客户信息')}.xls`); */
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
},
followUp
(
row
){
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
CustomerFollowList
.
customerFollow
.
dialogVisible
=
true
;
})
},
delay
(
row
){
this
.
$router
.
push
({
path
:
'
/customer/delay
'
,
query
:{
id
:
row
.
id
}})
},
complaint
(
row
){
this
.
customerId
=
row
.
id
;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
customerComplaints
.
handleAdd
();
})
},
handleSelectionChange
(
val
){
this
.
selectCustomerList
=
val
.
map
(
i
=>
i
.
id
);
}
},
watch
:{
selectCustomerList
(
val
){
if
(
val
.
length
===
0
){
this
.
getList
()
this
.
$refs
.
multipleTable
.
clearSelection
();
}
},
}
};
</
script
>
src/views/ecw/customer/indirectCustomer.vue
View file @
7621950a
...
...
@@ -22,8 +22,11 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd HH:mm:ss"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
...
...
@@ -127,6 +130,7 @@ export default {
name
:
null
,
source
:
null
,
customerService
:
null
,
marketType
:
null
},
// 网点
nodeList
:
[],
...
...
@@ -152,7 +156,7 @@ export default {
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出间接客户数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
...
...
@@ -175,7 +179,7 @@ export default {
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getCustomerPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
src/views/ecw/customer/query.vue
View file @
7621950a
...
...
@@ -35,7 +35,7 @@
{{
getDictDatas2
(
DICT_TYPE
.
CUSTOMER_TYPE
,
(
customer
.
type
||
''
).
split
(
'
,
'
)).
map
(
e
=>
isChinese
?
e
.
label
:
e
.
labelEn
).
join
(
'
,
'
)
}}
<
/el-descriptions-item
>
<!--
<
el
-
descriptions
-
item
:
label
=
"
$t('联系方式')
"
>
{{
customer
}}
<
/el-descriptions-item>--
>
<
el
-
descriptions
-
item
:
label
=
"
$t('推介人')
"
>
{{
promoter
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('推介人')
"
>
{{
customer
.
promoterName
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('客户经理')
"
>
{{
customerService
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('公司名称')
"
>
{{
customer
.
company
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('联系地址')
"
>
{{
customer
.
address
}}
<
/el-descriptions-item
>
...
...
@@ -46,7 +46,9 @@
<
el
-
descriptions
-
item
:
label
=
"
$t('图片')
"
>
<
el
-
image
v
-
show
=
"
!!customer.picture
"
:
src
=
"
customer.picture
"
style
=
"
width: 100px;height: 100px
"
><
/el-image
>
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('备注')
"
>
{{
customer
.
remarks
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('备注')
"
>
{{
customer
.
remarks
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
v
-
if
=
"
permissions.includes('ecw:customer:query-card')
"
:
label
=
"
$t('身份证姓名')
"
>
{{
customer
.
carName
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
v
-
if
=
"
permissions.includes('ecw:customer:query-card')
"
:
label
=
"
$t('身份证号码')
"
>
{{
customer
.
carNo
}}
<
/el-descriptions-item
>
<!--
<
el
-
descriptions
-
item
:
label
=
"
$t('信用等级')
"
>
{{
customer
}}
<
/el-descriptions-item>--
>
<
/el-descriptions
>
<
/el-card
>
...
...
@@ -458,15 +460,13 @@ import {getCountry} from "@/api/ecw/country"
export
default
{
name
:
'
query
'
,
props
:
{
customerId
:
String
}
,
components
:
{
Template
,
CustomerFollow
,
CustomerComplaint
}
,
created
()
{
this
.
permissions
//获取信用类型
getCreditRulePage
({
page
:
1
,
rows
:
999
,
type
:
2
}
).
then
(
r
=>
{
this
.
creditTypeList
=
r
.
data
.
list
...
...
@@ -493,7 +493,7 @@ export default {
this
.
productTypeList
=
r
.
data
}
)
getCustomerSelect
().
then
(
r
=>
{
getCustomerSelect
(
{
pageSize
:
1000
,
pageNo
:
1
}
).
then
(
r
=>
{
this
.
customerSelect
=
r
.
data
.
list
}
)
...
...
@@ -616,6 +616,12 @@ export default {
}
}
,
computed
:
{
permissions
(){
return
this
.
$store
.
state
.
user
.
permissions
}
,
customerId
(){
return
this
.
$route
.
params
.
customerId
;
}
,
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
}
,
...
...
src/views/ecw/customerConfirm/index.vue
View file @
7621950a
...
...
@@ -46,14 +46,17 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd
HH:mm:ss
"
type=
"date
time
range"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"queryParams.creditLevel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
" isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -365,6 +368,9 @@ export default {
this
.
getList
();
},
computed
:{
DICT_TYPE
()
{
return
DICT_TYPE
},
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
},
...
...
@@ -402,6 +408,7 @@ export default {
department
:
null
,
creditLevel
:
null
,
country
:
null
,
marketType
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -435,6 +442,7 @@ export default {
})
},
methods
:
{
getDictDatas
,
countryFormatter
(
row
,
column
,
cellValue
)
{
const
country
=
this
.
countryList
.
find
((
e
)
=>
e
.
id
===
cellValue
)
return
this
.
isChinese
?
country
?.
nameZh
:
country
?.
nameEn
...
...
@@ -444,7 +452,7 @@ export default {
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getWaitForConfirmList
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
src/views/ecw/customerToBeAssigned/index.vue
View file @
7621950a
...
...
@@ -47,14 +47,17 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"date
range"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd
HH:mm:ss
"
type=
"date
timerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"queryParams.creditLevel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -212,6 +215,7 @@ export default {
department
:
null
,
creditLevel
:
null
,
country
:
null
,
marketType
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -268,7 +272,7 @@ export default {
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getCustomerToBeAssigned
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
@@ -359,7 +363,7 @@ export default {
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
this
.
$router
.
push
(
'
/customer/edit
-distribution
/
'
+
row
.
id
)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
...
...
src/views/ecw/deptTarget/myAchievement.vue
View file @
7621950a
...
...
@@ -32,7 +32,7 @@
</el-select>
</el-form-item>
-->
<el-form-item>
<el-date-picker
v-model=
"dateFilter"
type=
"dat
erange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
v-model=
"dateFilter"
type=
"datetim
erange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<!--
<el-date-picker
v-model=
"queryParams.beginStartTime"
:placeholder=
"$t('请选择开始时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
</el-form-item>
<!--
<el-form-item
:label=
"$t('结束时间')"
prop=
"endStartTime"
>
-->
...
...
src/views/ecw/deptTarget/myDeptAchievement.vue
0 → 100644
View file @
7621950a
<
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=
"$t('关键字')"
prop=
"transportType"
>
<el-input
v-model=
"queryParams.key"
:placeholder=
"$t('请输入关键字查找')"
/>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportType"
formatter=
"number"
/>
</el-form-item>
<el-form-item
:label=
"$t('唛头')"
prop=
"transportType"
>
<el-input
v-model=
"queryParams.marks"
:placeholder=
"$t('请输入关键字查找')"
/>
</el-form-item>
<el-form-item
:label=
"$t('资源类型')"
prop=
"customerType"
>
<!--
<el-select
clearable
v-model=
"queryParams.customerType"
:placeholder=
"$t('请选择资源类型')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_ESOURCE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
-->
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_ESOURCE_TYPE"
v-model=
"queryParams.customerType"
:placeholder=
"$t('请选择资源类型')"
clearable
></dict-selector>
</el-form-item>
<!--
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
<el-option
v-for=
"dict in customerServiceList"
:key=
"dict.id"
:label=
"dict.nickname"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
-->
<!--
<el-form-item
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
clearable
size=
"small"
>
<el-option
:label=
"$t('下单时间')"
value=
"createTime"
/>
<el-option
:label=
"$t('装柜时间')"
value=
"ldBoxTime"
/>
</el-select>
</el-form-item>
-->
<el-form-item>
<el-date-picker
v-model=
"dateFilter"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<!--
<el-date-picker
v-model=
"queryParams.beginStartTime"
:placeholder=
"$t('请选择开始时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
</el-form-item>
<!--
<el-form-item
:label=
"$t('结束时间')"
prop=
"endStartTime"
>
-->
<!--
<el-date-picker
v-model=
"queryParams.endStartTime"
:placeholder=
"$t('请选择结束时间')"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-->
<!--
</el-form-item>
-->
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<!--
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
-->
</el-form-item>
</el-form>
<div
class=
"total_num"
>
<span>
{{
$t
(
'
开发客户:
'
)
}}
</span>
<span>
{{
$t
(
'
总箱数
'
)
}}
{{
totalData
.
developNum
}}{{
$t
(
'
箱
'
)
}}
</span>
<span>
{{
$t
(
'
总方数
'
)
}}
{{
totalData
.
developVolume
}}
m³
</span>
<span>
{{
$t
(
'
总重量
'
)
}}
{{
totalData
.
developWeight
}}
KG
</span>
<span>
{{
$t
(
'
公司客户:
'
)
}}
</span>
<span>
{{
$t
(
'
总箱数
'
)
}}
{{
totalData
.
companyNum
}}{{
$t
(
'
箱
'
)
}}
</span>
<span>
{{
$t
(
'
总方数
'
)
}}
{{
totalData
.
companyVolume
}}
m³
</span>
<span>
{{
$t
(
'
总重量
'
)
}}
{{
totalData
.
companyWeight
}}
KG
</span>
<span>
{{
$t
(
'
汇总:
'
)
}}
</span>
<span>
{{
$t
(
'
总箱数
'
)
}}
{{
totalData
.
sumNum
}}{{
$t
(
'
箱
'
)
}}
</span>
<span>
{{
$t
(
'
总方数
'
)
}}
{{
totalData
.
sumVolume
}}
m³
</span>
<span>
{{
$t
(
'
总重量
'
)
}}
{{
totalData
.
sumWeight
}}
KG
</span>
</div>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
@
selection-change=
"handleSelectionChange"
>
<!--
<el-table-column
:label=
"$t('序号')"
align=
"center"
type=
"index"
></el-table-column>
-->
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
:label=
"$t('资源类型')"
align=
"center"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_ESOURCE_TYPE"
:value=
"scope.row.customerType"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('报价单号')"
align=
"center"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
number
}}
</span>
</
template
>
</el-table-column>
<!-- <el-table-column :label="$t('报价结果')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="scope.row.offerStatus"/>
</template>
</el-table-column> -->
<el-table-column
:label=
"$t('订单号')"
align=
"center"
prop=
"orderNo"
/>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"name"
/>
<el-table-column
:label=
"$t('联系方式')"
align=
"center"
prop=
"phoneNew"
/>
<el-table-column
:label=
"$t('唛头')"
align=
"center"
prop=
"marks"
/>
<el-table-column
:label=
"$t('订单状态')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('是否控货')"
align=
"center"
prop=
"isCargoControl"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
isCargoControl
?
$t
(
'
是
'
):
$t
(
'
否
'
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('重量')"
align=
"center"
prop=
"completeWeight"
/>
<el-table-column
:label=
"$t('方数')"
align=
"center"
prop=
"completeVolume"
/>
<el-table-column
:label=
"$t('下单时间')"
align=
"center"
prop=
"createTime"
/>
<el-table-column
:label=
"$t('装柜时间')"
align=
"center"
prop=
"ldBoxTime"
/>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"userId"
:formatter=
"customerServiceFn"
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</div>
</template>
<
script
>
import
{
createDeptTarget
,
updateDeptTarget
,
deleteDeptTarget
,
getDeptTarget
,
getDeptTargetPage
,
exportDeptTargetExcel
,
getCreateInitData
,
getPersonTargetPage
,
myAchievementByPage
,
myDeptAchievementByPage
}
from
"
@/api/ecw/deptTarget
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
export
default
{
name
:
"
DeptTarget
"
,
components
:
{},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
tableTotal
:
0
,
// 部门业绩目标设置列表
list
:
[],
tableList
:
[],
// 弹出层标题
title
:
""
,
dateFilter
:[],
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
,
beginStartTime
:
null
,
transportType
:
null
,
shippingChannel
:
null
,
endStartTime
:
null
,
},
tableQueryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
id
:
null
,
},
// 表单参数
form
:
{},
customerServiceList
:[],
// 表单校验
rules
:
{
deptId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
部门ID不能为空
"
),
trigger
:
"
blur
"
}],
targetType
:
[{
required
:
true
,
message
:
this
.
$t
(
"
目标类型不能为空
"
),
trigger
:
"
change
"
}],
cubeNum
:
[{
required
:
true
,
message
:
this
.
$t
(
"
立方数不能为空
"
),
trigger
:
"
blur
"
}],
},
totalData
:{
companyWeight
:
0
,
companyVolume
:
0
,
companyNum
:
0
,
developWeight
:
0
,
developVolume
:
0
,
developNum
:
0
,
sumWeight
:
0
,
sumVolume
:
0
,
sumNum
:
0
,
},
myAchievementData
:{}
};
},
computed
:
{
getShipChannelName
()
{
return
shippingChannelId
=>
{
for
(
let
index
in
this
.
channelList
)
{
let
channelItem
=
this
.
channelList
[
index
];
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
this
.
$l
(
channelItem
,
'
name
'
);
}
}
return
'
/
'
}
}
},
created
()
{
this
.
getChannelList
();
this
.
getList
();
listServiceUser
().
then
(
r
=>
{
this
.
customerServiceList
=
r
.
data
;
})
},
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
;
}
})
},
customerServiceFn
(
val
){
if
(
this
.
customerServiceList
.
length
>
0
){
let
index
=
this
.
customerServiceList
.
findIndex
(
item
=>
item
.
id
===
val
.
userId
);
return
index
!==
-
1
?
this
.
customerServiceList
[
index
]?.
nickname
:
''
}
else
{
return
''
}
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 执行查询
myDeptAchievementByPage
(
this
.
queryParams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
myAchievementDtos
.
list
;
this
.
total
=
response
.
data
.
myAchievementDtos
.
total
;
this
.
myAchievementData
=
response
.
data
this
.
totalData
.
sumWeight
=
this
.
myAchievementData
.
totalWeight
this
.
totalData
.
sumVolume
=
this
.
myAchievementData
.
totalVolume
this
.
totalData
.
sumNum
=
this
.
myAchievementData
.
totalNum
this
.
totalData
.
companyWeight
=
this
.
myAchievementData
.
companyTotalWeight
this
.
totalData
.
companyVolume
=
this
.
myAchievementData
.
companyTotalVolume
this
.
totalData
.
companyNum
=
this
.
myAchievementData
.
companyTotalNum
this
.
totalData
.
developWeight
=
this
.
myAchievementData
.
devTotalWeight
this
.
totalData
.
developVolume
=
this
.
myAchievementData
.
devTotalVolume
this
.
totalData
.
developNum
=
this
.
myAchievementData
.
devTotalNum
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
.
queryParams
.
beginStartTime
=
this
.
dateFilter
[
0
];
this
.
queryParams
.
endStartTime
=
this
.
dateFilter
[
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
=
this
.
$t
(
"
添加部门业绩目标设置
"
);
},
/** 查看人员目标情况 */
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
=
this
.
$t
(
"
修改部门业绩目标设置
"
);
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
));
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createDeptTarget
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
新增成功
"
));
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除部门业绩目标设置编号为{id}的数据项?
'
,
{
id
})).
then
(
function
()
{
return
deleteDeptTarget
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
删除成功
"
));
}).
catch
(()
=>
{
});
},
handleSelectionChange
(
val
){
if
(
val
&&
val
.
length
>
0
){
var
data
=
{
companyWeight
:
0
,
companyVolume
:
0
,
companyNum
:
0
,
developWeight
:
0
,
developVolume
:
0
,
developNum
:
0
,
sumWeight
:
0
,
sumVolume
:
0
,
sumNum
:
0
,
}
val
.
forEach
(
item
=>
{
if
(
item
.
customerType
==
1
){
data
.
developWeight
+=
item
.
completeWeight
data
.
developVolume
+=
item
.
completeVolume
data
.
developNum
+=
item
.
sumNum
}
else
{
data
.
companyWeight
+=
item
.
completeWeight
data
.
companyVolume
+=
item
.
completeVolume
data
.
companyNum
+=
item
.
sumNum
}
data
.
sumWeight
+=
item
.
completeWeight
data
.
sumVolume
+=
item
.
completeVolume
data
.
sumNum
+=
item
.
sumNum
})
this
.
$set
(
this
,
'
totalData
'
,
data
)
}
else
{
this
.
totalData
.
sumWeight
=
this
.
myAchievementData
.
totalWeight
this
.
totalData
.
sumVolume
=
this
.
myAchievementData
.
totalVolume
this
.
totalData
.
sumNum
=
this
.
myAchievementData
.
totalNum
this
.
totalData
.
companyWeight
=
this
.
myAchievementData
.
companyTotalWeight
this
.
totalData
.
companyVolume
=
this
.
myAchievementData
.
companyTotalVolume
this
.
totalData
.
companyNum
=
this
.
myAchievementData
.
companyTotalNum
this
.
totalData
.
developWeight
=
this
.
myAchievementData
.
devTotalWeight
this
.
totalData
.
developVolume
=
this
.
myAchievementData
.
devTotalVolume
this
.
totalData
.
developNum
=
this
.
myAchievementData
.
devTotalNum
}
},
/** 导出按钮操作 */
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
(
this
.
$t
(
'
是否确认导出所有部门业绩目标设置数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportDeptTargetExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
`
${
this
.
$t
(
'
我的业绩
'
)}
.xls`
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{
});
}
}
};
</
script
>
<
style
scoped
>
.total_num
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin
:
20px
0
;
font-size
:
15px
;
}
.total_num
span
{
margin
:
0
8px
;
}
</
style
>
src/views/ecw/financial/creatCollection.vue
View file @
7621950a
...
...
@@ -658,7 +658,7 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount";
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
createReceipt
,
getReceivableList
,
getReceivableInfoByIds
,
getReceiptInfoByIds
,
getReceiptAccountList
,
getInvoicingItem
,
updateReceipt
,
updateReceivableDiscountById
,
getReceivableDiscountLogById
}
from
"
@/api/ecw/financial
"
;
import
{
createReceipt
,
getFirstReceivableListByOrderId
,
getReceivableList
,
getReceivableInfoByIds
,
getReceiptInfoByIds
,
getReceiptAccountList
,
getInvoicingItem
,
updateReceipt
,
updateReceivableDiscountById
,
getReceivableDiscountLogById
}
from
"
@/api/ecw/financial
"
;
import
{
getCustomer
}
from
'
@/api/ecw/customer
'
import
NP
from
'
number-precision
'
import
{
getOrder
}
from
'
@/api/ecw/order
'
...
...
@@ -729,6 +729,15 @@ export default {
await
getCurrencyPage
(
this
.
params
).
then
(
res
=>
this
.
currencyList
=
res
.
data
.
list
)
getWarehouseList
().
then
(
res
=>
this
.
warehouseList
=
res
.
data
)
let
that
=
this
;
if
(
that
.
$route
.
query
.
orderId
)
{
await
getFirstReceivableListByOrderId
({
id
:
that
.
$route
.
query
.
orderId
}
).
then
(
response
=>
{
this
.
list
=
[...
response
.
data
]
getOrder
(
that
.
$route
.
query
.
orderId
).
then
(
response
=>
{
// console.log(response.data)
if
(
response
.
data
.
customerId
)
this
.
$set
(
this
.
form
,
'
customerId
'
,
response
.
data
.
customerId
)
}
)
}
)
}
if
(
that
.
$route
.
query
.
id
)
{
this
.
flag
=
true
this
.
id
=
this
.
$route
.
query
.
id
;
...
...
src/views/ecw/myCustomerService/index.vue
View file @
7621950a
...
...
@@ -41,8 +41,8 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
<el-date-picker
clearable
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd
HH:mm:ss
"
type=
"date
time
range"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
...
...
@@ -50,6 +50,9 @@
<el-option
v-for=
"(item,index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -203,6 +206,7 @@ export default {
department
:
null
,
creditLevel
:
null
,
country
:
null
,
marketType
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -258,7 +262,7 @@ export default {
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getMyCustomerService
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
7621950a
...
...
@@ -55,6 +55,9 @@
<el-option
v-for=
"(item,index) in creditList"
:label=
"isChinese ? item.nameZh : item.nameEn"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('市场获客')"
prop=
"department"
>
<dict-selector
clearable
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model=
"queryParams.marketType"
formatter=
"number"
></dict-selector>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -205,6 +208,7 @@ export default {
customerService
:
null
,
status
:
null
,
department
:
null
,
marketType
:
null
,
},
// 表单参数
form
:
{},
...
...
src/views/ecw/offer/dept.vue
0 → 100644
View file @
7621950a
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-form-item
:label=
"$t('编号')"
prop=
"searchNumber"
>
<el-input
v-model=
"queryParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
prop=
"orderNo"
>
<el-date-picker
v-model=
"queryParams.beginCreateTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
v-model=
"queryParams.endCreateTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"departureId"
>
<el-select
v-model=
"queryParams.departureId"
:placeholder=
"$t('请选择始发地')"
clearable
>
<el-option
v-for=
"item in exportCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('目的地')"
prop=
"objectiveId"
>
<el-select
v-model=
"queryParams.objectiveId"
:placeholder=
"$t('请选择目的地')"
clearable
>
<el-option
v-for=
"item in importCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('商品')"
prop=
"prodTitle"
>
<el-input
v-model=
"queryParams.prodTitle"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"control"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model=
"queryParams.control"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUpSalesmanId"
>
<user-selector
v-model=
"queryParams.followUpSalesmanId"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
v-model=
"queryParams.status"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsType"
clearable
/>
</el-form-item>
<div>
<el-form-item
:label=
"$t('预计结束时间')"
prop=
"orderNo"
>
<el-date-picker
v-model=
"queryParams.beginStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
v-model=
"queryParams.endStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
</el-form-item>
</div>
</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=
"['ecw:offer:create']"
>
{{
$t
(
'
新增
'
)
}}
</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=
"['ecw:offer:export']"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
border
>
<el-table-column
:label=
"$t('报价单号')"
align=
"left"
prop=
"number"
width=
"200px"
>
<template
slot-scope=
"
{row}">
<el-link
type=
"primary"
@
click.native=
"$router.push('detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('订单编号')"
align=
"left"
prop=
"orderNo"
/>
<el-table-column
:label=
"$t('客户名称')"
align=
"left"
prop=
"relationName"
/>
<el-table-column
:label=
"$t('目的地')"
align=
"center"
prop=
"objectiveName"
/>
<el-table-column
:label=
"$t('销售阶段')"
align=
"left"
width=
"180"
>
<
template
slot-scope=
"{row}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
:value=
"row.status"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('预计结束时间')"
align=
"left"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
stopTime
,
"
{y
}
-{m
}
-{d
}
"
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('运输方式')
"
align
=
"
left
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_TRANSPORT_TYPE
"
:
value
=
"
scope.row.transportId
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('预计销售额')
"
align
=
"
left
"
prop
=
"
estCost
"
>
<
template
slot
-
scope
=
"
{row
}
"
>
<
div
class
=
""
v
-
for
=
"
(item, feeIndex) in row.estCostVO.feeDtoList
"
:
key
=
"
feeIndex
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_COST_FEE_TYPE
"
:
value
=
"
item.feeType
"
/>
{{
item
.
amount
}}
{{
currencyMap
[
item
.
currencyId
]
}}
<
/div
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('客户经理')
"
align
=
"
left
"
prop
=
"
creatorName
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('操作')
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
>
<
template
slot
-
scope
=
"
scope
"
>
<!--
0
取消
恢复
1
特价审批
编辑、跟进、
取消
删除
2
草稿
编辑、
删除
3
需求确认
编辑、跟进、结果、特价、取消
删除
4
赢单
删除
5
输单
删除
6
完成
删除
7
跟进中
编辑、跟进、结果、特价、取消、
删除
-->
<
el
-
dropdown
>
<
el
-
button
icon
=
"
el-icon-plus
"
circle
type
=
"
primary
"
><
/el-button
>
<
el
-
dropdown
-
menu
slot
=
"
dropdown
"
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('detail?offerId=' + scope.row.offerId)
"
>
{{
$t
(
'
详情
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('edit?id=' + scope.row.offerId)
"
v
-
if
=
"
[1,2,3,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
编辑
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('logList?offerId=' + scope.row.offerId)
"
v
-
if
=
"
[1,3,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
跟进
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push(`result?offerId=${scope.row.offerId
}
&number=${scope.row.number
}
`)
"
v
-
if
=
"
[3,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
结果
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('/offer/special?offerId=' + scope.row.offerId)
"
v
-
if
=
"
[1,3,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
特价
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
cancel(scope.row.offerId)
"
v
-
if
=
"
[1,3,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
recovery(scope.row.offerId)
"
v
-
if
=
"
[0].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
恢复
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
deleteOffer(scope.row.offerId)
"
v
-
if
=
"
[0,1,2,3,4,5,6,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:delete']
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-dropdown-item
>
<
/el-dropdown-menu
>
<
/el-dropdown>
<
/template
>
<
/el-table-column
>
<
/el-table
>
<!--
分页组件
-->
<
pagination
v
-
show
=
"
total > 0
"
:
total
=
"
total
"
:
page
.
sync
=
"
queryParams.pageNo
"
:
limit
.
sync
=
"
queryParams.pageSize
"
@
pagination
=
"
getList
"
/>
<
/div
>
<
/template
>
<
script
>
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
,
cancel
,
recovery
}
from
"
@/api/ecw/offer
"
;
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
;
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
UserSelector
from
'
@/components/UserSelector
'
export
default
{
name
:
"
EcwOfferIndex
"
,
components
:
{
UserSelector
}
,
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 报价单管理列表
list
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
}
,
currencyList
:
[],
tradeCityList
:[]
}
;
}
,
computed
:{
currencyMap
(){
let
map
=
{
}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
'
title
'
)
}
)
return
map
}
,
exportCityList
()
{
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
)
}
,
importCityList
()
{
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
1
)
}
,
}
,
activated
(){
this
.
getList
()
}
,
created
()
{
getTradeCityList
().
then
(
res
=>
this
.
tradeCityList
=
res
.
data
)
getCurrencyList
().
then
(
res
=>
{
this
.
currencyList
=
res
.
data
}
)
this
.
getList
();
}
,
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 执行查询
getOfferPage
(
this
.
queryParams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
}
);
}
,
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
}
,
/** 重置按钮操作 */
resetQuery
()
{
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
}
this
.
handleQuery
();
}
,
/** 新增按钮操作 */
handleAdd
()
{
return
this
.
$router
.
push
(
'
create
'
)
}
,
/** 修改按钮操作 */
handleUpdate
(
row
)
{
return
this
.
$router
.
push
(
'
edit?id=
'
+
row
.
offerId
)
}
,
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
offerId
=
row
.
offerId
;
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认删除报价单管理编号为{offerId
}
的数据项?
'
,
{
offerId
}
)).
then
(
function
()
{
return
deleteOffer
(
offerId
);
}
).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
删除成功
"
));
}
).
catch
(()
=>
{
}
);
}
,
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
}
;
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
// 执行导出
this
.
$modal
.
confirm
(
this
.
$t
(
'
是否确认导出所有报价单管理数据项?
'
)).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportOfferExcel
(
params
);
}
).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
报价列表.xls
'
);
this
.
exportLoading
=
false
;
}
).
catch
(()
=>
{
}
);
}
,
cancel
(
id
){
this
.
doAction
(
'
确定要取消此报价单么?
'
,
cancel
,
id
);
}
,
recovery
(
id
){
this
.
doAction
(
'
确定要恢复此报价单么?
'
,
recovery
,
id
);
}
,
deleteOffer
(
id
){
this
.
doAction
(
'
确定要删除此报价单么?
'
,
deleteOffer
,
id
);
}
,
doAction
(
tips
,
action
,
id
){
this
.
$confirm
(
tips
).
then
(
res
=>
{
return
action
(
id
)
}
)
.
then
(()
=>
{
this
.
$message
.
success
(
'
操作成功
'
)
this
.
handleQuery
()
}
)
}
}
}
;
<
/script
>
src/views/ecw/offer/index.vue
View file @
7621950a
...
...
@@ -10,11 +10,11 @@
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
prop=
"orderNo"
>
<el-date-picker
v-model=
"queryParams.beginCreateTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
v-model=
"queryParams.endCreateT
ime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
type=
"datetime"
v-model=
"queryParams.beginCreateTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
v-model=
"queryParams.endCreateTime"
type=
"datet
ime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('始发地')"
prop=
"departureId"
>
<el-select
v-model=
"queryParams.departureId"
:placeholder=
"$t('请选择始发地')"
clearable
>
<el-option
v-for=
"item in exportCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
...
...
@@ -47,14 +47,14 @@
<div>
<el-form-item
:label=
"$t('预计结束时间')"
prop=
"orderNo"
>
<el-date-picker
v-model=
"queryParams.beginStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
v-model=
"queryParams.endStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
type=
"datetime"
v-model=
"queryParams.beginStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
{{
$t
(
'
到
'
)
}}
<el-date-picker
type=
"datetime"
v-model=
"queryParams.endStopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
</el-form-item>
</div>
</el-form>
<!-- 操作工具栏 -->
...
...
@@ -95,7 +95,7 @@
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_TRANSPORT_TYPE
"
:
value
=
"
scope.row.transportId
"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('预计销售额')
"
align
=
"
left
"
prop
=
"
estCost
"
>
<
template
slot
-
scope
=
"
{row
}
"
>
...
...
@@ -109,7 +109,7 @@
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('操作')
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
>
<
template
slot
-
scope
=
"
scope
"
>
<!--
<!--
0
取消
恢复
1
特价审批
编辑、跟进、
取消
删除
2
草稿
编辑、
删除
...
...
@@ -131,7 +131,7 @@
<
el
-
dropdown
-
item
@
click
.
native
=
"
recovery(scope.row.offerId)
"
v
-
if
=
"
[0].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
恢复
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
deleteOffer(scope.row.offerId)
"
v
-
if
=
"
[0,1,2,3,4,5,6,7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:delete']
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-dropdown-item
>
<
/el-dropdown-menu
>
<
/el-dropdown>
<
/el-dropdown
>
<
/template
>
<
/el-table-column
>
<
/el-table
>
...
...
@@ -143,7 +143,7 @@
<
/template
>
<
script
>
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
,
cancel
,
recovery
}
from
"
@/api/ecw/offer
"
;
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
,
cancel
,
recovery
,
offerDeptPage
}
from
"
@/api/ecw/offer
"
;
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
;
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
UserSelector
from
'
@/components/UserSelector
'
...
...
@@ -170,8 +170,8 @@ export default {
pageSize
:
10
}
,
currencyList
:
[],
tradeCityList
:[]
tradeCityList
:[]
,
dept
:
false
,
// 是否部门订单
}
;
}
,
computed
:{
...
...
@@ -193,6 +193,11 @@ export default {
this
.
getList
()
}
,
created
()
{
console
.
log
(
"
offer index
"
,
this
.
$route
)
// 部门订单
if
(
this
.
$route
.
fullPath
.
indexOf
(
'
dept
'
)
>
-
1
){
this
.
dept
=
true
}
getTradeCityList
().
then
(
res
=>
this
.
tradeCityList
=
res
.
data
)
getCurrencyList
().
then
(
res
=>
{
...
...
@@ -205,8 +210,9 @@ export default {
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
let
func
=
this
.
dept
?
offerDeptPage
:
getOfferPage
// 执行查询
getOfferPage
(
this
.
queryParams
).
then
(
response
=>
{
func
(
this
.
queryParams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
...
...
src/views/ecw/order/dept.vue
0 → 100644
View file @
7621950a
<
template
>
<index
dept
/>
</
template
>
<
script
>
import
Index
from
'
./index
'
export
default
{
name
:
'
EcwOrderDept
'
,
components
:
{
Index
}
}
</
script
>
\ No newline at end of file
src/views/ecw/order/index.vue
View file @
7621950a
...
...
@@ -18,8 +18,7 @@
</el-form-item>
<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=
"-"
<el-date-picker
v-model=
"dateFilter"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
...
...
@@ -98,6 +97,15 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('异常状态')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ORDER_ABNORMAL_STATE"
v-model=
"queryParams.abnormalState"
@
keyup.enter.native=
"handleQuery"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('审核状态')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ECW_ORDER_APPROVAL_TYPE"
v-model=
"queryParams.auditType"
@
keyup.enter.native=
"handleQuery"
clearable
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -116,8 +124,31 @@
<el-button
type=
"primary"
plain
icon=
"el-icon-setting"
size=
"mini"
@
click=
"showBatchPickup=true"
>
{{
$t
(
'
批量提货
'
)
}}
</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=
"['ecw:order:export']"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
<!--
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:order:export']"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
-->
<el-dropdown
v-hasPermi=
"isAll ? ['ecw:order:export','ecw:order:export:other']:[exportPermiString]"
>
<el-button
type=
"primary"
:loading=
"exportLoading"
size=
"mini"
>
导出
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-hasPermi=
"[exportPermiString]"
@
click.native=
"exportChecked"
>
导出勾选
</el-dropdown-item>
<el-dropdown-item
v-hasPermi=
"[exportPermiString]"
@
click.native=
"exportSearch"
>
导出搜索
</el-dropdown-item>
<template
v-if=
"isAll"
v-hasPermi=
"['ecw:order:export:other']"
>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
异常单统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
重货单统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
退仓单统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
售后赔偿金额统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
报关数据统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
客户出货量统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
预付运费统计
</el-dropdown-item>
<el-dropdown-item
@
click.native=
"$message('// TODO')"
>
卸货费统计
</el-dropdown-item>
</
template
>
</el-dropdown-menu>
</el-dropdown>
</el-col>
<el-col
:span=
"15"
v-if=
"statistics"
>
<!-- 订单列表显示搜索条件对应箱数、仓库实测、收款方数、重量 -->
合计:{{statistics.totalNum}}箱,{{statistics.totalVolume}}m³(测) {{statistics.totalChargeVolume}}m³(重) {{statistics.totalWeight}}KG
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -410,7 +441,14 @@ import {
orderSpecialNeed
,
cancelOrder
,
recoveryOrder
,
getMyOrderPage
getMyOrderPage
,
deptOrderPage
,
orderStatistics
,
orderMyStatistics
,
orderDeptStatistics
,
orderExportSearch
,
orderExportMySearch
,
orderExportDeptSearch
}
from
"
@/api/ecw/order
"
;
/* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */
import
PrintTag
from
'
./components/PrintTag
'
...
...
@@ -436,7 +474,8 @@ export default {
CustomerSelector
,
ProductSelector
,
Selector
,
specialNeeds
,
PrintTag
,
PrintWarehouseReceipt
,
PrintLadingBill
,
BatchPickup
,
withdrawal
},
props
:
{
mine
:
Boolean
mine
:
Boolean
,
// 标识我的订单列表
dept
:
Boolean
// 标识部门订单列表
},
data
()
{
return
{
...
...
@@ -493,7 +532,8 @@ export default {
page
:
1
,
rows
:
20
,
},
currencyList
:[]
currencyList
:[],
statistics
:
null
,
// 统计数据
};
},
watch
:{
...
...
@@ -502,6 +542,18 @@ export default {
}
},
computed
:
{
// 导出的权限字符串
exportPermiString
(){
let
arr
=
[
'
ecw:order:export
'
]
if
(
this
.
mine
)
arr
.
push
(
'
my
'
)
if
(
this
.
dept
)
arr
.
push
(
'
dept
'
)
if
(
this
.
transportId
)
arr
.
push
(
this
.
transportId
)
return
arr
.
join
(
"
:
"
)
},
// 是否全部订单
isAll
(){
return
!
(
this
.
mine
||
this
.
dept
||
this
.
transportId
)
},
isChinese
(){
return
this
.
$i18n
.
locale
===
'
zh_CN
'
},
...
...
@@ -557,6 +609,37 @@ export default {
getCurrencyPage
(
this
.
params
).
then
(
res
=>
this
.
currencyList
=
res
.
data
.
list
)
},
methods
:
{
// 获得导出函数
getExportFunc
(){
let
func
=
orderExportSearch
if
(
this
.
mine
)
func
=
orderExportMySearch
if
(
this
.
dept
)
func
=
orderExportDeptSearch
return
func
},
// 导出勾选
exportChecked
(){
if
(
!
this
.
ids
.
length
){
return
this
.
$message
.
error
(
this
.
$t
(
'
请勾选需要导出的订单
'
))
}
return
this
.
exportExcel
(
this
.
getExportFunc
(),
{
orderIdList
:
this
.
ids
},
this
.
$t
(
"
导出勾选
"
))
},
// 导出搜索
exportSearch
(){
return
this
.
exportExcel
(
this
.
getExportFunc
(),
this
.
combinedQueryParams
,
this
.
$t
(
"
导出搜索
"
))
},
// 通用导出函数
exportExcel
(
func
,
params
,
fileName
=
null
){
this
.
exportLoading
=
true
;
func
(
params
).
then
(
res
=>
{
console
.
log
({
res
})
if
(
!
fileName
){
fileName
=
this
.
$t
(
'
订单
'
)
}
this
.
$download
.
excel
(
res
,
fileName
+
'
.xls
'
);
}).
finally
(()
=>
{
this
.
exportLoading
=
false
})
},
// 提取路径中的运输方式
getTransportFromRoute
(){
let
match
=
this
.
$route
.
path
.
match
(
/transport_
(\d)
/
)
...
...
@@ -595,19 +678,37 @@ export default {
getList
()
{
this
.
loading
=
true
;
console
.
log
(
'
this.combinedQueryParams
'
,
this
.
combinedQueryParams
)
let
func
=
getOrderPage
if
(
this
.
mine
){
return
getMyOrderPage
(
this
.
combinedQueryParams
).
then
(
response
=>
{
func
=
getMyOrderPage
/* return getMyOrderPage(this.combinedQueryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
}); */
}
else
if
(
this
.
dept
){
func
=
deptOrderPage
}
// 执行查询
getOrderPage
(
this
.
combinedQueryParams
).
then
(
response
=>
{
func
(
this
.
combinedQueryParams
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
this
.
getStatistics
()
},
// 获得统计数据
getStatistics
(){
let
func
=
orderStatistics
if
(
this
.
mine
){
func
=
orderMyStatistics
}
else
if
(
this
.
dept
){
func
=
orderDeptStatistics
}
func
(
this
.
combinedQueryParams
).
then
(
res
=>
{
this
.
statistics
=
res
.
data
})
},
/** 搜索按钮操作 */
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
7621950a
...
...
@@ -25,7 +25,9 @@
v-model=
"form.brand"
:placeholder=
"$t('可修改')"
filterable
remote
@
change=
"handleBrandChange"
:remote-method=
"getProductBrandPage"
clearable
>
<el-option
v-for=
"item in brandList"
...
...
@@ -197,7 +199,9 @@
v-model=
"form1.brand"
:placeholder=
"$t('可修改')"
filterable
remote
@
change=
"handleBrandChange"
:remote-method=
"getProductBrandPage"
clearable
>
<el-option
v-for=
"item in brandList"
...
...
@@ -393,6 +397,10 @@ export default {
type
:
Boolean
,
default
:
false
},
isJiyun
:
{
type
:
Boolean
,
default
:
false
},
// 入仓修改
edit
:
{
type
:
Boolean
,
...
...
@@ -410,17 +418,6 @@ export default {
}
},
mounted
()
{
getProductBrankPage
({
pageSize
:
100000
}).
then
(
r
=>
{
this
.
brandList
=
r
.
data
.
list
.
map
(
e
=>
{
if
(
e
.
id
){
e
.
id
=
e
.
id
.
toString
()
}
return
e
})
})
},
data
()
{
return
{
DICT_TYPE
,
...
...
@@ -497,6 +494,9 @@ export default {
if
(
this
.
warehousing
)
{
// this.orderItem = this.warehousing
this
.
inTime
=
this
.
warehousing
.
inTime
if
(
!!
this
.
warehousing
.
brandName
){
this
.
getProductBrandPage
(
this
.
warehousing
.
brandName
)
}
}
}
else
{
}
...
...
@@ -535,8 +535,17 @@ export default {
}
}
},
methods
:
{
getProductBrandPage
(
titleZh
=
undefined
)
{
getProductBrankPage
({
pageSize
:
20
,
titleZh
}).
then
(
r
=>
{
this
.
brandList
=
r
.
data
.
list
.
map
(
e
=>
{
if
(
e
.
id
){
e
.
id
=
e
.
id
.
toString
()
}
return
e
})
})
},
handleCancelProcessInstance
(){
this
.
$prompt
(
'
请输入取消原因?
'
,
this
.
$t
(
"
取消流程
"
),
{
type
:
'
warning
'
,
...
...
@@ -694,9 +703,9 @@ export default {
}
const
form
=
val
===
1
?
this
.
form1
:
this
.
form
form
.
orderWarehouseInItemDoList
.
push
({
"
boxGauge1
"
:
""
,
"
boxGauge2
"
:
""
,
"
boxGauge3
"
:
""
,
"
boxGauge1
"
:
this
.
isJiyun
?
0
:
''
,
"
boxGauge2
"
:
this
.
isJiyun
?
0
:
''
,
"
boxGauge3
"
:
this
.
isJiyun
?
0
:
''
,
"
cartonsNum
"
:
cartonsNum
>
0
?
cartonsNum
:
''
,
"
expressNo
"
:
""
,
"
quantityAll
"
:
undefined
,
...
...
@@ -732,7 +741,7 @@ export default {
const
[
boxGauge1
,
boxGauge2
,
boxGauge3
]
=
boxGaugeList
return
{...
e
,
boxGauge1
,
boxGauge2
,
boxGauge3
}
}
return
e
return
{...
e
,
boxGauge1
:
this
.
isJiyun
?
0
:
''
,
boxGauge2
:
this
.
isJiyun
?
0
:
''
,
boxGauge3
:
this
.
isJiyun
?
0
:
''
}
})
},
tableData1
()
{
...
...
src/views/ecw/order/warehousing/index.vue
View file @
7621950a
...
...
@@ -153,7 +153,7 @@
<warehouse-area-dialog
ref=
"area"
:visible.sync=
"areaVisible"
v-model=
"form.orderLocationCreateReqVOList"
:order-id=
"orderId"
:warehouse-id=
"warehouseId"
:is-editing=
"isEdit"
></warehouse-area-dialog>
<edit-dialog
:title=
"title"
:order-id=
"order.orderId"
:visible.sync=
"warehousingVisible"
:warehousing=
"warehousing"
:edit=
"isEdit"
></edit-dialog>
<edit-dialog
:title=
"title"
:order-id=
"order.orderId"
:visible.sync=
"warehousingVisible"
:warehousing=
"warehousing"
:edit=
"isEdit"
:is-jiyun=
"order.type.indexOf('1') !== -1"
></edit-dialog>
<!-- 完成入仓 -->
<el-dialog
...
...
@@ -174,7 +174,7 @@
<el-form-item
:label=
"$t('原因类型')"
>
<dict-selector
v-model=
"form.manualExceptionType"
form-type=
"checkbox"
:type=
"DICT_TYPE.MANUAL_EXCEPTION_TYPE"
multiple
></dict-selector>
</el-form-item>
<el-form-item
required
:label=
"$t('附件')"
>
<el-form-item
:label=
"$t('附件')"
>
<image-upload
v-model=
"form.exceptionUrls"
></image-upload>
</el-form-item>
<el-form-item
:label=
"$t('详细信息')"
>
...
...
@@ -392,7 +392,7 @@ export default {
}
if
(
this
.
escapeBol
)
{
form
.
exceptionUrls
=
this
.
form
.
exceptionUrls
.
split
(
'
,
'
);
form
.
exceptionUrls
=
this
.
form
.
exceptionUrls
.
length
!==
0
?
this
.
form
.
exceptionUrls
?.
split
(
'
,
'
)
:
[]
form
.
descZh
=
this
.
form
.
descZh
;
form
.
manualExceptionType
=
this
.
form
.
manualExceptionType
.
join
(
'
,
'
)
}
...
...
src/views/member/user/index.vue
View file @
7621950a
...
...
@@ -19,6 +19,15 @@
<el-form-item
:label=
"$t('审核状态')"
prop=
"registerIp"
>
<dict-selector
v-model=
"queryParams.auditStatus"
:type=
"DICT_TYPE.AUDIT_STATUS"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
type=
"datetimerange"
:start-placeholder=
"$t('开始日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
:end-placeholder=
"$t('结束日期')"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
...
...
@@ -378,8 +387,8 @@ export default {
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
}
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeLoginDate
,
'
loginDate
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
//
this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate');
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
,
false
);
// 执行查询
getUserPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
...
...
src/views/system/dict/index.vue
View file @
7621950a
...
...
@@ -101,7 +101,7 @@ import { CommonStatusEnum } from '@/utils/constants'
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
export
default
{
name
:
"
Dict
"
,
name
:
"
SystemDictIndex
"
,
data
()
{
return
{
// 遮罩层
...
...
@@ -151,6 +151,9 @@ export default {
created
()
{
this
.
getList
();
},
activated
(){
this
.
getList
();
},
methods
:
{
/** 查询字典类型列表 */
getList
()
{
...
...
src/views/system/internalMessage/index.vue
View file @
7621950a
...
...
@@ -44,7 +44,7 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"$t('编号')"
align=
"center"
prop=
"id"
/>
<el-table-column
:
label=
"$t('编号')"
align=
"center"
prop=
"id"
/>
<el-table-column
:label=
"$t('来源')"
align=
"center"
prop=
"fromId"
/>
<el-table-column
:label=
"$t('发送时间')"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
...
...
src/views/system/myInternalMessage/index.vue
View file @
7621950a
...
...
@@ -38,7 +38,7 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"$t('编号')"
align=
"center"
prop=
"id"
/>
<el-table-column
:
label=
"$t('编号')"
align=
"center"
prop=
"id"
/>
<!--
<el-table-column
:label=
"$t('来源')"
align=
"center"
prop=
"fromId"
/>
-->
<el-table-column
:label=
"$t('发送时间')"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
...
...
src/views/system/role/index.vue
View file @
7621950a
...
...
@@ -476,9 +476,13 @@ export default {
roleId
:
this
.
form
.
id
,
menuIds
:
[...
this
.
$refs
.
menu
.
getCheckedKeys
()]
// , ...this.$refs.menu.getHalfCheckedKeys() 不需要半选中的,会在下次回显的时候导致子节点全部被选中
}).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
openMenu
=
false
;
this
.
getList
();
this
.
$store
.
dispatch
(
'
GetInfo
'
).
then
(
()
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
}
)
});
}
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment