|
@@ -1,7 +1,7 @@
|
|
<template>
|
|
<template>
|
|
<el-form ref="formRef" :model="condition" :rules="formRules" label-position="top">
|
|
<el-form ref="formRef" :model="condition" :rules="formRules" label-position="top">
|
|
<el-form-item label="配置方式" prop="conditionType">
|
|
<el-form-item label="配置方式" prop="conditionType">
|
|
- <el-radio-group v-model="condition!.conditionType">
|
|
|
|
|
|
+ <el-radio-group v-model="condition.conditionType" @change="changeConditionType">
|
|
<el-radio
|
|
<el-radio
|
|
v-for="(dict, indexConditionType) in conditionConfigTypes"
|
|
v-for="(dict, indexConditionType) in conditionConfigTypes"
|
|
:key="indexConditionType"
|
|
:key="indexConditionType"
|
|
@@ -12,34 +12,34 @@
|
|
</el-radio>
|
|
</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item v-if="condition.conditionType === ConditionType.RULE" label="条件规则">
|
|
|
|
|
|
+ <el-form-item v-if="condition.conditionType === ConditionType.RULE && condition.conditionGroups" label="条件规则">
|
|
<div class="condition-group-tool">
|
|
<div class="condition-group-tool">
|
|
<div class="flex items-center">
|
|
<div class="flex items-center">
|
|
<div class="mr-4">条件组关系</div>
|
|
<div class="mr-4">条件组关系</div>
|
|
<el-switch
|
|
<el-switch
|
|
- v-model="condition!.conditionGroups!.and"
|
|
|
|
|
|
+ v-model="condition.conditionGroups.and"
|
|
inline-prompt
|
|
inline-prompt
|
|
active-text="且"
|
|
active-text="且"
|
|
inactive-text="或"
|
|
inactive-text="或"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <el-space direction="vertical" :spacer="condition!.conditionGroups!.and ? '且' : '或'">
|
|
|
|
|
|
+ <el-space direction="vertical" :spacer="condition.conditionGroups.and ? '且' : '或'">
|
|
<el-card
|
|
<el-card
|
|
class="condition-group"
|
|
class="condition-group"
|
|
style="width: 530px"
|
|
style="width: 530px"
|
|
- v-for="(equation, cIdx) in condition!.conditionGroups!.conditions"
|
|
|
|
|
|
+ v-for="(equation, cIdx) in condition.conditionGroups.conditions"
|
|
:key="cIdx"
|
|
:key="cIdx"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
class="condition-group-delete"
|
|
class="condition-group-delete"
|
|
- v-if="condition!.conditionGroups!.conditions.length > 1"
|
|
|
|
|
|
+ v-if="condition.conditionGroups.conditions.length > 1"
|
|
>
|
|
>
|
|
<Icon
|
|
<Icon
|
|
color="#0089ff"
|
|
color="#0089ff"
|
|
icon="ep:circle-close-filled"
|
|
icon="ep:circle-close-filled"
|
|
:size="18"
|
|
:size="18"
|
|
- @click="deleteConditionGroup(condition!.conditionGroups!.conditions, cIdx)"
|
|
|
|
|
|
+ @click="deleteConditionGroup(condition.conditionGroups.conditions, cIdx)"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<template #header>
|
|
<template #header>
|
|
@@ -114,7 +114,7 @@
|
|
color="#0089ff"
|
|
color="#0089ff"
|
|
icon="ep:plus"
|
|
icon="ep:plus"
|
|
:size="24"
|
|
:size="24"
|
|
- @click="addConditionGroup(condition?.conditionGroups!.conditions)"
|
|
|
|
|
|
+ @click="addConditionGroup(condition.conditionGroups?.conditions)"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -125,7 +125,7 @@
|
|
>
|
|
>
|
|
<el-input
|
|
<el-input
|
|
type="textarea"
|
|
type="textarea"
|
|
- v-model="condition!.conditionExpression"
|
|
|
|
|
|
+ v-model="condition.conditionExpression"
|
|
clearable
|
|
clearable
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
/>
|
|
/>
|
|
@@ -138,13 +138,18 @@ import {
|
|
COMPARISON_OPERATORS,
|
|
COMPARISON_OPERATORS,
|
|
CONDITION_CONFIG_TYPES,
|
|
CONDITION_CONFIG_TYPES,
|
|
ConditionType,
|
|
ConditionType,
|
|
- ConditionSetting,
|
|
|
|
|
|
+ DEFAULT_CONDITION_GROUP_VALUE,
|
|
ProcessVariableEnum
|
|
ProcessVariableEnum
|
|
} from '../../consts'
|
|
} from '../../consts'
|
|
import { BpmModelFormType } from '@/utils/constants'
|
|
import { BpmModelFormType } from '@/utils/constants'
|
|
import { useFormFields } from '../../node'
|
|
import { useFormFields } from '../../node'
|
|
|
|
|
|
-const props = defineProps<{modelValue: ConditionSetting}>()
|
|
|
|
|
|
+const props = defineProps({
|
|
|
|
+ modelValue: {
|
|
|
|
+ type: Object,
|
|
|
|
+ required: true
|
|
|
|
+ }
|
|
|
|
+})
|
|
const emit = defineEmits(['update:modelValue'])
|
|
const emit = defineEmits(['update:modelValue'])
|
|
const condition = computed({
|
|
const condition = computed({
|
|
get() {
|
|
get() {
|
|
@@ -183,6 +188,14 @@ const formRules = reactive({
|
|
})
|
|
})
|
|
const formRef = ref() // 表单 Ref
|
|
const formRef = ref() // 表单 Ref
|
|
|
|
|
|
|
|
+/** 切换条件配置方式 */
|
|
|
|
+const changeConditionType = () => {
|
|
|
|
+ if (condition.value.conditionType === ConditionType.RULE) {
|
|
|
|
+ if (!condition.value.conditionGroups) {
|
|
|
|
+ condition.value.conditionGroups = DEFAULT_CONDITION_GROUP_VALUE
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
const deleteConditionGroup = (conditions, index) => {
|
|
const deleteConditionGroup = (conditions, index) => {
|
|
conditions.splice(index, 1)
|
|
conditions.splice(index, 1)
|
|
}
|
|
}
|