<template>
  <div class="app-container">
    <div v-show="!isShowPrint">
      <!-- 筛选条件 -->
      <div class="screen-container">
        <el-form ref="screenForm" :model="screenForm" label-width="120px" size="mini" label-position="left">
          <el-row :gutter="20">
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="产品名称" prop="goodsName">
                <el-input v-model="screenForm.goodsName" placeholder="请输入产品名称"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="物料编码" prop="goodsCode">
                <el-input v-model="screenForm.goodsCode" placeholder="请输入物料编码"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="产品编码" prop="goodsOldCode">
                <el-input v-model="screenForm.goodsOldCode" placeholder="请输入产品编码"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="规格型号" prop="model">
                <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="制单日期" prop="createDate">
                <el-date-picker v-model="screenForm.createDate" type="datetimerange" range-separator="至"
                  style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期"
                  end-placeholder="结束日期">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="发货日期" prop="deliverDate">
                <el-date-picker v-model="screenForm.deliverDate" type="datetimerange" range-separator="至"
                  style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期"
                  end-placeholder="结束日期">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="经销商编号" prop="jxsNum">
                <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商编号"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="经销商名称" prop="jxsName">
                <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="发货单号" prop="orderNum">
                <el-input v-model="screenForm.orderNum" placeholder="请输入发货单号"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="订单" prop="mainOrderId">
                <el-input v-model="screenForm.mainOrderId" placeholder="请输入订单"></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="存货类别" prop="type">
                <el-select v-model="screenForm.type" placeholder="选择存货类别" style="width: 100%" clearable>
                  <el-option v-for="item in categoryList" :key="item.name" :label="item.name" :value="item.name">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="表头业务员" prop="k3ServiceId">
                <el-select v-model="screenForm.k3ServiceId" placeholder="选择表头业务员" clearable filterable
                  style="width: 100%">
                  <el-option v-for="item in salesmanList" :key="item.adminUserId" :label="item.nickName"
                    :value="item.adminUserId">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="表体业务员" prop="salesMan">
                <el-select v-model="screenForm.salesMan" placeholder="选择表体业务员" clearable filterable style="width: 100%">
                  <el-option v-for="item in salesmanList" :key="item.adminUserId" :label="item.nickName"
                    :value="item.adminUserId">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="12" :lg="6">
              <el-form-item label="审核时间" prop="approvaTime">
              <el-date-picker v-model="screenForm.approvaTime" type="datetimerange" range-separator="至"
                  style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期"
                  end-placeholder="结束日期">
                </el-date-picker>
              </el-form-item>
            </el-col>
           <el-col :xs="24" :sm="24" :lg="12" class="tr">
              <el-form-item label="">
                <el-button @click="resetScreenForm">清空</el-button>
                <el-button type="primary" @click="submitScreenForm">搜索</el-button>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
      </div>

      <div class="mymain-container">
        <div class="btn-group clearfix">
          <div class="fl">
            <el-button type="primary" size="mini" @click="toPrint" :disabled="tableSelection.length < 1">打印发货单
            </el-button>
            <div class="num" v-if="totalNum">
              当前列表总发货数量：{{totalNum}}
            </div>
          </div>
          <!--  -->
          <div class="fr" style="display: flex;">
            <el-button size="mini" type="primary" v-if="$checkBtnRole('refund', $route.meta.roles)"
              style="margin-right: 10px;" icon="el-icon-plus"
              @click="$router.push('/supply/deliver/apply_list?isShow=true')">零售退货申请</el-button>
            <el-button size="mini" type="primary" v-if="$checkBtnRole('refund', $route.meta.roles)"
              style="margin-right: 10px;" icon="el-icon-plus"
              @click="$router.push('/supply/deliver/engin_list?isShow=true')">工程退货申请</el-button>
            <ExportButton :exUrl="'invoice/exportInvoice'" :exParams="exParams" />
          </div>
        </div>
        <div class="table">
          <el-table ref="table" v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit
            highlight-current-row stripe @select="handleSelect" @select-all="handleSelectAll" show-summary
            :summary-method="$getSummaries">
            <el-table-column align="center" type="selection" width="55"></el-table-column>
            <el-table-column align="right" label="打印次数" prop="printNum" min-width="80" show-overflow-tooltip>
            </el-table-column>

            <el-table-column align="left" label="订单类型" prop="orderType" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.orderType | orderTypeFilter }}
              </template>
            </el-table-column>
            <el-table-column align="left" label="审核日期" prop="approvalTime" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="发货日期" prop="orderTime" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="订单日期" prop="theTime" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="发货单号" prop="id" min-width="130" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.id" />
                <span>{{ scope.row.id }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="订单号" prop="orderId" min-width="130" show-overflow-tooltip>
              <template slot-scope="scope">

                <CopyButton
                  :copyText="scope.row.enginOrderType == 'HOME' || scope.row.enginOrderType == 'TRADE' ? scope.row.enginOrderNo : scope.row.mainOrderId" />
                <span>{{ scope.row.enginOrderType == 'HOME' || scope.row.enginOrderType == 'TRADE' ?
                    scope.row.enginOrderNo
                    : scope.row.mainOrderId
                
                }}</span>

              </template>
            </el-table-column>
            <el-table-column align="left" label="经销商编码" prop="customerNumber" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.customerNumber" />
                <span>{{ scope.row.customerNumber }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="经销商名称" prop="customerName" min-width="250" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.customerName" />
                <span>{{ scope.row.customerName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="物料编码" prop="materialCode" min-width="120" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.materialCode" />
                <span>{{ scope.row.materialCode }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="140" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.materialOldNumber" />
                <span>{{ scope.row.materialOldNumber }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.materialName" />
                <span>{{ scope.row.materialName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
              <template slot-scope="scope">
                <CopyButton :copyText="scope.row.specification" />
                <span>{{ scope.row.specification }}</span>
              </template>
            </el-table-column>
            <el-table-column align="left" label="仓库" prop="correspondName" min-width="100" show-overflow-tooltip>
            </el-table-column>

            <el-table-column align="right" label="发货金额" prop="payAmount" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.payAmount | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="发货返利金额" prop="payRebateAmount" min-width="110" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.payRebateAmount | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="发货折扣金额" prop="discAmount" min-width="110" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.totalDiscAmount | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="折扣额合计" prop="totalDiscAmount" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ (scope.row.totalDiscAmount + scope.row.payRebateAmount) | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="发货数量" prop="refundableQty" min-width="100" show-overflow-tooltip>
            </el-table-column>

            <el-table-column align="right" label="含税单价" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.singlePayPrice | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="含税总额" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ scope.row.payAmount | numToFixed }}
              </template>
            </el-table-column>
            <el-table-column align="right" label="未出库数量" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ comRefundableQty(scope.row.type, scope.row.salesExamineStatus, scope.row) }}
              </template>
            </el-table-column>
            <el-table-column align="left" label="表头业务员" prop="k3ServiceName" min-width="100" show-overflow-tooltip>
            </el-table-column>

            <el-table-column align="left" label="表体业务员" prop="serviceName" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="政策单号" prop="policyCode" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="政策名称" prop="policyTitle" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="区域" prop="adminArea" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="业务区域" prop="serviceArea" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="月份" prop="month" min-width="100" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="项目编码" prop="refEnginRecordNo" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="项目名称" prop="refProjectName" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="存货类别" prop="categoryName" min-width="160" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="申请发货单备注" prop="remark" min-width="200" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="表头备注" prop="headerRemark" min-width="200" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="表体备注" prop="invoiceRemark" min-width="200" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="打印次数" prop="printNum" min-width="200" show-overflow-tooltip>
            </el-table-column>
            <el-table-column align="left" label="经销商现金钱包" prop="customerWalletName" min-width="200"
              show-overflow-tooltip></el-table-column>
            <el-table-column align="left" label="经销商返利钱包" prop="customerWalletName2" min-width="200"
              show-overflow-tooltip></el-table-column>
            <el-table-column align="left" label="文件编号" prop="itemFileNo" min-width="200" show-overflow-tooltip>
            </el-table-column>


          </el-table>
        </div>
      </div>
      <div class="pagination clearfix">
        <div class="fr">
          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
            :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="10"
            layout="total, sizes, prev, pager, next, jumper" :total="listTotal">
          </el-pagination>
        </div>
      </div>
    </div>


    <print-preview ref="preView" />

    <el-dialog title="密码确认" :visible.sync="isShowDialog" :show-close="false" width="40%" :close-on-click-modal="false">
      <el-form ref="dialogForm" :model="dialogForm" :rules="dialogFormRules" label-position="right" label-width="70px">
        <el-row :gutter="20">
          <el-col :xs="24" :sm="24" :lg="24">
            <el-form-item label="密码" prop="password">
              <el-input v-model="dialogForm.password" autocomplete="off" placeholder="请输入密码"></el-input>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :lg="12">
            <el-form-item label="操作人" prop="createMan">
              <el-input v-model="dialogForm.createMan" readonly></el-input>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="12" :lg="12" style="height: 51px;">
            <el-form-item label="操作日期" prop="createDate">
              <el-date-picker v-model="dialogForm.createDate" readonly type="date" value-format="yyyy-MM-dd"
                style="width: 100%;" placeholder="选择日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="cancelDialogForm">取 消</el-button>
        <el-button type="primary" @click="submitDialogForm">确 定</el-button>
      </div>
    </el-dialog>


  </div>
</template>

<script>
import { getSumList } from '@/api/supply/deliver'
import { checkPassword ,getListInvoiceNumber} from "@/api/supply/pickup";
import { getCategoryList, getSalesmanList } from '@/api/common'
import SumPrint from '@/views/supply/deliver/components/sum_print'

import { disAutoConnect, hiprint, defaultElementTypeProvider } from 'vue-plugin-hiprint'
disAutoConnect();

import panel from './components/design/panel'
import { getDetail, detailArr } from './components/design/print-data'

import printPreview from './components/design/preview.vue'
export default {
  components: {
    SumPrint,
    printPreview

  },
  filters: {
    orderTypeFilter(val) {
      const MAP = {
        HOME: '家用单',
        TRADE: '商用单',
        RETAIL: '零售单',
        RETAIL_POLICY: '销售政策单',
        PERMU_HOME: '置换家用单',
        PERMU_TRADE: '置换商用单',
        PERMU_RETAIL: '置换零售单',
        PERMU_RETAIL_POLICY: '置换销售政策单',
        REQUISITION_HOME: '调拨家用单',
        REQUISITION_TRADE: '调拨商用单',
        REQUISITION_RETAIL: '调拨零售单',
        REQUISITION_RETAIL_POLICY: '调拨销售政策单',
      }
      return MAP[val];
    }
  },
  data() {
    return {
      currentPage: 1, // 当前页码
      pageSize: 10, // 每页数量
      listTotal: 0, // 列表总数
      dataList: null, // 列表数据
      listLoading: false, // 列表加载loading
      screenForm: { // 筛选表单数据
        goodsName: '',
        goodsCode: '',
        goodsOldCode: '',
        model: '',
        createDate: '',
        deliverDate: '',
        jxsNum: '',
        jxsName: '',
        orderNum: '',
        type: '',
        salesMan: '',
        k3ServiceId: '',
        mainOrderId: '',
        approvalEndTime: '',
        approvalStartTime: '',
        approvaTime:''
      },
      categoryList: [],
      salesmanList: [],

      tableSelection: [],
      queryItem: {},
      isShowPrint: false,
      totalNum:0,
      curPaper: {
        type: 'A5',
        width: 500,
        height: 147.6
      },
      paperTypes: {
        'A3': {
          width: 420,
          height: 296.6
        },
        'A4': {
          width: 210,
          height: 296.6
        },
        'A5': {
          width: 210,
          height: 147.6
        },
        'B3': {
          width: 500,
          height: 352.6
        },
        'B4': {
          width: 250,
          height: 352.6
        },
        'B5': {
          width: 250,
          height: 175.6
        }
      },
      scaleValue: 1,
      scaleMax: 5,
      scaleMin: 0.5,
      hiprintTemplate: '',
      isShowDialog: false,
      dialogForm: {
        password: "",
        createMan: "",
        createDate: "",
      },
      dialogFormRules: {
        password: [{ required: true, message: "请输入密码", trigger: "blur" }],
      },

    }
  },

  computed: {
    exParams() {
      return {
        materialName: this.screenForm.goodsName,
        materialNumber: this.screenForm.goodsCode,
        materialOldNumber: this.screenForm.goodsOldCode,
        specification: this.screenForm.model,
        createStartTime: this.screenForm.createDate ? this.screenForm.createDate[0] : '',
        createEndTime: this.screenForm.createDate ? this.screenForm.createDate[1] : '',
        startTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[0] : '',
        endTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[1] : '',
        customerNumber: this.screenForm.jxsNum,
        customerName: this.screenForm.jxsName,
        id: this.screenForm.orderNum,
        categoryName: this.screenForm.type,
        serviceId: this.screenForm.salesMan,
        k3ServiceId: this.screenForm.k3ServiceId,
        approvalEndTime: this.screenForm.approvaTime[0],
        approvalStartTime: this.screenForm.approvaTime[1]
      }
    },
    comRefundableQty() {
      return (type, status, row) => {
        if (type == 2) {
          return ''
        } else {
          if (status == 'OK') {
            return 0
          } else {
            return row.refundableQty
          }
        }

      }
    },
    curPaperType() {
      let type = 'other'
      let types = this.paperTypes
      for (const key in types) {
        let item = types[key]
        let { width, height } = this.curPaper
        if (item.width === width && item.height === height) {
          type = key
        }
      }
      return type
    }
  },

  created() {
    this.getSalesmanList();
    this.getCategoryList();
    this.getList();
  },
  // activated() {
  //   this.initPrint()
  // },
  mounted() {
    this.initPrint()
  },
  methods: {
    initPrint() {
      hiprint.init({
        providers: [new defaultElementTypeProvider()]
      });
      // 还原配置
      hiprint.setConfig()
      // 替换配置
      hiprint.setConfig({
        movingDistance: 2.5,
        text: {
          supportOptions: [
            {
              name: 'styler',
              hidden: true
            },
            {
              name: 'formatter',
              hidden: true
            },
          ]
        }
      })
      // eslint-disable-next-line no-undef
      hiprint.PrintElementTypeManager.buildByHtml($('.ep-draggable-item'));
      this.hiprintTemplate = new hiprint.PrintTemplate({
        template: panel,
        settingContainer: '#PrintElementOptionSetting',
        paginationContainer: '.hiprint-printPagination'
      });
      this.hiprintTemplate.design('#hiprint-printTemplate');
      // 获取当前放大比例, 当zoom时传true 才会有
      // this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
    }
    ,
    // 获取业务员列表
    getSalesmanList() {
      getSalesmanList({
        pageNum: 1,
        pageSize: -1,
        isCustomer: 0,
        status: true,
      }).then(res => {
        this.salesmanList = res.data.records;
      })
    },

    // 获取存货类别列表
    getCategoryList() {
      getCategoryList({
        pageNum: 1,
        pageSize: -1,
      }).then(res => {
        this.categoryList = res.data.records;
      })
    },

    // 查询列表
    getList() {
     
      this.listLoading = true;
      let params = {
        pageNum: this.currentPage,
        pageSize: this.pageSize,
        materialName: this.screenForm.goodsName,
        materialNumber: this.screenForm.goodsCode,
        materialOldNumber: this.screenForm.goodsOldCode,
        specification: this.screenForm.model,
        createStartTime: this.screenForm.createDate ? this.screenForm.createDate[0] : '',
        createEndTime: this.screenForm.createDate ? this.screenForm.createDate[1] : '',
        startTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[0] : '',
        endTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[1] : '',
        customerNumber: this.screenForm.jxsNum,
        customerName: this.screenForm.jxsName,
        id: this.screenForm.orderNum,
        categoryName: this.screenForm.type,
        serviceId: this.screenForm.salesMan,
        k3ServiceId: this.screenForm.k3ServiceId,
        mainOrderId: this.screenForm.mainOrderId,
        approvalEndTime: this.screenForm.approvaTime[0],
        approvalStartTime: this.screenForm.approvaTime[1]
      };
      getSumList(params).then((res) => {
        res.data.records.forEach(item => {
          item.notOutNumber = item.salesStatus ? 0 : item.refundableQty;
          item.sums1 = ['refundableQty'];
          item.sums2 = ['payAmount', 'payRebateAmount', 'discAmount', 'totalDiscAmount'];
        })
        this.dataList = res.data.records;
        this.listTotal = res.data.total;
        this.listLoading = false;
      })
      getListInvoiceNumber(params).then(res=>{
        // console.log(res,'ii');
        this.totalNum = res.data
      })

    },

    // 提交筛选表单
    submitScreenForm() {
      this.currentPage = 1;
      this.getList();
    },

    // 重置筛选表单
    resetScreenForm() {
      this.$refs.screenForm.resetFields();
      this.currentPage = 1;
      this.getList();
    },

    // 更改每页数量
    handleSizeChange(val) {
      this.pageSize = val;
      this.currentPage = 1;
      this.getList();
    },

    // 更改当前页
    handleCurrentChange(val) {
      this.currentPage = val;
      this.getList();
    },

    handleSelect(selection, row) {

      this.$refs.table.toggleRowSelection(row);
      this.dataList.forEach((item) => {
        if (item.id === row.id) {
          this.$refs.table.toggleRowSelection(item);
        }
      });
      this.tableSelection = this.$refs.table.selection;
    },

    handleSelectAll(selection) {
      this.tableSelection = this.$refs.table.selection;
    },

    // 点击打印
    toPrint() {
      // this.$refs
      this.queryItem = this.tableSelection;
      // console.log(this.tableSelection);
      // this.isShowPrint = true;
      // this.$refs.myPdfComponent.print()
      // console.log(this.hiprintTemplate, detailArr);
      // getDetail(this.tableSelection)
      // this.$refs.preView.show(this.hiprintTemplate, detailArr)
      if (!this.tableSelection[0].printNum) {
        this.queryItem = this.tableSelection;
        // this.isShowPrint = true;
        getDetail(this.tableSelection, JSON.parse(
          localStorage.getItem("supply_user")
        ).nickName)
        this.$refs.preView.show(this.hiprintTemplate, detailArr)
      } else {
        this.queryItem = this.tableSelection;
        this.dialogForm.createMan = JSON.parse(
          localStorage.getItem("supply_user")
        ).nickName;
        this.dialogForm.createDate = this.getDate();
        this.isShowDialog = true;
      }
    },

    // 关闭弹窗
    cancelDialogForm() {
      this.isShowDialog = false;
      this.$refs.dialogForm.resetFields();
    },

    // 提交 弹窗
    submitDialogForm() {
      this.$refs.dialogForm.validate((valid) => {
        if (valid) {
          let params = {
            shipId: this.queryItem[0].invoiceId,
            password: this.dialogForm.password,
          };
          checkPassword(params).then((res) => {
            this.cancelDialogForm();
            getDetail(this.tableSelection, JSON.parse(
              localStorage.getItem("supply_user")
            ).nickName)
            this.$refs.preView.show(this.hiprintTemplate, detailArr)
          });
        }
      });
    },

    getDate() {
      var date = new Date();
      var seperator1 = "-";
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var strDate = date.getDate();
      if (month >= 1 && month <= 9) {
        month = "0" + month;
      }
      if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
      }
      var currentdate = year + seperator1 + month + seperator1 + strDate;
      return currentdate;
    },

    backList() {
      this.queryItem = {};
      this.isShowPrint = false;
    },

    /**
      * 设置纸张大小
      * @param type [A3, A4, A5, B3, B4, B5, other]
      * @param value {width,height} mm
      */
    setPaper(type, value) {
      try {
        if (Object.keys(this.paperTypes).includes(type)) {
          this.curPaper = { type: type, width: value.width, height: value.height }
          this.hiprintTemplate.setPaper(value.width, value.height)
        } else {
          this.curPaper = { type: 'other', width: value.width, height: value.height }
          this.hiprintTemplate.setPaper(value.width, value.height)

        }
      } catch (error) {
        this.$message.error(`操作失败: ${error}`)
      }
    },

  }
}
</script>

<style lang="scss" scoped>
  .num{
    display: inline-block;
    font-size: 16px;
    margin-left: 20px;
    color: #909399;
    vertical-align: middle;
}
  
</style>
