north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -180,7 +180,7 @@ <div style="width: 25%">{{item.DeliveryDetailOtherMoney[0].monery}}</div> </div> </td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额: {{money}}</td> <td style="text-align: left;border:none;font-size: 15px;" colspan="5">大写金额: {{money}}</td> </tr> </table> north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -25,10 +25,8 @@ }, orderProductDetail:[] }) let productIdData = ref([ ]) let productIdData = ref({ }) const selectedValues = ref([]) const grossNum = ref({ @@ -38,16 +36,16 @@ }) const getData = () => { request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => { console.log(res.data) data.value= res.data productIdData.value=data.value.orderProductDetail data.value.orderProductDetail.forEach(item => { productIdData.value.push(item.productId) grossNum.value.quantity += getQuantity(item.productDetail) grossNum.value.grossArea += getArea(item.productDetail) grossNum.value.perimeter += getPerimeter(item.productDetail) stringToJson(item.productDetail) }) console.log(productIdData.value) grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3)) grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3)) grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3)) @@ -58,7 +56,9 @@ const handleChange = () => { request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => { console.log(res.data) grossNum.value.quantity=0 grossNum.value.grossArea=0 grossNum.value.perimeter=0 data.value= res.data data.value.orderProductDetail.forEach(item => { grossNum.value.quantity += getQuantity(item.productDetail) @@ -66,7 +66,6 @@ grossNum.value.perimeter += getPerimeter(item.productDetail) stringToJson(item.productDetail) }) console.log(productIdData) grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3)) grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3)) grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3)) @@ -255,8 +254,8 @@ <el-option v-for="item in productIdData" :key="item" :label="item" :value="item"> :label='item.productId+" "+item.productName' :value="item.productId"> </el-option> </el-select> </el-dialog> north-glass-erp/northglass-erp/src/lang/zh.js
@@ -388,6 +388,7 @@ pleaseSelectCustomPrintLabelStyle:'请选择自定义打印标签样式', mergePrinting:'合并打印', printStatus:'打印状态', labelPrinting2:'标签打印2', }, reportingWorks:{ glassNumber:'编号', north-glass-erp/northglass-erp/src/router/index.js
@@ -378,6 +378,11 @@ component: () => import('../views/pp/processCard/PrintCustomLabelSemi.vue'), }, { path: 'printCustomLabelSemi2', name: 'printCustomLabelSemi2', component: () => import('../views/pp/processCard/PrintCustomLabelSemi2.vue'), }, { path: 'printLabel1', name: 'printLabel1', component: () => import('../views/pp/processCard/PrintLabel1.vue'), north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -35,7 +35,6 @@ const lableType = route.query.lableType onMounted(() => { console.log(lableType) request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { if (res.code == 200) { produceList.value = deepClone(res.data.title) @@ -51,7 +50,6 @@ } } } console.log(lastList.value) } else { ElMessage.warning(res.msg) router.push("/login") @@ -114,7 +112,7 @@ <span>{{ item.buildingNumber }}</span> </div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -35,7 +35,6 @@ const lableType = route.query.lableType onMounted(() => { console.log(lableType) request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { if (res.code == 200) { produceList.value = deepClone(res.data.title) @@ -51,7 +50,6 @@ } } } console.log(lastList.value) } else { ElMessage.warning(res.msg) router.push("/login") @@ -114,7 +112,7 @@ <span>{{ item.buildingNumber }}</span> </div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
New file @@ -0,0 +1,205 @@ <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: [] }) const {currentRoute} = useRouter() const route = currentRoute.value data.value.printList = JSON.parse(route.query.printList) const type = route.query.type const faceOrientation = route.query.faceOrientation const lableType = route.query.lableType onMounted(() => { 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") } }) } ) // 打印方法 const printFlowCard = () => { // 需要打印的局部区域赋予"print-wrap"的id let el = document.getElementById("printFlowCard"); 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; // // console.log("el.outerHTML", el.outerHTML); body.appendChild(style); // 与style元素设置的样式相配合 // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式) body.appendChild(content); setTimeout(() => { window.print(); body.removeChild(content); body.removeChild(style); }, 20); } </script> <template> <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button> <div id="printFlowCard" > <div id="entirety" v-for="(item,id) in labelList" > <div class="row1"> <span>{{ item.customer_name }}</span> <span v-if="item.type_name.includes('中空')">中空</span> <span v-else-if="item.type_name.includes('夹层')">夹层</span> <span v-else-if="item.type_name.includes('夹胶')">夹胶</span> <span v-else></span> </div> <div class="row2"> <span>{{ item.order_id }}</span> </div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> <div class="row5"> <span>{{item.project}}</span> <span>{{ item.building_number }}</span> </div> <div class="row6"> <span>{{item.glass_child}}</span> <span>{{item.processing_note}}</span> </div> </div> </div> </template> <style scoped> * { margin: 0; padding: 0; } #printButton { /*margin-top: -20px;*/ width: 100px; } #printFlowCard { display: flex; justify-content: left; flex-wrap: wrap; margin-left: 5px; } #entirety{ text-align: center; width: 50%; height: 105px; } .row1 { font-size: 10pt; font-weight: bold; height: 20px; } .row2 { font-size: 10pt; font-weight: bold; height: 20px; } span { font-size: 10pt; font-weight: bold; } .row3 { margin-top: -5px; height: 25px; font-size: 15pt; font-weight: bolder; } .row5 { height: 20px; font-weight: bold; font-size: 10pt; } .row5 span { font-size: 10pt; } .row6 { height: 20px; font-weight: bold; font-size: 10pt; } @page { size: auto; /* auto is the initial value */ margin: 2mm 2mm 2mm 2mm /* this affects the margin in the printer settings */ } @media print { div { page-break-inside: avoid; } } </style> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -135,14 +135,14 @@ if (res.code == 200) { produceList = produceList.value.concat(deepClone(res.data.data)) titleSelectJson.value.dataType = res.data.type // produceList.forEach(item => { // if(item.print_status == 1){ // item.print_status='已打印' // } // else if (item.print_status == 0){ // item.print_status='未打印' // } // }); produceList.forEach(item => { if(item.print_status == 1){ item.print_status='已打印' } else if (item.print_status == 0){ item.print_status='未打印' } }); xGrid.value.reloadData(produceList) gridOptions.loading = false } else { @@ -253,6 +253,7 @@ {code: 'print', name: t('processCard.print'), status: 'primary'}, {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'}, {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'}, {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'}, ], // import: false, // export: true, @@ -282,6 +283,9 @@ toolbarButtonClick ({ code}) { const $grid = xGrid.value selectRecords = $grid.getCheckboxRecords() selectRecords.forEach(obj => { delete obj.print_status; }); let type=printType.value let faceOrientation=stateValue.value let lableTypes=lableType.value @@ -289,6 +293,7 @@ if ($grid) { switch (code) { case 'print': { console.log(selectRecords) if(selectRecords===null ||selectRecords===''||selectRecords.length===0){ ElMessage.warning(t('searchOrder.msgList.checkOrder')) return @@ -327,6 +332,24 @@ break } case 'printLabel2': { if(selectRecords===null ||selectRecords===''||selectRecords.length===0){ ElMessage.warning(t('searchOrder.msgList.checkOrder')) 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 + "|" } } router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: {printList: JSON.stringify(selectRecords)}}) break } case 'sort': { const $table = xGridDetail.value let data = $table.getTableData().fullData north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -37,10 +37,8 @@ } }) }else{ console.log(JSON.stringify(route.query.printList)) request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { if (res.code == 200) { console.log(res.data.data) produceList.value = deepClone(res.data.data) for (let i = 0; i < produceList.value.length; i++) { let count= produceList.value[i].data.length @@ -52,8 +50,6 @@ } } console.log(labelList.value) console.log(JSON.parse(labelList.value[0].other_columns).S02) } else { ElMessage.warning(res.msg) router.push("/login") @@ -141,7 +137,7 @@ <span>{{ item.order_id }}</span> </div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> <div class="row5"> <span>{{item.project}}</span> <span>{{ item.building_number }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
@@ -34,7 +34,6 @@ const lableType = route.query.lableType onMounted(() => { console.log(lableType) request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { if (res.code == 200) { produceList.value = deepClone(res.data.title) @@ -50,7 +49,6 @@ } } } console.log(lastList.value) } else { ElMessage.warning(res.msg) router.push("/login") @@ -113,7 +111,7 @@ <span>{{ item.buildingNumber }}</span> </div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -396,7 +396,6 @@ otherMoney:otherMoney.value }) console.log(flowData.value) request.post("/Delivery/insertDelivery", flowData.value).then((res) => { if(res.code==200 && res.data===true){ ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully')) north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -807,11 +807,9 @@ request.post(`/order/selectOrder`,order).then((res) => { if(res.code==200){ let orderId='' console.log(res.data.data) if(res.data.data.length>0){ for (let i=0;i<res.data.data.length;i++){ orderId+=res.data.data[i].orderId+'|' console.log(orderId) } } if(orderId!=''){ north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -580,7 +580,8 @@ c.customer_abbreviation as customer_name, ifnull(od.processing_note,'') as processing_note, bgt.type_name, od.other_columns od.other_columns, od.building_number from sd.order as o left join sd.order_detail as od on o.order_id = od.order_id left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number