From 6165429964c79c831b85570d8bac6b67775846b0 Mon Sep 17 00:00:00 2001 From: whyczyk <525500596@qq.com> Date: 星期五, 05 十一月 2021 15:14:12 +0800 Subject: [PATCH] 流程节点管理及动作管理提交 --- src/assets/js/constants.js | 11 +++ src/pages/manage/node/nodeManage.vue | 20 +++++- src/pages/manage/node/addNode.vue | 128 ++++++++++++++++++++++++++++++++++++++---- src/pages/manage/js/api.js | 16 +++++ 4 files changed, 157 insertions(+), 18 deletions(-) diff --git a/src/assets/js/constants.js b/src/assets/js/constants.js index 50ac6fb..8b85fd1 100644 --- a/src/assets/js/constants.js +++ b/src/assets/js/constants.js @@ -9,3 +9,14 @@ 3: '涓夌骇', } +export const actionType = { + '0': '娲惧彂', + '1': '杞淳', + '2': '绉讳氦', + '3': '鍒嗘淳', + '4': '椹冲洖', + '5': '鍥炲', + '6': '澶勭悊骞跺綊妗�', + '7': '澶勭悊鍒嗘淳', +} + diff --git a/src/pages/manage/js/api.js b/src/pages/manage/js/api.js index 2a7cd32..fc93e58 100644 --- a/src/pages/manage/js/api.js +++ b/src/pages/manage/js/api.js @@ -31,4 +31,20 @@ url: '/workflowProperty', data: data, }); +} +//鏌ヨ鑺傜偣涓嬪姩浣� +export const getActionTypeList = (params) => { + return axios({ + method: 'GET', + url: '/workflowAction/actionTypeList', + params: params, + }); +} +//淇敼鑺傜偣涓嬪姩浣� +export const updateAction = (data) => { + return axios({ + method: 'PUT', + url: '/workflowAction', + data: data, + }); } \ No newline at end of file diff --git a/src/pages/manage/node/addNode.vue b/src/pages/manage/node/addNode.vue index 03d3f14..31b392e 100644 --- a/src/pages/manage/node/addNode.vue +++ b/src/pages/manage/node/addNode.vue @@ -2,7 +2,36 @@ <div class="main"> <div class="contain"> <div class="title">{{title}}</div> - <el-form ref="form" :model="form" label-width="10em"> + <!-- 鑺傜偣鍔ㄤ綔绠$悊 --> + <el-form ref="form" :model="form" label-width="10em" v-if="pageType==3"> + <el-form-item label="鑺傜偣鍚嶇О:"> + <el-input v-model="form.linkName" placeholder="璇疯緭鍏ヨ妭鐐瑰悕绉�" disabled></el-input> + </el-form-item> + <el-form-item label="鑺傜偣灞傜骇:"> + <el-select v-model="form.linkType" placeholder="璇烽�夋嫨鑺傜偣灞傜骇" disabled> + <el-option :label="value" :value="key" v-for="(value,key,index) in linkLevel" :key="index"></el-option> + </el-select> + </el-form-item> + <el-form-item label="瑙掕壊:" v-for="(item,i) in form.roleList" :key="i"> + <el-input v-model="item.name" style="margin-right:8px" placeholder="璇疯緭鍏ヨ鑹插悕绉�" disabled></el-input> + <el-input v-model="item.type" style="margin-right:8px" type="number" placeholder="璇疯緭鍏ヨ鑹茬紪鐮�" disabled></el-input> + <el-checkbox-group v-model="item.actiontype" v-if="item.actiontype"> + <el-checkbox :label="key" v-for="(value,key,index) in actionType" :key="index">{{value}}</el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="鎵�灞炲伐鍗曠被鍨�:"> + <el-select v-model="form.type" placeholder="璇烽�夋嫨鎵�灞炲伐鍗曠被鍨�" disabled> + <el-option :label="value" :value="key" v-for="(value,key,index) in workType" :key="index"></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="onSubmit" v-if="pageType==1">纭鎻愪氦</el-button> + <el-button type="primary" @click="onSubmit" v-else-if="pageType==2">纭淇敼</el-button> + <el-button type="primary" @click="onSubmit" v-else-if="pageType==3">纭淇敼</el-button> + </el-form-item> + </el-form> + <!-- 鑺傜偣绠$悊 --> + <el-form ref="form" :model="form" label-width="10em" v-else> <el-form-item label="鑺傜偣鍚嶇О:"> <el-input v-model="form.linkName" placeholder="璇疯緭鍏ヨ妭鐐瑰悕绉�"></el-input> </el-form-item> @@ -14,7 +43,7 @@ <el-form-item label="鑺傜偣鎵�鍚鑹�:"> <el-button type="primary" size="mini" @click="addRole">娣诲姞瑙掕壊</el-button> </el-form-item> - <el-form-item label="瑙掕壊" v-for="(item,i) in form.roleList" :key="i"> + <el-form-item label="瑙掕壊:" v-for="(item,i) in form.roleList" :key="i"> <el-input v-model="item.name" style="margin-right:8px" placeholder="璇疯緭鍏ヨ鑹插悕绉�"></el-input> <el-input v-model="item.type" style="margin-right:8px" type="number" placeholder="璇疯緭鍏ヨ鑹茬紪鐮�"></el-input> <i class="el-icon-delete delIcon" @click="removeList(i)"></i> @@ -26,7 +55,8 @@ </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit" v-if="pageType==1">纭鎻愪氦</el-button> - <el-button type="primary" @click="onSubmit" v-else>纭淇敼</el-button> + <el-button type="primary" @click="onSubmit" v-else-if="pageType==2">纭淇敼</el-button> + <el-button type="primary" @click="onSubmit" v-else-if="pageType==3">纭淇敼</el-button> </el-form-item> </el-form> </div> @@ -36,11 +66,14 @@ <script> import { addWorkflowProperty, - editWorkflowProperty + editWorkflowProperty, + getActionTypeList, + updateAction, } from '../js/api'; import { workType, - linkLevel + linkLevel, + actionType, } from '@/assets/js/constants'; export default { name: "", @@ -49,6 +82,7 @@ return { workType, linkLevel, + actionType, title: '鏂板缓娴佺▼鑺傜偣', form: { linkName: "", @@ -56,7 +90,7 @@ roleList: [], type: '', }, - pageType: 1 + pageType: 1, }; }, components: {}, @@ -73,8 +107,10 @@ onSubmit() { if (this.pageType == 1) { this.addFrom() - } else { + } else if (this.pageType == 2) { this.editFrom() + } else if (this.pageType == 3) { + this.editAction() } }, editFrom() { @@ -107,21 +143,87 @@ console.log(err) }); }, + editAction() { + let postData = [] + this.form.roleList.map(item => { + let action = JSON.parse(JSON.stringify(item)).actiontype; + let actionTypeList = action.map(item => { + return Number(item) + }) + let obj = { + actionTypeList: actionTypeList, + linkType: Number(this.form.linkType), + roleType: Number(item.type), + type: Number(this.form.type), + } + postData.push(obj) + }) + updateAction(postData).then((res) => { + if (res.data.code == 1) { + this.$message({ + message: '淇敼鎴愬姛!', + type: 'success' + }); + setTimeout(() => { + this.$router.go(-1) + }, 1000) + } + }).catch((err) => { + console.log(err) + }); + }, + loadAction() { + let postData = { + linkType: this.form.linkType, + type: this.form.type, + } + getActionTypeList(postData).then((res) => { + if (res.data.code == 1) { + let resData = res.data.data; + console.log(this.form.roleList) + this.form.roleList.map(item => { + resData.map(jtem => { + if (item.type == jtem.roleType) { + item.actiontype.push(jtem.actionType + '') + } + }) + }) + } + }).catch((err) => { + console.log(err) + }); + }, }, mounted() { let postData = JSON.parse(this.$route.query.data); - console.log(postData) - if (postData.linkName) { - this.title = '缂栬緫娴佺▼鑺傜偣' - this.pageType = 2; + if (postData.action) { + this.title = '鑺傜偣鍔ㄤ綔绠$悊' + this.pageType = 3; this.form.linkName = postData.linkName; this.form.linkType = postData.linkType + ''; this.form.roleList = postData.roleList; this.form.type = postData.type + ''; + this.form.roleList.map(item => { + this.$set(item, 'actiontype', []) + }) + this.$nextTick(() => { + this.loadAction() + this.$forceUpdate() + }) + } else { - this.title = '鏂板缓娴佺▼鑺傜偣' - this.pageType = 1 + if (postData.linkName) { + this.title = '缂栬緫娴佺▼鑺傜偣' + this.pageType = 2; + this.form.linkName = postData.linkName; + this.form.linkType = postData.linkType + ''; + this.form.roleList = postData.roleList; + this.form.type = postData.type + ''; + } else { + this.title = '鏂板缓娴佺▼鑺傜偣' + this.pageType = 1 + } } }, }; diff --git a/src/pages/manage/node/nodeManage.vue b/src/pages/manage/node/nodeManage.vue index a8190f7..837a4ab 100644 --- a/src/pages/manage/node/nodeManage.vue +++ b/src/pages/manage/node/nodeManage.vue @@ -14,6 +14,7 @@ <el-table-column fixed="right" label="鎿嶄綔"> <template slot-scope="scope"> <el-button type="text" style="margin-right:8px;" @click="toAddPage(scope.row)">缂栬緫</el-button> + <el-button type="text" style="margin-right:8px;" @click="toAddPage(scope.row,true)">鑺傜偣鍔ㄤ綔绠$悊</el-button> <el-popconfirm title="纭畾鍒犻櫎璇ヨ妭鐐瑰悧锛�" @confirm="remove(scope.row)"> <el-button slot="reference" type="text">鍒犻櫎</el-button> </el-popconfirm> @@ -102,17 +103,26 @@ console.log(err) }); }, - toAddPage(data) { - if (data) { + toAddPage(data, action) { + if (action) { + data.action = true; this.$router.push({ path: '/manage/addNode', query: { data: JSON.stringify(data) } }) } else { - this.$router.push({ - path: '/manage/addNode', - }) + if (data) { + this.$router.push({ + path: '/manage/addNode', + query: { data: JSON.stringify(data) } + }) + } else { + this.$router.push({ + path: '/manage/addNode', + }) + } } + } } } -- Gitblit v1.9.1