廖井涛
2024-06-26 c46cb6a71c35f38c7f23a2d01ad686f46a3d0e0b
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -11,14 +11,15 @@
import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove";
import PrintProcess from '@/views/pp/processCard/PrintProcess.vue'
import PrintLabel from '@/views/pp/processCard/PrintLabel.vue'
import PrintCustomLabel from '@/views/pp/processCard/PrintCustomLabel.vue'
import footSum from "@/hook/footSum"
//语言获取
const {t} = useI18n()
let router = useRouter()
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
const printVisible= ref(false)
const dialogTableVisibleSetup = ref(false)
let selectRecords = ref(null)
const xGrid = ref(null)
@@ -61,13 +62,7 @@
})
let filterDataPrint  =ref( {})
let printSetupDate = {
  id:'',
  printType:'',
  printTypeName:'',
  printState:''
}
//定义页面总页数
let pageTotal = ref('')
//定义数据返回结果
@@ -77,6 +72,45 @@
//定义当前页数
let pageNum = $ref(1)
let pageState = null
//室内室外面
const stateValue = ref('')
const stateOptions = [
  {
    value: t('processCard.thisIsTheIndoorSurface'),
    label: t('processCard.thisIsTheIndoorSurface'),
  },
  {
    value: t('processCard.thisSideIsOutsideTheRoom'),
    label: t('processCard.thisSideIsOutsideTheRoom'),
  },
]
//室内室外面
const lableType = ref('1')
const lableTypeOptions = [
  {
    value: '1',
    label: t('processCard.finishedProductLabel'),
  },
  {
    value: '2',
    label: t('processCard.halfProductLabel'),
  },
]
//合片流程卡打印下拉选项
const printMerge = ref('')
const printMergeOptions=[{}]
//打印类型
const printType = ref()
//定义接收加载表头下拉数据
const titleSelectJson = ref({
  dataType: [],
})
const {currentRoute} = useRouter()
const route = currentRoute.value
@@ -88,6 +122,7 @@
  if (res.code == 200) {
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.dataType = res.data.type
    xGrid.value.reloadData(produceList)
    gridOptions.loading = false
  } else {
@@ -95,13 +130,6 @@
  }
})
request.post(`/processCard/printSetup`, filterDataPrint.value).then((res) => {
  if (res.code == 200) {
    printSetupDate = deepClone(res.data.data)
  } else {
    ElMessage.warning(res.msg)
  }
})
//表尾求和
const sumNum = (list, field) => {
@@ -151,7 +179,7 @@
  },//表头参数
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {title: '操作', width: 55, slots: { default: 'button_slot' },fixed:"left"},
    {title: t('basicData.operate'), width: 55, slots: { default: 'button_slot' },fixed:"left"},
    {type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
@@ -196,8 +224,7 @@
  toolbarConfig: {
    buttons: [
      {code: 'print', name: t('processCard.print'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.printLabel'), status: 'primary'},
      {code: 'printSetup', name:  t('processCard.printSetup'),status: 'primary'},
      {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
    ],
    // import: false,
@@ -228,6 +255,9 @@
  toolbarButtonClick ({ code}) {
    const $grid = xGrid.value
    selectRecords = $grid.getCheckboxRecords()
    let type=printType.value
    let faceOrientation=stateValue.value
    let lableTypes=lableType.value
    if ($grid) {
      switch (code) {
        case 'print': {
@@ -244,7 +274,7 @@
              id += selectRecords[i].id + "|"
            }
          }
          router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords)}})
          router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMerge.value}})
          break
        }
@@ -267,10 +297,6 @@
          break
        }
        case 'printSetup': {
          dialogTableVisibleSetup.value=true
          break
        }
        case 'sort': {
          const $table = xGridDetail.value
          let data = $table.getTableData().fullData
@@ -279,7 +305,7 @@
          })
          request.post("/processCard/printSort", flowCardData.value).then((res) => {
            if (res.code == 200) {
              ElMessage.success("排序成功")
              ElMessage.success(t('processCard.sortingSuccessful'))
              //router.push('/main/processCard/SplittingDetails?orderId=${orderId}')
              router.push({
                path: '/main/processCard/PrintFlowCard',
@@ -293,31 +319,42 @@
          })
          break
        }
        case 'customLabel': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (type===null||type===''||type===undefined){
            ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
            return
          }
          let id = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
              id += selectRecords[i].id
            } else {
              id += selectRecords[i].id + "|"
            }
          }
          if (lableTypes==1){
            router.push({path: '/main/processCard/PrintCustomLabel', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          }
          else {
            router.push({path: '/main/processCard/PrintCustomLabelSemi', query: {type:type,faceOrientation:faceOrientation,lableType:lableTypes,  printList: JSON.stringify(selectRecords)}})
          }
          break
        }
      }
    }
  },
}
let checkbox= ref({
  customerName:0,
  orderId:0,
  typeName:0,
  specifications:0,
  project:0,
  remarks:0,
  glassChild:0,
  processingNote:0,
})
const changeDate =  ()=>{
  request.post(`/processCard/updatePrintSetup`, checkbox.value).then((res) => {
    if (res.code == 200) {
      dialogTableVisibleSetup.value=false
    } else {
      ElMessage.warning(res.msg)
    }
  })
const detailGridOptions = reactive({
@@ -356,60 +393,60 @@
      field: 'sort',
      width: 80,
      editRender: {name: 'input', attrs: {placeholder: ''}},
      title: '排序',
      title: t('processCard.sorting'),
    },
    {
      field: 'process_id',
      title: '流程卡号',
      title: t('processCard.processId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'order_number',
      title: '序号',
      title: t('order.OrderNum'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'technology_number',
      title: '小片顺序',
      title: t('processCard.technologyNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'glass_address',
      title: '小片标记',
      title: t('processCard.glassAddress'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'quantity',
      title: '数量',
      title: t('order.quantity'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'child_width',
      title: '宽',
      title: t('order.width'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'child_height',
      title: '高',
      title: t('order.height'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'area',
      title: '面积',
      title: t('order.area'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
@@ -418,7 +455,7 @@
  toolbarConfig: {
    buttons: [
      {code: 'sort', name: '排序', status: 'primary'},
      {code: 'sort', name: t('processCard.sorting'), status: 'primary'},
    ],
    // import: false,
    // export: true,
@@ -448,12 +485,41 @@
  let detail =ref(produceDetailList.value)
  xGridDetail.value.reloadData(detail.value)
}
}
</script>
<template>
  <div class="main-div-customer">
    <el-input clearable placeholder="合并打印" v-model="printMerge" style="width: 90px"></el-input>
    &nbsp;
    <label>{{$t('processCard.labelStyle')}}:</label>
    <el-select v-model="printType" clearable default-value="default_city" :placeholder="$t('processCard.pleaseSelect')" style="width: 120px">
      <el-option
          v-for="item in titleSelectJson['dataType']"
          :key="item.id"
          :label="item.name"
          :value="item.name"
      />
    </el-select>
    &nbsp;
    <el-select v-model="lableType" class="m-2" :placeholder="lableTypeOptions[0].label" style="width: 140px">
      <el-option
          v-for="item in lableTypeOptions"
          :key="item.value"
          :label="item.label"
          :value="item.value"
      />
    </el-select>
    &nbsp;
    <el-select v-model="stateValue" class="m-2" placeholder='' clearable allow-create filterable style="width: 140px">
      <el-option
          v-for="item in stateOptions"
          :key="item.value"
          :label="item.label"
          :value="item.value"
      />
    </el-select>
    <vxe-grid
        ref="xGrid"
        class="mytable-scrollbar"
@@ -520,9 +586,18 @@
    </el-dialog>
    <el-dialog
        v-model="dialogTableVisibleCustomLabel"
        destroy-on-close
        :title="$t('processCard.labelStyle')"
        style="width: 80%;height:75% ">
      <PrintLabel :printList="selectRecords"
                  style="width: 100%;height: 100%" />
    </el-dialog>
    <el-dialog
        @opened="openedTable"
        v-model="printVisible"
        title="流程卡明细"
        :title="$t('processCard.processCardDetails')"
        :close-on-click-modal="false"
        :close-on-press-escape="false"
        style="width: 80%;height:75% ">
@@ -559,24 +634,6 @@
      </vxe-grid>
    </el-dialog>
    <el-dialog v-model="dialogTableVisibleSetup" :title="$t('processCard.printSetup')" style="width: 70%;height:75% ">
      <div>
        <el-button @click="changeDate"   id="searchButton" type="primary" >{{ $t('basicData.save') }}</el-button>
      </div>
      <div class="order-primary" >
        <el-checkbox v-model="checkbox.customerName" :checked="printSetupDate[0].printState===1">{{ $t('customer.customerName') }}</el-checkbox>
        <el-checkbox v-model="checkbox.project" :checked="printSetupDate[1].printState===1">{{ $t('order.project') }}</el-checkbox>
        <el-checkbox v-model="checkbox.orderId" :checked="printSetupDate[6].printState===1">{{ $t('order.orderId') }}</el-checkbox>
        <el-checkbox v-model="checkbox.specifications" :checked="printSetupDate[2].printState===1">{{ $t('processCard.specificationQuantity') }}</el-checkbox>
        <el-checkbox v-model="checkbox.remarks" :checked="printSetupDate[3].printState===1">{{ $t('order.floorNumber') }}</el-checkbox>
        <el-checkbox v-model="checkbox.processingNote" :checked="printSetupDate[4].printState===1">{{ $t('order.processingNote') }}</el-checkbox>
        <el-checkbox v-model="checkbox.glassChild" :checked="printSetupDate[5].printState===1">{{ $t('processCard.singlePieceProductName') }}</el-checkbox>
        <el-checkbox v-model="checkbox.typeName" :checked="printSetupDate[7].printState===1">{{ $t('processCard.productType') }}</el-checkbox>
      </div>
    </el-dialog>
  </div>
</template>