<template>
  <div class="container" style="max-height: 89vh">
    <div v-show="!isDetail">
      <div class="header">草稿箱</div>
      <div class="content">
        <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>
    </div>
    <div v-if="isDetail">
      <div>
        <el-button icon="el-icon-back" @click="isDetail = false"
          >返 回</el-button
        >
      </div>
      <div class="form_content">
        <ConfigForms
          form-type="1"
          :patient-id="patientId"
          :disabled="disabled"
          :operation="'edit'"
        ></ConfigForms>
      </div>
    </div>
  </div>
</template>
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ConfigForms from "./components/ConfigForms.vue"
import { mapGetters } from "vuex"
import { getPatientPage, deletePatient } from "@/api/patient.js"
export default {
  // 数据概览
  name: "",
  components: {
    CustomsTable,
    ConfigForms,
  },
  mixins: [paginationMixin],
  data() {
    return {
      isDetail: false, //! 控制详情显隐
      listLoading: false,
      columns: [
        {
          label: "医联体",
          minWidth: 120,
          value: "unionId",
        },
        {
          label: "姓名",
          minWidth: 120,
          value: "name",
        },
        {
          label: "性别",
          minWidth: 120,
          value: "sex",
        },

        {
          label: "身份证",
          minWidth: 120,
          value: "idCard",
        },

        {
          label: "年龄",
          minWidth: 120,
          value: "age",
        },

        {
          label: "筛查时间",
          minWidth: 120,
          value: "screenTime",
        },

        {
          label: "风险评估结果",
          minWidth: 120,
          value: "result",
        },
        {
          label: "上次随访时间",
          minWidth: 120,
          value: "targetFieldCode",
        },
        {
          label: "筛查审核状态",
          minWidth: 180,
          value: "createTime",
        },
        {
          label: "操作",
          width: 220,
          fixed: "right",
          operType: "button",
          operations: [
            {
              func: this.handleAdd,
              formatter(row) {
                return {
                  label: "编辑",
                  type: "text",
                }
              },
            },
            {
              func: this.deletePatient,
              formatter(row) {
                return {
                  label: "删除",
                  type: "text",
                }
              },
              style: {
                color: "#FA6400",
              },
            },
          ],
        },
      ],
      tableData: [
        {
          name: "1",
          1: 2,
        },
      ],
    }
  },
  watch: {},
  mounted() {},
  methods: {
    handleAdd({ patientId, name }, index, disabled = false) {
      sessionStorage.removeItem("index1Data")
      this.disabled = disabled
      this.patientId = patientId || null
      this.name = name
      this.isDetail = true
    },
    setSelectedIndex(i) {
      console.log(this.selectedIndex)
      this.selectedIndex = i
      sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
    },
    // 查询
    handleFormSearch(form) {
      this.searchForm = form
      this.pageIndex = 1
      this.handleSearch(form)
    },
    handleSearch() {
      this.listLoading = true
      const data = {}
      data.current = this.pageIndex
      data.size = this.pageSize
      data.isDraft = 1
      data.patientFrom = 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)
        }
      })
    },
    deletePatient(row) {
      this.$confirm(`是否删除【${row.name}】?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          deletePatient(row.patientId).then((res) => {
            if (res.code === 1) {
              this.$message({
                type: "success",
                message: "删除成功!",
              })
              this.handleSearch()
            }
          })
        })
        .catch(() => {})
    },
  },
  computed: {
    ...mapGetters({
      selectedIndex: "table/selectedIndex",
    }),
  },
  created() {
    this.handleFormSearch()
  },
  watch: {
    selectedIndex(v) {
      this.handleFormSearch()
    },
  },
}
</script>
<style lang="scss" scoped>
.container {
  padding: 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  .header {
    display: flex;
    text-indent: 24px;
    margin-bottom: 20px;
    height: 50px;
    line-height: 32px;
    font-size: 14px;
    font-family: AlibabaPuHuiTiR;
    color: rgba(0, 0, 0, 0.8);
    border-bottom: 1px solid #f3f3f3;
  }
  .content {
    padding: 0 24px;
  }
  .form_content {
    height: calc(100% - 50px);
  }
}
</style>
