mirror of
https://gitee.com/myxzgzs/boyue-ui-admin-vue3
synced 2025-08-08 16:32:43 +08:00
Merge branch 'feature/bpm' of https://gitee.com/yudaocode/yudao-ui-admin-vue3
This commit is contained in:
commit
78e29940be
@ -12,7 +12,10 @@
|
|||||||
</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 && condition.conditionGroups" 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>
|
||||||
@ -67,14 +70,23 @@
|
|||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-select style="width: 160px" v-model="rule.leftSide">
|
<el-select style="width: 160px" v-model="rule.leftSide" clearable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(field, fIdx) in fieldOptions"
|
v-for="(field, fIdx) in fieldOptions"
|
||||||
:key="fIdx"
|
:key="fIdx"
|
||||||
:label="field.title"
|
:label="field.title"
|
||||||
:value="field.field"
|
:value="field.field"
|
||||||
:disabled="!field.required"
|
:disabled="!field.required"
|
||||||
/>
|
>
|
||||||
|
<el-tooltip
|
||||||
|
content="表单字段非必填时不能作为流程分支条件"
|
||||||
|
effect="dark"
|
||||||
|
placement="right-start"
|
||||||
|
v-if="!field.required"
|
||||||
|
>
|
||||||
|
<span>{{ field.title }}</span>
|
||||||
|
</el-tooltip>
|
||||||
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
@ -147,16 +147,16 @@
|
|||||||
<div class="flex flex-col w-100%">
|
<div class="flex flex-col w-100%">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="preProcessNotifyEnable"
|
v-model="processBeforeTriggerEnable"
|
||||||
@change="handlePreProcessNotifyEnableChange"
|
@change="handlePreProcessNotifyEnableChange"
|
||||||
/>
|
/>
|
||||||
<div class="ml-80px">流程启动后通知</div>
|
<div class="ml-80px">流程启动后通知</div>
|
||||||
</div>
|
</div>
|
||||||
<HttpRequestSetting
|
<HttpRequestSetting
|
||||||
v-if="preProcessNotifyEnable"
|
v-if="processBeforeTriggerEnable"
|
||||||
v-model:setting="modelData.preProcessNotifySetting"
|
v-model:setting="modelData.processBeforeTriggerSetting"
|
||||||
:responseEnable="true"
|
:responseEnable="true"
|
||||||
:formItemPrefix="'preProcessNotifySetting'"
|
:formItemPrefix="'processBeforeTriggerSetting'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -167,16 +167,16 @@
|
|||||||
<div class="flex flex-col w-100%">
|
<div class="flex flex-col w-100%">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="postProcessNotifyEnable"
|
v-model="processAfterTriggerEnable"
|
||||||
@change="handlePostProcessNotifyEnableChange"
|
@change="handlePostProcessNotifyEnableChange"
|
||||||
/>
|
/>
|
||||||
<div class="ml-80px">流程启动后通知</div>
|
<div class="ml-80px">流程启动后通知</div>
|
||||||
</div>
|
</div>
|
||||||
<HttpRequestSetting
|
<HttpRequestSetting
|
||||||
v-if="postProcessNotifyEnable"
|
v-if="processAfterTriggerEnable"
|
||||||
v-model:setting="modelData.postProcessNotifySetting"
|
v-model:setting="modelData.processAfterTriggerSetting"
|
||||||
:responseEnable="true"
|
:responseEnable="true"
|
||||||
:formItemPrefix="'postProcessNotifySetting'"
|
:formItemPrefix="'processAfterTriggerSetting'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -247,32 +247,32 @@ const numberExample = computed(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
/** 是否开启流程前置通知 */
|
/** 是否开启流程前置通知 */
|
||||||
const preProcessNotifyEnable = ref(false)
|
const processBeforeTriggerEnable = ref(false)
|
||||||
const handlePreProcessNotifyEnableChange = (val: boolean | string | number) => {
|
const handlePreProcessNotifyEnableChange = (val: boolean | string | number) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
modelData.value.preProcessNotifySetting = {
|
modelData.value.processBeforeTriggerSetting = {
|
||||||
url: '',
|
url: '',
|
||||||
header: [],
|
header: [],
|
||||||
body: [],
|
body: [],
|
||||||
response: []
|
response: []
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
modelData.value.preProcessNotifySetting = null
|
modelData.value.processBeforeTriggerSetting = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 是否开启流程后置通知 */
|
/** 是否开启流程后置通知 */
|
||||||
const postProcessNotifyEnable = ref(false)
|
const processAfterTriggerEnable = ref(false)
|
||||||
const handlePostProcessNotifyEnableChange = (val: boolean | string | number) => {
|
const handlePostProcessNotifyEnableChange = (val: boolean | string | number) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
modelData.value.postProcessNotifySetting = {
|
modelData.value.processAfterTriggerSetting = {
|
||||||
url: '',
|
url: '',
|
||||||
header: [],
|
header: [],
|
||||||
body: [],
|
body: [],
|
||||||
response: []
|
response: []
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
modelData.value.postProcessNotifySetting = null
|
modelData.value.processAfterTriggerSetting = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,11 +335,11 @@ const initData = () => {
|
|||||||
summary: []
|
summary: []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (modelData.value.preProcessNotifySetting) {
|
if (modelData.value.processBeforeTriggerSetting) {
|
||||||
preProcessNotifyEnable.value = true
|
processBeforeTriggerEnable.value = true
|
||||||
}
|
}
|
||||||
if (modelData.value.postProcessNotifySetting) {
|
if (modelData.value.processAfterTriggerSetting) {
|
||||||
postProcessNotifyEnable.value = true
|
processAfterTriggerEnable.value = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
defineExpose({ initData })
|
defineExpose({ initData })
|
||||||
|
@ -749,19 +749,16 @@ const selectNextAssigneesConfirm = (id: string, userList: any[]) => {
|
|||||||
}
|
}
|
||||||
/** 审批通过时,校验每个自选审批人的节点是否都已配置了审批人 */
|
/** 审批通过时,校验每个自选审批人的节点是否都已配置了审批人 */
|
||||||
const validateNextAssignees = () => {
|
const validateNextAssignees = () => {
|
||||||
// TODO @小北:可以考虑 Object.keys(nextAssigneesActivityNode.value).length === 0) return true;减少括号层级
|
if (Object.keys(nextAssigneesActivityNode.value).length === 0) {
|
||||||
// 如果需要自选审批人,则校验自选审批人
|
return true
|
||||||
if (Object.keys(nextAssigneesActivityNode.value).length > 0) {
|
}
|
||||||
// 校验每个节点是否都已配置审批人
|
// 如果需要自选审批人,则校验每个节点是否都已配置审批人
|
||||||
for (const item of nextAssigneesActivityNode.value) {
|
for (const item of nextAssigneesActivityNode.value) {
|
||||||
if (isEmpty(approveReasonForm.nextAssignees[item.id])) {
|
if (isEmpty(approveReasonForm.nextAssignees[item.id])) {
|
||||||
// TODO @小北:可以打印下节点名,嘿嘿。
|
|
||||||
message.warning('下一个节点的审批人不能为空!')
|
message.warning('下一个节点的审批人不能为空!')
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 处理审批通过和不通过的操作 */
|
/** 处理审批通过和不通过的操作 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user