From b78c039181ac316964a0f0de077170de178d90ab Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期三, 27 七月 2022 15:14:25 +0800 Subject: [PATCH] 更新 --- src/views/system/user/index.vue | 382 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 197 insertions(+), 185 deletions(-) diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index c4123dd..adbbd49 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -1,206 +1,218 @@ <template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-input size="default" placeholder="请输入用户名称" style="max-width: 180px"> </el-input> - <el-button size="default" type="primary" class="ml10"> - <el-icon> - <ele-Search /> - </el-icon> - 查询 - </el-button> - <el-button size="default" type="success" class="ml10" @click="onOpenUserDialog('新增','')"> - <el-icon> - <ele-FolderAdd /> - </el-icon> - 新增用户 - </el-button> - </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 label="操作" width="100"> - <template #default="scope"> - <el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('修改',scope.row)">修改</el-button> - <el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onRowDel(scope.row)">删除</el-button> - </template> - </el-table-column> - </el-table> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - class="mt15" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="userTableData.listQuery.pageIndex" - background - v-model:page-size="userTableData.listQuery.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="userTableData.total" - > - </el-pagination> - </el-card> - <userDialog ref="userRef" @getUserList = "initUserTableData"/> - </div> + <div class="system-user-container"> + <el-card shadow="hover"> + <div class="system-user-search mb15"> + <el-input size="default" placeholder="请输入用户名称" style="max-width: 180px"> </el-input> + <el-button size="default" type="primary" class="ml10"> + <el-icon> + <ele-Search /> + </el-icon> + 查询 + </el-button> + <el-button size="default" type="success" class="ml10" @click="onOpenUserDialog('新增', '')"> + <el-icon> + <ele-FolderAdd /> + </el-icon> + 新增用户 + </el-button> + </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 label="操作" width="100"> + <template #default="scope"> + <el-button + :disabled="scope.row.userName === 'admin'" + size="small" + text + type="primary" + @click="onOpenUserDialog('修改', scope.row)" + >修改</el-button + > + <el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onRowDel(scope.row)" + >删除</el-button + > + </template> + </el-table-column> + </el-table> + <br /> + <el-pagination + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + class="page-position" + :pager-count="5" + :page-sizes="[10, 20, 30]" + v-model:current-page="userTableData.listQuery.pageIndex" + background + v-model:page-size="userTableData.listQuery.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="userTableData.total" + > + </el-pagination> + <br /> + <br /> + </el-card> + <userDialog ref="userRef" @getUserList="initUserTableData" /> + </div> </template> <script lang="ts"> import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; import { ElMessageBox, ElMessage } from 'element-plus'; import userDialog from '/@/views/system/user/component/userDialog.vue'; -import {userApi} from "/@/api/user"; -import {departmentApi} from "/@/api/department"; -import {useRoleApi} from "/@/api/role"; +import { userApi } from '/@/api/user'; +import { departmentApi } from '/@/api/department'; +import { useRoleApi } from '/@/api/role'; // 定义接口来定义对象的类型 interface TableDataRow { - userName: string; - userNickname: string; - roleSign: string; - department: string[]; - phone: string; - email: string; - sex: string; - password: string; - overdueTime: Date; - status: boolean; - describe: string; - createTime: string; + userName: string; + userNickname: string; + roleSign: string; + department: string[]; + phone: string; + email: string; + sex: string; + password: string; + overdueTime: Date; + status: boolean; + describe: string; + createTime: string; } -interface DepartmentDataRow{ - -} +interface DepartmentDataRow {} interface TableDataState { - userTableData: { - data: Array<TableDataRow>; - total: number; - loading: boolean; - listQuery: { - searchParams:{ - username:string, - realName:string, - }, - pageIndex: number; - pageSize: number; - }; - }; - departmentList:[]; - roleList:[]; + userTableData: { + data: Array<TableDataRow>; + total: number; + loading: boolean; + listQuery: { + searchParams: { + username: string; + realName: string; + }; + pageIndex: number; + pageSize: number; + }; + }; + departmentList: []; + roleList: []; } export default defineComponent({ - name: 'systemUser', - components: { userDialog }, - setup() { - const userRef = ref(); - const state = reactive<TableDataState>({ - userTableData: { - data: [], - total: 0, - loading: false, - listQuery: { - searchParams:{ - username:'', - realName:'', - }, - pageIndex: 1, - pageSize: 10, - }, - }, - departmentList:[], - roleList:[], - }); - // 初始化表格数据 - const initUserTableData = async () => { - let res = await userApi().getUserList(state.userTableData.listQuery) - if(res.data.code === '200'){ - state.userTableData.data = res.data.data; - state.userTableData.total = res.data.data.length; - }else{ - ElMessage({ - type:'warning', - message:res.data.msg - }) - } - }; + name: 'systemUser', + components: { userDialog }, + setup() { + const userRef = ref(); + const state = reactive<TableDataState>({ + userTableData: { + data: [], + total: 0, + loading: false, + listQuery: { + searchParams: { + username: '', + realName: '' + }, + pageIndex: 1, + pageSize: 10 + } + }, + departmentList: [], + roleList: [] + }); + // 初始化表格数据 + const initUserTableData = async () => { + let res = await userApi().getUserList(state.userTableData.listQuery); + if (res.data.code === '200') { + state.userTableData.data = res.data.data; + state.userTableData.total = res.data.total; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; - const getDepartmentData = async () => { - let res = await departmentApi().getDepartmentList() - if(res.data.code === '200'){ - state.departmentList = res.data.data - }else{ - ElMessage({ - type:'warning', - message:res.data.msg - }) - } - } + const getDepartmentData = async () => { + let res = await departmentApi().getDepartmentList(); + if (res.data.code === '200') { + state.departmentList = res.data.data; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; - const getRoleData = async () => { - let res = await useRoleApi().getRoleList() - if(res.data.code === '200'){ - state.roleList = res.data.data - }else{ - ElMessage({ - type:'warning', - message:res.data.msg - }) - } - } + const getRoleData = async () => { + let res = await useRoleApi().getRoleList(); + if (res.data.code === '200') { + state.roleList = res.data.data; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; - // 打开新增修改用户弹窗 - const onOpenUserDialog = (type: string,value: any) => { - userRef.value.openDialog(type, value, state.departmentList,state.roleList); - }; + // 打开新增修改用户弹窗 + const onOpenUserDialog = (type: string, value: any) => { + userRef.value.openDialog(type, value, state.departmentList, state.roleList); + }; - // 删除用户 - const onRowDel = (row: TableDataRow) => { - ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.userName}”,是否继续?`, '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }).then(() => { - ElMessage.success('删除成功'); - }).catch(() => {}); - }; - // 分页改变 - const onHandleSizeChange = (val: number) => { - state.userTableData.listQuery.pageSize = val; - initUserTableData() - }; - // 分页改变 - const onHandleCurrentChange = (val: number) => { - state.userTableData.listQuery.pageSize = val; - initUserTableData() - }; - // 页面加载时 - onMounted(() => { - initUserTableData(); - getDepartmentData(); - getRoleData(); - }); - return { - userRef, - onOpenUserDialog, - onRowDel, - onHandleSizeChange, - initUserTableData, - onHandleCurrentChange, - ...toRefs(state), - }; - }, + // 删除用户 + const onRowDel = (row: TableDataRow) => { + ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.userName}”,是否继续?`, '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + ElMessage.success('删除成功'); + }) + .catch(() => {}); + }; + // 分页改变 + const onHandleSizeChange = (val: number) => { + state.userTableData.listQuery.pageSize = val; + initUserTableData(); + }; + // 分页改变 + const onHandleCurrentChange = (val: number) => { + state.userTableData.listQuery.pageIndex = val; + initUserTableData(); + }; + // 页面加载时 + onMounted(() => { + initUserTableData(); + getDepartmentData(); + getRoleData(); + }); + return { + userRef, + onOpenUserDialog, + onRowDel, + onHandleSizeChange, + initUserTableData, + onHandleCurrentChange, + ...toRefs(state) + }; + } }); </script> -- Gitblit v1.9.2