<template>
  <div class="mod-config">
    <!-- 条件查询 -->
    <el-card :class="['search-card', { 'collapsed': !searchExpanded }]" shadow="hover">
      <div slot="header" class="search-header">
        <div class="header-left">
          <i class="el-icon-search"></i>
          <span class="header-title">查询条件</span>
        </div>
        <div class="header-right">
          <el-button
            type="text"
            size="small"
            @click="toggleSearchExpand"
            class="collapse-btn">
            <span>{{ searchExpanded ? '收起' : '展开' }}</span>
            <i :class="searchExpanded ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i>
          </el-button>
        </div>
      </div>

      <el-form
        :inline="true"
        label-position="top"
        :model="searchData"
        class="search-form"
        @keyup.enter.native="getMainData">

        <!-- 查询条件 - 可展开/收起 -->
        <template v-if="searchExpanded">
          <!-- 第一行 -->
          <el-row :gutter="16">
            <el-col :span="4">
              <el-form-item label="物料编码">
                <el-input v-model="searchData.partNo" placeholder="请输入物料编码" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="物料名称">
                <el-input v-model="searchData.partDesc" placeholder="请输入物料名称" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="规格型号">
                <el-input v-model="searchData.spec" placeholder="请输入规格型号" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="通知单号">
                <el-input v-model="searchData.notifyNo" placeholder="请输入通知单号" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="检验单号">
                <el-input v-model="searchData.orderNo" placeholder="请输入检验单号" clearable></el-input>
              </el-form-item>
            </el-col>
          </el-row>

          <!-- 第二行 -->
          <el-row :gutter="16">
            <el-col :span="4">
              <el-form-item label="采购单号">
                <el-input v-model="searchData.poOrderNo" placeholder="请输入采购单号" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="4">
              <el-form-item label="采购单行号">
                <el-input v-model="searchData.poItemNo" placeholder="请输入行号" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="4">
              <el-form-item label="单据状态">
                <el-select v-model="searchData.orderStatus" clearable placeholder="请选择状态">
                  <el-option label="待入库" value="待入库"></el-option>
                  <el-option label="已完成" value="已完成"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="检验日期">
                <el-date-picker
                  v-model="searchData.startDate"
                  type="date"
                  value-format="yyyy-MM-dd"
                  placeholder="开始日期"
                  style="width: 45%"
                  clearable>
                </el-date-picker>
                <span style="margin: 0 6px; color: #DCDFE6;">~</span>
                <el-date-picker
                  v-model="searchData.endDate"
                  type="date"
                  value-format="yyyy-MM-dd"
                  placeholder="结束日期"
                  style="width: 45%"
                  clearable>
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
        </template>

        <!-- 按钮行 - 始终显示 -->
        <el-row :gutter="16">
          <el-col :span="24">
            <div class="search-actions">
              <div class="action-left">
                <el-button
                  type="primary"
                  icon="el-icon-search"
                  @click="getMainData">
                  查询
                </el-button>
                <el-button
                  icon="el-icon-refresh-left"
                  @click="resetSearch">
                  重置
                </el-button>
              </div>
              <div class="action-right">
                <el-button
                  type="primary"
                  icon="el-icon-download"
                  @click="exportExcel()">
                  导出
                </el-button>
              </div>
            </div>
          </el-col>
        </el-row>
      </el-form>
    </el-card>

    <el-table
      :height="height"
      :data="mainDataList"
      border
      ref="mainTable"
      highlight-current-row
      @row-click="changeData"
      v-loading="dataListLoading"
      style="margin-top: 0px; width: 100%;">
      <el-table-column
        header-align="center"
        align="center"
        width="100"
        label="操作">
        <template slot-scope="scope">
          <a type="text" size="small" @click="addOrUpdateHandle(scope.row)">生成标签</a>
        </template>
      </el-table-column>
      <el-table-column
        v-for="(item,index) in columnArray1" :key="index"
        :sortable="item.columnSortable"
        :prop="item.columnProp"
        :header-align="item.headerAlign"
        :show-overflow-tooltip="item.showOverflowTooltip"
        :align="item.align"
        :fixed="item.fixed==''?false:item.fixed"
        :min-width="item.columnWidth"
        :label="item.columnLabel">
        <template slot-scope="scope">
          <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
          <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
                                             style="width: 100px; height: 80px"/></span>
        </template>
      </el-table-column>
    </el-table>

    <el-pagination style="margin-top: 0px"
                   @size-change="sizeChangeHandle"
                   @current-change="currentChangeHandle"
                   :current-page="pageIndex"
                   :page-sizes="[20, 50, 100, 200, 500]"
                   :page-size="pageSize"
                   :total="totalPage"
                   layout="total, sizes, prev, pager, next, jumper">
    </el-pagination>
    <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" >
    <el-form-item >
      <el-button  type="primary" @click="printLabels" style="">打印</el-button>
      <el-button @click="deleteLabels()" type="primary" style="margin-left: 2px">删除</el-button>
      <el-button type="primary" icon="el-icon-upload" @click="openUpload()" style="margin-left: 2px">导入</el-button>
    </el-form-item>
    </el-form>
    <el-table
      :height="height"
      :data="table2List"
      border
      ref="table3"
      highlight-current-row
      @selection-change="handleSelectionChange"
      v-loading="dataListLoading"
      style="margin-top: 0px; width: 100%;">
      <el-table-column
        type="selection"
        width="55"
        align="center">
      </el-table-column>
      <el-table-column
        v-for="(item,index) in columnArray2" :key="index"
        :sortable="item.columnSortable"
        :prop="item.columnProp"
        :header-align="item.headerAlign"
        :show-overflow-tooltip="item.showOverflowTooltip"
        :align="item.align"
        :fixed="item.fixed==''?false:item.fixed"
        :min-width="item.columnWidth"
        :label="item.columnLabel">
        <template slot-scope="scope">
          <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
          <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
                                             style="width: 100px; height: 80px"/></span>
        </template>
      </el-table-column>
    </el-table>

    <el-dialog title="标签发行" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="800px">
      <el-form :model="addModelData" label-position="top" style="margin-top: -5px;">
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="物料编码" >
              <el-input v-model="addModelData.partNo" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="16">
            <el-form-item label="物料名称" >
              <el-input v-model="addModelData.partDesc" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="采购订单" >
              <el-input v-model="addModelData.poOrderNo" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="采购订单行号">
              <el-input v-model="addModelData.poItemNo" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="检验单号">
              <el-input v-model="addModelData.orderNo"  disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="本次到货数量">
              <el-input v-model="addModelData.orderQty" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="本次到货卷数">
              <el-input v-model="addModelData.orderRollCount" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="检验合格数量">
              <el-input v-model="addModelData.batchQualifiedQty" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item label="超入比例" >
              <el-input v-model="addModelData.exceedInRatio" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item label="有效期管理">
              <el-input v-model="addModelData.expirationFlag" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="生产日期" required>
              <el-date-picker
                v-model="addModelData.productionDate"
                type="date"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                style="width: 100%">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="批次号">
              <el-input v-model="addModelData.batchNo" style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="发行张数" required>
              <el-input v-model="addModelData.rollCount" @blur="getNowRollQty()" @input="handleInput" type="number" style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="每张数量" required>
              <el-input v-model="addModelData.rollQty" @blur="getNowRollQty()" type="number" style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="尾卷数量">
              <el-input v-model="addModelData.tailRollQty" @blur="getNowRollQty()" type="number" style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="本次发行数量"  >
              <el-input v-model="addModelData.nowRollQty" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="可发行数量">
              <el-input v-model="addModelData.remainingIssuableQty" disabled style="width: 100%"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>

      <div slot="footer" class="dialog-footer" style="text-align: center;">
        <el-button type="success" @click="submitDataNoClose()">应用</el-button>
        <el-button type="success" @click="submitData()">确定</el-button>
        <el-button type="primary" @click="addModelFlag=false">取消</el-button>
      </div>
    </el-dialog>

    <!-- 导入 -->
    <qcUpload ref="qcUpload" @refreshPageTables="getDetailTableList()" v-drag></qcUpload>

    <!-- 标签打印对话框 -->
    <el-dialog
      :close-on-click-modal="false"
      v-drag
      :visible.sync="printDialogVisible"
      width="650px"
      class="print-dialog">
      <div slot="title" class="dialog-title-wrapper">
        <i class="el-icon-printer" style="margin-right: 8px; font-size: 20px;"></i>
        <span style="font-size: 18px; font-weight: 600;">标签打印设置</span>
      </div>

      <div class="print-dialog-content">
        <!-- 打印信息提示 -->
        <div class="print-info-banner">
          <i class="el-icon-info" style="margin-right: 8px; font-size: 16px;"></i>
          <span>已选择 <strong style="color: #3a7ba8;">{{ selectionDataList.length }}</strong> 个标签，请配置打印参数</span>
        </div>

        <el-form :model="printDialogData" label-position="top" style="margin-top: 20px;">
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item required>
                <span slot="label" class="form-label">
                  <i class="el-icon-document-copy" style="margin-right: 5px;"></i>
                  打印次数
                </span>
                <el-input-number
                  v-model="printDialogData.printTimes"
                  :min="1"
                  :max="100"
                  controls-position="right"
                  placeholder="每个标签打印份数"
                  style="width: 100%">
                </el-input-number>
                <div class="form-tip">设置每个标签的打印份数</div>
              </el-form-item>
            </el-col>

            <el-col :span="12">
              <el-form-item required>
                <span slot="label" class="form-label">
                  <i class="el-icon-tickets" style="margin-right: 5px;"></i>
                  标签模板
                </span>
                <el-select
                  v-model="printDialogData.labelNo"
                  placeholder="请选择标签模板"
                  style="width: 100%"
                  :disabled="labelTemplateList.length === 0">
                  <el-option
                    v-for="item in labelTemplateList"
                    :key="item.labelNo"
                    :label="item.labelName"
                    :value="item.labelNo">
                    <span style="float: left">{{ item.labelName }}</span>
                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.labelNo }}</span>
                  </el-option>
                </el-select>
                <div class="form-tip" v-if="labelTemplateList.length === 0" style="color: #F56C6C;">
                  暂无可用模板
                </div>
                <div class="form-tip" v-else>
                  根据物料自动匹配模板
                </div>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row>
            <el-col :span="24">
              <el-form-item required>
                <span slot="label" class="form-label">
                  <i class="el-icon-printer" style="margin-right: 5px;"></i>
                  目标打印机
                </span>
                <el-select
                  v-model="printDialogData.printerName"
                  placeholder="请选择打印机"
                  style="width: 100%"
                  :disabled="printerList.length === 0">
                  <el-option
                    v-for="item in printerList"
                    :key="item"
                    :label="item"
                    :value="item">
                    <i class="el-icon-printer" style="margin-right: 8px; color: #67C23A;"></i>
                    {{ item }}
                  </el-option>
                </el-select>
                <div class="form-tip" v-if="printerList.length === 0" style="color: #F56C6C;">
                  未检测到打印机，请确保已安装并启动 CLodop
                </div>
                <div class="form-tip" v-else>
                  已检测到 {{ printerList.length }} 台打印机
                </div>
              </el-form-item>
            </el-col>
          </el-row>

          <!-- 打印预览说明 -->
          <div class="print-summary">
            <div class="summary-item">
              <span class="summary-label">打印总数：</span>
              <span class="summary-value">{{ selectionDataList.length * printDialogData.printTimes }} 张</span>
            </div>
            <div class="summary-item">
              <span class="summary-label">标签数量：</span>
              <span class="summary-value">{{ selectionDataList.length }} 个</span>
            </div>
            <div class="summary-item">
              <span class="summary-label">每标签份数：</span>
              <span class="summary-value">{{ printDialogData.printTimes }} 份</span>
            </div>
          </div>
        </el-form>
      </div>

      <div slot="footer" class="dialog-footer">
        <el-button
          type="success"
          icon="el-icon-printer"
          @click="confirmPrint()"
          :loading="printLoading"
          :disabled="!printDialogData.labelNo || !printDialogData.printerName"
          size="medium">
          {{ printLoading ? '打印中...' : '开始打印' }}
        </el-button>
        <el-button
          @click="printDialogVisible=false"
          size="medium">
          取消
        </el-button>
      </div>
    </el-dialog>

  </div>
</template>

<script>
/*组件*/
import excel from "@/utils/excel-util.js";
import qcUpload from "@/views/modules/qc/qc_upload";
import {
  deletePoPartLabelData,
  getInboundQcResultData,
  getInboundQcResultOtherData,
  getPoOrderRollNoOutData, getPoPartLabelData,
  submitPoOrderRollNo,
  getPartLabelTemplateList,
  callUspPartLabelTemplate
} from '../../../api/wms/wms'
import {poPartLabelPrint} from '../clodopLabel/poPartLabel'
import getLodop from '@/utils/LodopFuncs.js'
import labelPrintTemplates from '@/mixins/labelPrintTemplates.js'
export default {
  mixins: [labelPrintTemplates],
  data() {
    return {
      functionId: this.$route.meta.menuId,
      height: 200,
      currentRow: {},
      searchData:{
        site:this.$store.state.user.site,
        orderNo:'',
        notifyNo: '',
        partNo:'',
        partDesc:'',
        spec:'',
        poOrderNo:'',
        poItemNo:'',
        orderStatus:'待入库',
        startDate:'',
        endDate:'',
        page: 1,
        limit: 10,
      },
      searchExpanded: true, // 查询条件展开状态
      selectionDataList:[],
      pageIndex: 1,
      pageSize: 50,
      totalPage: 0,
      mainDataList:[],
      table2List:[],
      dataListLoading: false,
      addModelFlag:false,
      addModelData:{
        expirationWarningDay:'',
        site:'',
        buNo:'',
        partNo: '',
        partDesc: '',
        poOrderNo: '',
        poItemNo: '',
        orderNo: '',
        orderQty: '',
        supplierId: '',
        supplierName: '',
        orderRollCount: '',
        batchQualifiedQty: '',
        remainingIssuableQty: '',
        exceedInRatio: '',
        expirationFlag: '',
        expirationDay: '',
        nowRollQty: '',
        productionDate: '',
        batchNo: '',
        rollCount: '1',
        rollQty: '',
        tailRollQty: '0'
      },
      columnArray1: [
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1BuNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "buNo",
          headerAlign: "center",
          align: "center",
          columnLabel: "BU",
          columnWidth: '70',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 0,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1NotifyNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "notifyNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "通知单号",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 1,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1OrderNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "orderNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "检验单号",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 1,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1OrderStatus',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "orderStatus",
          headerAlign: "center",
          align: "center",
          columnLabel: "单据状态",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 2,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1PartNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "partNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "物料编码",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 3,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1PartDesc',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "partDesc",
          headerAlign: "center",
          align: "left",
          columnLabel: "物料名称",
          columnWidth: '200',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 4,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1Spec',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "spec",
          headerAlign: "center",
          align: "left",
          columnLabel: "规格型号",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 4,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1OrderQty',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "orderQty",
          headerAlign: "center",
          align: "right",
          columnLabel: "到货数量",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 10,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1RollCount',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "rollCount",
          headerAlign: "center",
          align: "right",
          columnLabel: "到货卷数",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 11,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1BatchQualifiedQty',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "batchQualifiedQty",
          headerAlign: "center",
          align: "right",
          columnLabel: "允许入库数",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 14,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1PoOrderNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "poOrderNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "采购订单号",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 5,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1PoItemNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "poItemNo",
          headerAlign: "center",
          align: "center",
          columnLabel: "行号",
          columnWidth: '80',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 6,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1SupplierName',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "supplierName",
          headerAlign: "center",
          align: "left",
          columnLabel: "供应商",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 7,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1InspectorDate',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "inspectorDate",
          headerAlign: "center",
          align: "center",
          columnLabel: "检验日期",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 8,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1InspectorNo',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "inspectorNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "检验员",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 9,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1InspectionResult',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "inspectionResult",
          headerAlign: "center",
          align: "center",
          columnLabel: "检验结论",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 12,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table1DisposalMeasures',
          tableId: "670Table1",
          tableName: "采购检验合格单",
          columnProp: "disposalMeasures",
          headerAlign: "center",
          align: "left",
          columnLabel: "处置措施",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 13,
          status: true,
          fixed: false
        },
      ],
      columnArray2: [
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2OrderId',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "orderId",
          headerAlign: "center",
          align: "right",
          columnLabel: "No .",
          columnWidth: '50',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 0,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2RollNo',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "rollNo",
          headerAlign: "center",
          align: "left",
          columnLabel: "标签条码",
          columnWidth: '150',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 1,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2RollQty',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "rollQty",
          headerAlign: "center",
          align: "right",
          columnLabel: "标签数量",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 2,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2HardtagInFlag',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "hardtagInFlag",
          headerAlign: "center",
          align: "center",
          columnLabel: "标签状态",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 3,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2PrintFla',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "printFlag",
          headerAlign: "center",
          align: "right",
          columnLabel: "打印次数",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 4,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2BatchNo',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "batchNo",
          headerAlign: "center",
          align: "center",
          columnLabel: "批次号",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 6,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2ProductionDate',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "productionDate",
          headerAlign: "center",
          align: "center",
          columnLabel: "生产日期",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 6,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2ExpirationDate',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "expirationDate",
          headerAlign: "center",
          align: "center",
          columnLabel: "失效日期",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 6,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2ExpirationWarningDate',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "expirationWarningDate",
          headerAlign: "center",
          align: "center",
          columnLabel: "失效预警日期",
          columnWidth: '120',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 6,
          status: true,
          fixed: false
        },
        {
          userId: this.$store.state.user.name,
          functionId: this.functionId,
          serialNumber: '670Table2OCreatedBy',
          tableId: "670Table2",
          tableName: "采购物料标签清单",
          columnProp: "createdBy",
          headerAlign: "center",
          align: "left",
          columnLabel: "操作员",
          columnWidth: '100',
          columnHidden: false,
          columnImage: false,
          columnSortable: false,
          sortLv: 7,
          status: true,
          fixed: false
        }
      ],
      exportName: '采购检验合格单'+this.dayjs().format('YYYYMMDDHHmmss'),
      exportName2: '采购物料标签清单'+this.dayjs().format('YYYYMMDDHHmmss'),
      // 标签打印对话框相关
      printDialogVisible: false,
      printDialogData: {
        printTimes: 1,
        labelNo: '',
        printerName: ''
      },
      labelTemplateList: [],
      printerList: [],
      printLoading: false
    }
  },
  /*组件*/
  components: {
    excel,
    qcUpload,
  },

  mounted() {
    this.$nextTick(() => {
      this.height = ( window.innerHeight - 220)/2 - 25;
    })
  },
  methods: {

    // 切换查询条件展开/收起
    toggleSearchExpand() {
      this.searchExpanded = !this.searchExpanded
    },

    // 重置查询条件
    resetSearch() {
      this.searchData = {
        site: this.$store.state.user.site,
        orderNo: '',
        notifyNo: '',
        partNo: '',
        partDesc: '',
        spec: '',
        poOrderNo: '',
        poItemNo: '',
        orderStatus: '待入库',
        startDate: '',
        endDate: '',
        page: 1,
        limit: 10,
      }
      this.pageIndex = 1
      this.getMainData()
    },

    getMainData(){
      this.searchData.limit = this.pageSize
      this.searchData.page = this.pageIndex
      getInboundQcResultData(this.searchData).then(({data}) => {
        if (data.code === 0) {
          this.mainDataList = data.page.list
          this.pageIndex = data.page.currPage
          this.pageSize = data.page.pageSize
          this.totalPage = data.page.totalCount
          //判断是否全部存在数据
          if (this.totalPage > 0) {
            //设置选中行
            this.$refs.mainTable.setCurrentRow(this.mainDataList[0])
            this.changeData(this.mainDataList[0])

          }else {
            this.changeData(null)
          }
        }
        this.dataListLoading = false
      })
    },

    // 每页数
    sizeChangeHandle (val) {
      this.pageSize = val
      this.pageIndex = 1
      this.getMainData()
    },

    // 当前页
    currentChangeHandle (val) {
      this.pageIndex = val
      this.getMainData()
    },

    async exportExcel() {
      this.searchData.limit = -1
      this.searchData.page = 1
      excel.exportTable({
        url: "/wmsPrint/getInboundQcResultData",
        columnMapping:  this.columnArray1,//可以直接用table，不需要的列就剔除
        mergeSetting: [],//需要合并的列
        params: this.searchData,
        fileName: this.exportName+".xlsx",
        rowFetcher: res => res.data,
        columnFormatter: [],
        dropColumns: [],//需要剔除的列，例如dropColumns: ["netWeight"]，即剔除净重列
      });
    },
    changeData(row){
      this.currentRow=JSON.parse(JSON.stringify(row))
      // let inData={
      //   site:this.currentRow.site,
      //   buNo:this.currentRow.buNo,
      //   inspectionNo:this.currentRow.orderNo,
      // }
      // getPoOrderRollNoOutData(inData).then(({data}) => {
      //   //区分请求成功和失败的状况
      //   if (data && data.code == 0) {
      //     this.table2List = data.rows
      //
      //   } else {
      //     this.table2List = [];
      //   }
      // });
      this.getDetailTableList();
    },
    getDetailTableList () {
      let inData={
        site:this.currentRow.site,
        buNo:this.currentRow.buNo,
        inspectionNo:this.currentRow.orderNo,
      }
      getPoOrderRollNoOutData(inData).then(({data}) => {
        //区分请求成功和失败的状况
        if (data && data.code == 0) {
          this.table2List = data.rows

        } else {
          this.table2List = [];
        }
      });
    },
    handleSelectionChange(val){
      this.selectionDataList = val
      console.log(this.selectionDataList)
    },
    addOrUpdateHandle(row) {
      getInboundQcResultOtherData(row).then(({data}) => {
        //区分请求成功和失败的状况
        if (data && data.code=== 0) {
          let outData = data.row
          console.log(data.row);
          this.addModelData={
            site:row.site,
            buNo:row.buNo,
            partNo: row.partNo,
            partDesc: row.partDesc,
            poOrderNo: row.poOrderNo,
            poItemNo: row.poItemNo,
            orderNo: row.orderNo,
            orderQty: row.orderQty,
            supplierId: row.supplierId,
            supplierName: row.supplierName,
            orderRollCount: row.rollCount,
            batchQualifiedQty: row.batchQualifiedQty,
            remainingIssuableQty: outData.remainingIssuableQty,
            exceedInRatio: outData.exceedInRatio,
            expirationFlag: outData.expirationFlag,
            expirationDay:outData.expirationDay?Number(outData.expirationDay):0,
            nowRollQty: row.rollQty,
            productionDate: this.dayjs().format("YYYY-MM-DD"),
            batchNo: '',
            rollCount: '1',
            rollQty: row.rollQty,
            expirationWarningDay: outData.expirationWarningDay,
            tailRollQty: '0'
          }
          if(this.addModelData.exceedInRatio==""||this.addModelData.exceedInRatio==null){
            this.addModelData.exceedInRatio=0
          }

        }
      });


      this.addModelFlag = true;

    },

    submitData() {
      // 验证必填字段


      if (!this.addModelData.productionDate||this.addModelData.productionDate==='') {
        this.$message.error('请选择生产日期');
        return;
      }
      if (!this.addModelData.rollCount||this.addModelData.rollCount==='') {
        this.$message.error('请输入发行张数');
        return;
      }
      if (!this.addModelData.rollQty||this.addModelData.rollQty==='') {
        this.$message.error('请输入每张数量');
        return;
      }
      if ( this.addModelData.nowRollQty>Number(this.addModelData.remainingIssuableQty)+((Number(this.addModelData.exceedInRatio)*Number(this.addModelData.orderQty))/100)) {
        this.$message.error('本次发行数量大于剩余可发行数量和超入数量');
        return;
      }

      // 这里可以添加提交逻辑
      submitPoOrderRollNo(this.addModelData).then(({data}) => {
        if (data && data.code === 0) {
          this.$message.success( '操作成功')
          this.changeData(this.currentRow);
          this.addModelFlag = false;
        }else {

          this.$message.error(data.msg);
        }
      })
    },
    submitDataNoClose() {
      // 验证必填字段


      if (!this.addModelData.productionDate||this.addModelData.productionDate==='') {
        this.$message.error('请选择生产日期');
        return;
      }
      if (!this.addModelData.rollCount||this.addModelData.rollCount==='') {
        this.$message.error('请输入发行张数');
        return;
      }
      if (!this.addModelData.rollQty||this.addModelData.rollQty==='') {
        this.$message.error('请输入每张数量');
        return;
      }
      if ( this.addModelData.nowRollQty>Number(this.addModelData.remainingIssuableQty)+((Number(this.addModelData.exceedInRatio)*Number(this.addModelData.orderQty))/100)) {
        this.$message.error('本次发行数量大于剩余可发行数量和超入数量');
        return;
      }

      // 这里可以添加提交逻辑
      submitPoOrderRollNo(this.addModelData).then(({data}) => {
        if (data && data.code === 0) {
          this.$message.success( '操作成功')
          this.changeData(this.currentRow);
          let row=this.currentRow;
          getInboundQcResultOtherData(row).then(({data}) => {
            //区分请求成功和失败的状况
            if (data && data.code=== 0) {
              let outData = data.row
              console.log(data.row);
              this.addModelData.remainingIssuableQty= outData.remainingIssuableQty
            }
          });
        }else {

          this.$message.error(data.msg);
        }
      })
    },
    getNowRollQty(){
      if(this.addModelData.tailRollQty==''||this.addModelData.tailRollQty==null||this.addModelData.tailRollQty<0){
        this.addModelData.tailRollQty=0
      }
      if(this.addModelData.tailRollQty==0){
        this.addModelData.nowRollQty=Number(this.addModelData.rollQty)*Number(this.addModelData.rollCount)
      }else {
        this.addModelData.nowRollQty=Number(this.addModelData.rollQty)*(Number(this.addModelData.rollCount)-1)+Number(this.addModelData.tailRollQty)

      }


    },
    handleInput(value) {
      // 1. 只保留数字
      value = value.replace(/\D/g, '')
      // 2. 去除前导零（0, 00, 0123 → 123）
      value = value.replace(/^0+/, '')
      // 3. 更新数据（触发 Vue 响应式）
      this.addModelData.rollCount = value
    },
    async printLabels(){
      if(this.selectionDataList.length===0){
        this.$message.error('未选择标签！');
        return false;
      }

      // 检查主信息是否已选择
      if(!this.currentRow || !this.currentRow.site){
        this.$message.error('请先选择上方的检验合格单！');
        return false;
      }

      // 获取标签模板列表
      await this.getLabelTemplates();

      // 获取打印机列表
      this.getPrinterList();

      // 打开标签打印对话框
      this.printDialogData = {
        printTimes: 1,
        labelNo: '',
        printerName: ''
      };
      this.printDialogVisible = true;
    },

    // 获取标签模板列表
    async getLabelTemplates(){
      const params = {
        site: this.currentRow.site,
        buNo: this.currentRow.buNo,
        partNo: this.currentRow.partNo
      };

      try {
        const {data} = await getPartLabelTemplateList(params);
        if (data && data.code === 0) {
          this.labelTemplateList = data.list || [];
          if(this.labelTemplateList.length > 0){
            // 默认选中第一个
            this.printDialogData.labelNo = this.labelTemplateList[0].labelNo;
          }
        } else {
          this.$message.error(data.msg || '获取标签模板失败！');
        }
      } catch (error) {
        console.error('获取标签模板失败:', error);
        this.$message.error('获取标签模板失败！');
      }
    },

    // 获取打印机列表
    getPrinterList(){
      try {
        const LODOP = getLodop();
        if (!LODOP) {
          this.$message.error('无法连接到打印控件，请确保已安装并启动 CLodop！');
          return;
        }

        const printerCount = LODOP.GET_PRINTER_COUNT();
        this.printerList = [];
        for (let i = 0; i < printerCount; i++) {
          this.printerList.push(LODOP.GET_PRINTER_NAME(i));
        }

        if(this.printerList.length > 0){
          // 默认选中第一个打印机
          this.printDialogData.printerName = this.printerList[0];
        }
      } catch (error) {
        console.error('获取打印机列表失败:', error);
        this.$message.error('获取打印机列表失败！');
      }
    },

    // 确认打印
    async confirmPrint(){
      // 验证必填项
      if(!this.printDialogData.labelNo){
        this.$message.error('请选择标签模板！');
        return;
      }
      if(!this.printDialogData.printerName){
        this.$message.error('请选择打印机！');
        return;
      }

      this.printLoading = true;

      try {
        // 调用存储过程获取打印参数
        const printDataList = [];

        for(let i = 0; i < this.selectionDataList.length; i++){
          const item = this.selectionDataList[i];
          const params = {
            site: this.currentRow.site,
            buNo: this.currentRow.buNo,
            menuID: this.$route.meta.menuId,
            relatedOrderNo: this.currentRow.poOrderNo,
            relatedOrderLineNo: this.currentRow.poItemNo,
            documentNo: this.currentRow.notifyNo,
            partNo: item.partNo,
            labelNo: this.printDialogData.labelNo,
            rollNo: item.rollNo
          };

          const {data} = await callUspPartLabelTemplate(params);
          if (data && data.code === 0) {
            // 确保 labelNo 字段存在（统一字段名）
            const printData = {
              ...data.row,
              labelNo: data.row.labelNo
            };
            printDataList.push(printData);
          } else {
            this.$message.error(`获取标签 ${item.rollNo} 的打印参数失败：${data.msg}`);
            this.printLoading = false;
            return;
          }
        }

        // 根据 labelNo 调用相应的打印方法
        await this.executePrint(printDataList);

        this.printDialogVisible = false;
        this.$message.success('打印任务已发送！');
        this.getDetailTableList();

      } catch (error) {
        console.error('打印失败:', error);
        this.$message.error('打印失败：' + error.message);
      } finally {
        this.printLoading = false;
      }
    },

    // 执行打印
    async executePrint(printDataList){
      const LODOP = getLodop();
      if (!LODOP) {
        this.$message.error('无法连接到打印控件！');
        return;
      }

      // 初始化打印任务
      LODOP.PRINT_INIT('物料标签打印');

      // 设置打印模式，隐藏水印
      LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true);

      // 设置打印机
      LODOP.SET_PRINTER_INDEX(this.printDialogData.printerName);

      for(let times = 0; times < this.printDialogData.printTimes; times++){
        for(let i = 0; i < printDataList.length; i++){
          const printData = printDataList[i];

          // 根据 labelNo 调用不同的打印方法
          if(printData.labelNo === 'A001'){
            await this.printLabelA001(LODOP, printData, i > 0 || times > 0);
          } else if(printData.labelNo === 'A002'){
            await this.printLabelA002(LODOP, printData, i > 0 || times > 0);
          } else if(printData.labelNo === 'A003'){
            await this.printLabelA003(LODOP, printData, i > 0 || times > 0);
          } else {
            this.$message.warning(`未知的标签模板：${printData.labelNo}`);
          }
        }
      }

      // 预览打印（避免水印）
      //LODOP.PREVIEW();
      LODOP.PRINT();
    },

    deleteLabels(){
      if(this.selectionDataList.length===0){
        this.$message.error('未选择标签！');
        return false;
      }
      for (let i = 0; i <this.selectionDataList.length ; i++) {
        if(this.selectionDataList[i].hardtagInFlag!=='未入库'){
          this.$message.error('存在不是未入库状态的标签无法删除！');
          return false;
        }
      }
      deletePoPartLabelData(this.selectionDataList).then(({data}) => {
        if (data && data.code === 0) {
          this.getDetailTableList();
          this.$message.success('删除成功！');

        }else {

          this.$message.error(data.msg);
        }

      })

    },
    openUpload(){
      if(!this.currentRow || !this.currentRow.site){
        this.$message.error('请先选择上方的检验合格单！');
        return false;
      }
      let pageData = {
        flag: 'poPartPrint',
        createBy: this.$store.state.user.name,
        site: this.currentRow.site,
        buNo: this.currentRow.buNo,
        orderNo: this.currentRow.orderNo,
        partNo: this.currentRow.partNo,
        partDesc: this.currentRow.partDesc,
        poOrderNo: this.currentRow.poOrderNo,
        poItemNo: this.currentRow.poItemNo,
        supplierId: this.currentRow.supplierId,
        supplierName: this.currentRow.supplierName,
        orderQty: this.currentRow.orderQty,
        inspectionNo: this.currentRow.orderNo
      }
      this.$refs.qcUpload.init(pageData);
    },
  },
  created() {
    //查询报表的类型
    this.getMainData();
  },


}
</script>

<!--当前页面的标签样式-->
<style scoped lang="scss">

/deep/ .customer-tab .el-tabs__content {
  padding: 5px !important;
}

/* 搜索卡片样式 */
.search-card {
  margin-bottom: 16px;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.search-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.search-card /deep/ .el-card__header {
  padding: 5px 20px;
  background: linear-gradient(135deg, #9ac3d0 20%, #b6c7dd 80%);
  border-bottom: none;
}

.search-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-left {
  display: flex;
  align-items: center;
  color: #fff;
}

.header-left i {
  font-size: 16px;
  margin-right: 8px;
}

.header-title {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.header-right {
  color: #fff;
}

.collapse-btn {
  color: #fff;
  font-weight: 500;
  transition: all 0.3s ease;
}

.collapse-btn:hover {
  color: #f0f0f0;
  transform: translateY(-1px);
}

.collapse-btn i {
  transition: transform 0.3s ease;
}

/* 搜索表单样式 */
.search-form {
  padding: 6px 0;
  min-height: 0;
}

/* 卡片主体样式 */
.search-card /deep/ .el-card__body {
  padding: 10px;
  transition: all 0.3s ease;
}

/* 收起时的样式 */
.search-card.collapsed /deep/ .el-card__body {
  padding: 10px 20px;
}

.search-form /deep/ .el-form-item {
  margin-bottom: 12px;
}

.search-form /deep/ .el-form-item__label {
  font-weight: 500;
  color: #606266;
  padding-bottom: 4px;
}

.search-form /deep/ .el-input__inner,
.search-form /deep/ .el-textarea__inner {
  border-radius: 6px;
  border: 1px solid #DCDFE6;
  transition: all 0.3s ease;
}

.search-form /deep/ .el-input__inner:focus,
.search-form /deep/ .el-textarea__inner:focus {
  border-color: #9ac3d0;
  box-shadow: 0 0 0 2px rgba(154, 195, 208, 0.1);
}

.search-form /deep/ .el-select {
  width: 100%;
}

.search-form /deep/ .el-date-editor.el-input {
  width: 100%;
}

/* 操作按钮区域 */
.search-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0 2px 0;
}

/* 展开时显示上边框 */
.search-card:not(.collapsed) .search-actions {
  border-top: 1px solid #f0f0f0;
  margin-top: 6px;
}

/* 收起时不显示上边框和上边距 */
.search-card.collapsed .search-actions {
  border-top: none;
  margin-top: 0;
  padding-top: 0;
}

.action-left,
.action-right {
  display: flex;
  gap: 8px;
}

.search-actions .el-button {
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.search-actions .el-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.search-actions .el-button--primary {
  background: #60aeff;
  border-color: #60aeff;
}

.search-actions .el-button--primary:hover {
  background: #7dbdff;
  border-color: #7dbdff;
}

/deep/ .el-form-item__label {
  font-weight: 500;
}

/deep/ .el-form-item.is-required .el-form-item__label:before {
  content: '*';
  color: #f56c6c;
  margin-right: 4px;
}

/deep/ .dialog-footer {
  padding: 20px 0 0 0;
  text-align: center;
}

/deep/ .el-dialog__body {
  padding: 20px;
}

/deep/ .el-input.is-disabled .el-input__inner {
  background-color: #f5f7fa;
  border-color: #e4e7ed;
  color: #c0c4cc;
}

/* 标签打印对话框样式 */
.print-dialog {
  /deep/ .el-dialog__header {
    background: linear-gradient(135deg, #9ac3d0 20%, #b6c7dd 80%);
    padding: 20px 20px 20px 20px;
    border-radius: 4px 4px 0 0;
  }

  /deep/ .el-dialog__title {
    color: #ffffff;
  }

  /deep/ .el-dialog__headerbtn .el-dialog__close {
    color: #ffffff;
    font-size: 20px;
    font-weight: bold;

    &:hover {
      color: #f0f0f0;
    }
  }

  /deep/ .el-dialog__body {
    padding: 0;
  }

  .dialog-title-wrapper {
    color: #ffffff;
    display: flex;
    align-items: center;
  }

  .print-dialog-content {
    padding: 25px 30px;
  }

  .print-info-banner {
    background: linear-gradient(135deg, #e8f4f8 0%, #f0f5fb 100%);
    border-left: 4px solid #60aeff;
    padding: 12px 16px;
    border-radius: 4px;
    color: #606266;
    font-size: 14px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  }

  .form-label {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
    display: flex;
    align-items: center;
  }

  .form-tip {
    font-size: 12px;
    color: #909399;
    margin-top: 5px;
    line-height: 1.5;
  }

  .print-summary {
    background: linear-gradient(135deg, #e1f0f5 0%, #dae8f3 100%);
    border-radius: 8px;
    padding: 16px 20px;
    margin-top: 20px;
    display: flex;
    justify-content: space-around;
    box-shadow: 0 2px 8px rgba(96, 174, 255, 0.15);
    border: 1px solid #c8dff0;

    .summary-item {
      display: flex;
      flex-direction: column;
      align-items: center;

      .summary-label {
        font-size: 12px;
        color: #5a7a8f;
        margin-bottom: 5px;
        font-weight: 500;
      }

      .summary-value {
        font-size: 20px;
        font-weight: bold;
        color: #3a7ba8;
      }
    }
  }

  /deep/ .el-form-item {
    margin-bottom: 18px;
  }

  /deep/ .el-input-number {
    width: 100%;

    .el-input__inner {
      text-align: left;
    }
  }

  /deep/ .el-select {
    .el-input__inner {
      border: 1px solid #DCDFE6;
      transition: all 0.3s;

      &:hover {
        border-color: #409EFF;
      }

      &:focus {
        border-color: #409EFF;
      }
    }
  }

  /deep/ .dialog-footer {
    padding: 15px 30px 25px 30px;
    text-align: center;
    background-color: #fafafa;
    border-top: 1px solid #e8e8e8;

    .el-button {
      min-width: 120px;
      height: 40px;
      font-weight: 500;
      transition: all 0.3s;
      font-size: 15px;
    }

    .el-button--success {
      background: linear-gradient(135deg, #67C23A 0%, #85ce61 100%);
      border: none;
      box-shadow: 0 2px 4px rgba(103, 194, 58, 0.3);

      &:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(103, 194, 58, 0.4);
      }

      &:active {
        transform: translateY(0);
      }
    }
  }
}

/* 选项样式优化 */
/deep/ .el-select-dropdown__item {
  padding: 10px 20px;
  transition: all 0.2s;

  &:hover {
    background-color: #f5f7fa;
  }
}

/* 输入框聚焦效果 */
/deep/ .el-input__inner:focus,
/deep/ .el-textarea__inner:focus {
  border-color: #409EFF;
  box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.1);
}


</style>
