<template>
  <div class="assessing-content ele-body">
    <el-card
      shadow="never"
      v-loading="loading"
      element-loading-background="rgba(255, 255, 255, 1)"
    >
      <search :type="1" :search-params="searchParams" />
      <div class="operating">
        <el-button size="small" type="primary">导出</el-button>
      </div>
      <el-table
        highlight-current-row
        :data="dataList"
        :height="tableHeight"
        border
        :span-method="arraySpanMethod"
      >
        <el-table-column
          type="index"
          width="50"
          align="center"
          label="编号"
        ></el-table-column>
        <el-table-column
          label="一级指标"
          min-width="150"
          align="center"
          prop="quota1"
        ></el-table-column>
        <el-table-column
          label="二级指标"
          min-width="150"
          align="center"
          prop="quota2"
        ></el-table-column>
        <el-table-column
          label="考核内容和计分细则"
          min-width="200"
          align="center"
          prop="content"
        ></el-table-column>
        <el-table-column
          label="小条内容"
          min-width="150"
          align="center"
          prop="itemContent"
        ></el-table-column>
        <el-table-column
          label="分值"
          min-width="60"
          align="center"
          prop="points"
        ></el-table-column>
        <el-table-column
          label="区牵头单位"
          min-width="80"
          align="center"
          prop="leaderUnit"
        ></el-table-column>
        <el-table-column
          label="牵头部门"
          min-width="80"
          align="center"
          prop="leaderDeptList"
        ></el-table-column>
        <el-table-column
          label="责任领导"
          min-width="80"
          align="center"
        ></el-table-column>
        <el-table-column
          label="配合部门"
          min-width="80"
          align="center"
          prop="cooperateDept"
        ></el-table-column>
        <el-table-column
          label="责任领导"
          min-width="80"
          align="center"
          prop="cooperateDeptList"
        ></el-table-column>
        <el-table-column
          label="操作"
          width="125"
          align="center"
          :key="Math.random()"
        >
          <template slot-scope="{ row }">
            <el-link
              slot="reference"
              type="primary"
              :underline="false"
              @click="edit(row)"
              >编辑</el-link
            >
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        :current-page.sync="page.page"
        :page-size="page.limit"
        :total="count"
        :background="true"
        layout="total, prev, pager, next, jumper"
        :pager-count="5"
        class="ele-pagination-circle"
        :flat="true"
        @current-change="getDataList()"
      />
    </el-card>

    <el-dialog
      title="编辑考核内容"
      :visible.sync="showEdit"
      width="400px"
      custom-class="ele-dialog-form"
      :lock-scroll="false"
      :destroy-on-close="true"
      @closed="form = {}"
    >
      <el-form
        :model="form"
        label-width="82px"
        custom-class="editForm"
        @keyup.enter.native="save"
        @submit.native.prevent
        ref="editForm"
      >
        <el-form-item label="小条内容：" prop="itemContent">
          <el-input
            type="textarea"
            :rows="5"
            placeholder="请输入考核内容"
          ></el-input>
        </el-form-item>
        <el-form-item label="分值：" prop="points">
          <el-input placeholder="请输入分值"></el-input>
        </el-form-item>

        <el-form-item label="牵头部门：" prop="leaderDeptList">
          <treeselect
            :flat="true"
            :options="formatDep"
            :multiple="true"
            placeholder="请选择牵头部门"
            :defaultExpandLevel="2"
            :normalizer="
              (d) => {
                return {
                  id: d.id,
                  label: d.name,
                  children:
                    d.children && d.children.length > 0
                      ? d.children
                      : undefined,
                };
              }
            "
          />
        </el-form-item>
        <el-form-item label="配合部门：" prop="cooperateDeptList">
          <treeselect
            :flat="true"
            :options="formatDep"
            :multiple="true"
            placeholder="请选择牵头部门"
            :defaultExpandLevel="2"
            :normalizer="
              (d) => {
                return {
                  id: d.id,
                  label: d.name,
                  children:
                    d.children && d.children.length > 0
                      ? d.children
                      : undefined,
                };
              }
            "
          />
        </el-form-item>
      </el-form>
      <div slot="footer">
        <el-button type="primary" @click="save">确定</el-button>
        <el-button @click="showEdit = false">取消</el-button>&nbsp;
      </div>
    </el-dialog>
  </div>
</template>

<script>
import search from "../search";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Treeselect from "@riophae/vue-treeselect";
import { mapGetters } from "vuex";
import api from "@/api/second/taskSummary";
import { mergeSpan } from "@/utils/mixin";
export default {
  components: {
    search,
    Treeselect,
  },
  mixins: [
    mergeSpan([
      { name: "quota1", col: [1] },
      { name: "quota2", col: [2] },
      { name: "content", col: [3] },
    ]),
  ],
  data() {
    return {
      searchParams: {},
      dataList: [],
      loading: false,
      showEdit: false,
      form: {},
      count: 0,
      tableHeight: document.documentElement.clientHeight - 360,
      page: {
        page: 1,
        limit: Math.floor(
          (document.documentElement.clientHeight - 360 - 45) / 45
        ),
      },
    };
  },
  created() {
    this.getDataList();
  },
  computed: {
    ...mapGetters(["formatDep"]),
  },
  methods: {
    getDataList() {
      this.loading = true;
      api
        .getBasicTableList(Object.assign({}, this.page, this.searchParams))
        .then((res) => {
          let data = res.data.data;
          this.dataList = this.reduceData(data);
          console.log(data);
        })
        .catch((e) => {
          this.dataList = [];
        })
        .finally(() => {
          this.loading = false;
        });
    },
    edit(row) {
      this.showEdit = true;
    },
    save() {
      this.showEdit = false;
    },
  },
};
</script>

<style scoped>
</style>