huang
2024-11-12 54c2f0fda44123782e5241ff7d1ad6e81c95f2b2
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -47,7 +47,7 @@
let editRow = ref({
  processId: null,
  technologyNumber: null,
  process:null
  process: null
})
//打印
@@ -241,7 +241,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
    // remote: true
                    // remote: true
  },
  customConfig: {
    storage: true
@@ -291,25 +291,33 @@
      title: t('order.OrderNum'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged, width: 100
    },
    {
      field: 'technology_number',
      title: t('processCard.technologyNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged, width: 100
    },
    {
      field: 'glassNumber',
      title: t('reportingWorks.glassNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged, width: 100
    },
    {field: 'quantity', title: t('order.quantity'), width: 90},
    {field: 'printQuantity', title: t('processCard.printQuantity'), width: 90,
      editRender: {name: 'input', attrs: {placeholder: ''}},
    },
    {field: 'total_area', title: t('order.area'), width: 90},
    {field: 'product_name', title: t('order.product'), width: 120},
    {
      field: 'product_name', title: t('order.product'), width: 120,
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'glass_child',
      title: t('reportingWorks.glassChild'),
@@ -333,15 +341,33 @@
      filterMethod: filterChanged, width: 120
    },
  ],//表头按钮
//表单验证
  editRules: {
    printQuantity: [
      {
        validator ({ row }) {
          const regex = /^[0-9]\d*$/
          const printQuantity =
              (row.printQuantity === undefined || row.printQuantity===null || row.printQuantity==='') ? 0 : row.printQuantity
           if(!regex.test(printQuantity)){
             return new Error(t('reportingWorks.enterIntegerGreaterThanEqualTo'))
          }
          else if(row.quantity<printQuantity){
            return new Error(t('processCard.printWarn1'))
          }
        }
      }
    ]
  },
  toolbarConfig: {
    buttons: [
      {code: 'print', name: t('processCard.print'), status: 'primary'},
      {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
      {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
      {code: 'printLabel3', name: '成品打印2', status: 'primary'},
      {code: 'printTest', name: "可编辑打印", status: 'primary'},
      {code: 'printLabel3', name: t('processCard.finishedProductPrinting2'), status: 'primary'},
      {code: 'printTest', name: t('processCard.editablePrinting'), status: 'primary'},
      {code: 'invertSelection', name: t('processCard.invertSelection'), status: 'primary'},
      // {code: 'printLike', name: "同配置打印", status: 'primary'},
    ],
    // import: false,
@@ -371,7 +397,7 @@
})
const gridEvents = {
  toolbarButtonClick({code}) {
  async toolbarButtonClick({code}) {
    const $grid = xGrid.value
    selectRecords = $grid.getCheckboxRecords()
    // selectRecords.forEach(obj => {
@@ -421,7 +447,7 @@
          }
          router.push({
            path: '/main/processCard/PrintLabel',
            query: {printList: JSON.stringify(selectRecords),printType:2}
            query: {printList: JSON.stringify(selectRecords), printType: 2}
          })
          break
@@ -442,7 +468,7 @@
          }
          router.push({
            path: '/main/processCard/PrintCustomLabelSemi2',
            query: {printList: JSON.stringify(selectRecords),printType:2}
            query: {printList: JSON.stringify(selectRecords), printType: 2}
          })
          break
@@ -510,7 +536,7 @@
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords),
                  printType:2
                  printType: 2
                }
              })
            }
@@ -531,7 +557,7 @@
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords),
                  printType:2
                  printType: 2
                }
              })
            }
@@ -543,7 +569,7 @@
                faceOrientation: faceOrientation,
                lableType: lableTypes,
                printList: JSON.stringify(selectRecords),
                printType:2
                printType: 2
              }
            })
@@ -578,6 +604,11 @@
          break
        }
        case 'printTest': {
          const errMap = await $grid.validate(true)
          if (errMap) {
            ElMessage.error(t('basicData.msg.checkoutLose'))
            return
          }
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
@@ -626,15 +657,32 @@
          labelRow.value.faceOrientation = faceOrientation
          labelRow.value.type = type
          labelRow.value.lableType = lableTypes
          labelRow.value.dataType=1
          let columnsLabel=company.printLabel.columnsLabel
          if (columnsLabel==1){
          labelRow.value.dataType = 1
          let columnsLabel = company.printLabel.columnsLabel
          if (columnsLabel == 1) {
            dialogTableVisibleLabelXJTwo.value = true
          }else {
          } else {
            dialogTableVisibleLabelXJ.value = true
          }
          break
        }
        case 'invertSelection': {
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          let tableData = $grid.getTableData().fullData;
          // 假设你的 Vxe Table 引用为 xTable
          const tableRef = $grid;
          // 获取当前选中的记录
          //const selectedRecords = tableRef.getCheckboxRecords();
          const allRecords = $grid.getTableData().fullData; // 替换为实际的数据源
          allRecords.forEach(record => {
            tableRef.toggleCheckboxRow(record);
          });
        }
      }
    }
@@ -655,7 +703,7 @@
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2';
    } else {
      return true && button.code !== 'printLike' && button.code !== 'printLabel3'&& button.code !== 'printTest'; // 显示该按钮
      return true && button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; // 显示该按钮
    }
  })
}
@@ -714,13 +762,17 @@
    </el-select>
    <vxe-grid
        ref="xGrid"
        :checkbox-config="{labelField: 'name', highlight: true, range: true}"
        :column-config="{resizable: true}"
        :data="tableData"
        :row-config="{isCurrent: true, isHover: true}"
        class="mytable-scrollbar"
        height="100%"
        v-bind="gridOptions"
        v-on="gridEvents"
        v-on="gridEvents">
    >
      >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
      <!--      下拉显示所有信息插槽-->
      <template #content="{ row }">
@@ -751,7 +803,8 @@
          <div v-for="(option, index) in column.filters" :key="index">
            <input v-model="option.data"
                   type="text"
                   @input="changeFilterEvent($event, option, $panel)"/>
                   @input="changeFilterEvent($event, option, $panel)"
                   @keyup.enter.native="$panel.confirmFilter()"/>
          </div>
        </div>
      </template>
@@ -787,9 +840,9 @@
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
      </template>
      <print-custom-label id="childLabel"
                          :lastList = 'lastList'
                          :faceOrientation="labelRow.faceOrientation"
                          :lableType="labelRow.lableType"
                          :lastList='lastList'
                          :list="labelRow.list"
                          :type="labelRow.type"
                          style="width: 100%;height: 100%"/>
@@ -820,24 +873,25 @@
        :title="$t('processCard.processCardDetails')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" :process="editRow.process"/>
      <sort-detail id="child" :process="editRow.process" :processId="editRow.processId"
                   :technologyNumber="editRow.technologyNumber"/>
    </el-dialog>
    <!--   标签样式    -->
    <el-dialog
        id="titleStyle"
        :title="$t('processCard.labelStyle')"
        style="width: 90%;height:93%;margin-top: 3vh "
        v-model="titleStyleVisible"
        :close-on-click-modal="false"
        :close-on-press-escape="false"
        :title="$t('processCard.labelStyle')"
        destroy-on-close
        v-model="titleStyleVisible">
        style="width: 90%;height:93%;margin-top: 3vh ">
      <!--      <tag-style style="width: 100%;height: 100%"/>-->
      <tag-style-designer style="width: 100%;height: 100%"
                          :faceOrientation="labelRow.faceOrientation"
      <tag-style-designer :faceOrientation="labelRow.faceOrientation"
                          :lableType="labelRow.lableType"
                          :list="labelRow.list"
                          :type="labelRow.type"/>
                          :type="labelRow.type"
                          style="width: 100%;height: 100%"/>
    </el-dialog>
    <!--    成品标签两列-->
@@ -869,12 +923,12 @@
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
      </template>
      <print-custom-label-x-j-two id="childLabel"
                              :faceOrientation="labelRow.faceOrientation"
                              :lableType="labelRow.lableType"
                              :list="labelRow.list"
                              :type="labelRow.type"
                              :dataType="labelRow.dataType"
                              style="width: 100%;height: 100%"/>
                                  :dataType="labelRow.dataType"
                                  :faceOrientation="labelRow.faceOrientation"
                                  :lableType="labelRow.lableType"
                                  :list="labelRow.list"
                                  :type="labelRow.type"
                                  style="width: 100%;height: 100%"/>
    </el-dialog>
  </div>
</template>