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