|
@@ -12,7 +12,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<add-node v-model="nodeConfig.childNode"></add-node>
|
|
|
- <el-drawer v-model="drawer" title="审批人设置" destroy-on-close append-to-body :size="500">
|
|
|
+ <el-drawer v-model="drawer" title="审批人设置" destroy-on-close append-to-body :size="600" class="aDrawer">
|
|
|
<template #header>
|
|
|
<div class="node-wrap-drawer__title">
|
|
|
<label v-if="!isEditTitle" @click="editTitle"
|
|
@@ -22,76 +22,131 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<el-container>
|
|
|
- <el-main style="padding: 0 20px 20px 20px">
|
|
|
- <el-form label-position="top">
|
|
|
- <el-form-item label="审批人员类型">
|
|
|
- <el-select v-model="form.setType">
|
|
|
- <el-option :value="1" label="指定成员"></el-option>
|
|
|
- <el-option :value="2" label="主管"></el-option>
|
|
|
- <el-option :value="3" label="角色"></el-option>
|
|
|
- <el-option :value="4" label="发起人自选"></el-option>
|
|
|
- <el-option :value="5" label="发起人自己"></el-option>
|
|
|
- <el-option :value="7" label="连续多级主管"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-main>
|
|
|
+ <el-form label-position="top" class="aForm">
|
|
|
+ <el-form-item label="审批类型" style="margin-bottom: 8px">
|
|
|
+ <el-radio-group v-model="form.types">
|
|
|
+ <el-radio label="1">人工审批</el-radio>
|
|
|
+ <el-radio label="2">自动通过</el-radio>
|
|
|
+ <el-radio label="3">自动拒绝</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
+ </el-form>
|
|
|
|
|
|
- <el-form-item v-if="form.setType == 1" label="选择成员">
|
|
|
- <el-button type="primary" icon="el-icon-plus" round @click="selectHandle(1, form.nodeUserList)">选择人员</el-button>
|
|
|
- <div class="tags-list">
|
|
|
- <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)">{{ user.name }}</el-tag>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
+ <div class="self-radio-group">
|
|
|
+ <el-radio-group v-model="radio1">
|
|
|
+ <el-radio-button label="1">设置审批人</el-radio-button>
|
|
|
+ <el-radio-button label="2">表单权限</el-radio-button>
|
|
|
+ <el-radio-button label="3">操作权限</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
|
|
|
- <el-form-item v-if="form.setType == 2" label="指定主管">
|
|
|
- 发起人的第 <el-input-number v-model="form.examineLevel" :min="1" /> 级主管
|
|
|
- </el-form-item>
|
|
|
+ <div v-show="form.types === '1'">
|
|
|
+ <!-- 设置审批人 -->
|
|
|
+ <el-form v-show="radio1 == 1" label-position="top" class="aForm">
|
|
|
+ <el-form-item label="">
|
|
|
+ <div class="item-wrap approver" style="width: 100%">
|
|
|
+ <div class="approver-list">
|
|
|
+ <div class="approver-wrapper">
|
|
|
+ <div class="header">
|
|
|
+ <span>审批人员类型</span>
|
|
|
+ </div>
|
|
|
+ <div class="main-content">
|
|
|
+ <el-radio-group v-model="form.setType" class="main-content-radio">
|
|
|
+ <el-radio :label="Number(1)">指定成员</el-radio>
|
|
|
+ <el-radio :label="Number(2)">主管</el-radio>
|
|
|
+ <el-radio :label="Number(3)">角色</el-radio>
|
|
|
+ <el-radio :label="Number(4)">发起人自选</el-radio>
|
|
|
+ <el-radio :label="Number(5)">发起人自己</el-radio>
|
|
|
+ <el-radio :label="Number(6)">连续多级主管</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="form.setType == 3" label="选择角色">
|
|
|
- <el-button type="primary" icon="el-icon-plus" round @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button>
|
|
|
- <div class="tags-list">
|
|
|
- <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" type="info" closable @close="delRole(index)">{{
|
|
|
- role.name
|
|
|
- }}</el-tag>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item v-if="form.setType == 1" label="选择成员">
|
|
|
+ <el-button type="primary" :icon="Plus" round @click="selectHandle(1, form.nodeUserList)">选择人员</el-button>
|
|
|
+ <div class="tags-list">
|
|
|
+ <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)">{{ user.name }}</el-tag>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="form.setType == 4" label="发起人自选">
|
|
|
- <el-radio-group v-model="form.selectMode">
|
|
|
- <el-radio :label="1">自选一个人</el-radio>
|
|
|
- <el-radio :label="2">自选多个人</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item v-if="form.setType == 2" label="指定主管">
|
|
|
+ 发起人的第 <el-input-number v-model="form.examineLevel" :min="1" /> 级主管
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="form.setType == 7" label="连续主管审批终点">
|
|
|
- <el-radio-group v-model="form.directorMode">
|
|
|
- <el-radio :label="0">直到最上层主管</el-radio>
|
|
|
- <el-radio :label="1">自定义审批终点</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <p v-if="form.directorMode == 1">直到发起人的第 <el-input-number v-model="form.directorLevel" :min="1" /> 级主管</p>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item v-if="form.setType == 3" label="选择角色">
|
|
|
+ <el-button type="primary" :icon="Plus" round @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button>
|
|
|
+ <div class="tags-list">
|
|
|
+ <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" type="info" closable @close="delRole(index)">{{
|
|
|
+ role.name
|
|
|
+ }}</el-tag>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-divider></el-divider>
|
|
|
- <el-form-item label="">
|
|
|
- <el-checkbox v-model="form.termAuto" label="超时自动审批"></el-checkbox>
|
|
|
- </el-form-item>
|
|
|
- <template v-if="form.termAuto">
|
|
|
- <el-form-item label="审批期限(为 0 则不生效)"> <el-input-number v-model="form.term" :min="0" /> 小时 </el-form-item>
|
|
|
- <el-form-item label="审批期限超时后执行">
|
|
|
- <el-radio-group v-model="form.termMode">
|
|
|
- <el-radio :label="0">自动通过</el-radio>
|
|
|
- <el-radio :label="1">自动拒绝</el-radio>
|
|
|
+ <el-form-item v-if="form.setType == 4" label="发起人自选">
|
|
|
+ <el-radio-group v-model="form.selectMode">
|
|
|
+ <el-radio :label="1">自选一个人</el-radio>
|
|
|
+ <el-radio :label="2">自选多个人</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- </template>
|
|
|
- <el-divider></el-divider>
|
|
|
- <el-form-item label="多人审批时审批方式">
|
|
|
- <el-radio-group v-model="form.examineMode">
|
|
|
- <p style="width: 100%"><el-radio :label="1">按顺序依次审批</el-radio></p>
|
|
|
- <p style="width: 100%"><el-radio :label="2">会签 (可同时审批,每个人必须审批通过)</el-radio></p>
|
|
|
- <p style="width: 100%"><el-radio :label="3">或签 (有一人审批通过即可)</el-radio></p>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
+
|
|
|
+ <el-form-item v-if="form.setType == 7" label="连续主管审批终点">
|
|
|
+ <el-radio-group v-model="form.directorMode">
|
|
|
+ <el-radio :label="0">直到最上层主管</el-radio>
|
|
|
+ <el-radio :label="1">自定义审批终点</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <p v-if="form.directorMode == 1">直到发起人的第 <el-input-number v-model="form.directorLevel" :min="1" /> 级主管</p>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-form-item label="">
|
|
|
+ <el-checkbox v-model="form.termAuto" label="超时自动审批"></el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ <template v-if="form.termAuto">
|
|
|
+ <el-form-item label="审批期限(为 0 则不生效)"> <el-input-number v-model="form.term" :min="0" /> 小时 </el-form-item>
|
|
|
+ <el-form-item label="审批期限超时后执行">
|
|
|
+ <el-radio-group v-model="form.termMode">
|
|
|
+ <el-radio :label="0">自动通过</el-radio>
|
|
|
+ <el-radio :label="1">自动拒绝</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-form-item label="多人审批时审批方式">
|
|
|
+ <el-radio-group v-model="form.examineMode">
|
|
|
+ <p style="width: 100%"><el-radio :label="1">按顺序依次审批</el-radio></p>
|
|
|
+ <p style="width: 100%"><el-radio :label="2">会签 (可同时审批,每个人必须审批通过)</el-radio></p>
|
|
|
+ <p style="width: 100%"><el-radio :label="3">或签 (有一人审批通过即可)</el-radio></p>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <!-- 表单设置 -->
|
|
|
+ <div v-show="radio1 == 2">
|
|
|
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
|
|
|
+ <el-table-column type="selection" width="250" align="center" />
|
|
|
+ <el-table-column property="name" label="表单字段" align="center" />
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 操作权限 -->
|
|
|
+ <el-form v-show="radio1 == 3" label-position="top" class="aForm">
|
|
|
+ <el-form-item label="" style="margin-bottom: 28px">
|
|
|
+ <div style="display: flex; flex-direction: column">
|
|
|
+ <el-checkbox label="允许转交" />
|
|
|
+ <el-checkbox label="允许加签/减签" />
|
|
|
+ <el-checkbox label="允许回退" />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="提示: ">
|
|
|
+ <div><el-text type="primary">*</el-text> 若审批人设置为连续多级上级、连续多级部门负责人时,允许的加签 / 减签不能生效。</div>
|
|
|
+ <div><el-text type="primary">*</el-text> 若多人审批方式为依次审批时,允许的加签 / 减签不能生效。</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
</el-main>
|
|
|
<el-footer>
|
|
|
<el-button type="primary" @click="save">保存</el-button>
|
|
@@ -104,6 +159,7 @@
|
|
|
|
|
|
<script>
|
|
|
import addNode from './addNode'
|
|
|
+import { Plus } from '@element-plus/icons-vue'
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -116,9 +172,31 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
nodeConfig: {},
|
|
|
- drawer: false,
|
|
|
+ drawer: true,
|
|
|
isEditTitle: false,
|
|
|
- form: {}
|
|
|
+ form: {
|
|
|
+ types: '1'
|
|
|
+ },
|
|
|
+ radio1: '设置审批人',
|
|
|
+ tableData: [
|
|
|
+ {
|
|
|
+ name: '单行文本'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '多行文本'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '提示文字'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '时间选择'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ Plus() {
|
|
|
+ return Plus
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -133,6 +211,7 @@ export default {
|
|
|
show() {
|
|
|
this.form = {}
|
|
|
this.form = JSON.parse(JSON.stringify(this.nodeConfig))
|
|
|
+ this.form.types = '1'
|
|
|
this.drawer = true
|
|
|
},
|
|
|
editTitle() {
|
|
@@ -189,4 +268,67 @@ export default {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style></style>
|
|
|
+<style lang="scss">
|
|
|
+// 审批类型
|
|
|
+.self-radio-group {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ .el-radio-group {
|
|
|
+ //padding: 1.5px;
|
|
|
+ width: 100%;
|
|
|
+ line-height: 30px;
|
|
|
+ background-color: var(--el-fill-color-darker);
|
|
|
+ border-radius: var(--el-border-radius-small);
|
|
|
+ .el-radio-button {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .el-radio-button__inner {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 审批人员类型
|
|
|
+.approver-wrapper {
|
|
|
+ border: 1px solid #e4e5e7;
|
|
|
+ border-radius: 6px;
|
|
|
+ overflow: hidden;
|
|
|
+ .header {
|
|
|
+ padding: 0 16px;
|
|
|
+ background: #f5f6f7;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ span {
|
|
|
+ color: #1f2329;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .main-content-radio {
|
|
|
+ padding: 10px 16px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ &.el-radio-group {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ .el-radio {
|
|
|
+ width: 33.33%;
|
|
|
+ margin-right: 0px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 表单表头样式
|
|
|
+.aForm {
|
|
|
+ &.el-form {
|
|
|
+ .el-form-item {
|
|
|
+ .el-form-item__label {
|
|
|
+ color: #1f2329;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|