From b1ed46fcf0b28fa9278fc87e95410f7063ce4340 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 25 一月 2024 10:13:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue | 425 ++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 306 insertions(+), 119 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
index 864b72c..f850c83 100644
--- a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
+++ b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -1,6 +1,28 @@
<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">
+ <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
+ v-if="permissionList.editBtn"
+ icon="el-icon-edit"
+ size="small"
+ type="text"
+ @click="handleEdit(row, index)"
+ >
+ 缂栬緫
+ </el-button>
+ <el-button
+ v-if="permissionList.delBtn"
+ icon="el-icon-delete"
+ size="small"
+ type="text"
+ @click="handleDel(row, index)"
+ >
+ 鍒犻櫎
+ </el-button>
+ </template>
+
<template slot="icon" slot-scope="scope">
<i :class="scope.row.icon" style="font-size:24px"></i>
</template>
@@ -14,57 +36,82 @@
// getOnesearch,
getadd,
getupdata,
- getremove
+ getremove,
+ combination
} from "@/api/system/passwords";
+import {mapGetters} from "vuex";
+
export default {
name: "passwords.vue",
data() {
- // 鏈�灏忛暱搴︽鍒欑粦瀹氬��
- let validatePass=""
- //鏈�澶ч暱搴︽鍒欑粦瀹氬��
- let validatePass1=""
- //鏈�灏忛暱搴︾粦瀹歷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('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'));
- }
- };
- //鏈�澶ч暱搴︽鍒欐柟娉�
- validatePass1= (rule, value,callback) =>{
- values1=value*1
- if(value === ""){
- callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
- }else if(values1 <= values){
- callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
- }
- }
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,
border: true,
index: true,
- rowKey:'id',
+ 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,
message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
@@ -74,170 +121,287 @@
{
label: '瀵嗙爜鏈�灏忛暱搴�',
prop: 'minPwdLen',
- labelWidth:118,
- span:12,
+ span: 12,
+ labelWidth: "22%",
rules: [{
required: true,
- validator:validatePass,
- trigger: "blur"
-
+ 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',
- labelWidth:118,
- span:12,
+ span: 12,
+ labelWidth: "25%",
rules: [{
required: true,
- validator:validatePass1,
- trigger: "blur"
+ 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'
}]
},
{
label: '缁勫悎鏂规硶',
prop: 'combinationNames',
labelWidth: 91,
- display:false
+ display: false,
+
},
{
- //鍐欎袱涓粍鍚堟柟娉曟槸鍥犱负id鍜宯ame涓嶈兘鍚屾椂缁戝畾杩欎釜prop鏉ユ覆鏌擄紝涓�涓〃鏍煎仛闅愯棌鏉ユ暟鎹搷浣滐紙琛ㄥ崟闅愯棌锛夛紝鍙︿竴涓〃鏍煎仛鏄剧ず鍙樉绀哄湪椤甸潰锛堣〃鍗曢殣钘忥級銆�
label: '缁勫悎鏂规硶',
prop: 'combinationIds',
type: "checkbox",
- labelWidth:91,
- hide:true,
+ span: 12,
+ labelWidth: "22%",
+ id: 5,
+ hide: true,
+ change: this.handleCheckboxChange,
rules: [{
required: true,
message: "璇烽�夋嫨缁勫悎鏂规硶",
trigger: "blur"
}],
- dicData: [
- {
- label: "鏁板瓧",
- value: '1638024706425188354'
- },
- {
- label: "绗﹀彿",
- value: '1638097837516926977'
- },
- {
- label: "灏忓啓瀛楁瘝",
- value: '1638097772983365634'
- },
- {
- label: "澶у啓瀛楁瘝",
- value: '1638097733707902977'
- },
- ],
+ dicUrl: '/api/ubcs-system/combination/select',
+ dicMethod: 'get',
+ props: {
+ value: "ID",
+ label: "NAME",
+ },
},
{
label: '蹇呭~绉嶇被',
prop: 'requiredType',
type: 'select',
- labelWidth: 91,
+ span: 12,
+ labelWidth: "25%",
+ change: this.handleSelectChange,
rules: [{
required: true,
message: "璇烽�夋嫨蹇呭~绉嶇被",
trigger: "blur"
}],
- dicData:[{
- label:'1绉�',
- value:0
+ dicData: [{
+ label: '1绉�',
+ value: 1,
+ disabled: false
},
{
- label:'2绉�',
- value:1
+ label: '2绉�',
+ value: 2,
+ disabled: false
},
{
- label:'3绉�',
- value:2
+ label: '3绉�',
+ value: 3,
+ disabled: false
},
{
- label:'4绉�',
- value:3
+ label: '4绉�',
+ value: 4,
+ disabled: false
}
]
},
{
label: '杩囨湡鏃堕棿(澶�)',
- prop:'expirationTime',
- labelWidth:115,
+ prop: 'expirationTime',
+ span: 12,
+ labelWidth: "22%",
rules: [{
required: true,
- message: "璇疯緭鍏ヨ繃鏈熸椂闂�",
- trigger: "blur"
+ 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',
- labelWidth:113,
+ prop: 'reminderTime',
+ span: 12,
+ labelWidth: "25%",
rules: [{
required: true,
- message: "璇疯緭鍏ユ彁閱掓椂闂�",
- trigger: "blur"
+ 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',
- labelWidth:116,
+ prop: 'lockingNum',
+ span: 12,
+ labelWidth: "22%",
rules: [{
required: true,
- message: "璇疯緭鍏ラ攣瀹氭鏁�",
- trigger: "blur"
+ 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',
- labelWidth:128,
+ prop: 'lockingTime',
+ span: 12,
+ labelWidth: "25%",
rules: [{
required: true,
- message: "璇疯緭鍏ラ攣瀹氭椂闂�",
- trigger: "blur"
+ 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%",
rows: 5,
- rules: [{
- required: true,
- message: "璇风畝鎷弿杩�",
- trigger: "blur"
- }]
},
{
label: '鏄惁涓洪粯璁ょ瓥鐣�',
prop: 'isDefault',
type: 'switch',
labelWidth: 132,
- dicData:[{
- label:'鍚�',
- value:0
- },{
- label:'鏄�',
- value:1
+ dicData: [{
+ label: '鍚�',
+ value: 0
+ }, {
+ label: '鏄�',
+ value: 1
}]
}
],
}
}
-
},
created() {
this.onLoad()
-
},
- mount() {
+ methods: {
+ handleSelectChange(val) {
+ this.selectlength = val
+ },
+ handleCheckboxChange(val) {
+ const arr = this.option.column[5];
+ this.checkboxlength = val.value;
+ this.checkboxedit = this.checkboxlength.toString().split(",");
- },
- methods:{
- rowDel(row){
+ 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 &&
+ val.value.length > 0
+ ) {
+ this.showWarningMessage();
+ } else if (
+ this.selectlength.value > this.checkboxedit.length &&
+ this.checkboxedit.length > 0
+ ) {
+ this.showWarningMessage();
+ }
+ }
+ }
+
+ 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) {
+ 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]);
+ }
+ }
+ },
+
+ 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: "鍙栨秷",
@@ -252,13 +416,15 @@
message: "鎿嶄綔鎴愬姛!"
});
this.onLoad();
- });
+ }).catch(res => {
+ // console.log(res)
+ })
},
- rowSave(row,done){
+ rowSave(row, done) {
//灏嗗瘑鐮佺粍鍚堟柟寮忕殑鏁版嵁杞崲涓哄瓧绗︿覆
- const spliceId= row.combinationIds.toString()
- row.combinationIds=spliceId
- getadd(row).then(()=>{
+ const spliceId = row.combinationIds.toString()
+ row.combinationIds = spliceId
+ getadd(row).then((res) => {
// this.onLoad(this.page);
this.$message({
type: "success",
@@ -266,18 +432,38 @@
});
done(row)
this.onLoad()
- }).catch((res)=>{
- console.log(res)
+ }).catch((res) => {
+ this.$message.warning(res)
})
},
- rowUpdate(row,index,done){
- getupdata(row).then(()=>{
+ rowEdit(row) {
+ // console.log("鎵撳紑缂栬緫edit",row)
+ },
+ handleDel(row) {
+ this.$refs.crud.rowDel(row, row.$index);
+ },
+ 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(() => {
this.onLoad()
this.$message({
type: "success",
message: "淇敼鎴愬姛!"
});
done()
+ }).catch(res => {
+ // console.log(res)
})
},
onLoad(page, params = {}) {
@@ -288,7 +474,9 @@
// this.data = data.records;
// this.loading = false;
// this.selectionClear();
- this.data=res.data.data.content
+ // console.log(res)
+ this.page.total = res.data.data.total
+ this.data = res.data.data.records
});
}
}
@@ -296,6 +484,5 @@
}
</script>
-<style scoped>
-
+<style lang="scss" scoped>
</style>
--
Gitblit v1.10.0