From 43fca2cb16964496caafdbc34e969d2a7cde7cc0 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期四, 30 三月 2023 15:32:56 +0800
Subject: [PATCH] 用户接口
---
src/api/systemManage/user/index.ts | 17 +
src/views/system/user/index.vue | 119 +++++++++++---
src/views/system/department/component/deptDialog.vue | 76 +++++---
src/utils/toolsValidate.ts | 52 ++++++
src/views/experiment/project/components/projectDialog.vue | 1
src/views/system/user/component/userDialog.vue | 168 ++++++++++----------
src/views/experiment/project/index.vue | 1
src/main.ts | 2
8 files changed, 281 insertions(+), 155 deletions(-)
diff --git a/src/api/systemManage/user/index.ts b/src/api/systemManage/user/index.ts
index ff54d2b..e36c708 100644
--- a/src/api/systemManage/user/index.ts
+++ b/src/api/systemManage/user/index.ts
@@ -21,17 +21,16 @@
// v1
modUser: (data: object) => {
return request({
- url: import.meta.env.VITE_API_URL + `/account/mod`,
+ url: import.meta.env.VITE_API_URL + `/account/user/update/info`,
method: 'post',
data: data
});
},
// v1
- deleteUser: (data: object) => {
+ deleteUser: (userId: number | null) => {
return request({
- url: import.meta.env.VITE_API_URL + `/account/user/deleteUser`,
- method: 'post',
- data: data
+ url: import.meta.env.VITE_API_URL + `/account/user/deleteUser?userId=${userId == null ? null : userId}`,
+ method: 'get'
});
},
// v1
@@ -41,6 +40,14 @@
method: 'get'
});
},
+
+ getUserLByRealName: (name: string) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/account/user/find/list/realName?name=${name}`,
+ method: 'get'
+ });
+ },
+
getAllUser: () => {
return request({
url: import.meta.env.VITE_API_URL + `/account/list`,
diff --git a/src/main.ts b/src/main.ts
index a45931b..7cfa70a 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -14,7 +14,7 @@
import VueGridLayout from 'vue-grid-layout';
import zhCn from 'element-plus/lib/locale/lang/zh-cn';
import DataVVue3 from '@kjgl77/datav-vue3'
-
+// import 'lib-flexible/flexible'
const app = createApp(App);
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component);
diff --git a/src/utils/toolsValidate.ts b/src/utils/toolsValidate.ts
index 434466e..46a6162 100644
--- a/src/utils/toolsValidate.ts
+++ b/src/utils/toolsValidate.ts
@@ -366,3 +366,55 @@
// true:车牌号正确
else return true;
}
+
+export function checkChineseName (name:string) {
+ let reg = /^[\u4e00-\u9fa5]{2,15}$/;
+ // 保留点后,用来校验的姓名,也是最终校验通过后返回的姓名
+ let payerName = name.replaceAll(" ", "")
+ .replaceAll(" ", "")
+ .replaceAll("•", "·")
+ .replaceAll(".", "·");
+ // 去除所有点后,用来校验的姓名
+ let checkName = name.replaceAll(" ", "")
+ .replaceAll(" ", "")
+ .replaceAll("•", "")
+ .replaceAll(".", "")
+ .replaceAll("·", "");
+ if(checkName.length === 1){
+ // this.$message({
+ // type:'warning',
+ // message:'姓名至少包含两位汉字'
+ // })
+ return false;
+ }
+ if (reg.test(checkName)) {
+ if(payerName.substring(0,1) === '·'){
+ // this.$message({
+ // type:'warning',
+ // message:'姓名第一位不能为“·”'
+ // })
+ return false;
+ }
+ if(payerName.substring(payerName.length - 1) === '·'){
+ // this.$message({
+ // type:'warning',
+ // message:'姓名最后不能为“·”'
+ // })
+ return false;
+ }
+ if(payerName.indexOf("··") !== -1){
+ // this.$message({
+ // type:'warning',
+ // message:'姓名不能有连续的“·”'
+ // })
+ return false;
+ }
+ return payerName;
+ } else {
+ // this.$message({
+ // type:'warning',
+ // message:'姓名中只能包含汉字和“·”'
+ // })
+ return false;
+ }
+}
diff --git a/src/views/experiment/project/components/projectDialog.vue b/src/views/experiment/project/components/projectDialog.vue
index c12ff77..102bdeb 100644
--- a/src/views/experiment/project/components/projectDialog.vue
+++ b/src/views/experiment/project/components/projectDialog.vue
@@ -417,7 +417,6 @@
pageSize: 10
});
if(res.data.code === 100){
- debugger
projectDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data));
}else{
ElMessage({
diff --git a/src/views/experiment/project/index.vue b/src/views/experiment/project/index.vue
index b860688..041467f 100644
--- a/src/views/experiment/project/index.vue
+++ b/src/views/experiment/project/index.vue
@@ -119,7 +119,6 @@
type: 'warning'
})
.then(async () => {
- debugger
let res = await projectApi().deleteProjectById({ id: val.id });
if (res.data.code === 100) {
ElMessage({
diff --git a/src/views/system/department/component/deptDialog.vue b/src/views/system/department/component/deptDialog.vue
index 1579bc6..6aa7fe5 100644
--- a/src/views/system/department/component/deptDialog.vue
+++ b/src/views/system/department/component/deptDialog.vue
@@ -1,7 +1,7 @@
<template>
<div class="system-add-dept-container">
<el-dialog :title="title" v-model="isShowDialog" width="600px">
- <el-form :model="departmentForm" size="default" label-width="90px">
+ <el-form :model="departmentForm" size="default" ref="depRef" :rules="depFormRules" label-width="90px">
<el-row :gutter="35">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="上级部门">
@@ -9,7 +9,7 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="部门名称">
+ <el-form-item label="部门名称" prop="depName">
<el-input v-model="departmentForm.depName" class="input-add" placeholder="请输入部门名称" clearable></el-input>
</el-form-item>
</el-col>
@@ -23,7 +23,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="onCancel" size="default">取 消</el-button>
- <el-button type="primary" v-throttle @click="onSubmit" size="default">确 定</el-button>
+ <el-button type="primary" v-throttle @click="onSubmit(depRef)" size="default">确 定</el-button>
</span>
</template>
</el-dialog>
@@ -32,7 +32,7 @@
<script lang="ts">
import { ElMessage } from 'element-plus';
-import { reactive, toRefs, onMounted, defineComponent } from 'vue';
+import {reactive, toRefs, onMounted, defineComponent, ref} from 'vue';
import { departmentApi } from '/@/api/systemManage/department';
// 定义接口来定义对象的类型
@@ -54,6 +54,9 @@
};
deptData: Array<TableDataRow>;
depLevelList: Array<Type>;
+ depFormRules:{
+
+ }
}
interface Type{
id:number;
@@ -79,9 +82,12 @@
{id:2,name:'事业部'},
{id:3,name:'车间'},
{id:4,name:'班组'}
- ] // 部门数据
+ ], // 部门数据
+ depFormRules:{
+ depName: [{ required: true, message: '请填写部门名称', trigger: 'blur' }],
+ },
});
-
+ const depRef = ref()
const findParentById=(tree:Array<any>,id:number|null,depName:string)=>{
const parent = tree.find(i=>i.id == id)
if(parent){
@@ -131,39 +137,48 @@
};
// 新增
const onSubmit = async () => {
- if (state.title === '新增部门') {
+ depRef.value.validate(async (valid:Boolean) => {
+ if(valid){
+ if (state.title === '新增部门') {
let res = await departmentApi().addDepartment(state.departmentForm);
if (res.data.code === 100) {
- ElMessage({
- type: 'success',
- message: '部门新增成功',
- duration: 2000
- });
- closeDialog();
- context.emit('getDepartmentList');
+ ElMessage({
+ type: 'success',
+ message: '部门新增成功',
+ duration: 2000
+ });
+ closeDialog();
+ context.emit('getDepartmentList');
} else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
}
- } else {
+ } else {
let res = await departmentApi().modDepartment(state.departmentForm);
if (res.data.code === 100) {
- ElMessage({
- type: 'success',
- message: '部门修改成功',
- duration: 2000
- });
- closeDialog();
- context.emit('getDepartmentList');
+ ElMessage({
+ type: 'success',
+ message: '部门修改成功',
+ duration: 2000
+ });
+ closeDialog();
+ context.emit('getDepartmentList');
} else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
}
+ }
+ }else{
+ ElMessage({
+ type:'warning',
+ message:'请完善基本信息'
+ })
}
+ })
};
// 初始化部门数据
const initTableData = () => {};
@@ -172,6 +187,7 @@
initTableData();
});
return {
+ depRef,
findParentById,
openDialog,
closeDialog,
diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue
index 0eb4dd7..f3a0d93 100644
--- a/src/views/system/user/component/userDialog.vue
+++ b/src/views/system/user/component/userDialog.vue
@@ -3,67 +3,51 @@
<el-dialog :title="title" v-model="isShowUserDialog" width="769px">
<el-form :model="userForm" size="default" ref="userRef" :rules="userFormRules" label-width="90px">
<el-row :gutter="35">
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="disabled">
- <el-form-item label="用户名">
- <el-input v-model.trim="userForm.username" :disabled="disabled" placeholder="" clearable></el-input>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="用户名" prop="name">
+ <el-input v-model.trim="userForm.name" placeholder="用户名" clearable></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="真实姓名" prop="realName">
- <el-input v-model.trim="userForm.realName" placeholder="请输入真实姓名" clearable></el-input>
+ <el-input v-model.trim="userForm.realName" placeholder="真实姓名" clearable></el-input>
</el-form-item>
</el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="isAdd">
+ <el-form-item label="账户密码" prop="pwd">
+ <el-input v-model.trim="userForm.pwd" placeholder="账户密码" type="password" show-password>
+ </el-input>
+ </el-form-item>
+ </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="关联角色" prop="roleId">
- <el-select v-model="userForm.roleId" placeholder="请选择" clearable class="w100">
- <el-option v-for="item in roleData" :key="item.roleId" :label="item.roleName" :value="item.roleId"> </el-option>
+ <el-form-item label="关联角色" prop="roleIds">
+ <el-select v-model="userForm.roleIds" placeholder="关联角色" clearable class="w100" multiple>
+ <el-option v-for="item in roleData" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="部门" prop="depId">
- <el-cascader :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable class="w100" v-model="userForm.depId"> </el-cascader>
+ <el-cascader :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'depName' }" placeholder="部门" clearable class="w100" v-model="userForm.depId"> </el-cascader>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="手机号" prop="phone">
- <el-input v-model.trim="userForm.phone" placeholder="请输入手机号" clearable></el-input>
+ <el-input v-model.trim="userForm.phone" placeholder="手机号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="身份证" prop="identify">
- <el-input v-model.trim="userForm.identify" placeholder="请输入身份证" clearable></el-input>
- </el-form-item>
+ <el-form-item label="证件类型" prop="idType">
+ <el-select v-model="userForm.idType" placeholder="证件类型" clearable class="w100">
+ <el-option :key="1" label="身份证" :value="1"> </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="邮箱" prop="email">
- <el-input v-model.trim="userForm.email" placeholder="请输入" clearable></el-input>
+ <el-form-item label="证件号码" prop="idSerial">
+ <el-input v-model.trim="userForm.idSerial" placeholder="证件号码" clearable></el-input>
</el-form-item>
</el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="性别" prop="gender">
- <el-select v-model="userForm.gender" placeholder="请选择" clearable class="w100">
- <el-option v-for="item in sexList" :key="item.id" :value="item.id" :label="item.name"> </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="账户过期" prop="expireTime">
- <el-date-picker v-model="userForm.expireTime" type="date" placeholder="请选择" class="w100"> </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="!disabled">
- <el-form-item label="账户密码" prop="password">
- <el-input v-model.trim="userForm.password" placeholder="请输入" type="password" show-password>
- </el-input>
- </el-form-item>
- </el-col>
-
- <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
- <!-- <el-form-item label="用户状态">-->
- <!-- <el-switch v-model="userForm.status" inline-prompt active-value = 1 inactive-value= 0 active-text="启" inactive-text="禁"></el-switch>-->
- <!-- </el-form-item>-->
- <!-- </el-col>-->
</el-row>
</el-form>
<template #footer>
@@ -80,77 +64,62 @@
import { reactive, toRefs, onMounted, defineComponent, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { userApi } from '/@/api/systemManage/user';
+import {checkChineseName, verifyFullName, verifyIdCard, verifyPhone} from "/@/utils/toolsValidate";
// 定义接口来定义对象的类型
interface DeptData {}
interface roleData {}
-interface sexData {}
interface UserState {
title: string;
- disabled: boolean;
isShowUserDialog: boolean;
userForm: {
- username: string;
+ name: string;
realName: string;
- roleId: number | null;
+ roleIds: Array<any>
depId: number | null;
phone: string;
- email: string;
- gender: number | null;
- positionId: number | null;
- password: string;
- expireTime: string;
- status: number;
- identify: string;
+ pwd: string;
+ idType: number | null;
+ idSerial: string;
};
userFormRules:{
},
departmentData: Array<DeptData>;
roleData: Array<roleData>;
- sexList: Array<sexData>;
+ isAdd:boolean
}
export default defineComponent({
- name: 'user',
+ name: 'userDialog',
setup(props, context) {
const userRef = ref()
const state = reactive<UserState>({
title: '',
- disabled: false,
isShowUserDialog: false,
userForm: {
- username: '', // 账户名称
+ name: '', // 账户名称
realName: '', // 用户昵称
- roleId: null, // 关联角色
+ pwd: '', // 账户密码
+ roleIds: [], // 关联角色
depId: null, // 部门
phone: '', // 手机号
- email: '', // 邮箱
- identify: '',
- gender: null, // 性别
- password: '', // 账户密码
- positionId: 1, // 岗位
- expireTime: '', // 账户过期
- status: 1 // 用户状态
+ idType: 1,
+ idSerial: '',
},
userFormRules:{
- username: [{ required: true, message: '请填写用户名', trigger: 'blur' }],
+ name: [{ required: true, message: '请填写用户名', trigger: 'blur' }],
realName: [{ required: true, message: '请填写真实姓名', trigger: 'blur' }],
- roleId: [{ required: true, message: '请选择用户角色', trigger: 'change' }],
+ roleIds: [{ required: true, message: '请选择用户角色', trigger: 'change' }],
depId: [{ required: true, message: '请选择部门', trigger: 'change' }],
phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],
- email: [{ required: true, message: '请填写邮箱地址', trigger: 'blur' }],
- identify: [{ required: true, message: '请填写身份证号', trigger: 'blur' }],
- gender: [{ required: true, message: '请选择性别', trigger: 'change' }],
- expireTime: [{ required: true, message: '请输入账户过期时间', trigger: 'blur' }],
- password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],
+ idType: [{ required: true, message: '请选择证件类型', trigger: 'blur' }],
+ idSerial: [{ required: true, message: '请填写证件号码', trigger: 'blur' }],
+ pwd: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],
},
departmentData: [], // 部门数据
roleData: [], //角色数据
- sexList: [
- { id: 1, name: '男' },
- { id: 0, name: '女' }
- ]
+ isAdd: true
});
// 打开弹窗
const openDialog = (type: string, value: any, departmentList: [], roleList: []) => {
@@ -158,26 +127,23 @@
state.departmentData = departmentList;
state.roleData = roleList;
if (type === '新增') {
- state.disabled = false
state.title = '新增用户';
+ state.isAdd = true
state.userForm = {
- username: '',
+ name: '',
realName: '',
- roleId: null,
+ roleIds: [],
depId: null,
phone: '',
- email: '',
- identify: '',
- positionId: 1,
- gender: null,
- password: '',
- expireTime: '',
- status: 1
+ idType: 1,
+ idSerial: '',
+ pwd: ''
};
} else {
- state.disabled = true
state.title = '修改用户';
+ state.isAdd = false
state.userForm = JSON.parse(JSON.stringify(value));
+ state.userForm.roleIds = JSON.parse(JSON.stringify(value)).roles.map(i=>i.roleId)
}
};
@@ -185,9 +151,33 @@
const onSubmit = async () => {
userRef.value.validate(async (valid:Boolean) => {
if(valid){
+ if(checkChineseName(state.userForm.realName) == false){
+ ElMessage({
+ type: 'warning',
+ message: '真实姓名格式有误',
+ duration: 2000
+ });
+ return
+ }
+ if(verifyPhone(state.userForm.phone) == false){
+ ElMessage({
+ type: 'warning',
+ message: '请输入正确的手机号',
+ duration: 2000
+ });
+ return
+ }
+ if(verifyIdCard(state.userForm.idSerial) == false){
+ ElMessage({
+ type: 'warning',
+ message: '请输入正确的证件号码',
+ duration: 2000
+ });
+ return
+ }
if (state.title === '新增用户') {
let res = await userApi().addUser(state.userForm);
- if (res.data.code === '200') {
+ if (res.data.code === 100) {
ElMessage({
type: 'success',
message: '用户新增成功',
@@ -202,8 +192,10 @@
});
}
} else {
- let res = await userApi().modUser(state.userForm);
- if (res.data.code === '200') {
+ const {name, realName, roleIds, depId, phone, idType, idSerial,id } = state.userForm
+ const data = {name, realName, roleIds, depId, phone, idType, idSerial,id}
+ let res = await userApi().modUser(data);
+ if (res.data.code === 100) {
ElMessage({
type: 'success',
message: '用户修改成功',
@@ -229,7 +221,9 @@
};
// 页面加载时
- onMounted(() => {});
+ onMounted(() => {
+
+ });
return {
userRef,
openDialog,
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 8bd5f91..3030f1b 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -2,13 +2,19 @@
<div class="system-user-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
-<!-- <el-input size="default" v-model.trim="userTableData.listQuery.roleId" placeholder="请输入用户名" style="max-width: 180px"> </el-input>-->
-<!-- <el-button size="default" type="primary" class="ml10" @click="initUserTableData">-->
-<!-- <el-icon>-->
-<!-- <ele-Search />-->
-<!-- </el-icon>-->
-<!-- 查询-->
-<!-- </el-button>-->
+ <el-input size="default" v-model.trim="searchName" placeholder="真实姓名" style="max-width: 180px"> </el-input>
+ <el-button size="default" type="primary" class="ml10" @click="searchByName()">
+ <el-icon>
+ <ele-Search />
+ </el-icon>
+ 查询
+ </el-button>
+ <el-button size="default" class="ml10" @click="reset()">
+ <el-icon>
+ <RefreshLeft />
+ </el-icon>
+ 重置
+ </el-button>
<el-button size="default" type="success" class="ml10" @click="onOpenUserDialog('新增', '')">
<el-icon>
<ele-FolderAdd />
@@ -18,20 +24,21 @@
</div>
<el-table :data="userTableData.data" style="width: 100%">
<el-table-column type="index" label="序号" width="60" />
- <el-table-column prop="username" label="用户名" show-overflow-tooltip></el-table-column>
- <el-table-column prop="realName" label="真实姓名" show-overflow-tooltip></el-table-column>
- <el-table-column prop="sex" label="性别" show-overflow-tooltip></el-table-column>
- <el-table-column prop="role.name" label="关联角色" show-overflow-tooltip></el-table-column>
- <el-table-column prop="department.name" label="部门" show-overflow-tooltip></el-table-column>
- <el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column>
-<!-- <el-table-column prop="email" label="邮箱" show-overflow-tooltip></el-table-column>-->
-<!-- <el-table-column prop="status" label="用户状态" show-overflow-tooltip>-->
-<!-- <template #default="scope">-->
-<!-- <el-tag type="success" v-if="scope.row.status">启用</el-tag>-->
-<!-- <el-tag type="info" v-else>禁用</el-tag>-->
-<!-- </template>-->
-<!-- </el-table-column>-->
-<!-- <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>-->
+ <el-table-column prop="name" label="用户名"/>
+ <el-table-column prop="realName" label="真实姓名"/>
+ <el-table-column prop="phone" label="手机号"/>
+ <el-table-column prop="depName" label="部门"></el-table-column>
+ <el-table-column prop="roles" label="关联角色">
+ <template #default="scope">
+ <span>{{ scope.row.roles.map(obj => obj.roleName).join('、') }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="idType" label="证件类型">
+ <template #default="scope">
+ <span>{{idTypeList.find(item=>item.id == scope.row.idType)?.name}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="idSerial" label="证件号码"></el-table-column>
<el-table-column label="操作" width="100">
<template #default="scope">
<el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('修改', scope.row)">修改</el-button>
@@ -44,7 +51,7 @@
<br />
<br />
</el-card>
- <userDialog ref="userRef" @getUserList="initUserTableData" />
+ <userDialog ref="userRef" @getUserList="initUserTableData"/>
</div>
</template>
@@ -71,7 +78,11 @@
describe: string;
createTime: string;
}
-interface DepartmentDataRow {}
+interface idType{
+ id: number,
+ name: string
+}
+
interface TableDataState {
userTableData: {
data: Array<TableDataRow>;
@@ -84,8 +95,10 @@
pageSize: number;
};
};
- departmentList: [];
+ idTypeList: Array<idType>
+ depList: [];
roleList: [];
+ searchName:string
}
export default defineComponent({
@@ -105,8 +118,15 @@
pageSize: 10
}
},
- departmentList: [],
- roleList: []
+ idTypeList:[
+ {
+ id: 1,
+ name: '身份证'
+ }
+ ],
+ depList: [],
+ roleList: [],
+ searchName: ''
});
// 初始化表格数据
const initUserTableData = async () => {
@@ -122,6 +142,41 @@
}
};
+ const searchByName = async () =>{
+ if(state.searchName == ''){
+ ElMessage({
+ type: 'warning',
+ message: '请输入搜索内容'
+ });
+ }else{
+ let res = await userApi().getUserLByRealName(state.searchName);
+ if (res.data.code === 100) {
+ state.userTableData.data = res.data.data
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ }
+
+ const reset = () =>{
+ state.searchName = ''
+ initUserTableData()
+ }
+
+ const getDepList = async () => {
+ let res = await departmentApi().getDepartmentList()
+ if (res.data.code === 100) {
+ state.depList = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
const getRoleData = async () => {
let res = await useRoleApi().getRoleList();
@@ -137,19 +192,20 @@
// 打开新增修改用户弹窗
const onOpenUserDialog = (type: string, value: any) => {
- userRef.value.openDialog(type, value, state.departmentList, state.roleList);
+ console.log('打开',state.depList, state.roleList)
+ userRef.value.openDialog(type, value, state.depList, state.roleList);
};
// 删除用户
const onRowDel = (row: TableDataRow) => {
- ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.realName}”,是否继续?`, '提示', {
+ ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.name}”,是否继续?`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(async () => {
- let res = await userApi().deleteUser({ uid: row.uid });
- if (res.data.code === '200') {
+ let res = await userApi().deleteUser(row.id);
+ if (res.data.code === 100) {
ElMessage({
type: 'success',
duration: 2000,
@@ -179,13 +235,16 @@
onMounted(() => {
initUserTableData();
getRoleData();
+ getDepList()
});
return {
userRef,
+ reset,
onOpenUserDialog,
onRowDel,
onHandleSizeChange,
initUserTableData,
+ searchByName,
onHandleCurrentChange,
...toRefs(state)
};
--
Gitblit v1.9.2