From 26c0cdaef6f48c790be720cfc41b6a4a9a797e55 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 09 五月 2024 15:10:15 +0800
Subject: [PATCH] update 重构 workflow 模块与 system 模块解耦
---
src/views/system/user/index.vue | 59 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 31 insertions(+), 28 deletions(-)
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index a952954..c1bdcf9 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">
@@ -171,6 +158,7 @@
value-key="id"
placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬"
check-strictly
+ @change="handleDeptChange"
/>
</el-form-item>
</el-col>
@@ -210,7 +198,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 +218,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 +286,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);
@@ -402,7 +391,8 @@
max: 20,
message: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿',
trigger: 'blur'
- }
+ },
+ { pattern: /^[^<>"'|\\]+$/, message: '涓嶈兘鍖呭惈闈炴硶瀛楃锛�< > " \' \\\ |', trigger: 'blur' }
],
email: [
{
@@ -417,7 +407,8 @@
message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜',
trigger: 'blur'
}
- ]
+ ],
+ roleIds: [{ required: true, message: '鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖', trigger: 'blur' }]
}
};
const data = reactive<PageData<UserForm, UserQuery>>(initData);
@@ -511,7 +502,12 @@
cancelButtonText: '鍙栨秷',
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
- inputErrorMessage: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿'
+ inputErrorMessage: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿',
+ inputValidator: (value) => {
+ if (/<|>|"|'|\||\\/.test(value)) {
+ return '涓嶈兘鍖呭惈闈炴硶瀛楃锛�< > " \' \\\ |';
+ }
+ }
})
);
if (!err && res) {
@@ -598,6 +594,7 @@
roleOptions.value = data.roles;
form.value.password = initPassword.value.toString();
};
+
/** 淇敼鎸夐挳鎿嶄綔 */
const handleUpdate = async (row?: UserForm) => {
reset();
@@ -651,6 +648,12 @@
initPassword.value = response.data;
});
});
+
+async function handleDeptChange(value: number | string) {
+ const response = await optionselect(value);
+ postOptions.value = response.data;
+ form.value.postIds = [];
+}
</script>
<style lang="scss" scoped></style>
--
Gitblit v1.9.3