From 99d0bb96043ba5d6db66bbfb00f67ca4e09f3ffb Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 07 三月 2025 09:08:33 +0800
Subject: [PATCH] 小片尺寸和成品尺寸不相同时,打印显示小片信息
---
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue | 348 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 250 insertions(+), 98 deletions(-)
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 ef9c9f5..caf1689 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
@@ -10,17 +10,21 @@
import {VXETable} from "vxe-table";
import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove";
import PrintProcess from '@/components/pp/PrintProcess.vue'
+import PrintProcessStraight from '@/components/pp/PrintProcessStraight.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'
import footSum from "@/hook/footSum"
import companyInfo from "@/stores/sd/companyInfo"
import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
-
+import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue";
+import useUserInfoStore from "@/stores/userInfo";
const company = companyInfo()
-
+const userStore = useUserInfoStore()
+const userId = userStore.user.userId
//璇█鑾峰彇
const {t} = useI18n()
@@ -28,10 +32,12 @@
const dialogSortTable = ref(false)
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
+const dialogTableVisibleLabelXJ = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
+const dialogTableVisibleStraight = ref(false)
const printVisible = ref(false)
let selectRecords = ref(null)
-
+let titleStyleVisible = ref(false)
const selectRecordsData = ref({
printList: []
})
@@ -55,7 +61,8 @@
let printRow = ref({
list: null,
printMergeVal: null,
- like: null
+ like: null,
+ merge: null
})
//鏍囩
@@ -140,6 +147,7 @@
},
]
let hidePrintLabels = company.printLabel.hideButton;
+let btnType = company.printBtn;
if (hidePrintLabels == 'true') {
filteredOptions = lableTypeOptions.filter((option, index) => index !== 2);
@@ -184,6 +192,7 @@
data.value.printList = JSON.parse(route.query.printList)
let inquiryMode = route.query.checkedValue
+
// 绗竴娆″姞杞芥煡璇�
request.post(`/processCard/selectPrint/${inquiryMode}`, data.value).then((res) => {
@@ -198,7 +207,10 @@
titleSelectJson.value.dataType = res.data.type
xGrid.value.reloadData(newDataCollection)
gridOptions.loading = false
- hideButton()
+
+
+ hideButton();
+ hideHead()
} else {
ElMessage.warning(res.msg)
}
@@ -298,7 +310,10 @@
{field: 'glass_address', title: t('processCard.glassAddress'), width: 90},
{field: 'quantity', title: t('order.quantity'), width: 90},
{field: 'total_area', title: t('order.area'), width: 90},
- {field: 'product_name', title: t('order.product'), width: 120},
+ {field: 'product_name', title: t('order.product'), width: 120,
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ filterMethod: filterChanged},
{
field: 'glass_child',
title: t('reportingWorks.glassChild'),
@@ -329,7 +344,8 @@
{code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
{code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
{code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
- {code: 'sortTable', name: "鎺掑簭姹囨��", status: 'primary'},
+ {code: 'sortTable', name: t('processCard.sortSummary'), status: 'primary'},
+ // {code: 'printTest', name: "娴嬭瘯鎵撳嵃", status: 'primary'},
// {code: 'printLike', name: "鍚岄厤缃墦鍗�", status: 'primary'},
],
// import: false,
@@ -388,8 +404,14 @@
printRow.value.list = JSON.stringify(selectRecords)
printRow.value.printMergeVal = printMerge.value
printRow.value.like = null
+ printRow.value.merge = company.flowCardMerge
// router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
- dialogTableVisible.value = true
+ if(company.companyName=='甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�'){
+ dialogTableVisibleStraight.value = true
+ }else{
+ dialogTableVisible.value = true
+ }
+
break
}
@@ -407,7 +429,10 @@
id += selectRecords[i].id + "|"
}
}
- router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}})
+ router.push({
+ path: '/main/processCard/PrintLabel',
+ query: {printList: JSON.stringify(selectRecords),printType:1}
+ })
break
}
@@ -427,7 +452,7 @@
}
router.push({
path: '/main/processCard/PrintCustomLabelSemi2',
- query: {printList: JSON.stringify(selectRecords)}
+ query: {printList: JSON.stringify(selectRecords),printType:1}
})
break
@@ -485,15 +510,22 @@
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/PrintCustomLabel',
+ path: '/main/processCard/PrintCustomLabelCZ',
query: {
type: type,
faceOrientation: faceOrientation,
lableType: lableTypes,
- printList: JSON.stringify(selectRecords)
+ printList: JSON.stringify(selectRecords),
+ printType:1
}
})
}
@@ -507,12 +539,13 @@
dialogTableVisibleCustomLabel.value = true
} else if (company.label === 2) {
router.push({
- path: '/main/processCard/PrintCustomLabelSemi',
+ path: '/main/processCard/PrintCustomLabelSemiCZ',
query: {
type: type,
faceOrientation: faceOrientation,
lableType: lableTypes,
- printList: JSON.stringify(selectRecords)
+ printList: JSON.stringify(selectRecords),
+ printType:1
}
})
}
@@ -523,7 +556,8 @@
type: type,
faceOrientation: faceOrientation,
lableType: lableTypes,
- printList: JSON.stringify(selectRecords)
+ printList: JSON.stringify(selectRecords),
+ printType:1
}
})
@@ -554,7 +588,11 @@
printRow.value.printMergeVal = printMerge.value
printRow.value.like = "1"
// router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
- dialogTableVisible.value = true
+ if(company.companyName=='甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�'){
+ dialogTableVisibleStraight.value = true
+ }else{
+ dialogTableVisible.value = true
+ }
break
}
case 'sortTable': {
@@ -562,6 +600,32 @@
tableRow.value.orderId=JSON.stringify(data.value.printList)
// router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
dialogSortTable.value = true
+ break
+ }
+ case 'printTest': {
+ if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
+ ElMessage.warning(t('searchOrder.msgList.checkOrder'))
+ return
+ }
+ // if (type === null || type === '' || type === undefined) {
+ // ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
+ // return
+ // }
+
+ let id = ""
+ for (let i = 0; i < selectRecords.length; i++) {
+ if (i + 1 === selectRecords.length) {
+ id += selectRecords[i].id
+ } else {
+ id += selectRecords[i].id + "|"
+ }
+ }
+
+ labelRow.value.list = JSON.stringify(selectRecords)
+ labelRow.value.faceOrientation = faceOrientation
+ labelRow.value.type = type
+ labelRow.value.lableType = lableTypes
+ titleStyleVisible.value = true
break
}
}
@@ -579,15 +643,34 @@
const hideButton = () => {
// 鏍规嵁鏉′欢鍊� hidePrintLabels 杩囨护鎸夐挳鏁扮粍
gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
- // 杩欓噷鏍规嵁 hidePrintLabels 鐨勫�煎喅瀹氭槸鍚﹂殣钘� printLabel 鍜� printLabel2
- if (hidePrintLabels == 'true') {
- return button.code !== 'printLabel' && button.code !== 'printLabel2';
- } else {
- return true && button.code !== 'printLike'; // 鏄剧ず璇ユ寜閽�
+ // 鏍规嵁 hidePrintLabels 杩囨护 printLabel 鍜� printLabel2 鎸夐挳
+ if (hidePrintLabels === 'true') {
+ if (button.code === 'printLabel' || button.code === 'printLabel2') {
+ return false; // 闅愯棌 printLabel 鍜� printLabel2
+ }
}
- })
+ // 濡傛灉 printBtn 涓� '1'锛屽垯闅愯棌 customLabel 鎸夐挳
+ if (btnType == 1 && button.code === 'customLabel') {
+ console.log('Hiding customLabel button');
+ return false; // 闅愯棌 customLabel 鎸夐挳
+ }
+
+ // 榛樿鎯呭喌涓嬭繑鍥� true锛屼繚鐣欏叾浠栨寜閽�
+ return true;
+ });
}
+
+const hideHead = () => {
+
+ // 鍒ゆ柇 btnType 鏄惁绛変簬 '1' (鍙互鏍规嵁闇�瑕佽皟鏁翠负鏁板瓧 1)
+ if (btnType == 1) {
+ const headDiv = document.querySelector('.head');
+ if (headDiv) {
+ headDiv.style.display = 'none'; // 闅愯棌 class="head" 鐨� div
+ }
+ }
+}
// 鐩戝惉鎵撳嵃瀹屾垚浜嬩欢
const printNumber = () => {
@@ -607,85 +690,92 @@
</script>
<template>
- <div class="main-div-customer">
- <el-input v-show="isVisible" v-model="printMerge" :placeholder="$t('processCard.mergePrinting')" clearable
- style="width: 90px"></el-input>
-
- <label>{{ $t('processCard.labelStyle') }}锛�</label>
- <el-select v-model="printType" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
- style="width: 120px">
- <el-option
- v-for="item in titleSelectJson['dataType']"
- :key="item.id"
- :label="item.name"
- :value="item.name"
- />
- </el-select>
-
- <el-select v-model="lableType" :placeholder="lableTypeOptions[0].label" class="m-2" style="width: 140px">
- <el-option
- v-for="item in filteredOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
-
- <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable
- filterable style="width: 140px">
- <el-option
- v-for="item in stateOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- <vxe-grid
- ref="xGrid"
- class="mytable-scrollbar"
- height="100%"
- v-bind="gridOptions"
- v-on="gridEvents"
+ <div style="width: 100%;height: 100%">
+ <div class="head">
+ <el-input v-show="isVisible" v-model="printMerge" :placeholder="$t('processCard.mergePrinting')" clearable
+ style="width: 90px"></el-input>
+
+ <label>{{ $t('processCard.labelStyle') }}锛�</label>
+ <el-select v-model="printType" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
+ style="width: 120px">
+ <el-option
+ v-for="item in titleSelectJson['dataType']"
+ :key="item.id"
+ :label="item.name"
+ :value="item.name"
+ />
+ </el-select>
+
+ <el-select v-model="lableType" :placeholder="lableTypeOptions[0].label" class="m-2" style="width: 140px">
+ <el-option
+ v-for="item in filteredOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+
+ <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable
+ filterable style="width: 140px">
+ <el-option
+ v-for="item in stateOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </div>
+
+ <div class="main-table">
+ <vxe-grid
+ ref="xGrid"
+ :checkbox-config="{labelField: 'name', highlight: true, range: true}"
+ class="mytable-scrollbar"
+ height="100%"
+ v-bind="gridOptions"
+ v-on="gridEvents"
- >
- <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
- <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
- <template #content="{ row }">
- <ul class="expand-wrapper">
- <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
- <span style="font-weight: bold">{{ item.title + ': ' }}</span>
- <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
- <span v-else>{{ row[item.field] }}</span>
+ >
+ <!-- @toolbar-button-click="toolbarButtonClickEvent"-->
+ <!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+ <template #content="{ row }">
+ <ul class="expand-wrapper">
+ <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
+ <span style="font-weight: bold">{{ item.title + ': ' }}</span>
+ <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span>
+ <span v-else>{{ row[item.field] }}</span>
- </li>
- </ul>
- </template>
+ </li>
+ </ul>
+ </template>
- <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
- <!-- v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"-->
- <template #button_slot="{ row }">
- <el-button link
- size="small"
- type="primary"
- @click="getTableRow(row,'edit')">
- {{ $t('basicData.edit') }}
- </el-button>
+ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+ <!-- v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"-->
+ <template #button_slot="{ row }">
+ <el-button link
+ size="small"
+ type="primary"
+ @click="getTableRow(row,'edit')">
+ {{ $t('basicData.edit') }}
+ </el-button>
- </template>
+ </template>
- <template #num1_filter="{ column, $panel }">
- <div>
- <div v-for="(option, index) in column.filters" :key="index">
- <input v-model="option.data"
- type="text"
- @input="changeFilterEvent($event, option, $panel)"/>
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input v-model="option.data"
+ type="text"
+ @keyup.enter.native="$panel.confirmFilter()"
+ @input="changeFilterEvent($event, option, $panel)"/>
+ </div>
</div>
- </div>
- </template>
+ </template>
- </vxe-grid>
+ </vxe-grid>
+ </div>
<!-- 娴佺▼鍗℃墦鍗� -->
<el-dialog
id="sizePrintCalrd"
@@ -701,6 +791,25 @@
:printLike="printRow.like"
:printList="printRow.list"
:printMerge="printRow.printMergeVal"
+ :merges="printRow.merge"
+ style="width: 100%;height: 100%"/>
+ </el-dialog>
+
+ <el-dialog
+ id="sizePrintCalrd"
+ v-model="dialogTableVisibleStraight"
+ :title="$t('processCard.print')"
+ destroy-on-close
+ style="width: 75%;height:75% ">
+ <template #header="{ close, titleId, titleClass }">
+ <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/>
+ </template>
+ <print-process-straight
+ id="child"
+ :printLike="printRow.like"
+ :printList="printRow.list"
+ :printMerge="printRow.printMergeVal"
+ :merges="printRow.merge"
style="width: 100%;height: 100%"/>
</el-dialog>
@@ -715,6 +824,24 @@
<el-button v-print="printContentLabel" :icon="Printer" circle/>
</template>
<print-custom-label id="childLabel"
+ :faceOrientation="labelRow.faceOrientation"
+ :lableType="labelRow.lableType"
+ :list="labelRow.list"
+ :type="labelRow.type"
+ 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"
@@ -754,20 +881,40 @@
<el-dialog
id="sizeCheck"
v-model="dialogSortTable"
- title="鎺掑簭姹囨��"
+ :title="$t('processCard.sortSummary')"
destroy-on-close
style="width: 80%;height:75% ">
<select-sort-table id="child" :orderId="tableRow.orderId"/>
</el-dialog>
-
+<!-- 鏍囩鏍峰紡 -->
+ <el-dialog
+ id="titleStyle"
+ :title="$t('processCard.labelStyle')"
+ style="width: 90%;height:93%;margin-top: 3vh "
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ v-model="titleStyleVisible">
+ <!-- <tag-style style="width: 100%;height: 100%"/>-->
+ <tag-style-designer style="width: 100%;height: 100%"
+ :faceOrientation="labelRow.faceOrientation"
+ :lableType="labelRow.lableType"
+ :list="labelRow.list"
+ :type="labelRow.type"/>
+ </el-dialog>
</div>
</template>
<style scoped>
-.main-div-customer {
- width: 99%;
- height: 92%;
+
+.head{
+ width: 100%;
+ height: 35px;
+}
+
+.main-table{
+ width: 100%;
+ height: calc(100% - 35px);
}
@@ -794,4 +941,9 @@
overflow-y: auto;
}
+:deep(#titleStyle .el-dialog__body){
+ height: 93%;
+ width: 100%;
+}
+
</style>
\ No newline at end of file
--
Gitblit v1.8.0