<template>
  <div class="container">
    <div class="tabs">
      <div class="headerText">
        <div class="searchP">查询条件</div>
      </div>
      <el-form ref="form1" :model="form1" label-width="100px">
        <div style="margin-top: 10px">
          <el-row>
            <el-col :span="7">
              <el-form-item label="产品名称">
                <el-input
                  v-model="form1.cpmc"
                  placeholder="请输入产品名称"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="7">
              <el-form-item label="备案编号">
                <el-input
                  v-model="form1.babm"
                  placeholder="请输入备案编号"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="7">
              <el-form-item label="生产企业">
                <el-input
                  v-model="form1.scqy"
                  placeholder="请输入生产企业"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="7">
              <el-form-item label="注册证编号">
                <el-input
                  v-model="form1.name"
                  placeholder="请输入注册证编号"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="7">
              <el-form-item label="化妆品类型" placeholder="请输入化妆品类型">
                <el-select
                  v-model="types"
                  placeholder="请选择化妆品类型"
                  @change="changeType"
                >
                  <el-option
                    v-for="item in options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select> </el-form-item
            ></el-col>
          </el-row>
        </div>
      </el-form>
      <div class="footBox">
        <el-button icon="el-icon-refresh-left" @click="reset">重置</el-button>
        <el-button type="primary" icon="el-icon-search" @click="searchList"
          >查询</el-button
        >
      </div>
    </div>
    <div class="tabsBottom">
      <div class="foot-main">
        <div class="headerText">
          <div class="searchP">产品列表</div>
        </div>
        <div class="exportBtn">
          <el-button
            type="primary"
            icon="el-icon-edit-outline"
            @click="exportList()"
            >导出</el-button
          >
        </div>
        <section class="table-box">
          <div class="table-item">
            <el-table
              v-loading="loading"
              :data="tableData"
              border
              height="43vh"
              :stripe="false"
            >
              <el-table-column type="selection" width="35" align="center" />
              <el-table-column
                type="index"
                label="序号"
                width="55"
                align="center"
              />
              <el-table-column label="产品名称" align="center">
                <template slot-scope="scope">
                  {{ scope.row.cpmc }}
                </template>
              </el-table-column>
              <el-table-column :label="A2" align="center" width="230">
                <template slot-scope="scope">
                  {{ scope.row.bah || scope.row.pzrq }}
                </template>
              </el-table-column>
              <el-table-column :label="A3" align="center" width="240">
                <template slot-scope="scope">
                  {{ scope.row.qymc || scope.row.sf }}
                </template>
              </el-table-column>
              <el-table-column
                label="操作"
                class-name="small-padding fixed-width"
                width="140"
                align="center"
              >
                <template slot-scope="scope">
                  <el-button
                    size="mini"
                    plain
                    type="primary"
                    @click="toDetail(scope.row)"
                    >详情</el-button
                  >
                  <!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
                </template>
              </el-table-column>
            </el-table>
          </div>
        </section>
        <pagination
          :total="total"
          :page="form.current"
          :limit="form.size"
          @pagination="getPagination"
          :current-page.sync="form.current"
        ></pagination>
      </div>
    </div>
    <el-dialog title="提示" :visible.sync="showCK" width="30%">
      <span>{{ src }}</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeDC()">取 消</el-button>
        <el-button type="primary" @click="openDC()">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { download, dchzpsj } from "../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
export default {
  components: {},
  data() {
    return {
      //===========
      loading: false,
      tableData: [],
      A1: "产品名称",
      A2: "备案编码",
      A3: "生产企业",
      types: "1",
      total: 0,
      options: [
        {
          value: "1",
          label: "国产化妆品",
        },
        {
          value: "2",
          label: "国产特殊化妆品",
        },
        {
          value: "3",
          label: "进口化妆品",
        },
        {
          value: "4",
          label: "进口特殊化妆品",
        },
      ],
      form1: {
        babm: "",
        cpmc: "",
        name: "",
        scqy: "",
      },
      form: {
        size: 10,
        current: 1,
      },
      jieliuShow: true,

      loadA: null,
      showCK: false,
      src: "",
    };
  },
  mounted() {},
  created() {
    this.changeType("1");
  },
  methods: {
    openDC() {
      this.showCK = false;
      this.loadA = Loading.service({
        text: "正在下载数据,请稍候",
        spinner: "el-icon-loading",
        background: "rgba(0, 0, 0, 0.7)",
      });
      let query1 = {
        //导出使用区分化妆品类型 1为国产化妆品 2为国产特殊化妆品 3为进口化妆品 4为进口特殊化妆品
        type: this.types,
        //生产企业
        scqy: this.form1.scqy,
        //产品名称
        cpmc: this.form1.cpmc,
        //注册证编号
        name: this.form1.name,
        //备案编号
        babm: this.form1.babm,
      };
      dchzpsj(query1)
        .then((res) => {
          console.log(res);
          const blob = new Blob([res], { type: res.type });
          // blob.text().then((res11) => console.log(res11));
          console.log(blob.stream());
          const link = document.createElement("a");
          link.href = window.URL.createObjectURL(blob);
          link.style.display = "none";
          //到时候判断是哪个化妆品数据
          link.download = this.filterTypes(this.types) + ".xlsx";
          link.click();
          this.loadA.close();
          this.$message({
            type: "success",
            message: "导出成功",
          });
        })
        .catch((err) => {
          this.$message({
            type: "info",
            message: "导出失败",
          });
        });
    },
    closeDC() {
      this.showCK = false;
      this.$message({
        type: "info",
        message: "已取消导出",
      });
    },
    exportList() {
      this.src = `确定导出${
        this.form1.cpmc ? `产品名称为${this.form1.cpmc}、` : ""
      }${this.form1.babm ? `备案编号为${this.form1.babm}、` : ""}${
        this.form1.scqy ? `生产企业为${this.form1.scqy}、` : ""
      }${
        this.form1.name ? `注册证编号为${this.form1.name}、` : ""
      }${`化妆品类型为${this.filterTypes(this.types)}、`}数据吗?`;
      this.showCK = true;
    },
    filterTypes(e) {
      let arr = this.options.filter((value1) => {
        return value1.value == e;
      });
      console.log(arr);
      return arr[0].label;
    },
    jieliuFunc() {
      if (this.jieliuShow) {
        this.getData(this.types);
        this.jieliuShow = false;
        setTimeout(() => {
          this.jieliuShow = true;
        }, 3000);
      } else {
        this.$message("点击过快");
      }
    },
    //去内嵌页面
    toDetail(e) {
      let data = "";
      if (this.types == "1") {
        data = e.bah;
      } else if (this.types == "2") {
        data = e.zczh;
      } else if (this.types == "3") {
        data = e.bah;
      } else if (this.types == "4") {
        data = e.zczh;
      }
      //利用type区分三种档案
      //利用flag区分四种化妆品详情 然后分别调用不同的详情接口
      this.$router.push({
        path: `/cosmeticsDetail`,
        query: { type: "1", flag: this.types, data },
      });
    },
    //搜索
    searchList() {
      this.form.current = 1;

      for (let i in this.form1) {
        this.form[i] = this.form1[i];
      }
      this.jieliuFunc();
    },
    getPagination(e) {
      console.log(e);
      this.form.current = e.page;
      this.form.size = e.limit;
      this.chinaCosmetics();
    },
    //重置
    reset() {
      this.types = "1";
      this.form1 = {
        babm: "",
        cpmc: "",
        name: "",
        scqy: "",
        size: 10,
        current: 1,
      };
      this.form = {
        size: 10,
        current: 1,
      };
      this.jieliuFunc();
    },
    //国产化妆品
    async chinaCosmetics() {
      this.loading = true;
      let msg1 = await this.$api.cosmetics.domesticList(this.form);
      this.tableData = msg1.data.records;
      this.total = msg1.data.total;
      this.form.size = msg1.data.size;
      this.form.current = msg1.data.current;
      this.loading = false;
    },
    //国产特殊化妆品
    async chinaSpecialCosmetics() {
      this.loading = true;
      let msg1 = await this.$api.cosmetics.specialList(this.form);
      this.tableData = msg1.data.records;
      this.total = msg1.data.total;
      this.form.size = msg1.data.size;
      this.form.current = msg1.data.current;
      this.loading = false;
    },
    //进口化妆品
    async importCosmetics() {
      this.loading = true;
      let msg1 = await this.$api.cosmetics.importList(this.form);
      this.tableData = msg1.data.records;
      this.total = msg1.data.total;
      this.form.size = msg1.data.size;
      this.form.current = msg1.data.current;
      this.loading = false;
    },
    //进口特殊化妆品
    async importSpecialCosmetics() {
      this.loading = true;
      let msg1 = await this.$api.cosmetics.importSpecialList(this.form);
      this.tableData = msg1.data.records;
      this.total = msg1.data.total;
      this.form.size = msg1.data.size;
      this.form.current = msg1.data.current;
      this.loading = false;
    },
    async getData(e) {
      if (e == "1") {
        this.A2 = "备案编码";
        this.A3 = "生产企业";
        this.chinaCosmetics();
      } else if (e == "2") {
        this.A2 = "批准日期";
        this.A3 = "省份";
        this.chinaSpecialCosmetics();
      } else if (e == "3") {
        this.A2 = "备案编码";
        this.A3 = "生产企业";
        this.importCosmetics();
      } else if (e == "4") {
        this.A2 = "批准日期";
        this.A3 = "省份";
        this.importSpecialCosmetics();
      }
    },
    async changeType(e) {
      // this.reset();
      this.getData(e);
    },
  },
};
</script>

<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
  margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
  padding: 15px;
}
::v-deep .el-select {
  width: 100% !important;
}
.container {
  height: 100%;
  // overflow: auto;
  background: #f2f2f2;

  .headerText {
    width: 100%;
    padding: 10px 20px;
    border-bottom: 1px solid #f2f3f5;
    color: #323233;
    font-size: 20px;
    font-weight: bold;
    .searchP {
      position: relative;
      cursor: pointer;
      &::before {
        content: "";
        width: 78px;
        height: 3px;
        background: #1349c5;
        position: absolute;
        bottom: -10px;
      }
    }
  }
  .tabs {
    width: 100%;
    height: 30%;
    background: #fff;
  }
}
//===================
::v-deep .el-button--medium {
  padding: 8px;
}
.footBox {
  width: 100%;
  text-align: center;
}
.tabsBottom {
  height: 70%;
  padding-top: 10px;
  .foot-main {
    height: 100%;
    // min-height: 600px;
    width: 100%;
    background: white;
  }
}
.exportBtn {
  padding: 10px 20px;
}
.table-box {
  padding: 0 20px;
  .table-item {
  }
}
.pagination {
  display: flex;
  justify-content: space-between;
  padding: 15px 20px;
}
::v-deep.el-table--medium .el-table__cell {
  padding: 5.3px 0;
}
::v-deep .el-table {
  overflow: auto;
}
</style>