feat:完善用户表单页面对接
This commit is contained in:
@@ -1,27 +1,23 @@
|
||||
import { http } from "@/utils/http";
|
||||
|
||||
type Result = {
|
||||
success: boolean;
|
||||
status: number;
|
||||
data?: Array<any>;
|
||||
};
|
||||
|
||||
type ResultTable = {
|
||||
success: boolean;
|
||||
status: number;
|
||||
data?: {
|
||||
/** 列表数据 */
|
||||
list: Array<any>;
|
||||
items: Array<any>;
|
||||
/** 总条目数 */
|
||||
total?: number;
|
||||
/** 每页显示条目个数 */
|
||||
pageSize?: number;
|
||||
/** 当前页数 */
|
||||
currentPage?: number;
|
||||
totalCount?: number;
|
||||
};
|
||||
};
|
||||
|
||||
/** 获取系统管理-用户管理列表 */
|
||||
export const getUserList = (data?: object) => {
|
||||
return http.request<ResultTable>("post", "/user", { data });
|
||||
return http.request<ResultTable>("get", "/user", { data });
|
||||
};
|
||||
|
||||
/** 系统管理-用户管理-获取所有角色列表 */
|
||||
@@ -46,7 +42,7 @@ export const getMenuList = (data?: object) => {
|
||||
|
||||
/** 获取系统管理-部门管理列表 */
|
||||
export const getDeptList = (data?: object) => {
|
||||
return http.request<Result>("post", "/dept", { data });
|
||||
return http.request<ResultTable>("get", "/dept", { data });
|
||||
};
|
||||
|
||||
/** 获取系统监控-在线用户列表 */
|
||||
|
||||
@@ -21,14 +21,17 @@ export type LoginResult = {
|
||||
export type UserResult = {
|
||||
status: number;
|
||||
data: {
|
||||
user: {
|
||||
/** 头像 */
|
||||
avatar: string;
|
||||
icon: string;
|
||||
/** 用户名 */
|
||||
username: string;
|
||||
userName: string;
|
||||
/** 昵称 */
|
||||
nick: string;
|
||||
};
|
||||
|
||||
/** 当前登录用户的角色 */
|
||||
roles: Array<string>;
|
||||
roleCodes: Array<string>;
|
||||
/** 按钮级别权限 */
|
||||
permissions: Array<string>;
|
||||
/** `token` */
|
||||
|
||||
@@ -90,11 +90,10 @@ export const useUserStore = defineStore({
|
||||
};
|
||||
setToken(storeData);
|
||||
getUserInfo().then(resInfo => {
|
||||
storeData.username = resInfo.data.username;
|
||||
storeData.avatar = resInfo.data.avatar;
|
||||
storeData.nickname = resInfo.data.nick;
|
||||
storeData.roles = resInfo.data.roles;
|
||||
storeData.accessToken = resInfo.data.accessToken;
|
||||
storeData.username = resInfo.data.user.userName;
|
||||
storeData.avatar = resInfo.data.user.icon;
|
||||
storeData.nickname = resInfo.data.user.nick;
|
||||
storeData.roles = resInfo.data.roleCodes;
|
||||
setToken(storeData);
|
||||
resolve(resInfo);
|
||||
});
|
||||
|
||||
@@ -84,7 +84,7 @@ export function setToken(data: DataInfo<Date>) {
|
||||
permissions
|
||||
});
|
||||
}
|
||||
|
||||
console.log(data,"storeData");
|
||||
if (data.username && data.roles) {
|
||||
const { username, roles } = data;
|
||||
setUserKey({
|
||||
|
||||
@@ -10,13 +10,13 @@ const props = withDefaults(defineProps<FormProps>(), {
|
||||
title: "新增",
|
||||
higherDeptOptions: [],
|
||||
parentId: 0,
|
||||
nickname: "",
|
||||
username: "",
|
||||
nick: "",
|
||||
userName: "",
|
||||
password: "",
|
||||
phone: "",
|
||||
email: "",
|
||||
sex: "",
|
||||
status: 1,
|
||||
state: 1,
|
||||
remark: ""
|
||||
})
|
||||
});
|
||||
@@ -51,18 +51,18 @@ defineExpose({ getRef });
|
||||
>
|
||||
<el-row :gutter="30">
|
||||
<re-col :value="12" :xs="24" :sm="24">
|
||||
<el-form-item label="用户昵称" prop="nickname">
|
||||
<el-form-item label="用户昵称" prop="nick">
|
||||
<el-input
|
||||
v-model="newFormInline.nickname"
|
||||
v-model="newFormInline.nick"
|
||||
clearable
|
||||
placeholder="请输入用户昵称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</re-col>
|
||||
<re-col :value="12" :xs="24" :sm="24">
|
||||
<el-form-item label="用户名称" prop="username">
|
||||
<el-form-item label="用户名称" prop="userName">
|
||||
<el-input
|
||||
v-model="newFormInline.username"
|
||||
v-model="newFormInline.userName"
|
||||
clearable
|
||||
placeholder="请输入用户名称"
|
||||
/>
|
||||
@@ -151,10 +151,10 @@ defineExpose({ getRef });
|
||||
>
|
||||
<el-form-item label="用户状态">
|
||||
<el-switch
|
||||
v-model="newFormInline.status"
|
||||
v-model="newFormInline.state"
|
||||
inline-prompt
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
:active-value="true"
|
||||
:inactive-value="false"
|
||||
active-text="启用"
|
||||
inactive-text="停用"
|
||||
:style="switchStyle"
|
||||
|
||||
@@ -5,8 +5,8 @@ import { RoleFormProps } from "../utils/types";
|
||||
|
||||
const props = withDefaults(defineProps<RoleFormProps>(), {
|
||||
formInline: () => ({
|
||||
username: "",
|
||||
nickname: "",
|
||||
userName: "",
|
||||
nick: "",
|
||||
roleOptions: [],
|
||||
ids: []
|
||||
})
|
||||
@@ -18,14 +18,9 @@ const newFormInline = ref(props.formInline);
|
||||
<template>
|
||||
<el-form :model="newFormInline">
|
||||
<el-row :gutter="30">
|
||||
<!-- <re-col>
|
||||
<el-form-item label="用户名称" prop="username">
|
||||
<el-input disabled v-model="newFormInline.username" />
|
||||
</el-form-item>
|
||||
</re-col> -->
|
||||
<re-col>
|
||||
<el-form-item label="用户昵称" prop="nickname">
|
||||
<el-input v-model="newFormInline.nickname" disabled />
|
||||
<el-form-item label="用户昵称" prop="nick">
|
||||
<el-input v-model="newFormInline.nick" disabled />
|
||||
</el-form-item>
|
||||
</re-col>
|
||||
<re-col>
|
||||
|
||||
@@ -68,9 +68,9 @@ const {
|
||||
:model="form"
|
||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
||||
>
|
||||
<el-form-item label="用户名称:" prop="username">
|
||||
<el-form-item label="用户名称:" prop="userName">
|
||||
<el-input
|
||||
v-model="form.username"
|
||||
v-model="form.userName"
|
||||
placeholder="请输入用户名称"
|
||||
clearable
|
||||
class="!w-[180px]"
|
||||
@@ -84,15 +84,15 @@ const {
|
||||
class="!w-[180px]"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="status">
|
||||
<el-form-item label="状态:" prop="state">
|
||||
<el-select
|
||||
v-model="form.status"
|
||||
v-model="form.state"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
class="!w-[180px]"
|
||||
>
|
||||
<el-option label="已开启" value="1" />
|
||||
<el-option label="已关闭" value="0" />
|
||||
<el-option label="已开启" :value="true" />
|
||||
<el-option label="已关闭" :value="false" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
||||
@@ -31,7 +31,7 @@ const highlightMap = ref({});
|
||||
const { proxy } = getCurrentInstance();
|
||||
const defaultProps = {
|
||||
children: "children",
|
||||
label: "name"
|
||||
label: "deptName"
|
||||
};
|
||||
const buttonClass = computed(() => {
|
||||
return [
|
||||
|
||||
@@ -45,9 +45,9 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
const form = reactive({
|
||||
// 左侧部门树的id
|
||||
deptId: "",
|
||||
username: "",
|
||||
userName: "",
|
||||
phone: "",
|
||||
status: ""
|
||||
state: true
|
||||
});
|
||||
const formRef = ref();
|
||||
const ruleFormRef = ref();
|
||||
@@ -77,7 +77,7 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
{
|
||||
label: "用户编号",
|
||||
prop: "id",
|
||||
width: 90
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
label: "用户头像",
|
||||
@@ -95,12 +95,12 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
},
|
||||
{
|
||||
label: "用户名称",
|
||||
prop: "username",
|
||||
prop: "userName",
|
||||
minWidth: 130
|
||||
},
|
||||
{
|
||||
label: "用户昵称",
|
||||
prop: "nickname",
|
||||
prop: "nick",
|
||||
minWidth: 130
|
||||
},
|
||||
{
|
||||
@@ -119,7 +119,7 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
},
|
||||
{
|
||||
label: "部门",
|
||||
prop: "dept.name",
|
||||
prop: "deptName",
|
||||
minWidth: 90
|
||||
},
|
||||
{
|
||||
@@ -130,15 +130,15 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
prop: "state",
|
||||
minWidth: 90,
|
||||
cellRenderer: scope => (
|
||||
<el-switch
|
||||
size={scope.props.size === "small" ? "small" : "default"}
|
||||
loading={switchLoadMap.value[scope.index]?.loading}
|
||||
v-model={scope.row.status}
|
||||
active-value={1}
|
||||
inactive-value={0}
|
||||
v-model={scope.row.state}
|
||||
active-value={true}
|
||||
inactive-value={false}
|
||||
active-text="已启用"
|
||||
inactive-text="已停用"
|
||||
inline-prompt
|
||||
@@ -273,10 +273,10 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
async function onSearch() {
|
||||
loading.value = true;
|
||||
const { data } = await getUserList(toRaw(form));
|
||||
dataList.value = data.list;
|
||||
pagination.total = data.total;
|
||||
pagination.pageSize = data.pageSize;
|
||||
pagination.currentPage = data.currentPage;
|
||||
dataList.value = data.items;
|
||||
pagination.total = data.totalCount;
|
||||
// pagination.pageSize = data.pageSize;
|
||||
// pagination.currentPage = data.currentPage;
|
||||
|
||||
setTimeout(() => {
|
||||
loading.value = false;
|
||||
@@ -316,13 +316,13 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
title,
|
||||
higherDeptOptions: formatHigherDeptOptions(higherDeptOptions.value),
|
||||
parentId: row?.dept.id ?? 0,
|
||||
nickname: row?.nickname ?? "",
|
||||
username: row?.username ?? "",
|
||||
nickname: row?.nick ?? "",
|
||||
username: row?.userName ?? "",
|
||||
password: row?.password ?? "",
|
||||
phone: row?.phone ?? "",
|
||||
email: row?.email ?? "",
|
||||
sex: row?.sex ?? "",
|
||||
status: row?.status ?? 1,
|
||||
status: row?.state ?? false,
|
||||
remark: row?.remark ?? ""
|
||||
}
|
||||
},
|
||||
@@ -336,7 +336,7 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
const FormRef = formRef.value.getRef();
|
||||
const curData = options.props.formInline as FormItemProps;
|
||||
function chores() {
|
||||
message(`您${title}了用户名称为${curData.username}的这条数据`, {
|
||||
message(`您${title}了用户名称为${curData.userName}的这条数据`, {
|
||||
type: "success"
|
||||
});
|
||||
done(); // 关闭弹框
|
||||
@@ -498,8 +498,8 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
||||
|
||||
// 归属部门
|
||||
const { data } = await getDeptList();
|
||||
higherDeptOptions.value = handleTree(data);
|
||||
treeData.value = handleTree(data);
|
||||
higherDeptOptions.value = handleTree(data.items);
|
||||
treeData.value = handleTree(data.items);
|
||||
treeLoading.value = false;
|
||||
|
||||
// 角色列表
|
||||
|
||||
@@ -4,8 +4,8 @@ import { isPhone, isEmail } from "@pureadmin/utils";
|
||||
|
||||
/** 自定义表单规则校验 */
|
||||
export const formRules = reactive(<FormRules>{
|
||||
nickname: [{ required: true, message: "用户昵称为必填项", trigger: "blur" }],
|
||||
username: [{ required: true, message: "用户名称为必填项", trigger: "blur" }],
|
||||
nick: [{ required: true, message: "用户昵称为必填项", trigger: "blur" }],
|
||||
userName: [{ required: true, message: "用户名称为必填项", trigger: "blur" }],
|
||||
password: [{ required: true, message: "用户密码为必填项", trigger: "blur" }],
|
||||
phone: [
|
||||
{
|
||||
|
||||
@@ -4,13 +4,13 @@ interface FormItemProps {
|
||||
title: string;
|
||||
higherDeptOptions: Record<string, unknown>[];
|
||||
parentId: number;
|
||||
nickname: string;
|
||||
username: string;
|
||||
nick: string;
|
||||
userName: string;
|
||||
password: string;
|
||||
phone: string | number;
|
||||
email: string;
|
||||
sex: string | number;
|
||||
status: number;
|
||||
state: boolean;
|
||||
dept?: {
|
||||
id?: number;
|
||||
name?: string;
|
||||
@@ -22,8 +22,8 @@ interface FormProps {
|
||||
}
|
||||
|
||||
interface RoleFormItemProps {
|
||||
username: string;
|
||||
nickname: string;
|
||||
userName: string;
|
||||
nick: string;
|
||||
/** 角色列表 */
|
||||
roleOptions: any[];
|
||||
/** 选中的角色列表 */
|
||||
|
||||
Reference in New Issue
Block a user