From 59d30d49f2a37c294ee98e495de9bc42dcdfe6ce Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 11 二月 2025 18:06:31 +0800
Subject: [PATCH] 优化

---
 src/views/attendance/index.vue |  418 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 214 insertions(+), 204 deletions(-)

diff --git a/src/views/attendance/index.vue b/src/views/attendance/index.vue
index 94ca335..996f058 100644
--- a/src/views/attendance/index.vue
+++ b/src/views/attendance/index.vue
@@ -1,221 +1,231 @@
 <template>
-  <div class="app-container">
-    <div style="display: flex">
-      <div>
-        <el-date-picker
-          v-model="dateRange"
-          type="daterange"
-          range-separator="鑷�"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-          value-format="yyyy-MM-dd"
-          style="margin-right: 10px"
-          @change="dateChange"
-        >
-        </el-date-picker>
-      </div>
-      <div style="margin: auto; margin-left: 30px !important">
-        <el-button type="primary" size="small" @click="handleExport"
-          >瀵煎嚭鎶ヨ〃</el-button
-        >
-      </div>
+    <div class="app-container">
+        <div style="display: flex">
+            <div>
+                <el-date-picker
+                    v-model="dateRange"
+                    type="daterange"
+                    range-separator="鑷�"
+                    start-placeholder="寮�濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                    value-format="yyyy-MM-dd"
+                    style="margin-right: 10px"
+                    @change="dateChange"
+                >
+                </el-date-picker>
+            </div>
+            <div style="margin: auto; margin-left: 30px !important">
+                <el-button type="primary" size="small" @click="handleExport"
+                    >瀵煎嚭鎶ヨ〃</el-button
+                >
+            </div>
+        </div>
+        <div style="height: calc(100vh - 168px)">
+            <el-table
+                v-loading="listLoading"
+                :data="list"
+                element-loading-text="Loading"
+                fit
+                height="100%"
+            >
+                <el-table-column label="瀛﹀憳濮撳悕" prop="playerName" width="180">
+                </el-table-column>
+                <el-table-column label="鍑哄嫟鎯呭喌" prop="state" width="180">
+                </el-table-column>
+                <el-table-column
+                    label="璇惧寘/浼氬憳鍗�"
+                    min-width="200"
+                    prop="voucherName"
+                >
+                </el-table-column>
+                <el-table-column label="璇炬椂娑堣��" prop="qty" min-width="100">
+                </el-table-column>
+                <el-table-column label="璇捐垂娑堣��" prop="amt" min-width="100">
+                </el-table-column>
+                <el-table-column label="璇剧▼鎬ц川" min-width="100">
+                    <template slot-scope="scope">
+                        {{ changeType(scope.row.sessionType) }}
+                    </template>
+                </el-table-column>
+                <el-table-column label="鏁欏笀" prop="staffName" min-width="100">
+                </el-table-column>
+                <el-table-column label="鏁欏" prop="placeName" min-width="100">
+                </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>
     </div>
-    <div style="height: calc(100vh - 168px)">
-      <el-table
-        v-loading="listLoading"
-        :data="list"
-        element-loading-text="Loading"
-        fit
-        height="100%"
-      >
-        <el-table-column label="瀛﹀憳濮撳悕" prop="playerName" width="180">
-        </el-table-column>
-        <el-table-column label="鍑哄嫟鎯呭喌" prop="state" width="180">
-        </el-table-column>
-        <el-table-column label="璇惧寘/浼氬憳鍗�" min-width="200" prop="voucherName">
-        </el-table-column>
-        <el-table-column label="璇炬椂娑堣��" prop="qty" min-width="100">
-        </el-table-column>
-        <el-table-column label="璇捐垂娑堣��" prop="amt" min-width="100">
-        </el-table-column>
-        <el-table-column label="璇剧▼鎬ц川" min-width="100">
-          <template slot-scope="scope">
-            {{ changeType(scope.row.sessionType) }}
-          </template>
-        </el-table-column>
-        <el-table-column label="鏁欏笀" prop="staffName" min-width="100">
-        </el-table-column>
-        <el-table-column label="鏁欏" prop="placeName" min-width="100">
-        </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>
-  </div>
 </template>
   
   <script>
 import { getData } from "@/api/attendance";
 
 export default {
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        published: "success",
-        draft: "gray",
-        deleted: "danger",
-      };
-      return statusMap[status];
-    },
-  },
-  components: {},
-  data() {
-    return {
-      dateRange: [],
-      list: null,
-      listLoading: true,
-      activeName: "all",
-      total: 0,
-      data: {
-        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
-        keyword: "",
-        pageIn: {
-          //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
-          index: 0, //蹇呴��
-          size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
-          sorts: {
-            name: "p.name", //鎺掑簭瀛楁鍚嶇О
-            direction: "ASC", //鎺掑簭鏂瑰悜
-          },
+    filters: {
+        statusFilter(status) {
+            const statusMap = {
+                published: "success",
+                draft: "gray",
+                deleted: "danger",
+            };
+            return statusMap[status];
         },
-      },
-      dialogVisible: false,
-    };
-  },
-  created() {
-    this.setDate();
-    this.fetchData();
-  },
-  methods: {
-    /** 灏嗘椂闂撮�夋嫨鍣ㄩ粯璁ら�変负褰撳ぉ鐨勬棩鏈� */
-    setDate() {
-      let currentDate = new Date();
-
-      let year = currentDate.getFullYear();
-      let month = String(currentDate.getMonth() + 1).padStart(2, "0");
-      let day = String(currentDate.getDate()).padStart(2, "0");
-
-      let formattedDate = `${year}/${month}/${day}`;
-      this.dateRange.push(formattedDate);
-      this.dateRange.push(formattedDate);
     },
-    handleExport() {
-      if (this.dateRange.length == 0) {
-        this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
-        return;
-      }
-      this.download(
-        "exportAttendanceReport?staffId="+this.data.staffId+"&startDate=" +
-          this.dateRange[0] +
-          "&endDate=" +
-          this.dateRange[1],
-        {},
-        `瀛﹀憳鑰冨嫟鏃ユ姤琛ㄥ鍑篲${new Date().getTime()}.xlsx`
-      );
-    },
-    handleImport() {
-      this.dialogVisible = true;
-    },
-    dateChange() {
-      this.data.pageIn.index = 0;
-      this.fetchData();
-    },
-    fetchData() {
-      this.listLoading = true;
-      this.data.beginDate = this.dateRange[0].replaceAll("-", "/");
-      this.data.endDate = this.dateRange[1].replaceAll("-", "/");
-
-      getData(this.data).then((response) => {
-        this.list = response.data.findPlayerAttendanceSummary.ls;
-        this.total = response.data.findPlayerAttendanceSummary.pageOut.total;
-        this.listLoading = false;
-      });
-    },
-    handleSizeChange(val) {
-      this.data.pageIn.size = val;
-      this.handleClick();
-    },
-    handleCurrentChange(val) {
-      this.data.pageIn.index = val - 1;
-      this.handleClick();
-    },
-    handleClick(tab, event) {
-      this.data.staffId = JSON.parse(localStorage.getItem("selectStaff")).id;
-      if (this.activeName == "pendingFees") {
-        this.listLoading = true;
-        getRenew(this.data).then((response) => {
-          this.list = response.data.findPlayerRenew.ls;
-          this.total = response.data.findPlayerRenew.pageOut.total;
-          this.listLoading = false;
-        });
-      } else if (this.activeName == "expired") {
-        this.listLoading = true;
-        getExpire(this.data).then((response) => {
-          this.list = response.data.findPlayerExpire.ls;
-          this.total = response.data.findPlayerExpire.pageOut.total;
-          this.listLoading = false;
-        });
-      } else if (this.activeName == "all") {
-        this.fetchData();
-      } else if (this.activeName == "deactivated") {
-        this.listLoading = true;
-        let data = {
-          itemType: "PLAYER",
-          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
-          keyword: this.data.keyword,
-          pageIn: { ...this.data.pageIn },
+    components: {},
+    data() {
+        return {
+            dateRange: [],
+            list: null,
+            listLoading: true,
+            activeName: "all",
+            total: 0,
+            data: {
+                staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                keyword: "",
+                pageIn: {
+                    //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
+                    index: 0, //蹇呴��
+                    size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
+                    sorts: {
+                        name: "p.name", //鎺掑簭瀛楁鍚嶇О
+                        direction: "ASC", //鎺掑簭鏂瑰悜
+                    },
+                },
+            },
+            dialogVisible: false,
         };
-        getDeleted(data).then((response) => {
-          this.list = response.data.findDeletedItem.ls;
-          this.total = response.data.findDeletedItem.pageOut.total;
-          this.listLoading = false;
-        });
-      }
     },
-    goDetails(row) {
-      this.$router.push({
-        name: "StudentDetails",
-        query: {
-          id: row.id,
+    created() {
+        this.setDate();
+        this.fetchData();
+    },
+    methods: {
+        /** 灏嗘椂闂撮�夋嫨鍣ㄩ粯璁ら�変负褰撳ぉ鐨勬棩鏈� */
+        setDate() {
+            const today = new Date()
+            const yesterday = new Date(today)
+
+            yesterday.setDate(yesterday.getDate() - 1)
+
+            let year = yesterday.getFullYear();
+            let month = String(yesterday.getMonth() + 1).padStart(2, "0");
+            let day = String(yesterday.getDate()).padStart(2, "0");
+
+            let formattedDate = `${year}-${month}-${day}`;
+            this.dateRange.push(formattedDate);
+            this.dateRange.push(formattedDate);
         },
-      });
+        setFormattedDate(selfdate) {
+
+        },
+        handleExport() {
+            if (this.dateRange.length == 0) {
+                this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
+                return;
+            }
+            this.download(
+                "exportAttendanceReport?staffId=" + this.data.staffId + "&startDate=" +
+                this.dateRange[0] +
+                "&endDate=" +
+                this.dateRange[1],
+                {},
+                `瀛﹀憳鑰冨嫟鎶ヨ〃瀵煎嚭_${new Date().getTime()}.xlsx`
+            );
+        },
+        handleImport() {
+            this.dialogVisible = true;
+        },
+        dateChange() {
+            this.data.pageIn.index = 0;
+            this.fetchData();
+        },
+        fetchData() {
+            this.listLoading = true;
+            this.data.beginDate = this.dateRange[0].replaceAll("-", "/");
+            this.data.endDate = this.dateRange[1].replaceAll("-", "/");
+
+            getData(this.data).then((response) => {
+                this.list = response.data.findPlayerAttendanceSummary.ls;
+                this.total = response.data.findPlayerAttendanceSummary.pageOut.total;
+                this.listLoading = false;
+            });
+        },
+        handleSizeChange(val) {
+            this.data.pageIn.size = val;
+            this.handleClick();
+        },
+        handleCurrentChange(val) {
+            this.data.pageIn.index = val - 1;
+            this.handleClick();
+        },
+        handleClick(tab, event) {
+            this.data.staffId = JSON.parse(localStorage.getItem("selectStaff")).id;
+            if (this.activeName == "pendingFees") {
+                this.listLoading = true;
+                getRenew(this.data).then((response) => {
+                    this.list = response.data.findPlayerRenew.ls;
+                    this.total = response.data.findPlayerRenew.pageOut.total;
+                    this.listLoading = false;
+                });
+            } else if (this.activeName == "expired") {
+                this.listLoading = true;
+                getExpire(this.data).then((response) => {
+                    this.list = response.data.findPlayerExpire.ls;
+                    this.total = response.data.findPlayerExpire.pageOut.total;
+                    this.listLoading = false;
+                });
+            } else if (this.activeName == "all") {
+                this.fetchData();
+            } else if (this.activeName == "deactivated") {
+                this.listLoading = true;
+                let data = {
+                    itemType: "PLAYER",
+                    staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                    keyword: this.data.keyword,
+                    pageIn: { ...this.data.pageIn },
+                };
+                getDeleted(data).then((response) => {
+                    this.list = response.data.findDeletedItem.ls;
+                    this.total = response.data.findDeletedItem.pageOut.total;
+                    this.listLoading = false;
+                });
+            }
+        },
+        goDetails(row) {
+            this.$router.push({
+                name: "StudentDetails",
+                query: {
+                    id: row.id,
+                },
+            });
+        },
+        showCreate() {
+            this.$refs.studentCreate.showDialog();
+        },
+        changeType(type) {
+            switch (type) {
+                case 0:
+                    return "鐝";
+                case 1:
+                    return "绾﹁";
+                case 2:
+                    return "鍦哄湴";
+                default:
+                    return "-";
+            }
+        },
     },
-    showCreate() {
-      this.$refs.studentCreate.showDialog();
-    },
-    changeType(type) {
-      switch (type) {
-        case 0:
-          return "鐝";
-        case 1:
-          return "绾﹁";
-        case 2:
-          return "鍦哄湴";
-        default:
-          return "-";
-      }
-    },
-  },
 };
 </script>
   
\ No newline at end of file

--
Gitblit v1.8.0