<template>
  <div class="box">
    <!-- 查询 -->
    <div class="inquire">
      <div class="block">
        <span class="demonstration">分区</span>
        <el-select
          v-model="inquire.partitionId"
          style="width: 75%"
          placeholder="请选择"
        >
          <el-option
            v-for="item in inquire.partitionArr"
            :key="item.id"
            :label="item.desc"
            :value="item.id"
          ></el-option>
        </el-select>
      </div>
    </div>
    <div class="inquire">
      <span>周期</span>
      <el-select v-model="inquire.gameArrVal" placeholder="请选择">
        <el-option
          v-for="item in inquire.gamesArr"
          :key="item.gameId"
          :label="item.gameName"
          :value="item.gameId"
        >
        </el-option>
      </el-select>
    </div>
    <div class="inquire">
      <span>ID</span>
      <el-input
        v-model="inquire.userId"
        placeholder=""
        class="input"
      ></el-input>
    </div>
    <!-- 查询按钮 -->
    <el-button
      class="primary"
      type="primary"
      @click="
        tableData = [];
        currentPage = 1;
        isFinished = false;
        getData();
      "
      >查询</el-button
    >
    <el-button
      class="primary"
      type="primary"
      @click="
        this.inquire.userId = '';
        this.getData();
      "
      >重置搜索</el-button
    >
    <el-button class="primary" type="primary" @click="confirmExport2Excel()"
      >导出</el-button
    >

    <!-- 表格 -->
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="multipleTable"
      @selection-change="handleSelectionChange"
      border
      style="width: 100%; margin-top: 25px"
    >
      <el-table-column prop="cycleDate" align="center" label="周期" />
      <el-table-column prop="familyId" align="center" label="公会ID" />
      <el-table-column prop="familyName" align="center" label="公会昵称" />
      <el-table-column prop="familyOwnerId" align="center" label="公会长ID" />
      <el-table-column
        prop="familyOwnerNick"
        align="center"
        label="公会长昵称"
      />
      <el-table-column prop="erbanNo" align="center" label="主播ID" />
      <el-table-column prop="nick" align="center" label="主播昵称" />
      <el-table-column prop="level" align="center" label="主播等级" />
      <el-table-column prop="processNum" align="center" label="钻石流水" />
      <el-table-column prop="rewardNum" align="center" label="已获得金币" />
      <el-table-column prop="receivedNum" align="center" label="已领取金币" />
    </el-table>

    <!-- 分页 -->
    <el-pagination
      style="margin-top: 10px"
      class="paginationClass"
      v-model:current-page="currentPage"
      v-model:page-size="pageSize"
      :page-sizes="[1, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 999999999]"
      layout="sizes, prev, pager, next"
      :total="total"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    />
  </div>
</template>
<script>
import {
  familyMemberWeekLevelRewardPage,
  familyMemberWeekLevelRewardExport,
  familyMemberWeekLevelRewardListCycleDate,
} from "@/api/relAgency/relAgency";
import { listPartitionInfo } from "@/api/noblemanNew/noblemanNew";
// @ts-ignore
import { dateFormat } from "@/utils/system-helper";
// @ts-ignore
import { ElMessage, ElTable } from "element-plus";
import { ref } from "vue";
import { ElMessageBox } from "element-plus"; // 正确引入 ElM
export default {
  name: "weeklyRewards",
  data() {
    return {
      loading: false,
      //查询所需条件对象
      inquire: {
        userId: "",
        gamesArr: [],
        gameArrVal: 1,
        partitionId: 1,
        partitionArr: [
          { id: 1, desc: "英语区" },
          { id: 2, desc: "阿拉伯" },
        ],
      },
      // 表格
      tableData: [],
      // 分页
      total: 0, //总页数
      currentPage: 1, //页码
      pageSize: 10, //条数
    };
  },
  created() {
    // const timestamps = this.getCurrentWeekTimestamps();
    // var obj = {};
    // timestamps.forEach((res, i) => {
    //   this.inquire.gamesArr[i] = {
    //     gameName: dateFormat(res, "yyyy-MM-dd"),
    //     gameId: dateFormat(res, "yyyy-MM-dd"),
    //   };
    // });
    // this.inquire.gameArrVal = this.inquire.gamesArr[0].gameId;
    familyMemberWeekLevelRewardListCycleDate().then((res) => {
      if (res.code == 200) {
        res.data.forEach((res, i) => {
          this.inquire.gamesArr[i] = {
            gameName: `${dateFormat(res.startDate, "yyyy-MM-dd")}~${dateFormat(
              res.endDate,
              "yyyy-MM-dd"
            )}`,
            gameId: res.dateCycle,
          };
        });
        this.inquire.gameArrVal = this.inquire.gamesArr[0].gameId;
        this.getData();
      } else {
        ElMessage({
          showClose: true,
          message: res.message,
          type: "error",
        });
      }
    });
    // listPartitionInfo().then((res) => {
    //   this.inquire.partitionArr = res.data;
    //   this.inquire.partitionId = this.inquire.partitionArr[0].id;
    //   this.getData();
    // });
  },
  methods: {
    // 查询接口
    getData() {
      this.isLoading = true;
      this.loading = true;
      familyMemberWeekLevelRewardPage({
        cycleDate: this.inquire.gameArrVal,
        erbanNo: this.inquire.userId,
        pageNo: this.currentPage,
        pageSize: this.pageSize,
        partitionId: this.inquire.partitionId,
      }).then((res) => {
        if (res.code == 200) {
          this.total = res.data.total;
          this.tableData = res.data.rows;
        } else {
          ElMessage({
            showClose: true,
            message: res.message,
            type: "error",
          });
        }
        this.loading = false;
        this.isLoading = false;
      });
    },
    getCurrentWeekTimestamps() {
      const today = new Date();
      const dayOfWeek = today.getDay(); // 0（周日）到6（周六）
      // 计算到周一的天数差：周日需-6天，其他天减(当前星期数 - 1)
      const diffToMonday = dayOfWeek === 0 ? -6 : 1 - dayOfWeek;
      const monday = new Date(today);
      monday.setDate(monday.getDate() + diffToMonday);
      monday.setHours(0, 0, 0, 0); // 设置为周一的0点

      const weekTimestamps = [];
      for (let i = 0; i < 7; i++) {
        const date = new Date(monday);
        date.setDate(monday.getDate() + i);
        weekTimestamps.push(date.getTime());
      }
      return weekTimestamps; // 包含周一到周日每天0点的时间戳数组
    },
    // 导出
    confirmExport2Excel() {
      familyMemberWeekLevelRewardExport({
        cycleDate: this.inquire.gameArrVal,
        erbanNo: this.inquire.userId,
        partitionId: this.inquire.partitionId,
      }).then();
    },
    // 分页导航
    handleSizeChange() {
      this.getData();
    },
    handleCurrentChange() {
      this.getData();
    },
  },
};
</script>
<style lang="less" scoped>
.box {
  padding-top: 20px;
  background: #ecf0f5;
  .inquire {
    display: inline-block;
    margin-right: 20px;
    span {
      margin-right: 10px;
    }
    .input {
      width: 180px;
      margin-right: 10px;
    }
  }
  .dialogTableVisibleBut {
    display: block;
    margin: 30px 0 0 830px;
  }
  .paginationClass {
    margin: 15px 0 5px 0px;
  }
}
.selectBox {
  display: flex;
  height: 35px;
  line-height: 35px;
  margin-bottom: 20px;
}
.selectBoxImg {
  height: 150px;
}
.pagination {
  margin: 10px auto 10px;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.pagination_in {
  text-align: center;
}
</style>
