From dcf9c9e0410fe1186239e3f8d6f7bdc789c08010 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期三, 05 六月 2024 18:00:39 +0800
Subject: [PATCH] 1

---
 src/views/configuration/custom/planSettings.vue |  169 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 149 insertions(+), 20 deletions(-)

diff --git a/src/views/configuration/custom/planSettings.vue b/src/views/configuration/custom/planSettings.vue
index 368eb9a..a1673a6 100644
--- a/src/views/configuration/custom/planSettings.vue
+++ b/src/views/configuration/custom/planSettings.vue
@@ -2,81 +2,141 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-03-26 10:28:33
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-29 17:32:55
+ * @LastEditTime: 2024-05-30 18:17:23
  * @FilePath: /smart-web/src/views/master/person/main/index.vue
  * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
 <template>
 	<div class="aposcope-main">
-		<div class="header">
+		<div class="header" v-if="$route.query.type == 1">
 			<div class="title">璁″垝鏄剧ず璁剧疆</div>
 			<div class="type">
 				<div class="item last" @click="openPlan">鏂板缓璁″垝绫诲瀷妯$増</div>
-				<div :class="{item:true, activeTab:index == 0?true:false}" v-for="(item,index) in planData">{{item.templateName}}<span>...</span></div>
+				<div :class="{item:true, activeTab: item.active}" v-for="(item,index) in planData" @click="changePlanData(item,index)">
+					<span style="margin-right: 12px;cursor: pointer;">{{item.templateName}}</span>
+					<el-popover placement="right-start" :width="30" trigger="click" :hide-after="0" :show-after="0">
+						<template #reference>...</template>
+						<template #default>
+							<span class="popvoer-title" @click="table_edit(item,index)">缂栬緫</span>
+							<span  class="popvoer-title" style="margin-left: 12px" v-if="index != 0" @click="del_tab(item)">鍒犻櫎</span>
+						</template>
+					</el-popover>
+				</div>
 			</div>
 		</div>
-	    <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+	    <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick">
 			<el-tab-pane label="鏂板缓椤佃缃�" name="first">
 				<div>
-					<div class="add-field">+ 娣诲姞瀛楁</div>
+					<div class="add-field" @click="openSelect">+ 娣诲姞瀛楁</div>
 					<div class="field-title">鍩虹瀛楁</div>
 					<el-table ref="multipleTableRef" :data="tableData0" border style="width: 100%" class="multipleTableRef">
 						<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
 						<el-table-column prop="fieldDescription" label="鎻愮ず鏂囧瓧"></el-table-column>
 						<el-table-column prop="defaultValue" label="榛樿鍊�"></el-table-column>
-						<el-table-column prop="mustField" label="鏄惁蹇呭~"></el-table-column>
+						<el-table-column prop="mustField" label="鏄惁蹇呭~">
+							<template #default="scope">
+								<span>{{scope.row.mustField == '1'?"鏄�": "鍚�"}}</span>
+							</template>
+						</el-table-column>
 						<el-table-column fixed="right" label="鎿嶄綔">
 							<template #default="scope">
-								<el-button text type="primary" :disabled="scope.row.systemFieldLabel == '鏄�'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+								<el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+					<div class="field-title">鎵╁睍瀛楁</div>
+					<el-table ref="multipleTableRef" :data="tableData0extend" border style="width: 100%" class="multipleTableRef">
+						<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
+						<el-table-column prop="fieldDescription" label="鎻愮ず鏂囧瓧"></el-table-column>
+						<el-table-column prop="defaultValue" label="榛樿鍊�"></el-table-column>
+						<el-table-column prop="mustField" label="鏄惁蹇呭~">
+							<template #default="scope">
+								<span>{{scope.row.mustField == '1'?"鏄�": "鍚�"}}</span>
+							</template>
+						</el-table-column>
+						<el-table-column fixed="right" label="鎿嶄綔">
+							<template #default="scope">
+								<el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
 							</template>
 						</el-table-column>
 					</el-table>
 				</div>
 			</el-tab-pane>
 			<el-tab-pane label="缂栬緫椤佃缃�" name="second">
-				<div class="add-field">+ 娣诲姞瀛楁</div>
+				<div class="add-field" @click="openSelect">+ 娣诲姞瀛楁</div>
 				<div class="field-title">鍩虹瀛楁</div>
 				<el-table ref="multipleTableRef" :data="tableData1" border style="width: 100%" class="multipleTableRef">
 					<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
-					<el-table-column prop="fieldDescription" label="鏀寔缂栬緫"></el-table-column>
+					<el-table-column label="鏀寔缂栬緫" prop="supportUpdateLabel"></el-table-column>
 					<el-table-column fixed="right" label="鎿嶄綔">
 						<template #default="scope">
-							<el-button text type="primary" :disabled="scope.row.systemFieldLabel == '鏄�'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+							<el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
 				<div class="field-title">鎵╁睍瀛楁</div>
+				<el-table ref="multipleTableRef" :data="tableData1extend" border style="width: 100%" class="multipleTableRef">
+					<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
+					<el-table-column prop="supportUpdateLabel" label="鏀寔缂栬緫"></el-table-column>
+					<el-table-column fixed="right" label="鎿嶄綔">
+						<template #default="scope">
+							<el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
 			</el-tab-pane>
 			<el-tab-pane label="鏌ョ湅椤佃缃�" name="third">
+				<div class="add-field" @click="openSelect">+ 娣诲姞瀛楁</div>
 				<div class="field-title">鍩虹瀛楁</div>
 				<el-table ref="multipleTableRef" :data="tableData2" border style="width: 100%" class="multipleTableRef">
 					<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
 					<el-table-column fixed="right" label="鎿嶄綔">
 						<template #default="scope">
-							<el-button text type="primary" :disabled="scope.row.systemFieldLabel == '鏄�'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+							<el-button text type="primary" :disabled="scope.row.sysFieldMust == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
 						</template>
 					</el-table-column>
 				</el-table>
 				<div class="field-title">鎵╁睍瀛楁</div>
+				<el-table ref="multipleTableRef" :data="tableData2extend" border style="width: 100%" class="multipleTableRef">
+					<el-table-column prop="fieldName" label="瀛楁鍚�"></el-table-column>
+					<el-table-column fixed="right" label="鎿嶄綔">
+						<template #default="scope">
+							<el-button text type="primary" :disabled="scope.row.sysFieldMust == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
 			</el-tab-pane>
 		</el-tabs>
 	</div>
+	<!-- 鏂板缓璁″垝 -->
 	<save-dialog v-if="dialog.save" ref="saveDialog" @success="addPlanSuccess" @closed="dialog.save=false"></save-dialog>
+	<!-- 娣诲姞瀛楁 -->
+	<save-select-dialog v-if="dialog.saveSelect" ref="saveSelectDialog" @success="addSelectSuccess" @closed="dialog.saveSelect=false" @addExtend="addExtend"></save-select-dialog>
+	<!-- 娣诲姞鎵╁睍瀛楁 -->
+	<save-extend-dialog v-if="dialog.extendSave" ref="saveExtendDialog" @success="addExtendSuccess" @closed="dialog.save=false"></save-extend-dialog>
 </template>
 <script>
 	import saveDialog from './addPlan'
+	import saveSelectDialog from './saveSelectDialog'
+	import saveExtendDialog from './addField'
 	export default {
 		name: "custom",
 		data(){
 			return {
+				id: "",
 				dialog: {
-					save: false
+					save: false,  //鏂板妯$増
+					saveSelect: false,  //娣诲姞瀛楁
+					extendSave: false  //娣诲姞鎵╁睍瀛楁
 				},
 				planData: [],
 				activeName: "first",
+				configType: 1,
 				tableData0: [],
 				tableData1: [],
-				tableData2: []
+				tableData2: [],
+				tableData0extend: [],
+				tableData1extend: []
 			}
 		},
 		created(){
@@ -87,7 +147,7 @@
 			this.gitProduct();
 		},
 		components: {
-			saveDialog
+			saveDialog,saveSelectDialog,saveExtendDialog
 	    },
 		methods: {
 			gitProduct() {
@@ -101,14 +161,48 @@
 				this.$HTTP.get(`/api/blade-system/custom-template/list?businessType=${this.$route.query.type}`).then(res=> {
 					if(res.code == 200) {
 						this.planData = res.data.reverse();
+						this.id = this.planData[0].id;
+						this.planData[0].active = true;
 						this.getTableList();
 					}
 				})
 			},
+			changePlanData(row,index) {
+				this.id = row.id;
+				this.planData.forEach(item=> {
+					item.active = false;
+				})
+				this.planData[index].active = true;
+				this.getTableList();
+			},
 			getTableList() {
-				this.$HTTP.get(`/api/blade-system/custom-template-field/listField?configType=1&templateId=${this.planData[0].id}`).then(res=> {
+				this.$HTTP.get(`/api/blade-system/custom-template-field/listField?configType=${this.configType}&templateId=${this.id}`).then(res=> {
 					if(res.code == 200) {
-						this.tableData0 = res.data.systemFieldList;
+						if(this.activeName == "first") {
+							this.tableData0 = res.data.systemFieldList;
+							this.tableData0extend = res.data.customFieldList || [];
+						}else if(this.activeName == "second") {
+							this.tableData1 = res.data.systemFieldList;
+							this.tableData1extend = res.data.customFieldList || [];
+						}else if(this.activeName == "third") {
+							this.tableData2 = res.data.systemFieldList;
+							this.tableData2extend = res.data.customFieldList || [];
+						}
+						
+					}
+				})
+			},
+			table_edit(row) {
+				this.dialog.save = true
+				this.$nextTick(() => {
+					this.$refs.saveDialog.open(this.productList,this.planData,'edit').setData(row);
+				})
+			},
+			del_tab(row) {
+				this.$HTTP.delete(`/api/blade-system/custom-template/remove`,[row.id]).then(res=> {
+					if(res.code == 200) {
+						this.$message.success("鎿嶄綔鎴愬姛");
+						this.getBaseData();
 					}
 				})
 			},
@@ -118,14 +212,46 @@
 					this.$refs.saveDialog.open(this.productList,this.planData)
 				})
 			},
+			openSelect() {
+				this.dialog.saveSelect = true
+				this.$HTTP.get(`/api/blade-system/custom-template-field/getSelectBox?configType=${this.configType}&templateId=${this.id}`).then(res=> {
+					if(res.code == 200) {
+						this.$refs.saveSelectDialog.open(res.data,this.id,this.configType);
+					}
+				})
+			},
 			addPlanSuccess() {
 				this.getBaseData();
 			},
-			table_del(row,index) {
-
+			addSelectSuccess() {
+				this.getTableList();
 			},
-			handleClick(text) {
-
+			addExtendSuccess() {
+				this.getTableList();
+			},
+			addExtend() {
+				this.dialog.extendSave = true
+				this.$nextTick(() => {
+					this.$refs.saveExtendDialog.open();
+				})
+			},
+			table_del(row,index) {
+				this.$HTTP.delete(`/api/blade-system/custom-template-field-relation/remove`,[row.id]).then(res=> {
+					if(res.code == 200) {
+						this.$message.success("鎿嶄綔鎴愬姛");
+						this.getTableList();
+					}
+				})
+			},
+			handleClick(TabPaneName) {
+				if(TabPaneName == "first") {
+					this.configType = 1;
+				}else if(TabPaneName == "second") {
+					this.configType = 2;
+				}else if(TabPaneName == "third") {
+					this.configType = 3;
+				}
+				this.getTableList();
 			}
 		}
 	}
@@ -183,4 +309,7 @@
     color: #000;
     margin: 14px 0;
 }
+.popvoer-title {
+	cursor: pointer;
+} 
 </style>

--
Gitblit v1.9.3