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