From 25cc86fd8a2fb3b2bb6b385cba0adaf89ff3dcdc Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 18 十二月 2025 16:39:32 +0800
Subject: [PATCH] 流程卡进度打印部分代码
---
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue | 481 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 400 insertions(+), 81 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
index 2f2eed2..e930fca 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
+++ b/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()
@@ -14,19 +15,35 @@
let labelList = ref([])
let projectNo = ref([])
let type = ref([])
+let printStyle = ref([])
let orderId = ref([])
const data = ref({
printList: []
})
-
+let remarks = ref('')
+const company = companyInfo()
const {currentRoute} = useRouter()
const route = currentRoute.value
+const printType=route.query.printType
projectNo.value = route.query.projectNo
type.value = route.query.type
+printStyle.value = route.query.printStyle
+
+
+
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) {
@@ -37,28 +54,52 @@
}
})
}else{
- data.value.printList = JSON.parse(route.query.printList)
- request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
- if (res.code == 200) {
- produceList.value = deepClone(res.data.data)
- for (let i = 0; i < produceList.value.length; i++) {
- let count= produceList.value[i].data.length
- for (let j = 0; j < count; j++) {
- for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
- labelList.value.push(produceList.value[i].data[j])
+ //娴佺▼鍗$紪杈戞墦鍗版爣绛� 甯稿窞
+ if (printType == 1) {
+ data.value.printList = JSON.parse(route.query.printList)
+ request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
+ if (res.code == 200) {
+ produceList.value = deepClone(res.data.data)
+ for (let i = 0; i < produceList.value.length; i++) {
+ let count= produceList.value[i].data.length
+ for (let j = 0; j < count; j++) {
+ for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
+ labelList.value.push(produceList.value[i].data[j])
+ }
+
+
}
-
-
}
+ console.log(labelList.value)
+ } else {
+ ElMessage.warning(res.msg)
+ router.push("/login")
}
- } else {
- ElMessage.warning(res.msg)
- router.push("/login")
- }
- })
+ })
+ }
+ //鏄庣粏鍒嗘灦鎵撳嵃鏍囩 甯稿窞
+ else if(printType==2){
+ data.value.printList = JSON.parse(route.query.printList)
+ request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => {
+ if (res.code == 200) {
+ produceList.value = deepClone(res.data.data)
+ for (let i = 0; i < produceList.value.length; i++) {
+ let count = produceList.value[i].data.length
+ for (let j = 0; j < count; j++) {
+ for (let k = 0; k < produceList.value[i].data[j].quantity; k++) {
+ labelList.value.push(produceList.value[i].data[j])
+ }
+
+ }
+ }
+ } else {
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+ }
+
}
-
-
}
@@ -106,52 +147,235 @@
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>
- </div>
- </div>-->
- <div id="entirety" v-for="(item,id) in labelList" >
- <div class="row1">
- <span>{{ item.customer_name }}</span>
- <span>{{ item.order_id }}</span>
- <span v-if="item.process.includes('澶硅兌')">鑳剁墖</span>
+<!-- 鍗婃垚鍝佹爣绛�-->
+ <template v-if="type!=='3'&&printStyle==='1'" v-for="(item,id) in labelList">
+ <div 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 style="font-size: 12px;">{{ item.customer_name }}</span>
+
+ <template v-if="company.showDeliveryCreator">
+ <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>
+ </template>
+
+<!--stock_id 鐗堝浘-->
+<!-- <div class="cell1" v-if="item.stock_id!=undefined">{{ item.stock_id+'/'+item.polys_id }}</div>-->
+
+ </div>
+ <div v-if="item.customer_name!==undefined" class="row9">
+ <span v-if="company.showDeliveryCreator">{{ item.order_id }}</span>
+ <span v-if="!company.showDeliveryCreator">{{ item.process_id }}</span>
+ </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_sort!==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 v-if="item.customer_name!==undefined" class="row5">
+ <span>{{item.project}}</span>
+ <span>{{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 v-if="item.customer_name!==undefined" class="row6">
+ <span>{{item.glass_child}}</span>
+ <span v-if="company.showDeliveryCreator" style="font-size: 10pt" >{{item.processing_note}}</span>
+ <span v-else style="font-size: 6pt"></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'&&printStyle==='1'" v-for="(item,id) in labelList">
+ <div 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>
+
+ </div>
+ <div class="row1" v-else>
+ <span style="font-size: 8pt">{{ item.customer_name }}</span>
+ </div>
+ <div class="row2" style="font-size: 8pt" >{{item.order_id}}
+ <span style="font-size: 8pt">{{ remarks }}</span>
+ </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>
- <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>
- <span>{{item.processing_note}}</span>
+ <span style="font-size: 10pt">{{item.glass_child}}</span>
</div>
- </div>
+ </div>
+ <div class="element-to-break-after" v-if="(id+1)%44==0"></div>
+ </template>
+
+
+
+
+
+
+
+ <template v-if="type!=='3'&&printStyle==='2'" v-for="(item,id) in labelList">
+ <div id="entirety1" >
+
+ <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>
+
+ <template v-if="company.showDeliveryCreator">
+ <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>
+ </template>
+
+ <!--stock_id 鐗堝浘-->
+ <!-- <div class="cell1" v-if="item.stock_id!=undefined">{{ item.stock_id+'/'+item.polys_id }}</div>-->
+
+ </div>
+ <div v-if="item.customer_name!==undefined" class="row9">
+ <span v-if="company.showDeliveryCreator">{{ item.order_id }}</span>
+ <span v-if="!company.showDeliveryCreator">{{ item.process_id }}</span>
+ </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_sort!==undefined && company.showDeliveryCreator" >
+ ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+ </span>
+ <span v-if="item.stock_id!==undefined && !company.showDeliveryCreator" >
+ {{ item.stock_id }}/{{ item.polys_id }}
+ </span>
+ {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
+ </div>
+ <div v-if="item.customer_name!==undefined" class="row5">
+ <span>{{item.project}}</span>
+ <span>{{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 v-if="item.customer_name!==undefined" class="row6">
+ <span>{{item.glass_child}}</span>
+ <span v-if="company.showDeliveryCreator" style="font-size: 8pt" >{{item.processing_note}}</span>
+ <span v-else style="font-size: 8pt"></span>
+
+ <br v-if="!company.showDeliveryCreator" />
+ <span v-if="!company.showDeliveryCreator" style="font-size: 8pt;margin-top: -10px">{{item.product_name}}</span>
+ </div>
+ </div>
+ <div class="element-to-break-after" v-if="(id+1)%18==0"></div>
+ </template>
+
+
+
+ <template v-if="type==='3'&&printStyle==='2'" v-for="(item,id) in labelList">
+ <div id="entirety1" v-for="n in item.quantity" >
+
+ <div class="row1" v-if="item.heat_layout_id!=null">
+ <span>{{ item.customer_name }}</span>
+ </div>
+ <div class="row1" v-else>
+ <span >{{ item.customer_name }}</span>
+ </div>
+ <div class="row2" >
+ <span > {{item.order_id}}</span>
+ <span >{{ remarks }}</span>
+ </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" >
+ ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+ </span>
+ <span v-if="item.stock_id!==null && !company.showDeliveryCreator" >
+ {{ 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" >
+ ({{ item.stock_id }}) {{ item.heat_layout_id }}/{{ item.heat_layout_sort }}
+ </span>
+ <span v-if="item.stock_id!==null && !company.showDeliveryCreator" >
+ {{ item.stock_id }}/{{ item.polys_id }}
+ </span>
+ {{Math.round(item.width)}}x{{Math.round(item.height)}}={{item.quantity}}
+ </div>
+
+ <div class="row5">
+ <span style="white-space: pre-wrap;">{{ 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 style="font-size: 10pt">{{item.glass_child}}</span>
+ </div>
+ </div>
+ </template>
+
</div>
</template>
@@ -176,10 +400,12 @@
#entirety{
text-align: center;
- width: 185px;
- height: 87px;
- margin-bottom: 10px;
+ width: 180px;
+ height: 90px;
+ margin-bottom: 7px;
+ margin-right: 5px;
overflow: hidden;
+ white-space: nowrap;
}
.row1 {
@@ -188,67 +414,160 @@
height: 20px;
}
.row1 span {
- font-size: 8pt;
+ 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;
}
-
-
-
-
-
-
.row3 {
margin-top: -5px;
+ height: 18px;
+ font-size: 12pt;
+ font-weight: bolder;
+}
+
+.row9 {
+ margin-top: -15px;
height: 25px;
font-size: 15pt;
font-weight: bolder;
}
.row5 {
- height: 20px;
+ height: 10px;
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-weight: bold;
}
-
-
-
-
-
-@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 */
-
- }
+.cell{
+ position: absolute;
+ font-weight: bold;
+ margin-left: 5px;
+ margin-top: 20px;
+ font-size: 6pt;
}
+.cell1{
+ position: absolute;
+ font-weight: bold;
+ margin-left: 158px;
+ margin-top: 0px;
+}
+.font-size {
+ font-size: 6pt;
+}
+
+.element-to-break-after {
+ page-break-after: always;
+}
+
+
+#entirety1{
+ text-align: center;
+ width: 240px;
+ height: 170px;
+ margin-bottom: 7px;
+ margin-right: 5px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+
+#entirety1 .row1 {
+ font-weight: bold;
+ height: 30px;
+}
+#entirety1 .row1 span {
+ font-size: 15pt;
+ font-weight: bold;
+}
+#entirety1 .row2 span {
+ font-size: 12pt;
+ font-weight: bold;
+}
+
+#entirety1 .row2 {
+ font-weight: bold;
+ height: 30px;
+}
+
+
+
+#entirety1 .row3 {
+ margin-top: -5px;
+ height: 36px;
+ font-size: 25px;
+ font-weight: bolder;
+}
+
+#entirety1 .row3 span {
+ font-size: 15px;
+}
+
+#entirety1 .row9 {
+ margin-top: -15px;
+ height: 40px;
+ font-size: 18pt;
+ font-weight: bolder;
+}
+
+#entirety1 .row9 span {
+ font-size: 15pt;
+ font-weight: bold;
+}
+
+#entirety1 .row5 {
+ height: 30px;
+ font-weight: bold;
+ font-size: 6pt;
+}
+#entirety1 .row5 span {
+ font-size: 15pt;
+ font-weight: bold;
+}
+
+#entirety1 .row6 {
+ margin-top: -10px;
+ height: 50px;
+ font-weight: bold;
+ font-size: 18px;
+}
+#entirety1 .row6 span {
+ white-space: normal;
+ font-size: 16px;
+ font-weight: bold;
+}
+
+
+
+
+
+
</style>
\ No newline at end of file
--
Gitblit v1.8.0