Commit 91c3b942 by jason

Merge branch 'feature/bpm' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into feature/bpm

parents 7652c412 9994059c
...@@ -306,6 +306,9 @@ const addNode = (type: number) => { ...@@ -306,6 +306,9 @@ const addNode = (type: number) => {
}, },
timeoutSetting: { timeoutSetting: {
enable: false enable: false
},
multiInstanceSetting: {
enable: false
} }
} }
} }
......
...@@ -814,26 +814,84 @@ export const TRIGGER_TYPES: DictDataVO[] = [ ...@@ -814,26 +814,84 @@ export const TRIGGER_TYPES: DictDataVO[] = [
export type ChildProcessSetting = { export type ChildProcessSetting = {
calledProcessDefinitionKey: string calledProcessDefinitionKey: string
calledProcessDefinitionName: string calledProcessDefinitionName: string
async: boolean, async: boolean
inVariables?: IOParameter[], inVariables?: IOParameter[]
outVariables?: IOParameter[], outVariables?: IOParameter[]
skipStartUserNode: boolean, skipStartUserNode: boolean
startUserSetting: StartUserSetting, startUserSetting: StartUserSetting
timeoutSetting: TimeoutSetting, timeoutSetting: TimeoutSetting
multiInstanceSetting: MultiInstanceSetting
} }
export type IOParameter = { export type IOParameter = {
source: string source: string
sourceExpression: string
target: string target: string
targetExpression: string
} }
export type StartUserSetting = { export type StartUserSetting = {
type: number type: ChildProcessStartUserTypeEnum
formField?: string formField?: string
emptyType?: number emptyType?: ChildProcessStartUserEmptyTypeEnum
} }
export type TimeoutSetting = { export type TimeoutSetting = {
enable: boolean, enable: boolean
type?: DelayTypeEnum, type?: DelayTypeEnum
timeExpression?: string, timeExpression?: string
}
export type MultiInstanceSetting = {
enable: boolean
sequential?: boolean
completeRatio?: number
sourceType?: ChildProcessMultiInstanceSourceTypeEnum
source?: string
}
export enum ChildProcessStartUserTypeEnum {
/**
* 同主流程发起人
*/
MAIN_PROCESS_START_USER = 1,
/**
* 表单
*/
FROM_FORM = 2
}
export const CHILD_PROCESS_START_USER_TYPE = [
{ label: '同主流程发起人', value: ChildProcessStartUserTypeEnum.MAIN_PROCESS_START_USER },
{ label: '表单', value: ChildProcessStartUserTypeEnum.FROM_FORM }
]
export enum ChildProcessStartUserEmptyTypeEnum {
/**
* 同主流程发起人
*/
MAIN_PROCESS_START_USER = 1,
/**
* 子流程管理员
*/
CHILD_PROCESS_ADMIN = 2,
/**
* 主流程管理员
*/
MAIN_PROCESS_ADMIN = 3
}
export const CHILD_PROCESS_START_USER_EMPTY_TYPE = [
{ label: '同主流程发起人', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_START_USER },
{ label: '子流程管理员', value: ChildProcessStartUserEmptyTypeEnum.CHILD_PROCESS_ADMIN },
{ label: '主流程管理员', value: ChildProcessStartUserEmptyTypeEnum.MAIN_PROCESS_ADMIN }
]
export enum ChildProcessMultiInstanceSourceTypeEnum {
/**
* 固定数量
*/
FIXED_QUANTITY = 1,
/**
* 数字表单
*/
DIGITAL_FORM = 2,
/**
* 多项表单
*/
MULTI_FORM = 3
} }
export const CHILD_PROCESS_MULTI_INSTANCE_SOURCE_TYPE = [
{ label: '固定数量', value: ChildProcessMultiInstanceSourceTypeEnum.FIXED_QUANTITY },
{ label: '数字表单', value: ChildProcessMultiInstanceSourceTypeEnum.DIGITAL_FORM }, // TODO @lesan:DIGITAL 改成 NUMBER,和 Element plus 更接近?
{ label: '多项表单', value: ChildProcessMultiInstanceSourceTypeEnum.MULTI_FORM } // TODO @lesan:多选表单?multiple 是这个解释。另外 MULTI => MULTIPLE
]
...@@ -48,7 +48,7 @@ import { getDefaultConditionNodeName } from '../utils' ...@@ -48,7 +48,7 @@ import { getDefaultConditionNodeName } from '../utils'
import { useFormFieldsAndStartUser, getConditionShowText } from '../node' import { useFormFieldsAndStartUser, getConditionShowText } from '../node'
import Condition from './components/Condition.vue' import Condition from './components/Condition.vue'
import { cloneDeep } from 'lodash-es' import { cloneDeep } from 'lodash-es'
const message = useMessage() // 消息弹窗
defineOptions({ defineOptions({
name: 'ConditionNodeConfig' name: 'ConditionNodeConfig'
}) })
...@@ -69,14 +69,18 @@ const condition = ref<any>({ ...@@ -69,14 +69,18 @@ const condition = ref<any>({
conditionExpression: '', conditionExpression: '',
conditionGroups: { conditionGroups: {
and: true, and: true,
conditions: [{ conditions: [
and: true, {
rules: [{ and: true,
opCode: '==', rules: [
leftSide: '', {
rightSide: '' opCode: '==',
}] leftSide: '',
}] rightSide: ''
}
]
}
]
} }
}) })
const open = () => { const open = () => {
...@@ -90,14 +94,18 @@ const open = () => { ...@@ -90,14 +94,18 @@ const open = () => {
conditionExpression: '', conditionExpression: '',
conditionGroups: { conditionGroups: {
and: true, and: true,
conditions: [{ conditions: [
and: true, {
rules: [{ and: true,
opCode: '==', rules: [
leftSide: '', {
rightSide: '' opCode: '==',
}] leftSide: '',
}] rightSide: ''
}
]
}
]
} }
} }
} }
...@@ -162,8 +170,14 @@ const saveConfig = async () => { ...@@ -162,8 +170,14 @@ const saveConfig = async () => {
currentNode.value.conditionSetting = cloneDeep({ currentNode.value.conditionSetting = cloneDeep({
...currentNode.value.conditionSetting, ...currentNode.value.conditionSetting,
conditionType: condition.value?.conditionType, conditionType: condition.value?.conditionType,
conditionExpression: condition.value?.conditionType === ConditionType.EXPRESSION ? condition.value?.conditionExpression : undefined, conditionExpression:
conditionGroups: condition.value?.conditionType === ConditionType.RULE ? condition.value?.conditionGroups : undefined condition.value?.conditionType === ConditionType.EXPRESSION
? condition.value?.conditionExpression
: undefined,
conditionGroups:
condition.value?.conditionType === ConditionType.RULE
? condition.value?.conditionGroups
: undefined
}) })
} }
settingVisible.value = false settingVisible.value = false
......
...@@ -157,25 +157,24 @@ const initProcessInfo = async (row: any, formVariables?: any) => { ...@@ -157,25 +157,24 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
} }
/** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */ /** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */
// TODO @芋艿:这里我执行填写表单的时候不知道为啥一直报错,先注释了 @lesan:可以和群里的小北说下 watch(
// watch( detailForm.value,
// detailForm.value, (newValue) => {
// (newValue) => { if (newValue && Object.keys(newValue.value).length > 0) {
// if (newValue && Object.keys(newValue.value).length > 0) { // 记录之前的节点审批人
// // 记录之前的节点审批人 tempStartUserSelectAssignees.value = startUserSelectAssignees.value
// tempStartUserSelectAssignees.value = startUserSelectAssignees.value startUserSelectAssignees.value = {}
// startUserSelectAssignees.value = {} // 加载最新的审批详情
// // 加载最新的审批详情 getApprovalDetail({
// getApprovalDetail({ id: props.selectProcessDefinition.id,
// id: props.selectProcessDefinition.id, processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
// processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON })
// }) }
// } },
// }, {
// { immediate: true
// immediate: true }
// } )
// )
/** 获取审批详情 */ /** 获取审批详情 */
const getApprovalDetail = async (row: any) => { const getApprovalDetail = async (row: any) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment