From 156e136377680ac2dd5ad89735b7273db6f6d1d5 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期六, 24 二月 2024 20:27:02 +0800 Subject: [PATCH] 远程部署功能完善 --- Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue | 463 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 248 insertions(+), 215 deletions(-) diff --git a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue index 4326828..15aed07 100644 --- a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue +++ b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue @@ -1,19 +1,22 @@ <template> - <basic-container > - <avue-crud v-model="form" :option="option" :data="data" ref="crud" @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page"> + <basic-container> + <avue-crud ref="crud" v-model="form" :data="data" :option="option" :page.sync="page" @on-load="onLoad" + @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel"> <template slot="menu" slot-scope="{ row, index }"> <el-button - type="text" - size="small" + v-if="permissionList.editBtn" icon="el-icon-edit" + size="small" + type="text" @click="handleEdit(row, index)" > 缂栬緫 </el-button> <el-button - type="text" - size="small" + v-if="permissionList.delBtn" icon="el-icon-delete" + size="small" + type="text" @click="handleDel(row, index)" > 鍒犻櫎 @@ -34,113 +37,79 @@ getadd, getupdata, getremove, - combination } from "@/api/system/passwords"; +import {mapGetters} from "vuex"; + export default { name: "passwords.vue", data() { - // 鏈�灏忛暱搴︽鍒欑粦瀹氬�� - let validatePass="" - //鏈�澶ч暱搴︽鍒欑粦瀹氬�� - let validatePass1="" - //杩囨湡鏃堕棿姝e垯缁戝畾鍊� - let validatePass2="" - //鎻愰啋鏃堕棿姝e垯缁戝畾鍊� - let validatePass3="" - //閿佸畾娆℃暟姝e垯缁戝畾鍊� - let validatePass4="" - //閿佸畾鏃堕棿姝e垯缁戝畾鍊� - let validatePass5="" - //鏈�灏忛暱搴︾粦瀹歷alue - let values="" - //鏈�澶ч暱搴︾粦瀹歷alue - let values1="" - //鏈�灏忛暱搴︽鍒欐柟娉� - validatePass = (rule, value,callback) => { - values=value*1 - if(value == ""){ - callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�')); - // }else if(values >= values1*1){ - // callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); - }else { - callback(); - } - }; - //鏈�澶ч暱搴︽鍒欐柟娉� - validatePass1= (rule, value,callback) =>{ - values1=value*1 - if(value == ""){ - callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�')); - }else if(values1 <= values){ - callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); - }else { - callback(); - } - }; - validatePass2 = (rule, value,callback) => { - if(value == ""){ - callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); - }else { - callback(); - } - }; - validatePass3 = (rule, value,callback) => { - if(value == ""){ - callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); - }else { - callback(); - } - }; - validatePass4 = (rule, value,callback) => { - if(value == ""){ - callback(new Error('璇疯緭鍏ラ攣瀹氭鏁�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('閿佸畾娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); - }else { - callback(); - } - }; - validatePass5 = (rule, value,callback) => { - if(value == ""){ - callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�')); - }else if(/[^\d]/g.test(value)){ - callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); - }else { - callback(); - } - }; return { - form:{}, + //鏈�灏忛暱搴︾粦瀹歷alue + values: "", + //鏈�澶ч暱搴︾粦瀹歷alue + values1: "", + form: {}, page: { pageSize: 10, currentPage: 1, total: 100 }, data: [], - option: { + + //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨 + checkboxlength: "", + //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺 + selectlength: "", + //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲� + checkboxlist: "", + //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺 + checkboxNumber: "", + selectNumber: "", + //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧� + checkboxedit: "", + // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈� + editFlag: false + } + + }, + computed: { + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission.password.password_add, false), + //viewBtn: this.vaildData(this.permission.password.user_view, false), + delBtn: this.vaildData(this.permission.password.password_delete, false), + editBtn: this.vaildData(this.permission.password.password_edit, false), + }; + }, + platformPermissionList() { + return { + addBtn: this.vaildData(this.permission.password.password_add, false), + //viewBtn: this.vaildData(this.permission.password.user_view, false), + delBtn: this.vaildData(this.permission.password.password_delete, false), + editBtn: this.vaildData(this.permission.password.password_edit, false), + }; + }, + option() { + return { + height: 'auto', + calcHeight: 20, headerAlign: 'center', align: 'center', - columnBtn:false, + columnBtn: false, border: true, index: true, - rowKey:'id', - editBtn:false, - height:700, - delBtn:false, + rowKey: 'id', + addBtn: this.permissionList.addBtn, + editBtn: false, + delBtn: false, + refreshBtn: false, column: [ { label: '绛栫暐鍚嶇О', prop: 'strategyName', align: 'left', - span:24, + span: 24, labelWidth: "11%", rules: [{ required: true, @@ -151,22 +120,44 @@ { label: '瀵嗙爜鏈�灏忛暱搴�', prop: 'minPwdLen', - span:12, - labelWidth:"22%", + span: 12, + labelWidth: "22%", rules: [{ required: true, - validator:validatePass, + validator: (rule, value, callback) => { + this.values = value * 1 + if (value == "") { + callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); + } else if (this.values >= this.values1 && this.values1 != 0) { + callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�')) + } else { + callback(); + } + }, trigger: 'blur' }] }, { label: '瀵嗙爜鏈�澶ч暱搴�', prop: 'maxPwdLen', - span:12, - labelWidth:"25%", + span: 12, + labelWidth: "25%", rules: [{ required: true, - validator:validatePass1, + validator: (rule, value, callback) => { + this.values1 = value * 1 + if (value == "") { + callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�')); + } else if (this.values1 <= this.values) { + callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�')); + } else { + callback(); + } + }, trigger: 'change' }] }, @@ -174,17 +165,17 @@ label: '缁勫悎鏂规硶', prop: 'combinationNames', labelWidth: 91, - display:false, + display: false, }, { label: '缁勫悎鏂规硶', prop: 'combinationIds', type: "checkbox", - span:12, - labelWidth:"22%", - id:5, - hide:true, + span: 12, + labelWidth: "22%", + id: 5, + hide: true, change: this.handleCheckboxChange, rules: [{ required: true, @@ -202,87 +193,119 @@ label: '蹇呭~绉嶇被', prop: 'requiredType', type: 'select', - span:12, - labelWidth:"25%", - change:this.handleSelectChange, + span: 12, + labelWidth: "25%", + change: this.handleSelectChange, rules: [{ required: true, message: "璇烽�夋嫨蹇呭~绉嶇被", trigger: "blur" }], - dicData:[{ - label:'1绉�', - value:1, - disabled:false + dicData: [{ + label: '1绉�', + value: 1, + disabled: false + }, + { + label: '2绉�', + value: 2, + disabled: false }, { - label:'2绉�', - value:2, - disabled:false + label: '3绉�', + value: 3, + disabled: false }, { - label:'3绉�', - value:3, - disabled:false - }, - { - label:'4绉�', - value:4, - disabled:false + label: '4绉�', + value: 4, + disabled: false } ] }, { label: '杩囨湡鏃堕棿(澶�)', - prop:'expirationTime', - span:12, - labelWidth:"22%", + prop: 'expirationTime', + span: 12, + labelWidth: "22%", rules: [{ required: true, - validator:validatePass2, + validator: (rule, value, callback) => { + if (value == "") { + callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); + } else { + callback(); + } + }, trigger: 'blur' }] }, { label: '鎻愰啋鏃堕棿(澶�)', - prop:'reminderTime', - span:12, - labelWidth:"25%", + prop: 'reminderTime', + span: 12, + labelWidth: "25%", rules: [{ required: true, - validator:validatePass3, + validator: (rule, value, callback) => { + if (value == "") { + callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); + } else { + callback(); + } + }, trigger: 'blur' }] }, { label: '閿佸畾娆℃暟(娆�)', - prop:'lockingNum', - span:12, - labelWidth:"22%", + prop: 'lockingNum', + span: 12, + labelWidth: "22%", rules: [{ required: true, - validator:validatePass4, + validator: (rule, value, callback) => { + if (value == "") { + callback(new Error('璇疯緭鍏ラ攣瀹氭鏁�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('閿佸畾娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); + } else { + callback(); + } + }, trigger: 'blur' }] }, { label: '閿佸畾鏃堕棿(鍒嗛挓)', - prop:'lockingTime', - span:12, - labelWidth:"25%", + prop: 'lockingTime', + span: 12, + labelWidth: "25%", rules: [{ required: true, - validator:validatePass5, + validator: (rule, value, callback) => { + if (value == "") { + callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�')); + } else if (/[^\d]/g.test(value)) { + callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷')); + } else { + callback(); + } + }, trigger: 'blur' }] }, { label: '鎻忚堪', - prop:'desc', + prop: 'desc', type: 'textarea', - span:12, - labelWidth:"22%", + span: 12, + labelWidth: "22%", rows: 5, }, { @@ -290,81 +313,94 @@ prop: 'isDefault', type: 'switch', labelWidth: 132, - dicData:[{ - label:'鍚�', - value:0 - },{ - label:'鏄�', - value:1 + dicData: [{ + label: '鍚�', + value: 0 + }, { + label: '鏄�', + value: 1 }] } ], - }, - //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨 - checkboxlength:"", - //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺 - selectlength:"", - //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲� - checkboxlist:"", - //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺 - checkboxNumber:"", - selectNumber:"", - //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧� - checkboxedit:"", - // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈� - editFlag:false + } } - }, created() { this.onLoad() - combination().then(res=>{ - // console.log("111",res) - }) }, - methods:{ - handleSelectChange(val){ - this.selectlength=val - // if(val.value >= this.checkboxlength.value.length && this.checkboxlength.value.length > 0){ - // console.log("澶т簬") - // } + methods: { + handleSelectChange(val) { + this.selectlength = val }, handleCheckboxChange(val) { - console.log("val",val); const arr = this.option.column[5]; this.checkboxlength = val.value; - console.log("this.checkboxlength",this.checkboxlength); this.checkboxedit = this.checkboxlength.toString().split(","); - if (val.value != undefined && val.value != null) { - if (this.checkboxlist == val.value) { + if (val.value !== undefined && val.value !== null) { + if (this.checkboxlist === val.value) { + return; } else { this.checkboxlist = val.value; if ( - this.selectlength.value >= val.value.length && + this.selectlength.value > val.value.length && val.value.length > 0 ) { - this.showMessage("蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�"); + this.showWarningMessage(); } else if ( - this.selectlength.value >= this.checkboxedit.length && + this.selectlength.value > this.checkboxedit.length && this.checkboxedit.length > 0 ) { - this.showMessage("蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�"); + this.showWarningMessage(); } } } - const disabledCount = Math.min(this.checkboxedit.length, 4); - for (let i = 0; i < arr.dicData.length; i++) { - arr.dicData[i].disabled = i >= disabledCount; + + if (val.value !== undefined && val.value !== null) { + if (val.value.length === 1) { + this.setDisabled(arr, [0]); + } else if (val.value.length === 2) { + this.setDisabled(arr, [0, 1]); + } else if (val.value.length === 3) { + this.setDisabled(arr, [0, 1, 2]); + } else if (val.value.length === 4) { + this.setDisabled(arr, [0, 1, 2, 3]); + } else if (val.value.length === 0) { + this.setDisabled(arr, [-1]); + } + } else if (this.checkboxNumber.length !== 0) { + this.setDisabled(arr, [0, 1, 2, 3]); } - if (this.editFlag == true) { - const disabledCount = Math.min(this.checkboxedit.length, 4); - for (let i = 0; i < arr.dicData.length; i++) { - arr.dicData[i].disabled = i >= disabledCount; + + if (this.editFlag) { + if (this.checkboxedit.length === 1) { + this.setDisabled(arr, [0]); + } else if (this.checkboxedit.length === 2) { + this.setDisabled(arr, [0, 1]); + } else if (this.checkboxedit.length === 3) { + this.setDisabled(arr, [0, 1, 2]); + } else if (this.checkboxedit.length === 4) { + this.setDisabled(arr, [0, 1, 2, 3]); + } else if (this.checkboxedit.length === 0) { + this.setDisabled(arr, [-1]); } } }, - rowDel(row){ + + setDisabled(arr, indices) { + arr.dicData.forEach((item, index) => { + item.disabled = !indices.includes(index); + }); + }, + + showWarningMessage() { + this.$message({ + message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�', + type: 'warning', + showClose: true, + }); + }, + rowDel(row) { this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", @@ -379,15 +415,15 @@ message: "鎿嶄綔鎴愬姛!" }); this.onLoad(); - }).catch(res=>{ + }).catch(res => { // console.log(res) }) }, - rowSave(row,done){ + rowSave(row, done) { //灏嗗瘑鐮佺粍鍚堟柟寮忕殑鏁版嵁杞崲涓哄瓧绗︿覆 - const spliceId= row.combinationIds.toString() - row.combinationIds=spliceId - getadd(row).then((res)=>{ + const spliceId = row.combinationIds.toString() + row.combinationIds = spliceId + getadd(row).then((res) => { // this.onLoad(this.page); this.$message({ type: "success", @@ -395,40 +431,37 @@ }); done(row) this.onLoad() - }).catch((res)=>{ + }).catch((res) => { this.$message.warning(res) }) }, - rowEdit(row){ + rowEdit(row) { // console.log("鎵撳紑缂栬緫edit",row) }, - handleDel(row){ - this.$refs.crud.rowDel(row,row.$index); + handleDel(row) { + this.$refs.crud.rowDel(row, row.$index); }, - handleEdit(row){ - this.$refs.crud.rowEdit(row,row.$index); - this.editFlag=true; - // const arr=this.option.column[5]; - this.checkboxNumber=row.combinationIds.split(",") - this.selectNumber=row.requiredType - // console.log(this.checkboxNumber, this.selectNumber) - // 鎵撳紑缂栬緫棣栧厛鍒ゆ柇锛岀粍鍚堟柟娉曟槸鍚﹀皬浜庡繀濉绫伙紝濡傛灉灏忎簬缁欎簣鎻愰啋淇敼 - if(this.checkboxNumber.length<=this.selectNumber){ - this.$message({ - type:"warning", - message:"蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�" - }) - } + handleEdit(row) { + this.$refs.crud.rowEdit(row, row.$index); + this.editFlag = true; + this.checkboxNumber = row.combinationIds.split(",") + this.selectNumber = row.requiredType + if (this.checkboxNumber.length < this.selectNumber) { + this.$message({ + type: "warning", + message: "蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�" + }) + } }, - rowUpdate(row,index,done){ - getupdata(row).then(()=>{ + rowUpdate(row, index, done) { + getupdata(row).then(() => { this.onLoad() this.$message({ type: "success", message: "淇敼鎴愬姛!" }); done() - }).catch(res=>{ + }).catch(res => { // console.log(res) }) }, @@ -441,8 +474,8 @@ // this.loading = false; // this.selectionClear(); // console.log(res) - this.page.total=res.data.data.total - this.data=res.data.data.records + this.page.total = res.data.data.total + this.data = res.data.data.records }); } } -- Gitblit v1.9.3