From ffe71d5735a2c435258a1a817ba1b10702301364 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 23 八月 2024 16:55:47 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelXJ.vue | 279 ++++++++++++++++++++++++++++++++++++++++++++++
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue | 28 ++++
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 1
3 files changed, 307 insertions(+), 1 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelXJ.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelXJ.vue
new file mode 100644
index 0000000..98bfa9c
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelXJ.vue
@@ -0,0 +1,279 @@
+<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//鏍囩绫诲瀷
+})
+
+const {currentRoute} = useRouter()
+const route = currentRoute.value
+let type = props.type
+let faceOrientation = props.faceOrientation
+if (type.indexOf("鑻辨枃")>-1 && faceOrientation==="姝ら潰涓哄鍐呴潰"){
+ faceOrientation='INSIDE'
+}
+else if (type.indexOf("鑻辨枃")>-1 && faceOrientation==="姝ら潰涓哄澶栭潰"){
+ faceOrientation='OUTSIDE'
+}
+let lableType = props.lableType
+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}]`);
+ 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)
+ router.push("/login")
+ }
+ })
+
+ }
+)
+
+
+
+
+
+//淇敼鐩稿悓浜у搧鍚嶇О鏍囩
+const updateProductName = (event, index,id) => {
+ // 鍒涘缓鏄犲皠瀵硅薄
+ const propertyMapping = {};
+ labelList.forEach(item => {
+ propertyMapping[item.name] = item.title;
+ });
+ // 杈撳叆鐨勫��
+ const newValue = event.target.innerText;
+ const parts = newValue.split('锛�');
+ const result = parts[1]; // 鑾峰彇鍐掑彿鍚庣殑閮ㄥ垎
+
+ // 鑾峰彇鏄犲皠涓墍鏈夌殑閿�
+ const keys = Object.keys(propertyMapping);
+
+ // 鏍规嵁 index 鑾峰彇瀵瑰簲鐨勫睘鎬у悕
+ const propertyName = keys[index];
+
+ // 濡傛灉鏄犲皠涓病鏈夎 index锛岀洿鎺ヨ繑鍥�
+ if (!propertyName) {
+ console.warn('Unsupported index:', index);
+ return;
+ }
+
+ // 閬嶅巻 lastList 骞舵洿鏂板搴旂殑灞炴��
+ lastList.value.forEach(obj => {
+ // 鑾峰彇鍓嶇紑鍜� orderId
+ const prefix = obj.processId.substring(0, 11);
+ const orderId = obj.orderId;
+ const glassNumber=lastList.value[id].glassNumber
+ // 鏍规嵁 propertyName 鏇存柊灞炴��
+ if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
+ obj.productAbbreviation = result;
+ }
+
+ if (propertyName === 'project' && orderId === obj.orderId) {
+ obj.project = result;
+ }
+ if (propertyName === 'productName' && glassNumber === obj.glassNumber){
+ obj.productName = result;
+ }
+ });
+}
+
+
+
+</script>
+
+<template>
+ <div id="print" class="printFlowCard_semi">
+ <div v-for="(item1,index) in lastList" class="entirety_semi">
+ <div class="row4">{{ faceOrientation }}</div>
+ <div v-for="(item,id) in labelList" class="contentRow">
+ <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1" contenteditable="true" @input="updateProductName($event, id,index)" v-text="item.title+'锛�'+item1[item.name]"></div>
+<!-- <div class="row2" style="width: 100%;"><input class="contentRow2" v-model="item1[item.name]" @keyup="updataProductName()" style="border: none;"/></div>-->
+<!-- <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row2" style="width: 100%;" contenteditable="true" @input="updateProductName($event, id)" v-text="item1[item.name]"></div>-->
+ </div>
+ <div >
+ <div class="row3" style="text-align: center;font-weight: bolder;">
+ <label style="font-size: 18px;">瀹�:{{item1.width}}</label>
+
+
+ <label style="font-size: 18px;">楂�:{{item1.height}}</label>
+ </div>
+ </div>
+ <div style="text-align: left">鏂扮枂鎭掗懌鐜荤拑绉戞妧鏈夐檺鍏徃</div>
+ <div v-if="(index + 1) % 2 === 0" class="pagebreak"></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; /* auto is the initial value */
+ margin: 13mm 5mm 0mm 7mm; /* this affects the margin in the printer settings */
+ }
+ div {
+ page-break-inside: avoid;
+ }
+
+
+
+ .pagebreak {
+ page-break-after: always;
+ }
+
+}
+
+.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
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index 8f52595..913acd6 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -12,6 +12,7 @@
import PrintProcess from '@/components/pp/PrintProcess.vue'
import PrintLabel from '@/views/pp/processCard/PrintLabel.vue'
import PrintCustomLabel from '@/components/pp/PrintCustomLabel.vue'
+import PrintCustomLabelXJ from '@/components/pp/PrintCustomLabelXJ.vue'
import PrintCustomLabelSemi from '@/components/pp/PrintCustomLabelSemi.vue'
import SortDetail from '@/components/pp/SelectSortDetailProcessCard.vue'
import SelectSortTable from '@/components/pp/SelectSortTable.vue'
@@ -28,6 +29,7 @@
const dialogSortTable = ref(false)
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
+const dialogTableVisibleLabelXJ = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
const printVisible = ref(false)
let selectRecords = ref(null)
@@ -485,7 +487,13 @@
labelRow.value.type = type
labelRow.value.lableType = lableTypes
if (company.label === 1) {
- dialogTableVisibleLabel.value = true
+ if (company.printLabel.columnsLabel===1){
+ dialogTableVisibleLabelXJ.value = true
+ }
+ else{
+ dialogTableVisibleLabel.value = true
+ }
+
} else if (company.label === 2) {
router.push({
path: '/main/processCard/PrintCustomLabelCZ',
@@ -722,6 +730,24 @@
style="width: 100%;height: 100%"/>
</el-dialog>
+ <!-- 鎴愬搧鏍囩鏂扮枂-->
+ <el-dialog
+ id="sizeCustom"
+ v-model="dialogTableVisibleLabelXJ"
+ :title="$t('processCard.printLabel')"
+ destroy-on-close
+ style="width: 80%;height:75% ">
+ <template #header="{ close, titleId, titleClass }">
+ <el-button v-print="printContentLabel" :icon="Printer" circle/>
+ </template>
+ <print-custom-label-x-j id="childLabel"
+ :faceOrientation="labelRow.faceOrientation"
+ :lableType="labelRow.lableType"
+ :list="labelRow.list"
+ :type="labelRow.type"
+ style="width: 100%;height: 100%"/>
+ </el-dialog>
+
<!-- 灏忕墖鏍囩 -->
<el-dialog
id="sizeCustomSemi"
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 2fdc0b0..d63ce0a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.sql.SQLOutput;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
--
Gitblit v1.8.0