<template> <div class="dataCenter"> <div class="header"> <div v-for="(item, index) in headList" :key="index" :class="['btn', selectedIndex == index ? 'active' : '']" @click="setSelectedIndex(index)" > {{ item }} </div> </div> <customs-table ref="table" :table-data="tableData" :columns="columns" :header-class="'newHeader'" :list-loading="listLoading" :current-page="pageIndex" :total-count="total" :page-sizes="pageSizes" :page-size="pageSize" @pageSizeChange="handleSizeChange" @currentPageChange="handleCurrentChange" /> </div> </template> <script> import CustomsTable from "@/components/CustomsTable" import paginationMixin from "@/components/TabComponents/mixin" import { getPatientPage } from "@/api/dataoverview.js" export default { // 数据概览 name: "", components: { CustomsTable, }, mixins: [paginationMixin], data() { return { listLoading: false, selectedIndex: sessionStorage.getItem("homeSelectedIndex") - 0 || 0, headList: ["筛查概览", "社区筛查", "医院筛查", "体检筛查"], columns: [ { label: "医联体", minWidth: 120, value: "unionName", }, { label: "累计上报量", minWidth: 120, value: "report", }, { label: "最近一季度上报量", minWidth: 120, value: "lastQuarter", }, { label: "累计审核合格量", minWidth: 120, value: "pass", }, { label: "高风险", minWidth: 120, value: "high", }, { label: "中风险", minWidth: 120, value: "middle", }, { label: "低风险", minWidth: 120, value: "low", }, { label: "胃癌", minWidth: 120, value: "gas", }, { label: "早期胃癌", minWidth: 120, value: "earlyGas", }, { label: "食道癌", minWidth: 120, value: "esophagus", }, ], tableData: [], } }, watch: {}, mounted() { this.getPatientPage() }, methods: { setSelectedIndex(i) { console.log(this.selectedIndex) this.selectedIndex = i this.getPatientPage() sessionStorage.setItem("homeSelectedIndex", this.selectedIndex) }, getPatientPage() { this.listLoading = true let data = { patientFrom: this.selectedIndex == "0" ? null : this.selectedIndex, } getPatientPage(data).then((res) => { this.listLoading = false if (res.code === 1) { const d = res.data this.tableData = d.records || [] this.total = Number(d.total) } this.listLoading = false }) }, }, } </script> <style lang="scss" scoped> .dataCenter { padding: 24px; height: 100%; display: flex; flex-direction: column; .header { display: flex; margin-bottom: 20px; .btn { cursor: pointer; width: 112px; height: 48px; background: #ffffff; border-radius: 4px; border: 1px solid #dddddd; font-size: 16px; font-family: AlibabaPuHuiTiM; color: #000; text-align: center; line-height: 48px; margin-right: 24px; } .active { background: #4e68ff; border: none; color: #ffffff; } } } </style>