From 6f92c97e2b488542559046cc603153afa38cfb9e Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期三, 29 五月 2024 17:33:37 +0800
Subject: [PATCH] 1

---
 src/views/configuration/custom/planSettings.vue |  186 ++++++++++++++++++++
 src/views/configuration/custom/setField.vue     |    6 
 src/views/configuration/custom/addField.vue     |  179 ++++++++++++-------
 src/views/configuration/custom/index.vue        |    9 
 src/views/configuration/custom/addPlan.vue      |  109 ++++++++++++
 src/config/route.js                             |   19 ++
 6 files changed, 435 insertions(+), 73 deletions(-)

diff --git a/src/config/route.js b/src/config/route.js
index 705458c..a25a9dc 100644
--- a/src/config/route.js
+++ b/src/config/route.js
@@ -1,3 +1,11 @@
+/*
+ * @Author: lzhe lzhe@example.com
+ * @Date: 2024-05-24 11:25:26
+ * @LastEditors: lzhe lzhe@example.com
+ * @LastEditTime: 2024-05-29 16:16:57
+ * @FilePath: /src/config/route.js
+ * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 // 闈欐�佽矾鐢遍厤缃�
 // 涔﹀啓鏍煎紡涓庡姩鎬佽矾鐢辨牸寮忎竴鑷达紝鍏ㄩ儴缁忕敱妗嗘灦缁熶竴杞崲
 // 姣旇緝鍔ㄦ�佽矾鐢卞湪meta涓鍔犲叆浜唕ole瑙掕壊鏉冮檺锛屼负鏁扮粍绫诲瀷銆備竴涓彍鍗曟槸鍚︽湁鏉冮檺鏄剧ず锛屽彇鍐充簬瀹冧互鍙婂悗浠h彍鍗曟槸鍚︽湁鏉冮檺銆�
@@ -38,6 +46,17 @@
         }
 	},
     {
+        name: "璁″垝璁剧疆",
+        path: "/configuration/custom/planSettings",
+        component: "configuration/custom/planSettings",
+        meta: {
+            icon: "el-icon-menu",
+            title: "璁″垝璁剧疆",
+            type: 'menu',
+            hidden: true
+        }
+	},
+    {
         name: "鏂板缓宸ヨ壓璺嚎",
         path: "/console/product-process/process-route/add-craft",
         component: "console/product-process/process-route/add-craft",
diff --git a/src/views/configuration/custom/addField.vue b/src/views/configuration/custom/addField.vue
index 2a60039..822f9f2 100644
--- a/src/views/configuration/custom/addField.vue
+++ b/src/views/configuration/custom/addField.vue
@@ -15,7 +15,7 @@
 				<el-col :span="24">
 					<el-form-item label="瀛楁绫诲瀷">
 						<el-select v-model="addFieldForm.fieldType" style="width: 100%" placeholder="閫夋嫨绗﹀悎涓氬姟鐨勫瓧娈电被鍨�">
-							<el-option v-for="item in fieldTypeList" :key="item.id" :label="item.title" :value="item.id"/>
+							<el-option v-for="item in fieldTypeList" :disabled="item.disabled" :key="item.id" :label="item.title" :value="item.id"/>
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -93,42 +93,49 @@
 				<!-- 鍙橀噺5 鍗曢�夋寜閽�-->
 				<el-col :span="24" v-if="addFieldForm.fieldType == '5'">
 					<el-form-item label="閫夐」" class="specialItem">
-						<div v-for="(item,index) in addFieldForm.radioList" class="fieldContent">
-							<el-radio v-model="item.radio" :label="1" style="margin-right: 0px;">銆�</el-radio>
-							<el-input v-model="item.input" clearable></el-input>
-							<span class="remove-btn" @click="removeRadio(index)">鍒犻櫎</span>
-						</div>
+						<el-radio-group v-model="addFieldForm.selectOption" class="specialRadio">
+							<el-radio :label="item.value" style="margin-right: 0px;" v-for="(item,index) in addFieldForm.radioList">
+								<el-input v-model="item.label" clearable></el-input>
+								<span class="remove-btn" @click="removeRadio(index)">鍒犻櫎</span>
+							</el-radio>
+						</el-radio-group>
 						<div class="add-btn" @click="addRadio">娣诲姞閫夐」</div>
 					</el-form-item>
 				</el-col>
 				<el-col :span="24" v-if="addFieldForm.fieldType == '5'">
 					<el-form-item label="鎺掑簭鏂瑰紡">
-						<el-radio v-model="addFieldForm.radio" label="1">妯悜鎺掑垪</el-radio>
-						<el-radio v-model="addFieldForm.radio" label="2">绾靛悜鎺掑垪</el-radio>
+						<el-radio v-model="addFieldForm.direction" label="0">妯悜鎺掑垪</el-radio>
+						<el-radio v-model="addFieldForm.direction" label="1">绾靛悜鎺掑垪</el-radio>
 					</el-form-item>
 				</el-col>
 				<!-- 鍙橀噺6 澶氶�夋寜閽�-->
 				<el-col :span="24" v-if="addFieldForm.fieldType == '6'">
 					<el-form-item label="閫夐」" class="specialItem">
-						<div v-for="(item,index) in addFieldForm.checkboxList" class="fieldContent">
+						<el-checkbox-group v-model="addFieldForm.selectBoxOption" class="specialCheck">
+							<el-checkbox :label="item.value" :value="item.value" v-for="(item,index) in addFieldForm.checkboxList">
+								<el-input v-model="item.label" clearable></el-input>
+								<span class="remove-btn" @click="removeCheckbox(index)">鍒犻櫎</span>
+							</el-checkbox>
+						</el-checkbox-group>
+						<!-- <div v-for="(item,index) in addFieldForm.checkboxList" class="fieldContent">
 							<el-checkbox v-model="item.check" style="margin-right: 15px;"></el-checkbox>
 							<el-input v-model="item.input" clearable></el-input>
 							<span class="remove-btn" @click="removeCheckbox(index)">鍒犻櫎</span>
-						</div>
+						</div> -->
 						<div class="add-btn" @click="addCheckbox">娣诲姞閫夐」</div>
 					</el-form-item>
 				</el-col> 
 				<el-col :span="24" v-if="addFieldForm.fieldType == '6'">
 					<el-form-item label="鎺掑簭鏂瑰紡">
-						<el-radio v-model="addFieldForm.radio" label="1">妯悜鎺掑垪</el-radio>
-						<el-radio v-model="addFieldForm.radio" label="2">绾靛悜鎺掑垪</el-radio>
+						<el-radio v-model="addFieldForm.direction" label="0">妯悜鎺掑垪</el-radio>
+						<el-radio v-model="addFieldForm.direction" label="1">绾靛悜鎺掑垪</el-radio>
 					</el-form-item>
 				</el-col>
 				<!-- 鍙橀噺7 涓嬫媺閫夋嫨鍣�-->
 				<el-col :span="24" v-if="addFieldForm.fieldType == '7'">
 					<el-form-item label="閫夐」" class="specialItem">
 						<div v-for="(item,index) in addFieldForm.selectList" class="fieldContent">
-							<el-input v-model="item.input" clearable></el-input>
+							<el-input v-model="item.label" clearable></el-input>
 							<span class="remove-btn" @click="removeSelect(index)">鍒犻櫎</span>
 						</div>
 						<div class="add-btn" @click="addSelect">娣诲姞閫夐」</div>
@@ -167,6 +174,7 @@
 		emits: ['success', 'closed'],
 		data() {
 			return {
+				dialogData: {},
 				inputTypeList: [  //杈撳叆鏍煎紡
 					{title: "鏃�",id: "1"},
 					{title: "鎵嬫満鍙风爜",id: "mobile"},
@@ -181,8 +189,8 @@
 					{title: "鍗曢�夋寜閽�",id: "5"},
 					{title: "澶氶�夋寜閽�",id: "6"},
 					{title: "涓嬫媺閫夋嫨鍣�",id: "7"},
-					{title: "涓氬姟瀛楁-浜哄憳",id: "8"},
-					{title: "榛樿",id: "9"}
+					{title: "涓氬姟瀛楁-浜哄憳",id: "9"},
+					{title: "榛樿",id: "10",disabled: true}
 				],
 				dateFormatList: [  //鏃ユ湡鏍煎紡
 					{title: "骞�-鏈�",id: "yyyy-MM"},
@@ -205,6 +213,7 @@
 					defaultValue: "",
 					maxlength: 20,
 					updateShow: false,
+					viewShow: true,
 					fieldType: "1",  //瀛楁绫诲瀷锛岄粯璁よ緭鍏ユ
 					formatName: "",
 					supportUpdate: "1",
@@ -221,22 +230,10 @@
 						value: "month",
 						format: "yyyy-MM"
 					},
-					radio: '1',
-					num: 0,
-					numLast: 9999,
-					test: "",
-					check: false,
-					code: "",
-					dictValue: "",
-					sort: "",
-					isSealed: false,
-					remark: "",
-					dictKey: "-1",
-					test: "",
-					viewShow: true,
-					numArea: 200,
-					dateType: "1",
+					direction: "0",
 					radioList: [],
+					selectOption: "",
+					selectBoxOption: [],
 					checkboxList: [],
 					selectList: []
 				},
@@ -290,7 +287,10 @@
 					};
 				}
 			},
-			saveSubmit() {
+			fieldSubmit() {  //淇濆瓨
+				this.saveSubmit('closeDialog');
+			},
+			saveSubmit(isClose) {  //淇濆瓨骞剁户缁�
 				var obj = {
 					businessType: 1,
 					fieldDescription: this.addFieldForm.fieldDescription,
@@ -335,16 +335,49 @@
 					}
 					obj.propertyJson = JSON.stringify(propertyJson);
 				}
-				console.log(obj);
-				return;
-				this.$HTTP.post(`/api/blade-system/custom-template-field/insert`,obj).then(res=> {
+				if(this.addFieldForm.fieldType == "5") {  //鍗曢�夋寜閽�
+					var propertyJson = {
+						selectOption: this.addFieldForm.selectOption,
+						options: this.addFieldForm.radioList,
+						direction: this.addFieldForm.direction
+					}
+					obj.propertyJson = JSON.stringify(propertyJson);
+				}
+				if(this.addFieldForm.fieldType == "6") {  //澶氶�夋寜閽�
+					var propertyJson = {
+						selectOption: this.addFieldForm.selectBoxOption,
+						options: this.addFieldForm.checkboxList,
+						direction: this.addFieldForm.direction
+					}
+					obj.propertyJson = JSON.stringify(propertyJson);
+				}
+				if(this.addFieldForm.fieldType == "7") {  //涓嬫媺閫夋嫨鍣�
+					var propertyJson = {
+						options: this.addFieldForm.selectList
+					}
+					obj.propertyJson = JSON.stringify(propertyJson);
+				}
+				obj.businessType = this.$route.query.type;
+				var that = this;
+				if(this.mode == "edit") {
+					var url = "/api/blade-system/custom-template-field/update";
+					var method = "put";
+					obj.id  = this.dialogData.id;
+				}else {
+					var url = "/api/blade-system/custom-template-field/insert";
+					var method = "post";
+				}
+				this.$HTTP[method](url,obj).then(res=> {
 					if(res.code == 200) {
-						this.$message.success("鎻愪氦鎴愬姛");
+						that.$message.success("鎻愪氦鎴愬姛");
+						that.$emit("success",obj);
+						if(isClose == "closeDialog") {
+							that.visible = false;
+						}
 					}else {
-						this.$message.error(res.msg);
+						that.$message.error(res.msg);
 					}
 				})
-				console.log(obj)
 			},
 			removeRadio(index) {
 				this.addFieldForm.radioList.splice(index,1);
@@ -353,7 +386,7 @@
 				var flag = false;
 				if(this.addFieldForm.radioList.length > 0) {
 					this.addFieldForm.radioList.forEach(item=> {
-						if(item.input == "") {
+						if(item.label == "") {
 							flag = true;
 						}
 					})
@@ -362,7 +395,7 @@
 					this.$message.error("璇疯緭鍏ヤ笂涓�涓嚜瀹氫箟閫夐」鐨勫唴瀹�");
 					return;
 				}
-				this.addFieldForm.radioList.push({radio: "",input: ""});
+				this.addFieldForm.radioList.push({label: "",value: "radiosSelect" + (this.addFieldForm.radioList.length + 1),parentId: 0});
 			},
 			removeCheckbox(index) {
 				this.addFieldForm.checkboxList.splice(index,1);
@@ -371,7 +404,7 @@
 				var flag = false;
 				if(this.addFieldForm.checkboxList.length > 0) {
 					this.addFieldForm.checkboxList.forEach(item=> {
-						if(item.input == "") {
+						if(item.label == "") {
 							flag = true;
 						}
 					})
@@ -380,7 +413,7 @@
 					this.$message.error("璇疯緭鍏ヤ笂涓�涓嚜瀹氫箟閫夐」鐨勫唴瀹�");
 					return;
 				}
-				this.addFieldForm.checkboxList.push({check: "",input: ""});
+				this.addFieldForm.checkboxList.push({label: "",value: "checkboxSelect" + (this.addFieldForm.checkboxList.length + 1),parentId: 0});
 			},
 			removeSelect(index) {
 				this.addFieldForm.selectList.splice(index,1);
@@ -389,7 +422,7 @@
 				var flag = false;
 				if(this.addFieldForm.selectList.length > 0) {
 					this.addFieldForm.selectList.forEach(item=> {
-						if(item.input == "") {
+						if(item.label == "") {
 							flag = true;
 						}
 					})
@@ -398,7 +431,7 @@
 					this.$message.error("璇疯緭鍏ヤ笂涓�涓嚜瀹氫箟閫夐」鐨勫唴瀹�");
 					return;
 				}
-				this.addFieldForm.selectList.push({input: ""});
+				this.addFieldForm.selectList.push({label: "",value: "select" + (this.addFieldForm.selectList.length + 1),parentId: 0});
 			},
 			//鏄剧ず
 			open(mode='add'){
@@ -406,32 +439,35 @@
 				this.visible = true;
 				return this
 			},
-			//琛ㄥ崟鎻愪氦鏂规硶
-			fieldSubmit(){
-				var obj = Object.assign({},this.addFieldForm);
-				this.$refs.dialogForm.validate(async (valid) => {
-					if (valid) {
-						this.isSaveing = true;
-						this.$HTTP.post("/api/blade-system/dict/submit",obj).then(res=> {
-							this.isSaveing = false;
-							if(res.code == 200) {
-								this.$emit('success', this.addFieldForm, this.mode);
-								this.visible = false;
-								this.$message.success("鎿嶄綔鎴愬姛");
-							}else {
-								this.$alert(res.message, "鎻愮ず", {type: 'error'});
-							}
-						})
-					}else{
-						return false;
-					}
-				})
-			},
 			//琛ㄥ崟娉ㄥ叆鏁版嵁
 			setData(data){
-				console.log(data)
-				//鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘�
-				//Object.assign(this.addFieldForm, data);
+				this.dialogData = data;
+				this.$HTTP.get(`/api/blade-system/custom-template-field/get/${data.id}`).then(res=> {
+					if(res.code == 200) {
+						res.data.fieldType = String(res.data.fieldType);
+						res.data.format = res.data.format == "0"?"0":"1";
+						res.data.direction = String(res.data.direction);
+						res.data.updateShow = res.data.updateShow == "1"?true:false;
+						res.data.viewShow = res.data.viewShow == "1"?true:false;
+						res.data.supportUpdate = String(res.data.supportUpdate);
+						if(res.data.fieldType != "10") {
+							this.addFieldForm = Object.assign(res.data,JSON.parse(res.data.propertyJson));
+						}else {
+							this.addFieldForm = res.data;
+						}
+						this.addFieldForm.format = String(this.addFieldForm.format);
+						if(res.data.fieldType == "5") {
+							this.addFieldForm.radioList = this.addFieldForm.options;
+						}
+						if(res.data.fieldType == "6") {
+							this.addFieldForm.checkboxList = this.addFieldForm.options;
+							this.addFieldForm.selectBoxOption = this.addFieldForm.selectOption;
+						}
+						if(res.data.fieldType == "7") {
+							this.addFieldForm.selectList = this.addFieldForm.options;
+						}
+					}
+				})
 			}
 		}
 	}
@@ -443,9 +479,18 @@
 	cursor: pointer;
 }
 .specialItem /deep/ .el-form-item__content{
+	display: flex;
 	flex-direction: column;
     align-items: flex-start;
 }
+.specialRadio,.specialCheck {
+	display: flex;
+	flex-direction: column;
+    align-items: flex-start;
+}
+.specialRadio label,.specialCheck label{
+	margin-bottom: 8px;
+}
 .fieldContent {
 	display: flex;
     align-items: flex-start;
diff --git a/src/views/configuration/custom/addPlan.vue b/src/views/configuration/custom/addPlan.vue
new file mode 100644
index 0000000..67bd7e9
--- /dev/null
+++ b/src/views/configuration/custom/addPlan.vue
@@ -0,0 +1,109 @@
+<template>
+	<el-dialog :title="titleMap[mode]" v-model="visible" :width="700" destroy-on-close @closed="$emit('closed')">
+		<el-form :model="addPlanForm" :rules="addPlanRules" :disabled="mode=='show'" ref="dialogForm" label-width="180px" label-position="center">
+			<el-row>
+				<el-col :span="24">
+					<el-form-item label="璁″垝绫诲瀷" prop="templateName">
+						<el-input v-model="addPlanForm.templateName" placeholder="璁″垝绫诲瀷" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="24">
+					<el-form-item label="浜у搧绫诲瀷">
+						<el-select v-model="relationIds" multiple placeholder="浜у搧绫诲瀷" style="width: 100%">
+							<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">{{
+								item.name }}</el-option>
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :span="24">
+					<el-form-item label="閫氳繃宸叉湁璁″垝绫诲瀷鏂板缓" prop="copySourceId">
+						<el-select v-model="copySourceId" placeholder="閫氳繃宸叉湁璁″垝绫诲瀷鏂板缓" style="width: 100%">
+							<el-option v-for="item in planData" :key="item.id" :label="item.templateName" :value="item.id">{{
+								item.templateName }}</el-option>
+						</el-select>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<template #footer>
+			<el-button @click="visible=false" >鍙栨秷</el-button>
+			<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="planSubmit">淇� 瀛�</el-button>
+		</template>
+	</el-dialog>
+</template>
+
+<script>
+	export default {
+		emits: ['success', 'closed'],
+		data() {
+			return {
+				planData: {},
+				productList: [],
+				mode: "add",
+				titleMap: {
+					add: '鏂板',
+					edit: '淇敼',
+					show: '鏌ョ湅'
+				},
+				visible: false,
+				isSaveing: false,
+				//琛ㄥ崟鏁版嵁
+				addPlanForm: {
+					templateName: "",
+					relationIds: [],
+					copySourceId: ""
+				},
+				//楠岃瘉瑙勫垯
+				addPlanRules: {
+					templateName:[{required: true, message: '璇疯緭鍏ヨ鍒掔被鍨�'}],
+					copySourceId:[{required: true, message: '璇疯緭鍏ラ�氳繃宸叉湁璁″垝绫诲瀷鏂板缓'}]
+				}
+			}
+		},
+		mounted() {
+			
+		},
+		methods: {
+			//鏄剧ず
+			open(productList,planData,mode='add'){
+				this.mode = mode;
+				this.visible = true;
+				this.productList = productList;
+				this.planData = planData;
+				this.addPlanForm.copySourceId = this.planData[0].id;
+				return this
+			},
+			//琛ㄥ崟鎻愪氦鏂规硶
+			planSubmit(){
+				var obj = Object.assign({},this.addPlanForm);
+				obj.businessType = this.$route.query.type;
+				obj.configTypes = [1, 2, 3];
+				this.$refs.dialogForm.validate(async (valid) => {
+					if (valid) {
+						this.isSaveing = true;
+						this.$HTTP.post("/api/blade-system/custom-template/insert",obj).then(res=> {
+							this.isSaveing = false;
+							if(res.code == 200) {
+								this.$emit('success', this.addPlanForm, this.mode);
+								this.visible = false;
+								this.$message.success("鎿嶄綔鎴愬姛");
+							}else {
+								this.$alert(res.message, "鎻愮ず", {type: 'error'});
+							}
+						})
+					}else{
+						return false;
+					}
+				})
+			},
+			//琛ㄥ崟娉ㄥ叆鏁版嵁
+			setData(data){
+				console.log(data)
+				Object.assign(this.addPlanForm, data);
+			}
+		}
+	}
+</script>
+
+<style>
+</style>
diff --git a/src/views/configuration/custom/index.vue b/src/views/configuration/custom/index.vue
index 5523b1b..e136322 100644
--- a/src/views/configuration/custom/index.vue
+++ b/src/views/configuration/custom/index.vue
@@ -2,7 +2,7 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-03-26 10:28:33
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-13 11:39:54
+ * @LastEditTime: 2024-05-29 16:17:11
  * @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
 -->
@@ -17,7 +17,7 @@
 	    		<div class="card-title">璁″垝</div>
 	    		<div class="card-desc">
 	    			<span @click="goSetField(1)">瀛楁閰嶇疆</span>
-	    			<span>璁″垝璁剧疆</span>
+	    			<span @click="goPlanSettings(1)">璁″垝璁剧疆</span>
 	    		</div>
 	    	</div>
 	    </div>
@@ -30,7 +30,7 @@
 	    		<div class="card-title">浜у搧</div>
 	    		<div class="card-desc">
 	    			<span @click="goSetField(2)">瀛楁閰嶇疆</span>
-	    			<span>鏄剧ず璁剧疆</span>
+	    			<span @click="goPlanSettings(2)">鏄剧ず璁剧疆</span>
 	    		</div>
 	    	</div>
 	    </div>
@@ -56,6 +56,9 @@
 		methods: {
 			goSetField(type) {
 				this.$router.push({path: '/configuration/custom/setField',query: {type: type}});
+			},
+			goPlanSettings(type) {
+				this.$router.push({path: '/configuration/custom/planSettings',query: {type: type}});	
 			}
 		}
 	}
diff --git a/src/views/configuration/custom/planSettings.vue b/src/views/configuration/custom/planSettings.vue
new file mode 100644
index 0000000..368eb9a
--- /dev/null
+++ b/src/views/configuration/custom/planSettings.vue
@@ -0,0 +1,186 @@
+<!--
+ * @Author: lzhe lzhe@example.com
+ * @Date: 2024-03-26 10:28:33
+ * @LastEditors: lzhe lzhe@example.com
+ * @LastEditTime: 2024-05-29 17:32:55
+ * @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="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>
+		</div>
+	    <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+			<el-tab-pane label="鏂板缓椤佃缃�" name="first">
+				<div>
+					<div class="add-field">+ 娣诲姞瀛楁</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 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>
+							</template>
+						</el-table-column>
+					</el-table>
+				</div>
+			</el-tab-pane>
+			<el-tab-pane label="缂栬緫椤佃缃�" name="second">
+				<div class="add-field">+ 娣诲姞瀛楁</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 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>
+						</template>
+					</el-table-column>
+				</el-table>
+				<div class="field-title">鎵╁睍瀛楁</div>
+			</el-tab-pane>
+			<el-tab-pane label="鏌ョ湅椤佃缃�" name="third">
+				<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>
+						</template>
+					</el-table-column>
+				</el-table>
+				<div class="field-title">鎵╁睍瀛楁</div>
+			</el-tab-pane>
+		</el-tabs>
+	</div>
+	<save-dialog v-if="dialog.save" ref="saveDialog" @success="addPlanSuccess" @closed="dialog.save=false"></save-dialog>
+</template>
+<script>
+	import saveDialog from './addPlan'
+	export default {
+		name: "custom",
+		data(){
+			return {
+				dialog: {
+					save: false
+				},
+				planData: [],
+				activeName: "first",
+				tableData0: [],
+				tableData1: [],
+				tableData2: []
+			}
+		},
+		created(){
+			
+		},
+		mounted(){
+			this.getBaseData();
+			this.gitProduct();
+		},
+		components: {
+			saveDialog
+	    },
+		methods: {
+			gitProduct() {
+				this.$HTTP.get(`/api/blade-cps/product-type/list`).then(res=> {
+					if(res.code == 200) {
+						this.productList= res.data;
+					}
+				})
+			},
+			getBaseData() {
+				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.getTableList();
+					}
+				})
+			},
+			getTableList() {
+				this.$HTTP.get(`/api/blade-system/custom-template-field/listField?configType=1&templateId=${this.planData[0].id}`).then(res=> {
+					if(res.code == 200) {
+						this.tableData0 = res.data.systemFieldList;
+					}
+				})
+			},
+			openPlan() {
+				this.dialog.save = true
+				this.$nextTick(() => {
+					this.$refs.saveDialog.open(this.productList,this.planData)
+				})
+			},
+			addPlanSuccess() {
+				this.getBaseData();
+			},
+			table_del(row,index) {
+
+			},
+			handleClick(text) {
+
+			}
+		}
+	}
+</script>
+
+<style scoped>
+.aposcope-main {
+	min-height: 100%;
+	margin: 8px;
+	padding:20px;
+	background: #fff;
+}
+.header {
+	margin-bottom: 8px;
+    background-color: #fff;
+    font-size: 14px;
+    font-weight: 700;
+    color: #333;
+}
+.title {
+	color: #000;
+    margin-bottom: 21px;
+}
+.type {
+	padding-bottom: 15px;
+    display: flex;
+    width: 100%;
+    overflow: auto;
+}
+.item {
+	display: flex;
+    justify-content: center;
+    align-items: center;
+    color: #409eff;
+    cursor: pointer;
+	padding: 18px 12px;
+	margin-right: 24px;
+    border: 1px solid #ccc;
+    width: 260px;
+}
+.activeTab {
+    border: 1px solid #409eff;
+}
+.add-field {
+    color: #409eff;
+    font-weight: 400;
+    font-size: 14px;
+    cursor: pointer;
+    padding-left: 8px;
+    margin: 0;
+}
+.field-title {
+	font-weight: 700;
+    font-size: 14px;
+    color: #000;
+    margin: 14px 0;
+}
+</style>
diff --git a/src/views/configuration/custom/setField.vue b/src/views/configuration/custom/setField.vue
index 861660d..3895381 100644
--- a/src/views/configuration/custom/setField.vue
+++ b/src/views/configuration/custom/setField.vue
@@ -2,7 +2,7 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-03-26 10:28:33
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-28 16:40:59
+ * @LastEditTime: 2024-05-29 15:24:20
  * @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
 -->
@@ -50,7 +50,7 @@
 	    },
 		methods: {
 			addFieldSuccess() {
-
+				this.getTableData();
 			},
 			addField() {
 				this.dialog.save = true;
@@ -61,7 +61,7 @@
 			table_edit(row) {
 				this.dialog.save = true;
 				this.$nextTick(() => {
-					this.$refs.saveDialog.open('edit').setData(row)
+					this.$refs.saveDialog.open('edit').setData(row);
 				})
 			},
 			table_del(row) {

--
Gitblit v1.9.3