From 986aa62ed00bee39363bab41b4eeb8259d446efd Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期四, 16 一月 2025 18:20:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/system/password/index.vue | 180 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 122 insertions(+), 58 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/system/password/index.vue b/Source/plt-web/plt-web-ui/src/views/system/password/index.vue index 7a49cdd..4e52112 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/password/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/password/index.vue @@ -2,41 +2,49 @@ <basic-container> <avue-crud ref="passWordCrud" + v-model="form" :data="tableData" :option="option" :page.sync="page" :table-loading="tableLoading" - v-model="form" @on-load="getTableList" @refresh-change="handleRefresh" @size-change="sizeChange" @current-change="currentChange" @row-save="rowSaveHandler" @row-update="rowUpdateHandler" - @row-del="rowDeleteHandler" > + <template slot="menuLeft" slot-scope="{ row, index }"> + <el-button v-if="permissionList.addBtn" class="button-custom-icon" size="small" + type="primary" @click="$refs.passWordCrud.rowAdd()"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 鏂� 澧� + </el-button> + </template> <template slot="menu" slot-scope="{ row, index }"> <el-button - icon="el-icon-edit" + v-if="permissionList.editBtn" size="small" type="text" @click="handleEdit(row, index)" > + <icon-show :name="permissionList.editBtn.source"></icon-show> 缂栬緫 </el-button> <el-button - icon="el-icon-delete" + v-if="permissionList.delBtn" size="small" type="text" @click="handleDel(row, index)" > + <icon-show :name="permissionList.delBtn.source"></icon-show> 鍒犻櫎 </el-button> </template> <template slot="name" slot-scope="{row}"> - <el-tag>{{row.name}}</el-tag> + <el-tag>{{ row.name }}</el-tag> </template> <template slot="defaultFlag" slot-scope="{row}"> <el-tag v-if="row.defaultFlag" type="success">鏄�</el-tag> @@ -48,22 +56,53 @@ </template> <script> -import {refDataGrid} from "@/api/system/password/api" +import {refDataGrid, deleteDep, addDept, updatePasswordStrateg} from "@/api/system/password/api" import basicOption from "@/util/basic-option"; -import {column} from "@/views/system/password/option"; -import Vue from "vue"; +import {mapGetters} from "vuex"; + export default { name: "index", - data(){ - return{ - form:{}, - tableData:[], - option:{ + data() { + return { + form: {}, + tableData: [], + page: { + currentPage: 1, + pageSize: 10, + total: 0, + pageSizes: [10, 30, 50, 100], + }, + tableLoading: false, + checkboxlength: "", // 娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨 + selectlength: 0, // 涓嬫媺鑿滃崟鐨勬暟鎹彉閲� + checkboxlist: "", // 鐢ㄤ簬闃叉change鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲� + checkboxNumber: "", // 鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺 + selectNumber: "", // 瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧� + checkboxedit: "", // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈� + editFlag: false, + minValue: "", // 鏈�灏忛暱搴alue + maxValue: "" // 鏈�澶ч暱搴alue + } + }, + computed: { + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false), + editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), + delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false), + }; + }, + option() { + return { ...basicOption, - selection:false, - calcHeight:-60, - menuWidth:150, - column:[ + addBtn: false, + selection: false, + menuWidth: 150, + editBtn: false, + delBtn: false, + calcHeight: -60, + column: [ { label: '绛栫暐鍚嶇О', prop: 'name', @@ -90,7 +129,7 @@ callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�')); } else if (/[^\d]/g.test(value)) { callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); - } else if ( this.minValue >= this.maxValue && this.maxValue != 0) { + } else if (this.minValue >= this.maxValue && this.maxValue != 0) { callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�')) } else { callback(); @@ -111,7 +150,7 @@ this.maxValue = value * 1 if (value == "") { callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�')); - } else if ( this.maxValue <= this.minValue) { + } else if (this.maxValue <= this.minValue) { callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�')); } else if (/[^\d]/g.test(value)) { callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); @@ -288,6 +327,7 @@ prop: 'defaultFlag', type: 'switch', labelWidth: "30%", + value: 0, dicData: [{ label: '鍚�', value: 0 @@ -297,31 +337,15 @@ }] }, ] - }, - page: { - currentPage: 1, - pageSize: 10, - total: 0, - pageSizes: [10, 30, 50, 100], - }, - tableLoading:false, - checkboxlength: "", //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨 - selectlength: 0, //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺 - checkboxlist: "" , //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲� - checkboxNumber: "", //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺 - selectNumber: "", //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧� - checkboxedit: "", // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈� - editFlag: false, - minValue:"", // 鏈�灏忛暱搴alue - maxValue:"" // 鏈�澶ч暱搴alue + } } }, - methods:{ + methods: { // 琛ㄦ牸鍒濆鍖栬姹� getTableList() { + console.log(this.$route) this.tableLoading = true; - refDataGrid(this.page.currentPage, this.page.pageSize).then(res =>{ - console.log(res); + refDataGrid(this.page.currentPage, this.page.pageSize).then(res => { this.tableData = res.data.data; this.page.total = res.data.total; this.tableLoading = false; @@ -329,27 +353,38 @@ }, // 琛ㄦ牸澶撮儴鍒锋柊 - handleRefresh(){ + handleRefresh() { this.getTableList(); }, // 鏉℃暟 - sizeChange(val){ + sizeChange(val) { this.page.pageSize = val; }, // 椤电爜 - currentChange(val){ + currentChange(val) { this.page.currentPage = val; }, // 娣诲姞 - rowSaveHandler(){ - console.log(this.form.requireCharCount); + rowSaveHandler(row, done, loading) { + row.combinations = row.requireCharType.join(','); + delete row.requireCharType; + addDept(row).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done() + } + }).catch(err => { + loading() + console.log(err); + }) }, // 缂栬緫鎸夐挳 - handleEdit(row,index){ + handleEdit(row, index) { this.$refs.passWordCrud.rowEdit(row, index); this.editFlag = true; this.checkboxNumber = row.requireCharType.split(","); @@ -357,22 +392,48 @@ }, // 淇敼 - rowUpdateHandler(){ - - }, - - // 鍒犻櫎鎸夐挳 - handleDel(){ - + rowUpdateHandler(row, index, done, loading) { + row.combinations = row.requireCharType; + delete row.requireCharType; + updatePasswordStrateg(row).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done() + } + }).catch(err => { + loading() + console.log(err); + }) }, // 鍒犻櫎 - rowDeleteHandler(){ + handleDel(row, index) { + let params = { + pwdIds: row.oid + } + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鐨勫瘑鐮佺瓥鐣ュ悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteDep(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); }, // 蹇呭~绉嶇被changge浜嬩欢 - handleSelectChange(val){ + handleSelectChange(val) { this.selectlength = val.value; }, @@ -382,7 +443,8 @@ this.checkboxlength = val.value; this.checkboxedit = this.checkboxlength.toString().split(","); - if (val.value !== undefined && val.value !== null) { + if (val.value !== undefined && val.value !== null && val.value.length > 0) { + this.form.requireCharCount = 1; if (this.checkboxlist === val.value) { return; } else { @@ -395,6 +457,8 @@ this.form.requireCharCount = ""; } } + } else { + this.form.requireCharCount = ""; } // 澶勭悊 蹇呭~绉嶇被閫夐」绂佺敤 @@ -430,7 +494,7 @@ } }, - // 寰幆鎵惧埌瀵瑰簲蹇呭~绉嶇被绂佺敤閫夐」 + // 杩囨护鎵惧埌瀵瑰簲蹇呭~绉嶇被绂佺敤閫夐」 setDisabled(arr, indices) { arr.dicData.forEach((item, index) => { item.disabled = !indices.includes(index); @@ -441,8 +505,8 @@ } </script> -<style scoped lang="scss"> -.avue-form__group--flex{ +<style lang="scss" scoped> +.avue-form__group--flex { padding-bottom: 25px !important; } -- Gitblit v1.9.3