chenlu
8 天以前 4b2d55c8bde56676b4afdb41436a24763e0f8cca
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -21,6 +21,7 @@
import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue";
import {hiprint} from "vue-plugin-hiprint";
import {createTemplate} from "@/hook/createTemplateTag"
const company = companyInfo()
@@ -180,12 +181,14 @@
const data = ref({
  printList: []
})
let hiprintTemplate = ref(null)
onMounted(async () => {
  await getTags();
  await hiprint.init();
})
let hiprintTemplate = ref()
const tags = ref([])
@@ -201,26 +204,50 @@
const changeTag = () => {
  hiprintTemplate.value = new hiprint.PrintTemplate({});
  const json = JSON.parse(tag.value.value)
  hiprintTemplate.value.design("#hiprint-printTemplate1",{grid:true});
  const json = tag.value.value
  hiprintTemplate.value.update(json)
}
const getTags = () => {
  request.get('tagStyle/getTagList').then(res => {
    res.data.forEach(item => {
      item.value = JSON.parse(item.value)
    })
    tags.value = res.data
  })
}
const printOrder = (type) => {
  const list = hiprintTemplate.value.getJson()
  printNumber()
  const list = tag.value.value
  list.panels[0].printElements.forEach(element => {
    element.options.fontFamily = 'Arial'
    if( element.options.field !== undefined){
      if(type===3 ){
        element.options.hideTitle = true
      }
    }
    if(type!==3){
      element.options.hideTitle = false
      if( element.options.field === undefined){
        element.options.hideTitle = true
      }
    }
  })
  let object =  lastList.value
  //hiprintTemplate.value.update(list)
  let object =  JSON.parse(JSON.stringify(lastList.value))
  //判断是否为表格
  let columnsNum = null
  if(list.panels[0].printElements[0].options.field==='table'){
    object = {table:lastList.value}
    columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1)
  }
  //判断是否有 嵌套自定义纸张
  if(tag.value.tagHeight && tag.value.tagWidth){
    const print =createTemplate(list,object,tag.value.tagWidth,tag.value.tagHeight)
    hiprintTemplate.value.update(print.template)
    object = print.printData
  }
  hiprintTemplate.value.print(object)
@@ -822,7 +849,7 @@
const printNumber = () => {
  selectRecordsData.value.printList = selectRecords
  request.post(`/processCard/updatePrintNumber`, selectRecordsData.value).then((res) => {
  request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
@@ -941,7 +968,7 @@
        destroy-on-close
        style="width: 75%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/>
        <el-button v-print="printContent" :icon="Printer" circle />
      </template>
      <print-process
          id="child"
@@ -978,7 +1005,7 @@
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabelSemi" :icon="Printer" circle/>
        <el-button v-print="printContentLabelSemi" :icon="Printer" circle @click="printNumber"/>
      </template>
      <print-custom-label-semi id="childLabelSemi"
                               :faceOrientation="labelRow.faceOrientation"
@@ -1025,7 +1052,24 @@
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button :icon="Printer" circle @click="printOrder(1)"/>
        <el-tooltip
            class="box-item"
            effect="dark"
            :content="$t('processCard.yesTitle')"
            placement="top"
        >
          <el-button :icon="Printer" circle @click="printOrder(1)"/>
        </el-tooltip>
        <el-tooltip
            class="box-item"
            effect="dark"
            :content="$t('processCard.noTitle')"
            placement="top"
        >
          <el-button @click="printOrder(3)">
            <i class="vxe-icon-print"></i>
          </el-button>
        </el-tooltip>
      </template>
      <print-custom-label-x-j id="childLabel"
                              :faceOrientation="labelRow.faceOrientation"