huang
2024-11-12 54c2f0fda44123782e5241ff7d1ad6e81c95f2b2
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -14,6 +14,7 @@
import PrintCustomLabel from '@/components/pp/PrintCustomLabelDetails.vue'
import PrintCustomLabelSemi from '@/components/pp/PrintCustomLabelSemi.vue'
import PrintCustomLabelXJ from '@/components/pp/PrintCustomLabelTwo.vue'
import PrintCustomLabelXJTwo from '@/components/pp/PrintCustomLabelXJTwo.vue'
import SortDetail from '@/components/pp/SelectSortDetailProcessCard.vue'
import footSum from "@/hook/footSum"
import companyInfo from "@/stores/sd/companyInfo"
@@ -30,10 +31,11 @@
const dialogTableVisibleLabel = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
const dialogTableVisibleLabelXJ = ref(false)
const dialogTableVisibleLabelXJTwo = ref(false)
const printVisible = ref(false)
let selectRecords = ref(null)
let titleStyleVisible = ref(false)
let lastList = ref([])
const selectRecordsData = ref({
  printList: []
})
@@ -45,7 +47,7 @@
let editRow = ref({
  processId: null,
  technologyNumber: null,
  process:null
  process: null
})
//打印
@@ -60,7 +62,8 @@
  list: null,//勾选的数据
  faceOrientation: null,//内外面
  type: null,//标签模板
  lableType: null//标签类型
  lableType: null,//标签类型
  dataType: null//标签类型
})
@@ -123,7 +126,18 @@
    value: '1',
    label: t('processCard.finishedProductLabel'),
  },
  /*  {
      value: '2',
      label: t('processCard.halfProductLabel'),
    },*/
  {
    value: `${company.printLabel.labelValue}`,
    label: `${company.printLabel.labelType}`,
  },
  {
    value: `${company.printLabel.labelValue3}`,
    label: `${company.printLabel.labelType3}`,
  },
]
let hidePrintLabels = company.printLabel.hideButton;
@@ -168,10 +182,10 @@
let orderId = route.query.orderId
data.value.printList = JSON.parse(route.query.printList)
let type = parseInt(route.query.type)
let inquiryMode = route.query.checkedValue
// 第一次加载查询
request.post(`/processCard/selectPrintDetails/${inquiryMode}`, data.value).then((res) => {
request.post(`/processCard/selectPrintDetails/${inquiryMode}/${type}`, data.value).then((res) => {
  if (res.code == 200) {
    let newDataCollection = [];
@@ -227,7 +241,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
    // remote: true
                    // remote: true
  },
  customConfig: {
    storage: true
@@ -277,18 +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
    },
    {
      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'),
@@ -312,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,
@@ -350,7 +397,7 @@
})
const gridEvents = {
  toolbarButtonClick({code}) {
  async toolbarButtonClick({code}) {
    const $grid = xGrid.value
    selectRecords = $grid.getCheckboxRecords()
    // selectRecords.forEach(obj => {
@@ -398,7 +445,10 @@
              id += selectRecords[i].id + "|"
            }
          }
          router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}})
          router.push({
            path: '/main/processCard/PrintLabel',
            query: {printList: JSON.stringify(selectRecords), printType: 2}
          })
          break
        }
@@ -418,7 +468,7 @@
          }
          router.push({
            path: '/main/processCard/PrintCustomLabelSemi2',
            query: {printList: JSON.stringify(selectRecords)}
            query: {printList: JSON.stringify(selectRecords), printType: 2}
          })
          break
@@ -470,21 +520,23 @@
            }
          }
          if (lableTypes == 1) {
            console.log(company.label)
            labelRow.value.list = JSON.stringify(selectRecords)
            labelRow.value.faceOrientation = faceOrientation
            labelRow.value.type = type
            labelRow.value.lableType = lableTypes
            lastList.value = []
            if (company.label === 1) {
              dialogTableVisibleLabel.value = true
            } else if (company.label === 2) {
              router.push({
                path: '/main/processCard/PrintCustomLabel',
                path: '/main/processCard/PrintCustomLabelCZ',
                query: {
                  type: type,
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords)
                  printList: JSON.stringify(selectRecords),
                  printType: 2
                }
              })
            }
@@ -494,16 +546,18 @@
            labelRow.value.faceOrientation = faceOrientation
            labelRow.value.type = type
            labelRow.value.lableType = lableTypes
            lastList.value = []
            if (company.label === 1) {
              dialogTableVisibleCustomLabel.value = true
            } else if (company.label === 2) {
              router.push({
                path: '/main/processCard/PrintCustomLabelSemi',
                path: '/main/processCard/PrintCustomLabelSemiCZ',
                query: {
                  type: type,
                  faceOrientation: faceOrientation,
                  lableType: lableTypes,
                  printList: JSON.stringify(selectRecords)
                  printList: JSON.stringify(selectRecords),
                  printType: 2
                }
              })
            }
@@ -514,7 +568,8 @@
                type: type,
                faceOrientation: faceOrientation,
                lableType: lableTypes,
                printList: JSON.stringify(selectRecords)
                printList: JSON.stringify(selectRecords),
                printType: 2
              }
            })
@@ -549,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
@@ -597,8 +657,32 @@
          labelRow.value.faceOrientation = faceOrientation
          labelRow.value.type = type
          labelRow.value.lableType = lableTypes
          dialogTableVisibleLabelXJ.value = true
          labelRow.value.dataType = 1
          let columnsLabel = company.printLabel.columnsLabel
          if (columnsLabel == 1) {
            dialogTableVisibleLabelXJTwo.value = true
          } 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);
          });
        }
      }
    }
@@ -619,7 +703,7 @@
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2';
    } else {
      return true && button.code !== 'printLike'; // 显示该按钮
      return true && button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; // 显示该按钮
    }
  })
}
@@ -678,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 }">
@@ -715,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>
@@ -753,6 +842,7 @@
      <print-custom-label id="childLabel"
                          :faceOrientation="labelRow.faceOrientation"
                          :lableType="labelRow.lableType"
                          :lastList='lastList'
                          :list="labelRow.list"
                          :type="labelRow.type"
                          style="width: 100%;height: 100%"/>
@@ -783,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>
    <!--    成品标签两列-->
@@ -820,6 +911,25 @@
                              :type="labelRow.type"
                              style="width: 100%;height: 100%"/>
    </el-dialog>
    <!--    成品标签两列新疆-->
    <el-dialog
        id="sizeCustom"
        v-model="dialogTableVisibleLabelXJTwo"
        :title="$t('processCard.printLabel')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
      </template>
      <print-custom-label-x-j-two id="childLabel"
                                  :dataType="labelRow.dataType"
                                  :faceOrientation="labelRow.faceOrientation"
                                  :lableType="labelRow.lableType"
                                  :list="labelRow.list"
                                  :type="labelRow.type"
                                  style="width: 100%;height: 100%"/>
    </el-dialog>
  </div>
</template>
@@ -833,6 +943,7 @@
:deep(#sizeCheck .el-dialog__body) {
  height: 90%;
  width: 100%;
  overflow-y: auto;
}
:deep(#sizePrintCalrd .el-dialog__body) {
@@ -854,7 +965,7 @@
}
:deep(#titleStyle .el-dialog__body) {
  height: 95%;
  height: 85%;
  width: 100%;
  overflow-y: auto;
}