zhanghua
2024-10-08 b664e03064ea1fb6e2d8a4d9ace63c7a8cf8978d
src/views/student/index.vue
@@ -8,13 +8,20 @@
    </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>
        <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="开始日期"
        <!-- <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>
      <div style="width: 300px">
        <el-input
          placeholder="按姓名搜索"
@@ -41,11 +48,11 @@
        <el-table-column label="姓名" prop="">
          <template slot-scope="scope">
            <el-link
            type="primary"
            :underline="false"
            @click="goDetails(scope.row)"
            >{{ scope.row.name }}</el-link
          >
              type="primary"
              :underline="false"
              @click="goDetails(scope.row)"
              >{{ scope.row.name }}</el-link
            >
            <!-- <el-link type="primary" :underline="false">{{
              scope.row.name
            }}</el-link> -->
@@ -113,13 +120,18 @@
      >
      </el-pagination>
    </div>
    <StudentCreate ref="studentCreate" />
    <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: {
@@ -133,7 +145,7 @@
    },
  },
  components: {
    StudentCreate,
    UploadStudent,
  },
  data() {
    return {
@@ -143,7 +155,7 @@
      activeName: "all",
      total: 0,
      data: {
        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
        keyword: "",
        pageIn: {
          //可选,如果是分页查询,需要加上。
@@ -155,23 +167,60 @@
          },
        },
      },
      dialogVisible: false,
    };
  },
  created() {
    this.fetchData();
    // 获取地址栏code
    // 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");
    }
  },
  methods: {
    handleExport() {
      this.download('exportPlayer', {
      }, `导出_${new Date().getTime()}.xlsx`)
      this.download(
        "exportPlayer?orgId=" +
          JSON.parse(localStorage.getItem("selectStaff")).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`)
      this.download(
        "exportReport?startDate=" +
          this.dateRange[0] +
          "&endDate=" +
          this.dateRange[1],
        {},
        `导出_${new Date().getTime()}.xlsx`
      );
    },
    handleImport() {
      this.dialogVisible = true;
    },
    reloadData() {
      this.dialogVisible = false;
      this.fetchData();
    },
    fetchData() {
      this.listLoading = true;
@@ -179,7 +228,7 @@
        this.list = response.data.findPlayerByStaff.ls;
        this.total = response.data.findPlayerByStaff.pageOut.total;
        this.listLoading = false;
      })
      });
    },
    handleSizeChange(val) {
      this.data.pageIn.size = val;
@@ -190,6 +239,7 @@
      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) => {
@@ -210,7 +260,7 @@
        this.listLoading = true;
        let data = {
          itemType: "PLAYER",
          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
          keyword: this.data.keyword,
          pageIn: { ...this.data.pageIn },
        };