feat : 抄送和if判断

This commit is contained in:
clay
2024-08-02 19:36:37 +08:00
parent 36bb362fd7
commit 5111897d13
6 changed files with 130 additions and 91 deletions

View File

@@ -1,46 +1,51 @@
<template>
<div v-for="(group, index) in selectedNode.props.groups" :key="index + '_g'" class="group">
<div class="group-header">
<!-- <span class="group-name">条件组 {{ groupNames[index] }}</span>-->
<span class="group-name">条件</span>
<div class="group-cp">
<!-- <span>组内条件关系</span>-->
<!-- <el-switch v-model="group.groupType" active-color="#409EFF"-->
<!-- inactive-color="#c1c1c1" active-value="AND" inactive-value="OR"-->
<!-- active-text="且" inactive-text="或"/>-->
</div>
<!-- <div>-->
<div class="group-operation">
<el-popover placement="bottom" title="选择审批条件" width="300" trigger="click">
<template #reference>
<el-icon :size="18" class="group-icon">
<Plus/>
</el-icon>
</template>
<div>以下条件将决定具体的审批流程</div>
<el-checkbox-group v-model="group.cids" value-key="id">
<el-checkbox :label="condition.id" v-for="(condition, cindex) in conditionList" :key="condition.id"
@change="conditionChange(cindex, group)">
{{ condition.title }}
</el-checkbox>
</el-checkbox-group>
</el-popover>
<!-- <el-icon :size="18" class="group-icon" @click="delGroup(index)">-->
<!-- <Close/>-->
<!-- </el-icon>-->
<!-- </div>-->
<!-- <div>-->
<div v-for="(group, index) in selectedNode.props.groups" :key="index + '_g'" class="group">
<div class="group-header">
<!-- <span class="group-name">条件组 {{ groupNames[index] }}</span>-->
<span class="group-name">条件</span>
<div class="group-cp">
<span>组内条件关系</span>
<el-switch v-model="group.groupType" active-color="#409EFF"
inactive-color="#c1c1c1" active-value="AND" inactive-value="OR"
active-text="" inactive-text=""/>
</div>
<div class="group-operation">
<el-popover placement="bottom" title="选择审批条件" width="300" trigger="click">
<template #reference>
<el-icon :size="18" class="group-icon">
<Plus/>
</el-icon>
</template>
<div>以下条件将决定具体的审批流程</div>
<el-checkbox-group v-model="group.cids" value-key="id">
<el-checkbox :label="condition.id" v-for="(condition, cindex) in conditionList" :key="condition.id"
@change="conditionChange(cindex, group)">
{{ condition.title }}
</el-checkbox>
</el-checkbox-group>
</el-popover>
<!-- <el-icon :size="18" class="group-icon" @click="delGroup(index)">-->
<!-- <Close/>-->
<!-- </el-icon>-->
</div>
</div>
</div>
<div class="group-content">
<p v-if="group.conditions.length === 0">点击右上角 + 添加条件</p>
<div v-else>
<el-form ref="condition-form">
<!--构建表达式-->
<el-form-item v-for="(condition, cindex) in group.conditions" :key="condition.id + '_' + cindex">
<ellipsis slot="label" hover-tip :content="condition.title"/>
<span v-if="condition.valueType === ValueType.string">
<div class="group-content">
<p v-if="group.conditions.length === 0">点击右上角 + 添加条件</p>
<div v-else>
<el-form ref="condition-form">
<!--构建表达式-->
<el-form-item v-for="(condition, cindex) in group.conditions" :key="condition.id + '_' + cindex">
<ellipsis slot="label" hover-tip :content="condition.title"/>
<span v-if="condition.valueType === ValueType.string">
<el-select placeholder="判断符" style="width: 120px;" v-model="condition.compare"
@change="condition.value = []" filterable clearable>
<el-option label="等于" value="="></el-option>
<el-option label="不等于" value="!="></el-option>
<el-option label="包含在" value="IN"></el-option>
</el-select>
<span v-if="isSelect(condition.id)" style="margin-left: 10px">
@@ -56,13 +61,14 @@
</el-select>
</span>
<span v-else style="margin-left: 10px">
<el-input v-if="condition.compare === '='" style="width: 280px;" placeholder="输入比较值"
<el-input v-if="condition.compare === '=' ||condition.compare === '!='" style="width: 280px;"
placeholder="输入比较值"
v-model="condition.value[0]"/>
<el-select v-else style="width: 280px;" multiple clearable filterable allow-create size="small"
v-model="condition.value" placeholder="输入可能包含的值"></el-select>
</span>
</span>
<span v-else-if="condition.valueType === ValueType.number">
<span v-else-if="condition.valueType === ValueType.number">
<el-select size="small" placeholder="判断符" style="width: 120px;" v-model="condition.compare" filterable
clearable>
<el-option :label="exp.label" :value="exp.value" :key="exp.value" v-for="exp in explains"></el-option>
@@ -83,7 +89,7 @@
</span>
</span>
</span>
<span v-else-if="condition.valueType === ValueType.company">
<span v-else-if="condition.valueType === ValueType.company">
<span class="item-desc" style="margin-right: 20px">公司</span>
<el-select placeholder="判断符" style="width: 120px;" v-model="condition.compare" filterable clearable>
<el-option label="等于" value="="></el-option>
@@ -99,14 +105,18 @@
style="width: 240px"
/>
</span>
<el-icon class="delete-icon" @click="delSubCondition(group, cindex)">
<Minus/>
</el-icon>
</el-form-item>
</el-form>
<el-icon class="delete-icon" @click="delSubCondition(group, cindex)">
<Minus/>
</el-icon>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
<!-- </div>-->
<!-- <div>-->
<!-- <el-input placeholder="请输入表达式"></el-input>-->
<!-- </div>-->
</template>
<script setup>
@@ -124,7 +134,7 @@ const companyList = 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.company])
const supportTypes = ref([ValueType.number, ValueType.string, ValueType.company])
const explains = ref(
[
{label: '等于', value: '='},
@@ -190,7 +200,6 @@ const conditionValType = (type) => {
}
const filterConditionMosr = (list) => {
console.log(processFromPerms.value)
processFromPerms.value.forEach((item) => {
// console.log(item)
if (item.required && supportTypes.value.indexOf(item.valueType) > -1) {
@@ -237,8 +246,8 @@ const delSubCondition = (group, index) => {
const conditionChange = (index, group) => {
//条件组进行发生了改变
//判断新增的
group.cids.forEach(cid => {
if (0 > group.conditions.findIndex(cd => cd.id === cid)) {
group.cids?.forEach(cid => {
if (0 > group.conditions?.findIndex(cd => cd.id === cid)) {
//新增条件
let condition = {...conditionList.value[index]}
condition.compare = '';