From aaae404b2a5a36239f4edcc567af3d0c95da2323 Mon Sep 17 00:00:00 2001 From: yjb <yjb@greenism.net> Date: 星期五, 17 九月 2021 19:14:41 +0800 Subject: [PATCH] Cron表达式生成器关闭时销毁,避免再次打开时存在上一次修改的数据 --- ruoyi-ui/src/views/system/user/index.vue | 106 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 61 insertions(+), 45 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index d16465e..9dea91d 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -57,10 +57,10 @@ style="width: 240px" > <el-option - v-for="dict in statusOptions" - :key="dict.dictValue" - :label="dict.dictLabel" - :value="dict.dictValue" + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" /> </el-select> </el-form-item> @@ -167,7 +167,7 @@ width="160" class-name="small-padding fixed-width" > - <template slot-scope="scope"> + <template slot-scope="scope" v-if="scope.row.userId !== 1"> <el-button size="mini" type="text" @@ -176,20 +176,23 @@ v-hasPermi="['system:user:edit']" >修改</el-button> <el-button - v-if="scope.row.userId !== 1" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']" >删除</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-key" - @click="handleResetPwd(scope.row)" - v-hasPermi="['system:user:resetPwd']" - >重置</el-button> + <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']"> + <span class="el-dropdown-link"> + <i class="el-icon-d-arrow-right el-icon--right"></i>更多 + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="handleResetPwd" icon="el-icon-key" + v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item> + <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" + v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> </template> </el-table-column> </el-table> @@ -210,7 +213,7 @@ <el-row> <el-col :span="12"> <el-form-item label="用户昵称" prop="nickName"> - <el-input v-model="form.nickName" placeholder="请输入用户昵称" /> + <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" /> </el-form-item> </el-col> <el-col :span="12"> @@ -234,12 +237,12 @@ <el-row> <el-col :span="12"> <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName"> - <el-input v-model="form.userName" placeholder="请输入用户名称" /> + <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password"> - <el-input v-model="form.password" placeholder="请输入用户密码" type="password" /> + <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> </el-form-item> </el-col> </el-row> @@ -248,10 +251,10 @@ <el-form-item label="用户性别"> <el-select v-model="form.sex" placeholder="请选择"> <el-option - v-for="dict in sexOptions" - :key="dict.dictValue" - :label="dict.dictLabel" - :value="dict.dictValue" + v-for="dict in dict.type.sys_user_sex" + :key="dict.value" + :label="dict.label" + :value="dict.value" ></el-option> </el-select> </el-form-item> @@ -260,10 +263,10 @@ <el-form-item label="状态"> <el-radio-group v-model="form.status"> <el-radio - v-for="dict in statusOptions" - :key="dict.dictValue" - :label="dict.dictValue" - >{{dict.dictLabel}}</el-radio> + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.value" + >{{dict.label}}</el-radio> </el-radio-group> </el-form-item> </el-col> @@ -325,15 +328,14 @@ drag > <i class="el-icon-upload"></i> - <div class="el-upload__text"> - 将文件拖到此处,或 - <em>点击上传</em> + <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> + <div class="el-upload__tip text-center" slot="tip"> + <div class="el-upload__tip" slot="tip"> + <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据 + </div> + <span>仅允许导入xls、xlsx格式文件。</span> + <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link> </div> - <div class="el-upload__tip" slot="tip"> - <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据 - <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link> - </div> - <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div> </el-upload> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitFileForm">确 定</el-button> @@ -352,6 +354,7 @@ export default { name: "User", + dicts: ['sys_normal_disable', 'sys_user_sex'], components: { Treeselect }, data() { return { @@ -383,10 +386,6 @@ initPassword: undefined, // 日期范围 dateRange: [], - // 状态数据字典 - statusOptions: [], - // 性别状态字典 - sexOptions: [], // 岗位选项 postOptions: [], // 角色选项 @@ -434,13 +433,15 @@ // 表单校验 rules: { userName: [ - { required: true, message: "用户名称不能为空", trigger: "blur" } + { required: true, message: "用户名称不能为空", trigger: "blur" }, + { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' } ], nickName: [ { required: true, message: "用户昵称不能为空", trigger: "blur" } ], password: [ - { required: true, message: "用户密码不能为空", trigger: "blur" } + { required: true, message: "用户密码不能为空", trigger: "blur" }, + { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' } ], email: [ { @@ -468,12 +469,6 @@ created() { this.getList(); this.getTreeselect(); - this.getDicts("sys_normal_disable").then(response => { - this.statusOptions = response.data; - }); - this.getDicts("sys_user_sex").then(response => { - this.sexOptions = response.data; - }); this.getConfigKey("sys.user.initPassword").then(response => { this.initPassword = response.msg; }); @@ -560,6 +555,19 @@ this.single = selection.length != 1; this.multiple = !selection.length; }, + // 更多操作触发 + handleCommand(command, row) { + switch (command) { + case "handleResetPwd": + this.handleResetPwd(row); + break; + case "handleAuthRole": + this.handleAuthRole(row); + break; + default: + break; + } + }, /** 新增按钮操作 */ handleAdd() { this.reset(); @@ -592,13 +600,21 @@ handleResetPwd(row) { this.$prompt('请输入"' + row.userName + '"的新密码', "提示", { confirmButtonText: "确定", - cancelButtonText: "取消" + cancelButtonText: "取消", + closeOnClickModal: false, + inputPattern: /^.{5,20}$/, + inputErrorMessage: "用户密码长度必须介于 5 和 20 之间", }).then(({ value }) => { resetUserPwd(row.userId, value).then(response => { this.msgSuccess("修改成功,新密码是:" + value); }); }).catch(() => {}); }, + /** 分配角色操作 */ + handleAuthRole: function(row) { + const userId = row.userId; + this.$router.push("/system/user-auth/role/" + userId); + }, /** 提交按钮 */ submitForm: function() { this.$refs["form"].validate(valid => { -- Gitblit v1.9.2