From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示

---
 north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue |  246 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 246 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue
new file mode 100644
index 0000000..1309298
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue
@@ -0,0 +1,246 @@
+<script setup>
+import request from "@/utils/request"
+import {ElDatePicker, ElMessage} from "element-plus"
+import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
+import {Search} from "@element-plus/icons-vue"
+import {useRouter} from 'vue-router'
+import {changeFilterEvent, filterChanged} from "@/hook"
+import {useI18n} from 'vue-i18n'
+import deepClone from "@/utils/deepClone";
+import companyInfo from "@/stores/sd/companyInfo"
+
+const company = companyInfo()
+//璇█鑾峰彇
+const {t} = useI18n()
+let router = useRouter()
+let produceList = ref([])
+let labelList = ref([])
+let titleList = ref([])
+let dataList = ref([])
+let list = ref([])
+let lastList=ref([])
+
+let filterData = ref({})
+
+const data = ref({
+  printList: []
+})
+
+let props = defineProps({
+  list:null,//鍕鹃�夌殑鏁版嵁
+  faceOrientation:null,//鍐呭闈�
+  type:null,//鏍囩妯℃澘
+  lableType:null,//鏍囩绫诲瀷
+  titleList:null,//鏍囬
+  switch:null//鍒ゆ柇鏄惁涓烘柊鎵撳嵃
+})
+
+const {currentRoute} = useRouter()
+const route = currentRoute.value
+let type = props.type
+let faceOrientation = props.faceOrientation
+let lableType = props.lableType
+let switchType = props.switch
+data.value.printList = JSON.parse(props.list)
+onMounted(() => {
+      request.post(`/processCard/getSelectPrintCustomLabel/${type}/${lableType}`, data.value).then((res) => {
+        if (res.code == 200) {
+
+          produceList.value = deepClone(res.data.title)
+          list.value = deepClone(res.data.data)
+          const data = produceList.value[0].value
+          dataList = JSON.parse(`[${data}]`);
+          if (switchType===true){
+            labelList = props.titleList
+          }else {
+            labelList = dataList[0]
+          }
+          for (let i = 0; i < list.value.length; i++) {
+            let count= list.value[i].data.length
+            for (let j = 0; j < count; j++) {
+              for (let k = 0; k < list.value[i].data[j].quantity; k++){
+                lastList.value.push(list.value[i].data[j])
+              }
+            }
+          }
+        } else {
+          ElMessage.warning(res.msg)
+        }
+      })
+
+    }
+
+)
+
+
+// 鎵撳嵃鏂规硶
+const printFlowCard = () => {
+  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+  let el = document.getElementById("print");
+  let doc = document;
+  let body = doc.body || doc.getElementsByTagName("body")[0];
+  let printId = "print-" + Date.now();
+
+  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+  let content = doc.createElement("div");
+  content.id = printId;
+
+  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+  let style = doc.createElement("style");
+  style.innerHTML =
+      "body>#" +
+      printId +
+      "{display:none}@media print{body>:not(#" +
+      printId +
+      "){display:none !important}body>#" +
+      printId +
+      "{display:block;padding-top:1px}}";
+  //
+  content.innerHTML = el.outerHTML;
+  body.appendChild(style);
+
+  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+  body.appendChild(content);
+  setTimeout(() => {
+    window.print();
+    body.removeChild(content);
+    body.removeChild(style);
+  }, 20);
+}
+</script>
+
+<template>
+  <div id="print" :class="company.printLabel.className.semi.printFlowCardName()">
+    <div v-for="(item1,id) in lastList" :class="company.printLabel.className.semi.entiretyName()">
+      <div class="row4">{{ faceOrientation }}</div>
+      <div  v-for="(item,id) in labelList" :class="company.printLabel.className.semi.contentRowName()">
+        <div contenteditable="true" v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1" >{{ item.title }}锛歿{ item1[item.name] }}</div>
+<!--        <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row2">{{ item1[item.name] }}</div>-->
+      </div>
+      <div v-html="company.printLabel.customSemi(item1)"></div>
+    </div>
+  </div>
+
+</template>
+
+<style scoped>
+* {
+  margin: 0;
+  padding: 0;
+}
+
+body{
+  overflow: hidden;
+  font-family: Arial;
+
+}
+
+#printButton {
+  margin-top: -20px;
+  width: 100px;
+}
+
+
+
+/*鍗�*/
+.printFlowCard_semi {
+  flex-wrap: wrap;
+  font-size: 10px;
+  display: flex;
+  justify-content:space-between;
+}
+
+
+
+/*鍗�*/
+.entirety_semi {
+  width: 45%;
+  display: flex;
+  text-align: center;
+  flex-direction:column;
+  margin: 8px;
+
+}
+
+.row3{
+  text-align: center;
+}
+
+.contentRow{
+  display: flex;
+  text-align: center;
+}
+
+label{
+  font-weight: bolder;
+}
+
+.contentRow .row1{
+  width: 100%;
+}
+
+.entirety_semi .row4{
+  text-align: right;
+}
+
+.contentRow .row1,.contentRow .row2{
+  text-align: left;
+}
+
+
+
+@media print {
+  @page {
+    size: auto;
+    margin: 0mm 0mm 0mm 4mm;
+
+  }
+
+  div {
+    page-break-inside: avoid;
+  }
+}
+
+.printFlowCard_semi1 {
+  flex-wrap: wrap;
+  font-size: 8pt;
+  display: flex;
+}
+
+
+/*鎴�*/
+.entirety_semi1 {
+  width: 50%;
+  display: flex;
+  text-align: center;
+  flex-direction: column;
+  margin-left: -10px;
+  height: 80px;
+
+}
+
+.contentRow1 {
+  font-weight: bolder;
+  display: flex;
+  text-align: center;
+  width: 100%;
+}
+
+.contentRow1 .row1 {
+  width: 30%;
+  font-weight: bolder;
+}
+
+.entirety_finished1 .row4 {
+  font-weight: bolder;
+  text-align: right;
+  margin-right: 10px;
+}
+
+.contentRow1 .row1, .contentRow1 .row2 {
+  text-align: left;
+  font-weight: bolder;
+}
+
+</style>
\ No newline at end of file

--
Gitblit v1.8.0