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
b706f640
Commit
b706f640
authored
Oct 22, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev'
parents
96f9d231
8da5c2a3
Changes
51
Hide whitespace changes
Inline
Side-by-side
Showing
51 changed files
with
1068 additions
and
580 deletions
+1068
-580
README.md
README.md
+6
-1
Navbar.vue
src/layout/components/Navbar.vue
+5
-4
index.js
src/router/index.js
+2
-2
user.js
src/store/modules/user.js
+4
-4
dict.js
src/utils/dict.js
+1
-0
detail.vue
src/views/bpm/processInstance/detail.vue
+3
-3
index.vue
src/views/bpm/processInstance/index.vue
+36
-32
copy.vue
src/views/bpm/task/copy.vue
+25
-15
done.vue
src/views/bpm/task/done.vue
+13
-13
todo.vue
src/views/bpm/task/todo.vue
+40
-21
PanelGroup.vue
src/views/dashboard/PanelGroup.vue
+7
-2
indexSeaAir.vue
src/views/ecw/box/indexSeaAir.vue
+4
-1
query.vue
src/views/ecw/box/query.vue
+1
-1
edit.vue
src/views/ecw/coupon/edit.vue
+105
-90
index.vue
src/views/ecw/coupon/index.vue
+8
-2
edit.vue
src/views/ecw/customer/edit.vue
+18
-5
index.vue
src/views/ecw/customer/index.vue
+19
-4
index.vue
src/views/ecw/customerCommissionInfo/index.vue
+1
-1
index.vue
src/views/ecw/customerConfirm/index.vue
+21
-2
index.vue
src/views/ecw/customerToBeAssigned/index.vue
+19
-4
index.vue
src/views/ecw/deptTarget/index.vue
+16
-5
creatCollection.vue
src/views/ecw/financial/creatCollection.vue
+103
-64
creatPayment.vue
src/views/ecw/financial/creatPayment.vue
+2
-1
printPaymentVoucher.vue
src/views/ecw/financial/printPaymentVoucher.vue
+11
-7
printVoucher.vue
src/views/ecw/financial/printVoucher.vue
+70
-49
receiptDetail.vue
src/views/ecw/financial/receiptDetail.vue
+146
-57
receivable.vue
src/views/ecw/financial/receivable.vue
+5
-1
voucher.vue
src/views/ecw/financial/voucher.vue
+2
-2
index.vue
src/views/ecw/myCustomerService/index.vue
+19
-4
index.vue
src/views/ecw/oceanCustomer/index.vue
+16
-3
Commossion.vue
src/views/ecw/offer/components/Commossion.vue
+16
-2
SpecialDiscount.vue
src/views/ecw/offer/components/SpecialDiscount.vue
+16
-1
edit.vue
src/views/ecw/offer/edit.vue
+35
-26
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+1
-1
Release.vue
src/views/ecw/order/components/Release.vue
+1
-1
Transfer.vue
src/views/ecw/order/components/Transfer.vue
+5
-7
warehouseDetails.vue
src/views/ecw/order/components/warehouseDetails.vue
+6
-0
warehouseLocation.vue
src/views/ecw/order/components/warehouseLocation.vue
+85
-52
detail.vue
src/views/ecw/order/detail.vue
+15
-6
edit.vue
src/views/ecw/order/edit.vue
+34
-14
index.vue
src/views/ecw/order/exception/index.vue
+1
-1
index.vue
src/views/ecw/order/index.vue
+1
-1
prepayDeal.vue
src/views/ecw/order/prepayDeal.vue
+14
-8
singleApply.vue
src/views/ecw/order/singleApply.vue
+2
-1
Commission.vue
src/views/ecw/order/special/Commission.vue
+15
-1
Discount.vue
src/views/ecw/order/special/Discount.vue
+14
-1
transferWarehousing.vue
src/views/ecw/order/transferWarehousing.vue
+4
-6
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+3
-3
index.vue
src/views/ecw/order/warehousing/index.vue
+3
-3
batchEdit.vue
src/views/ecw/productPrice/batchEdit.vue
+48
-39
edit.vue
src/views/ecw/productPrice/edit.vue
+21
-6
No files found.
README.md
View file @
b706f640
捷道项目管理后台-前端
\ No newline at end of file
捷道项目管理后台-前端
后台:
本地运行:npm run dev
测试环境:npm run build:dev
生产环境:npm run build:prod
\ No newline at end of file
src/layout/components/Navbar.vue
View file @
b706f640
...
...
@@ -79,7 +79,7 @@ export default {
data
()
{
return
{
unreadMessage
,
locale
:
getLocale
(),
//
locale: getLocale(),
// 枚举
// langDatas: LangEnum.LANG,
notReadTotal
:
0
,
//要去取VUEX里面的未读数据总数,我不会,登录之后要调得到当前人未读记录总数接口放到VUEX中
...
...
@@ -87,8 +87,10 @@ export default {
}
},
created
()
{
this
.
$store
.
dispatch
(
'
getNotMessage
'
);
this
.
$store
.
dispatch
(
'
getToDoList
'
);
setInterval
(()
=>
{
this
.
$store
.
dispatch
(
'
getNotMessage
'
);
this
.
$store
.
dispatch
(
'
getToDoList
'
);
},
3000
)
},
components
:
{
Breadcrumb
,
...
...
@@ -128,7 +130,6 @@ export default {
matterNum
(){
return
this
.
$store
.
state
.
user
.
matterNum
}
},
watch
:{
lang
(
val
){
...
...
src/router/index.js
View file @
b706f640
...
...
@@ -255,7 +255,7 @@ export const constantRoutes = [
path
:
'
/customerCommissionInfo/:dictId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/ecw/customerCommissionInfo/index
'
],
resolve
),
name
:
'
customerCommissionInfo
'
,
meta
:
{
title
:
'
佣金
详情
'
,
icon
:
''
,
activeMenu
:
'
/customer/customerCommissionInfo
'
}
meta
:
{
title
:
'
佣金
设置
'
,
icon
:
''
,
activeMenu
:
'
/customer/customerCommissionInfo
'
}
},
{
path
:
'
edit/:customerId(
\\
d+)
'
,
...
...
@@ -306,7 +306,7 @@ export const constantRoutes = [
props: true,
name: 'discount1',
meta: {title: '订单折扣申请', icon: '', activeMenu: '/order/index'}
},
},
{
path: 'speciallight/:orderId(\\d+)',
component: (resolve) => import('@/views/ecw/order/special/light'),
...
...
src/store/modules/user.js
View file @
b706f640
...
...
@@ -34,10 +34,10 @@ const user = {
SET_PERMISSIONS
:
(
state
,
permissions
)
=>
{
state
.
permissions
=
permissions
},
NOt_MESSAGE
:(
state
,
notMessage
)
=>
{
SET_UNREAD
:(
state
,
notMessage
)
=>
{
state
.
notMessage
=
notMessage
;
},
GET_MAATER
:(
state
,
matterNum
)
=>
{
SET_TODO
:(
state
,
matterNum
)
=>
{
state
.
matterNum
=
matterNum
;
}
},
...
...
@@ -161,7 +161,7 @@ const user = {
getNotMessage
({
commit
}){
return
new
Promise
((
resolve
,
reject
)
=>
{
getNotReadInternalMessageTotal
().
then
((
r
)
=>
{
commit
(
'
NOt_MESSAGE
'
,
r
.
data
);
commit
(
'
SET_UNREAD
'
,
r
.
data
);
resolve
()
}).
catch
(
error
=>
{
reject
(
error
);
...
...
@@ -172,7 +172,7 @@ const user = {
getToDoList
({
commit
}){
return
new
Promise
((
resolve
,
reject
)
=>
{
taskTodoCount
().
then
(
r
=>
{
commit
(
'
GET_MAATER
'
,
r
.
data
)
commit
(
'
SET_TODO
'
,
r
.
data
)
resolve
()
}).
catch
(
err
=>
{
reject
(
err
)
...
...
src/utils/dict.js
View file @
b706f640
...
...
@@ -12,6 +12,7 @@ export const DICT_TYPE = {
AUDIT_STATUS
:
'
audit_status
'
,
ADVANCE_STATUS
:
'
advance_status
'
,
BOX_SHIPMENT_STATUS
:
'
box_shipment_status
'
,
BOX_SEA_AIR_SHIPMENT_STATUS
:
'
shipment_sea_air_state
'
,
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX
:
'
system_user_sex
'
,
...
...
src/views/bpm/processInstance/detail.vue
View file @
b706f640
...
...
@@ -568,14 +568,14 @@ export default {
if
(
pass
)
{
approveTask
(
data
).
then
(
response
=>
{
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
//
this.$store.commit('GET_MAATER', --p)
this
.
$modal
.
msgSuccess
(
"
审批通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
});
}
else
{
rejectTask
(
data
).
then
(
response
=>
{
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
//
this.$store.commit('GET_MAATER', --p)
this
.
$modal
.
msgSuccess
(
"
审批不通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
});
...
...
@@ -599,7 +599,7 @@ export default {
updateTaskAssignee
(
this
.
updateAssignee
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
转派任务成功!
"
);
let
p
=
this
.
matterNum
this
.
$store
.
commit
(
'
GET_MAATER
'
,
--
p
)
//
this.$store.commit('GET_MAATER', --p)
this
.
updateAssignee
.
open
=
false
;
this
.
getDetail
();
// 获得最新详情
});
...
...
src/views/bpm/processInstance/index.vue
View file @
b706f640
...
...
@@ -2,34 +2,37 @@
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"任务名称
"
prop=
"name"
>
<el-input
v-model=
"queryParams.
name"
placeholder=
"任务名称
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
:label=
"$t('流程编号')
"
prop=
"name"
>
<el-input
v-model=
"queryParams.
processDefinitionId"
:placeholder=
"$t('流程编号')
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"流程分类"
prop=
"category"
>
<el-select
v-model=
"queryParams.category"
placeholder=
"请选择流程分类"
clearable
>
<el-form-item
:label=
"$t('流程名称')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('任务名称')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('流程分类')"
prop=
"category"
>
<el-select
v-model=
"queryParams.category"
:placeholder=
"$t('请选择流程分类')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"提交时间
"
>
<el-form-item
:label=
"$t('提交时间')
"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-
placeholder=
"开始日期"
end-placeholder=
"结束日期
"
/>
type=
"daterange"
range-separator=
"-"
start-
:placeholder=
"$t('开始日期')"
end-:placeholder=
"$t('结束日期')
"
/>
</el-form-item>
<el-form-item
label=
"状态
"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态
"
clearable
>
<el-form-item
:label=
"$t('状态')
"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
:placeholder=
"$t('请选择状态')
"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS)"
:key=
"dict.value"
:label=
"
dict.label
"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"
$l(dict, 'label')
"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"结果
"
prop=
"result"
>
<el-select
v-model=
"queryParams.result"
placeholder=
"请选择流结果
"
clearable
>
<el-form-item
:label=
"$t('结果')
"
prop=
"result"
>
<el-select
v-model=
"queryParams.result"
:placeholder=
"$t('请选择流结果')
"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<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>
</el-form>
...
...
@@ -37,54 +40,55 @@
<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=
"['bpm:process-instance:query']"
>
发起流程
</el-button>
v-hasPermi=
"['bpm:process-instance:query']"
>
{{
$t
(
'
发起流程
'
)
}}
</el-button>
</el-col>
-->
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
width=
"320"
/>
<el-table-column
label=
"任务名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"流程分类"
align=
"center"
prop=
"category"
>
<el-table-column
:label=
"$t('流程编号')"
align=
"center"
prop=
"id"
width=
"320"
/>
<el-table-column
:label=
"$t('流程名称')"
align=
"center"
prop=
"name"
/>
<el-table-column
:label=
"$t('业务编号')"
align=
"center"
prop=
"businessNo"
/>
<el-table-column
:label=
"$t('流程分类')"
align=
"center"
prop=
"category"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_MODEL_CATEGORY"
:value=
"scope.row.category"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"当前审批任务
"
align=
"center"
prop=
"tasks"
>
<el-table-column
:label=
"$t('当前审批节点')
"
align=
"center"
prop=
"tasks"
>
<
template
slot-scope=
"scope"
>
<el-button
v-for=
"(task, taskIndex) in scope.row.tasks"
type=
"text"
@
click=
"handleFormDetail(task.id)"
:key=
"taskIndex"
>
<span>
{{
task
.
name
}}
</span>
</el-button>
</
template
>
</el-table-column>
<el-table-column
label=
"状态
"
align=
"center"
prop=
"status"
>
<el-table-column
:label=
"$t('状态')
"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"结果
"
align=
"center"
prop=
"result"
>
<el-table-column
:label=
"$t('结果')
"
align=
"center"
prop=
"result"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT"
:value=
"scope.row.result"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"提交时间
"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('提交时间')
"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"结束时间
"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('结束时间')
"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
endTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width
"
>
<
template
slot-scope=
"scope
"
>
<el-table-column
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
width=
"120px
"
>
<
div
slot-scope=
"scope"
style=
"white-space:nowrap
"
>
<el-button
type=
"text"
size=
"small"
icon=
"el-icon-delete"
v-if=
"scope.row.result === 1"
v-hasPermi=
"['bpm:process-instance:cancel']"
@
click=
"handleCancel(scope.row)"
>
取消
</el-button>
v-hasPermi=
"['bpm:process-instance:cancel']"
@
click=
"handleCancel(scope.row)"
>
{{$t('取消')}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleDetail(scope.row)"
v-hasPermi=
"['bpm:process-instance:query']"
>
详情
</el-button>
</
template
>
v-hasPermi=
"['bpm:process-instance:query']"
>
{{$t('详情')}}
</el-button>
</
div
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
...
...
@@ -160,17 +164,17 @@ export default {
/** 取消按钮操作 */
handleCancel
(
row
)
{
const
id
=
row
.
id
;
this
.
$prompt
(
'
请输入取消原因?
'
,
"
取消流程
"
,
{
this
.
$prompt
(
this
.
$t
(
'
请输入取消原因?
'
),
this
.
$t
(
"
取消流程
"
)
,
{
type
:
'
warning
'
,
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
confirmButtonText
:
this
.
$t
(
"
确定
"
)
,
cancelButtonText
:
this
.
$t
(
"
取消
"
)
,
inputPattern
:
/^
[\s\S]
*.*
[^\s][\s\S]
*$/
,
// 判断非空,且非空格
inputErrorMessage
:
"
取消原因不能为空
"
,
inputErrorMessage
:
this
.
$t
(
"
取消原因不能为空
"
)
,
}).
then
(({
value
})
=>
{
return
cancelProcessInstance
(
id
,
value
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
取消成功
"
);
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
取消成功
"
)
);
})
},
/** 处理详情按钮 */
...
...
src/views/bpm/task/copy.vue
View file @
b706f640
...
...
@@ -2,21 +2,21 @@
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"任务编号
"
prop=
"processId"
>
<el-input
v-model=
"queryParams.instanceId"
placeholder=
"请输入任务编号
"
clearable
/>
<el-form-item
:label=
"$t('流程编号')
"
prop=
"processId"
>
<el-input
v-model=
"queryParams.instanceId"
:placeholder=
"$t('请输入流程编号')
"
clearable
/>
</el-form-item>
<el-form-item
label=
"流程分类"
prop=
"processName"
>
<el-select
v-model=
"queryParams.categoryId"
placeholder=
"请选择流程分类"
clearable
>
<el-form-item
:label=
"$t('流程名称')"
prop=
"processName"
>
<el-input
v-model=
"queryParams.processName"
:placeholder=
"$t('请输入任务名称')"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('流程分类')"
prop=
"processName"
>
<el-select
v-model=
"queryParams.categoryId"
:placeholder=
"$t('请选择流程分类')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key=
"dict.value"
:label=
"
dict.label
"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"
$l(dict, 'label')
"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"任务名称"
prop=
"processName"
>
<el-input
v-model=
"queryParams.processName"
placeholder=
"请输入任务名称"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期
"
/>
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')
"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
...
...
@@ -26,23 +26,33 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"任务编号"
align=
"center"
prop=
"instanceId"
width=
"320"
/>
<el-table-column
label=
"流程分类"
align=
"center"
prop=
"categoryId"
>
<el-table-column
:label=
"$t('流程编号')"
align=
"center"
prop=
"instanceId"
width=
"320"
/>
<el-table-column
:label=
"$t('流程名称')"
align=
"center"
prop=
"processName"
/>
<!--
<el-table-column
:label=
"$t('业务编号')"
align=
"center"
prop=
"processName"
/>
-->
<el-table-column
:label=
"$t('流程分类')"
align=
"center"
prop=
"categoryId"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_MODEL_CATEGORY"
:value=
"scope.row.categoryId"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"任务名称"
align=
"center"
prop=
"processName"
/>
<el-table-column
label=
"流程发起人"
align=
"center"
prop=
"originatorName"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<!-- <el-table-column :label="$t('当前审批节点')" align="center" prop="originatorName"/>
<el-table-column :label="$t('状态')" align="center" prop="originatorName"/>
<el-table-column :label="$t('结果')" align="center" prop="originatorName"/> -->
<!-- <el-table-column :label="$t('流程发起人')" align="center" prop="originatorName"/> -->
<el-table-column
:label=
"$t('提交时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<!-- <el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
<el-table-column
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleAudit(scope.row)"
v-hasPermi=
"['bpm:task:query']"
>
详情
v-hasPermi=
"['bpm:task:query']"
>
{{
$t
(
'
详情
'
)
}}
</el-button>
</
template
>
</el-table-column>
...
...
src/views/bpm/task/done.vue
View file @
b706f640
...
...
@@ -3,29 +3,28 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"编号"
prop=
"processInstanceId"
>
<el-input
v-model=
"queryParams.processInstanceId"
:placeholder=
"$t('编号')"
clearable
<el-form-item
label=
"
流程
编号"
prop=
"processInstanceId"
>
<el-input
v-model=
"queryParams.processInstanceId"
:placeholder=
"$t('
流程
编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('流程名')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('流程名')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
:label=
"$t('流程名
称
')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('流程名
称
')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('流程分类')"
prop=
"category"
>
<el-select
v-model=
"queryParams.category"
:placeholder=
"$t('请选择流程分类')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key=
"dict.value"
:label=
"
dict.label
"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"
$l(dict, 'label')
"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('业务编号')"
prop=
"businessNo"
>
<el-input
v-model=
"queryParams.businessNo"
:placeholder=
"$t('请输入业务编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('提交时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<
<!-- el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input
v-model=
"queryParams.businessNo"
:placeholder=
"$t('请输入业务编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</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>
...
...
@@ -34,19 +33,20 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('
编号')"
align=
"center"
prop=
"
id"
width=
"320"
fixed
/>
<el-table-column
:label=
"$t('流程名')"
align=
"center"
prop=
"processInstance.name"
width=
"200"
/>
<el-table-column
:label=
"$t('
流程编号')"
align=
"center"
prop=
"processInstance.
id"
width=
"320"
fixed
/>
<el-table-column
:label=
"$t('流程名
称
')"
align=
"center"
prop=
"processInstance.name"
width=
"200"
/>
<el-table-column
:label=
"$t('业务编号')"
align=
"center"
prop=
"businessNo"
/>
<el-table-column
:label=
"$t('流程分类')"
align=
"center"
prop=
"category"
width=
"200"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_MODEL_CATEGORY"
:value=
"scope.row.category"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('当前审批节点')"
align=
"center"
prop=
"name"
width=
"200"
/>
<!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >
缺少字段
</el-table-column> -->
<
el-table-column
:label=
"$t('流程发起人')"
align=
"center"
prop=
"processInstance.startUserNickname"
width=
"120"
/
>
<
!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>--
>
<el-table-column
:label=
"$t('结果')"
align=
"center"
prop=
"result"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT"
:value=
"scope.row.result"
/>
...
...
src/views/bpm/task/todo.vue
View file @
b706f640
...
...
@@ -2,31 +2,28 @@
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"流程编号
"
prop=
"processInstanceId"
>
<el-form-item
:label=
"$t('流程编号')
"
prop=
"processInstanceId"
>
<el-input
v-model=
"queryParams.processInstanceId"
:placeholder=
"$t('流程编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('
任务
名称')"
prop=
"name"
>
<el-form-item
:label=
"$t('
流程
名称')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('任务名称')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('流程分类')"
prop=
"category"
>
<el-select
v-model=
"queryParams.category"
:placeholder=
"$t('请选择流程分类')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key=
"dict.value"
:label=
"
dict.label
"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"
$l(dict, 'label')
"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('业务编号')"
prop=
"businessNo"
>
<el-input
v-model=
"queryParams.businessNo"
:placeholder=
"$t('请输入业务编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('提交时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('业务编号')"
prop=
"businessNo"
>
<el-input
v-model=
"queryParams.businessNo"
:placeholder=
"$t('请输入业务编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
...
...
@@ -36,44 +33,51 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('
任务编号')"
align=
"center"
prop=
"
id"
width=
"320"
/>
<el-table-column
:label=
"$t('
任务
名称')"
align=
"center"
prop=
"processInstance.name"
width=
"320"
/>
<el-table-column
:label=
"$t('业务编号')"
align=
"center"
prop=
"businessNo"
/>
<el-table-column
:label=
"$t('
流程编号')"
align=
"center"
prop=
"processInstance.
id"
width=
"320"
/>
<el-table-column
:label=
"$t('
流程
名称')"
align=
"center"
prop=
"processInstance.name"
width=
"320"
/>
<el-table-column
:label=
"$t('流程分类')"
align=
"center"
prop=
"category"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BPM_MODEL_CATEGORY"
:value=
"scope.row.category"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('业务编号')"
align=
"center"
prop=
"businessNo"
/>
<el-table-column
:label=
"$t('当前审批节点')"
align=
"center"
prop=
"name"
/>
<el-table-column
:label=
"$t('状态')"
align=
"center"
prop=
"version"
width=
"80"
>
<
!-- <
el-table-column :label="$t('状态')" align="center" prop="version" width="80">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.suspensionState === 1">{{ $t('激活') }}</el-tag>
<el-tag type="warning" v-if="scope.row.suspensionState === 2">{{ $t('挂起') }}</el-tag>
</template>
</el-table-column>
</el-table-column>
-->
<el-table-column
:label=
"$t('结果')"
align=
"center"
prop=
"result"
>
<
!-- <
el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/>
</template>
</el-table-column>
</el-table-column>
-->
<el-table-column
:label=
"$t('提交时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('结束时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
!-- <
el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime) }}</span>
</template>
</el-table-column>
</el-table-column>
-->
<el-table-column
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<!--
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleCancel(scope.row)"
v-hasPermi=
"['bpm:task:update']"
>
{{
$t
(
'
取消
'
)
}}
</el-button>
-->
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleAudit(scope.row)"
v-hasPermi=
"['bpm:task:update']"
>
{{
$t
(
'
详情
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleAudit(scope.row)"
v-hasPermi=
"['bpm:task:update']"
>
{{
$t
(
'
审批
'
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -86,7 +90,7 @@
<
script
>
import
{
getTodoTaskPage
}
from
'
@/api/bpm/task
'
import
{
cancelProcessInstance
}
from
"
@/api/bpm/processInstance
"
;
export
default
{
name
:
"
Todo
"
,
components
:
{},
...
...
@@ -142,6 +146,21 @@ export default {
handleAudit
(
row
)
{
this
.
$router
.
push
({
path
:
"
/bpm/process-instance/detail
"
,
query
:
{
id
:
row
.
processInstance
.
id
}});
},
handleCancel
(
row
)
{
const
id
=
row
.
id
;
this
.
$prompt
(
this
.
$t
(
'
请输入取消原因?
'
),
this
.
$t
(
"
取消流程
"
),
{
type
:
'
warning
'
,
confirmButtonText
:
this
.
$t
(
"
确定
"
),
cancelButtonText
:
this
.
$t
(
"
取消
"
),
inputPattern
:
/^
[\s\S]
*.*
[^\s][\s\S]
*$/
,
// 判断非空,且非空格
inputErrorMessage
:
this
.
$t
(
"
取消原因不能为空
"
),
}).
then
(({
value
})
=>
{
return
cancelProcessInstance
(
id
,
value
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
取消成功
"
));
})
},
}
};
</
script
>
src/views/dashboard/PanelGroup.vue
View file @
b706f640
...
...
@@ -35,7 +35,7 @@
<div
class=
"card-panel-text"
>
{{
$t
(
'
待办事项
'
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"
data.
todoCount"
:duration=
"3200"
class=
"card-panel-num"
/>
<count-to
:start-val=
"0"
:end-val=
"todoCount"
:duration=
"3200"
class=
"card-panel-num"
/>
</div>
</div>
</el-col>
...
...
@@ -72,13 +72,15 @@
import
CountTo
from
'
vue-count-to
'
import
{
panelData
}
from
'
@/api/system/pannel
'
import
{
checkPermi
}
from
'
@/utils/permission
'
import
{
taskTodoCount
}
from
'
@/api/bpm/task
'
export
default
{
components
:
{
CountTo
},
data
(){
return
{
data
:
null
data
:
null
,
todoCount
:
0
}
},
methods
:
{
...
...
@@ -91,6 +93,9 @@ export default {
panelData
().
then
(
res
=>
{
this
.
data
=
res
.
data
})
taskTodoCount
().
then
(
res
=>
{
this
.
todoCount
=
res
.
data
})
}
}
</
script
>
...
...
src/views/ecw/box/indexSeaAir.vue
View file @
b706f640
...
...
@@ -100,7 +100,7 @@
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BOX_
ORDER_SHIPMENT_STATE
)"
v-for=
"dict in this.getDictDatas(DICT_TYPE.BOX_
SEA_AIR_SHIPMENT_STATUS
)"
:key=
"dict.value"
:label=
"$l(dict, 'label')"
:value=
"dict.value"
...
...
@@ -481,6 +481,9 @@ export default {
this
.
$set
(
this
.
dialogCfg
,
"
width
"
,
"
600px
"
);
this
.
$set
(
this
.
dialogCfg
,
"
fullscreen
"
,
false
);
this
.
$set
(
this
.
dialogCfg
,
"
open
"
,
true
);
this
.
currRow
=
{
transportType
:
"
4
"
,
};
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
...
...
src/views/ecw/box/query.vue
View file @
b706f640
...
...
@@ -27,7 +27,7 @@
{{
getCabinetLabel
(
shipmentObj
.
cabinetId
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('状态')"
>
{{
getBoxStatus
(
shipmentObj
)
}}
{{
shipmentObj
.
shipmentStatusText
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总计')"
>
{{
getBoxSum
(
shipmentObj
.
boxStatistics
)
}}
...
...
src/views/ecw/coupon/edit.vue
View file @
b706f640
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"类型"
prop=
"type"
:rules=
'[
{required: true, message: "请选择类型"
}]'>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
:disabled=
"readonly"
>
<el-form-item
:label=
"$t('类型')"
prop=
"type"
:rules=
'[
{required: true, message: $t("请选择类型")
}]'>
<dict-selector
:type=
"DICT_TYPE.ECW_COUPON_TYPE"
v-model.number=
"form.type"
placeholder=
"请选择类型
"
:placeholder=
"$t('请选择类型')
"
:disabled=
"!!form.couponId"
/>
</el-form-item>
<el-form-item
label=
"标题中文"
prop=
"titleZh"
:rules=
'[
{required: true, message: "不能为空"
}]'>
<el-form-item
:label=
"$t('标题中文')"
prop=
"titleZh"
:rules=
'[
{required: true, message: $t("不能为空")
}]'>
<el-input
v-model=
"form.titleZh"
placeholder=
"请输入标题-中文
"
:placeholder=
"$t('请输入中文标题')
"
/>
</el-form-item>
<el-form-item
label=
"标题英文"
prop=
"titleEn"
:rules=
'[
{required: true, message: "不能为空"
}]'>
<el-form-item
:label=
"$t('标题英文')"
prop=
"titleEn"
:rules=
'[
{required: true, message: $t("不能为空")
}]'>
<el-input
v-model=
"form.titleEn"
placeholder=
"请输入标题-英文
"
:placeholder=
"$t('请输入英文标题')
"
/>
</el-form-item>
<el-form-item
label=
"有效期
"
prop=
"titleEn"
>
<el-form-item
:label=
"$t('有效期')
"
prop=
"titleEn"
>
<el-date-picker
clearable
v-model=
"form.startTime"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择开始时间
"
:placeholder=
"$t('选择开始时间')
"
/>
~
<el-date-picker
...
...
@@ -35,27 +35,27 @@
v-model=
"form.endTime"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择结束时间
"
:placeholder=
"$t('选择结束时间')
"
/>
注意:留空则表示永久有效
{{
$t
(
'
注意:留空则表示永久有效
'
)
}}
</el-form-item>
<!--1:优惠卷 2:金额-满减 3:方数-满减 4 折扣 5优惠 6 特价 7区间价-->
<el-form-item
label=
"优惠券金额
"
v-if=
"form.type == 1"
>
<el-form-item
:label=
"$t('优惠券金额')
"
v-if=
"form.type == 1"
>
<div
class=
"fee-item"
>
<el-input
v-model=
"form.reduceAmount"
style=
"width:100px"
/>
<selector
v-model=
"form.reduceCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<span>
满
</span>
<span>
{{
$t
(
'
满
'
)
}}
</span>
<el-input
type=
"number"
v-model=
"form.cashCondition"
style=
"width:100px"
/>
<span>
使用
</span>
<span
style=
"color:red"
>
注意:留空则表示不受满金额限制
</span>
<span>
{{
$t
(
'
使用
'
)
}}
</span>
<span
style=
"color:red"
>
{{
$t
(
'
注意:留空则表示不受满金额限制
'
)
}}
</span>
</div>
</el-form-item>
<el-form-item
label=
"*运费"
v-if=
"[2,3,4,5,6,7].indexOf(form.type) > -1"
>
<div
class=
"fee-item"
v-for=
"(item, index) in fee[1]"
:key=
"index"
>
<template
v-if=
"[1,2,3,4,5].indexOf(form.type) > -1"
>
满
{{
$t
(
'
满
'
)
}}
<el-input
v-model=
"item.fullAmount"
type=
"number"
style=
"width:100px"
/>
<!--
<el-select
v-model=
"item.fullCurrencyId"
style=
"width:100px"
>
<el-option
v-for=
"item in currencyList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
/>
...
...
@@ -63,10 +63,10 @@
<selector
v-if=
"[4,5].indexOf(form.type) > -1"
v-model=
"item.fullCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-if=
"form.type == 2"
v-model=
"item.combUnit"
:options=
"combUnitList"
label-field=
"label"
value-field=
"value"
defaultable
style=
"width:100px"
/>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
减
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
折扣率
</span>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
{{
$t
(
'
减
'
)
}}
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
{{
$t
(
'
折扣率
'
)
}}
</span>
<span
v-if=
"[5].indexOf(form.type) > -1"
>
收
</span>
<span
v-if=
"[5].indexOf(form.type) > -1"
>
{{
$t
(
'
收
'
)
}}
</span>
<el-input
v-if=
"[2,3,4].indexOf(form.type) > -1"
type=
"number"
v-model=
"item.reduceAmount"
style=
"width:100px"
/>
...
...
@@ -77,7 +77,7 @@
>
<el-input
v-model=
"item.startAmount"
type=
"number"
style=
"width:100px"
/>
≤
<el-input
v-model=
"item.endAmount"
type=
"number"
style=
"width:100px"
/>
<selector
v-model=
"item.startAndEndCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
价格
{{
$t
(
'
价格
'
)
}}
</
template
>
<el-input
v-if=
"[5,6,7].indexOf(form.type) > -1"
type=
"number"
v-model=
"item.netReceiptsAmount"
style=
"width:100px"
/>
...
...
@@ -93,18 +93,18 @@
</div>
</el-form-item>
<el-form-item
label=
"清关费
"
v-if=
"[2,3,4,5,6,7].indexOf(form.type) > -1"
>
<el-form-item
:label=
"$t('清关费')
"
v-if=
"[2,3,4,5,6,7].indexOf(form.type) > -1"
>
<div
class=
"fee-item"
v-for=
"(item, index) in fee[2]"
:key=
"index"
>
<
template
v-if=
"[1,2,3,4,5].indexOf(form.type) > -1"
>
满
{{
$t
(
'
满
'
)
}}
<el-input
v-model=
"item.fullAmount"
type=
"number"
style=
"width:100px"
/>
<selector
v-if=
"[2,4,5].indexOf(form.type) > -1"
v-model=
"item.fullCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-if=
"form.type == 3"
v-model=
"item.prodUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
减
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
折扣率
</span>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
{{
$t
(
'
减
'
)
}}
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
{{
$t
(
'
折扣率
'
)
}}
</span>
<span
v-if=
"[5].indexOf(form.type) > -1"
>
收
</span>
<span
v-if=
"[5].indexOf(form.type) > -1"
>
{{
$t
(
'
收
'
)
}}
</span>
<el-input
v-if=
"[2,3,4].indexOf(form.type) > -1"
type=
"number"
v-model=
"item.reduceAmount"
style=
"width:100px"
/>
...
...
@@ -115,7 +115,7 @@
>
<el-input
v-model=
"item.startAmount"
type=
"number"
style=
"width:100px"
/>
≤
<el-input
v-model=
"item.endAmount"
type=
"number"
style=
"width:100px"
/>
<Selector
v-model=
"item.startAndEndCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
价格
{{
$t
(
'
价格
'
)
}}
</
template
>
<el-input
v-if=
"[5,6,7].indexOf(form.type) > -1"
type=
"number"
v-model=
"item.netReceiptsAmount"
style=
"width:100px"
/>
...
...
@@ -132,7 +132,7 @@
</el-form-item>
<el-form-item
label=
"叠加优惠
"
prop=
"discountDetailed"
>
<el-form-item
:label=
"$t('叠加优惠')
"
prop=
"discountDetailed"
>
<div
class=
"coupon-list"
>
<el-checkbox-group
v-model=
"couponIds"
>
<div
class=
"coupon-item"
v-for=
"item in availCouponList"
:key=
"item.couponId"
>
...
...
@@ -140,12 +140,12 @@
</div>
</el-checkbox-group>
<div
v-if=
"!availCouponList.length"
style=
"padding:50px"
>
暂无可用优惠券
{{$t('暂无可用优惠券')}}
</div>
</div>
</el-form-item>
<el-form-item
label=
"同类优惠不叠加
"
:label=
"$t('同类优惠不叠加')
"
prop=
"isSimilarSuperposition"
v-if=
"form.type != 1"
>
...
...
@@ -154,19 +154,19 @@
:type=
"DICT_TYPE.ECW_YESNO"
v-model=
"form.isSimilarSuperposition"
formatter=
"bool"
placeholder=
"请选择类型
"
:placeholder=
"$t('请选择类型')
"
/>
</el-form-item>
<!-- <el-form-item
label="可叠加优惠劵列表
" prop="couponIds" v-if="form.type != 1">
<!-- <el-form-item
:label="$t('可叠加优惠劵列表')
" prop="couponIds" v-if="form.type != 1">
<el-input
v-model="form.couponIds"
placeholder="请输入可叠加优惠劵列表
"
:placeholder="$t('请输入可叠加优惠劵列表')
"
/>
</el-form-item> -->
<el-form-item
label=
"适用用户
"
:label=
"$t('适用用户')
"
prop=
"suitableUserType"
>
<dict-selector
v-if=
"form.type != 1"
:type=
"DICT_TYPE.ECW_SUITABLE_USER_TYPE"
v-model=
"form.suitableUserType"
defaultable
/>
...
...
@@ -174,7 +174,7 @@
<customer-contacts-selector
v-if=
"showCustomerSelector"
v-model=
"form.customerIds"
style=
"margin-top:5px"
/>
</el-form-item>
<el-form-item
label=
"适用线路类型
"
:label=
"$t('适用线路类型')
"
prop=
"suitableLineType"
v-if=
"form.type != 1"
>
...
...
@@ -182,7 +182,7 @@
<routers-selector
v-if=
"showRouterSelector"
v-model=
"form.lineIds"
style=
"margin-top:5px"
/>
</el-form-item>
<el-form-item
label=
"适用商品
"
:label=
"$t('适用商品')
"
prop=
"prodIds"
v-if=
"form.type != 1"
>
...
...
@@ -190,50 +190,51 @@
<products-selector
v-model=
"form.prodIds"
/>
</el-form-item>
<el-form-item
label=
"订单属性
"
:label=
"$t('订单属性')
"
prop=
"orderAttr"
v-if=
"form.type != 1"
>
<dict-selector
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_ORDER_ATTR"
v-model=
"form.orderAttrArr"
multiple
/>
</el-form-item>
<!-- <el-form-item
label="是否发送站内信
" prop="isSiteContent">
<!-- <el-form-item
:label="$t('是否发送站内信')
" prop="isSiteContent">
<dict-selector formatter="bool" form-type="radio" :type="DICT_TYPE.ECW_YESNO" v-model="form.isSiteContent" :formater="Boolean" />
</el-form-item> -->
<el-form-item
label=
"中文内容"
prop=
"contentZh"
:rules=
'[{required: true, message: "不能为空"
}]'
>
<el-form-item
:label=
"$t('中文内容')"
prop=
"contentZh"
:rules=
'[{required: true, message: $t("不能为空")
}]'
>
<editor
v-model=
"form.contentZh"
:min-height=
"192"
/>
</el-form-item>
<el-form-item
label=
"英文内容"
prop=
"contentEn"
:rules=
'[{required: true, message: "不能为空"
}]'
>
<el-form-item
:label=
"$t('英文内容')"
prop=
"contentEn"
:rules=
'[{required: true, message: $t("不能为空")
}]'
>
<editor
v-model=
"form.contentEn"
:min-height=
"192"
/>
</el-form-item>
<el-form-item
label=
"品牌
"
:label=
"$t('品牌')
"
prop=
"brand"
v-if=
"form.type != 1"
>
<dict-selector
form-type=
"checkbox"
:type=
"DICT_TYPE.BRAND_REG_TYPE"
v-model=
"form.brandArr"
multiple
/>
</el-form-item>
<el-form-item
label=
"是否控货
"
:label=
"$t('是否控货')
"
prop=
"isCargoControl"
v-if=
"form.type != 1"
>
<dict-selector
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_YESNO"
v-model=
"form.isCargoControlArr"
multiple
/>
</el-form-item>
<el-form-item
label=
"单证报关
"
:label=
"$t('单证报关')
"
prop=
"documentDeclaration"
v-if=
"form.type != 1"
>
<dict-selector
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.documentDeclarationArr"
multiple
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
保 存
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm(1)"
>
发 布
</el-button>
<el-button
@
click=
"$router.back()"
>
返 回
</el-button>
<el-button
type=
"default"
@
click=
"reset"
>
重 置
</el-button>
</el-form-item>
</el-form>
<div
class=
"pl-100"
>
<
template
v-if=
"!readonly"
>
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
{{
$t
(
'
保存
'
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm(1)"
>
{{
$t
(
'
发布
'
)
}}
</el-button>
<el-button
type=
"default"
@
click=
"reset"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
</
template
>
<el-button
@
click=
"$router.back()"
>
{{$t('返回')}}
</el-button>
</div>
</div>
</template>
<
script
>
...
...
@@ -261,16 +262,17 @@ export default {
return
{
// 遮罩层
loading
:
true
,
readonly
:
false
,
// 表单参数
form
:
{
status
:
1
,
},
// 表单校验
rules
:
{
isCargoControl
:
[{
required
:
true
,
message
:
'
请选择是否控货
'
}],
brand
:
[{
required
:
true
,
message
:
'
请选择品牌
'
}],
orderAttr
:
[{
required
:
true
,
message
:
'
请选择订单属性
'
}],
documentDeclaration
:
[{
required
:
true
,
message
:
'
请选择单证报关
'
}]
isCargoControl
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择是否控货
'
)
}],
brand
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择品牌
'
)
}],
orderAttr
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择订单属性
'
)
}],
documentDeclaration
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择单证报关
'
)
}]
},
currencyList
:[],
/* clearanceFeeList:[{},{}],
...
...
@@ -280,9 +282,9 @@ export default {
couponList
:
[],
// 优惠券列表
couponIds
:[],
fee
:{
1
:
[
{
type
:
1
},{
type
:
1
}],
// 运费
2
:
[
{
type
:
2
},{
type
:
2
}],
// 清关费
3
:
[
{}]
// 优惠券专用
1
:
[
],
2
:
[
],
3
:
[
]
}
};
},
...
...
@@ -311,13 +313,13 @@ export default {
return
3
}
let
costType
=
null
for
(
let
type
in
this
.
fee
){
for
(
let
type
in
this
.
fee
){
let
feeList
=
this
.
fee
[
type
]
feeList
.
forEach
(
item
=>
{
if
(
item
.
reduceAmount
){
costType
=
type
return
false
}
costType
=
type
return
false
}
})
}
return
costType
...
...
@@ -383,37 +385,50 @@ export default {
}
},
created
()
{
if
(
this
.
$route
.
query
.
readonly
==
1
){
this
.
readonly
=
true
}
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
if
(
this
.
$route
.
query
.
id
)
{
getCoupon
(
this
.
$route
.
query
.
id
).
then
((
res
)
=>
{
this
.
form
=
res
.
data
if
(
this
.
form
.
couponIds
){
let
couponIds
=
this
.
form
.
couponIds
.
split
(
'
,
'
).
filter
(
item
=>
item
&&
item
!=
''
)
console
.
log
({
couponIds
})
this
.
$nextTick
(
res
=>
{
this
.
couponIds
=
couponIds
.
map
(
item
=>
parseInt
(
item
))
})
}
if
(
this
.
$route
.
query
.
id
)
{
getCoupon
(
this
.
$route
.
query
.
id
).
then
((
res
)
=>
{
this
.
form
=
res
.
data
if
(
this
.
form
.
couponIds
){
let
couponIds
=
this
.
form
.
couponIds
.
split
(
'
,
'
).
filter
(
item
=>
item
&&
item
!=
''
)
console
.
log
({
couponIds
})
this
.
$nextTick
(
res
=>
{
this
.
couponIds
=
couponIds
.
map
(
item
=>
parseInt
(
item
))
})
}
if
(
this
.
form
.
discountDetailedVOs
){
/* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */
this
.
fee
[
this
.
form
.
costType
]
=
this
.
form
.
discountDetailedVOs
}
if
(
this
.
costType
!=
this
.
form
.
costType
){
console
.
error
(
`费用类型冲突,计算出来的类型为
${
this
.
costType
}
,接口费用类型为
${
res
.
data
.
costType
}
,类型为
${
res
.
data
.
type
}
`
)
this
.
$alert
(
'
费用类型冲突
'
)
}
// 非优惠券需要查询出优惠券作为叠加备选
if
(
this
.
form
.
type
!=
1
){
this
.
getCouponSelect
()
}
if
(
this
.
form
.
discountDetailedVOs
){
/* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */
// this.fee[this.form.costType] = this.form.discountDetailedVOs.filter(item => item.type == this.form.costType)
}
this
.
form
.
discountDetailedVOs
.
forEach
(
item
=>
{
this
.
fee
[
item
.
type
].
push
(
item
)
})
/* if(this.costType != this.form.costType){
console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`)
this.$alert(this.$t('费用类型冲突'))
} */
// 非优惠券需要查询出优惠券作为叠加备选
if
(
this
.
form
.
type
!=
1
){
this
.
getCouponSelect
()
}
// 如果是复制,则需要去掉id
if
(
this
.
$route
.
query
.
action
==
'
copy
'
){
this
.
form
.
couponId
=
null
}
// 如果是复制,则需要去掉id
if
(
this
.
$route
.
query
.
action
==
'
copy
'
){
this
.
form
.
couponId
=
null
}
);
})
}
// 不是编辑查看则给默认的费用表格
else
{
this
.
fee
=
{
1
:
[{
type
:
1
},{
type
:
1
}],
// 运费
2
:
[{
type
:
2
},{
type
:
2
}],
// 清关费
3
:
[{}]
// 优惠券专用
}
}
this
.
reset
()
},
...
...
@@ -469,7 +484,7 @@ export default {
return
;
}
if
(
!
this
.
costType
){
return
this
.
$message
(
'
暂无费用设置
'
)
return
this
.
$message
(
this
.
$t
(
'
暂无费用设置
'
)
)
}
// 非有优惠券需要把运费和清关费一起提交
let
discountDetailedVOs
=
this
.
costType
==
3
?
this
.
fee
[
3
]
:
this
.
fee
[
1
].
concat
(
this
.
fee
[
2
]).
filter
(
item
=>
item
.
netReceiptsAmount
||
item
.
fullAmount
)
...
...
@@ -494,14 +509,14 @@ export default {
// 修改的提交
if
(
data
.
couponId
!=
null
)
{
updateCoupon
(
data
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
)
);
this
.
$redirect
(
"
index
"
);
});
return
;
}
// 添加的提交
createCoupon
(
data
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
新增成功
"
)
);
this
.
$redirect
(
"
index
"
);
});
});
...
...
src/views/ecw/coupon/index.vue
View file @
b706f640
...
...
@@ -161,6 +161,8 @@
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row, true)"
v-hasPermi=
"['ecw:coupon:update']"
>
查看
</el-button>
<el-button
v-if=
"scope.row.status != 1"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:coupon:update']"
>
编辑
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleCopy(scope.row)"
...
...
@@ -277,9 +279,13 @@ export default {
return
this
.
$router
.
push
(
'
edit
'
)
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
,
readonly
)
{
const
couponId
=
row
.
couponId
;
return
this
.
$router
.
push
(
'
edit?id=
'
+
couponId
)
let
url
=
'
edit?id=
'
+
couponId
if
(
readonly
){
url
+=
'
&readonly=1
'
}
return
this
.
$router
.
push
(
url
)
},
handleCopy
(
row
){
this
.
$router
.
push
(
'
edit?action=copy&id=
'
+
row
.
couponId
)
...
...
src/views/ecw/customer/edit.vue
View file @
b706f640
<
template
xmlns=
""
>
<div>
<el-row
type=
"flex"
style=
"margin-top: 15px;margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"22"
:xl=
"20"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
...
...
@@ -103,7 +102,7 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
:disabled=
"!!(customerId !== '0' && form.customerService
)"
>
<el-select
v-model=
"form.customerService"
:placeholder=
"$t('请选择客户经理')"
:disabled=
"(!!(customerId !== '0' && form.customerService) || isCustomerServiceConfirmed
)"
>
<el-option
v-for=
"item in serviceUserList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
/>
</el-select>
...
...
@@ -169,7 +168,7 @@
</el-col>
<el-col
:span=
"24"
>
<el-form-item
:label=
"$t('到仓确认')"
prop=
"arrivalConfirm"
>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"
0"
:inactive-value=
"1
"
/>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"
1"
:inactive-value=
"0
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"13"
>
...
...
@@ -282,7 +281,7 @@
>
<
template
v-slot =
"{row}"
>
<el-form-item
label=
""
>
<el-select
v-model=
"row.userid"
remote
:remote-method=
"getUserMemberUserFn"
@
change=
"selectBD"
size=
"mini"
filterable
>
<el-select
v-model=
"row.userid"
clearable
remote
:remote-method=
"getUserMemberUserFn"
@
change=
"selectBD"
size=
"mini"
filterable
>
<el-option
v-for=
"(item,index) in userMemberUser"
:value=
"item.id"
:key=
"index"
:label=
"item.nickname + '(' + item.mobile + ')'"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -430,7 +429,7 @@ import {customerDropDownList} from "@/api/ecw/customerCommissionInfo";
export
default
{
name
:
"
edit
"
,
props
:
{
customerId
:
String
customerId
:
String
,
},
components
:
{
Template
,
...
...
@@ -438,6 +437,7 @@ export default {
CustomerLineTable
},
created
()
{
this
.
isCustomerServiceConfirmed
=
this
.
$route
.
query
.
isCustomerServiceConfirmed
?
true
:
false
this
.
getCustomerSelect
()
this
.
reset
()
this
.
getUserMemberUserFn
()
...
...
@@ -462,6 +462,10 @@ export default {
}
else
{
// 新建客户
this
.
handleAddContact
()
if
(
this
.
isCustomerServiceConfirmed
){
console
.
log
(
this
.
userId
);
this
.
form
.
customerService
=
this
.
userId
}
}
getNodeList
().
then
(
r
=>
{
...
...
@@ -489,6 +493,7 @@ export default {
},
data
(){
return
{
isCustomerServiceConfirmed
:
false
,
getDictDatas
,
DICT_TYPE
,
...
...
@@ -595,6 +600,9 @@ export default {
}
},
selectBD
(
val
){
if
(
!
val
){
return
}
let
i
=
this
.
selectMemberList
.
find
(
item
=>
item
.
id
===
val
);
if
(
i
===
undefined
){
this
.
selectMemberList
.
push
(
this
.
memberList
.
find
(
item
=>
item
.
id
===
val
))
...
...
@@ -642,6 +650,8 @@ export default {
return
;
}
// 添加的提交
//我的客户页面跳转直接
form
.
isCustomerServiceConfirmed
=
true
;
createCustomer
(
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
新增成功
'
));
this
.
open
=
false
;
...
...
@@ -752,6 +762,9 @@ export default {
}
},
computed
:
{
userId
(){
return
this
.
$store
.
state
.
user
.
id
},
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 @
b706f640
...
...
@@ -19,7 +19,7 @@
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
...
...
@@ -34,7 +34,7 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('国家')"
prop=
"source"
>
<el-select
clearable
v-model=
"
form
.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
clearable
v-model=
"
queryParams
.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
...
...
@@ -50,7 +50,7 @@
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"
form.l
evel"
>
<el-select
clearable
v-model=
"
queryParams.creditL
evel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -71,7 +71,7 @@
v-hasPermi=
"['ecw:customer:export']"
>
{{
$t
(
'
导出
'
)
}}
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"transferShow = true;"
:loading=
"exportLoading"
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"transferShow = true;"
v-hasPermi=
"['ecw:customer:export']"
>
{{
$t
(
'
批量移交
'
)
}}
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
...
...
@@ -529,6 +529,8 @@ export default {
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -651,6 +653,19 @@ export default {
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
...
...
src/views/ecw/customerCommissionInfo/index.vue
View file @
b706f640
...
...
@@ -4,7 +4,7 @@
<el-card
class=
"box-card"
style=
"padding: 10px"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-row>
<el-col
:span=
"
5
"
>
<el-col
:span=
"
8
"
>
<el-form-item
:label=
"$t('客户名称')"
prop=
"customerId"
>
<div
style=
"display: flex"
>
<el-input
readonly=
"readonly"
:placeholder=
"$t('请输入选择客户')"
v-model=
"customerName"
></el-input>
...
...
src/views/ecw/customerConfirm/index.vue
View file @
b706f640
...
...
@@ -19,7 +19,7 @@
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
...
...
@@ -50,7 +50,7 @@
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"
form.l
evel"
>
<el-select
clearable
v-model=
"
queryParams.creditL
evel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -67,6 +67,10 @@
<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
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"$router.push(
{path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})"
v-hasPermi="['ecw:customer:create']">
{{
$t
(
'
新增
'
)
}}
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -364,6 +368,8 @@ export default {
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -479,6 +485,19 @@ export default {
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
...
...
src/views/ecw/customerToBeAssigned/index.vue
View file @
b706f640
...
...
@@ -20,7 +20,7 @@
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
...
...
@@ -35,7 +35,7 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('国家')"
prop=
"source"
>
<el-select
clearable
v-model=
"
form
.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
clearable
v-model=
"
queryParams
.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
...
...
@@ -51,7 +51,7 @@
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"
form.l
evel"
>
<el-select
clearable
v-model=
"
queryParams.creditL
evel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -73,7 +73,7 @@
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"batchTransferShow = true;"
:loading=
"exportLoading"
<el-button
:disabled=
"selectCustomerList.length === 0"
type=
"primary"
size=
"mini"
@
click=
"batchTransferShow = true;"
v-hasPermi=
"['ecw:customer:export']"
>
{{
$t
(
'
批量移交
'
)
}}
</el-button>
</el-col>
</el-col>
...
...
@@ -193,6 +193,8 @@ export default {
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -312,6 +314,19 @@ export default {
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
...
...
src/views/ecw/deptTarget/index.vue
View file @
b706f640
...
...
@@ -106,11 +106,15 @@
</el-select> -->
<dict-selector
:type=
"DICT_TYPE.TARGET_TYPE"
v-model=
"form.targetType"
:placeholder=
"$t('请选择目标类型')"
/>
</el-form-item>
<el-form-item
:label=
"$t('计算周期')"
prop=
"targetPeriodName"
>
<el-select
v-model=
"form.targetPeriodName"
:placeholder=
"$t('请选择计算周期')"
@
change=
"setTime"
>
<el-option
v-for=
"item in targetPeriod"
:label=
"item.name"
:value=
"item.name"
:key=
"item.name"
></el-option>
</el-select>
</el-form-item>
<div
class=
"flex"
>
<el-form-item
:label=
"$t('计算周期')"
prop=
"startTime"
>
<el-date-picker
v-model=
"form.startTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
class=
"w-150"
></el-date-picker>
</el-form-item>
<div
class=
"ml-10 mr-10 flex flex-center"
style=
"margin-bottom:22px"
>
-
</div>
<el-form-item
prop=
"endTime"
label-width=
"0"
>
<el-date-picker
v-model=
"form.endTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
class=
"w-150"
></el-date-picker>
</el-form-item>
</div>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportType"
formatter=
"number"
@
change=
"showChannel"
/>
</el-form-item>
...
...
@@ -147,6 +151,7 @@
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
dayjs
from
"
dayjs
"
;
import
{
parseTime
}
from
'
@/utils/ruoyi
'
;
export
default
{
name
:
"
DeptTarget
"
,
...
...
@@ -213,6 +218,8 @@
targetPeriodName
:
[{
required
:
true
,
message
:
this
.
$t
(
"
计算周期不能为空
"
),
trigger
:
"
change
"
}],
transportType
:
[{
required
:
true
,
message
:
this
.
$t
(
"
运输方式不能为空
"
),
trigger
:
"
change
"
}],
cubeNum
:
[{
required
:
true
,
message
:
this
.
$t
(
"
立方数不能为空
"
),
trigger
:
"
blur
"
}],
startTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
起始时间不能为空
"
),
trigger
:
"
change
"
}],
endTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
截止时间不能为空
"
),
trigger
:
"
change
"
}],
}
};
},
...
...
@@ -372,6 +379,10 @@
}
else
{
this
.
targetPeriod
=
this
.
yearList
;
}
this
.
form
.
startTime
=
parseTime
(
this
.
form
.
startTime
)
this
.
form
.
endTime
=
parseTime
(
this
.
form
.
endTime
)
this
.
open
=
true
;
this
.
title
=
this
.
$t
(
"
修改部门业绩目标设置
"
);
});
...
...
src/views/ecw/financial/creatCollection.vue
View file @
b706f640
...
...
@@ -5,17 +5,18 @@
:model=
"form"
label-width=
"120px"
label-position=
"left"
:inline=
"true"
>
<el-card>
<div
v-if=
"id"
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
修改收款单
'
)
}}
</div>
<div
v-else
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
新增收款单
'
)
}}
</div>
<
el-descriptions
:column=
"3"
border
>
<
el-descriptions-item
:label=
"$t('客户')"
>
<
!--
<el-descriptions
:column=
"3"
border
>
--
>
<
!--
<el-descriptions-item
>
--
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
:label=
"$t('客户')"
style=
"margin-bottom: 0;margin-top: 20px;"
prop=
"customerId"
:span=
"4"
:rules=
"
{ required: true, trigger: ['blur', 'change'], message: $t('客户不能为空') }"
>
<customer-selector
...
...
@@ -23,13 +24,13 @@
@
change=
"customerChange"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('部门')"
>
<!--
</el-descriptions-item>
<el-descriptions-item
>
--
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
:label=
"$t('部门')"
style=
"margin-bottom: 0;margin-top: 20px;"
prop=
"departmentId"
:span=
"4"
:rules=
"
{ required: true, trigger: ['blur', 'change'], message: $t('部门不能为空') }"
>
<el-select
...
...
@@ -45,13 +46,11 @@
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('业务员')"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
:label=
"$t('业务员')"
style=
"margin-bottom: 0;margin-top: 20px;"
prop=
"salesmanId"
:span=
"4"
:rules=
"
{ required: true, trigger: ['blur', 'change'], message: $t('业务员不能为空') }"
>
<el-select
v-model=
"form.salesmanId"
:placeholder=
"$t('请选择业务员')"
@
change=
"v => form.salesmanName = creatorData.find(t => t.id === v).nickname"
>
...
...
@@ -63,12 +62,11 @@
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('手续费(RMB)')"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
<!--
</el-descriptions-item>
-->
<!--
<el-descriptions-item
>
-->
<!--
<el-form-item
:label=
"$t('手续费(RMB)')"
style=
"margin-bottom: 0;margin-top: 20px;"
prop=
"feeRate"
:rules=
"
{ required: true, trigger: ['blur', 'change'], message: $t('手续费不能为空') }"
>
...
...
@@ -76,19 +74,18 @@
v-model=
"form.feeRate"
:placeholder=
"$t('请输入手续费')"
></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('备注')"
>
</el-form-item>
-->
<!--
</el-descriptions-item>
<el-descriptions-item
>
--
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
:label=
"$t('备注')"
style=
"margin-bottom: 0;margin-top: 20px;"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
:placeholder=
"$t('备注')"
></el-input>
</el-form-item>
<
/el-descriptions-item
>
<
/el-descriptions
>
<
!--
</el-descriptions-item>
--
>
<
!--
</el-descriptions>
--
>
</el-card>
<el-card
class=
"card amountCard"
>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
订单信息
'
)
}}
</div>
...
...
@@ -151,13 +148,13 @@
<
/template
>
<
/el-table-column
>
<
/el-table
>
<
el
-
descriptions
:
column
=
"
2
"
border
class
=
"
card
"
>
<
el
-
descriptions
-
item
:
label
=
"
$t('是否需要开票')
"
>
<!--
<
el
-
descriptions
:
column
=
"
2
"
border
class
=
"
card
"
>
<
el
-
descriptions
-
item
>
--
>
<
el
-
form
-
item
label
=
""
label
-
width
=
"
0
"
style
=
"
margin-bottom: 0
"
:
label
=
"
$t('是否需要开票')+':'
"
style
=
"
margin-bottom: 0;margin-top: 20px;
"
prop
=
"
openInvoice
"
required
:
rules
=
"
{ required: true, trigger: ['blur', 'change'], message: $t('请选择是否需要开票')
}
"
>
<
el
-
select
...
...
@@ -168,11 +165,17 @@
<
el
-
option
:
value
=
"
0
"
:
label
=
"
$t('否')
"
><
/el-option
>
<
/el-select
>
<
/el-form-item
>
<
/el-descriptions-item
>
<
el
-
form
-
item
:
label
=
"
$t('核销基准币种')+':'
"
style
=
"
margin-bottom: 0;margin-top: 20px;
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
showCurrencyId
"
/>
<
/el-form-item
>
<!--
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
:
label
=
"
$t('核销基准币种')
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
showCurrencyId
"
/>
<
/el-descriptions-item
>
<
/el-descriptions
>
<
/el-descriptions>
--
>
<
/el-card
>
<
el
-
card
v
-
if
=
"
showInvoice
"
class
=
"
card
"
>
<
div
slot
=
"
header
"
class
=
"
card-title
"
>
{{
$t
(
'
开票资料
'
)
}}
<
/div
>
...
...
@@ -328,11 +331,23 @@
style
=
"
margin-bottom: 0
"
:
prop
=
"
`receiptAccountList.${scope.$index
}
.collectionCurrencyId`
"
>
<
dict
-
selector
<
el
-
select
v
-
model
=
"
scope.row.collectionCurrencyId
"
:
placeholder
=
"
$t('请选择')
"
@
change
=
"
val => currencyIdChange(val, scope.row, scope.$index)
"
>
<
el
-
option
v
-
for
=
"
item in currencyList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
/>
<
/el-select
>
<!--
<
dict
-
selector
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
v
-
model
=
"
scope.row.collectionCurrencyId
"
@
change
=
"
val => currencyIdChange(val, scope.row, scope.$index)
"
/>
/>
-->
<
/el-form-item
>
<
/template
>
<
/el-table-column
>
...
...
@@ -397,6 +412,7 @@
<!--
<
div
slot
=
"
header
"
class
=
"
card-title
"
>
添加未收客户款项
<
/div> --
>
<!--
搜索工作栏
-->
<
el
-
form
v
-
if
=
"
open
"
:
model
=
"
queryParams
"
ref
=
"
queryForm
"
size
=
"
small
"
...
...
@@ -503,7 +519,6 @@
@
selection
-
change
=
"
handleSelectionChange
"
row
-
key
=
"
id
"
height
=
"
calc(100vh - 480px)
"
:
key
=
"
dialogTableKey
"
>
<
el
-
table
-
column
type
=
"
selection
"
width
=
"
55
"
:
reserve
-
selection
=
"
true
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('订单号')
"
align
=
"
center
"
prop
=
"
orderNo
"
/>
...
...
@@ -648,6 +663,7 @@ import { getTradeCityList } from "@/api/ecw/region";
import
{
createReceipt
,
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
'
import
{
getCurrencyPage
}
from
"
@/api/ecw/currency
"
;
import
ret
from
"
bluebird/js/release/util
"
;
import
dayjs
from
"
dayjs
"
;
...
...
@@ -702,7 +718,7 @@ export default {
discountForm
:
{
}
,
selectListRow
:
{
}
,
selectListIndex
:
0
,
flag
:
false
flag
:
false
,
}
;
}
,
async
created
()
{
...
...
@@ -762,6 +778,11 @@ export default {
getReceivableInfoByIds
({
id
:
this
.
receiptId
}
).
then
(
res
=>
{
this
.
list
=
[{...
res
.
data
}
]
this
.
calculation
()
getOrder
(
res
.
data
.
orderId
).
then
(
response
=>
{
// console.log(response.data)
if
(
response
.
data
.
customerId
)
this
.
$set
(
this
.
form
,
'
customerId
'
,
response
.
data
.
customerId
)
}
)
}
)
}
...
...
@@ -828,7 +849,6 @@ export default {
}
,
methods
:
{
checkDiscount
(
e
){
console
.
log
(
e
)
if
(
e
>
this
.
selectListRow
.
totalAmount
){
this
.
discountForm
.
discountTotal
=
this
.
selectListRow
.
totalAmount
}
...
...
@@ -837,12 +857,12 @@ export default {
row
.
collectionCurrencyId
=
val
if
(
val
==
row
.
currencyId
)
row
.
collectionRate
=
1
else
{
if
(
row
.
currencyId
==
1
&&
val
==
2
)
row
.
collectionRate
=
this
.
UStoRMB
()
if
(
row
.
currencyId
==
1
&&
val
==
3
)
row
.
collectionRate
=
this
.
UStoNAN
()
if
(
row
.
currencyId
==
2
&&
val
==
1
)
row
.
collectionRate
=
this
.
RMBtoUS
()
if
(
row
.
currencyId
==
2
&&
val
==
3
)
row
.
collectionRate
=
this
.
RMBtoNAN
()
if
(
row
.
currencyId
==
3
&&
val
==
1
)
row
.
collectionRate
=
this
.
NANtoUS
()
if
(
row
.
currencyId
==
3
&&
val
==
2
)
row
.
collectionRate
=
this
.
NANtoRMB
()
if
(
row
.
currencyId
==
1
&&
val
==
3
)
row
.
collectionRate
=
this
.
UStoRMB
()
if
(
row
.
currencyId
==
1
&&
val
==
2
)
row
.
collectionRate
=
this
.
UStoNAN
()
if
(
row
.
currencyId
==
3
&&
val
==
1
)
row
.
collectionRate
=
this
.
RMBtoUS
()
if
(
row
.
currencyId
==
3
&&
val
==
2
)
row
.
collectionRate
=
this
.
RMBtoNAN
()
if
(
row
.
currencyId
==
2
&&
val
==
1
)
row
.
collectionRate
=
this
.
NANtoUS
()
if
(
row
.
currencyId
==
2
&&
val
==
3
)
row
.
collectionRate
=
this
.
NANtoRMB
()
}
this
.
rateChange
(
row
,
index
)
...
...
@@ -888,8 +908,8 @@ export default {
receivableAmount
:
dollar
,
writeOffRate
:
t
?.
writeOffRate
||
(
this
.
showCurrencyId
===
1
?
1
:
this
.
showCurrencyId
===
2
?
this
.
UStoRMB
()
:
this
.
UStoNAN
()),
platformAccountId
:
t
?.
platformAccountId
||
''
,
collectionCurrencyId
:
t
?.
collectionCurrencyId
||
''
,
collectionRate
:
t
?.
collectionRate
||
''
collectionCurrencyId
:
t
?.
collectionCurrencyId
||
1
,
collectionRate
:
t
?.
collectionRate
||
1
}
]
this
.
calculationCount
(
NP
.
minus
(
dollar
,
discountDollar
),
1
)
...
...
@@ -929,7 +949,8 @@ export default {
writeOffRate
:
t
?.
writeOffRate
||
(
this
.
showCurrencyId
===
1
?
this
.
NANtoUS
()
:
this
.
showCurrencyId
===
2
?
this
.
NANtoRMB
()
:
1
),
platformAccountId
:
t
?.
platformAccountId
||
''
,
collectionCurrencyId
:
t
?.
collectionCurrencyId
||
''
,
collectionRate
:
t
?.
collectionRate
||
''
collectionRate
:
t
?.
collectionRate
||
''
,
collectionAmount
:
discountNaira
}
]
this
.
calculationCount
(
NP
.
minus
(
naira
,
discountNaira
),
3
)
...
...
@@ -940,7 +961,7 @@ export default {
this
.
form
.
receiptAccountList
=
[...
this
.
form
.
receiptAccountList
,
{
type
:
'
total
'
,
writeOffAmount
:
totalt
,
collectionAmount
:
[
0
,
0
,
0
]
collectionAmount
:
[
this
.
form
.
receiptAccountList
.
discountNaira
,
0
,
0
]
}
]
this
.
form
.
receivableTotalAmount
=
totalt
...
...
@@ -1023,9 +1044,6 @@ export default {
addressPhone
:
`${res.data.billingAddress || ''
}
/${res.data.billingTell || ''
}
`
,
}
}
)
}
,
getReceivableListByIds
()
{
}
,
cancelDiscount
()
{
this
.
discountVisible
=
false
...
...
@@ -1109,20 +1127,41 @@ export default {
submitForm
(
addType
)
{
const
params
=
{...
this
.
form
}
params
.
addType
=
addType
params
.
receiptAccountList
.
length
=
params
.
receiptAccountList
.
length
-
1
params
.
receiptAccountList
.
map
(
v
=>
{
delete
v
.
discountTotal
v
.
writeOffRate
=
Number
(
v
.
writeOffRate
)
return
v
}
)
// params.receiptAccountList = params.receiptAccountList.map(v => Object.assign(v,
{
}
))
delete
params
.
receivableDetail
if
(
this
.
list
&&
this
.
list
.
length
>
0
)
{
params
.
receivableVOList
=
this
.
list
}
else
{
this
.
saveBtnLoading
=
false
this
.
$modal
.
msgError
(
this
.
$t
(
'
请添加未收客户款项
'
));
return
}
// params.receiptAccountList.length = params.receiptAccountList.length - 1
params
.
receiptAccountList
.
splice
(
params
.
receiptAccountList
.
length
-
1
,
1
)
var
saveStatus
=
true
params
.
receiptAccountList
.
map
(
v
=>
{
if
(
!
v
.
platformAccountId
){
saveStatus
=
false
}
var
bankname
=
this
.
bankData
.
filter
(
item
=>
item
.
id
==
v
.
platformAccountId
)
if
(
bankname
.
length
>
0
){
v
.
platformAccountName
=
bankname
[
0
].
baAccountName
v
.
platformAccountNo
=
bankname
[
0
].
baAccountNum
v
.
platformAccountBlankName
=
bankname
[
0
].
baBankName
}
delete
v
.
discountTotal
v
.
writeOffRate
=
Number
(
v
.
writeOffRate
)
return
v
}
)
if
(
!
saveStatus
){
this
.
$modal
.
msgError
(
this
.
$t
(
'
请添加收款账户
'
));
return
}
delete
params
.
receivableDetail
if
(
addType
===
1
)
{
let
fieldsToValidate
=
[
'
customerId
'
,
'
departmentId
'
,
'
salesmanId
'
];
// 部分字段校验 保存草稿用
Promise
.
all
(
...
...
@@ -1139,7 +1178,7 @@ export default {
}
);
if
(
valid
)
{
this
.
saveBtnLoading
=
true
if
(
this
.
id
&&
this
.
id
!=
=
'
0
'
)
{
if
(
this
.
id
&&
this
.
id
!=
0
)
{
updateReceipt
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
修改成功
'
));
this
.
$router
.
back
();
...
...
@@ -1162,7 +1201,7 @@ export default {
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
saveBtnLoading
=
true
if
(
this
.
id
&&
this
.
id
!=
=
'
0
'
)
{
if
(
this
.
id
&&
this
.
id
!=
0
)
{
if
(
params
.
state
==
0
)
params
.
state
=
1
updateReceipt
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
修改成功
'
));
...
...
src/views/ecw/financial/creatPayment.vue
View file @
b706f640
...
...
@@ -460,7 +460,8 @@ export default {
if
(
that
.
$route
.
query
.
payableId
&&
that
.
$route
.
query
.
payableId
!==
'
0
'
)
{
this
.
payableId
=
this
.
$route
.
query
.
payableId
;
getPayableInfoByIds
({
id
:
this
.
payableId
}).
then
(
res
=>
{
this
.
list
=
[{...
res
.
data
}]
this
.
handleSelectionChange
([
res
.
data
])
this
.
list
=
this
.
multipleSelection
this
.
$set
(
this
.
form
,
'
supplierId
'
,
res
.
data
.
supplierId
)
})
}
...
...
src/views/ecw/financial/printPaymentVoucher.vue
View file @
b706f640
...
...
@@ -9,15 +9,18 @@
</div>
<div
style=
"display: flex;width: 80%;align-items: center;margin-bottom: 10px;"
>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
申请日期
'
)
}}
:
</div>
<span>
{{
form
.
applicationAt
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
结算方式
'
)
}}
:
</div><span>
{{
form
.
settlementType
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
结算方式
'
)
}}
:
</div><span>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_BALANCE"
v-model=
"form.settlementType"
/></span></div>
</div>
<div
style=
"display: flex;width: 80%;align-items: center;margin-bottom: 10px;"
>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
付款公司
'
)
}}
:
</div><span>
{{
form
.
supplierName
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行户名
'
)
}}
:
</div><span>
{{
f
indBank
(
form
.
supplierBankAccount
).
ba
AccountName
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行户名
'
)
}}
:
</div><span>
{{
f
orm
.
supplierBank
AccountName
||
'
-
'
}}
</span></div>
</div>
<div
style=
"display: flex;width: 80%;align-items: center;margin-bottom: 10px;"
>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行名称
'
)
}}
:
</div><span>
{{
f
indBank
(
form
.
supplierBankAccount
).
baBankName
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行账号
'
)
}}
:
</div><span>
{{
f
indBank
(
form
.
supplierBankAccount
).
baAccountNum
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行名称
'
)
}}
:
</div><span>
{{
f
orm
.
supplierBank
||
'
-
'
}}
</span></div>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;display:inline-block;"
>
{{
$t
(
'
银行账号
'
)
}}
:
</div><span>
{{
f
orm
.
supplierBankAccount
||
'
-
'
}}
</span></div>
</div>
<!--
<div
style=
"display: flex;width: 80%;align-items: center;margin-bottom: 10px;"
>
<div
style=
"flex:1"
><div
style=
"width: 120px;text-align: right;"
>
水单号:
</div><span>
{{
form
?
form
.
accountBank
:
'
无
'
}}
</span></div>
...
...
@@ -174,6 +177,7 @@
},
findBank
(
val
)
{
const
t
=
this
.
bankData
.
find
(
v
=>
v
.
id
==
val
)
console
.
log
(
t
)
return
t
||
{}
},
totalMoney
()
{
...
...
@@ -205,7 +209,7 @@
var
chineseStr
=
''
;
//分离金额后用的数组,预定义
var
parts
;
// 传入的参数为空情况
// 传入的参数为空情况
if
(
money
===
''
)
{
return
''
;
}
...
...
@@ -213,7 +217,7 @@
if
(
money
>=
maxNum
){
return
''
}
// 传入的参数为0情况
// 传入的参数为0情况
if
(
money
===
0
)
{
chineseStr
=
cnNums
[
0
]
+
cnIntLast
+
cnInteger
;
return
chineseStr
...
...
@@ -248,7 +252,7 @@
chineseStr
+=
cnNums
[
parseInt
(
n
)]
+
cnIntRadice
[
m
];
}
if
(
m
==
0
&&
zeroCount
<
4
){
chineseStr
+=
cnIntUnits
[
q
];
chineseStr
+=
cnIntUnits
[
q
];
}
}
// 最后+ 元
...
...
src/views/ecw/financial/printVoucher.vue
View file @
b706f640
...
...
@@ -35,7 +35,7 @@
</tr>
<tr
v-for=
"(item, index) in list"
:key=
"index"
>
<td>
{{
index
+
1
}}
</td>
<td>
{{
item
.
receipt
No
||
''
}}
</td>
<td>
{{
orderData
.
tidan
No
||
''
}}
</td>
<td>
{{
item
.
orderNo
}}
</td>
<td>
{{
item
.
titleZh
}}
</td>
<td><dict-tag
:value=
"item.feeType"
:type=
"DICT_TYPE.FEE_TYPE"
></dict-tag></td>
...
...
@@ -44,39 +44,28 @@
<td>
{{
item
.
discountTotal
||
0
}}
</td>
</tr>
<tr
v-for=
"(items, indexs) in receiptAccountList"
:key=
"indexs"
>
<td><dict-tag
:type=
"DICT_TYPE.BOX_SHIPPING_PRICE_UNIT"
:value=
"items.collectionCurrencyId"
/>
应收合计
</td>
<td
>
{{
`${item.receivableAmount - item.discountTotal
}
(${item.receivableAmount
}
- ${item.discountTotal
}
)`
}}
<
/td
>
<td><dict-tag
:type=
"DICT_TYPE.BOX_SHIPPING_PRICE_UNIT"
:value=
"items.currencyId"
/>
应收合计
</td>
<td
><span
v-if=
"items.discountTotal>0"
>
{{
`${items.receivableAmount - items.discountTotal
}
(${items.receivableAmount
}
- ${items.discountTotal
}
)`
}}
<
/span
>
<
span
v
-
else
>
{{
`${items.receivableAmount - items.discountTotal
}
`
}}
<
/span
>
<
/td
>
<
td
>
汇率
<
/td
>
<
td
>
{{
items
.
collectionRate
.
toFixed
(
6
)
}}
<
/td
>
<
td
>
{{
items
.
collectionRate
}}
<
/td
>
<
td
>
收款金额
(
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
items.collectionCurrencyId
"
/>
)
<
/td
>
<
td
colspan
=
"
3
"
>
{{
items
.
collectionAmount
.
toFixed
(
6
)
}}
<
/td
>
<
td
colspan
=
"
3
"
>
{{
items
.
collectionAmount
}}
<
/td
>
<
/tr
>
<
/table
>
<
div
style
=
"
text-align: center;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;
"
>
银行信息
<
/div
>
<
div
style
=
"
display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;
"
>
<
div
style
=
"
padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;
"
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
户名:
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
银行名称:
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
A
/
C
NO
:
<
/p
>
<
div
style
=
"
display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;
"
v
-
for
=
"
(bankTiem,index) in detailed
"
:
key
=
"
index
"
>
<
div
style
=
"
padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;
"
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
户名:
{{
bankTiem
.
accountName
}}
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
银行名称:
{{
bankTiem
.
accountBankName
||
''
}}
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
A
/
C
NO
:
{{
bankTiem
.
accountNo
}}
<
/p
>
<
/div
>
<
div
style
=
"
padding:6px 0;width: 87.5%;text-align: center;
"
>
<
p
style
=
"
margin: 0;
"
>
应收人民币:¥
<
/p
>
<
p
style
=
"
margin: 0;
"
>
优惠后人民币:¥
<
/p
>
<
p
style
=
"
margin: 0;
"
>
未收:¥
<
/p
>
<
/div
>
<
/div
>
<
div
style
=
"
display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;
"
>
<
div
style
=
"
padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;
"
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
户名:
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
银行名称:
<
/p
>
<
p
style
=
"
margin: 0;word-break: break-all;
"
>
A
/
C
NO
:
<
/p
>
<
/div
>
<
div
style
=
"
padding:6px 0;width: 87.5%;text-align: center;
"
>
<
p
style
=
"
margin: 0;
"
>
应收美元:
$
<
/p
>
<
p
style
=
"
margin: 0;
"
>
优惠后美元:
$
<
/p
>
<
p
style
=
"
margin: 0;
"
>
未收:
$
<
/p
>
<
p
style
=
"
margin: 0;
"
>
实收
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
bankTiem.currencyId
"
/>
:
{{
bankTiem
.
writeOffAmount
}}
¥
<
/p
>
<!--
<
p
style
=
"
margin: 0;
"
>
未收:¥
{{
bankTiem
.
noReceipt
}}
<
/p> --
>
<
/div
>
<
/div
>
<
div
style
=
"
display: flex;align-items: center;border: 1px solid #666;
"
>
...
...
@@ -106,7 +95,7 @@
import
lodop
from
'
@/utils/lodop
'
import
NP
from
'
number-precision
'
import
{
getOrder
}
from
'
@/api/ecw/order
'
import
{
getReceiptInfoByIds
,
getInvoicingItem
,
getReceiptAccountList
}
from
"
@/api/ecw/financial
"
;
import
{
getReceiptInfoByIds
,
getInvoicingItem
,
getReceiptAccountList
,
getReceivableItem
}
from
"
@/api/ecw/financial
"
;
export
default
{
name
:
"
PrintVoucher
"
,
...
...
@@ -118,7 +107,7 @@
loadings
:
false
,
form
:{
}
,
title
:
'
收款单
'
,
creatorData
:[],
//
creatorData:[],
list
:[],
fileList
:[],
bankData
:[],
...
...
@@ -130,13 +119,14 @@
deptData
:[],
deptArr
:[],
id
:
0
,
orderData
:[]
orderData
:{
}
,
detailed
:[]
}
}
,
async
created
()
{
let
that
=
this
listSimpleUsers
().
then
(
res
=>
that
.
creatorData
=
res
.
data
)
getBankAccountPage
(
that
.
params
).
then
(
res
=>
that
.
bankData
=
res
.
data
.
list
)
//
listSimpleUsers().then(res =>that.creatorData = res.data)
//
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
await
listSimpleDepts
().
then
(
res
=>
{
res
.
data
.
forEach
((
item
)
=>
{
if
(
item
.
parentId
==
0
){
...
...
@@ -159,31 +149,32 @@
if
(
that
.
$route
.
query
.
id
){
that
.
id
=
that
.
$route
.
query
.
id
that
.
getCollectionData
()
that
.
getList
()
getInvoicingItem
({
id
:
this
.
id
}
).
then
(
res
=>
{
this
.
list
=
res
.
data
if
(
this
.
list
.
length
>
0
)
this
.
getOrder
(
this
.
list
[
0
].
orderId
)
}
)
}
getReceiptAccountList
({
id
:
this
.
id
}
).
then
(
res
=>
{
if
(
res
.
data
.
length
>
0
)
{
// totalAmount
res
.
data
=
[...
res
.
data
,
{
type
:
'
total
'
,
writeOffAmount
:
res
.
data
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
writeOffAmount
||
0
),
0
),
collectionAmount
:
[
0
,
0
,
0
]
}
]
}
//
if (res.data.length > 0)
{
//
// totalAmount
//
res.data = [...res.data,
{
//
type: 'total',
//
writeOffAmount: res.data.reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0),
//
collectionAmount: [0, 0, 0]
//
}
]
//
}
// 收款总计
const
dollarList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
1
)
const
dollar
=
dollarList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
//
const dollarList = res.data.filter(v => v.collectionCurrencyId == 1)
//
const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const
rmbList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
2
)
const
rmb
=
rmbList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
//
const rmbList = res.data.filter(v => v.collectionCurrencyId == 2)
//
const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const
nairaList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
3
)
const
naira
=
nairaList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
//
const nairaList = res.data.filter(v => v.collectionCurrencyId == 3)
//
const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
res
.
data
[
res
.
data
.
length
-
1
].
collectionAmount
=
[
dollar
,
rmb
,
naira
]
//
res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira]
// this.$set(this.form, 'receiptAccountList', [...this.form.receiptAccountList])
const
dollarListByList
=
this
.
list
.
filter
(
v
=>
v
.
currencyId
===
1
)
...
...
@@ -201,8 +192,8 @@
const
n
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
3
)
n
&&
(
n
.
discountTotal
=
discountNaira
)
this
.
$set
(
this
.
form
,
'
receiptAccountList
'
,
[...
res
.
data
])
console
.
log
(
res
.
data
)
this
.
$set
(
this
,
'
receiptAccountList
'
,
[...
res
.
data
])
this
.
$nextTick
(()
=>
{
// this.form.receiptAccountList.forEach((item, index) =>
{
// this.rateChange(item, index)
...
...
@@ -212,6 +203,11 @@
}
,
methods
:
{
getList
()
{
getReceivableItem
({
id
:
this
.
id
}
).
then
(
res
=>
{
this
.
detailed
=
res
.
data
}
)
}
,
getCollectionData
(){
let
that
=
this
getReceiptInfoByIds
({
id
:
that
.
id
}
).
then
(
res
=>
{
...
...
@@ -219,11 +215,36 @@
that
.
form
.
departmentName
=
that
.
deptData
.
find
(
v
=>
v
.
id
==
that
.
form
.
departmentId
).
name
}
)
}
,
getRecep
(
id
){
var
total
=
0
if
(
id
){
var
data
=
this
.
detailed
.
filter
(
item
=>
item
.
currencyId
==
id
)
data
.
forEach
(
item
=>
{
total
=
NP
.
plus
(
total
,
item
.
writeOffAmount
)
}
)
}
return
total
}
,
handleAddReceiptItem
()
{
let
recepted
=
[]
this
.
detailed
.
forEach
(
item
=>
{
if
(
!
recepted
[
item
.
currencyId
]){
recepted
[
item
.
currencyId
]
=
item
.
amount
}
else
recepted
[
item
.
currencyId
]
=
NP
.
plus
(
recepted
[
item
.
currencyId
],
item
.
amount
)
}
)
console
.
log
(
'
rece
'
,
recepted
)
let
collom
=
[]
this
.
receiptAccountList
.
forEach
(
item
=>
{
if
(
recepted
[
item
.
currencyId
]){
item
.
noReceipt
=
+
parseFloat
(
item
.
receivableAmount
-
recepted
[
item
.
currencyId
])
}
}
)
}
,
getOrder
(
orderId
){
getOrder
(
orderId
).
then
(
response
=>
{
this
.
orderData
=
response
.
data
}
);
}
,
}
,
print
(){
lodop
().
then
(
LODOP
=>
{
LODOP
.
PRINT_INIT
();
...
...
@@ -333,7 +354,7 @@
}
}
if
(
chineseStr
==
''
){
chineseStr
+=
cnNums
[
0
]
+
cnIntLast
+
cnInteger
;
chineseStr
=
cnNums
[
0
]
+
cnIntLast
+
cnInteger
}
else
if
(
decimalNum
==
''
){
chineseStr
+=
cnInteger
;
}
...
...
src/views/ecw/financial/receiptDetail.vue
View file @
b706f640
...
...
@@ -192,7 +192,8 @@
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('期望收款币种')
"
align
=
"
center
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
scope.row.collectionCurrencyId
"
/>
<!--
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
scope.row.collectionCurrencyId
"
/>
-->
{{
getCurrencyLabel
(
scope
.
row
.
collectionCurrencyId
)
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('期望收款汇率')
"
align
=
"
center
"
>
...
...
@@ -259,13 +260,13 @@
<
template
slot
=
"
label
"
>
{{
$t
(
'
核销基准金额
'
)
}}
(
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
showCurrencyId
"
/>
)
<
/template
>
{{
verificationData
.
writtenOff
.
toFixed
(
6
)
}}
{{
writeOffAmount
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
>
<
template
slot
=
"
label
"
>
{{
$t
(
'
已核销比例
'
)
}}
(
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
showCurrencyId
"
/>
)
<
/template
>
{{
verificationData
.
WriteOffProportion
}}
%
{{
WriteOffProportion
}}
%
<
/el-descriptions-item
>
<
/el-descriptions
>
<
/el-card
>
...
...
@@ -278,14 +279,18 @@
<
el
-
form
ref
=
"
addForm
"
:
model
=
"
addForm
"
label
-
width
=
"
150px
"
>
<
el
-
form
-
item
:
label
=
"
$t('收款单号')
"
>
{{
form
.
receiptNo
}}
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('剩余应收金额')
"
>
<
div
>
<
div
>
{{
remainingAmount
.
usAmount
.
toFixed
(
6
)
}}
{{
$t
(
'
美元
'
)
}}
<
/div
>
<
div
>
{{
remainingAmount
.
rmbAmount
.
toFixed
(
6
)
}}
{{
$t
(
'
人民币
'
)
}}
<
/div
>
<
div
>
{{
remainingAmount
.
nairaAmount
.
toFixed
(
6
)
}}
{{
$t
(
'
奈拉
'
)
}}
<
/div
>
<
template
v
-
if
=
"
surplusData.length==0
"
>
0
<
/template
>
<
div
v
-
else
>
<
div
v
-
for
=
"
(amount, currency) in surplusData
"
:
key
=
"
currency
"
>
<
span
v
-
if
=
"
amount
"
>
{{
amount
}}
<
dict
-
tag
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
currency
"
/><
/span
>
<
/div
>
<
/div
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('收款账户')
"
prop
=
"
accountNo
"
:
rules
=
"
{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空')
}
"
>
<
el
-
select
v
-
if
=
"
!isView
"
v
-
model
=
"
addForm.account
No
"
:
placeholder
=
"
$t('请选择收款账户')
"
style
=
"
width: 220px
"
@
change
=
"
accountChange
"
>
<
el
-
select
v
-
if
=
"
!isView
"
v
-
model
=
"
addForm.account
Id
"
:
placeholder
=
"
$t('请选择收款账户')
"
style
=
"
width: 220px
"
@
change
=
"
accountChange
"
>
<
el
-
option
v
-
for
=
"
item in bankData
"
:
key
=
"
item.id
"
:
label
=
"
item.baAccountName + '(' + item.baAccountNum + ')'
"
:
value
=
"
item.id
"
/>
<
/el-select
>
<
span
v
-
else
>
{{
addForm
.
accountNo
}}
<
/span
>
...
...
@@ -320,9 +325,22 @@
prop
=
"
currencyId
"
:
rules
=
"
{ required: true, trigger: ['blur', 'change'], message: $t('币种不能为空')
}
"
>
<
dict
-
selector
v
-
if
=
"
!isView
"
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
v
-
model
=
"
addForm.currencyId
"
@
change
=
"
val => currencyIdChange(val)
"
/>
<
el
-
select
v
-
model
=
"
addForm.currencyId
"
:
placeholder
=
"
$t('请选择')
"
:
disabled
=
"
isView
"
@
change
=
"
val => currencyIdChange(val)
"
>
<
el
-
option
v
-
for
=
"
item in currencyList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
/>
<
/el-select
>
<!--
<
dict
-
selector
v
-
if
=
"
!isView
"
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
v
-
model
=
"
addForm.currencyId
"
@
change
=
"
val => currencyIdChange(val)
"
/>
-->
<!--
<
span
v
-
else
>
{{
addForm
.
currencyId
}}
<
/span> --
>
<
dict
-
tag
v
-
else
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
addForm.currencyId
"
/
>
<
!--
<
dict
-
tag
v
-
else
:
type
=
"
DICT_TYPE.BOX_SHIPPING_PRICE_UNIT
"
:
value
=
"
addForm.currencyId
"
/>
--
>
<
/el-form-item
>
<
/div
>
<
el
-
form
-
item
...
...
@@ -439,7 +457,8 @@ export default {
usAmount
:
0
,
rmbAmount
:
0
,
nairaAmount
:
0
}
}
,
surplusData
:[]
}
}
,
computed
:
{
...
...
@@ -474,6 +493,22 @@ export default {
}
}
)
return
total
}
,
// 已核销总金额
writeOffAmount
(){
let
total
=
0
this
.
detailed
.
forEach
(
item
=>
{
total
=
NP
.
plus
(
total
,
item
.
writeOffAmount
)
}
)
return
total
.
toFixed
(
6
)
}
,
WriteOffProportion
(){
let
total
=
0
this
.
detailed
.
forEach
(
item
=>
{
total
=
NP
.
plus
(
total
,
item
.
writeOffAmount
)
}
)
let
portion
=
NP
.
divide
(
total
,
this
.
form
.
receiptAccountList
.
find
(
item
=>
item
.
type
==
'
total
'
).
writeOffAmount
)
return
(
portion
*
100
).
toFixed
(
2
)
}
}
,
watch
:
{
...
...
@@ -512,10 +547,10 @@ export default {
const
dollarList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
1
)
const
dollar
=
dollarList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
const
rmbList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
2
)
const
rmbList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
3
)
const
rmb
=
rmbList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
const
nairaList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
3
)
const
nairaList
=
res
.
data
.
filter
(
v
=>
v
.
collectionCurrencyId
==
2
)
const
naira
=
nairaList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
collectionAmount
||
0
),
0
)
res
.
data
[
res
.
data
.
length
-
1
].
collectionAmount
=
[
dollar
,
rmb
,
naira
]
...
...
@@ -526,14 +561,14 @@ export default {
const
d
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
1
)
d
&&
(
d
.
discountTotal
=
discountDollar
)
const
rmbListByList
=
this
.
list
.
filter
(
v
=>
v
.
currencyId
===
2
)
const
rmbListByList
=
this
.
list
.
filter
(
v
=>
v
.
currencyId
===
3
)
const
discountRmb
=
rmbListByList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
discountTotal
||
0
),
0
)
const
r
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
2
)
const
r
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
3
)
r
&&
(
r
.
discountTotal
=
discountRmb
)
const
nairaListByList
=
this
.
list
.
filter
(
v
=>
v
.
currencyId
===
3
)
const
nairaListByList
=
this
.
list
.
filter
(
v
=>
v
.
currencyId
===
2
)
const
discountNaira
=
nairaListByList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
discountTotal
||
0
),
0
)
const
n
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
3
)
const
n
=
res
.
data
.
find
(
v
=>
v
.
currencyId
==
2
)
n
&&
(
n
.
discountTotal
=
discountNaira
)
...
...
@@ -552,55 +587,68 @@ export default {
setWriteOffAmount
()
{
this
.
$set
(
this
.
addForm
,
'
writeOffAmount
'
,
NP
.
times
(
this
.
addForm
.
rate
||
0
,
this
.
addForm
.
amount
||
0
))
}
,
getCurrencyLabel
(
id
){
var
label
=
this
.
currencyList
.
filter
(
item
=>
item
.
id
==
id
)
if
(
label
.
length
>
0
)
return
label
[
0
].
titleZh
return
''
}
,
calculation
()
{
const
verificationList
=
this
.
detailed
.
filter
(
v
=>
v
.
status
===
1
)
const
dollarList
=
verificationList
.
filter
(
v
=>
v
.
currencyId
===
1
)
const
dollar
=
dollarList
.
length
>
0
?
dollarList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
amount
||
0
),
0
)
:
0
const
rmbList
=
verificationList
.
filter
(
v
=>
v
.
currencyId
===
2
)
const
rmbList
=
verificationList
.
filter
(
v
=>
v
.
currencyId
===
3
)
const
rmb
=
rmbList
.
length
>
0
?
rmbList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
amount
||
0
),
0
)
:
0
const
nairaList
=
verificationList
.
filter
(
v
=>
v
.
currencyId
===
3
)
const
nairaList
=
verificationList
.
filter
(
v
=>
v
.
currencyId
===
2
)
const
naira
=
nairaList
.
length
>
0
?
nairaList
.
reduce
((
total
,
currentValue
)
=>
NP
.
plus
(
total
,
currentValue
.
amount
||
0
),
0
)
:
0
const
usCount
=
NP
.
plus
(
dollar
,
NP
.
times
(
this
.
RMBtoUS
(),
rmb
),
NP
.
times
(
this
.
NANtoUS
(),
naira
))
const
rmbCount
=
NP
.
plus
(
rmb
,
NP
.
times
(
this
.
UStoRMB
(),
dollar
),
NP
.
times
(
this
.
NANtoRMB
(),
naira
))
const
nairaCount
=
NP
.
plus
(
naira
,
NP
.
times
(
this
.
UStoNAN
(),
dollar
),
NP
.
times
(
this
.
RMBtoNAN
(),
rmb
))
//
const usCount = NP.plus(dollar, NP.times(this.RMBtoUS(), rmb), NP.times(this.NANtoUS(), naira))
//
const rmbCount = NP.plus(rmb, NP.times(this.UStoRMB(), dollar), NP.times(this.NANtoRMB(), naira))
//
const nairaCount = NP.plus(naira, NP.times(this.UStoNAN(), dollar), NP.times(this.RMBtoNAN(), rmb))
this
.
verificationData
.
usCount
=
usCount
this
.
verificationData
.
rmbCount
=
rmbCount
this
.
verificationData
.
nairaCount
=
nairaCount
// this.verificationData.usCount = usCount
// this.verificationData.rmbCount = rmbCount
// this.verificationData.nairaCount = nairaCount
this
.
verificationData
.
usCount
=
dollar
this
.
verificationData
.
rmbCount
=
rmb
this
.
verificationData
.
nairaCount
=
naira
if
(
this
.
showCurrencyId
===
1
)
{
// 美元
this
.
verificationData
.
writtenOff
=
usCount
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
usCount
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
usCount
)
this
.
remainingAmount
=
{
usAmount
:
remaining
,
rmbAmount
:
NP
.
times
(
this
.
UStoRMB
(),
remaining
),
nairaAmount
:
NP
.
times
(
this
.
UStoNAN
(),
remaining
)
}
if
(
verificationList
.
indexOf
(
1
)
>-
1
)
{
// 美元
this
.
verificationData
.
writtenOff
=
dollar
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
dollar
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
dollar
)
// this.remainingAmount =
{
// usAmount: remaining,
// rmbAmount: NP.times(this.UStoRMB(), remaining),
// nairaAmount: NP.times(this.UStoNAN(), remaining)
//
}
this
.
remainingAmount
.
usAmount
=
remaining
}
else
if
(
this
.
showCurrencyId
===
2
)
{
// 人民币
this
.
verificationData
.
writtenOff
=
rmbCount
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
rmbCount
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
rmbCount
)
this
.
remainingAmount
=
{
usAmount
:
NP
.
times
(
this
.
RMBtoUS
(),
remaining
),
rmbAmount
:
remaining
,
nairaAmount
:
NP
.
times
(
this
.
RMBtoNAN
(),
remaining
)
}
this
.
verificationData
.
writtenOff
=
rmb
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
rmb
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
rmb
)
// this.remainingAmount =
{
// usAmount: NP.times(this.RMBtoUS(), remaining),
// rmbAmount: remaining,
// nairaAmount: NP.times(this.RMBtoNAN(), remaining)
//
}
this
.
remainingAmount
.
rmbAmount
=
remaining
}
else
if
(
this
.
showCurrencyId
===
3
)
{
// 奈拉
this
.
verificationData
.
writtenOff
=
nairaCount
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
nairaCount
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
nairaCount
)
this
.
remainingAmount
=
{
usAmount
:
NP
.
times
(
this
.
NANtoUS
(),
remaining
),
rmbAmount
:
NP
.
times
(
this
.
NANtoRMB
(),
remaining
),
nairaAmount
:
remaining
}
this
.
verificationData
.
writtenOff
=
naira
this
.
verificationData
.
WriteOffProportion
=
NP
.
times
(
NP
.
divide
(
naira
,
this
.
form
.
receivableTotalAmount
),
100
)
const
remaining
=
NP
.
minus
(
this
.
form
.
receivableTotalAmount
,
naira
)
// this.remainingAmount =
{
// usAmount: NP.times(this.NANtoUS(), remaining),
// rmbAmount: NP.times(this.NANtoRMB(), remaining),
// nairaAmount: remaining
//
}
this
.
remainingAmount
.
nairaAmount
=
remaining
}
}
,
accountChange
(
val
){
var
data
=
this
.
bankData
.
find
(
item
=>
item
.
id
==
val
)
this
.
$set
(
this
.
addForm
,
'
accountName
'
,
data
.
baAccountName
)
this
.
$set
(
this
.
addForm
,
'
accountNo
'
,
data
.
baAccountNum
)
this
.
$set
(
this
.
addForm
,
'
accountBankName
'
,
data
.
baBankName
)
}
,
RMBtoUS
()
{
return
NP
.
divide
(
100
,
this
.
currencyList
.
find
(
v
=>
v
.
titleEn
===
'
USD
'
).
huilv
)
...
...
@@ -626,12 +674,12 @@ export default {
if
(
val
===
this
.
showCurrencyId
)
{
rate
=
1
}
else
{
if
(
this
.
showCurrencyId
===
1
&&
val
===
2
)
rate
=
this
.
RMBtoUS
()
else
if
(
this
.
showCurrencyId
===
1
&&
val
===
3
)
rate
=
this
.
NANtoUS
()
else
if
(
this
.
showCurrencyId
===
2
&&
val
===
1
)
rate
=
this
.
UStoRMB
()
else
if
(
this
.
showCurrencyId
===
2
&&
val
===
3
)
rate
=
this
.
NANtoRMB
()
else
if
(
this
.
showCurrencyId
===
3
&&
val
===
1
)
rate
=
this
.
UStoNAN
()
else
if
(
this
.
showCurrencyId
===
3
&&
val
===
2
)
rate
=
this
.
RMBtoNAN
()
if
(
this
.
showCurrencyId
===
1
&&
val
===
3
)
rate
=
this
.
RMBtoUS
()
else
if
(
this
.
showCurrencyId
===
1
&&
val
===
2
)
rate
=
this
.
NANtoUS
()
else
if
(
this
.
showCurrencyId
===
3
&&
val
===
1
)
rate
=
this
.
UStoRMB
()
else
if
(
this
.
showCurrencyId
===
3
&&
val
===
2
)
rate
=
this
.
NANtoRMB
()
else
if
(
this
.
showCurrencyId
===
2
&&
val
===
1
)
rate
=
this
.
UStoNAN
()
else
if
(
this
.
showCurrencyId
===
2
&&
val
===
3
)
rate
=
this
.
RMBtoNAN
()
}
this
.
$set
(
this
.
addForm
,
'
rate
'
,
rate
)
}
,
...
...
@@ -760,7 +808,7 @@ export default {
}
)
.
then
(()
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
核销成功
'
));
this
.
$
router
.
back
(
);
this
.
$
store
.
dispatch
(
'
tagsView/delCurrentView
'
);
}
)
.
catch
(()
=>
{
}
);
}
,
...
...
@@ -768,6 +816,47 @@ export default {
this
.
openAddDialog
=
false
}
,
handleAddReceiptItem
()
{
this
.
surplusData
=
[]
let
recepted
=
[]
this
.
detailed
.
forEach
(
item
=>
{
if
(
!
recepted
[
item
.
currencyId
]){
recepted
[
item
.
currencyId
]
=
item
.
amount
}
else
recepted
[
item
.
currencyId
]
=
NP
.
plus
(
recepted
[
item
.
currencyId
],
item
.
amount
)
}
)
console
.
log
(
'
rece
'
,
recepted
)
let
collom
=
[]
this
.
form
.
receiptAccountList
.
forEach
(
item
=>
{
if
(
item
.
type
!=
'
total
'
){
if
(
!
collom
[
item
.
currencyId
]){
collom
[
item
.
currencyId
]
=
item
.
receivableAmount
-
item
.
discountTotal
}
else
collom
[
item
.
currencyId
]
=
NP
.
plus
(
collom
[
item
.
currencyId
],
item
.
receivableAmount
)
}
}
)
console
.
log
(
'
collom
'
,
collom
)
if
(
recepted
.
length
>
collom
.
length
){
recepted
.
forEach
((
amount
,
currency
)
=>
{
if
(
amount
){
if
(
collom
[
currency
]){
if
((
collom
[
currency
]
-
amount
)
!=
0
)
this
.
surplusData
[
currency
]
=
+
parseFloat
((
collom
[
currency
]
-
amount
).
toPrecision
(
12
))
}
else
{
this
.
surplusData
[
currency
]
=
-
amount
}
}
}
)
}
else
{
collom
.
forEach
((
amount
,
currency
)
=>
{
if
(
amount
){
if
(
recepted
[
currency
]){
if
((
amount
-
recepted
[
currency
])
!=
0
)
this
.
surplusData
[
currency
]
=
+
parseFloat
((
amount
-
recepted
[
currency
]).
toPrecision
(
12
))
}
else
{
this
.
surplusData
[
currency
]
=
amount
}
}
}
)
}
console
.
log
(
this
.
surplusData
)
this
.
addForm
=
{
}
this
.
openAddDialog
=
true
this
.
isView
=
false
...
...
src/views/ecw/financial/receivable.vue
View file @
b706f640
...
...
@@ -193,7 +193,11 @@
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('箱数')"
align=
"center"
prop=
"num"
/>
<el-table-column
:label=
"$t('体积/重量')"
align=
"center"
prop=
"weight"
/>
<el-table-column
:label=
"$t('体积/重量')"
align=
"center"
prop=
"weight"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
volume
}}
/
{{
scope
.
row
.
weight
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('发货人')"
align=
"center"
prop=
"consignorName"
/>
<el-table-column
:label=
"$t('收货人')"
align=
"center"
prop=
"consigneeName"
/>
<el-table-column
:label=
"$t('订单状态')"
align=
"center"
prop=
"status"
>
...
...
src/views/ecw/financial/voucher.vue
View file @
b706f640
...
...
@@ -193,13 +193,13 @@
>
<
el
-
button
v
-
if
=
"
scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3
"
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
verificationCancelClick(scope.row)
"
>
{{
$t
(
'
收款
'
)
}}
<
/el-button
>
<
el
-
button
v
-
if
=
"
scope.row.state == 0 || scope.row.state == 1
"
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
deleteClick(scope.row)
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-button
>
<
!--
<
el
-
button
<
el
-
button
v
-
if
=
"
scope.row.state != 0
"
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
toprint(scope.row.id)
"
>
{{
$t
(
'
打印
'
)
}}
<
/el-butto
n
>
-->
>
<
el
-
button
v
-
if
=
"
scope.row.state != 0
"
size
=
"
mini
"
...
...
src/views/ecw/myCustomerService/index.vue
View file @
b706f640
...
...
@@ -20,7 +20,7 @@
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
...
...
@@ -35,7 +35,7 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('国家')"
prop=
"source"
>
<el-select
clearable
v-model=
"
form
.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
clearable
v-model=
"
queryParams
.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
...
...
@@ -51,7 +51,7 @@
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"
form.l
evel"
>
<el-select
clearable
v-model=
"
queryParams.creditL
evel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -179,6 +179,8 @@ export default {
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
},
// 表单参数
form
:
{},
...
...
@@ -299,11 +301,24 @@ export default {
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
$router
.
push
(
'
/customer/add-edit/0
'
)
this
.
$router
.
push
(
{
path
:
'
/customer/add-edit/0
'
,
query
:{
isCustomerServiceConfirmed
:
true
,}}
)
// this.reset();
// this.open = true;
// this.title = "添加客户";
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
b706f640
...
...
@@ -20,7 +20,7 @@
<el-input
:placeholder=
"$t('请输入联系方式')"
v-model=
"queryParams.defaultContactPhone"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('客户类别')"
prop=
"level"
>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
multiple
v-model=
"queryParams.type"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.CUSTOMER_TYPE"
v-model=
"queryParams.type"
></dict-selector>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"customerService"
>
<el-select
clearable
v-model=
"queryParams.customerService"
:placeholder=
"$t('请选择客户经理')"
clearable
size=
"small"
>
...
...
@@ -35,7 +35,7 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('国家')"
prop=
"source"
>
<el-select
clearable
v-model=
"
form
.country"
:placeholder=
"$t('请选择国家')"
>
<el-select
clearable
v-model=
"
queryParams
.country"
:placeholder=
"$t('请选择国家')"
>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"dict.nameZh"
:value=
"parseInt(dict.id)"
/>
</el-select>
...
...
@@ -51,7 +51,7 @@
type=
"daterange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
:label=
"$t('信用等级')"
prop=
"department"
>
<el-select
clearable
v-model=
"
form.l
evel"
>
<el-select
clearable
v-model=
"
queryParams.creditL
evel"
>
<el-option
v-for=
"(item,index) in creditList"
:label=
"item.nameZh"
:key=
"index"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -295,6 +295,19 @@ export default {
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
queryParams
=
{
pageNo
:
1
,
pageSize
:
10
,
number
:
null
,
name
:
null
,
level
:
null
,
source
:
null
,
customerService
:
null
,
status
:
null
,
department
:
null
,
creditLevel
:
null
,
country
:
null
,
}
this
.
handleQuery
();
},
/** 新增按钮操作 */
...
...
src/views/ecw/offer/components/Commossion.vue
View file @
b706f640
...
...
@@ -31,7 +31,7 @@
{{
form
.
orgSeaFreight
}}
{{
currencyMap
[
form
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
seaFreightVolume
]
}}
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('佣金类型')
"
prop
=
"
commissionType
"
>
<
dict
-
selector
:
type
=
"
DICT_TYPE.COMMISSION_TYPE
"
v
-
model
=
"
form.commissionType
"
form
-
type
=
"
radio
"
/>
<
dict
-
selector
:
type
=
"
DICT_TYPE.COMMISSION_TYPE
"
v
-
model
=
"
form.commissionType
"
form
-
type
=
"
radio
"
formatter
=
"
number
"
/>
<
/el-form-item
>
<!--
明佣或者明佣
+
暗佣才显示
-->
...
...
@@ -73,7 +73,7 @@
<
div
v
-
if
=
"
form.applyStatus != 1
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
:
disabled
=
"
!submitable
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
...
...
@@ -133,6 +133,20 @@ export default {
}
}
,
computed
:
{
// 是否可以提交
submitable
(){
let
submitable
=
false
;
[
[
'
orgLightCommissionAmount
'
,
'
lightCommissionAmount
'
],
[
'
orgShadeCommissionAmount
'
,
'
shadeCommissionAmount
'
],
[
'
commissionType
'
,
'
orgCommissionType
'
]
].
forEach
(
item
=>
{
if
(
this
.
form
[
item
[
0
]]
!=
this
.
form
[
item
[
1
]]){
submitable
=
true
}
}
)
return
submitable
}
,
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
...
...
src/views/ecw/offer/components/SpecialDiscount.vue
View file @
b706f640
...
...
@@ -56,7 +56,7 @@
<
div
class
=
"
page-title
"
>
审批流程
<
/div
>
<
work
-
flow
xmlkey
=
"
sheet_sale
"
v
-
model
=
"
ccIdArr
"
/>
<
div
v
-
if
=
"
form.applyStatus != 1
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
:
disabled
=
"
!submitable
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
...
...
@@ -107,6 +107,7 @@ export default {
form
:
{
type
:
1
}
,
orignal
:
{
}
,
// 原始数据,用来判断是否做了修改
rules
:{
seaFreight
:
{
required
:
true
,
message
:
'
运费不能为空
'
}
,
clearanceFreight
:
{
required
:
true
,
message
:
'
清关费不能为空
'
}
...
...
@@ -130,6 +131,7 @@ export default {
getOfferSpecial
(){
getOfferSpecial
(
this
.
offerProdId
,
{
type
:
1
}
).
then
(
r
=>
{
this
.
form
=
r
.
data
this
.
orignal
=
r
.
data
}
)
}
,
getProductTypeNameById
(
id
){
...
...
@@ -140,6 +142,19 @@ export default {
}
}
,
computed
:
{
// 是否可以提交
submitable
(){
let
submitable
=
false
;
[
[
'
orgClearanceFreight
'
,
'
clearanceFreight
'
],
[
'
orgSeaFreight
'
,
'
seaFreight
'
]
].
forEach
(
item
=>
{
if
(
this
.
form
[
item
[
0
]]
!=
this
.
form
[
item
[
1
]]){
submitable
=
true
}
}
)
return
submitable
}
,
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
...
...
src/views/ecw/offer/edit.vue
View file @
b706f640
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
inline
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
inline
:validate-on-rule-change=
"false"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
新建报价单
'
)
}}
</div>
<el-form-item
:label=
"$t('所属人')"
prop=
"relation"
>
...
...
@@ -552,31 +552,7 @@ export default {
transportVO
:
{}
},
// 表单校验
rules
:
{
marks
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
&&
!
/
[
a-zA-Z
]
/
.
test
(
value
.
charAt
(
0
))){
return
callback
(
new
Error
(
this
.
$t
(
'
唛头必须以字母开头
'
)))
}
callback
()
},
trigger
:
'
blur
'
}
],
lineId
:
[{
required
:
true
,
message
:
"
请选择线路
"
}],
consignorId
:
[{
required
:
true
,
message
:
"
发货人不能为空
"
,}],
consigneeId
:
[{
required
:
true
,
message
:
"
收货人不能为空
"
}],
startTime
:
[{
required
:
true
,
message
:
"
有效期开始时间不能为空
"
}],
endTime
:
[{
required
:
true
,
message
:
"
有效期结束时间不能为空
"
}],
transportId
:
[{
required
:
true
,
message
:
"
选择运输方式
"
}],
channelId
:
[{
required
:
true
,
message
:
"
选择出货渠道
"
}],
stopTime
:
[{
required
:
true
,
message
:
"
不能为空
"
}],
relation
:
[{
required
:
true
,
message
:
"
请选择所属人
"
}],
control
:
[{
required
:
true
,
message
:
"
请选择是否控货
"
}],
importance
:
[{
required
:
true
,
message
:
"
请选择重要成都
"
}]
/*sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }], */
},
labelStyle
:
'
width:120px
'
,
productNames
:
{},
// 品名id和名称对应关系
couponAvailableGroupDtoList
:
[],
// 可用优惠
...
...
@@ -587,6 +563,39 @@ export default {
};
},
computed
:{
rules
(){
let
rules
=
{
marks
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
value
&&
!
/
[
a-zA-Z
]
/
.
test
(
value
.
charAt
(
0
))){
return
callback
(
new
Error
(
this
.
$t
(
'
唛头必须以字母开头
'
)))
}
callback
()
},
trigger
:
'
blur
'
}
],
lineId
:
[{
required
:
true
,
message
:
"
请选择线路
"
}],
/* consignorId: [{ required: true, message: "发货人不能为空",}],
consigneeId: [{ required: true, message: "收货人不能为空"}], */
startTime
:
[{
required
:
true
,
message
:
"
有效期开始时间不能为空
"
}],
endTime
:
[{
required
:
true
,
message
:
"
有效期结束时间不能为空
"
}],
transportId
:
[{
required
:
true
,
message
:
"
选择运输方式
"
}],
channelId
:
[{
required
:
true
,
message
:
"
选择出货渠道
"
}],
stopTime
:
[{
required
:
true
,
message
:
"
不能为空
"
}],
relation
:
[{
required
:
true
,
message
:
"
请选择所属人
"
}],
control
:
[{
required
:
true
,
message
:
"
请选择是否控货
"
}],
importance
:
[{
required
:
true
,
message
:
"
请选择重要成都
"
}]
}
if
(
this
.
form
.
relation
==
1
){
rules
.
consignorId
=
[{
required
:
true
,
message
:
"
发货人不能为空
"
,}]
}
if
(
this
.
form
.
relation
==
2
){
rules
.
consigneeId
=
[{
required
:
true
,
message
:
"
收货人不能为空
"
,}]
}
return
rules
},
exportCityList
(){
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
)
},
...
...
src/views/ecw/order/cargoControl.vue
View file @
b706f640
...
...
@@ -99,7 +99,7 @@
</el-table-column>
<el-table-column
:label=
"$t('控货状态')"
align=
"center"
prop=
"transportId"
>
<
template
slot-scope=
"{row}"
>
<template
v-if=
"row.cargoControlStatus == 1 && row.isToReview"
>
放货中
</
template
>
<template
v-if=
"row.cargoControlStatus == 1 && row.isToReview"
>
{{
$t
(
'
放货中
'
)
}}
</
template
>
<dict-tag
v-else
:type=
"DICT_TYPE.CONTROL_GOODS_STATUS"
:value=
"row.cargoControlStatus"
/>
</template>
</el-table-column>
...
...
src/views/ecw/order/components/Release.vue
View file @
b706f640
...
...
@@ -49,7 +49,7 @@
</div>
<el-table
:data=
"[formData]"
border
class=
"release-table"
>
<el-table-column
:label=
"$t('控货箱数')"
>
{{
detail
.
sumNum
}}
{{
detail
.
sumNum
-
detail
.
releaseNum
}}
</el-table-column>
<el-table-column
:label=
"$t('放货箱数')"
>
<template
slot-scope=
"
{row}">
...
...
src/views/ecw/order/components/Transfer.vue
View file @
b706f640
...
...
@@ -6,7 +6,7 @@
<el-input
v-model=
"cargoControlName"
disabled
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('原控货手机号')"
>
<el-input
:value=
"
consignee
CountryCode + ' ' + cargoControlPhone"
disabled
></el-input>
<el-input
:value=
"
'+' + cargoControl
CountryCode + ' ' + cargoControlPhone"
disabled
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('新控货人')"
prop=
"name"
>
...
...
@@ -14,15 +14,14 @@
</el-form-item>
<el-form-item
:label=
"$t('新控货手机号')"
prop=
"phone"
>
<area-code-selector
v-model=
"form.dialCodeSrc"
/>
<el-input
v-model=
"form.phone"
type=
"tel"
class=
"ml-10 w-200"
/>
<el-input
v-model=
"form.phone"
type=
"tel"
maxlength=
"11"
class=
"ml-10 w-200"
/>
</el-form-item>
<el-form-item
:label=
"$t('新控货人邮箱')"
prop=
"email"
>
<el-input
v-model=
"form.email"
type=
"email"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
prop=
"code"
>
<el-input
v-model.number=
"form.code"
type=
"number"
>
<send-sms-code
slot=
"append"
:order-id=
"orderId"
scene=
"4"
/>
</el-input>
<el-input
v-model.number=
"form.code"
type=
"number"
class=
"w-200 mr-10"
></el-input>
<send-sms-code
:order-id=
"orderId"
scene=
"4"
/>
</el-form-item>
<el-form-item
label=
""
>
<el-button
type=
"primary"
@
click=
"submit"
>
{{
$t
(
'
确定转移
'
)
}}
</el-button>
...
...
@@ -49,9 +48,8 @@ export default {
orderId
:
[
String
,
Number
],
cargoControlName
:
String
,
cargoControlPhone
:
String
,
c
onsignee
CountryCode
:
String
,
c
argoControl
CountryCode
:
String
,
orderNo
:
String
,
},
components
:
{
SendSmsCode
,
NeedKnow
,
AreaCodeSelector
},
data
(){
...
...
src/views/ecw/order/components/warehouseDetails.vue
View file @
b706f640
...
...
@@ -121,6 +121,10 @@
<div
v-if=
"type === 2"
>
<p>
申请理由
</p>
<div>
<dict-tag
:type=
"DICT_TYPE.FEE_TYPE"
:value=
"FeeDetails.feeType"
/>
{{FeeDetails.applicationFee}}
<dict-tag
:type=
"DICT_TYPE.COMMISSION_CURRENCY_TYPE"
:value=
"FeeDetails.applicationFeeCurrency"
/>
<dict-tag
:value=
"FeeDetails.payType"
:type=
"DICT_TYPE.PAYMENT_TYPE"
></dict-tag>
{{FeeDetails.remarks}}
</div>
</div>
...
...
@@ -162,6 +166,7 @@ import {
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
Template
from
"
@/views/cms/template
"
;
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
export
default
{
components
:
{
Template
},
props
:{
...
...
@@ -176,6 +181,7 @@ export default {
name
:
"
warehouseDetails
"
,
data
(){
return
{
DICT_TYPE
,
FeeDetails
:{
orderBackVO
:{},
logisticsInfoDto
:{}
...
...
src/views/ecw/order/components/warehouseLocation.vue
View file @
b706f640
<
template
>
<div>
<el-dialog
...
...
@@ -9,12 +8,12 @@
v-bind=
"$attrs"
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"activeWarehouse =
{}">
<el-tab-pane
v-if=
"item.warehouseId === warehouseId"
:label=
"item.name"
:name=
"'' + index"
v-for=
"(item, index) in area"
:key=
"item.id +
index"
>
<el-tab-pane
v-if=
"item.warehouseId === warehouseId"
:label=
"item.name"
:name=
"'' + index"
v-for=
"(item, index) in area"
:key=
"
index"
>
<div>
<div
style=
"text-align: center"
>
区域
</div>
<div
style=
"background-color: #efefef;padding: 10px 10px 0;border: #dcdcdc solid 1px;border-radius: 2px"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
v-for=
"
(warehouse, i) in item.children"
:key=
"warehouse.id + i
"
>
<el-col
:span=
"12"
v-for=
"
warehouse in item.children"
:key=
"warehouse.id
"
>
<div
class=
"warehouse-block"
:class=
"
{'warehouse-block-selected': warehouse.selected, 'warehouse-block-active': warehouse.id === activeWarehouse.id}"
...
...
@@ -29,14 +28,25 @@
<div>
<div
style=
"text-align: center"
>
仓位
</div>
<div
class=
"position-group"
>
<div
class=
"position"
v-for=
"(position ,index) in activeWarehouse.positionList"
:key=
"item.id + index "
>
<div
class=
"position-item"
v-for=
"item in position.children"
@
click=
"handleSelectPosition(item)"
:class=
"
{'position-item-active': item.selected}">
{{
item
.
code
}}
</div>
<div
class=
"position"
v-for=
"position in activeWarehouse.positionList"
:key=
"position.id"
@
click=
"handleSelectPosition(position)"
>
<template
v-if=
"position.children"
>
<div
class=
"position-item"
v-for=
"item in position.children"
:key=
"item.id"
@
click.stop=
"handleSelectPositionChild(item)"
:class=
"
{'position-item-active': item.selected}">
{{
item
.
code
}}
</div>
</
template
>
<
template
v-else
>
<div
class=
"position-item"
:class=
"
{'position-item-active': position.selected}">
{{
position
.
code
}}
</div>
</
template
>
</div>
</div>
</div>
...
...
@@ -57,7 +67,7 @@
import
{
getByWarehouseId
}
from
'
@/api/ecw/warehouseArea
'
export
default
{
name
:
'
warehouseLocation
'
,
name
:
'
WarehouseAreaDialog
'
,
props
:
{
visible
:
{
type
:
Boolean
,
...
...
@@ -72,7 +82,7 @@ export default {
warehouseId
:
{
type
:
Number
,
default
:
undefined
}
,
}
},
data
()
{
...
...
@@ -83,7 +93,8 @@ export default {
activeName
:
'
0
'
,
selectedWarehouse
:
[],
selectedPosition
:
[],
activeWarehouse
:
{}
activeWarehouse
:
{},
activeWarehouseId
:
undefined
};
},
...
...
@@ -92,16 +103,17 @@ export default {
if
(
val
)
{
this
.
opened
=
true
getByWarehouseId
({
cityId
:
this
.
cityId
,
}).
then
(
r
=>
{
if
(
this
.
area
.
length
===
0
)
getByWarehouseId
({
cityId
:
this
.
cityId
,
warehouseId
:
this
.
warehouseId
}).
then
(
r
=>
{
const
area
=
r
.
data
area
.
forEach
(
e
=>
{
// 仓库
e
.
children
.
forEach
(
f
=>
{
e
.
children
?
.
forEach
(
f
=>
{
// 区域
f
.
selected
=
false
if
(
f
.
positionList
)
f
.
positionList
.
forEach
(
g
=>
{
// 位置
if
(
g
.
children
)
g
.
children
.
forEach
(
k
=>
{
g
.
selected
=
false
g
.
children
?.
forEach
(
k
=>
{
// 子位置
k
.
selected
=
false
})
...
...
@@ -131,18 +143,25 @@ export default {
this
.
activeWarehouse
=
warehouse
if
(
!!
warehouse
.
selected
)
{
warehouse
.
selected
=
false
}
else
{
warehouse
.
selected
=
true
return
}
else
if
(
this
.
activeWarehouseId
!==
warehouse
.
id
)
{
this
.
activeWarehouseId
=
warehouse
.
id
console
.
log
(
this
.
inputValue
.
find
(
e
=>
e
.
areaId
===
warehouse
.
id
),
warehouse
.
id
)
if
(
this
.
inputValue
.
find
(
e
=>
e
.
areaId
===
warehouse
.
id
)){
return
}
}
warehouse
.
selected
=
true
// 区域被选,清空该区域下的位置
if
(
warehouse
.
positionList
)
warehouse
.
positionList
.
forEach
(
g
=>
{
if
(
g
.
children
)
g
.
children
.
forEach
(
k
=>
{
k
.
selected
=
false
})
// 区域被选,清空该区域下的位置
if
(
warehouse
.
positionList
)
warehouse
.
positionList
?
.
forEach
(
g
=>
{
g
.
selected
=
false
g
.
children
?.
forEach
(
k
=>
{
k
.
selected
=
false
})
}
}
)
},
handleSelectPosition
(
position
)
{
handleSelectPosition
Child
(
position
)
{
if
(
!!
position
.
selected
)
{
position
.
selected
=
false
...
...
@@ -151,9 +170,9 @@ export default {
if
(
!
parentAre
.
selected
)
{
// 检查父区域下是否所有位置被反选
let
hasSelected
=
false
parentAre
.
positionList
.
forEach
(
g
=>
{
parentAre
.
positionList
?
.
forEach
(
g
=>
{
// 位置
g
.
children
.
forEach
(
k
=>
{
g
.
children
?
.
forEach
(
k
=>
{
// 子位置
if
(
k
.
selected
)
hasSelected
=
true
})
...
...
@@ -167,6 +186,17 @@ export default {
// 选位置时,父区域反选
this
.
area
.
find
(
e
=>
e
.
id
===
position
.
domainId
).
children
.
find
(
f
=>
f
.
id
===
position
.
areaId
).
selected
=
false
}
},
handleSelectPosition
(
position
)
{
if
(
!!
position
.
selected
)
{
position
.
selected
=
false
}
else
{
position
.
selected
=
true
// 选位置时,父区域反选
this
.
area
.
find
(
e
=>
e
.
id
===
position
.
domainId
).
children
.
find
(
f
=>
f
.
id
===
position
.
areaId
).
selected
=
false
}
}
},
...
...
@@ -180,17 +210,17 @@ export default {
selected
()
{
const
result
=
[]
this
.
area
.
forEach
(
e
=>
{
this
.
area
?
.
forEach
(
e
=>
{
// 仓库
e
.
children
.
forEach
(
f
=>
{
e
.
children
?
.
forEach
(
f
=>
{
// 区域
if
(
f
.
selected
)
result
.
push
(
f
.
code
)
else
if
(
f
.
positionList
)
f
.
positionList
.
forEach
(
g
=>
{
else
f
.
positionList
?
.
forEach
(
g
=>
{
// 位置
if
(
g
.
selected
)
result
.
push
(
k
.
code
)
if
(
g
.
children
)
g
.
children
.
forEach
(
k
=>
{
if
(
g
.
selected
)
result
.
push
(
f
.
code
+
g
.
code
)
else
if
(
g
.
children
)
g
.
children
?
.
forEach
(
k
=>
{
// 子位置
if
(
k
.
selected
)
result
.
push
(
k
.
code
)
if
(
k
.
selected
)
result
.
push
(
f
.
code
+
k
.
code
)
})
})
})
...
...
@@ -201,33 +231,35 @@ export default {
inputValue
(){
const
result
=
[]
this
.
area
.
forEach
(
e
=>
{
this
.
area
?
.
forEach
(
e
=>
{
// 仓库
e
.
children
.
forEach
(
f
=>
{
e
.
children
?
.
forEach
(
f
=>
{
// 区域
if
(
f
.
selected
)
result
.
push
({
orderId
:
this
.
orderId
,
wareId
:
f
.
pid
,
areaId
:
f
.
id
})
else
if
(
f
.
positionList
)
f
.
positionList
.
forEach
(
g
=>
{
// 位置
if
(
g
.
selected
)
result
.
push
({
orderId
:
this
.
orderId
,
wareId
:
g
.
domainId
,
areaId
:
g
.
areaId
,
locationId
:
g
.
id
})
else
if
(
g
.
children
)
g
.
children
.
forEach
(
k
=>
{
// 子位置
if
(
k
.
selected
)
result
.
push
({
else
{
f
.
positionList
?.
forEach
(
g
=>
{
// 位置
if
(
g
.
selected
)
result
.
push
({
orderId
:
this
.
orderId
,
wareId
:
k
.
domainId
,
areaId
:
k
.
areaId
,
locationId
:
k
.
id
wareId
:
g
.
domainId
,
areaId
:
g
.
areaId
,
locationId
:
g
.
id
})
else
g
.
children
?.
forEach
(
k
=>
{
// 子位置
if
(
k
.
selected
)
result
.
push
({
orderId
:
this
.
orderId
,
wareId
:
k
.
domainId
,
areaId
:
k
.
areaId
,
locationId
:
k
.
id
})
})
})
}
)
}
})
})
...
...
@@ -272,9 +304,10 @@ export default {
border
:
1px
#EFEFEF
solid
;
gap
:
1px
;
min-height
:
64px
;
flex-flow
:
wrap
;
}
.position
{
width
:
20%
;
width
:
calc
(
20%
-
1px
)
;
height
:
64px
;
display
:
flex
;
flex-direction
:
column
;
...
...
src/views/ecw/order/detail.vue
View file @
b706f640
...
...
@@ -89,12 +89,17 @@
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('代收货款')"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"order.isCollection"
/>
<
template
v-if=
"order.isCollection == 1"
>
(
{{
order
.
collectionProxy
}}{{
currencyMap
[
order
.
collectionProxyCurrency
]
}}
)
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('集运仓库')"
>
{{isExternalWarehouse ? '自有仓' : '外部仓'}}
<div
v-for=
"(item, index) in order.externalWarehouseDtoList"
:key=
"index"
>
装柜时间: {{item.estLoadingTime}} 装柜地址:{{item.loadingAddress}}
</div>
{{order.isExternalWarehouse ? $t('外部仓') : $t('自有仓') }}
<
template
v-for=
"(item, index) in order.externalWarehouseDtoList"
>
<div
v-if=
"item.estLoadingTime || item.loadingAddress"
:key=
"index"
>
<!--
{{
$t
(
'
装柜时间
'
)
}}
:
{{
item
.
estLoadingTime
}}
-->
{{
$t
(
'
装柜地址
'
)
}}
:
{{
item
.
loadingAddress
}}
</div>
</
template
>
</el-descriptions-item>
</el-descriptions>
</el-card>
...
...
@@ -196,10 +201,14 @@
{{objective.titleZh || '-'}}
</el-table-column>
<el-table-column
:label=
"$t('品名')"
prop=
"titleZh"
></el-table-column>
<el-table-column
:label=
"$t('箱数')"
prop=
"num"
></el-table-column>
<el-table-column
:label=
"$t('箱数')"
prop=
"num"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
num
||
'
-
'
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('体积/重量')"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
volume
}}
/
{{
row
.
weight
}}
{{
row
.
volume
||
'
-
'
}}
/
{{
row
.
weight
||
'
-
'
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('收款类型')"
>
...
...
src/views/ecw/order/edit.vue
View file @
b706f640
...
...
@@ -291,11 +291,11 @@
</div>
<div>
<el-form-item
:label=
"$t('外部仓库')"
prop=
"isExternalWarehouse"
>
<el-checkbox
label=
""
:checked=
"!!
form.isExternalWarehouse"
@
change=
"form.isExternalWarehouse=$event"
:disabled=
"false"
></el-checkbox>
<el-checkbox
label=
""
v-model=
"
form.isExternalWarehouse"
@
change=
"form.isExternalWarehouse=$event"
:disabled=
"false"
></el-checkbox>
</el-form-item>
<div
v-if=
"form.isExternalWarehouse"
class=
"pl-50"
>
<div
v-for=
"(item, index) in form.externalWarehouseDtoList"
class=
"flex"
:key=
"index"
>
<div
class=
"w-300"
>
<
!-- <
div class="w-300">
<el-form-item :label="$t('装货时间')"
:prop="'externalWarehouseDtoList.' + index + '.estLoadingTime'"
:rules="{
...
...
@@ -304,8 +304,8 @@
>
<el-date-picker v-model="item.estLoadingTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item>
</div>
<div
class=
"w-300
ml-10
"
>
</div>
-->
<div
class=
"w-300"
>
<el-form-item
:label=
"$t('装货地址')"
:prop=
"'externalWarehouseDtoList.' + index + '.loadingAddress'"
:rules=
"{
...
...
@@ -535,7 +535,7 @@ export default {
isCollection
:
false
,
type
:[],
isExternalWarehouse
:
false
,
externalWarehouseDtoList
:[
{}
],
externalWarehouseDtoList
:[],
orderItemVOList
:[],
drawee
:
2
},
...
...
@@ -583,7 +583,7 @@ export default {
computed
:{
// 是否已完成入仓
inWarehouse
(){
return
this
.
form
.
inWarehouseState
&&
this
.
form
.
inWarehouseState
>
201
return
!!
this
.
form
.
inWarehouseState
&&
this
.
form
.
inWarehouseState
>
201
},
exportCityList
(){
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
||
item
.
type
==
3
)
...
...
@@ -733,9 +733,22 @@ export default {
if
(
!
router
)
return
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
this
.
calculationPrice
()
},
'
form.packageTypeArr
'
(
val
){
console
.
log
(
'
packageType
'
,
val
,
val
.
length
)
this
.
$set
(
this
.
form
,
'
packageType
'
,
val
?
val
.
join
(
'
,
'
)
:
''
)
},
'
form.isExternalWarehouse
'
(
isExternalWarehouse
){
// 勾选外部仓则添加一个默认的,取消则删除默认的空的
if
(
!
isExternalWarehouse
){
this
.
$set
(
this
.
form
,
'
externalWarehouseDtoList
'
,
[])
}
else
if
(
!
this
.
form
.
externalWarehouseDtoList
.
length
){
this
.
$set
(
this
.
form
,
'
externalWarehouseDtoList
'
,
[{}])
}
},
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter
(
val
){
...
...
@@ -777,12 +790,12 @@ export default {
methods
:
{
getOrder
(){
getUpdateInfo
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
this
.
form
=
res
.
data
this
.
form
=
{...
res
.
data
}
this
.
form
.
orderItemVOList
.
forEach
(
item
=>
{
item
.
prodAttrArr
=
item
.
prodAttrIds
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
})
this
.
form
.
orderItemVOList
=
[];
this
.
form
.
type
=
this
.
form
.
type
?
this
.
form
.
type
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
:
[]
this
.
form
.
packageTypeArr
=
this
.
form
.
packageType
?
this
.
form
.
packageType
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
:
[]
this
.
$set
(
this
.
form
,
'
consignorCompany
'
,
res
.
data
.
consignorVO
.
company
)
this
.
$set
(
this
.
form
,
'
consignorContactsId
'
,
res
.
data
.
consignorVO
.
customerContactsId
)
this
.
$set
(
this
.
form
,
'
consignorCountryCode
'
,
res
.
data
.
consignorVO
.
countryCode
.
replace
(
'
+
'
,
''
))
...
...
@@ -808,7 +821,12 @@ export default {
}
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this
.
$nextTick
(
res
=>
{
this
.
$nextTick
(()
=>
{
res
.
data
.
orderItemVOList
.
forEach
(
item
=>
{
item
.
prodAttrArr
=
item
.
prodAttrIds
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
).
map
(
attrId
=>
+
attrId
)
this
.
form
.
orderItemVOList
.
push
({...
item
})
})
if
(
this
.
inWarehouse
){
Object
.
keys
(
this
.
rules
).
forEach
(
field
=>
{
console
.
log
(
"
watch
"
,
field
)
...
...
@@ -898,7 +916,9 @@ export default {
onProductChange
(
row
,
product
){
console
.
log
(
product
)
// row.goodsType = product ? product.typeId : null
row
.
prodAttrArr
=
!
product
?
[]
:
product
.
attrId
.
split
(
'
,
'
).
filter
(
item
=>
item
!==
''
).
map
(
item
=>
+
item
)
if
(
product
.
id
!=
row
.
prodId
){
row
.
prodAttrArr
=
!
product
?
[]
:
product
.
attrId
.
split
(
'
,
'
).
filter
(
item
=>
item
!==
''
).
map
(
item
=>
+
item
)
}
row
.
prodTitleEn
=
product
.
titleEn
row
.
prodTitleZh
=
product
.
titleZh
this
.
calculationPrice
()
...
...
@@ -962,8 +982,8 @@ export default {
if
(
this
.
form
.
harvestMethod
==
2
){
if
(
!
this
.
form
.
country
||
!
this
.
form
.
province
||
!
this
.
form
.
city
){
return
this
.
$notify
({
title
:
'
提示
'
,
message
:
"
收货地区填写不完整
"
,
title
:
this
.
$t
(
'
提示
'
)
,
message
:
this
.
$t
(
"
收货地区填写不完整
"
)
,
type
:
'
warning
'
});
}
...
...
src/views/ecw/order/exception/index.vue
View file @
b706f640
...
...
@@ -105,7 +105,7 @@
<el-table-column
:label=
"$t('运输方式/目的地')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span><dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportId"
></dict-tag>
{{
'
/
'
+
scope
.
row
.
destinationZh
}}
</span>
/
{{
$l
(
scope
.
row
,
'
destination
'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('控货')"
align=
"center"
>
...
...
src/views/ecw/order/index.vue
View file @
b706f640
...
...
@@ -146,7 +146,7 @@
<el-table-column
:label=
"$t('始发仓')"
align=
"center"
prop=
"startWarehouseName"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
startWarehouseName
}}
<
template
v-if=
"row.isExternalWarehouse"
>
(
{{
$t
(
'
外部仓
'
)
}}
)
</
template
>
<
span
style=
"color:red"
v-if=
"row.isExternalWarehouse"
>
(
{{
$t
(
'
外部仓
'
)
}}
)
</span
>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('运输方式/目的地')"
align=
"center"
prop=
"transportId"
>
...
...
src/views/ecw/order/prepayDeal.vue
View file @
b706f640
...
...
@@ -29,7 +29,7 @@
{{
orderData
?
getRouterNameById
():
''
}}
</el-form-item>
</el-row>
<!-- 单证异常,发货人异常,其他异常 不显示这部分内容 -->
<div
v-if=
"['order_doc_exception','order_consignor_exception', 'order_other_exception'].indexOf(orderExceptionData.orderExceptionType) == -1"
>
<!-- 预付异常,提货异常是针对整个订单的 -->
...
...
@@ -76,7 +76,7 @@
<
template
v
-
else
>
{{
$t
(
'
无入仓数据
'
)
}}
<
/template
>
<
/el-row
>
<
/template
>
<
el
-
row
:
span
=
"
12
"
>
<
el
-
form
-
item
:
label
=
"
$t('异常描述')+':'
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ORDER_ERROR_TYPE
"
:
value
=
"
orderExceptionData.orderExceptionType
"
/>
...
...
@@ -125,7 +125,7 @@
{{
currencyMap
[
row
.
currencyId
]
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('付款人')
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
span
>
{{
scope
.
row
.
consigneeName
}}
({{
$t
(
'
收货人
'
)
}}
)
<
/span
>
...
...
@@ -209,7 +209,7 @@
<
/el-form-item
>
<
/el-col
>
<
el
-
col
:
span
=
"
8
"
>
<
el
-
form
-
item
:
label
=
"
$t('预付商品货值占
佣金额
比例')+':'
"
label
-
width
=
"
200px
"
>
<
el
-
form
-
item
:
label
=
"
$t('预付商品货值占
总货值
比例')+':'
"
label
-
width
=
"
200px
"
>
{{
orderFee
.
paymentGoodsWorthScale
}}
%
<
/el-form-item
>
<
/el-col
>
...
...
@@ -232,7 +232,7 @@
<
/el-col
>
<
/el-row
>
<
el
-
row
:
span
=
"
8
"
v
-
if
=
"
orderExceptionData.orderExceptionType=='order_doc_exception'
"
>
<
el
-
form
-
item
:
label
=
"
$t('报关资料')+':'
"
size
=
"
medium
"
>
<
el
-
form
-
item
:
label
=
"
$t('报关资料')+':'
"
size
=
"
medium
"
:
require
=
"
true
"
>
<
file
-
upload
v
-
model
=
"
handlerParams.fileList
"
:
value
=
"
orderExceptionData.file
"
><
/file-upload
>
<
/el-form-item
>
<
/el-row
>
...
...
@@ -360,7 +360,7 @@
orderExceptionStatus
:
"
1
"
,
orderExceptionHandlerResult
:
''
}
,
//发货/收货人信息
consigneeData
:[],
routerList
:[],
...
...
@@ -384,7 +384,7 @@
'
handlerParams.orderExceptionHandlerResult
'
(
val
){
if
(
val
==
'
no_pay
'
){
this
.
showWorkFlow
=
true
}
}
else
this
.
showWorkFlow
=
false
}
}
,
computed
:
{
...
...
@@ -470,6 +470,12 @@
this
.
$modal
.
msgError
(
this
.
$t
(
'
请选择处理结果
'
));
return
}
if
(
this
.
orderExceptionData
.
orderExceptionType
==
'
order_doc_exception
'
){
if
(
!
this
.
handlerParams
.
fileList
||
this
.
handlerParams
.
fileList
.
length
==
0
){
this
.
$modal
.
msgError
(
this
.
$t
(
'
请上传报关资料
'
));
return
}
}
handlerExceptionByExceptionId
(
this
.
handlerParams
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
'
提交成功
'
));
this
.
$redirect
(
'
/order/pending?id=
'
+
this
.
orderData
.
orderId
)
...
...
@@ -522,4 +528,4 @@
display
:
flex
;
/* justify-content: space-between; */
}
<
/style>
\ No newline at end of file
<
/style
>
src/views/ecw/order/singleApply.vue
View file @
b706f640
...
...
@@ -130,7 +130,7 @@
</el-table-column>
<el-table-column
:label=
"$t('状态')"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
abnormalState
!=
0
?
$t
(
'
异常
'
):
$t
(
'
正常
'
)
}}
<dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"scope.row.status"
></dict-tag>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -180,6 +180,7 @@ export default {
},
data
()
{
return
{
DICT_TYPE
,
checked
:
false
,
orderData
:{},
// 订单异常列表
...
...
src/views/ecw/order/special/Commission.vue
View file @
b706f640
...
...
@@ -78,7 +78,7 @@
<
div
class
=
"
page-title
"
>
审批流程
<
/div
>
<
work
-
flow
xmlkey
=
"
commission_config
"
v
-
model
=
"
ccIdArr
"
/>
<
div
v
-
if
=
"
form.applyStatus != 1
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
:
disabled
=
"
!submitable
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
...
...
@@ -199,6 +199,20 @@ export default {
}
}
,
computed
:
{
// 是否可以提交
submitable
(){
let
submitable
=
false
;
[
[
'
orgLightCommissionAmount
'
,
'
lightCommissionAmount
'
],
[
'
orgShadeCommissionAmount
'
,
'
shadeCommissionAmount
'
],
[
'
commissionType
'
,
'
orgCommissionType
'
]
].
forEach
(
item
=>
{
if
(
this
.
form
[
item
[
0
]]
!=
this
.
form
[
item
[
1
]]){
submitable
=
true
}
}
)
return
submitable
}
,
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
...
...
src/views/ecw/order/special/Discount.vue
View file @
b706f640
...
...
@@ -58,7 +58,7 @@
<
div
class
=
"
page-title
"
>
审批流程
<
/div
>
<
work
-
flow
xmlkey
=
"
special_apply
"
v
-
model
=
"
ccIdArr
"
/>
<
div
v
-
if
=
"
form.applyStatus != 1
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
:
disabled
=
"
!submitable
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
...
...
@@ -148,6 +148,19 @@ export default {
}
}
,
computed
:
{
// 是否可以提交
submitable
(){
let
submitable
=
false
;
[
[
'
orgClearanceFreight
'
,
'
clearanceFreight
'
],
[
'
orgFreight
'
,
'
freight
'
]
].
forEach
(
item
=>
{
if
(
this
.
form
[
item
[
0
]]
!=
this
.
form
[
item
[
1
]]){
submitable
=
true
}
}
)
return
submitable
}
,
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
...
...
src/views/ecw/order/transferWarehousing.vue
View file @
b706f640
...
...
@@ -67,7 +67,7 @@
<el-descriptions
style=
"margin-top: 20px"
:column=
"4"
border
>
<el-descriptions-item
:label=
"$t('集运仓库')"
>
{{ warehouseDetails
&&
warehouseDetails.warehouseOutName ? warehouseDetails.warehouseOutName : '' }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('储位')"
>
<div
v-for=
"item in storageSpaceList"
style=
"display: flex;"
><div>
{{item.warehouseName ? item.warehouseName : ''}}
</div><div>
{{item.warehouseName ? item.regionName :''}} {{$t('区')}}
</div>
<div>
{{item.code}}
</div></div>
<div
v-for=
"item in storageSpaceList"
style=
"display: flex;"
><div>
{{item.warehouseName ? item.warehouseName : ''}}
{{$t('仓')}}
</div><div>
{{item.warehouseName ? item.regionName :''}} {{$t('区')}}
</div>
<div>
{{item.code}}
</div></div>
</el-descriptions-item>
<el-descriptions-item
v-if=
"type == 2"
:label=
"$t('选择储位')"
>
<div
@
click=
"areaVisible = true"
style=
"color: #0a84ff;cursor: pointer;"
>
{{$t('选择储位')}}
</div>
...
...
@@ -383,18 +383,17 @@ export default {
},
watch
:{
'
params.orderLocationCreateReqVOList
'
(
val
){
console
.
log
(
val
,
'
123
'
)
console
.
log
(
val
,
'
val
'
);
getByWarehouseId
().
then
(
r
=>
{
console
.
log
(
r
,
'
仓库
'
)
let
obj
=
[];
val
.
forEach
(
item
=>
{
r
.
data
.
forEach
(
itemm
=>
{
if
(
item
.
wareId
===
itemm
.
id
){
itemm
.
children
.
forEach
(
itemmm
=>
{
if
(
itemmm
.
id
===
item
.
areaId
){
if
(
itemmm
.
positionList
.
length
>
0
){
if
(
itemmm
.
positionList
&&
itemmm
.
positionList
.
length
>
0
){
itemmm
.
positionList
.
forEach
(
ic
=>
{
if
(
ic
.
children
.
length
>
0
){
if
(
ic
.
children
&&
ic
.
children
.
length
>
0
){
ic
.
children
.
forEach
(
icc
=>
{
if
(
icc
.
id
===
item
.
locationId
){
obj
.
push
({
...
...
@@ -412,7 +411,6 @@ export default {
}
})
})
console
.
log
(
obj
,
'
obj
'
)
this
.
storageSpaceList
=
obj
;
})
}
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
b706f640
...
...
@@ -586,7 +586,7 @@ export default {
}
return
orderWarehouseIn
({
...
this
.
form1
,
brandType
:
this
.
form1
.
brand
?
1
:
0
,
brandType
:
this
.
warehousing
.
brandType
,
orderId
:
this
.
warehousing
.
orderId
,
orderItemId
:
undefined
,
orderNo
:
this
.
warehousing
.
orderNo
,
...
...
@@ -616,7 +616,7 @@ export default {
// 入仓修改
return
orderWarehouseInUpdateApply
({
...
this
.
form
,
brandType
:
this
.
form
.
brand
?
1
:
0
,
brandType
:
this
.
warehousing
.
brandType
,
orderId
:
this
.
warehousing
.
orderId
,
orderItemId
:
this
.
warehousing
.
orderItemId
,
orderNo
:
this
.
warehousing
.
orderNo
,
...
...
@@ -643,7 +643,7 @@ export default {
// 首次入仓
return
orderWarehouseIn
({
...
this
.
form
,
brandType
:
(
this
.
form
.
brand
&&
this
.
form
.
brand
!==
'
0
'
)
?
1
:
0
,
brandType
:
this
.
warehousing
.
brandType
,
orderId
:
this
.
warehousing
.
orderId
,
orderItemId
:
this
.
warehousing
.
orderItemId
,
orderNo
:
this
.
warehousing
.
orderNo
,
...
...
src/views/ecw/order/warehousing/index.vue
View file @
b706f640
...
...
@@ -140,7 +140,7 @@
</el-form>
<warehouse-area-dialog
ref=
"area"
:visible.sync=
"areaVisible"
v-model=
"form.orderLocationCreateReqVOList"
:order-id=
"orderId"
:
city-id=
"city
Id"
></warehouse-area-dialog>
:order-id=
"orderId"
:
warehouse-id=
"warehouse
Id"
></warehouse-area-dialog>
<edit-dialog
:title=
"title"
:order-id=
"order.orderId"
:visible.sync=
"warehousingVisible"
:warehousing=
"warehousing"
:edit=
"isEdit"
></edit-dialog>
...
...
@@ -431,8 +431,8 @@ export default {
})
return
result
},
city
Id
(){
return
this
.
order
?.
departureVO
?.
departur
eId
warehouse
Id
(){
return
this
.
order
?.
logisticsInfoDto
?.
startWarehous
eId
}
}
}
...
...
src/views/ecw/productPrice/batchEdit.vue
View file @
b706f640
...
...
@@ -9,12 +9,18 @@
<div
slot=
"header"
style=
"font-size:20px;"
>
{{
$t
(
'
价格设置
'
)
}}
<span>
<
el-checkbox
label=
""
@
change=
"form.advanceStatus=$event ? 1 : 0"
>
{{
$t
(
'
预付
'
)
}}
</el-checkbox
>
<
!--
<el-checkbox
label=
""
@
change=
"form.needPay=$event ? 1 : 0"
>
{{
$t
(
'
预付
'
)
}}
</el-checkbox>
--
>
<el-checkbox
label=
""
@
change=
"form.stepPrice=$event ? 1 : 0"
>
{{
$t
(
'
阶梯订单
'
)
}}
</el-checkbox>
</span>
</div>
<el-form-item
:label=
"$t('预付')"
prop=
"needPay"
>
<el-radio-group
v-model=
"form.needPay"
>
<el-radio
:label=
"1"
>
预付
</el-radio>
<el-radio
:label=
"0"
>
均可
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"$t('单价模式')"
prop=
"priceType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_TYPE"
v-model=
"form.priceType"
form-type=
"radio"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_TYPE"
v-model=
"form.priceType"
form-type=
"radio"
/>
</el-form-item>
<!--阶梯订单-->
<template
v-if=
"form.stepPrice==1"
>
...
...
@@ -32,60 +38,60 @@
-
<
el
-
input
v
-
model
=
"
item.endNum
"
type
=
"
number
"
placeholder
=
""
class
=
"
w100
"
><
/el-input
>
/
<
selector
v
-
model
=
"
form.weightUnit
"
:
options
=
"
unitList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w100
"
/>
<
selector
v
-
model
=
"
form.weightUnit
"
:
options
=
"
unitList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w100
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认运费')
"
v
-
if
=
"
form.priceType != 1
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
item.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w100
"
/>
/ <selector v-model="item.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w100" /
>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
item.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w100
"
/>
/ <selector v-model="item.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w100" /
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认清关费')
"
v
-
if
=
"
form.priceType != 1
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
item.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w100
"
/>
/ <selector v-model="item.clearanceVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w100" /
>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
item.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w100
"
/>
/ <selector v-model="item.clearanceVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w100" /
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认全包价')
"
v
-
if
=
"
form.priceType == 1
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
item.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w100
"
/>
/ <selector v-model="item.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w100" /
>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
item.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
item.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w100
"
/>
/ <selector v-model="item.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w100" /
>
<
/el-form-item
>
<
/div
>
<
/template
>
<
template
v
-
else
>
<
el
-
form
-
item
:
label
=
"
$t('默认全包价')
"
v
-
if
=
"
form.priceType == 1
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
form.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
form.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w100
"
/>
/ <selector v-model="form.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w100" /
>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
form.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
class
=
"
w100 mr10
"
/>
<
selector
v
-
model
=
"
form.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w100
"
/>
/ <selector v-model="form.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w100" /
>
<
/el-form-item
>
<
template
v
-
else
>
<
el
-
form
-
item
:
label
=
"
$t('默认运费')
"
prop
=
"
transportPrice
"
>
<
el
-
row
:
gutter
=
"
20
"
>
<
el
-
col
:
span
=
"
4
"
>
<
selector
v
-
model
=
"
form.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
form.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
6
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
form.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
form.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
4
"
>
/ <selector v-model="form.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w-100" /
>
/ <selector v-model="form.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w-100" /
>
<
/el-col
>
<
/el-row
>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('默认清关费')
"
prop
=
"
clearancePrice
"
>
<
el
-
row
:
gutter
=
"
20
"
>
<
el
-
col
:
span
=
"
4
"
>
<
selector
v
-
model
=
"
form.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
form.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
6
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
form.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
form.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
4
"
>
/
<
selector
v
-
model
=
"
form.clearanceVolumeUnit
"
:
options
=
"
unitList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
form.clearanceVolumeUnit
"
:
options
=
"
unitList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
/el-row
>
<
/el-form-item
>
...
...
@@ -100,15 +106,15 @@
:
key
=
"
specialIndex + 'transport'
"
>
<
el
-
row
:
gutter
=
"
20
"
>
<
el
-
col
:
span
=
"
4
"
>
<
selector
v
-
model
=
"
special.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
special.allPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
6
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
special.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
special.allPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
4
"
>
/ <selector v-model="special.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w-100" /
>
/ <selector v-model="special.allVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w-100" /
>
<
/el-col
>
<
/el-row
>
<
/el-form-item
>
...
...
@@ -119,15 +125,15 @@
:
key
=
"
specialIndex + 'transport'
"
>
<
el
-
row
:
gutter
=
"
20
"
>
<
el
-
col
:
span
=
"
4
"
>
<
selector
v
-
model
=
"
special.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
special.transportPriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
6
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
special.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
special.transportPrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
4
"
>
/ <selector v-model="special.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w-100" /
>
/ <selector v-model="special.transportVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w-100" /
>
<
/el-col
>
<
/el-row
>
<
/el-form-item
>
...
...
@@ -136,15 +142,15 @@
:
key
=
"
specialIndex + 'clearance'
"
>
<
el
-
row
:
gutter
=
"
20
"
>
<
el
-
col
:
span
=
"
4
"
>
<
selector
v
-
model
=
"
special.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
class
=
"
w-100
"
/>
<
selector
v
-
model
=
"
special.clearancePriceUnit
"
:
options
=
"
currencyList
"
:
label
-
field
=
"
$l('title')
"
value
-
field
=
"
id
"
defaultable
2
class
=
"
w-100
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
6
"
>
<
inputor
default
=
"
0
"
v
-
model
.
number
=
"
special.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
inputor
default
2
=
"
0
"
v
-
model
.
number
=
"
special.clearancePrice
"
type
=
"
number
"
:
placeholder
=
"
$t('整数或者两位小数')
"
/>
<
/el-col
>
<
el
-
col
:
span
=
"
4
"
>
/ <selector v-model="special.clearanceVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable class="w-100" /
>
/ <selector v-model="special.clearanceVolumeUnit" :options="unitList" :label-field="$l
(
'title'
)
" value-field="id" defaultable
2
class="w-100" /
>
<
/el-col
>
<
/el-row
>
<
/el-form-item
>
...
...
@@ -187,7 +193,7 @@
<
/el-form
>
<
div
style
=
"
margin: 20px 0
"
>
<
el
-
button
@
click
=
"
submitForm
"
type
=
"
primary
"
>
{{
$t
(
'
确认提交
'
)
}}
<
/el-button
>
<
el
-
button
@
click
=
"
submitForm
"
type
=
"
primary
"
:
loading
=
"
loading
"
>
{{
$t
(
'
确认提交
'
)
}}
<
/el-button
>
<
el
-
button
type
=
"
default
"
@
click
=
"
$router.back()
"
>
{{
$t
(
'
返回上一页
'
)
}}
<
/el-button
>
<
/div
>
<
/div
>
...
...
@@ -211,7 +217,7 @@ export default {
checkList
:
[],
selectedRoutes
:
[],
// 勾选的路线渠道
form
:
{
stepPrice
:
0
,
//
stepPrice: 0,
// advanceStatus: 0,
// needBook: 0,
// dayLimit: 10000
...
...
@@ -223,9 +229,9 @@ export default {
/* typeId: [{ required: true, message: "产品类型不能为空", trigger: "blur"
}
],
titleZh: [{ required: true, message: "产品名称不能为空", trigger: "blur"
}
],
titleEn: [{ required: true, message: "英文名称不能为空", trigger: "blur"
}
], */
transportPrice
:
[{
required
:
true
,
message
:
this
.
$t
(
"
海运费不能为空
"
),
trigger
:
"
blur
"
}
],
clearancePrice
:
[{
required
:
true
,
message
:
this
.
$t
(
"
清关费不能为空
"
),
trigger
:
"
blur
"
}
],
advanceStatus
:
[{
required
:
true
,
message
:
this
.
$t
(
"
是否预付不能为空
"
),
trigger
:
"
blur
"
}
],
/*
transportPrice: [{ required: true, message: this.$t("海运费不能为空"), trigger: "blur"
}
],
clearancePrice: [{ required: true, message: this.$t("清关费不能为空"), trigger: "blur"
}
],
*/
/* advanceStatus: [{ required: true, message: this.$t("是否预付不能为空"), trigger: "blur"
}
], */
//containerLocation: [
{
required
:
true
,
message
:
"
货柜位置不能为空
"
,
trigger
:
"
blur
"
}
],
//square: [
{
required
:
true
,
message
:
"
方数不能为空
"
,
trigger
:
"
blur
"
}
],
// zhongLinjie:[
{
required
:
true
,
message
:
"
默认重货标准不能为空
"
,
trigger
:
"
blur
"
}
],
...
...
@@ -238,7 +244,8 @@ export default {
unitList
:
[],
productTypeList
:
[],
productDisabled
:
true
,
lineList
:
[]
//路线数组
lineList
:
[],
//路线数组
loading
:
false
}
}
,
computed
:
{
...
...
@@ -326,11 +333,11 @@ export default {
}
*/
// 默认今天起,两年有效
this
.
form
.
validateStartDate
=
parseTime
(
Date
.
now
())
this
.
form
.
validateEndDate
=
parseTime
(
Date
.
now
()
+
86400
*
365
*
2
*
1000
)
/*
this.form.validateStartDate = parseTime(Date.now())
this.form.validateEndDate = parseTime(Date.now() + 86400*365*2*1000)
*/
// 默认费用单位
this
.
setDefaultVolumeUnit
(
7
)
//
this.setDefaultVolumeUnit(7)
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
...
...
@@ -378,10 +385,12 @@ export default {
if
(
data
.
lineChannelList
.
length
<
1
){
return
this
.
$message
.
error
(
this
.
$t
(
'
请选择需要修改的路线
'
))
}
this
.
loading
=
true
batchUpdateProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
));
this
.
$router
.
replace
(
'
/lineProject/product-price?
'
+
(
new
URLSearchParams
(
this
.
$route
.
query
)).
toString
())
}
)
.
finally
(
res
=>
this
.
loading
=
false
)
}
);
}
,
}
...
...
src/views/ecw/productPrice/edit.vue
View file @
b706f640
...
...
@@ -63,10 +63,16 @@
<div
slot=
"header"
style=
"font-size:20px;"
>
{{$t('价格设置')}}
<span>
<el-checkbox
label=
""
v-model=
"needPay"
>
{{$t('预付')}}
</el-checkbox>
<el-checkbox
v-if=
"$route.query.action != 'batchUpdate'"
label=
""
v-model=
"needPay"
>
{{$t('预付')}}
</el-checkbox>
<el-checkbox
label=
""
v-model=
"stepPrice"
>
{{$t('阶梯定价')}}
</el-checkbox>
</span>
</div>
<el-form-item
:label=
"$t('预付')"
prop=
"needPay"
v-if=
"$route.query.action == 'batchUpdate'"
>
<el-radio-group
v-model=
"form.needPay"
>
<el-radio
:label=
"1"
>
预付
</el-radio>
<el-radio
:label=
"0"
>
均可
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"$t('单价模式')"
prop=
"priceType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_TYPE"
v-model=
"form.priceType"
form-type=
"radio"
formatter=
"number"
defaultable
/>
</el-form-item>
...
...
@@ -194,7 +200,7 @@
<
/el-form
>
<
div
style
=
"
margin: 20px 0
"
>
<
el
-
button
@
click
=
"
submitForm
"
type
=
"
primary
"
v
-
if
=
"
!readonly
"
>
{{
$t
(
'
确认提交
'
)
}}
<
/el-button
>
<
el
-
button
@
click
=
"
submitForm
"
type
=
"
primary
"
v
-
if
=
"
!readonly
"
:
loading
=
"
loading
"
>
{{
$t
(
'
确认提交
'
)
}}
<
/el-button
>
<
el
-
button
type
=
"
default
"
@
click
=
"
$router.back()
"
>
{{
$t
(
'
返回上一页
'
)
}}
<
/el-button
>
<
/div
>
<
/div
>
...
...
@@ -241,7 +247,8 @@ export default {
productTypeList
:
[],
productDisabled
:
true
,
readonly
:
false
,
lineList
:
[]
//路线数组
lineList
:
[],
//路线数组
loading
:
false
}
}
,
computed
:
{
...
...
@@ -309,6 +316,11 @@ export default {
item
.
clearancePriceUnit
=
val
}
)
}
,
'
form.allPriceUnit
'
(
val
){
this
.
specialProducts
.
forEach
(
item
=>
{
item
.
allPriceUnit
=
val
}
)
}
,
'
form.allVolumeUnit
'
(
val
){
this
.
specialProducts
.
forEach
(
item
=>
{
item
.
allVolumeUnit
=
val
...
...
@@ -455,10 +467,11 @@ export default {
// 修改单条路线
if
(
this
.
$route
.
query
.
action
==
'
update
'
)
{
this
.
loading
=
true
return
updateProductPrice
(
data
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
请求成功
"
));
this
.
$router
.
back
()
}
)
}
)
.
finally
(
res
=>
this
.
loading
=
false
)
}
// 批量修改(单个商品的单个路线,多个路线,或者全部路线)的提交
...
...
@@ -491,10 +504,11 @@ export default {
return
this
.
$message
.
error
(
this
.
$t
(
'
请选择需要修改的路线
'
))
}
data
.
productIdList
=
[
this
.
form
.
productId
]
this
.
loading
=
true
batchUpdateProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
修改成功
"
));
this
.
$router
.
replace
(
'
/product/product-price?
'
+
(
new
URLSearchParams
(
this
.
$route
.
query
)).
toString
())
}
)
}
)
.
finally
(
res
=>
this
.
loading
=
false
)
return
;
}
// 添加的提交
...
...
@@ -504,10 +518,11 @@ export default {
if
((
this
.
form
.
priceType
==
0
&&
!
this
.
form
.
transportPrice
)
||
(
this
.
form
.
priceType
==
1
&&
!
this
.
form
.
allPrice
)){
return
this
.
$message
.
error
(
this
.
$t
(
'
运费/全包价不能为0
'
))
}
this
.
loading
=
true
createProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
this
.
$t
(
"
请求成功
"
));
this
.
$router
.
replace
(
'
/product/product-price?
'
+
(
new
URLSearchParams
(
this
.
$route
.
query
)).
toString
())
}
);
}
)
.
finally
(
res
=>
this
.
loading
=
false
)
;
}
);
}
,
}
...
...
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