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