<template>
  <div id="costCategory">
    <table-list
      rowKey="categoryId"
      ref="tableList"
      :tableSets="tableSet"
      :tableData="tableData"
      :navText="navText"
      :loading="loading"
      @addClick="addClick"
    >
      <template slot="customize">
        <el-button type="warning" @click="remove"> 批量删除 </el-button>
      </template>
      <template slot="btn" slot-scope="props">
        <el-button type="text" @click="addClick(props.scope.row)"
          >修改</el-button
        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
      </template>
    </table-list>
    <pagination
      :total="total"
      :pageSize.sync="formData.pageSize"
      :currentPage.sync="formData.pageNum"
      @search="search"
    />
    <dislog
      :dialogVisible.sync="dialogVisible"
      @search="search"
      :activeData="activeData"
    ></dislog>
  </div>
</template>

<script>
import dislog from "./dislog.vue";
import tableList from "@/components/tableList";
import pagination from "@/components/pagination";
export default {
  name: "CostCategory",
  components: { tableList, pagination, dislog },
  data() {
    return {
      loading: false,
      navText: {
        title: "成本类别",
        index: 0,
        ch: "条",
        num: true,
        choice: true,
        addHide: false,
        custom: false,
        openCheckMore: true,
      },
      formData: { pageSize: 10, pageNum: 1 },
      tableSet: [
        {
          label: "成本类别",
          prop: "categoryName",
          hidden: true,
        },
      ],
      tableData: [],
      total: 0,
      dialogVisible: false,
      activeData: {},
    };
  },
  created() {
    this.search(2);
  },
  methods: {
    addClick(data) {
      this.activeData = data || {};
      this.dialogVisible = true;
    },
    search(v) {
      this.loading = true;
      if (v === 2) {
        this.formData = {
          pageSize: 10,
          pageNum: 1,
          status:1
        };
        this.$nextTick(() => {
          this.$refs.tableList.clearMoreActive();
        });
      }
      if (v === 3) {
        this.$nextTick(() => {
          this.$refs.tableList.clearMoreActive();
        });
      }
      this.$api
        .topcategoryList(this.formData)
        .then((res) => {
          this.tableData = res.rows;
          this.total = res.total;
          this.navText.index = res.total;
        })
        .finally(() => {
          this.loading = false;
        });
    },
    init() {
      this.search(2);
    },
    del(v) {
      this.$confirm("确定删除此内容？", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.$api
            .edittopcategorydeleteBatch({ categoryIds: [v.categoryId] })
            .then((res) => {
              this.$message.success("删除成功");
              this.search(3);
            });
        })
        .catch(() => {});
    },
    excelPort() {
      if (this.$refs.tableList.allCheckData.length === 0) {
        this.$message.warning("请勾选数据");
        return;
      }
    },
    remove() {
      if (this.$refs.tableList.allCheckData.length === 0) {
        this.$message.warning("请勾选数据");
        return;
      }
      this.$confirm("确定批量删除选中的数据吗？", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.$api
            .edittopcategorydeleteBatch({
              categoryIds: this.$refs.tableList.allCheckData.map(
                (i) => i.categoryId
              ),
            })
            .then(() => {
              this.$message.success("批量删除成功");
              this.search(3);
            });
        })
        .catch(() => {});
    },
  },
};
</script>

<style lang="scss" scoped></style>
