From e2254651ca3e83f4343c5590b10635331fa801a0 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期三, 24 四月 2024 23:46:05 +0800 Subject: [PATCH] fix 修复 !pr107 遗留问题 --- src/views/system/user/index.vue | 69 +++++++++++++++++++--------------- 1 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 56078d9..e8e0c23 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -23,22 +23,16 @@ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> <div v-show="showSearch" class="mb-[10px]"> <el-card shadow="hover"> - <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="68px"> + <el-form ref="queryFormRef" :model="queryParams" :inline="true"> <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> - <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable style="width: 240px" @keyup.enter="handleQuery" /> + <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> - <el-input - v-model="queryParams.phonenumber" - placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" - clearable - style="width: 240px" - @keyup.enter="handleQuery" - /> + <el-input v-model="queryParams.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="鐘舵��" prop="status"> - <el-select v-model="queryParams.status" placeholder="鐢ㄦ埛鐘舵��" clearable style="width: 240px"> + <el-select v-model="queryParams.status" placeholder="鐢ㄦ埛鐘舵��" clearable> <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> @@ -101,14 +95,7 @@ <el-table-column v-if="columns[0].visible" key="userId" label="鐢ㄦ埛缂栧彿" align="center" prop="userId" /> <el-table-column v-if="columns[1].visible" key="userName" label="鐢ㄦ埛鍚嶇О" align="center" prop="userName" :show-overflow-tooltip="true" /> <el-table-column v-if="columns[2].visible" key="nickName" label="鐢ㄦ埛鏄电О" align="center" prop="nickName" :show-overflow-tooltip="true" /> - <el-table-column - v-if="columns[3].visible" - key="deptName" - label="閮ㄩ棬" - align="center" - prop="dept.deptName" - :show-overflow-tooltip="true" - /> + <el-table-column v-if="columns[3].visible" key="deptName" label="閮ㄩ棬" align="center" prop="deptName" :show-overflow-tooltip="true" /> <el-table-column v-if="columns[4].visible" key="phonenumber" label="鎵嬫満鍙风爜" align="center" prop="phonenumber" width="120" /> <el-table-column v-if="columns[5].visible" key="status" label="鐘舵��" align="center"> <template #default="scope"> @@ -210,7 +197,7 @@ <el-col :span="12"> <el-form-item label="鐘舵��"> <el-radio-group v-model="form.status"> - <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio> + <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio> </el-radio-group> </el-form-item> </el-col> @@ -230,8 +217,8 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="瑙掕壊"> - <el-select v-model="form.roleIds" multiple placeholder="璇烽�夋嫨"> + <el-form-item label="瑙掕壊" prop="roleIds"> + <el-select v-model="form.roleIds" filterable multiple placeholder="璇烽�夋嫨"> <el-option v-for="item in roleOptions" :key="item.roleId" @@ -298,15 +285,16 @@ <script setup name="User" lang="ts"> import api from '@/api/system/user'; import { UserForm, UserQuery, UserVO } from '@/api/system/user/types'; -import { treeselect } from '@/api/system/dept'; import { DeptVO } from '@/api/system/dept/types'; import { RoleVO } from '@/api/system/role/types'; -import { PostVO } from '@/api/system/post/types'; -import { to } from 'await-to-js'; +import {PostQuery, PostVO} from '@/api/system/post/types'; +import { treeselect } from '@/api/system/dept'; import { globalHeaders } from '@/utils/request'; +import { to } from 'await-to-js'; +import {optionselect} from "@/api/system/post"; const router = useRouter(); -const { proxy } = getCurrentInstance(); +const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { sys_normal_disable, sys_user_sex } = toRefs<any>(proxy?.useDict('sys_normal_disable', 'sys_user_sex')); const userList = ref<UserVO[]>(); const loading = ref(true); @@ -372,7 +360,8 @@ postIds: [], roleIds: [] }; -const data = reactive<PageData<UserForm, UserQuery>>({ + +const initData: PageData<UserForm, UserQuery> = { form: { ...initFormData }, queryParams: { pageNum: 1, @@ -380,7 +369,8 @@ userName: '', phonenumber: '', status: '', - deptId: '' + deptId: '', + roleId: '' }, rules: { userName: [ @@ -400,7 +390,8 @@ max: 20, message: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿', trigger: 'blur' - } + }, + { pattern: /^[^<>"'|\\]+$/, message: '涓嶈兘鍖呭惈闈炴硶瀛楃锛�< > " \' \\\ |', trigger: 'blur' } ], email: [ { @@ -415,9 +406,11 @@ message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', trigger: 'blur' } - ] + ], + roleIds: [{ required: true, message: '鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖', trigger: 'blur' }] } -}); +}; +const data = reactive<PageData<UserForm, UserQuery>>(initData); const { queryParams, form, rules } = toRefs<PageData<UserForm, UserQuery>>(data); @@ -508,7 +501,12 @@ cancelButtonText: '鍙栨秷', closeOnClickModal: false, inputPattern: /^.{5,20}$/, - inputErrorMessage: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿' + inputErrorMessage: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿', + inputValidator: (value) => { + if (/<|>|"|'|\||\\/.test(value)) { + return '涓嶈兘鍖呭惈闈炴硶瀛楃锛�< > " \' \\\ |'; + } + } }) ); if (!err && res) { @@ -648,6 +646,15 @@ initPassword.value = response.data; }); }); + +// 鐩戞祴閮ㄩ棬鍙樺寲鍔犺浇宀椾綅 +watch( + () => form.value.deptId, + async () => { + const response = await optionselect(form.value.deptId); + postOptions.value = response.data; + } +); </script> <style lang="scss" scoped></style> -- Gitblit v1.9.3