feat : workflow编辑器 无用功能屏蔽
This commit is contained in:
@@ -310,9 +310,9 @@ const insertNode = debounce((type, parentNode) => {
|
||||
case 'DELAY':
|
||||
insertDelayNode(children);
|
||||
break;
|
||||
case 'TRIGGER':
|
||||
insertTriggerNode(children);
|
||||
break;
|
||||
// case 'TRIGGER':
|
||||
// insertTriggerNode(children);
|
||||
// break;
|
||||
case 'CONDITIONS':
|
||||
insertConditionsNode(children);
|
||||
break;
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
</el-icon>
|
||||
<span>延迟等待</span>
|
||||
</div>
|
||||
<div @click="addTriggerNode">
|
||||
<el-icon style="color:#15BC83;">
|
||||
<SetUp/>
|
||||
</el-icon>
|
||||
<span>触发器</span>
|
||||
</div>
|
||||
<!-- <div @click="addTriggerNode">-->
|
||||
<!-- <el-icon style="color:#15BC83;">-->
|
||||
<!-- <SetUp/>-->
|
||||
<!-- </el-icon>-->
|
||||
<!-- <span>触发器</span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<template #reference>
|
||||
<!-- <el-button :icon="Plus" slot="reference" type="primary" @click="visible = !visible" size="small"-->
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<el-input-number :min="1" :max="20" :step="1" size="mini"
|
||||
v-model="nodeProps.leader.level"></el-input-number>
|
||||
<span> 级主管</span>
|
||||
<div style="color: #409EFF; font-size: small;">👉 直接主管为 第 1 级主管</div>
|
||||
<div style="color: #409EFF; font-size: small;">直接主管为 第 1 级主管</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-else-if="nodeProps.assignedType === 'ROLE'">
|
||||
@@ -56,12 +56,12 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span class="item-desc">发起人自己作为审批人进行审批</span>
|
||||
</div>
|
||||
<!-- <div v-else>-->
|
||||
<!-- <span class="item-desc">发起人自己作为审批人进行审批</span>-->
|
||||
<!-- </div>-->
|
||||
</el-form-item>
|
||||
<el-divider></el-divider>
|
||||
<el-form-item label="👤 审批人为空时" prop="text" class="line-mode">
|
||||
<el-form-item label="审批人为空时" prop="text" class="line-mode">
|
||||
<el-radio-group v-model="nodeProps.nobody.handler">
|
||||
<el-radio label="TO_PASS">自动通过</el-radio>
|
||||
<el-radio label="TO_REFUSE">自动驳回</el-radio>
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
<div v-if="showMode">
|
||||
<el-divider/>
|
||||
<el-form-item label="👩👦👦 多人审批时审批方式" prop="text" class="approve-mode">
|
||||
<el-form-item label="多人审批时审批方式" prop="text" class="approve-mode">
|
||||
<el-radio-group v-model="nodeProps.mode">
|
||||
<el-radio label="NEXT">会签 (按选择顺序审批,每个人必须同意)</el-radio>
|
||||
<el-radio label="AND">会签(可同时审批,每个人必须同意)</el-radio>
|
||||
@@ -90,13 +90,13 @@
|
||||
</div>
|
||||
|
||||
<el-divider>高级设置</el-divider>
|
||||
<el-form-item label="✍ 审批同意时是否需要签字" prop="text">
|
||||
<el-switch inactive-text="不用" active-text="需要" v-model="nodeProps.sign"></el-switch>
|
||||
<el-tooltip class="item" effect="dark" content="如果全局设置了需要签字,则此处不生效" placement="top-start">
|
||||
<i class="el-icon-question" style="margin-left: 10px; font-size: medium; color: #b0b0b1"></i>
|
||||
</el-tooltip>
|
||||
</el-form-item>
|
||||
<el-form-item label="⏱ 审批期限(为 0 则不生效)" prop="timeLimit">
|
||||
<!-- <el-form-item label="✍ 审批同意时是否需要签字" prop="text">-->
|
||||
<!-- <el-switch inactive-text="不用" active-text="需要" v-model="nodeProps.sign"></el-switch>-->
|
||||
<!-- <el-tooltip class="item" effect="dark" content="如果全局设置了需要签字,则此处不生效" placement="top-start">-->
|
||||
<!-- <i class="el-icon-question" style="margin-left: 10px; font-size: medium; color: #b0b0b1"></i>-->
|
||||
<!-- </el-tooltip>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="审批期限(为 0 则不生效)" prop="timeLimit">
|
||||
<el-input style="width: 180px;" placeholder="时长" type="number"
|
||||
v-model="nodeProps.timeLimit.timeout.value">
|
||||
<el-select style="width: 75px;" v-model="nodeProps.timeLimit.timeout.unit" slot="append" placeholder="请选择" filterable>
|
||||
@@ -122,54 +122,54 @@
|
||||
</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="🙅 如果审批被驳回 👇">
|
||||
<el-radio-group v-model="nodeProps.refuse.type">
|
||||
<el-radio label="TO_INITIAL">重新开始流程</el-radio>
|
||||
<el-radio label="TO_BEFORE">驳回到上级审批节点</el-radio>
|
||||
<el-radio label="TO_NODE">驳回到指定节点</el-radio>
|
||||
</el-radio-group>
|
||||
<div v-if="nodeProps.refuse.type === 'TO_NODE'">
|
||||
<span>指定节点:</span>
|
||||
<el-select style="margin-left: 10px; width: 150px;" placeholder="选择跳转步骤" size="small"
|
||||
v-model="nodeProps.refuse.target" filterable>
|
||||
<el-option v-for="(node, index) in nodeOptions" :key="index" :label="node.name"
|
||||
:value="node.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="自定义监听器">
|
||||
<div slot="label">
|
||||
<span style="margin-left: 20px">使用自定义监听器: </span>
|
||||
<!-- <el-switch v-model="config.listener.state" @change="getListener"></el-switch>-->
|
||||
</div>
|
||||
<div v-if="config.listener.state">
|
||||
<div slot="label">
|
||||
<span style="margin-right: 10px">设置监听器</span>
|
||||
<el-button type="primary" @click="addListener(config.listener.list)" link> + 添加</el-button>
|
||||
</div>
|
||||
<div v-for="(listen, index) in config.listener.list" :key="index">
|
||||
<el-input v-if="listen.isSys" placeholder="监听器名称" :disabled="true" size="small" style="width: 100px;"
|
||||
v-model="listen.listenerName"/>
|
||||
<el-input v-if="!listen.isSys" placeholder="监听器名称" size="small" style="width: 100px;"
|
||||
v-model="listen.listenerName"/>
|
||||
<el-radio-group size="small" style="margin: 0 5px;" @change="typeChange(listen)" v-model="listen.isSys">
|
||||
<el-radio-button :label="true">内置</el-radio-button>
|
||||
<el-radio-button :label="false">自定义</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-select v-if="listen.isSys" style="width: 180px;" v-model="listen.listenerValue" size="small"
|
||||
@change="listenerOptionChange(listen)"
|
||||
placeholder="请选择表单字段" filterable>
|
||||
<el-option v-for="option in listenerOption" :key="option.value" :label="option.label"
|
||||
:value="option.value"/>
|
||||
</el-select>
|
||||
<!-- <el-input v-if="listen.isSys" placeholder="请设置字段值" size="small" v-model="listen.listenerValue" style="width: 180px;"/>-->
|
||||
<el-button v-if="!listen.isSys" type="primary" size="small" @click="settingListener(listen)" link>设置</el-button>
|
||||
<el-button @click="delListener(config.listener.list, index)"
|
||||
class="el-icon-delete" type="primary"
|
||||
style="margin-left: 5px; color: #c75450;" link/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="🙅 如果审批被驳回 👇">-->
|
||||
<!-- <el-radio-group v-model="nodeProps.refuse.type">-->
|
||||
<!-- <el-radio label="TO_INITIAL">重新开始流程</el-radio>-->
|
||||
<!-- <el-radio label="TO_BEFORE">驳回到上级审批节点</el-radio>-->
|
||||
<!-- <el-radio label="TO_NODE">驳回到指定节点</el-radio>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- <div v-if="nodeProps.refuse.type === 'TO_NODE'">-->
|
||||
<!-- <span>指定节点:</span>-->
|
||||
<!-- <el-select style="margin-left: 10px; width: 150px;" placeholder="选择跳转步骤" size="small"-->
|
||||
<!-- v-model="nodeProps.refuse.target" filterable>-->
|
||||
<!-- <el-option v-for="(node, index) in nodeOptions" :key="index" :label="node.name"-->
|
||||
<!-- :value="node.id"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="自定义监听器">-->
|
||||
<!-- <div slot="label">-->
|
||||
<!-- <span style="margin-left: 20px">使用自定义监听器: </span>-->
|
||||
<!-- <!– <el-switch v-model="config.listener.state" @change="getListener"></el-switch>–>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div v-if="config.listener.state">-->
|
||||
<!-- <div slot="label">-->
|
||||
<!-- <span style="margin-right: 10px">设置监听器</span>-->
|
||||
<!-- <el-button type="primary" @click="addListener(config.listener.list)" link> + 添加</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div v-for="(listen, index) in config.listener.list" :key="index">-->
|
||||
<!-- <el-input v-if="listen.isSys" placeholder="监听器名称" :disabled="true" size="small" style="width: 100px;"-->
|
||||
<!-- v-model="listen.listenerName"/>-->
|
||||
<!-- <el-input v-if="!listen.isSys" placeholder="监听器名称" size="small" style="width: 100px;"-->
|
||||
<!-- v-model="listen.listenerName"/>-->
|
||||
<!-- <el-radio-group size="small" style="margin: 0 5px;" @change="typeChange(listen)" v-model="listen.isSys">-->
|
||||
<!-- <el-radio-button :label="true">内置</el-radio-button>-->
|
||||
<!-- <el-radio-button :label="false">自定义</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- <el-select v-if="listen.isSys" style="width: 180px;" v-model="listen.listenerValue" size="small"-->
|
||||
<!-- @change="listenerOptionChange(listen)"-->
|
||||
<!-- placeholder="请选择表单字段" filterable>-->
|
||||
<!-- <el-option v-for="option in listenerOption" :key="option.value" :label="option.label"-->
|
||||
<!-- :value="option.value"/>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- <!– <el-input v-if="listen.isSys" placeholder="请设置字段值" size="small" v-model="listen.listenerValue" style="width: 180px;"/>–>-->
|
||||
<!-- <el-button v-if="!listen.isSys" type="primary" size="small" @click="settingListener(listen)" link>设置</el-button>-->
|
||||
<!-- <el-button @click="delListener(config.listener.list, index)"-->
|
||||
<!-- class="el-icon-delete" type="primary"-->
|
||||
<!-- style="margin-left: 5px; color: #c75450;" link/>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<!--
|
||||
<el-dialog custom-class="custom-dialog" class="border" width="600px" title="定义监听器设置"
|
||||
@@ -231,11 +231,12 @@ const orgPickerSelected = ref([])
|
||||
const approvalTypes = reactive([
|
||||
{name: "指定人员", type: "ASSIGN_USER"},
|
||||
{name: "发起人自选", type: "SELF_SELECT"},
|
||||
{name: "连续多级主管", type: "LEADER_TOP"},
|
||||
// {name: "连续多级主管", type: "LEADER_TOP"},
|
||||
{name: "主管", type: "LEADER"},
|
||||
{name: "角色", type: "ROLE"},
|
||||
{name: "发起人自己", type: "SELF"},
|
||||
{name: "表单内联系人", type: "FORM_USER"}
|
||||
// {name: "角色", type: "ROLE"},
|
||||
// {name: "发起人自己", type: "SELF"},
|
||||
// {name: "表单内联系人", type: "FORM_USER"},
|
||||
{name: "矩阵审批", type: "MATRIX_APPROVAL"},
|
||||
])
|
||||
const listenerOption = ref([])
|
||||
const selectListen = ref({})
|
||||
|
||||
@@ -121,7 +121,7 @@ const users = ref([])
|
||||
// const orgType = ref('user')
|
||||
const showOrgSelect = ref(false)
|
||||
const groupNames = ref(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'])
|
||||
const supportTypes = ref([ValueType.number, ValueType.string, ValueType.date, ValueType.dateRange, ValueType.dept, ValueType.user])
|
||||
const supportTypes = ref([ValueType.number, ValueType.string])
|
||||
const explains = ref(
|
||||
[
|
||||
{label: '等于', value: '='},
|
||||
@@ -195,7 +195,7 @@ const selectUser = (value, orgType) => {
|
||||
const filterConditionMosr = (list) => {
|
||||
processFromPerms.value.forEach((item) => {
|
||||
console.log(item)
|
||||
if (item.required){
|
||||
if (item.required && supportTypes.value.indexOf(item.valueType) > -1){
|
||||
list.push({title: item.title, id: item.id, valueType: item.valueType})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -18,24 +18,24 @@
|
||||
</template>
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
<el-form-item label="条件组关系" label-width="150px">
|
||||
<el-switch v-model="selectedNode.props.groupsType" active-color="#409EFF"
|
||||
inactive-color="#c1c1c1" active-value="AND" inactive-value="OR"
|
||||
active-text="且" inactive-text="或">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="条件组表达式">
|
||||
<el-input v-model="config.expression" placeholder="输入条件组关系表达式 &为与,|为或"/>
|
||||
<span class="item-desc">使用表达式构建复杂逻辑,例如: (A & B) | C</span>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="条件组关系" label-width="150px">-->
|
||||
<!-- <el-switch v-model="selectedNode.props.groupsType" active-color="#409EFF"-->
|
||||
<!-- inactive-color="#c1c1c1" active-value="AND" inactive-value="OR"-->
|
||||
<!-- active-text="且" inactive-text="或">-->
|
||||
<!-- </el-switch>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="条件组表达式">-->
|
||||
<!-- <el-input v-model="config.expression" placeholder="输入条件组关系表达式 &为与,|为或"/>-->
|
||||
<!-- <span class="item-desc">使用表达式构建复杂逻辑,例如: (A & B) | C</span>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<div>
|
||||
<el-button type="primary" icon="Plus" style="margin: 0 15px 15px 0" round
|
||||
@click="addConditionGroup">
|
||||
添加条件组
|
||||
</el-button>
|
||||
<span class="item-desc">只有必填选项才能作为审批条件</span>
|
||||
</div>
|
||||
<!-- <div>-->
|
||||
<!-- <el-button type="primary" icon="Plus" style="margin: 0 15px 15px 0" round-->
|
||||
<!-- @click="addConditionGroup">-->
|
||||
<!-- 添加条件组-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <span class="item-desc">只有必填选项才能作为审批条件</span>-->
|
||||
<!-- </div>-->
|
||||
<group-item/>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ const visible = ref(false)
|
||||
const name = computed(() => {
|
||||
switch (processStore.getSelectedNode().type) {
|
||||
case 'ROOT':
|
||||
return '设置发起人';
|
||||
// return '设置发起人';
|
||||
return '节点设置';
|
||||
case 'APPROVAL':
|
||||
return '设置审批人';
|
||||
case 'CC':
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div>
|
||||
<p class="desc">选择能发起该审批的人员/部门,不选则默认开放给所有人</p>
|
||||
<el-button size="mini" @click="selectOrg" icon="el-icon-plus" type="primary" round>请选择</el-button>
|
||||
<org-items v-model="select"/>
|
||||
<org-picker title="请选择可发起本审批的人员/部门" multiple ref="orgPicker" :selected="select" @ok="selected"/>
|
||||
</div>
|
||||
<!-- <div>-->
|
||||
<!-- <p class="desc">选择能发起该审批的人员/部门,不选则默认开放给所有人</p>-->
|
||||
<!-- <el-button size="mini" @click="selectOrg" icon="el-icon-plus" type="primary" round>请选择</el-button>-->
|
||||
<!-- <org-items v-model="select"/>-->
|
||||
<!-- <org-picker title="请选择可发起本审批的人员/部门" multiple ref="orgPicker" :selected="select" @ok="selected"/>-->
|
||||
<!-- </div>-->
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import Node from './Node.vue'
|
||||
import {computed, defineExpose} from 'vue'
|
||||
import {Stamp} from '@element-plus/icons-vue'
|
||||
|
||||
const emit = defineEmits(['insertNode', 'selected', 'delNode'])
|
||||
const props = defineProps({
|
||||
config: {
|
||||
@@ -80,7 +81,7 @@ const content = computed(() => {
|
||||
if (text && text.title) {
|
||||
return `表单(${text.title})内的人员`
|
||||
} else {
|
||||
return '该表单已被移除😥'
|
||||
return '该表单已被移除'
|
||||
}
|
||||
}
|
||||
case "ROLE":
|
||||
@@ -91,8 +92,10 @@ const content = computed(() => {
|
||||
} else {
|
||||
return '指定角色(未设置)'
|
||||
}
|
||||
case "MATRIX_APPROVAL":
|
||||
return '矩阵审批'
|
||||
default:
|
||||
return '未知设置项😥'
|
||||
return '未知设置项'
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user