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
c901bd59
Commit
c901bd59
authored
Jun 07, 2024
by
lanbaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-06-07提交
parent
fd420d94
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1714 additions
and
186 deletions
+1714
-186
index.js
src/router/index.js
+7
-0
detail.vue
src/views/bpm/processInstance/detail.vue
+1
-0
detail2.vue
src/views/bpm/processInstance/detail2.vue
+1034
-0
done.vue
src/views/bpm/task/done.vue
+133
-38
todo.vue
src/views/bpm/task/todo.vue
+15
-7
voucher.vue
src/views/ecw/financial/voucher.vue
+41
-7
index.vue
src/views/infra/fileConfig/index.vue
+358
-96
index.vue
src/views/report/BankReceiptDetails/index.vue
+125
-38
No files found.
src/router/index.js
View file @
c901bd59
...
...
@@ -159,6 +159,13 @@ export const constantRoutes = [
component
:
(
resolve
)
=>
require
([
'
@/views/bpm/processInstance/detail
'
],
resolve
),
name
:
'
Flow details
'
,
meta
:
{
title
:
'
流程详情
'
,
titleEn
:
'
Flow details
'
,
activeMenu
:
'
/bpm/task/my
'
}
},
{
//lanbm 2024-06-07 add
path
:
'
process-instance/detail2
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/bpm/processInstance/detail2
'
],
resolve
),
name
:
'
Flow details2
'
,
meta
:
{
title
:
'
流程详情
'
,
titleEn
:
'
Flow details
'
,
activeMenu
:
'
/bpm/task/my
'
}
}
]
},
...
...
src/views/bpm/processInstance/detail.vue
View file @
c901bd59
...
...
@@ -88,6 +88,7 @@
</div>
</el-col>
</el-card>
<!-- 申请信息 -->
<el-card
class=
"box-card mt-10"
v-loading=
"processInstanceLoading"
>
<div
slot=
"header"
class=
"clearfix"
>
...
...
src/views/bpm/processInstance/detail2.vue
0 → 100644
View file @
c901bd59
<
template
>
<div
class=
"app-container"
>
<!-- 申请信息 -->
<el-card
class=
"box-card mt-10"
v-loading=
"processInstanceLoading"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-document"
>
{{
$t
(
"
申请信息
"
)
}}
【
{{
processInstance
.
name
}}
】
</span
>
</div>
<el-col
v-if=
"
this.processInstance.processDefinition &&
this.processInstance.processDefinition.formType === 10
"
:span=
"16"
:offset=
"6"
>
<div>
<parser
:key=
"new Date().getTime()"
:form-conf=
"detailForm"
@
submit=
"submitForm"
/>
</div>
</el-col>
<div
v-if=
"
this.processInstance.processDefinition &&
this.processInstance.processDefinition.formType === 20
"
>
<component
v-if=
"businessKeyToComponent"
:is=
"businessKeyToComponent.component"
v-bind=
"businessKeyToComponent"
/>
<div
v-else
>
<router-link
:to=
"
this.processInstance.processDefinition.formCustomViewPath +
'?id=' +
this.processInstance.businessKey
"
>
<el-button
type=
"primary"
>
{{
$t
(
"
点击查看
"
)
}}
</el-button>
</router-link>
</div>
</div>
</el-card>
<!-- 审批信息 -->
<el-card
class=
"box-card"
v-loading=
"processInstanceLoading"
v-for=
"(item, index) in runningTasks"
:key=
"index"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
{{
$t
(
"
审批任务
"
)
}}
【
{{
item
.
name
}}
】
</span
>
</div>
<el-col
:span=
"16"
:offset=
"6"
>
<el-form
:ref=
"'form' + index"
:model=
"auditForms[index]"
:rules=
"auditRule2"
label-width=
"100px"
>
<el-form-item
:label=
"$t('流程名')"
v-if=
"processInstance && processInstance.name"
>
{{
processInstance
.
name
}}
</el-form-item>
<el-form-item
:label=
"$t('流程发起人')"
v-if=
"processInstance && processInstance.startUser"
>
{{
processInstance
.
startUser
.
nickname
}}
<el-tag
type=
"info"
size=
"mini"
>
{{
processInstance
.
startUser
.
deptName
}}
</el-tag>
</el-form-item>
<el-form-item
:label=
"$t('抄送人')"
prop=
"copyUserIds"
>
<el-select
v-model=
"auditForms[index].copyUserIds"
clearable
multiple
filterable
style=
"width: 100%"
>
<el-option
v-for=
"item in userOptions"
:key=
"parseInt(item.id)"
:label=
"item.nickname"
:value=
"parseInt(item.id)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('审批建议')"
prop=
"comment"
>
<el-input
type=
"textarea"
v-model=
"auditForms[index].comment"
:placeholder=
"$t('请输入审批建议')"
/>
</el-form-item>
</el-form>
<div
style=
"margin-left: 10%; margin-bottom: 20px; font-size: 14px"
>
<el-button
:loading=
"loading"
icon=
"el-icon-edit-outline"
type=
"success"
size=
"mini"
@
click=
"handleAudit(item, true)"
>
{{
$t
(
"
通过
"
)
}}
</el-button>
<el-button
:loading=
"loading"
icon=
"el-icon-circle-close"
type=
"danger"
size=
"mini"
@
click=
"handleAudit(item, false)"
>
{{
$t
(
"
不通过
"
)
}}
</el-button>
<el-button
:loading=
"loading"
icon=
"el-icon-edit-outline"
type=
"primary"
size=
"mini"
@
click=
"handleUpdateAssignee(item)"
>
{{
$t
(
"
转办
"
)
}}
</el-button>
<!--
<el-button
icon=
"el-icon-edit-outline"
type=
"primary"
size=
"mini"
@
click=
"handleDelegate(item)"
>
{{
$t
(
'
委派
'
)
}}
</el-button>
-->
<!--
<el-button
icon=
"el-icon-refresh-left"
type=
"warning"
size=
"mini"
@
click=
"handleBack(item)"
>
{{
$t
(
'
退回
'
)
}}
</el-button>
-->
</div>
</el-col>
</el-card>
<el-card
class=
"box-card mt-10"
v-loading=
"tasksLoad"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
{{
$t
(
"
审批记录
"
)
}}
</span>
</div>
<el-col
:span=
"16"
:offset=
"4"
>
<div
class=
"block"
>
<el-timeline>
<el-timeline-item
v-for=
"(item, index) in tasks"
:key=
"index"
:icon=
"getTimelineItemIcon(item)"
:type=
"getTimelineItemType(item)"
>
<p
style=
"font-weight: 700"
>
{{
$t
(
"
任务
"
)
}}
:
{{
item
.
name
}}
</p>
<el-card
:body-style=
"
{ padding: '10px' }">
<label
v-if=
"item.assigneeUser"
style=
"font-weight: normal; margin-right: 30px"
>
{{
$t
(
"
审批人
"
)
}}
:
{{
item
.
assigneeUser
.
nickname
}}
<el-tag
type=
"info"
size=
"mini"
>
{{
item
.
assigneeUser
.
deptName
}}
</el-tag>
</label>
<label
style=
"font-weight: normal"
>
{{
$t
(
"
创建时间
"
)
}}
:
</label
>
<label
style=
"color: #8a909c; font-weight: normal"
>
{{
parseTime
(
item
.
createTime
)
}}
</label>
<label
v-if=
"item.endTime"
style=
"margin-left: 30px; font-weight: normal"
>
{{
$t
(
"
审批时间
"
)
}}
:
</label
>
<label
v-if=
"item.endTime"
style=
"color: #8a909c; font-weight: normal"
>
{{
parseTime
(
item
.
endTime
)
}}
</label
>
<label
v-if=
"item.durationInMillis"
style=
"margin-left: 30px; font-weight: normal"
>
{{
$t
(
"
耗时
"
)
}}
:
</label
>
<label
v-if=
"item.durationInMillis"
style=
"color: #8a909c; font-weight: normal"
>
{{
getDateStar
(
item
.
durationInMillis
)
}}
</label>
<p
v-if=
"item.comment"
>
<el-tag
:type=
"getTimelineItemType(item)"
>
{{
item
.
comment
}}
</el-tag>
</p>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-col>
</el-card>
<!-- 高亮流程图 -->
<el-card
class=
"box-card mt-10"
v-loading=
"processInstanceLoading"
>
<div
slot=
"header"
class=
"clearfix"
>
<span
class=
"el-icon-picture-outline"
>
{{
$t
(
"
流程图
"
)
}}
</span>
</div>
<my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
:activityData=
"activityList"
:processInstanceData=
"processInstance"
:taskData=
"tasks"
/>
</el-card>
<!-- 对话框(转派审批人) -->
<el-dialog
:title=
"$t('转派审批人')"
:visible.sync=
"updateAssignee.open"
width=
"500px"
append-to-body
>
<el-form
ref=
"updateAssigneeForm"
:model=
"updateAssignee.form"
:rules=
"updateAssignee.rules"
label-width=
"110px"
>
<el-form-item
:label=
"$t('新审批人')"
prop=
"assigneeUserId"
>
<el-select
v-model=
"updateAssignee.form.assigneeUserId"
clearable
style=
"width: 100%"
>
<el-option
v-for=
"item in userOptions"
:key=
"parseInt(item.id)"
:label=
"item.nickname"
:value=
"parseInt(item.id)"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitUpdateAssigneeForm"
>
{{
$t
(
"
确定
"
)
}}
</el-button>
<el-button
@
click=
"cancelUpdateAssigneeForm"
>
{{
$t
(
"
取消
"
)
}}
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
getProcessDefinitionBpmnXML
}
from
"
@/api/bpm/definition
"
;
import
{
DICT_TYPE
,
getDictDatas
}
from
"
@/utils/dict
"
;
import
store
from
"
@/store
"
;
import
{
decodeFields
}
from
"
@/utils/formGenerator
"
;
import
Parser
from
"
@/components/parser/Parser
"
;
import
{
createProcessInstance
,
getProcessInstance
,
}
from
"
@/api/bpm/processInstance
"
;
import
{
approveTask
,
getTaskListByProcessInstanceId
,
rejectTask
,
updateTaskAssignee
,
}
from
"
@/api/bpm/task
"
;
import
{
getDate
}
from
"
@/utils/dateUtils
"
;
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
;
import
{
getActivityList
}
from
"
@/api/bpm/activity
"
;
import
OfferSpecialDetail
from
"
@/views/ecw/offer/components/SpecialDetail
"
;
import
warehouseDetails
from
"
@/views/ecw/order/components/warehouseDetails
"
;
import
shippingDetail
from
"
@/views/ecw/box/shippingDetail
"
;
import
SplitDetail
from
"
@/views/ecw/order/components/SplitDetail
"
;
import
MergeDetail
from
"
@/views/ecw/order/components/MergeDetail
"
;
import
CargoControlDetail
from
"
@/views/ecw/order/components/CargoControlDetail
"
;
import
BoxSplitDetail
from
"
@/views/ecw/order/components/BoxSplitDetail
"
;
// 流程实例的详情页,可用于审批
export
default
{
name
:
"
ProcessInstanceDetail
"
,
components
:
{
Parser
,
OfferSpecialDetail
,
warehouseDetails
,
shippingDetail
,
SplitDetail
,
MergeDetail
,
CargoControlDetail
,
BoxSplitDetail
,
},
computed
:
{
auditRule2
()
{
if
(
this
.
isMust
==
true
)
{
var
obj
=
{
comment
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
审批建议不能为空
"
),
trigger
:
"
blur
"
,
},
],
};
return
obj
;
}
else
{
return
{};
}
},
matterNum
()
{
return
this
.
$store
.
state
.
user
.
matterNum
;
},
businessKeyToComponent
()
{
if
(
!
this
.
processInstance
.
processDefinition
||
!
this
.
processInstance
.
processDefinition
.
formCustomViewPath
)
{
return
false
;
}
const
map
=
{
shippingDetail
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
// 报价单特价审核,原来配置的组件名
"
special-discount
"
:
{
component
:
"
OfferSpecialDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
type
:
1
,
},
// 报价单特价审核,符合命名规则的组件名
offer_special
:
{
component
:
"
OfferSpecialDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
type
:
1
,
},
offer_commission
:
{
component
:
"
OfferSpecialDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
type
:
2
,
},
// 原来的费用申请
free_apply
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
2
,
},
// 2.0空运加的批量申请
batch_free_apply
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/BatchFeeApplication
"
),
businessId
:
this
.
processInstance
.
businessKey
,
processInstanceId
:
this
.
$route
.
query
.
id
,
},
retired_warehouse
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
3
,
},
warehouse_transfer
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
1
,
},
warehouse_update
:
{
component
:
"
warehouseDetails
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
4
,
},
container_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
trailer_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
ship_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
customs_declare_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
arrival_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
customs_clearance_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
customs_exit_part
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
customs_exit_all
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
start_port_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
book_space_modify
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
sorting_apply_no
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
sorting_apply
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
unload_container_no
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
unload_container
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
unload_container
"
,
},
close_container
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
close_container
"
,
},
shipment_preassemble
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
close_container_no
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
// 拆单审核
split_detail
:
{
component
:
"
SplitDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
},
// 出货拆单审核
shipment_split_detail
:
{
component
:
"
BoxSplitDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
},
// 退场拆单,跟出货装柜拆单一样
exit_split
:
{
component
:
"
BoxSplitDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
},
merge_detail
:
{
component
:
"
MergeDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
},
// 放货修改
order_update_release
:
{
component
:
"
CargoControlDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
applyType
:
7
,
},
// 反复核
order_fallback
:
{
component
:
"
CargoControlDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
applyType
:
8
,
},
// 调货审核
order_transfer
:
{
component
:
"
CargoControlDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
applyType
:
9
,
},
// 取消放货审核
order_cancel_release
:
{
component
:
"
CargoControlDetail
"
,
id
:
this
.
processInstance
.
businessKey
,
applyType
:
10
,
},
// 提单审核
order_landing_bill
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/LandingBillDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 订单审核详情
order_approval
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/ApprovalDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 订单修改审批
order_update
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/UpdateDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 预付异常审核
prepay_excetion
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/PrepayExceptionDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 客户延期
customer_delay
:
{
component
:
()
=>
import
(
"
@/views/ecw/customer/components/Delay
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//付款单审核-所有审核流程详情组件
finance_payment_approve
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/PaymentApproval
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单审核
finance_receipt_approve
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionApproval
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单核销
finance_receipt_write_off
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionWriteoff
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单反核销审核
finance_receipt_write_off_no
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionApproval
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单核销反审核
finance_receipt_approve_no
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionApproval
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单银行实收明细核销
finance_receipt_item_write_off
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionBankDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//收款单银行实收反核销
finance_receipt_item_write_off_no
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/CollectionBankDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
//佣金付款单审核详情-关于佣金付款单所有审核详情
commissionPaymentDetails
:
{
component
:
()
=>
import
(
"
@/views/ecw/financial/components/commissionPaymentDetails.vue
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
/*撤销拆单*/
split_revoke
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/SplitRevokeDetail
"
),
id
:
this
.
processInstance
.
businessKey
,
},
// 不可出渠道异常审核
not_shiping_channel
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/components/NotShipingChannel
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 出货批量加价审核
box_batch_markup
:
{
component
:
()
=>
import
(
"
@/views/ecw/box/components/batchMakeUpDetail.vue
"
),
processId
:
this
.
processInstance
.
businessKey
,
type
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 可获移交详情
customer_handover_details
:
{
component
:
()
=>
import
(
"
@/views/ecw/customer/components/customer-handover-details.vue
"
),
processId
:
this
.
processInstance
.
businessKey
,
type
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 出货审核
air_shipment
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
shipment
"
,
},
//排单分拣审核
shipment_order_sorting
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
// 出货反审
shipment_review
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
},
// 删单退场
customs_declare_remove
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
deleteExit
"
,
},
// 空运到仓审核
air_warehouse
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
air_warehouse
"
,
},
// 空运到仓审核
air_warehouse_no
:
{
component
:
"
shippingDetail
"
,
processId
:
this
.
processInstance
.
businessKey
,
type
:
"
air_warehouse
"
,
},
revoke_clear
:
{
component
:
()
=>
import
(
"
@/views/ecw/box/components/RevokeClear
"
),
id
:
this
.
processInstance
.
businessKey
,
},
// 重量超限
over_weight_exception
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/exception/components/overweightException
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
// 线路重量超限
line_weight_exception
:
{
component
:
()
=>
import
(
"
@/views/ecw/order/exception/components/overweightException
"
),
id
:
this
.
processInstance
.
businessKey
,
path
:
this
.
processInstance
.
processDefinition
?.
formCustomViewPath
,
},
};
console
.
log
(
"
formCustomViewPath
"
,
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
()
);
return
map
[
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
()
];
},
},
data
()
{
return
{
// 提交中
loading
:
false
,
// 遮罩层
processInstanceLoading
:
true
,
// 流程实例
id
:
undefined
,
// 流程实例的编号
processInstance
:
{},
// 流程表单详情
detailForm
:
{
fields
:
[],
},
isMust
:
true
,
// BPMN 数据
bpmnXML
:
null
,
bpmnControlForm
:
{
prefix
:
"
activiti
"
,
},
activityList
:
[],
// 审批记录
tasksLoad
:
true
,
tasks
:
[],
// 审批表单
runningTasks
:
[],
auditForms
:
[],
auditRule
:
{
comment
:
[
{
required
:
this
.
isMust
,
message
:
this
.
$t
(
"
审批建议不能为空
"
),
trigger
:
"
blur
"
,
},
],
},
// 转派审批人
userOptions
:
[],
updateAssignee
:
{
open
:
false
,
form
:
{
assigneeUserId
:
undefined
,
},
rules
:
{
assigneeUserId
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
新审批人不能为空
"
),
trigger
:
"
change
"
,
},
],
},
},
// 数据字典
categoryDictDatas
:
getDictDatas
(
DICT_TYPE
.
BPM_MODEL_CATEGORY
),
};
},
created
()
{
this
.
id
=
this
.
$route
.
query
.
id
;
if
(
!
this
.
id
)
{
this
.
$message
.
error
(
"
未传递 id 参数,无法查看流程信息
"
);
return
;
}
this
.
getDetail
();
// 获得用户列表
this
.
userOptions
=
[];
listSimpleUsers
().
then
((
response
)
=>
{
this
.
userOptions
.
push
(...
response
.
data
);
});
},
methods
:
{
/** 获得流程实例 */
getDetail
()
{
// 获得流程实例相关
this
.
processInstanceLoading
=
true
;
getProcessInstance
(
this
.
id
).
then
((
response
)
=>
{
if
(
!
response
.
data
)
{
this
.
$message
.
error
(
"
查询不到流程信息!
"
);
return
;
}
// 设置流程信息
this
.
processInstance
=
response
.
data
;
console
.
log
(
this
.
processInstance
);
//银行实收明细核销不限制必填 lanbm 2024-05-24 add
if
(
this
.
processInstance
.
processDefinition
.
formCustomViewPath
==
undefined
||
this
.
processInstance
.
processDefinition
.
formCustomViewPath
==
null
||
this
.
processInstance
.
processDefinition
.
formCustomViewPath
==
""
)
{
this
.
isMust
=
true
;
}
else
{
if
(
this
.
processInstance
.
processDefinition
.
formCustomViewPath
.
trim
()
==
"
finance_receipt_item_write_off
"
)
{
this
.
isMust
=
false
;
}
else
{
this
.
isMust
=
true
;
}
}
//end 银行实收明细核销不限制必填 lanbm 2024-05-24 add
// 设置表单信息
if
(
this
.
processInstance
.
processDefinition
.
formType
===
10
)
{
this
.
detailForm
=
{
...
JSON
.
parse
(
this
.
processInstance
.
processDefinition
.
formConf
),
disabled
:
true
,
// 表单禁用
formBtns
:
false
,
// 按钮隐藏
fields
:
decodeFields
(
this
.
processInstance
.
processDefinition
.
formFields
),
};
// 设置表单的值
this
.
detailForm
.
fields
.
forEach
((
item
)
=>
{
const
val
=
this
.
processInstance
.
formVariables
[
item
.
__vModel__
];
if
(
val
)
{
item
.
__config__
.
defaultValue
=
val
;
}
});
}
// 加载流程图
getProcessDefinitionBpmnXML
(
this
.
processInstance
.
processDefinition
.
id
).
then
((
response
)
=>
{
this
.
bpmnXML
=
response
.
data
;
});
// 加载活动列表
getActivityList
({
processInstanceId
:
this
.
processInstance
.
id
,
}).
then
((
response
)
=>
{
this
.
activityList
=
response
.
data
;
});
// 取消加载中
this
.
processInstanceLoading
=
false
;
});
// 获得流程任务列表(审批记录)
this
.
tasksLoad
=
true
;
this
.
runningTasks
=
[];
this
.
auditForms
=
[];
getTaskListByProcessInstanceId
(
this
.
id
).
then
((
response
)
=>
{
// 审批记录
this
.
tasks
=
response
.
data
;
// 排序,将未完成的排在前面,已完成的排在后面;
this
.
tasks
.
sort
((
a
,
b
)
=>
{
// 有已完成的情况,按照完成时间倒序
if
(
a
.
endTime
&&
b
.
endTime
)
{
return
b
.
endTime
-
a
.
endTime
;
}
else
if
(
a
.
endTime
)
{
return
1
;
}
else
if
(
b
.
endTime
)
{
return
-
1
;
// 都是未完成,按照创建时间倒序
}
else
{
return
b
.
createTime
-
a
.
createTime
;
}
});
// 需要审核的记录
const
userId
=
store
.
getters
.
userId
;
this
.
tasks
.
forEach
((
task
)
=>
{
if
(
task
.
result
!==
1
)
{
// 只有待处理才需要
return
;
}
if
(
!
task
.
assigneeUser
||
task
.
assigneeUser
.
id
!==
userId
)
{
// 自己不是处理人
return
;
}
this
.
runningTasks
.
push
({
...
task
});
this
.
auditForms
.
push
({
comment
:
""
,
});
});
// 取消加载中
this
.
tasksLoad
=
false
;
});
},
/** 处理选择流程的按钮操作 **/
handleSelect
(
row
)
{
// 设置选择的流程
this
.
selectProcessInstance
=
row
;
// 流程表单
if
(
row
.
formId
)
{
// 设置对应的表单
this
.
detailForm
=
{
...
JSON
.
parse
(
row
.
formConf
),
fields
:
decodeFields
(
row
.
formFields
),
};
}
else
if
(
row
.
formCustomCreatePath
)
{
this
.
$router
.
push
({
path
:
row
.
formCustomCreatePath
});
// 这里暂时无需加载流程图,因为跳出到另外个 Tab;
}
},
/** 提交按钮 */
submitForm
(
params
)
{
if
(
!
params
)
{
return
;
}
// 设置表单禁用
const
conf
=
params
.
conf
;
conf
.
disabled
=
true
;
// 表单禁用
conf
.
formBtns
=
false
;
// 按钮隐藏
// 提交表单,创建流程
const
variables
=
params
.
values
;
createProcessInstance
({
processDefinitionId
:
this
.
selectProcessInstance
.
id
,
variables
:
variables
,
})
.
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
发起流程成功
"
);
// 关闭当前窗口
this
.
$tab
.
closeOpenPage
();
this
.
$router
.
go
(
-
1
);
})
.
catch
(()
=>
{
conf
.
disabled
=
false
;
// 表单开启
conf
.
formBtns
=
true
;
// 按钮展示
});
},
getDateStar
(
ms
)
{
return
getDate
(
ms
);
},
getTimelineItemIcon
(
item
)
{
if
(
item
.
result
===
1
)
{
return
"
el-icon-time
"
;
}
if
(
item
.
result
===
2
)
{
return
"
el-icon-check
"
;
}
if
(
item
.
result
===
3
)
{
return
"
el-icon-close
"
;
}
if
(
item
.
result
===
4
)
{
return
"
el-icon-remove-outline
"
;
}
return
""
;
},
getTimelineItemType
(
item
)
{
if
(
item
.
result
===
1
)
{
return
"
primary
"
;
}
if
(
item
.
result
===
2
)
{
return
"
success
"
;
}
if
(
item
.
result
===
3
)
{
return
"
danger
"
;
}
if
(
item
.
result
===
4
)
{
return
"
info
"
;
}
return
""
;
},
/** 处理审批通过和不通过的操作 */
handleAudit
(
task
,
pass
)
{
const
index
=
this
.
runningTasks
.
indexOf
(
task
);
this
.
$refs
[
"
form
"
+
index
][
0
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
const
data
=
{
id
:
task
.
id
,
comment
:
this
.
auditForms
[
index
].
comment
,
copyUserIds
:
this
.
auditForms
[
index
].
copyUserIds
,
};
this
.
loading
=
true
;
if
(
pass
)
{
approveTask
(
data
)
.
then
((
response
)
=>
{
let
p
=
this
.
matterNum
;
//this.$store.commit('GET_MAATER', --p)
this
.
$modal
.
msgSuccess
(
"
审批通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
})
.
finally
(()
=>
{
this
.
loading
=
false
;
});
}
else
{
rejectTask
(
data
)
.
then
((
response
)
=>
{
let
p
=
this
.
matterNum
;
//this.$store.commit('GET_MAATER', --p)
this
.
$modal
.
msgSuccess
(
"
审批不通过成功!
"
);
this
.
getDetail
();
// 获得最新详情
})
.
finally
(()
=>
{
this
.
loading
=
false
;
});
}
});
},
/** 处理转派审批人 */
handleUpdateAssignee
(
task
)
{
// 设置表单
this
.
resetUpdateAssigneeForm
();
this
.
updateAssignee
.
form
.
id
=
task
.
id
;
// 设置为打开
this
.
updateAssignee
.
open
=
true
;
},
/** 提交转派审批人 */
submitUpdateAssigneeForm
()
{
this
.
$refs
[
"
updateAssigneeForm
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
updateTaskAssignee
(
this
.
updateAssignee
.
form
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
转派任务成功!
"
);
let
p
=
this
.
matterNum
;
// this.$store.commit('GET_MAATER', --p)
this
.
updateAssignee
.
open
=
false
;
this
.
getDetail
();
// 获得最新详情
});
});
},
/** 取消转派审批人 */
cancelUpdateAssigneeForm
()
{
this
.
updateAssignee
.
open
=
false
;
this
.
resetUpdateAssigneeForm
();
},
/** 重置转派审批人 */
resetUpdateAssigneeForm
()
{
this
.
updateAssignee
.
form
=
{
id
:
undefined
,
assigneeUserId
:
undefined
,
};
this
.
resetForm
(
"
updateAssigneeForm
"
);
},
/** 处理审批退回的操作 */
handleDelegate
(
task
)
{
this
.
$modal
.
msgError
(
"
暂不支持【委派】功能,可以使用【转派】替代!
"
);
},
/** 处理审批退回的操作 */
handleBack
(
task
)
{
this
.
$modal
.
msgError
(
"
暂不支持【退回】功能!
"
);
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.my-process-designer
{
height
:
calc
(
100vh
-
200px
);
}
.box-card
{
width
:
100%
;
margin-bottom
:
20px
;
}
</
style
>
\ No newline at end of file
src/views/bpm/task/done.vue
View file @
c901bd59
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
:label=
"$t('流程编号')"
prop=
"processInstanceId"
>
<el-input
v-model=
"queryParams.processInstanceId"
:placeholder=
"$t('流程编号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<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-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=
"$l(dict, 'label')"
:value=
"dict.value"
/>
<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=
"$l(dict, 'label')"
:value=
"dict.value"
/>
</el-select>
</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-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-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>
<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>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<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"
>
<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"
/>
<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=
"name"
width=
"200"
/>
<!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >{{ $t('缺少字段') }}</el-table-column> -->
<!-- <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"
/>
<dict-tag
:type=
"DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT"
:value=
"scope.row.result"
/>
</
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
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('结束时间')"
align=
"center"
prop=
"endTime"
width=
"180"
>
<el-table-column
:label=
"$t('结束时间')"
align=
"center"
prop=
"endTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
endTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
fixed=
"right"
class-name=
"small-padding fixed-width"
>
<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']"
>
{{
$t
(
'
详情
'
)
}}
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleAudit(scope.row)"
v-hasPermi=
"['bpm:task:query']"
>
{{
$t
(
"
详情
"
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</div>
</template>
<
script
>
import
{
getDoneTaskPage
}
from
'
@/api/bpm/task
'
import
{
getDate
}
from
"
@/utils/dateUtils
"
;
import
{
getDoneTaskPage
}
from
"
@/api/bpm/task
"
;
import
{
getDate
}
from
"
@/utils/dateUtils
"
;
export
default
{
//lanbm 2024-05-08 添加查询条件不清空优化
...
...
@@ -118,9 +210,9 @@ export default {
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
getDoneTaskPage
(
params
).
then
(
response
=>
{
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
getDoneTaskPage
(
params
).
then
(
(
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
...
...
@@ -142,8 +234,11 @@ export default {
},
/** 处理审批按钮 */
handleAudit
(
row
)
{
this
.
$router
.
push
({
path
:
"
/bpm/process-instance/detail
"
,
query
:
{
id
:
row
.
processInstance
.
id
}});
this
.
$router
.
push
({
path
:
"
/bpm/process-instance/detail
"
,
query
:
{
id
:
row
.
processInstance
.
id
},
});
},
},
}
};
</
script
>
src/views/bpm/task/todo.vue
View file @
c901bd59
...
...
@@ -290,7 +290,7 @@ export default {
return
;
}
}
this
.
form
.
comment
=
""
;
this
.
form
.
comment
=
""
;
this
.
title
=
"
批量通过
"
;
this
.
titleType
=
1
;
this
.
open
=
true
;
...
...
@@ -309,11 +309,10 @@ export default {
return
;
}
}
this
.
form
.
comment
=
""
;
this
.
form
.
comment
=
""
;
this
.
title
=
"
批量不通过
"
;
this
.
titleType
=
2
;
this
.
open
=
true
;
},
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
...
...
@@ -380,10 +379,19 @@ export default {
},
/** 处理审批按钮 */
handleAudit
(
row
)
{
//lanbm 2024-06-07 添加根据不同的业务打开不同的展示页面
let
name1
=
row
.
processInstance
.
name
;
if
(
name1
.
includes
(
"
银行实收明细核销审核
"
))
{
this
.
$router
.
push
({
path
:
"
/bpm/process-instance/detail2
"
,
query
:
{
id
:
row
.
processInstance
.
id
},
});
}
else
{
this
.
$router
.
push
({
path
:
"
/bpm/process-instance/detail
"
,
query
:
{
id
:
row
.
processInstance
.
id
},
});
}
},
handleCancel
(
row
)
{
const
id
=
row
.
id
;
...
...
src/views/ecw/financial/voucher.vue
View file @
c901bd59
...
...
@@ -115,11 +115,16 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('收款单号')"
align=
"center"
prop=
"receiptNo"
/>
<!--lanbm 2024-06-06 添加链接-->
<el-table-column
:label=
"$t('收款单号')"
align=
"center"
prop=
"receiptNo"
>
<
template
slot-scope=
"scope"
>
<span
style=
"color: #1890ff"
@
click=
"verificationCancelClick(scope.row)"
>
{{
scope
.
row
.
receiptNo
}}
</span
>
</
template
>
</el-table-column>
<!--订单号,提单号,lanbm 2024-05-29 add-->
<el-table-column
:label=
"$t('订单号')"
align=
"center"
prop=
"orderNo"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -171,6 +176,20 @@
><
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('应收')
"
align
=
"
center
"
prop
=
"
ysShow
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('实收')
"
align
=
"
center
"
prop
=
"
ssShow
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('核销比例')
"
align
=
"
center
"
prop
=
"
hxBiLi
"
>
<
/el-table-column
>
<
el
-
table
-
column
:
label
=
"
$t('是否开票')
"
align
=
"
center
"
>
<
template
slot
-
scope
=
"
scope
"
>
{{
scope
.
row
.
openInvoice
===
0
?
$t
(
"
否
"
)
:
$t
(
"
是
"
)
}}
...
...
@@ -414,7 +433,6 @@
<
el
-
button
@
click
=
"
cancelShow = false
"
>
{{
$t
(
"
取消
"
)
}}
<
/el-button
>
<
/span
>
<
/el-dialog
>
<!--
收款单批量反审核
对话框,一个逻辑一个对话框,
避免做过多的逻辑判断
lanbm
2024
-
05
-
29
add
-->
<
el
-
dialog
:
title
=
"
dialogTitle2
"
:
visible
.
sync
=
"
dialogVisible2
"
width
=
"
30%
"
>
...
...
@@ -460,6 +478,7 @@
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
;
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
CustomerSelector
from
"
@/components/CustomerSelector
"
;
import
{
getCurrencyPage
}
from
"
@/api/ecw/currency
"
;
import
{
getReceiptList
,
// receiptVerification,
...
...
@@ -544,14 +563,21 @@ export default {
dialogTitle2
:
"
收款单批量反审核
"
,
dialogVisible3
:
false
,
//批量反核销对话框
dialogTitle3
:
"
收款单批量反核销
"
,
currencyList
:
[],
}
;
}
,
activated
()
{
this
.
getList
();
}
,
created
()
{
//获取汇率 lanbm 2024-06-06 add
getCurrencyPage
(
this
.
params
).
then
(
(
res
)
=>
(
this
.
currencyList
=
res
.
data
.
list
)
);
let
that
=
this
;
listSimpleUsers
().
then
((
res
)
=>
(
that
.
creatorData
=
res
.
data
));
this
.
getList
();
}
,
methods
:
{
...
...
@@ -606,6 +632,14 @@ export default {
//
}
)
// .catch(() =>
{
}
);
}
,
getCurrencyLabel
(
id
)
{
let
label
=
this
.
currencyList
.
filter
((
item
)
=>
item
.
id
==
id
);
if
(
label
.
length
>
0
)
return
this
.
$i18n
.
locale
==
"
zh_CN
"
?
label
[
0
].
titleZh
:
label
[
0
].
titleEn
;
return
""
;
}
,
//显示取消审核弹窗
cancelClick
(
index
,
type
)
{
this
.
selectIndex
=
index
;
...
...
src/views/infra/fileConfig/index.vue
View file @
c901bd59
<
template
>
<div
class=
"app-container"
>
<doc-alert
:title=
"$t('上传下载')"
url=
"https://doc.iocoder.cn/file/"
/>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
:label=
"$t('配置名')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入配置名')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入配置名')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('存储器')"
prop=
"storage"
>
<el-select
v-model=
"queryParams.storage"
:placeholder=
"$t('请选择存储器')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INFRA_FILE_STORAGE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
<el-select
v-model=
"queryParams.storage"
:placeholder=
"$t('请选择存储器')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INFRA_FILE_STORAGE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</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=
"结束日期"
/>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</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>
<!-- 操作工具栏 -->
<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=
"['infra:file-config:create']"
>
{{
$t
(
'
新增
'
)
}}
</el-button>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['infra:file-config:create']"
>
{{
$t
(
"
新增
"
)
}}
</el-button
>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
...
...
@@ -37,35 +77,81 @@
<el-table-column
:label=
"$t('配置名')"
align=
"center"
prop=
"name"
/>
<el-table-column
:label=
"$t('存储器')"
align=
"center"
prop=
"storage"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_FILE_STORAGE"
:value=
"scope.row.storage"
/>
<dict-tag
:type=
"DICT_TYPE.INFRA_FILE_STORAGE"
:value=
"scope.row.storage"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('备注')"
align=
"center"
prop=
"remark"
/>
<el-table-column
:label=
"$t('主配置')"
align=
"center"
prop=
"primary"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.master"
/>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.master"
/>
</
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
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"240"
>
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"240"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['infra:file-config:update']"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-attract"
@
click=
"handleMaster(scope.row)"
:disabled=
"scope.row.master"
v-hasPermi=
"['infra:file-config:update']"
>
{{
$t
(
'
主配置
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-share"
@
click=
"handleTest(scope.row)"
>
{{
$t
(
'
测试
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['infra:file-config:delete']"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['infra:file-config:update']"
>
{{
$t
(
"
修改
"
)
}}
</el-button
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-attract"
@
click=
"handleMaster(scope.row)"
:disabled=
"scope.row.master"
v-hasPermi=
"['infra:file-config:update']"
>
{{
$t
(
"
主配置
"
)
}}
</el-button
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-share"
@
click=
"handleTest(scope.row)"
>
{{
$t
(
"
测试
"
)
}}
</el-button
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['infra:file-config:delete']"
>
{{
$t
(
"
删除
"
)
}}
</el-button
>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
...
...
@@ -77,58 +163,148 @@
<el-input
v-model=
"form.remark"
:placeholder=
"$t('请输入备注')"
/>
</el-form-item>
<el-form-item
:label=
"$t('存储器')"
prop=
"storage"
>
<el-select
v-model=
"form.storage"
:placeholder=
"$t('请选择存储器')"
:disabled=
"form.id"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INFRA_FILE_STORAGE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
<el-select
v-model=
"form.storage"
:placeholder=
"$t('请选择存储器')"
:disabled=
"form.id"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INFRA_FILE_STORAGE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<!-- DB -->
<!-- Local / FTP / SFTP -->
<el-form-item
v-if=
"form.storage >= 10 && form.storage <= 12"
:label=
"$t('基础路径')"
prop=
"config.basePath"
>
<el-input
v-model=
"form.config.basePath"
:placeholder=
"$t('请输入基础路径')"
/>
<el-form-item
v-if=
"form.storage >= 10 && form.storage <= 12"
:label=
"$t('基础路径')"
prop=
"config.basePath"
>
<el-input
v-model=
"form.config.basePath"
:placeholder=
"$t('请输入基础路径')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('主机地址')"
prop=
"config.host"
>
<el-input
v-model=
"form.config.host"
:placeholder=
"$t('请输入主机地址')"
/>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('主机地址')"
prop=
"config.host"
>
<el-input
v-model=
"form.config.host"
:placeholder=
"$t('请输入主机地址')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('主机端口')"
prop=
"config.port"
>
<el-input-number
min=
"0"
v-model=
"form.config.port"
:placeholder=
"$t('请输入主机端口')"
/>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('主机端口')"
prop=
"config.port"
>
<el-input-number
min=
"0"
v-model=
"form.config.port"
:placeholder=
"$t('请输入主机端口')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('用户名')"
prop=
"config.username"
>
<el-input
v-model=
"form.config.username"
:placeholder=
"$t('请输入密码')"
/>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('用户名')"
prop=
"config.username"
>
<el-input
v-model=
"form.config.username"
:placeholder=
"$t('请输入密码')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('密码')"
prop=
"config.password"
>
<el-input
v-model=
"form.config.password"
:placeholder=
"$t('请输入密码')"
/>
<el-form-item
v-if=
"form.storage >= 11 && form.storage <= 12"
:label=
"$t('密码')"
prop=
"config.password"
>
<el-input
v-model=
"form.config.password"
:placeholder=
"$t('请输入密码')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage === 11"
:label=
"$t('连接模式')"
prop=
"config.mode"
>
<el-form-item
v-if=
"form.storage === 11"
:label=
"$t('连接模式')"
prop=
"config.mode"
>
<el-radio-group
v-model=
"form.config.mode"
>
<el-radio
key=
"Active"
label=
"Active"
>
{{ $t('主动模式') }}
</el-radio>
<el-radio
key=
"Passive"
label=
"Passive"
>
{{ $t('主动模式') }}
</el-radio>
<el-radio
key=
"Active"
label=
"Active"
>
{{
$t("主动模式")
}}
</el-radio>
<el-radio
key=
"Passive"
label=
"Passive"
>
{{
$t("主动模式")
}}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- S3 -->
<el-form-item
v-if=
"form.storage === 20"
:label=
"$t('节点地址')"
prop=
"config.endpoint"
>
<el-input
v-model=
"form.config.endpoint"
:placeholder=
"$t('请输入节点地址')"
/>
<el-form-item
v-if=
"form.storage === 20"
:label=
"$t('节点地址')"
prop=
"config.endpoint"
>
<el-input
v-model=
"form.config.endpoint"
:placeholder=
"$t('请输入节点地址')"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage === 20"
label=
"存储 bucket"
prop=
"config.bucket"
>
<el-form-item
v-if=
"form.storage === 20"
label=
"存储 bucket"
prop=
"config.bucket"
>
<el-input
v-model=
"form.config.bucket"
placeholder=
"请输入 bucket"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage === 20"
label=
"accessKey"
prop=
"config.accessKey"
>
<el-input
v-model=
"form.config.accessKey"
placeholder=
"请输入 accessKey"
/>
<el-form-item
v-if=
"form.storage === 20"
label=
"accessKey"
prop=
"config.accessKey"
>
<el-input
v-model=
"form.config.accessKey"
placeholder=
"请输入 accessKey"
/>
</el-form-item>
<el-form-item
v-if=
"form.storage === 20"
label=
"accessSecret"
prop=
"config.accessSecret"
>
<el-input
v-model=
"form.config.accessSecret"
placeholder=
"请输入 accessSecret"
/>
<el-form-item
v-if=
"form.storage === 20"
label=
"accessSecret"
prop=
"config.accessSecret"
>
<el-input
v-model=
"form.config.accessSecret"
placeholder=
"请输入 accessSecret"
/>
</el-form-item>
<!-- 通用 -->
<el-form-item
v-if=
"form.storage === 20"
:label=
"$t('自定义域名')"
>
<!-- 无需参数校验,所以去掉 prop -->
<el-input
v-model=
"form.config.domain"
:placeholder=
"$t('请输入自定义域名')"
/>
<el-form-item
v-if=
"form.storage === 20"
:label=
"$t('自定义域名')"
>
<!-- 无需参数校验,所以去掉 prop -->
<el-input
v-model=
"form.config.domain"
:placeholder=
"$t('请输入自定义域名')"
/>
</el-form-item>
<el-form-item
v-else-if=
"form.storage"
:label=
"$t('自定义域名')"
prop=
"config.domain"
>
<el-input
v-model=
"form.config.domain"
:placeholder=
"$t('请输入自定义域名')"
/>
<el-form-item
v-else-if=
"form.storage"
:label=
"$t('自定义域名')"
prop=
"config.domain"
>
<el-input
v-model=
"form.config.domain"
:placeholder=
"$t('请输入自定义域名')"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{ $t('确 定') }}
</el-button>
<el-button
@
click=
"cancel"
>
{{ $t('取 消') }}
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{
$t("确 定")
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{ $t("取 消") }}
</el-button>
</div>
</el-dialog>
</div>
...
...
@@ -141,13 +317,13 @@ import {
deleteFileConfig
,
getFileConfig
,
getFileConfigPage
,
testFileConfig
,
updateFileConfigMaster
testFileConfig
,
updateFileConfigMaster
,
}
from
"
@/api/infra/fileConfig
"
;
export
default
{
name
:
"
FileConfig
"
,
components
:
{
},
components
:
{},
data
()
{
return
{
// 遮罩层
...
...
@@ -173,26 +349,100 @@ export default {
// 表单参数
form
:
{
storage
:
undefined
,
config
:
{}
config
:
{}
,
},
// 表单校验
rules
:
{
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
配置名不能为空
"
),
trigger
:
"
blur
"
}],
storage
:
[{
required
:
true
,
message
:
this
.
$t
(
"
存储器不能为空
"
),
trigger
:
"
change
"
}],
name
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
配置名不能为空
"
),
trigger
:
"
blur
"
,
},
],
storage
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
存储器不能为空
"
),
trigger
:
"
change
"
,
},
],
config
:
{
basePath
:
[{
required
:
true
,
message
:
this
.
$t
(
"
基础路径不能为空
"
),
trigger
:
"
blur
"
}],
host
:
[{
required
:
true
,
message
:
this
.
$t
(
"
主机地址不能为空
"
),
trigger
:
"
blur
"
}],
port
:
[{
required
:
true
,
message
:
this
.
$t
(
"
主机端口不能为空
"
),
trigger
:
"
blur
"
}],
username
:
[{
required
:
true
,
message
:
this
.
$t
(
"
用户名不能为空
"
),
trigger
:
"
blur
"
}],
password
:
[{
required
:
true
,
message
:
this
.
$t
(
"
密码不能为空
"
),
trigger
:
"
blur
"
}],
mode
:
[{
required
:
true
,
message
:
this
.
$t
(
"
连接模式不能为空
"
),
trigger
:
"
change
"
}],
endpoint
:
[{
required
:
true
,
message
:
this
.
$t
(
"
节点地址不能为空
"
),
trigger
:
"
blur
"
}],
bucket
:
[{
required
:
true
,
message
:
"
存储 bucket 不能为空
"
,
trigger
:
"
blur
"
}],
accessKey
:
[{
required
:
true
,
message
:
"
accessKey 不能为空
"
,
trigger
:
"
blur
"
}],
accessSecret
:
[{
required
:
true
,
message
:
"
accessSecret 不能为空
"
,
trigger
:
"
blur
"
}],
domain
:
[{
required
:
true
,
message
:
this
.
$t
(
"
自定义域名不能为空
"
),
trigger
:
"
blur
"
}],
basePath
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
基础路径不能为空
"
),
trigger
:
"
blur
"
,
},
],
host
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
主机地址不能为空
"
),
trigger
:
"
blur
"
,
},
],
port
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
主机端口不能为空
"
),
trigger
:
"
blur
"
,
},
],
username
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
用户名不能为空
"
),
trigger
:
"
blur
"
,
},
],
password
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
密码不能为空
"
),
trigger
:
"
blur
"
,
},
],
mode
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
连接模式不能为空
"
),
trigger
:
"
change
"
,
},
],
endpoint
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
节点地址不能为空
"
),
trigger
:
"
blur
"
,
},
],
bucket
:
[
{
required
:
true
,
message
:
"
存储 bucket 不能为空
"
,
trigger
:
"
blur
"
,
},
],
accessKey
:
[
{
required
:
true
,
message
:
"
accessKey 不能为空
"
,
trigger
:
"
blur
"
},
],
accessSecret
:
[
{
required
:
true
,
message
:
"
accessSecret 不能为空
"
,
trigger
:
"
blur
"
,
},
],
domain
:
[
{
required
:
true
,
message
:
this
.
$t
(
"
自定义域名不能为空
"
),
trigger
:
"
blur
"
,
},
],
},
},
}
};
},
created
()
{
...
...
@@ -203,10 +453,10 @@ export default {
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行查询
getFileConfigPage
(
params
).
then
(
response
=>
{
getFileConfigPage
(
params
).
then
(
(
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
...
...
@@ -249,7 +499,7 @@ export default {
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getFileConfig
(
id
).
then
(
response
=>
{
getFileConfig
(
id
).
then
(
(
response
)
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
this
.
$t
(
"
修改文件配置
"
);
...
...
@@ -257,13 +507,13 @@ export default {
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
(
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateFileConfig
(
this
.
form
).
then
(
response
=>
{
updateFileConfig
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
...
...
@@ -271,7 +521,7 @@ export default {
return
;
}
// 添加的提交
createFileConfig
(
this
.
form
).
then
(
response
=>
{
createFileConfig
(
this
.
form
).
then
(
(
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
...
...
@@ -281,29 +531,41 @@ export default {
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除文件配置编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认删除文件配置编号为"
'
+
id
+
'
"的数据项?
'
)
.
then
(
function
()
{
return
deleteFileConfig
(
id
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
})
.
catch
(()
=>
{});
},
/** 主配置按钮操作 */
handleMaster
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认修改配置编号为"
'
+
id
+
'
"的数据项为主配置?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认修改配置编号为"
'
+
id
+
'
"的数据项为主配置?
'
)
.
then
(
function
()
{
return
updateFileConfigMaster
(
id
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
}).
catch
(()
=>
{});
})
.
catch
(()
=>
{});
},
/** 测试按钮操作 */
handleTest
(
row
)
{
testFileConfig
(
row
.
id
).
then
((
response
)
=>
{
this
.
$modal
.
alert
(
"
测试通过,上传文件成功!访问地址:
"
+
response
.
data
);
}).
catch
(()
=>
{});
testFileConfig
(
row
.
id
)
.
then
((
response
)
=>
{
this
.
$modal
.
alert
(
"
测试通过,上传文件成功!访问地址:
"
+
response
.
data
);
})
.
catch
(()
=>
{});
},
},
}
};
</
script
>
src/views/report/BankReceiptDetails/index.vue
View file @
c901bd59
...
...
@@ -90,6 +90,24 @@
placeholder=
"请输截止月"
/>
</el-form-item>
<el-form-item
label=
"实收日期"
prop=
"ssDate"
>
<el-date-picker
v-model=
"queryParams.sDate4"
type=
"date"
style=
"width: 150px"
value-format=
"yyyy-MM-dd"
clearable
placeholder=
"请输起始月"
/>
<el-date-picker
v-model=
"queryParams.eDate4"
type=
"date"
style=
"width: 150px"
value-format=
"yyyy-MM-dd"
clearable
placeholder=
"请输截止月"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button
...
...
@@ -169,8 +187,8 @@
</el-table-column>
<el-table-column
:label=
"$t('水单号')"
align=
"center"
prop=
"billNo"
/>
<el-table-column
:label=
"$t('水单附件')"
align=
"center"
prop=
"attr"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.attr"
>
<div
v-for=
"(v, i) in scope.row.attr"
:key=
"i"
>
<
template
slot-scope=
"scope"
v-if=
"scope.row.attr
List
"
>
<div
v-for=
"(v, i) in scope.row.attr
List
"
:key=
"i"
>
<el-link
:href=
"v.url"
type=
"primary"
target=
"_blank"
>
{{
v
.
name
}}
</el-link>
...
...
@@ -185,6 +203,22 @@
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建人')"
align=
"center"
prop=
"creator"
/>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
/>
<el-table-column
:label=
"$t('提交审批时间')"
align=
"center"
prop=
"createTimeBpm"
/>
<el-table-column
:label=
"$t('审批通过时间')"
align=
"center"
prop=
"updateTimeBpm"
/>
<el-table-column
:label=
"$t('操作')"
align=
"center"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<el-button
...
...
@@ -222,14 +256,14 @@
v-hasPermi=
"['ecw:payment:detail:cancelWriteOff']"
>
{{
$t
(
"
反核销
"
)
}}
</el-button
>
<!--
<el-button
v-if=
"scope.row.status == 0"
type=
"text"
@
click=
"editClick(scope.row)"
v-hasPermi=
"['ecw:payment:detail:bankEdit']"
>
{{
$t
(
"
编辑
"
)
}}
</el-button
>
-->
>
<el-button
v-if=
"scope.row.status == 2"
type=
"text"
...
...
@@ -312,27 +346,40 @@
<div
style=
"padding: 0 24px"
>
<el-form
ref=
"addForm"
label-width=
"250px"
>
<el-form-item
:label=
"$t('收款单号')"
>
<el-input
disabled
v-model=
"form.receipt_no"
style=
"width: 220px"
></el-input>
<el-input
:disabled=
"isEdit"
v-model=
"form.receipt_no"
style=
"width: 220px"
></el-input>
</el-form-item>
<!--
<el-form-item
:label=
"$t('剩余应收金额')"
>
<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 }}{{ getCurrencyLabel(currency) }}
</span
>
</div>
</div>
</el-form-item>-->
</el-form-item>
<el-form-item
:label=
"$t('收款账户')"
prop=
"accountNo"
>
<el-input
disabled
v-model=
"form.accountBankName"
<el-select
:disabled=
"isEdit"
filterable
clear
v-model=
"form.accountId"
:placeholder=
"$t('请选择收款账户')"
style=
"width: 220px"
></el-input>
@
change=
"accountChange"
v-el-select-loadmore=
"loadmore"
>
<el-option
v-for=
"item in bankData"
:key=
"item.id"
:label=
"item.baAccountName + '(' + item.baAccountNum + ')'"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('实收日期')"
prop=
"amountDate"
>
<el-date-picker
disabled
<el-date-picker
:disabled=
"isEdit"
v-model=
"form.amountDate"
type=
"date"
style=
"width: 150px"
...
...
@@ -341,15 +388,24 @@
</el-form-item>
<div
style=
"display: flex"
>
<el-form-item
:label=
"$t('实收')"
prop=
"amount"
>
<el-input
v-model=
"form.amount"
disabled
style=
"width: 100px"
></el-input>
<el-input
v-model=
"form.amount"
:disabled=
"isEdit"
style=
"width: 100px"
></el-input>
{{ form.currencyName }}
</el-form-item>
</div>
<el-form-item
prop=
"rate"
:label=
"$t('兑核销基准币种汇率')"
>
<el-input
v-model=
"form.rate"
disabled
style=
"width: 220px"
></el-input>
<el-input
v-model=
"form.rate"
:disabled=
"isEdit"
style=
"width: 220px"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('兑核销基准币种金额')"
>
<el-input
disabled
<el-input
:disabled=
"isEdit"
v-model=
"form.writeOffAmount"
style=
"width: 220px"
></el-input>
...
...
@@ -364,10 +420,14 @@
</div>
</el-form-item>
<el-form-item
:label=
"$t('水单号')"
prop=
"billNo"
>
<el-input
v-model=
"form.billNo"
disabled
style=
"width: 220px"
></el-input>
<el-input
v-model=
"form.billNo"
:disabled=
"isEdit"
style=
"width: 220px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
v-show=
"false"
>
<div
slot=
"footer"
>
<el-button
type=
"primary"
@
click=
"saveFrom"
>
{{
saveBtnText
}}
</el-button>
...
...
@@ -383,6 +443,7 @@ import { getPageList, test } from "@/api/report/bankReceiptDetail";
import
{
getReceivableItem2
}
from
"
@/api/ecw/financial
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@/assets/styles/vue-treeselect.css
"
;
import
{
getBankAccountPage
}
from
"
@/api/ecw/bankAccount
"
;
import
{
getCurrencyPage
}
from
"
@/api/ecw/currency
"
;
import
{
deleteReceiptItem
,
//删除收款单明细
...
...
@@ -445,6 +506,8 @@ export default {
eDate2
:
undefined
,
//提交审批日期
sDate3
:
undefined
,
eDate3
:
undefined
,
//审批通过日期
sDate4
:
undefined
,
eDate4
:
undefined
,
//实收日期
creator
:
undefined
,
//创建人
},
currencyList
:
[],
...
...
@@ -456,9 +519,21 @@ export default {
ids
:
[],
// 表单参数
form
:
{},
isEdit
:
false
,
//是否编辑
bankData
:
[],
codePage
:
{
pageNo
:
1
,
pageSize
:
20
,
},
pages
:
1
,
};
},
async
created
()
{
getBankAccountPage
(
this
.
codePage
).
then
((
res
)
=>
{
this
.
bankData
=
res
.
data
.
list
;
this
.
pages
=
res
.
data
.
total
/
this
.
codePage
.
pageSize
+
1
;
});
// 获取汇率
await
getCurrencyPage
(
this
.
params
).
then
(
(
res
)
=>
(
this
.
currencyList
=
res
.
data
.
list
)
...
...
@@ -488,6 +563,15 @@ export default {
},
},
methods
:
{
// 懒加载
loadmore
()
{
this
.
codePage
.
pageNo
++
;
// 大于页码不请求了
if
(
this
.
codePage
.
pageNo
>
this
.
pages
)
{
return
;
}
this
.
getCodeList
();
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
...
...
@@ -778,7 +862,9 @@ export default {
});
},
detailClick
(
row
)
{
//查看详情
let
id
=
row
.
id
;
this
.
isEdit
=
true
;
getReceivableItem2
(
id
).
then
((
response
)
=>
{
this
.
form
=
response
.
data
;
//收款单号
...
...
@@ -793,20 +879,21 @@ export default {
});
},
editClick
(
row
)
{
//this.getsurplusData();
let
id
=
row
.
id
;
this
.
isEdit
=
false
;
getReceivableItem2
(
id
).
then
((
response
)
=>
{
this
.
form
=
response
.
data
;
//收款单号
this
.
form
.
receipt_no
=
row
.
receiptNo
;
//实收币种
this
.
form
.
currencyName
=
this
.
getCurrencyLabel
(
row
.
currencyId
);
//水单附件
this
.
form
.
attr
=
row
.
attr
;
this
.
openAddDialog
=
true
;
this
.
dialogTitle
=
this
.
$t
(
"
编辑银行实收明细
"
);
this
.
saveBtnText
=
this
.
$t
(
"
提交
"
);
this
.
isView
=
false
;
/*
setTimeout(() => {
this.addForm = { ...row };
let bank = this.bankData.find(
(v) => v.baAccountNum == this.addForm.accountNo
);
if (bank) this.addForm.accountId = bank.id;
this.setWriteOffAmount();
}, 0);*/
});
},
deleteClick
(
row
)
{
const
id
=
row
.
id
;
...
...
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