From 41aaf3c396081a45908c9a964c43e523cc4a1f4e Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 11 七月 2024 10:55:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/user/teacher/list.vue | 131 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 131 insertions(+), 0 deletions(-) diff --git a/src/views/user/teacher/list.vue b/src/views/user/teacher/list.vue new file mode 100644 index 0000000..b858e87 --- /dev/null +++ b/src/views/user/teacher/list.vue @@ -0,0 +1,131 @@ +<template> + <div class="app-container"> + <el-form :model="queryParam" ref="queryForm" :inline="true"> + <el-form-item label="鐢ㄦ埛鍚嶏細"> + <el-input v-model="queryParam.userName"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm">鏌ヨ</el-button> + <router-link :to="{path:'/user/teacher/edit'}" class="link-left"> + <el-button type="primary">娣诲姞</el-button> + </router-link> + </el-form-item> + </el-form> + + <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> + <el-table-column prop="id" label="Id" /> + <el-table-column prop="userName" label="鐢ㄦ埛鍚�"/> + <el-table-column prop="realName" label="鐪熷疄濮撳悕" /> + <el-table-column prop="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter"/> + <el-table-column prop="phone" label="鎵嬫満鍙�"/> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/> + <el-table-column label="鐘舵��" prop="status" width="70px"> + <template slot-scope="{row}"> + <el-tag :type="statusTagFormatter(row.status)"> + {{ statusFormatter(row.status) }} + </el-tag> + </template> + </el-table-column> + <el-table-column width="220px" label="鎿嶄綔" align="center"> + <template slot-scope="{row}"> + <el-button size="mini" @click="changeStatus(row)" class="link-left"> + {{ statusBtnFormatter(row.status) }} + </el-button> + <router-link :to="{path:'/user/teacher/edit', query:{id:row.id}}" class="link-left"> + <el-button size="mini">缂栬緫</el-button> + </router-link> + <el-button size="mini" type="danger" @click="deleteUser(row)" class="link-left">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize" + @pagination="search"/> + </div> +</template> + +<script> +import { mapGetters, mapState } from 'vuex' +import Pagination from '@/components/Pagination' +import userApi from '@/api/user' + +export default { + components: { Pagination }, + data () { + return { + queryParam: { + userName: '', + role: 2, + pageIndex: 1, + pageSize: 10 + }, + listLoading: true, + tableData: [], + total: 0 + } + }, + created () { + this.search() + }, + methods: { + search () { + this.listLoading = true + userApi.getUserPageList(this.queryParam).then(data => { + const re = data.data + this.tableData = re.list + this.total = re.total + this.queryParam.pageIndex = re.pageNum + this.listLoading = false + }) + }, + changeStatus (row) { + let _this = this + userApi.changeStatus(row.id).then(re => { + if (re.code === 1) { + row.status = re.data + _this.$message.success(re.message) + } else { + _this.$message.error(re.message) + } + }) + }, + deleteUser (row) { + let _this = this + userApi.deleteUser(row.id).then(re => { + if (re.code === 1) { + _this.search() + _this.$message.success(re.message) + } else { + _this.$message.error(re.message) + } + }) + }, + submitForm () { + this.queryParam.pageIndex = 1 + this.search() + }, + sexFormatter (row, column, cellValue, index) { + return this.enumFormat(this.sexEnum, cellValue) + }, + statusFormatter (status) { + return this.enumFormat(this.statusEnum, status) + }, + statusTagFormatter (status) { + return this.enumFormat(this.statusTag, status) + }, + statusBtnFormatter (status) { + return this.enumFormat(this.statusBtn, status) + } + }, + computed: { + ...mapGetters('enumItem', [ + 'enumFormat' + ]), + ...mapState('enumItem', { + sexEnum: state => state.user.sexEnum, + statusEnum: state => state.user.statusEnum, + statusTag: state => state.user.statusTag, + statusBtn: state => state.user.statusBtn + }) + } +} +</script> -- Gitblit v1.8.0