From a128d99df306bb1ab017b7069fb0441837b3917b Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 13 十月 2025 10:04:35 +0800
Subject: [PATCH] 导出加参数
---
src/views/student/index.vue | 504 +++++++++++++++++++++++++++++--------------------------
1 files changed, 262 insertions(+), 242 deletions(-)
diff --git a/src/views/student/index.vue b/src/views/student/index.vue
index e010ca1..fdda66a 100644
--- a/src/views/student/index.vue
+++ b/src/views/student/index.vue
@@ -1,264 +1,284 @@
<template>
- <div class="app-container">
- <el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="鍏ㄩ儴" name="all" />
- <el-tab-pane label="寰呯画璐�" name="pendingFees" />
- <el-tab-pane label="宸茶繃鏈�" name="expired" />
- <el-tab-pane label="宸插仠鐢�" name="deactivated" />
- </el-tabs>
- <div style="display: flex; justify-content: space-between">
- <!-- <el-button type="primary" size="small" @click="showCreate">鏂板缓瀛﹀憳</el-button> -->
- <el-button type="primary" size="small" @click="handleExport"
- >瀵煎嚭瀛﹀憳</el-button
- >
- <div style="width: 500px">
- <!-- <el-date-picker v-model="dateRange" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+ <div class="app-container">
+ <el-tabs v-model="activeName" @tab-click="handleClick">
+ <el-tab-pane label="鍏ㄩ儴" name="all" />
+ <el-tab-pane label="寰呯画璐�" name="pendingFees" />
+ <el-tab-pane label="宸茶繃鏈�" name="expired" />
+ <el-tab-pane label="宸插仠鐢�" name="deactivated" />
+ </el-tabs>
+ <div style="display: flex">
+ <!-- <el-button type="primary" size="small" @click="showCreate">鏂板缓瀛﹀憳</el-button> -->
+ <div style="width: 300px">
+ <el-input
+ placeholder="鎸夊鍚嶆悳绱�"
+ v-model="data.keyword"
+ class="input-with-select"
+ size="small"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-search"
+ @click="handleClick"
+ ></el-button>
+ </el-input>
+ </div>
+ <div style="margin-left: 30px">
+ <el-button type="primary" size="small" @click="handleExport"
+ >瀵煎嚭瀛﹀憳</el-button
+ >
+ <el-button type="primary" size="small" @click="handleImport"
+ >瀵煎叆瀛﹀憳</el-button
+ >
+ </div>
+ <div style="width: 500px">
+ <!-- <el-date-picker v-model="dateRange" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd" style="margin-right: 10px">
</el-date-picker>
<el-button type="primary" @click="handleExport2">瀵煎嚭璇惧寘</el-button> -->
- </div>
- <div style="width: 300px">
- <el-input
- placeholder="鎸夊鍚嶆悳绱�"
- v-model="data.keyword"
- class="input-with-select"
- size="small"
- >
- <el-button
- slot="append"
- icon="el-icon-search"
- @click="handleClick"
- ></el-button>
- </el-input>
- </div>
- </div>
- <div style="height: calc(100vh - 248px)">
- <el-table
- v-loading="listLoading"
- :data="list"
- element-loading-text="Loading"
- fit
- height="100%"
+ </div>
+ </div>
+ <div style="height: calc(100vh - 208px)">
+ <el-table
+ v-loading="listLoading"
+ :data="list"
+ element-loading-text="Loading"
+ fit
+ height="100%"
+ >
+ <el-table-column label="濮撳悕" prop="" width="300">
+ <template slot-scope="scope">
+ <el-link
+ type="primary"
+ :underline="false"
+ @click="goDetails(scope.row)"
+ >{{ scope.row.name }}</el-link
>
- <el-table-column label="濮撳悕" prop="">
- <template slot-scope="scope">
- <el-link
- type="primary"
- :underline="false"
- @click="goDetails(scope.row)"
- >{{ scope.row.name }}</el-link
- >
- <!-- <el-link type="primary" :underline="false">{{
+ <!-- <el-link type="primary" :underline="false">{{
scope.row.name
}}</el-link> -->
- </template>
- </el-table-column>
- <el-table-column
- label="鎬у埆"
- width="80"
- v-if="activeName !== 'deactivated'"
- >
- <template slot-scope="scope">
- {{ scope.row.gender == 'FEMALE' ? '濂�' : '鐢�' }}
- </template>
- </el-table-column>
- <el-table-column
- label="鎵嬫満鍙�"
- width="200"
- prop="mobile"
- v-if="activeName !== 'deactivated'"
- >
- <template slot-scope="scope">
- {{ scope.row.mobile ? scope.row.mobile : '--' }}
- </template>
- </el-table-column>
- <el-table-column
- label="鏄惁缁戝畾寰俊"
- width="200"
- v-if="activeName !== 'deactivated'"
- >
- <template slot-scope="scope">
- {{ scope.row.user ? '鏄�' : '鍚�' }}
- </template>
- </el-table-column>
- <el-table-column
- label="鎿嶄綔"
- width="200"
- v-if="activeName == 'deactivated'"
- >
- <template slot-scope="">
- <el-link type="primary" :underline="false"
- >鍒犻櫎</el-link
- >
-
- <el-link type="primary" :underline="false"
- >鎭㈠</el-link
- >
- </template>
- </el-table-column>
- <el-table-column
- label="鍋滅敤鏃堕棿"
- width="200"
- v-if="activeName == 'deactivated'"
- >
- <template slot-scope="scope">
- {{ scope.row.modifyTime }}
- </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>
- <StudentCreate ref="studentCreate" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎬у埆"
+ width="200"
+ v-if="activeName !== 'deactivated'"
+ >
+ <template slot-scope="scope">
+ {{ scope.row.gender == "FEMALE" ? "濂�" : "鐢�" }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎵嬫満鍙�"
+ width="300"
+ prop="mobile"
+ v-if="activeName !== 'deactivated'"
+ >
+ <template slot-scope="scope">
+ {{ scope.row.mobile ? scope.row.mobile : "--" }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鏄惁缁戝畾寰俊"
+ v-if="activeName !== 'deactivated'"
+ min-width="200"
+ >
+ <template slot-scope="scope">
+ {{ scope.row.user ? "鏄�" : "鍚�" }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="200"
+ v-if="activeName == 'deactivated'"
+ >
+ <template slot-scope="">
+ <el-link type="primary" :underline="false">鍒犻櫎</el-link>
+
+ <el-link type="primary" :underline="false">鎭㈠</el-link>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍋滅敤鏃堕棿"
+ width="200"
+ v-if="activeName == 'deactivated'"
+ >
+ <template slot-scope="scope">
+ {{ scope.row.modifyTime }}
+ </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-dialog :visible.sync="dialogVisible" width="560px" title="瀵煎叆瀛﹀憳">
+ <UploadStudent
+ v-if="dialogVisible"
+ @load-success="reloadData"
+ ></UploadStudent>
+ </el-dialog>
+ </div>
</template>
<script>
-import { getData, getRenew, getExpire, getDeleted, handleExport } from "@/api/student";
-import StudentCreate from "./components/create.vue";
-
+import { getData, getRenew, getExpire, getDeleted } from "@/api/student";
+import UploadStudent from "./components/upload-student.vue";
export default {
- filters: {
- statusFilter(status) {
- const statusMap = {
- published: "success",
- draft: "gray",
- deleted: "danger",
- };
- return statusMap[status];
+ filters: {
+ statusFilter(status) {
+ const statusMap = {
+ published: "success",
+ draft: "gray",
+ deleted: "danger",
+ };
+ return statusMap[status];
+ },
+ },
+ components: {
+ UploadStudent,
+ },
+ 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: "name", //鎺掑簭瀛楁鍚嶇О
+ direction: "ASC", //鎺掑簭鏂瑰悜
+ },
},
+ },
+ dialogVisible: false,
+ };
+ },
+ created() {
+ // 鑾峰彇鍦板潃鏍廲ode
+ // let code = this.$route.query.code;
+ // if (code) {
+ // if (localStorage.getItem("code")) {
+ // if (code !== localStorage.getItem("code")) {
+ // this.getUserDate(code);
+ // }
+ // } else {
+ // this.getUserDate(code);
+ // }
+ // } else {
+ // if (!localStorage.getItem("user")) {
+ // this.$router.push("/login");
+ // }
+ // }
+ this.fetchData();
+ },
+ methods: {
+ handleExport() {
+ this.download(
+ "exportPlayer?orgId=" +
+ JSON.parse(localStorage.getItem("selectStaff")).org.id+"&type=" +
+ this.activeName,
+ {},
+ `瀵煎嚭_${new Date().getTime()}.xlsx`
+ );
},
- components: {
- StudentCreate,
+ handleExport2() {
+ if (this.dateRange.length == 0) {
+ this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
+ return;
+ }
+ this.download(
+ "exportReport?startDate=" +
+ this.dateRange[0] +
+ "&endDate=" +
+ this.dateRange[1],
+ {},
+ `瀵煎嚭_${new Date().getTime()}.xlsx`
+ );
},
- 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: "name", //鎺掑簭瀛楁鍚嶇О
- direction: "ASC", //鎺掑簭鏂瑰悜
- },
- },
- },
+ handleImport() {
+ this.dialogVisible = true;
+ },
+ reloadData() {
+ this.dialogVisible = false;
+ this.fetchData();
+ },
+ fetchData() {
+ this.listLoading = true;
+ getData(this.data).then((response) => {
+ this.list = response.data.findPlayerByStaff.ls;
+ this.total = response.data.findPlayerByStaff.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;
+ });
+ }
},
- created() {
- // 鑾峰彇鍦板潃鏍廲ode
- // let code = this.$route.query.code;
- // if (code) {
- // if (localStorage.getItem("code")) {
- // if (code !== localStorage.getItem("code")) {
- // this.getUserDate(code);
- // }
- // } else {
- // this.getUserDate(code);
- // }
- // } else {
- // if (!localStorage.getItem("user")) {
- // this.$router.push("/login");
- // }
- // }
- if (localStorage.getItem("user")) {
- this.fetchData();
- } else {
- this.$router.push("/login");
- }
+ goDetails(row) {
+ this.$router.push({
+ name: "StudentDetails",
+ query: {
+ id: row.id,
+ },
+ });
},
- methods: {
- handleExport() {
- this.download('exportPlayer?orgId=' + JSON.parse(localStorage.getItem("user")).staffs[0].org.id, {
- }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
- },
- handleExport2() {
- if (this.dateRange.length == 0) {
- this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
- return;
- }
- this.download('exportReport?startDate=' + this.dateRange[0] + '&endDate=' + this.dateRange[1], {
- }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
- },
- fetchData() {
- this.listLoading = true;
- getData(this.data).then((response) => {
- this.list = response.data.findPlayerByStaff.ls;
- this.total = response.data.findPlayerByStaff.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();
- },
+ showCreate() {
+ this.$refs.studentCreate.showDialog();
},
+ },
};
</script>
--
Gitblit v1.8.0