From e95b21a03fe9dfc35326c99890a685c53cd36fbc Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 20 十月 2025 15:29:45 +0800
Subject: [PATCH] 续费人员查询修改
---
src/views/attendance/index.vue | 419 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 215 insertions(+), 204 deletions(-)
diff --git a/src/views/attendance/index.vue b/src/views/attendance/index.vue
index 94ca335..7150ebe 100644
--- a/src/views/attendance/index.vue
+++ b/src/views/attendance/index.vue
@@ -1,221 +1,232 @@
<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: "",
+ reportType: "",
+ 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.findRenewPlayerAcc.ls;
+ this.total = response.data.findRenewPlayerAcc.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