huang
2024-11-12 54c2f0fda44123782e5241ff7d1ad6e81c95f2b2
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
@@ -9,17 +9,35 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import footSum from "@/hook/footSum"
import TagStyle from "@/components/pp/TagStyle.vue"
import PrintCustomLabelXJTwo from '@/components/pp/PrintCustomLabelXJTwo.vue'
import {Printer} from "@element-plus/icons-vue/global";
import companyInfo from "@/stores/sd/companyInfo"
import {remove} from "xe-utils";
//语言获取
const {t} = useI18n()
let router = useRouter()
const dialogTableVisibleLabelXJTwo = ref(false)
let rowClickIndex = ref(null)
//定义数据返回结果
let produceList = ref([])
let titleStyleVisible = ref(false)
let print = ref("1")
//标签
let labelRow = ref({
  list: null,//勾选的数据
  faceOrientation: null,//内外面
  type: "",//标签模板
  lableType: null,//标签类型
  dataType: 0,//标签类型
  projectNo:null
})
const company = companyInfo()
let hidePrintLabels = company.printLabel.hideButton;
const form = reactive({
  date1: '',
@@ -29,7 +47,12 @@
const getTableRow = (row, type) => {
  switch (type) {
    case 'edit' :{
      router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:1 }})
      if(parseInt(print.value)==1){
        router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:1 }})
      }else{
        router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: { projectNo: row.project_no,type:1 }})
      }
      break
    }
    case 'edit1' :{
@@ -60,11 +83,11 @@
//获取七天前到当前时间
function getNowTime() {
  const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 15)
  const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 14)
      .toISOString()
      .replace('T', ' ')
      .slice(0, 10) //默认开始时间7天前
  const end = new Date(new Date().getTime() + 3600 * 1000 * 24)
  const end = new Date(new Date().getTime())
      .toISOString()
      .replace('T', ' ')
      .slice(0, 10)//默认结束时间当前时间
@@ -83,6 +106,25 @@
request.post(`/processCard/selectPrintPrintProject/${startTime}/${endTime}`, filterData.value).then((res) => {
  if (res.code == 200) {
    if(hidePrintLabels=="true"){
      //删除下拉框
      remove(gridOptions.toolbarConfig.slots)
      const button = {'code': 'printLabel',
        status: 'primary',
        'name': t('processCard.finishedProductPrinting2')}
      let name=company.companyName
      if (name != '金华福喜天成玻璃有限公司') {
        gridOptions.toolbarConfig.buttons.push(button)
      }
      const button2 = {'code': 'detailPrinting',
        status: 'primary',
        'name': t('processCard.detailPrinting')}
      gridOptions.toolbarConfig.buttons.push(button2)
    }
    produceList.value = deepClone(res.data.data)
    xGrid.value.reloadData(produceList.value)
    gridOptions.loading = false
@@ -170,7 +212,9 @@
  toolbarConfig: {
    buttons: [
    ],
    slots:{
      buttons: "toolbar_buttons"
    },
    zoom: true,
    custom: true
  },
@@ -202,11 +246,51 @@
          titleStyleVisible.value = true
          break
        }
        case 'printLabel': {
          if(rowClickIndex.value===null){
            ElMessage.warning(t('processCard.pleaseSelectProject'))
            return
          }
          labelRow.value.type = '恒鑫'
          labelRow.value.dataType=2
          labelRow.value.projectNo=rowClickIndex.value.project_no
          dialogTableVisibleLabelXJTwo.value = true
          break
        }
        case 'detailPrinting': {
          if(rowClickIndex.value===null){
            ElMessage.warning(t('processCard.pleaseSelectProject'))
            return
          }
          router.push({path: '/main/processCard/PrintProjectDetails', query: {projectNo: rowClickIndex.value.project_no}})
          //dialogTableVisibleLabelXJTwo.value = true
          break
        }
      }
    }
  },
  cellClick({ row }){
    rowClickIndex.value = row
  }
}
const printContentLabel = ref({
  id: 'childLabel',
})
const hideButton = () => {
  let name=company.companyName
  // 根据条件值 hidePrintLabels 过滤按钮数组
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // 这里根据 hidePrintLabels 的值决定是否隐藏 printLabel 和 printLabel2
    if (name == '金华福喜天成玻璃有限公司') {
      return button.code !== 'printLabel';
    }
  })
}
</script>
<template>
@@ -259,10 +343,21 @@
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input v-model="option.data" type="text" @input="changeFilterEvent($event, option, $panel)"/>
            <input v-model="option.data" type="text"
                   @keyup.enter.native="$panel.confirmFilter()"
                   @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
      <template #toolbar_buttons>
        <vxe-select @change="changeOrderType" v-model="print" >
          <vxe-option value="1" label="EPSON LQ-82KF ESC/P2"></vxe-option>
          <vxe-option value="2" label="TSC TTP-244Pro"></vxe-option>
        </vxe-select>
      </template>
    </vxe-grid>
@@ -275,9 +370,28 @@
        v-model="titleStyleVisible">
      <tag-style 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%;overflow: auto ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
      </template>
      <print-custom-label-x-j-two id="childLabel"
                                  :faceOrientation="labelRow.faceOrientation"
                                  :type="labelRow.type"
                                  :dataType="labelRow.dataType"
                                  :projectNo="labelRow.projectNo"
                                  style="width: 100%;height: 100%"/>
    </el-dialog>
  </div>
</template>
<style scoped>
.main-div-customer {
  width: 99%;