commit
f91868b4f6
1
src/assets/svgs/bpm/transactor.svg
Normal file
1
src/assets/svgs/bpm/transactor.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg t="1739406626368" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1300" width="200" height="200"><path d="M803.221 925.573H224.356c-68.568 0-124.352-55.784-124.352-124.353V222.356c0-68.568 55.784-124.352 124.352-124.352h355.311v64H224.356c-33.278 0-60.352 27.074-60.352 60.352V801.22c0 33.278 27.074 60.353 60.352 60.353H803.22c33.278 0 60.353-27.074 60.353-60.353V448.208h64V801.22c0 68.569-55.784 124.353-124.352 124.353z" fill="#ffffff" p-id="1301"></path><path d="M300.357 756.916l35.024-195.867L770.117 84.404c10.05-11.02 25.015-18.052 41.058-19.293 16.017-1.247 31.987 3.379 43.841 12.667l83.662 65.549c21.643 16.956 24.254 45.964 5.942 66.038l-437.613 479.8-206.65 67.751z m104.994-170.751l-13.14 73.487 69.671-22.842 415.465-455.517-59.909-46.939-412.087 451.811z" fill="#ffffff" p-id="1302"></path><path d="M732.25 220.897l41.144-49.023 81.151 68.11-41.145 49.023z" fill="#ffffff" p-id="1303"></path></svg>
|
After Width: | Height: | Size: 964 B |
@ -15,10 +15,9 @@
|
||||
</div>
|
||||
<div class="handler-item-text">审批人</div>
|
||||
</div>
|
||||
<!-- TODO @lesan:办理人增加自定义 icon 哈,可以换 jason 怎么弄! -->
|
||||
<div class="handler-item" @click="addNode(NodeType.TRANSACTOR_NODE)">
|
||||
<div class="approve handler-item-icon">
|
||||
<span class="iconfont icon-approve icon-size"></span>
|
||||
<div class="transactor handler-item-icon">
|
||||
<span class="iconfont icon-transactor icon-size"></span>
|
||||
</div>
|
||||
<div class="handler-item-text">办理人</div>
|
||||
</div>
|
||||
|
@ -1,4 +1,3 @@
|
||||
<!-- TODO @lesan:涉及到“审批”关键字,需要换成“办理”,建议通过一个变量控制哈 -->
|
||||
<template>
|
||||
<el-drawer
|
||||
:append-to-body="true"
|
||||
@ -40,10 +39,10 @@
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<el-tabs type="border-card" v-model="activeTabName" v-if="approveType === ApproveType.USER">
|
||||
<el-tab-pane label="审批人" name="user">
|
||||
<el-tab-pane :label="`${nodeTypeName}人`" name="user">
|
||||
<div>
|
||||
<el-form ref="formRef" :model="configForm" label-position="top" :rules="formRules">
|
||||
<el-form-item label="审批人设置" prop="candidateStrategy">
|
||||
<el-form-item :label="`${nodeTypeName}人设置`" prop="candidateStrategy">
|
||||
<el-radio-group
|
||||
v-model="configForm.candidateStrategy"
|
||||
@change="changeCandidateStrategy"
|
||||
@ -226,7 +225,7 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="多人审批方式" prop="approveMethod">
|
||||
<el-form-item :label="`多人${nodeTypeName}方式`" prop="approveMethod">
|
||||
<el-radio-group v-model="configForm.approveMethod" @change="approveMethodChanged">
|
||||
<div class="flex-col">
|
||||
<div
|
||||
@ -350,7 +349,7 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-divider content-position="left">审批人为空时</el-divider>
|
||||
<el-divider content-position="left">{{ nodeTypeName }}人为空时</el-divider>
|
||||
<el-form-item prop="assignEmptyHandlerType">
|
||||
<el-radio-group v-model="configForm.assignEmptyHandlerType">
|
||||
<div class="flex-col">
|
||||
@ -449,7 +448,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<!-- TODO @lesan:办理时,应该还是有字段权限 -->
|
||||
<el-tab-pane label="表单字段权限" name="fields" v-if="formType === 10">
|
||||
<div class="field-setting-pane">
|
||||
<div class="field-setting-desc">字段权限</div>
|
||||
@ -681,6 +679,11 @@ const {
|
||||
|
||||
const userTaskListenerRef = ref()
|
||||
|
||||
// 节点类型名称
|
||||
const nodeTypeName = computed(() => {
|
||||
return currentNode.value.type === NodeType.TRANSACTOR_NODE ? '办理' : '审批'
|
||||
})
|
||||
|
||||
// 保存配置
|
||||
const saveConfig = async () => {
|
||||
// activeTabName.value = 'user'
|
||||
|
@ -9,7 +9,13 @@
|
||||
]"
|
||||
>
|
||||
<div class="node-title-container">
|
||||
<div class="node-title-icon user-task"><span class="iconfont icon-approve"></span></div>
|
||||
<div
|
||||
:class="`node-title-icon ${currentNode.type === NodeType.TRANSACTOR_NODE ? 'transactor-task' : 'user-task'}`"
|
||||
>
|
||||
<span
|
||||
:class="`iconfont ${currentNode.type === NodeType.TRANSACTOR_NODE ? 'icon-transactor' : 'icon-approve'}`"
|
||||
></span>
|
||||
</div>
|
||||
<input
|
||||
v-if="!readonly && showInput"
|
||||
type="text"
|
||||
|
@ -177,6 +177,10 @@
|
||||
color: #ca3a31
|
||||
}
|
||||
|
||||
.transactor {
|
||||
color: #330099;
|
||||
}
|
||||
|
||||
.handler-item-text {
|
||||
margin-top: 4px;
|
||||
width: 80px;
|
||||
@ -290,10 +294,14 @@
|
||||
&.trigger-node {
|
||||
color: #3373d2;
|
||||
}
|
||||
|
||||
|
||||
&.router-node {
|
||||
color: #ca3a31
|
||||
}
|
||||
|
||||
&.transactor-task {
|
||||
color: #330099;
|
||||
}
|
||||
}
|
||||
|
||||
.node-title {
|
||||
@ -777,7 +785,7 @@
|
||||
content: "\e7eb";
|
||||
}
|
||||
|
||||
.icon-handle:before {
|
||||
.icon-transactor:before {
|
||||
content: "\e61c";
|
||||
}
|
||||
|
||||
|
@ -36,11 +36,10 @@
|
||||
:rule="approveForm.rule"
|
||||
/>
|
||||
</el-card>
|
||||
<!-- TODO @lesan:需要分成“审批”和“办理”意见,包括 label、placeholder、rule 校验 -->
|
||||
<el-form-item label="审批意见" prop="reason">
|
||||
<el-form-item :label="`${taskName}意见`" prop="reason">
|
||||
<el-input
|
||||
v-model="approveReasonForm.reason"
|
||||
placeholder="请输入审批意见"
|
||||
:placeholder="`请输入${taskName}意见`"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
/>
|
||||
@ -505,6 +504,7 @@ import * as TaskApi from '@/api/bpm/task'
|
||||
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
|
||||
import * as UserApi from '@/api/system/user'
|
||||
import {
|
||||
NodeType,
|
||||
OPERATION_BUTTON_NAME,
|
||||
OperationButtonType
|
||||
} from '@/components/SimpleProcessDesignerV2/src/consts'
|
||||
@ -559,7 +559,9 @@ const approveReasonForm = reactive({
|
||||
})
|
||||
const approveReasonRule = computed(() => {
|
||||
return {
|
||||
reason: [{ required: reasonRequire.value, message: '审批意见不能为空', trigger: 'blur' }],
|
||||
reason: [
|
||||
{ required: reasonRequire.value, message: taskName + '意见不能为空', trigger: 'blur' }
|
||||
],
|
||||
signPicUrl: [{ required: true, message: '签名不能为空', trigger: 'change' }]
|
||||
}
|
||||
})
|
||||
@ -968,11 +970,14 @@ const getButtonDisplayName = (btnType: OperationButtonType) => {
|
||||
return displayName
|
||||
}
|
||||
|
||||
const taskName = ref('审批')
|
||||
|
||||
const loadTodoTask = (task: any) => {
|
||||
approveForm.value = {}
|
||||
approveFormFApi.value = {}
|
||||
runningTask.value = task
|
||||
reasonRequire.value = task?.reasonRequire ?? false
|
||||
taskName.value = task?.nodeType === NodeType.TRANSACTOR_NODE ? '办理' : '审批'
|
||||
// 处理 approve 表单.
|
||||
if (task && task.formId && task.formConf) {
|
||||
const tempApproveForm = {}
|
||||
|
@ -180,6 +180,7 @@ import copySvg from '@/assets/svgs/bpm/copy.svg'
|
||||
import conditionSvg from '@/assets/svgs/bpm/condition.svg'
|
||||
import parallelSvg from '@/assets/svgs/bpm/parallel.svg'
|
||||
import finishSvg from '@/assets/svgs/bpm/finish.svg'
|
||||
import transactorSvg from '@/assets/svgs/bpm/transactor.svg'
|
||||
|
||||
defineOptions({ name: 'BpmProcessInstanceTimeline' })
|
||||
withDefaults(
|
||||
@ -241,8 +242,8 @@ const nodeTypeSvgMap = {
|
||||
[NodeType.START_USER_NODE]: { color: '#909398', svg: starterSvg },
|
||||
// 审批人节点
|
||||
[NodeType.USER_TASK_NODE]: { color: '#ff943e', svg: auditorSvg },
|
||||
// 办理人节点 TODO @lesan:
|
||||
[NodeType.TRANSACTOR_NODE]: { color: '#ff943e', svg: auditorSvg },
|
||||
// 办理人节点
|
||||
[NodeType.TRANSACTOR_NODE]: { color: '#ff943e', svg: transactorSvg },
|
||||
// 抄送人节点
|
||||
[NodeType.COPY_TASK_NODE]: { color: '#3296fb', svg: copySvg },
|
||||
// 条件分支节点
|
||||
|
Loading…
Reference in New Issue
Block a user