WXL (wul)
5 天以前 5e3f064530fe71987e2a5920fe59967ef348cbd7
src/views/index.vue
@@ -21,7 +21,6 @@
              <el-col :span="10">
                <div class="home-user-task-stats">
                  <p>{{ OutpatientData.rc }}</p>
                  <p>{{ OutpatientData.rc }}</p>
                  <div class="text-color2">
                    <p>门诊就诊量(人次)</p>
                  </div>
@@ -129,13 +128,18 @@
        </el-col>
        <!-- 右边列表 -->
        <el-col :span="4" class="aside">
          <div class="grid-content bg-purple" style="margin-top: -180px">
          <div class="grid-contentsa bg-purple" style="margin-top: -180px">
            <div class="title">
              科室服务量
              <span>{{ endatd }} ~ {{ statd }}</span>
            </div>
            <div style="max-height: 690px; width: 100%; overflow: auto">
              <el-table style="width: 100%" :data="SkuTop">
            <div class="dept-table-container">
              <el-table
                v-if="SkuTop.length > 0"
                style="width: 100%"
                :data="SkuTop"
                :height="tableHeight"
              >
                <template v-for="(item, index) in SkuTop"></template>
                <el-table-column
                  prop="order"
@@ -145,7 +149,7 @@
                ></el-table-column>
                <el-table-column
                  prop="deptname"
                  width="88"
                  width="120"
                  class-name="name"
                ></el-table-column>
@@ -153,24 +157,26 @@
                  <template slot-scope="scope"> {{ scope.row.rc }}次 </template>
                </el-table-column>
              </el-table>
              <div v-else class="empty-tip">
                <el-empty description="暂无科室服务数据"></el-empty>
              </div>
            </div>
          </div>
        </el-col>
      </el-row>
      <!-- 底部一个 -->
      <el-row :gutter="20" style="margin-bottom: 20px">
        <el-col :span="24">
        <!-- <el-col :span="24">
          <div class="grid-content bg-purple" style="min-height: 300px">
            <div class="title">
              宣教统计
              <span class="el-icon-s-unfold moreIcon"></span>
            </div>
            <div class="cooperate">
              <!-- 合作区域 -->
              <div class="pieChart" id="pieCharts"></div>
            </div>
          </div>
        </el-col>
        </el-col> -->
        <!-- <el-col :span="9">
          <div class="grid-content bg-purple" style="min-height: 300px">
            <div class="title">
@@ -322,7 +328,7 @@
      mypPieCharts: null,
      lastWidth: window.innerWidth,
      lastHeight: window.innerHeight,
      radio1: "近一周",
      radio1: "近一年",
      ticketStatistics: {},
      timeTypeMap: {
        周: "day",
@@ -347,7 +353,7 @@
      cylinderSeries: [],
      cylinderXAxis: [],
      customDateRange: [], // 自定义日期范围
      dyat: 6,
      dyat: 365,
      intervalId: null,
    };
  },
@@ -360,7 +366,7 @@
    atd() {
      return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD HH:mm:ss");
    },
   statd() {
    statd() {
      if (this.radio1 === "自定义" && this.customDateRange.length > 0) {
        return this.customDateRange[1];
      }
@@ -371,6 +377,16 @@
        return this.customDateRange[0];
      }
      return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD");
    },
    tableHeight() {
      // 根据数据量动态计算高度
      const rowHeight = 40; // 每行大约高度
      const headerHeight = 40; // 表头高度
      const minHeight = 500; // 最小高度
      const maxHeight = 600; // 最大高度
      const calculatedHeight = this.SkuTop.length * rowHeight + headerHeight;
      return Math.min(Math.max(calculatedHeight, minHeight), maxHeight);
    },
  },
  created() {
@@ -504,7 +520,7 @@
      let params = {
        startDate: this.endatd,
        endDate: this.statd,
        timeType: this.getTimeType()
        timeType: this.getTimeType(),
      };
      try {
@@ -531,7 +547,7 @@
      if (this.radio1 === "自定义" && this.customDateRange.length === 2) {
        const start = dayjs(this.customDateRange[0]);
        const end = dayjs(this.customDateRange[1]);
        const diffDays = end.diff(start, 'day');
        const diffDays = end.diff(start, "day");
        return diffDays > 60 ? "month" : "day";
      }
@@ -551,18 +567,19 @@
      const pmoData = [];
      sortedData.forEach((item) => {
  // 根据时间类型格式化显示
  const timeType = this.getTimeType();
  const timeLabel = timeType === "day"
    ? dayjs(item.timePeriod).format("MM-DD")
    : dayjs(item.timePeriod).format("YYYY-MM");
        // 根据时间类型格式化显示
        const timeType = this.getTimeType();
        const timeLabel =
          timeType === "day"
            ? dayjs(item.timePeriod).format("MM-DD")
            : dayjs(item.timePeriod).format("YYYY-MM");
  xAxisData.push(timeLabel);
  dischargeFollowData.push(item.dischargeFollowCount);
  outpatientFollowData.push(item.outpatientFollowCount);
  pmiData.push(item.pmiCount);
  pmoData.push(item.pmoCount);
});
        xAxisData.push(timeLabel);
        dischargeFollowData.push(item.dischargeFollowCount);
        outpatientFollowData.push(item.outpatientFollowCount);
        pmiData.push(item.pmiCount);
        pmoData.push(item.pmoCount);
      });
      // 更新图表
      this.updateChart(
@@ -893,6 +910,12 @@
    flex: 1;
  }
}
.dept-table-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0; /* 重要:允许内容收缩 */
}
::v-deep .el-table {
  td:first-child {
    .cell {
@@ -1150,6 +1173,12 @@
  padding: 0 10px;
  text-align: center;
}
.grid-contentsa {
  min-height: 600px;
  border-radius: 20px;
  padding: 0 10px;
  text-align: center;
}
.grid-contents {
  min-height: 36px;