From de967d5d54a6eee38221ea14b2472401974608db Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 10 七月 2024 18:25:04 +0800
Subject: [PATCH] 晚上上传组件导入提示、调整默认对话框边距、密码策略查询以及新增修改 密码长度、必填种类、锁定时间等正则校验 完善启动流程默认传参
---
Source/plt-web/plt-web-ui/src/views/system/department/option.js | 1
Source/plt-web/plt-web-ui/src/views/system/role/index.vue | 4
Source/plt-web/plt-web-ui/src/api/system/password/api.js | 13
Source/plt-web/plt-web-ui/src/components/actions/handlers.js | 2
Source/plt-web/plt-web-ui/src/components/actions/base/downloadFileAction.js | 1
Source/plt-web/plt-web-ui/src/components/actions/base/uploadFileAction.js | 2
Source/plt-web/plt-web-ui/src/views/system/department/index.vue | 21 +
Source/plt-web/plt-web-ui/src/views/system/password/index.vue | 440 +++++++++++++++++++++++++++++++
Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue | 18 +
Source/plt-web/plt-web-ui/src/views/system/password/option.js | 249 +++++++++++++++++
Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue | 12
Source/plt-web/plt-web-ui/src/App.vue | 2
Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js | 50 +-
Source/plt-web/plt-web-ui/src/views/system/user/index.vue | 7
Source/plt-web/plt-web-ui/src/components/actions/base/uploadFile.vue | 15
15 files changed, 785 insertions(+), 52 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/App.vue b/Source/plt-web/plt-web-ui/src/App.vue
index f1e0fcb..5dd0d0d 100644
--- a/Source/plt-web/plt-web-ui/src/App.vue
+++ b/Source/plt-web/plt-web-ui/src/App.vue
@@ -39,7 +39,7 @@
margin-top: 0 !important;
}
.avue-dialog .el-dialog__body{
- padding: 20px;
+ padding: 20px 20px 30px 20px; // 涓婂彸涓嬪乏
margin-bottom: 20px !important;
}
.avue--detail .el-col{
diff --git a/Source/plt-web/plt-web-ui/src/api/system/password/api.js b/Source/plt-web/plt-web-ui/src/api/system/password/api.js
new file mode 100644
index 0000000..57153dc
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/api/system/password/api.js
@@ -0,0 +1,13 @@
+import request from '@/router/axios';
+
+// 鍒楄〃鏌ヨ
+export function refDataGrid(page,limit) {
+ return request({
+ url: "/api/passwordStrategyQueryController/refDataGrid",
+ method: "get",
+ params:{
+ page,
+ limit,
+ }
+ });
+}
diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue
index 37862b0..3c3da9d 100644
--- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue
+++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue
@@ -10,11 +10,16 @@
class="avue-dialog"
style="margin-top: -20vh !important;"
>
- <Divider left="30px" text="瀵煎叆鎻愮ず"></Divider>
- <ul>
+ <Divider left="30px" text="瀵煎叆鎻愮ず">
+ </Divider>
+ <ul v-if="tipList.length === 0" style="color: #f33939">
<li>
璇风偣鍑绘祻瑙堟枃浠惰繘琛屼笂浼�
</li>
+ </ul>
+
+ <ul style="color: #f33939" v-if="tipList.length >=1 ">
+ <li v-for="(item, index) in tipList" :key="index">{{ index + 1 }}: {{ item }} 銆�</li>
</ul>
<Divider left="30px" text="閫夋嫨鏂囦欢鍚庝細鑷姩涓婁紶"></Divider>
<el-upload
@@ -43,21 +48,30 @@
export default {
name: "upload-file",
props: {
+ // 鎺у埗涓婁紶绫诲瀷 鏍煎紡涓�: ['xls', 'xlsx'],
fileType: {
type: Array,
default: () => []
},
+ // 瀵硅瘽妗嗗ご閮ㄥ悕绉�
title: {
type: String,
default: '涓婁紶鏂囦欢'
},
+ // 蹇呬紶 涓婁紶鐨勫湴鍧�
fileUrl: {
type: String,
default: ''
},
+ // 璇锋眰鍦板潃 鎼哄甫鍙傛暟
fileData: {
type: Array,
default: () => []
+ },
+ // 瀵煎叆鎻愮ず鏂囧瓧 tipList:["瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」","閮ㄩ棬鍒椾笂涓嬬骇鍏崇郴蹇呴』鎸夌収鍙嶆枩鏉犻殧寮�(/)"]
+ tipList:{
+ type:Array,
+ default:() => []
}
},
data() {
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js b/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js
index e81ff9b..f13002d 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js
@@ -10,33 +10,35 @@
export const doAction = (options,callback) => {
//multi 鏄惁寮�鍚閫�
//checknotprocess 鏄惁鍏佽鍙戣捣娴佺▼
+ //templateType 娴佺▼妯℃澘type 蹇呭~
+ //filterTemplate 娴佺▼杩囨护妯℃澘淇℃伅
options.sourceData = options.sourceData || {};
options.dataStore = options.dataStore || [];
- // if (!options.dataStore || options.dataStore.length < 1) {
- // Vue.prototype.$message.error("璇烽�夋嫨闇�瑕佸彂璧锋祦绋嬬殑鏁版嵁");
- // return false;
- // }
- // if (!options.paramVOS.multi && options.dataStore.length > 1) {
- // Vue.prototype.$message.error("浠呰兘閫夋嫨涓�鏉℃暟鎹彂璧锋祦绋�");
- // return false;
- // }
- //
- // //楠岃瘉涓嶅厑璁稿惎鍔ㄧ殑鏉′欢
- // if(!validatenull(options.paramVOS.checknotprocess)) {
- // let notprocess = options.paramVOS.checknotprocess.split('&');
- // let checknotprocess=false;
- // notprocess.forEach((item,i)=>{
- // if (options.dataStore[0][item.split('=')[0]] == item.split('=')[1]) {
- // checknotprocess=true;
- // return false;
- // }
- // })
- // if (checknotprocess) {
- // Vue.prototype.$message.error(replaceFreeMarker(options.paramVOS.checknotprocessmsg,options.dataStore,{}) || "褰撳墠鏁版嵁涓嶅厑璁稿彂璧锋祦绋�");
- // return false;
- // }
- // }
+ if (!options.dataStore || options.dataStore.length < 1) {
+ Vue.prototype.$message.error("璇烽�夋嫨闇�瑕佸彂璧锋祦绋嬬殑鏁版嵁");
+ return false;
+ }
+ if (!options.paramVOS.multi && options.dataStore.length > 1) {
+ Vue.prototype.$message.error("浠呰兘閫夋嫨涓�鏉℃暟鎹彂璧锋祦绋�");
+ return false;
+ }
+
+ //楠岃瘉涓嶅厑璁稿惎鍔ㄧ殑鏉′欢
+ if(!validatenull(options.paramVOS.checknotprocess)) {
+ let notprocess = options.paramVOS.checknotprocess.split('&');
+ let checknotprocess=false;
+ notprocess.forEach((item,i)=>{
+ if (options.dataStore[0][item.split('=')[0]] == item.split('=')[1]) {
+ checknotprocess=true;
+ return false;
+ }
+ })
+ if (checknotprocess) {
+ Vue.prototype.$message.error(replaceFreeMarker(options.paramVOS.checknotprocessmsg,options.dataStore,{}) || "褰撳墠鏁版嵁涓嶅厑璁稿彂璧锋祦绋�");
+ return false;
+ }
+ }
callPreEvent(options, doBefore, function (options) {
showStartWindow(options, function () {
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/downloadFileAction.js b/Source/plt-web/plt-web-ui/src/components/actions/base/downloadFileAction.js
index 85da8fe..da79423 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/downloadFileAction.js
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/downloadFileAction.js
@@ -39,7 +39,6 @@
let data = new FormData();
data.append('fileOid',oids);
download(data).then(res => {
- console.log(res);
if (res) {
func.downloadFileByBlobHandler(res);
Vue.prototype.$message.success("涓嬭浇鎴愬姛");
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue
index b374b46..11a7e3b 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue
@@ -162,16 +162,18 @@
},
created() {
// this.modelNameChange();
- this.getWorkByType();
+
},
mounted() {
+ this.getWorkByType();
},
methods: {
// 鑾峰彇娴佺▼妯℃澘淇℃伅
getWorkByType() {
+ console.log('this.paramVOS',this.paramVOS)
let params = {
- type: '鏂囨。瀹$娴佺▼',
- filterTemplate: "鏂囨。瀹$娴佺▼"
+ type: this.paramVOS.templatetype,
+ filterTemplate: this.paramVOS.filterTemplate || ""
}
getTemplateByType(params).then(res => {
const data = res.data.data;
@@ -179,7 +181,7 @@
this.processTemplateList = data;
this.saveParam.processTemplate = data[0].value;
- this.saveParam.processName = this.paramVOS.processName || userInfo.content.userName + '-' + data[0].value; // 瀵规祦绋嬫ā鏉� 娴佺▼鍚嶇О璧嬮粯璁ゅ��
+ this.saveParam.processName = this.paramVOS.processname || userInfo.content.userName + '-' + data[0].value; // 瀵规祦绋嬫ā鏉� 娴佺▼鍚嶇О璧嬮粯璁ゅ��
this.getProcessNode(data[0].attributes.oid); // 棣栨杩涘叆璋冪敤绗竴涓ā鏉跨殑鎵�鏈夎妭鐐�
}).catch(err => {
@@ -191,7 +193,7 @@
getProcessNode(oid) {
let params = {
processOid: oid,
- maxSecret: -1
+ maxSecret: this.paramVOS.maxSecret || -1
}
getAllProcessNode(params).then(res => {
const nodes = res.data.data;
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFile.vue b/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFile.vue
index 6b73c7c..8dc07bf 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFile.vue
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFile.vue
@@ -11,10 +11,11 @@
style="margin-top: -20vh !important;"
>
<Divider left="30px" text="瀵煎叆鎻愮ず"></Divider>
- <ul>
- <li>
+ <ul style="color: #e73a3a">
+ <li v-if="!paramVOS.tipList">
璇风偣鍑绘祻瑙堟枃浠惰繘琛屼笂浼�
</li>
+ <li v-if="paramVOS.tipList && paramVOS.tipList.length >=1 " v-for="(item,index) in paramVOS.tipList" :key="index"> {{index+1}} : {{item}}銆�</li>
</ul>
<Divider left="30px" text="閫夋嫨鏂囦欢鍚庝細鑷姩涓婁紶"></Divider>
<el-upload
@@ -87,9 +88,9 @@
return {
ownbizOid: this.sourceData.oid,
ownBtmName: this.sourceData.btmname,
- secretGrade: -1,
- fileDocClassify: '',
- updateFileFlag: true,
+ secretGrade: this.paramVOS.secretGrade || -1,
+ fileDocClassify: this.paramVOS.fileDocClassify || "",
+ updateFileFlag: this.paramVOS.updateFileFlag || true,
}
},
width() {
@@ -140,7 +141,7 @@
onSuccess(resbonse) {
if (resbonse.code === 200) {
this.$message.success("涓婁紶鎴愬姛锛�");
- this.dialogVisible = false;
+ this.visible = false;
}else {
this.$message.error(resbonse.msg);
}
@@ -155,7 +156,7 @@
if (file.status === "success" || file.status === "error") {
this.pageLoading.close();
}
- }
+ },
}
}
</script>
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFileAction.js b/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFileAction.js
index 13c4f04..72318a6 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFileAction.js
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/uploadFileAction.js
@@ -11,7 +11,7 @@
export const doAction = (options,callback) => {
options.sourceData = options.sourceData || {};
options.dataStore = options.dataStore || [];
- if (func.isEmptyObject(options.sourceData)) {
+ if (!options.dataStore || options.dataStore.length < 1) {
Vue.prototype.$message.error("璇烽�夋嫨瑕佷笂浼犵殑鍒嗙被锛�");
return false;
}
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/handlers.js b/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
index 31752f6..78d4ede 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
+++ b/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
@@ -28,7 +28,7 @@
module.doAction(options,callback);
})},
//鍚姩娴佺▼
- launchworkflow: () => {import("@/components/actions/base/StartWorkflowAction").then(module => {
+ startwork: () => {import("@/components/actions/base/StartWorkflowAction").then(module => {
module.doAction(options,callback);
})},
//涓婁紶鏂囦欢
diff --git a/Source/plt-web/plt-web-ui/src/views/system/department/index.vue b/Source/plt-web/plt-web-ui/src/views/system/department/index.vue
index d56868a..288f0ad 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/department/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/department/index.vue
@@ -25,9 +25,10 @@
</template>
<template slot="menuLeft" slot-scope="scope">
- <el-button icon="el-icon-school" plain size="small" type="primary" @click="assignMembersHandler">鍒嗛厤鎴愬憳</el-button>
+ <el-button icon="el-icon-school" plain size="small" type="primary" @click="assignMembersHandler">鍒嗛厤鎴愬憳
+ </el-button>
<el-button icon="el-icon-user" plain size="small" type="primary" @click="statisticsHandler">缁熻</el-button>
- <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="statisticsHandler">瀵煎叆閮ㄩ棬</el-button>
+ <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadHandler">瀵煎叆閮ㄩ棬</el-button>
<el-button icon="el-icon-download" plain size="small" type="primary" @click="downLoadHandler">涓嬭浇瀵煎叆妯℃澘</el-button>
</template>
</avue-crud>
@@ -62,6 +63,10 @@
:transferTitle="transferTitle" title="閮ㄩ棬娣诲姞鎴愬憳"
@transferSend="departTransferSend">
</transfer>
+
+ <!-- 瀵煎叆閮ㄩ棬 -->
+ <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆閮ㄩ棬"
+ @updata="getTableList"></upload-file>
</basic-container>
</template>
@@ -131,12 +136,16 @@
label: '瑙掕壊',
prop: 'pkPersonName',
sortable: true,
+ overHidden: true,
},
]
},
leftTransferData: [],
rightTransferData: [],
transferTitle: ['寰呴�変汉鍛�', '宸查�変汉鍛�'],
+ tipList: ['瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」', '瀵煎叆缁撴瀯涓烘爲缁撴瀯鏃惰淇濊瘉ID鍒椾笉鑳介噸澶�', '鐖禝D璇蜂娇鐢ㄧ晫闈笂閮ㄩ棬鐨勫敮涓�鏍囪瘑ID鎴栬�匛xcel涓墜鍔ㄨ緭鍏ョ殑ID', '鐖禝D鍒椾负绌烘椂锛屽鍏ョ殑閮ㄩ棬鍗充负椤跺眰閮ㄩ棬'],
+ upFileType: ['xls', 'xlsx'],
+ fileUrl: 'api/departmentQueryController/importDept',
}
},
methods: {
@@ -273,7 +282,6 @@
}
countSmUserByDeptOid({pkDepartment: this.departCurrenRow.ALLDept === 'ALLDept' ? null : this.departCurrenRow.oid}).then(res => {
- console.log(res);
if (res.data.code === 200) {
const data = res.data.data;
this.countData = data.map(item => {
@@ -339,13 +347,18 @@
},
// 涓嬭浇瀵煎叆妯℃澘
- downLoadHandler(){
+ downLoadHandler() {
download().then(res => {
func.downloadFileByBlobHandler(res);
this.$message.success('涓嬭浇鎴愬姛')
}).catch(err => {
this.$message.error(err);
})
+ },
+
+ // 瀵煎叆閮ㄩ棬
+ upLoadHandler() {
+ this.$refs.upload.visible = true;
}
}
}
diff --git a/Source/plt-web/plt-web-ui/src/views/system/department/option.js b/Source/plt-web/plt-web-ui/src/views/system/department/option.js
index fe70287..42601ec 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/department/option.js
+++ b/Source/plt-web/plt-web-ui/src/views/system/department/option.js
@@ -2,6 +2,7 @@
{
label: '鍚嶇О',
prop: 'name',
+ align:'left',
rules: [
{
required: true,
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 54b19c1..7a49cdd 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
@@ -1,13 +1,449 @@
<template>
+ <basic-container>
+ <avue-crud
+ ref="passWordCrud"
+ :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="menu" slot-scope="{ row, index }">
+ <el-button
+ icon="el-icon-edit"
+ size="small"
+ type="text"
+ @click="handleEdit(row, index)"
+ >
+ 缂栬緫
+ </el-button>
+ <el-button
+ icon="el-icon-delete"
+ size="small"
+ type="text"
+ @click="handleDel(row, index)"
+ >
+ 鍒犻櫎
+ </el-button>
+ </template>
+
+
+ <template slot="name" slot-scope="{row}">
+ <el-tag>{{row.name}}</el-tag>
+ </template>
+ <template slot="defaultFlag" slot-scope="{row}">
+ <el-tag v-if="row.defaultFlag" type="success">鏄�</el-tag>
+ <el-tag v-if="!row.defaultFlag" type="danger">鍚�</el-tag>
+ </template>
+ </avue-crud>
+ </basic-container>
</template>
<script>
+import {refDataGrid} from "@/api/system/password/api"
+import basicOption from "@/util/basic-option";
+import {column} from "@/views/system/password/option";
+import Vue from "vue";
export default {
- name: "index"
+ name: "index",
+ data(){
+ return{
+ form:{},
+ tableData:[],
+ option:{
+ ...basicOption,
+ selection:false,
+ calcHeight:-60,
+ menuWidth:150,
+ column:[
+ {
+ label: '绛栫暐鍚嶇О',
+ prop: 'name',
+ sortable: true,
+ span: 24,
+ labelWidth: "11%",
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: '瀵嗙爜鏈�灏忛暱搴�',
+ prop: 'minLength',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ this.minValue = value * 1
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ } else if ( this.minValue >= this.maxValue && this.maxValue != 0) {
+ callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'))
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '瀵嗙爜鏈�澶ч暱搴�',
+ prop: 'maxLength',
+ sortable: true,
+ span: 12,
+ labelWidth: "28%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ this.maxValue = value * 1
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
+ } else if ( this.maxValue <= this.minValue) {
+ callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'change'
+ }]
+ },
+ {
+ label: '缁勫悎鏂瑰紡',
+ prop: 'requireCharTypeText',
+ sortable: true,
+ display: false,
+ overHidden: true,
+ labelWidth: "22%",
+ },
+ {
+ label: '缁勫悎鏂瑰紡',
+ prop: 'requireCharType',
+ type: "checkbox",
+ hide: true,
+ span: 12,
+ labelWidth: "22%",
+ change: this.handleCheckboxChange,
+ rules: [{
+ required: true,
+ message: "璇烽�夋嫨缁勫悎鏂规硶",
+ trigger: "blur"
+ }],
+ dicData: [
+ {
+ label: '鏁板瓧',
+ value: "number"
+ },
+ {
+ label: '灏忓啓瀛楁瘝',
+ value: "lower"
+ },
+ {
+ label: '澶у啓瀛楁瘝',
+ value: "upper"
+ },
+ {
+ label: '绗﹀彿',
+ value: "symbol"
+ },
+ ]
+ },
+ {
+ label: '蹇呭~绉嶇被',
+ prop: 'requireCharCount',
+ type: 'select',
+ span: 12,
+ labelWidth: "28%",
+ sortable: true,
+ change: this.handleSelectChange,
+ dicData: [{
+ label: '1绉�',
+ value: 1,
+ disabled: false
+ },
+ {
+ label: '2绉�',
+ value: 2,
+ disabled: false
+ },
+ {
+ label: '3绉�',
+ value: 3,
+ disabled: false
+ },
+ {
+ label: '4绉�',
+ value: 4,
+ disabled: false
+ }
+ ]
+ },
+ {
+ label: '杩囨湡鏃堕棿锛堝ぉ)',
+ prop: 'validDay',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '鎻愰啋鏃堕棿锛堝ぉ锛�',
+ prop: 'remindDay',
+ sortable: true,
+ span: 12,
+ labelWidth: "28%",
+ width: 140,
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '閲嶈瘯娆℃暟',
+ prop: 'retryTime',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('閲嶈瘯娆℃暟'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('閲嶈瘯娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '閿佸畾鏃堕棿锛堝垎閽燂級',
+ prop: 'lockTime',
+ sortable: true,
+ width: 150,
+ span: 12,
+ labelWidth: "28%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '鎻忚堪',
+ prop: 'description',
+ overHidden: true,
+ type: 'textarea',
+ span: 12,
+ labelWidth: "22%",
+ rows: 5,
+ },
+ {
+ label: '鏄惁涓洪粯璁ょ瓥鐣�',
+ prop: 'defaultFlag',
+ type: 'switch',
+ labelWidth: "30%",
+ dicData: [{
+ label: '鍚�',
+ value: 0
+ }, {
+ label: '鏄�',
+ value: 1
+ }]
+ },
+ ]
+ },
+ 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:{
+ // 琛ㄦ牸鍒濆鍖栬姹�
+ getTableList() {
+ this.tableLoading = true;
+ refDataGrid(this.page.currentPage, this.page.pageSize).then(res =>{
+ console.log(res);
+ this.tableData = res.data.data;
+ this.page.total = res.data.total;
+ this.tableLoading = false;
+ })
+ },
+
+ // 琛ㄦ牸澶撮儴鍒锋柊
+ handleRefresh(){
+ this.getTableList();
+ },
+
+ // 鏉℃暟
+ sizeChange(val){
+ this.page.pageSize = val;
+ },
+
+ // 椤电爜
+ currentChange(val){
+ this.page.currentPage = val;
+ },
+
+ // 娣诲姞
+ rowSaveHandler(){
+ console.log(this.form.requireCharCount);
+ },
+
+ // 缂栬緫鎸夐挳
+ handleEdit(row,index){
+ this.$refs.passWordCrud.rowEdit(row, index);
+ this.editFlag = true;
+ this.checkboxNumber = row.requireCharType.split(",");
+ this.selectNumber = row.requireCharCount;
+ },
+
+ // 淇敼
+ rowUpdateHandler(){
+
+ },
+
+ // 鍒犻櫎鎸夐挳
+ handleDel(){
+
+ },
+
+ // 鍒犻櫎
+ rowDeleteHandler(){
+
+ },
+
+ // 蹇呭~绉嶇被changge浜嬩欢
+ handleSelectChange(val){
+ this.selectlength = val.value;
+ },
+
+ // 娣诲姞淇敼 缁勫悎鏂瑰紡鍒ゆ柇閫昏緫
+ handleCheckboxChange(val) {
+ const arr = this.option.column.find(item => item.prop === 'requireCharCount'); // 鎵惧埌option閲岄潰蹇呭~绉嶇被鐨勬暟缁�
+ this.checkboxlength = val.value;
+ this.checkboxedit = this.checkboxlength.toString().split(",");
+
+ if (val.value !== undefined && val.value !== null) {
+ if (this.checkboxlist === val.value) {
+ return;
+ } else {
+ this.checkboxlist = val.value;
+ if (this.selectlength > val.value.length && val.value.length > 0) {
+ // 鍒ゆ柇濡傛灉蹇呭~绉嶇被澶т簬缁勫悎鏂瑰紡娓呯┖
+ this.form.requireCharCount = "";
+ } else if (this.selectlength > this.checkboxedit.length && this.checkboxedit.length > 0) {
+ // 淇敼鍚屾牱閫昏緫
+ this.form.requireCharCount = "";
+ }
+ }
+ }
+
+ // 澶勭悊 蹇呭~绉嶇被閫夐」绂佺敤
+ 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);
+ });
+ },
+
+ }
}
</script>
-<style scoped>
+<style scoped lang="scss">
+.avue-form__group--flex{
+ padding-bottom: 25px !important;
+}
</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/system/password/option.js b/Source/plt-web/plt-web-ui/src/views/system/password/option.js
new file mode 100644
index 0000000..be04f8c
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/system/password/option.js
@@ -0,0 +1,249 @@
+import Vue from "vue";
+// 鏆傛椂涓嶇敤澶栭儴js鏂囦欢鍐欏湪vue鍐呴儴鏂囦欢 鍥犱负鏄袱涓猚hange浜嬩欢鑱斿姩锛宯ew涓�涓獀ue瀹炰緥鎴栬�呮瀯閫犲櫒瀹炰緥浼氬鑷村叾瀹冩柟娉曞0鏄庣殑鍙橀噺涔熶細閲嶆柊鎭㈠榛樿鍊�
+let minValue = ""; // 鏈�灏忛暱搴alue
+let maxValue = ""; // 鏈�澶ч暱搴alue
+import passwordVue from '@/views/system/password/index'
+
+const app = new Vue(passwordVue);
+export const column = [
+ {
+ label: '绛栫暐鍚嶇О',
+ prop: 'name',
+ sortable: true,
+ span: 24,
+ labelWidth: "11%",
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: '瀵嗙爜鏈�灏忛暱搴�',
+ prop: 'minLength',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ minValue = value * 1
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ } else if (minValue >= maxValue && maxValue != 0) {
+ callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'))
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '瀵嗙爜鏈�澶ч暱搴�',
+ prop: 'maxLength',
+ sortable: true,
+ span: 12,
+ labelWidth: "28%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ maxValue = value * 1
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
+ } else if (maxValue <= minValue) {
+ callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'change'
+ }]
+ },
+ {
+ label: '缁勫悎鏂瑰紡',
+ prop: 'requireCharTypeText',
+ sortable: true,
+ display: false,
+ overHidden: true,
+ labelWidth: "22%",
+ },
+ {
+ label: '缁勫悎鏂瑰紡',
+ prop: 'requireCharType',
+ type: "checkbox",
+ hide: true,
+ span: 12,
+ labelWidth: "22%",
+ change: function (val){
+ const dialogConstructor = Vue.extend(passwordVue);
+ let instance = new dialogConstructor();
+ instance.handleCheckboxChange(val);
+ },
+ rules: [{
+ required: true,
+ message: "璇烽�夋嫨缁勫悎鏂规硶",
+ trigger: "blur"
+ }],
+ dicData: [
+ {
+ label: '鏁板瓧',
+ value: "number"
+ },
+ {
+ label: '灏忓啓瀛楁瘝',
+ value: "lower"
+ },
+ {
+ label: '澶у啓瀛楁瘝',
+ value: "upper"
+ },
+ {
+ label: '绗﹀彿',
+ value: "symbol"
+ },
+ ]
+ },
+ {
+ label: '蹇呭~绉嶇被',
+ prop: 'requireCharCount',
+ type: 'select',
+ span: 12,
+ labelWidth: "28%",
+ sortable: true,
+ change: function (val){
+ const dialogConstructor = Vue.extend(passwordVue);
+ let instance = new dialogConstructor();
+ instance.handleSelectChange(val);
+ },
+ dicData: [{
+ label: '1绉�',
+ value: 1,
+ disabled: false
+ },
+ {
+ label: '2绉�',
+ value: 2,
+ disabled: false
+ },
+ {
+ label: '3绉�',
+ value: 3,
+ disabled: false
+ },
+ {
+ label: '4绉�',
+ value: 4,
+ disabled: false
+ }
+ ]
+ },
+ {
+ label: '杩囨湡鏃堕棿锛堝ぉ)',
+ prop: 'validDay',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '鎻愰啋鏃堕棿锛堝ぉ锛�',
+ prop: 'remindDay',
+ sortable: true,
+ span: 12,
+ labelWidth: "28%",
+ width: 140,
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '閲嶈瘯娆℃暟',
+ prop: 'retryTime',
+ sortable: true,
+ span: 12,
+ labelWidth: "22%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('閲嶈瘯娆℃暟'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('閲嶈瘯娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '閿佸畾鏃堕棿锛堝垎閽燂級',
+ prop: 'lockTime',
+ sortable: true,
+ width: 150,
+ span: 12,
+ labelWidth: "28%",
+ rules: [{
+ required: true,
+ validator: (rule, value, callback) => {
+ if (value == "") {
+ callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
+ } else if (/[^\d]/g.test(value)) {
+ callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }]
+ },
+ {
+ label: '鎻忚堪',
+ prop: 'description',
+ overHidden: true,
+ type: 'textarea',
+ span: 12,
+ labelWidth: "22%",
+ rows: 5,
+ },
+ {
+ label: '鏄惁涓洪粯璁ょ瓥鐣�',
+ prop: 'defaultFlag',
+ type: 'switch',
+ labelWidth: "30%",
+ dicData: [{
+ label: '鍚�',
+ value: 0
+ }, {
+ label: '鏄�',
+ value: 1
+ }]
+ },
+]
diff --git a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
index 11b775a..f757b48 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
@@ -61,7 +61,7 @@
</el-dialog>
<!-- 瀵煎叆瑙掕壊 -->
- <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" @updata="getTableList" title="瀵煎叆瑙掕壊"></upload-file>
+ <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" @updata="getTableList" title="瀵煎叆瑙掕壊"></upload-file>
</basic-container>
</template>
@@ -132,11 +132,13 @@
label: '瑙掕壊',
prop: 'pkPersonName',
sortable: true,
+ overHidden: true,
},
]
},
upFileType: ['xls', 'xlsx'],
fileUrl: 'api/roleQueryController/importRole',
+ tipList:["瑙掕壊瀵煎叆鍙湁 鍚嶇О 鍜� 鎻忚堪 涓ゅ垪锛屼笖鍚嶇О涓哄繀杈撻」涓嶈兘涓虹┖"]
}
},
methods: {
diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
index 94dba49..cd91554 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
@@ -100,7 +100,7 @@
</el-dialog>
<!-- 瀵煎叆浜哄憳 -->
- <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" title="瀵煎叆浜哄憳" @updata="getTableList"></upload-file>
+ <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" title="瀵煎叆浜哄憳" @updata="getTableList"></upload-file>
<!-- 鍒嗛厤閮ㄩ棬瀵硅瘽妗� -->
<el-dialog
@@ -213,7 +213,8 @@
selectList: [],
leftRoleData: [], // 鍒嗛厤瑙掕壊绌挎妗嗗乏渚у垵濮嬫暟鎹�
rightRoleData: [], // 鍒嗛厤瑙掕壊绌挎妗嗗彸渚у垵濮嬫暟鎹�
- transferTitle: ['鐜版湁瑙掕壊', '鎷ユ湁瑙掕壊']
+ transferTitle: ['鐜版湁瑙掕壊', '鎷ユ湁瑙掕壊'],
+ tipList:["瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」","閮ㄩ棬鍒椾笂涓嬬骇鍏崇郴蹇呴』鎸夌収鍙嶆枩鏉犻殧寮�(/)"]
}
},
created() {
@@ -397,7 +398,7 @@
if (res.data.code === 200) {
this.$message.success(res.data.obj);
this.getTableList();
- done()
+ done();
}
}).catch(err => {
loading()
--
Gitblit v1.9.3