123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- <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="success" class="ml10">
- <el-icon>
- <ele-Search />
- </el-icon>
- 查询
- </el-button> -->
- <el-button size="default" type="primary" class="ml10" @click="onOpenAddItem">
- <el-icon>
- <ele-FolderAdd />
- </el-icon>
- 新建
- </el-button>
- </div>
- <el-table :data="tableData.data" style="width: 100%">
- <!-- <el-table-column type="index" label="序号" width="60" /> -->
- <el-table-column align="center" prop="title" label="名称" show-overflow-tooltip></el-table-column>
- <el-table-column align="center" prop="explain" label="描述" show-overflow-tooltip></el-table-column>
- <!-- <el-table-column prop="userNickname" label="用户昵称" show-overflow-tooltip></el-table-column>
- <el-table-column prop="roleSign" label="关联角色" show-overflow-tooltip></el-table-column>
- <el-table-column prop="department" 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="describe" label="用户描述" show-overflow-tooltip></el-table-column> -->
- <!-- <el-table-column align="center" prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column> -->
- <el-table-column align="center" label="操作" width="180">
- <template #default="scope">
- <el-button size="small" type="text" @click="onOpenEditUser(scope.row)">编辑</el-button>
- <el-button size="small" type="text" @click="onRowDel(scope.row)">删除</el-button>
- <el-button size="small" type="text" @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="tableData.param.page"
- background
- v-model:page-size="tableData.param.pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="tableData.total"
- >
- </el-pagination> -->
- </el-card>
- <!-- <AddUer ref="addUserRef" /> -->
- <EditUser ref="editUserRef" />
- <AddItem ref="addItemRef" />
- </div>
- </template>
- <script lang="ts">
- import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
- import { ElMessageBox, ElMessage } from 'element-plus';
- // import AddUer from '/@/views/system/user/component/addUser.vue';
- import EditUser from './component/editUser.vue';
- import AddItem from './component/addItem.vue';
- import api from '/@/api/assess';
- // 定义接口来定义对象的类型
- interface TableDataRow {
- userName: string;
- description: string;
- // userNickname: string;
- // roleSign: string;
- // department: string[];
- // phone: string;
- // email: string;
- // sex: string;
- // password: string;
- // overdueTime: Date;
- // status: boolean;
- // describe: string;
- createTime: string;
- }
- interface TableDataState {
- tableData: {
- data: Array<TableDataRow>;
- total: number;
- loading: boolean;
- param: {
- page: number;
- pageSize: number;
- };
- };
- }
- export default defineComponent({
- name: 'systemUser',
- components: { EditUser, AddItem },
- setup() {
- const addItemRef = ref();
- const editUserRef = ref();
- const state = reactive<TableDataState>({
- tableData: {
- data: [],
- total: 0,
- loading: false,
- param: {
- page: 1,
- pageSize: 10,
- },
- },
- });
- // 初始化表格数据
- const initTableData = () => {
- // const data: Array<TableDataRow> = [];
- // for (let i = 0; i < 9; i++) {
- // data.push({
- // userName: '这里是名称',
- // description: '这里是描述这里是描述这里是描述这里是描述',
- // createTime: new Date().toLocaleString(),
- // });
- // }
- // state.tableData.data = data;
- // state.tableData.total = state.tableData.data.length;
- // console.log(data)
- api.getList().then((res: any) => {
- console.log(res);
- state.tableData.data = res;
- // state.tableData.total = res.total;
- });
- };
- // 打开新增用户弹窗
- const onOpenAddItem = () => {
- addItemRef.value.openDialog();
- };
- // 打开修改用户弹窗
- const onOpenEditUser = (row: TableDataRow) => {
- editUserRef.value.openDialog(row);
- };
- // 删除用户
- const onRowDel = (row: TableDataRow) => {
- ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.userName}”,是否继续?`, '提示', {
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- })
- .then(() => {
- ElMessage.success('删除成功');
- })
- .catch(() => {});
- };
- // 分页改变
- const onHandleSizeChange = (val: number) => {
- state.tableData.param.pageSize = val;
- };
- // 分页改变
- const onHandleCurrentChange = (val: number) => {
- state.tableData.param.page = val;
- };
- // 页面加载时
- onMounted(() => {
- initTableData();
- });
- return {
- addItemRef,
- editUserRef,
- onOpenAddItem,
- onOpenEditUser,
- onRowDel,
- onHandleSizeChange,
- onHandleCurrentChange,
- ...toRefs(state),
- };
- },
- });
- </script>
- <style>
- .el-table th.el-table__cell {
- background-color: #e3e3e3;
- }
- </style>
|