<!--
 * @Author: zhp
 * @Date: 2023-07-14 13:44:46
 * @LastEditTime: 2023-07-18 14:25:05
 * @LastEditors: zhp
 * @Description: 
-->
<template>
  <div>
    <el-drawer :title="$t('customerquality.knowledgeBase')" :visible.sync="drawer" size="50%">
      <div>
        <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
          <!-- <el-badge :value="5" class="item">
            <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
          </el-badge> -->
        </SearchBar>
        <base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
          :limit="listQuery.limit" :table-data="tableData">
          <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
            @clickBtn="handleClick" />
        </base-table>
        <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
          @pagination="getDataList" />
      </div>
      <baseConfig-add ref="baseConfigAddList" v-if="baseConfigAddShow" @refreshDataList="getDataList"></baseConfig-add>
    </el-drawer>
  </div>
</template>

<script>
import basicPage from "@/mixins/basic-page"
// import basicSearch from "@/mixins/basic-search"
// import projectTypeSearch from "./components/projectTypeSearch.vue"
import baseConfigAdd from "./baseConfig-add"
import customerquality from '@/filters/customerquality'
// import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue"
import InnerTable from "./innerTable"
import i18n from "@/i18n"
// import i18n from "@/i18n";
const tableProps = [
  {
    prop: "requirementListName",
    label: i18n.t('customerquality.requirementListName'),
  },
  {
    prop: "uploadFiles",
    label: i18n.t('customerquality.uploadFiles'),
  },
  {
    prop: "categoryName",
    label: i18n.t('uploadFile'),
  },
  {
    prop: "code",
    label: i18n.t('customerquality.file'),
    subcomponent: InnerTable
  },
];
const tableBtn = [
  {
    type: "edit",
    btnName: i18n.t('edit'),
  },
  {
    type: "delete",
    btnName: i18n.t('delete'),
  }
];
export default {
  mixins: [basicPage],
  components: {
    baseConfigAdd,
  },
    data() {
      return {
        urlOptions: {
          getDataListURL: "/customerquality/qmsKnowledgeBaseRequirementList/page",
          deleteURL: "/customerquality/qmsKnowledgeBase",
          exportURL: '/customerquality/qmsKnowledgeBase/export'
        },
        tableBtn,
        baseConfigAddShow:[],
        formConfig: [
          {
            type: "button",
            btnName: i18n.t('search'),
            name: "search",
            color: "primary",
            // plain: true,
          },
          {
            type: "button",
            btnName: i18n.t('add'),
            name: "add",
            color: "success",
            plain: true
          },
        ],
        tableProps,
        tableData: [],
        drawer: false,
        listQuery: {
          limit: 10,
          page:1,
        }
      }
  },
    methods: {
      init(obj) {
        this.listQuery.knowledgeBaseId = obj.knowledgeBaseId || ""
        this.listQuery.requirementListId = obj.requirementListId || ""

        // this.dataForm.dictTypeId = dictTypeId || "";
        this.drawer = true
        this.$nextTick(() => {
          this.getDataList()
        });
      },
      buttonClick(val) {
        console.log(val)
        switch (val.btnName) {
          case "search":
            // this.listQuery.paramCode = val.paramCode;
            // this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined
            // this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined
            // this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined
            // this.listQuery.ment = this.ment ? this.ment : undefined
            // console.log(i18n);
            this.listQuery.page = 1;
            this.getDataList()
            break;
          // case "export":
          //   // this.listQuery.paramCode = val.paramCode;
          //   this.exportHandle()
          //   break;
          case "add":
            // this.addOrEditTitle = '新增'
            // this.addOrUpdateVisible = true;
            this.baseConfigAddShow = true
            const obj = {
              knowledgeBaseId:   this.listQuery.knowledgeBaseId,
              requirementListId: this.listQuery.requirementListId 
            }
            this.$nextTick(() => {
              this.$refs.baseConfigAddList.init(obj)
            })
            // this.addOrUpdateHandle()
            break;
          default:
        }
      },
      getDataList() {
        this.dataListLoading = true;
        this.$http
          .get(this.urlOptions.getDataListURL, {
            params: this.listQuery,
          })
          .then(({ data: res }) => {
            this.dataListLoading = false;
            if (res.code !== 0) {
              this.tableData = [];
              this.listQuery.total = 0;
              return this.$message.error(res.msg);
            }
            this.tableData = res.data.list;
            this.listQuery.total = res.data.total;
          })
          .catch(() => {
            this.dataListLoading = false;
          })
      },
      handleClick(val) {
        if (val.type === "delete") {
          this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
            .then(() => {
              this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
                if (data && data.code === 0) {
                  this.$message({
                    message: "操作成功",
                    type: "success",
                    duration: 1500,
                    onClose: () => {
                      this.getDataList();
                    },
                  });
                } else {
                  this.$message.error(data.msg);
                }
              });
            })
            .catch(() => { });
        } else if (val.type === 'edit') {
          this.baseConfigAddShow = true
          const obj = {
            knowledgeBaseId: this.listQuery.knowledgeBaseId,
            requirementListId: this.listQuery.requirementListId,
            id:val.data.id
          }
          this.$nextTick(() => {
            this.$refs.baseConfigAddList.init(obj)
          })
        }
      },
    },
  }
</script>

<style lang="scss" scoped>

</style>