<template>
  <div>
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="100px"
    >
      <el-form-item>
        <el-date-picker
          v-model="queryParams.time"
          type="daterange"
          value-format="yyyy-MM-dd"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          style="width: 240px"
        >
        </el-date-picker>
      </el-form-item>
      <el-form-item prop="keyWord">
        <el-input
          v-model="queryParams.keyWord"
          placeholder="请输入关键字"
          clearable
          maxlength="50"
          style="width: 240px"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item  prop="isFinish">
        <el-select
            clearable
            filterable
            style="width: 240px"
            placeholder="状态筛选"
            v-model="queryParams.isFinish"
        >

          <el-option
              v-for="dict in dict.type.part_task_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
          />
        </el-select>
      </el-form-item>

      <el-form-item>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="mini"
          @click="handleQuery"
          >搜索</el-button
        >
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重置</el-button
        >
      </el-form-item>
    </el-form>

    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          >配件到货新增</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
        >
      </el-col>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
    </el-row>

    <el-table v-loading="loading" :data="typeList" row-key="id" border>
      <!-- <el-table-column type="selection" width="55" align="center" /> -->
      <el-table-column width="60" align="center" label="序号" type="index" />
      <el-table-column
        align="center"
        width="160"
        label="到货时间"
        prop="arrivalTime"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="采购单号"
        width="150"
        align="center"
        prop="code"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="采购物资"
        align="center"
        prop="purchaseMaTypeName"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="采购数量"
        align="center"
        prop="purchaseMaNumber"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="采购价格(元含税)"
        align="center"
        prop="purchaseTaxPrice"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="采购价格(元不含税)"
        align="center"
        prop="purchasePrice"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="税率"
        align="center"
        prop="taxRate"
        :show-overflow-tooltip="true"
      >
      </el-table-column>

      <el-table-column
        label="物资厂家"
        align="center"
        prop="supplier"
        :show-overflow-tooltip="true"
      />

      <el-table-column
        label="操作人"
        align="center"
        prop="createBy"
        :show-overflow-tooltip="true"
      />

      <el-table-column
        label="操作时间"
        align="center"
        width="160"
        prop="createTime"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="状态"
        align="center"
        prop="taskStatusName"
        :show-overflow-tooltip="true"
      >
<!--        <template slot-scope="scope">-->
<!--          <dict-tag-->
<!--            :options="dict.type.purchase_task_status"-->
<!--            :value="scope.row.taskStatus"-->
<!--          />-->
<!--        </template>-->
        <!-- <template slot-scope="scope">
                    <span v-if="scope.row.taskStatus==0">待提交</span>
                    <span v-if="scope.row.taskStatus==1">待通知</span>
                    <span v-if="scope.row.taskStatus==2">待验收</span>
                    <span v-if="scope.row.taskStatus==3">待绑定</span>
                    <span v-if="scope.row.taskStatus==4">待入库</span>
                    <span v-if="scope.row.taskStatus==5">已完成</span>
                    <span v-if="scope.row.taskStatus==6">驳回待验收</span>
                    <span v-if="scope.row.taskStatus==7">驳回待绑定</span>
                    <span v-if="scope.row.taskStatus==8">驳回待入库</span>
                    <span v-if="scope.row.taskStatus==9">入库进行中</span>
                    <span v-if="scope.row.taskStatus==10">未完成</span>
                </template> -->
      </el-table-column>
      <el-table-column
                label="备注"
                align="center"
                prop="remark"
                show-overflow-tooltip
            />
      <el-table-column label="操作" align="center" width="300">
        <template slot-scope="scope">
          <el-button
            size="mini"
            style="margin-bottom: 10px"
            type="normal"
            @click="handleView(scope.row)"
            
            >查看</el-button
          >
          <el-button
            size="mini"
            style="margin-bottom: 10px"
            type="primary"
            v-if="scope.row.taskStatusName == '未完成'"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['purchase:info:edit']"
            >编辑</el-button
          >

          <el-button size="mini" type="warning" @click="handlePrint(scope.row)"
            >验收单</el-button
          >

          <el-button
            size="mini"
            type="danger"
            @click="handleDeletePurchase(scope.row)"
            v-hasPermi="['purchase:info:remove']"
            >删除</el-button
          >
        </template>
      </el-table-column>
    </el-table>

    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />

    <!-- 验收单弹窗 -->
    <el-dialog
      :title="title"
      :visible.sync="openPrint"
      width="1100px"
      append-to-body
    >
      <div style="height: 500px; overflow-y: scroll">
        <vue-easy-print tableShow ref="remarksPrintRef" class="print">
          <div
            class="title"
            style="text-align: center; font-weight: 600; font-size: 16px"
          >
            机具设备到货验收单
          </div>
          <div
            class="info"
            style="margin-top: 10px; display: flex; flex-wrap: wrap"
          >
            <div
              class="item"
              style="
                width: 100%;
                flex-shrink: 0;
                margin-bottom: 5px;
                font-size: 14px;
              "
            >
              <span>单据编号：</span>
            </div>
            <div
              class="item"
              style="
                width: 50%;
                flex-shrink: 0;
                margin-bottom: 5px;
                font-size: 14px;
              "
            >
              <span>生产厂家（供应商）：</span>
            </div>

            <div
              class="item"
              style="
                width: 50%;
                flex-shrink: 0;
                margin-bottom: 5px;
                font-size: 14px;
              "
            >
              <span>到货日期：</span>
            </div>
          </div>
          <el-table
            :data="printTableData"
            class="table"
            style="margin-top: 20px; width: 1000px; padding-bottom: 1px"
            border
          >
            <!--          <el-table-column type="selection" width="55" align="center" />-->
            <el-table-column label="序号" align="center" type="index" row="2" />
            <el-table-column
              label="物资名称"
              align="center"
              prop="machineTypeName"
            />
            <el-table-column
              label="规格型号"
              align="center"
              prop="specificationType"
            />
            <el-table-column label="单位" align="center" prop="unitName" />
            <el-table-column label="配送信息" align="center">
              <el-table-column
                label="到货数量"
                align="center"
                prop="purchaseNum"
              />
              <el-table-column
                label="验收结论"
                align="center"
                prop="purchaseNum"
              />
              <el-table-column label="质保质量" align="center">
                <el-table-column
                  label="实收份数"
                  align="center"
                  prop="purchaseNum"
                />
                <el-table-column
                  label="符合要求"
                  align="center"
                  prop="purchaseNum"
                />
              </el-table-column>
            </el-table-column>
            <el-table-column label="备注" align="center" prop="unitName" />

            <!--                        <el-table-column-->
            <!--                            label="合格证及技术资料"-->
            <!--                            align="center"-->
            <!--                            prop=""-->
            <!--                        />-->
            <!--                        <el-table-column label="包装" align="center" prop="" />-->
          </el-table>

          <div
            class="fillIn"
            style="
              margin-top: 20px;
              display: flex;
              justify-content: space-between;
            "
          >
            <div class="item" style="width: 33%">
              <div>
                <span>供应科：</span>
              </div>
            </div>

            <div class="item" style="width: 33%">
              <div>
                <span>生产技术科：</span>
              </div>
            </div>

            <div class="item" style="width: 33%">
              <div>
                <span>库管班：</span>
              </div>
            </div>
          </div>
        </vue-easy-print>
      </div>

      <div slot="footer" class="dialog-footer" style="text-align: center">
        <el-button type="primary" @click="print">打 印</el-button>
        <el-button @click="openPrint = false">关 闭</el-button>
      </div>
    </el-dialog>

  </div>
</template>

<script>
import {
  getListNewBuy,
  getPurchaseCheckInfo,
  getAcceptanceForm,
  purchaseCheckInfoRemove,
  getNoticePeople,
  getListUnSelected,
  addNoticeUser,
  bmNoticeInfo,
  delPeople,
} from "@/api/purchase/goodsArrived";

export default {
  name: "Home",
  dicts: ["part_task_status"],
  // components: { vueEasyPrint },
  data() {
    return {
      // 遮罩层
      loading: true,
      loadingTwo: true,
      updateTime: "",
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      showPeople: false,
      peopleOpen: false,
      // 总条数
      total: 0,
      totalTwo: 0,
      //搜索下拉数据
      typesList: [],
      modelList: [],
      // 字典表格数据
      typeList: [],
      getListPeople: [],
      configUserList: [],
      phoneNumbers: [],
      //选择人员
      chosenUserList: [],
      userList: [],
      // 弹出层标题
      title: "",
      // 日期范围
      dateRange: [],
      taskStatusList:[{id:'0',name:'未完成'},{id:'1',name:'已完成'}],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        time: null, //申请时间
        name: undefined,
        status: undefined,
        isFinish: undefined,
        typeId: "",
        keyWord: "",
      },
      form: {
        remark: "",
      },
      // 表单校验
      rules: {
        remark: [
          { required: true, message: "通知内容不能为空", trigger: "blur" },
        ],
      },
      openPrint: false,
      printData: {},
      printTableData: [],
      // 供应商
      supplierStr: "",
    };
  },
  created() {
    this.getList();
    // this.getTypeList()
  },
  methods: {
    // getTypeList() {
    //     getTypeList({ level: '3' }).then((response) => {
    //         this.typesList = response.data
    //     })
    //     getTypeList({ level: '4' }).then((response) => {
    //         this.modelList = response.data
    //     })
    // },

    getList() {
      this.loading = true;
      const params = {
        keyWord: this.queryParams.keyWord,
        startTime: this.queryParams.time && this.queryParams.time[0],
        endTime: this.queryParams.time && this.queryParams.time[1],
        isFinish: this.queryParams.isFinish,
        typeId: this.queryParams.typeId,
        pageSize: this.queryParams.pageSize,
        pageNum: this.queryParams.pageNum,
        statusList: [1],
        taskStage: 1,
      };
      getListNewBuy(this.addDateRange(params)).then((response) => {
        this.typeList = response.data.rows;
        this.total = response.data.total;
        this.loading = false;
      });
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.queryParams.time = [];
      this.resetForm("queryForm");
      this.queryParams.keyWord = "";
      this.handleQuery();
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.$emit("addTools");
    },
    /** 查看按钮操作 */
    handleView(row) {
      this.$emit("queryTools", row.taskId, row.id);
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.$emit("editTools", row.taskId, row.id);
    },


    // 表单重置
    reset() {
      this.form = {
        taskId: "",
        remark: "",
      };
      this.resetForm("form");
    },
    // // 多选框选中数据
    // handleSelectionChange(selection) {
    //     this.ids = selection.map((item) => item.taskId)
    //     this.single = selection.length != 1
    //     this.multiple = !selection.length
    // },

    /** 验收按钮 */
    handleAccept(row) {
      // let query = { taskId: row.taskId }
      // this.$tab.closeOpenPage({
      //     path: '/store/newBuy/newDevicesAccept',
      //     query,
      // })
      this.$emit("acceptTools", row.taskId);
    },
    //编码管理
    handleCode(row) {
      // let query = { taskId: row.taskId }
      // this.$tab
      //     .closeOpenPage({
      //         path: '/store/newBuy/newDevicesCode',
      //         query,
      //     })
      //     .then(() => {
      //         this.$tab.refreshPage()
      //     })
      this.$emit("codingTools", row.taskId);
    },

    //获取验收单数据
    getPrintTable(taskId) {
      getAcceptanceForm({ taskId: taskId }).then((response) => {
        this.printData = response.data;
        this.printTableData = response.data.checkDetailsList;

        let supplierList = [];
        this.printTableData.forEach((e) => {
          if (e.supplier) {
            supplierList.push(e.supplier);
          }
        });
        supplierList = [...new Set(supplierList)];

        this.supplierStr = supplierList.join(",");
      });
    },
    //查看验收单
    handlePrint(row) {
      // this.query.taskId = row.taskId
      // this.getPrintTable(row.taskId)
      this.openPrint = true;
      this.title = "机具设备到货验收单";
    },
    //打印
    print() {
      this.$refs.remarksPrintRef.print();
    },

    /** 删除按钮操作 */
    handleDeletePurchase(row) {
      // console.log(row)
      this.$modal
        .confirm("是否确认删除所选择的数据项？")
        .then(function () {
          return purchaseCheckInfoRemove(row.id);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },

    /** 导出按钮操作 */
    handleExport() {
      this.download(
        "/material/purchase_check_info/export",
        { ...this.queryParams,statusList: [1],taskStage: 1 },
        `新购到货_${new Date().getTime()}.xlsx`
      );
    },
  },

  watch: {
    $route: {
      handler(to) {
        if (to.query.keyWord) {
          this.queryParams.keyWord = to.query.keyWord;
        }
      },
      deep: true,
      immediate: true,
    },
  },
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
  width: 70px !important;
  margin-bottom: 10px;
}
</style>
