廖井涛
2025-03-21 b8982b86a15d186c4cf6144fface700d9769fa95
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -6,7 +6,8 @@
import {useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from 'vue-i18n'
import deepClone from "@/utils/deepClone";
import deepClone from "@/utils/deepClone"
import companyInfo from "@/stores/sd/companyInfo"
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -18,7 +19,8 @@
const data = ref({
  printList: []
})
let remarks = ref('')
const company = companyInfo()
@@ -28,7 +30,17 @@
projectNo.value = route.query.projectNo
type.value = route.query.type
onMounted(() => {
      if (localStorage.getItem('hasRefreshed')=="false") {
        // 设置标志,表示已经刷新过
        localStorage.setItem('hasRefreshed', 'true');
        // 执行刷新操作
        location.reload();
      }else{
        localStorage.setItem('hasRefreshed', 'false');
      }
  if(projectNo.value!=null){
    request.post(`/processCard/getSelectPrintLabel/${projectNo.value}/${type.value}`).then((res) => {
      if (res.code == 200) {
@@ -39,7 +51,6 @@
      }
    })
  }else{
    console.log(printType)
    if (printType == 1) {
      data.value.printList = JSON.parse(route.query.printList)
      request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
@@ -55,6 +66,7 @@
            }
          }
          console.log(labelList.value)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -82,8 +94,6 @@
    }
  }
}
@@ -131,56 +141,121 @@
      body.removeChild(content);
      body.removeChild(style);
    }, 20);
    request.post(`/processCard/updateProjectLabelPrintCount/${projectNo.value}`).then((res) => {
      if(res.code==='200'){
        ElMessage.info(t('order.printingNumber')+':'+res.data)
      }
    })
  }
</script>
<template>
  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
  <el-input v-if="!company.showDeliveryCreator" v-model="remarks" style="background-color: transparent;border: none;margin-top: -20px;width: 100px"/>
  <div id="printFlowCard" >
<!--    <div id="entirety" v-for="(items,id) in produceList" >
      <div v-for="(item,index) in items.data" :key="index">
        <div class="row1">{{ item.customer_name }}</div>
        <div  class="row2">
          <span>{{ item.order_id }}</span>
          <span>{{ item.type_name }}</span>
        </div>
        <div class="row3">{{item.child_width}}*{{item.child_height}}={{item.quantity}}</div>
        <div class="row5">
          <span>{{item.project}}</span>
          <span>{{ item.remarks }}</span>
        </div>
        <div class="row6">
          <span>{{item.glass_child}}</span>
          <span>{{item.processing_note}}</span>
        </div>
<!--     半成品标签-->
    <template v-for="(item,id) in labelList">
    <div v-if="type!=='3'" id="entirety" >
      <div class="row1" >
<!--钢化版图序号,钢化版图里的顺序-->
<!--        <div class="cell" v-if="item.heat_layout_id!==undefined">{{ item.heat_layout_id }}/{{ item.heat_layout_sort }}</div>-->
        <span>{{ item.customer_name }}</span>&nbsp;
        <span>{{ item.order_id }}</span>&nbsp;
        <span v-if="item.process.includes('夹胶')||item.process.includes('夹层')">胶片</span>
        <span v-else-if="item.process.includes('中空')">中空</span>
        <span v-else-if="item.process.includes('百叶')">百叶</span>
        <span v-else></span>
<!--stock_id 版图-->
<!--        <div class="cell1" v-if="item.stock_id!=undefined">{{ item.stock_id+'/'+item.polys_id }}</div>-->
      </div>
    </div>-->
    <div id="entirety" v-for="(item,id) in labelList" >
        <div class="row1">
          <div class="cell" v-if="item.heat_layout_id!=null">{{ item.heat_layout_id }}/{{ item.heat_layout_sort }}</div>
          <span>{{ item.customer_name }}</span>&nbsp;
          <span>{{ item.order_id }}</span>&nbsp;
          <span v-if="item.process.includes('夹胶')">胶片</span>
          <span v-else-if="item.process.includes('中空')">中空</span>
          <span v-else-if="item.process.includes('百叶')">百叶</span>
          <span v-else></span>
          <div class="cell1" v-if="item.stock_id!=null">{{ item.stock_id }}</div>
      <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
        {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
      </div>
      <div class="row3" v-else>
        <span v-if="item.heat_layout_id!==undefined && company.showDeliveryCreator"  style="font-size: 7pt;">
          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
        <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
        {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
      </div>
      <div class="row5">
        <span>{{item.project}}</span>&nbsp;
        <span>{{item.building_number?item.building_number.replace(/\r|\n|\s/g,''):''}}</span>&nbsp;
        <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>&nbsp;
      </div>
      <div class="row6">
        <span>{{item.glass_child}}</span>&nbsp;
        <span v-if="company.showDeliveryCreator" style="font-size: 10pt" >{{item.processing_note}}</span>
        <span v-else style="font-size: 6pt">{{item.processing_note}}</span>
        <br v-if="!company.showDeliveryCreator" />
        <span v-if="!company.showDeliveryCreator" style="font-size: 6pt;margin-top: -10px">{{item.product_name}}</span>
      </div>
    </div>
    <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
    </template>
<!--成品名称-->
    <template v-if="type==='3'"  v-for="(item,id) in labelList">
      <div v-if="type==='3'" id="entirety" v-for="n in item.quantity" >
        <div class="row1" v-if="item.heat_layout_id!=null">
          <span style="font-size: 8pt">{{ item.customer_name }}</span>&nbsp;
        </div>
        <div class="row2" v-else>
          <span style="font-size: 8pt">{{ item.customer_name }}</span>&nbsp;
        </div>
        <div class="row2" style="font-size: 8pt" >{{item.order_id}}
          <span style="font-size: 8pt">{{ remarks }}</span>&nbsp;
        </div>
        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">
        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
          ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
          <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
          {{JSON.parse(item.other_columns).S02}}={{item.quantity}}
        </div>
        <div class="row3" v-else>
        <span v-if="item.heat_layout_id!==null && company.showDeliveryCreator"  style="font-size: 7pt;">
         ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
        </span>
          <span v-if="item.stock_id!==null && !company.showDeliveryCreator"  style="font-size: 7pt">
              {{ item.stock_id }}/{{ item.polys_id }}
        </span>
          {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
        </div>
        <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
        <div class="row3" v-else>{{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}</div>
        <div class="row5">
          <span>{{item.project}}</span>&nbsp;
          <span>{{ item.building_number }}</span>
          <span style="white-space: pre-wrap;font-size: 8pt">{{ item.building_number?item.building_number.replace(/\r|\n|\s/g,''):'' }}</span>
          <span v-if="item.bend_radius!=null">R={{item.bend_radius}}</span>
        </div>
        <div class="row6">
          <span>{{item.glass_child}}</span>&nbsp;
          <span>{{item.processing_note}}</span>
          <span style="font-size: 10pt">{{item.glass_child}}</span>&nbsp;
        </div>
    </div>
      </div>
      <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
    </template>
  </div>
</template>
@@ -206,8 +281,8 @@
#entirety{
  text-align: center;
  width: 180px;
  height: 87px;
  margin-bottom: 10px;
  height: 90px;
  margin-bottom: 7px;
  margin-right: 5px;
  overflow: hidden;
  white-space: nowrap;
@@ -222,14 +297,18 @@
  font-size: 10pt;
  font-weight: bold;
}
.row2 span {
  font-size: 10pt;
  font-weight: bold;
}
.row2 {
  font-size: 8pt;
  font-weight: bold;
  height: 20px;
  height: 15px;
}
span {
  font-size: 10pt;
  font-size: 8pt;
  font-weight: bold;
}
@@ -248,51 +327,50 @@
}
.row5 {
  height: 20px;
  height: 15px;
  font-weight: bold;
  font-size: 8pt;
  font-size: 6pt;
}
.row5 span {
  font-size: 10pt;
  font-size: 8pt;
  font-weight: bold;
}
.row6 {
  height: 20px;
  height: 25px;
  font-weight: bold;
  font-size: 8pt;
  font-size: 4pt;
}
.row6 span {
  font-size: 10pt;
  font-size: 12pt;
  font-weight: bold;
}
.cell{
  position: absolute;
  font-weight: bold;
  margin-left: 5px;
  margin-top: 0px;
  margin-top: 20px;
  font-size: 6pt;
}
.cell1{
  position: absolute;
  font-weight: bold;
  margin-left: 158px;
  margin-top: -21px;
  margin-top: 0px;
}
.font-size {
  font-size: 6pt;
}
.element-to-break-after {
  page-break-after: always;
}
@media print {
  div {
    page-break-inside: avoid;
  }
  @page {
    size: auto;  /* auto is the initial value */
    margin: 13mm 4mm 0mm 4mm;  /* this affects the margin in the printer settings */
  }
}
</style>