From 54e06ab83d8fbebf91f8e0c3a621da743ac5af26 Mon Sep 17 00:00:00 2001
From: 黄何裕 <1053952480@qq.com>
Date: 星期四, 08 八月 2024 09:28:06 +0800
Subject: [PATCH] 课表页面开发

---
 src/views/work/index.vue |  215 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 154 insertions(+), 61 deletions(-)

diff --git a/src/views/work/index.vue b/src/views/work/index.vue
index 6049020..90e2f7f 100644
--- a/src/views/work/index.vue
+++ b/src/views/work/index.vue
@@ -1,87 +1,135 @@
 <template>
   <div class="app-container">
-    <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="浣滀笟" name="first">
+    <el-tabs v-model="activeName" @tab-click="fetchData">
+      <el-tab-pane label="浣滀笟" name="work">
         <div style="display: flex; flex-direction: row-reverse">
           <div style="width: 300px">
             <el-input
               placeholder="鎸変綔涓氬悕绉版悳绱�"
-              v-model="input3"
+              v-model="data.keyword"
               class="input-with-select"
               size="small"
             >
-              <el-button slot="append" icon="el-icon-search"></el-button>
+              <el-button
+                slot="append"
+                icon="el-icon-search"
+                @click="fetchData"
+              ></el-button>
             </el-input>
           </div>
         </div>
-        <el-table
-          v-loading="listLoading"
-          :data="list"
-          element-loading-text="Loading"
-          fit
-        >
-          <el-table-column label="浣滀笟鍚嶇О">
-            <template slot-scope=""> xxxxx </template>
-          </el-table-column>
-          <el-table-column label="鐝骇" width="80">
-            <template slot-scope=""> 鐢� </template>
-          </el-table-column>
-          <el-table-column label="瀛﹀憳" width="200">
-            <template slot-scope=""> 10086 </template>
-          </el-table-column>
-          <el-table-column label="鏁欏笀" width="200">
-            <template slot-scope=""> asfiaf </template>
-          </el-table-column>
-          <el-table-column label="鎴鏃ユ湡" width="">
-            <template slot-scope=""> asfiaf </template>
-          </el-table-column>
-          <el-table-column label="鍐呭" width="">
-            <template slot-scope=""> asfiaf </template>
-          </el-table-column>
-          <el-table-column label="鎿嶄綔" width="">
-            <template slot-scope=""> 淇敼 </template>
-          </el-table-column>
-        </el-table>
+        <div style="height: calc(100vh - 248px)">
+          <el-table
+            v-loading="listLoading"
+            :data="list"
+            element-loading-text="Loading"
+            fit
+            height="100%"
+          >
+            <el-table-column label="浣滀笟鍚嶇О">
+              <template slot-scope="scope">
+                <el-link type="primary" :underline="false">{{
+                  scope.row.name
+                }}</el-link>
+              </template>
+            </el-table-column>
+            <el-table-column label="甯冪疆鏃堕棿" width="">
+              <
+              <template slot-scope="scope">
+                {{ scope.row.createTime }}
+              </template>
+            </el-table-column>
+            <el-table-column label="甯冪疆浜�" width="">
+              <template slot-scope="scope">
+                {{ scope.row.publisher.name }}
+              </template>
+            </el-table-column>
+            <el-table-column label="鎿嶄綔" width="">
+              <template slot-scope=""> 澶嶅埗 </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div>
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="data.pageIn.index + 1"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="data.pageIn.size"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+          >
+          </el-pagination>
+        </div>
       </el-tab-pane>
-      <el-tab-pane label="鎵归槄" name="fourth">
+      <el-tab-pane label="鎵归槄" name="readOver">
         <div style="display: flex; flex-direction: row-reverse">
           <div style="width: 300px">
             <el-input
               placeholder="鎸夊鍛樺悕绉版悳绱�"
-              v-model="input3"
+              v-model="data.keyword"
               class="input-with-select"
               size="small"
             >
-              <el-button slot="append" icon="el-icon-search"></el-button>
+              <el-button
+                slot="append"
+                icon="el-icon-search"
+                @click="fetchData"
+              ></el-button>
             </el-input>
           </div>
         </div>
-        <el-table
-          v-loading="listLoading"
-          :data="list"
-          element-loading-text="Loading"
-          fit
-        >
-          <el-table-column label="瀛﹀憳">
-            <template slot-scope=""> xxxxx </template>
-          </el-table-column>
-          <el-table-column label="鏃堕棿" width="80">
-            <template slot-scope=""> 鐢� </template>
-          </el-table-column>
-          <el-table-column label="浣滀笟" width="200">
-            <template slot-scope=""> 10086 </template>
-          </el-table-column>
-          <el-table-column label="鐐硅瘎" width="200">
-            <template slot-scope=""> asfiaf </template>
-          </el-table-column>
-        </el-table>
+        <div style="height: calc(100vh - 248px)">
+          <el-table
+            v-loading="listLoading"
+            :data="list"
+            element-loading-text="Loading"
+            fit
+            height="100%"
+          >
+            <el-table-column label="瀛﹀憳">
+              <template slot-scope="scope">
+                <el-link type="primary" :underline="false">{{
+                  scope.row.player.name
+                }}</el-link>
+              </template>
+            </el-table-column>
+            <el-table-column label="瀹屾垚鏃堕棿" width="">
+              <template slot-scope="scope">
+                {{ scope.row.createTime }}
+              </template>
+            </el-table-column>
+            <el-table-column label="浣滀笟" width="">
+              <template slot-scope="scope">
+                {{ scope.row.homework.name }}
+              </template>
+            </el-table-column>
+            <el-table-column label="鐐硅瘎" width="">
+              <template slot-scope="scope">
+                {{ scope.row.lastStaffCommentId ? "宸茬偣璇�" : "鏈偣璇�" }}
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div>
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="data.pageIn.index + 1"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="data.pageIn.size"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+          >
+          </el-pagination>
+        </div>
       </el-tab-pane>
     </el-tabs>
   </div>
 </template>
 
 <script>
-import { getList } from "@/api/table";
+import { getHomeworkByType, getHomeworkCommentByAuth } from "@/api/work";
 
 export default {
   filters: {
@@ -98,19 +146,64 @@
     return {
       list: null,
       listLoading: true,
-      activeName: "first",
+      activeName: "work",
+      total: 0,
+      data: {
+        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        keyword: "",
+        pageIn: {
+          //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
+          index: 0, //蹇呴��
+          size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
+          sorts: {
+            name: "name", //鎺掑簭瀛楁鍚嶇О
+            direction: "ASC", //鎺掑簭鏂瑰悜
+          },
+        },
+        commentTypes: ["HOMEWORK"],
+        homeworkType: "HOMEWORK",
+      },
     };
   },
   created() {
     this.fetchData();
   },
   methods: {
-    fetchData() {
+    handleSizeChange(val) {
+      this.data.pageIn.size = val;
+      this.fetchData("pageIn");
+    },
+    handleCurrentChange(val) {
+      this.data.pageIn.index = val - 1;
+      this.fetchData("pageIn");
+    },
+    fetchData(_val) {
+      if (_val !== "pageIn") {
+        this.data.pageIn.index = 0;
+        this.data.pageIn.size = 10;
+      }
       this.listLoading = true;
-      getList().then((response) => {
-        this.list = response.data.items;
-        this.listLoading = false;
-      });
+      if (this.activeName == "work") {
+        this.listLoading = true;
+        getHomeworkByType(this.data).then((response) => {
+          this.list = response.data.findHomeworkByType.ls;
+          this.total = response.data.findHomeworkByType.pageOut.total;
+          this.listLoading = false;
+        });
+      } else if (this.activeName == "readOver") {
+        this.listLoading = true;
+        let data = {
+          commentTypes: ["PLAYER_REPLY"],
+          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          keyword: this.data.keyword,
+          pageIn: { ...this.data.pageIn },
+        };
+        getHomeworkCommentByAuth(data).then((response) => {
+          this.list = response.data.findHomeworkCommentByAuth.ls;
+          this.total = response.data.findHomeworkCommentByAuth.pageOut.total;
+          this.listLoading = false;
+        });
+      }
     },
   },
 };

--
Gitblit v1.8.0