refactor: ♻️ 用户代码重构优化

This commit is contained in:
hxr 2023-10-07 23:59:23 +08:00
parent dda4893780
commit e25812358a
1 changed files with 34 additions and 25 deletions

View File

@ -1,3 +1,4 @@
<!-- 用户管理 -->
<script setup lang="ts">
defineOptions({
name: "User",
@ -27,31 +28,45 @@ const queryFormRef = ref(ElForm); // 查询表单
const userFormRef = ref(ElForm); //
const uploadRef = ref<UploadInstance>(); //
const loading = ref(false);
const ids = ref([]);
const total = ref(0);
const loading = ref(false); //
const removeIds = ref([]); // ID
const queryParams = reactive<UserQuery>({
pageNum: 1,
pageSize: 10,
});
const userList = ref<UserPageVO[]>();
const total = ref(0); //
const pageData = ref<UserPageVO[]>(); //
const deptList = ref<OptionType[]>(); //
const roleList = ref<OptionType[]>(); //
//
const dialog = reactive({
visible: false,
type: "user-form",
width: 1200,
title: "",
});
//
const formData = reactive<UserForm>({
status: 1,
});
//
const importData = reactive({
deptId: undefined,
file: undefined,
fileList: [],
});
//
const rules = reactive({
username: [{ required: true, message: "用户名不能为空", trigger: "blur" }],
nickname: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
deptId: [{ required: true, message: "所属部门不能为空", trigger: "blur" }],
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "blur" }],
roleremoveIds: [
{ required: true, message: "用户角色不能为空", trigger: "blur" },
],
email: [
{
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
@ -68,22 +83,12 @@ const rules = reactive({
],
});
const deptList = ref<OptionType[]>();
const roleList = ref<OptionType[]>();
const dialog = reactive({
visible: false,
type: "user-form",
width: 1200,
title: "",
});
/** 查询 */
function handleQuery() {
loading.value = true;
getUserPage(queryParams)
.then(({ data }) => {
userList.value = data.list;
pageData.value = data.list;
total.value = data.total;
})
.finally(() => {
@ -101,7 +106,7 @@ function resetQuery() {
/** 行选中事件 */
function handleSelectionChange(selection: any) {
ids.value = selection.map((item: any) => item.id);
removeIds.value = selection.map((item: any) => item.id);
}
/** 用户状态 Change*/
@ -252,8 +257,8 @@ const handleSubmit = useThrottleFn(() => {
/** 删除用户 */
function handleDelete(id?: number) {
const userIds = [id || ids.value].join(",");
if (!userIds) {
const userremoveIds = [id || removeIds.value].join(",");
if (!userremoveIds) {
ElMessage.warning("请勾选删除项");
return;
}
@ -263,7 +268,7 @@ function handleDelete(id?: number) {
cancelButtonText: "取消",
type: "warning",
}).then(function () {
deleteUsers(userIds).then(() => {
deleteUsers(userremoveIds).then(() => {
ElMessage.success("删除成功");
resetQuery();
});
@ -399,7 +404,7 @@ onMounted(() => {
<el-button
v-hasPerm="['sys:user:delete']"
type="danger"
:disabled="ids.length === 0"
:disabled="removeIds.length === 0"
@click="handleDelete()"
><i-ep-delete />删除</el-button
>
@ -427,7 +432,7 @@ onMounted(() => {
<el-table
v-loading="loading"
:data="userList"
:data="pageData"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
@ -571,8 +576,12 @@ onMounted(() => {
<dictionary v-model="formData.gender" type-code="gender" />
</el-form-item>
<el-form-item label="角色" prop="roleIds">
<el-select v-model="formData.roleIds" multiple placeholder="请选择">
<el-form-item label="角色" prop="roleremoveIds">
<el-select
v-model="formData.roleremoveIds"
multiple
placeholder="请选择"
>
<el-option
v-for="item in roleList"
:key="item.value"