feat: [BPM 工作流] Simple 模型新增跳过表达式
parent
acdd72359c
commit
15aef8d4b7
|
|
@ -4,6 +4,10 @@ import request from '@/config/axios'
|
||||||
* 任务状态枚举
|
* 任务状态枚举
|
||||||
*/
|
*/
|
||||||
export enum TaskStatusEnum {
|
export enum TaskStatusEnum {
|
||||||
|
/**
|
||||||
|
* 跳过
|
||||||
|
*/
|
||||||
|
SKIP = -2,
|
||||||
/**
|
/**
|
||||||
* 未开始
|
* 未开始
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,8 @@ export interface SimpleFlowNode {
|
||||||
signEnable?: boolean
|
signEnable?: boolean
|
||||||
// 审批意见
|
// 审批意见
|
||||||
reasonRequire?: boolean
|
reasonRequire?: boolean
|
||||||
|
// 跳过表达式
|
||||||
|
skipExpression?: string
|
||||||
// 触发器设置
|
// 触发器设置
|
||||||
triggerSetting?: TriggerSetting
|
triggerSetting?: TriggerSetting
|
||||||
// 子流程
|
// 子流程
|
||||||
|
|
|
||||||
|
|
@ -177,6 +177,7 @@ export type UserTaskFormType = {
|
||||||
}
|
}
|
||||||
signEnable: boolean
|
signEnable: boolean
|
||||||
reasonRequire: boolean
|
reasonRequire: boolean
|
||||||
|
skipExpression?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CopyTaskFormType = {
|
export type CopyTaskFormType = {
|
||||||
|
|
|
||||||
|
|
@ -411,6 +411,12 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-divider content-position="left">跳过表达式</el-divider>
|
||||||
|
<el-form-item prop="skipExpression">
|
||||||
|
<el-input v-model="configForm.skipExpression" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
@ -770,6 +776,8 @@ const saveConfig = async () => {
|
||||||
currentNode.value.signEnable = configForm.value.signEnable
|
currentNode.value.signEnable = configForm.value.signEnable
|
||||||
// 审批意见
|
// 审批意见
|
||||||
currentNode.value.reasonRequire = configForm.value.reasonRequire
|
currentNode.value.reasonRequire = configForm.value.reasonRequire
|
||||||
|
// 跳过表达式
|
||||||
|
currentNode.value.skipExpression = configForm.value.skipExpression
|
||||||
|
|
||||||
currentNode.value.showText = showText
|
currentNode.value.showText = showText
|
||||||
settingVisible.value = false
|
settingVisible.value = false
|
||||||
|
|
@ -851,6 +859,8 @@ const showUserTaskNodeConfig = (node: SimpleFlowNode) => {
|
||||||
configForm.value.signEnable = node?.signEnable ?? false
|
configForm.value.signEnable = node?.signEnable ?? false
|
||||||
// 7. 审批意见
|
// 7. 审批意见
|
||||||
configForm.value.reasonRequire = node?.reasonRequire ?? false
|
configForm.value.reasonRequire = node?.reasonRequire ?? false
|
||||||
|
// 8. 跳过表达式
|
||||||
|
configForm.value.skipExpression = node?.skipExpression ?? ''
|
||||||
}
|
}
|
||||||
|
|
||||||
defineExpose({ openDrawer, showUserTaskNodeConfig }) // 暴露方法给父组件
|
defineExpose({ openDrawer, showUserTaskNodeConfig }) // 暴露方法给父组件
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@
|
||||||
<div class="flex flex-col items-start gap2" :id="`activity-task-${activity.id}-${index}`">
|
<div class="flex flex-col items-start gap2" :id="`activity-task-${activity.id}-${index}`">
|
||||||
<!-- 第一行:节点名称、时间 -->
|
<!-- 第一行:节点名称、时间 -->
|
||||||
<div class="flex w-full">
|
<div class="flex w-full">
|
||||||
<div class="font-bold"> {{ activity.name }}</div>
|
<div class="font-bold"> {{ activity.name }} <span v-if="activity.status === TaskStatusEnum.SKIP">【跳过】</span>
|
||||||
|
</div>
|
||||||
<!-- 信息:时间 -->
|
<!-- 信息:时间 -->
|
||||||
<div
|
<div
|
||||||
v-if="activity.status !== TaskStatusEnum.NOT_START"
|
v-if="activity.status !== TaskStatusEnum.NOT_START"
|
||||||
|
|
@ -179,7 +180,7 @@ import * as ProcessInstanceApi from '@/api/bpm/processInstance'
|
||||||
import { TaskStatusEnum } from '@/api/bpm/task'
|
import { TaskStatusEnum } from '@/api/bpm/task'
|
||||||
import { NodeType, CandidateStrategy } from '@/components/SimpleProcessDesignerV2/src/consts'
|
import { NodeType, CandidateStrategy } from '@/components/SimpleProcessDesignerV2/src/consts'
|
||||||
import { isEmpty } from '@/utils/is'
|
import { isEmpty } from '@/utils/is'
|
||||||
import { Check, Close, Loading, Clock, Minus, Delete } from '@element-plus/icons-vue'
|
import { Check, Close, Loading, Clock, Minus, Delete, ArrowDown } from '@element-plus/icons-vue'
|
||||||
import starterSvg from '@/assets/svgs/bpm/starter.svg'
|
import starterSvg from '@/assets/svgs/bpm/starter.svg'
|
||||||
import auditorSvg from '@/assets/svgs/bpm/auditor.svg'
|
import auditorSvg from '@/assets/svgs/bpm/auditor.svg'
|
||||||
import copySvg from '@/assets/svgs/bpm/copy.svg'
|
import copySvg from '@/assets/svgs/bpm/copy.svg'
|
||||||
|
|
@ -203,6 +204,8 @@ const { push } = useRouter() // 路由
|
||||||
|
|
||||||
// 审批节点
|
// 审批节点
|
||||||
const statusIconMap2 = {
|
const statusIconMap2 = {
|
||||||
|
// 跳过
|
||||||
|
'-2': { color: '#cccccc', icon: 'ep:arrow-down' },
|
||||||
// 未开始
|
// 未开始
|
||||||
'-1': { color: '#909398', icon: 'ep-clock' },
|
'-1': { color: '#909398', icon: 'ep-clock' },
|
||||||
// 待审批
|
// 待审批
|
||||||
|
|
@ -224,6 +227,8 @@ const statusIconMap2 = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const statusIconMap = {
|
const statusIconMap = {
|
||||||
|
// 跳过
|
||||||
|
'-2': { color: '#909398', icon: ArrowDown},
|
||||||
// 审批未开始
|
// 审批未开始
|
||||||
'-1': { color: '#909398', icon: Clock },
|
'-1': { color: '#909398', icon: Clock },
|
||||||
'0': { color: '#00b32a', icon: Clock },
|
'0': { color: '#00b32a', icon: Clock },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue