From 95cafbee8f05dc6fbc6256c5cd84bcfe3621107f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 07 十二月 2023 17:30:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/equipment/equipment/index.vue | 27 ++- src/views/plan/manufacturingorder/index.vue | 187 +++++++++++++++++++------- src/views/equipment/metering/index.vue | 75 +++++++--- src/views/plan/customerorder/sample-customerorder-form.vue | 2 src/views/quality/Packaging_ledger/index.vue | 72 +++++---- src/page/index/logo.vue | 4 6 files changed, 248 insertions(+), 119 deletions(-) diff --git a/src/page/index/logo.vue b/src/page/index/logo.vue index c9c78f0..8e02347 100644 --- a/src/page/index/logo.vue +++ b/src/page/index/logo.vue @@ -120,7 +120,7 @@ width: 220px; height: 64px; line-height: 64px; - background-color: #006eff; + background-color: #875a7b; font-size: 20px; overflow: hidden; box-sizing: border-box; @@ -151,7 +151,7 @@ width: 220px; height: 64px; line-height: 64px; - background-color: #006eff; + background-color: #875a7b; font-size: 20px; overflow: hidden; box-sizing: border-box; diff --git a/src/views/equipment/equipment/index.vue b/src/views/equipment/equipment/index.vue index c5911e0..f19e542 100644 --- a/src/views/equipment/equipment/index.vue +++ b/src/views/equipment/equipment/index.vue @@ -18,9 +18,11 @@ ref="addOrUpdate" @refreshDataList="getData" ></table-form> - <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px"> + </basic-container> + <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px" top="5vh"> + <div style="width:100%;height:400px;overflow-y: auto;"> <div class="dia_body" id="printRaw"> - <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 30px; font-size: 16px !important;"> + <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 10px; font-size: 16px !important;"> <el-row> <el-col :span="8" :offset="1">搴忓彿锛�</el-col> <el-col :span="7" style="font-weight: bold;">{{ tem.id }}</el-col> @@ -41,12 +43,12 @@ </el-row> </el-card> </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> - <el-button type="primary" @click="printFun">鎵� 鍗�</el-button> - </span> - </el-dialog> - </basic-container> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> + <el-button type="primary" @click="printFun">鎵� 鍗�</el-button> + </span> + </el-dialog> </div> </template> @@ -296,15 +298,17 @@ targetStyles:['*'], style: `@page { margin:0; - size: 360px 175px; + padding: 0; + size: 360px 170px; } - hrml{ + html{ zoom:100%; } @media print{ width: 360px; - height: 175px; + height: 170px; margin:0; + padding: 0; }`, onPrintDialogClose: this.erexcel=false, targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� @@ -339,7 +343,6 @@ }, handleSelectionChange(val) { this.multipleSelection = val - console.log(this.multipleSelection); }, // 鏂板 / 淇敼 addOrUpdateHandle(row) { diff --git a/src/views/equipment/metering/index.vue b/src/views/equipment/metering/index.vue index ea43bd6..022b8cd 100644 --- a/src/views/equipment/metering/index.vue +++ b/src/views/equipment/metering/index.vue @@ -19,32 +19,34 @@ @refreshDataList="getData" ></table-form> </basic-container> - <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px"> - <div class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> - <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 15px;"> - <el-row> - <el-col :span="10" :offset="3">搴忓彿锛�</el-col> - <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> - </el-row> - <el-row> - <el-col :span="10" :offset="3">缂栧彿锛�</el-col> - <el-col :span="10" style="font-weight: bold;">{{ tem.code }}</el-col> - </el-row> - <el-row> - <el-col :span="10" :offset="3">璁惧鍚嶇О锛�</el-col> - <el-col :span="10" style="font-weight: bold;">{{ tem.name }}</el-col> - </el-row> - <el-row> - <el-col :span="10" :offset="3">璁惧浜岀淮鐮侊細</el-col> - <el-col :span="10"> - <vueQr :text="tem.code" :size="80" :margin="2"></vueQr> - </el-col> - </el-row> - </el-card> + <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px" top="5vh"> + <div style="width:100%;height:400px;overflow-y: auto;"> + <div class="dia_body" id="printMetering"> + <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 10px; font-size: 16px !important;"> + <el-row> + <el-col :span="10" :offset="3">搴忓彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">缂栧彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ tem.code }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">璁惧鍚嶇О锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ tem.name }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">璁惧浜岀淮鐮侊細</el-col> + <el-col :span="10"> + <vueQr :text="tem.code" :size="80" :margin="2"></vueQr> + </el-col> + </el-row> + </el-card> + </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> - <el-button type="primary" @click="diaPrintTab = false">鎵� 鍗�</el-button> + <el-button type="primary" @click="printFun">鎵� 鍗�</el-button> </span> </el-dialog> </div> @@ -58,6 +60,7 @@ import * as fecha from 'element-ui/lib/utils/date' import { remote } from '../../../api/admin/dict' import vueQr from 'vue-qr' + import PrintJS from 'print-js' export default { data() { return { @@ -321,6 +324,32 @@ }) }, methods: { + printFun() { + this.diaPrintTab = false; + PrintJS({ + printable: 'printMetering',//椤甸潰 + type: "html",//鏂囨。绫诲瀷 + maxWidth:450, + targetStyles:['*'], + style: `@page { + margin:0; + padding: 0; + size: 360px 170px; + } + html{ + zoom:100%; + } + @media print{ + width: 360px; + height: 170px; + margin:0; + padding: 0; + }`, + onPrintDialogClose: this.erexcel=false, + targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + font_size: '', + }); + }, pullEquipFun(){ this.table.toolbar.find((e) => e.text === '鍚屾').loading = true pullEquip().then(res=>{ diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue index b1d326d..8a89e4c 100644 --- a/src/views/plan/customerorder/sample-customerorder-form.vue +++ b/src/views/plan/customerorder/sample-customerorder-form.vue @@ -68,7 +68,7 @@ <el-row> <el-col :span="6"> <el-form-item label="涓氬姟鍛�" prop="salesMan"> - <el-select @change="selsctionSales" filterable v-model="salesSelectData" style="width:100%"> + <el-select @change="selsctionSales" clearable filterable v-model="salesSelectData" style="width:100%"> <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :label="item.staffName"/> </el-select> </el-form-item> diff --git a/src/views/plan/manufacturingorder/index.vue b/src/views/plan/manufacturingorder/index.vue index 09b4935..f1276ae 100644 --- a/src/views/plan/manufacturingorder/index.vue +++ b/src/views/plan/manufacturingorder/index.vue @@ -22,8 +22,9 @@ </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item + :key="index" :command="item.command" - v-for="item in taskTypeArr" + v-for="(item,index) in taskTypeArr" :disabled="canCreateTask" >{{ item.label }}</el-dropdown-item > @@ -40,8 +41,9 @@ </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item + :key="i" :command="item.command" - v-for="item in stateTagArr" + v-for="(item,i) in stateTagArr" :disabled="item.disabled" >{{ item.label }}</el-dropdown-item > @@ -197,9 +199,43 @@ </el-dialog> </basic-container> <!-- 鏍囩鎵撳嵃 --> - <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px"> - <div class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> - <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;width:100%"> + <el-dialog title="鏍囩鍒楄〃" :visible.sync="diaPrintTab" width="500px" top="5vh"> + <div style="width:100%;height: 400px;overflow-y: auto;"> + <div class="dia_body"> + <el-checkbox + style="margin: 10px 5px;" + :indeterminate="isIndeterminate" + v-model="checkAll" + @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> + <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> + <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px; font-size: 16px !important;"> + <el-checkbox :label="i" :key="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox> + <el-row> + <el-col :span="10" :offset="3">搴忓彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">杞﹂棿璁㈠崟鍙凤細</el-col> + <el-col :span="10" style="font-weight: bold;">{{ item.moNo2 }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">璁㈠崟浜岀淮鐮侊細</el-col> + <el-col :span="10"> + <vueQr :text="JSON.stringify(item)" :size="80" :margin="2"></vueQr> + </el-col> + </el-row> + </el-card> + </el-checkbox-group> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> + <el-button type="primary" @click="printFun">鎵� 鍗�</el-button> + </span> + </el-dialog> + <div class="el-dialog__body" style="width:448.8px;overflow-y: auto;position: absolute;top:9999px;padding: 0;"> + <div id="printMOrder"> + <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="margin-bottom:10px;font-size: 16px !important;"> <el-row> <el-col :span="10" :offset="3">搴忓彿锛�</el-col> <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> @@ -211,16 +247,12 @@ <el-row> <el-col :span="10" :offset="3">璁㈠崟浜岀淮鐮侊細</el-col> <el-col :span="10"> - <vueQr :text="JSON.stringify(item)" :size="80" :margin="2"></vueQr> + <vueQr :text="JSON.stringify(item)" :size="110" :margin="2"></vueQr> </el-col> </el-row> </el-card> + </div> </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> - <el-button type="primary" @click="diaPrintTab = false">鎵� 鍗�</el-button> - </span> - </el-dialog> </div> </template> @@ -250,12 +282,15 @@ import { getStore } from '@/util/store.js' import { getObj as getSysParam } from '@/api/admin/sys-public-param' import vueQr from 'vue-qr' +import PrintJS from 'print-js' export default { data() { return { - checkList: [], + checkAll: false, + isIndeterminate: true, + checkDataList: [], + checkIndexList: [], qrData: [], - orderDatalist:[], diaPrintTab:false, showCustomerorder: false, paramObj: { customerList: null }, @@ -1051,7 +1086,97 @@ mounted() { // this.initQueryParams() }, + watch:{ + diaPrintTab(newVal){ + if(!newVal){ + this.qrData = [] + this.checkIndexList = [] + this.checkDataList = [] + this.isIndeterminate = true; + } + } + }, methods: { + //鍏ㄩ�� + handleCheckAllChange(val) { + if(val){ + for(var i=0;i<this.qrData.length;i++){ + this.checkIndexList.push(i) + } + this.checkDataList = this.qrData + }else{ + this.checkIndexList = [] + this.checkDataList = [] + } + this.isIndeterminate = false; + }, + //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮� + changePrintCode(){ + let indexList = this.checkIndexList + let arr = [] + indexList.forEach(i=>{ + arr.push(this.qrData[i]) + }) + this.checkDataList = arr + }, + //鎵撳嵃鏂规硶 + printFun() { + if(this.checkDataList.length < 1){ + this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑浜岀淮鐮�") + return + } + this.diaPrintTab = false; + PrintJS({ + printable: 'printMOrder',//椤甸潰 + type: "html",//鏂囨。绫诲瀷 + maxWidth:450, + targetStyles:['*'], + style: `@page { + margin:0; + size: 360px 175px; + } + html{ + zoom:100%; + } + @media print{ + width: 360px; + height: 175px; + margin:0; + }`, + onPrintDialogClose: this.erexcel=false, + targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + font_size: '', + }); + }, + //鍒濆鍖栦簩缁寸爜鏍囩鏁版嵁 + initQrData(data){ + this.qrData = [] + if(data){ + let index = Number(data.qtyRequired) + Number(data.scrapQty) + if(index>0){ + for(var i=1;i<= index;i++){ + let obj = { + moNo: data.moNo, + moNo2: null, + } + let no = (i+"").padStart(3,'0') + obj.moNo2 = data.moNo + no + this.qrData.push(obj) + } + } + } + }, + //鏍囩鎵撳嵃鎸夐挳 + labelPrint(){ + if(this.multipleSelection.length==0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + return + } + let selection = this.multipleSelection + let lastRow = selection[ selection.length - 1 ] + this.initQrData(lastRow) + this.diaPrintTab = true + }, getManufactureAttr(row, column, cellValue) { this.manufactureAttrs.forEach((obj) => { if (obj.value === cellValue) { @@ -1168,7 +1293,6 @@ getByMoIds([this.orderPlan.id]).then((repsonse) => { const resData = repsonse.data.data const resCode = repsonse.data.code - console.log("resData-----",repsonse); if (resCode === 0) { const _that = this for (const key in resData) { @@ -1400,36 +1524,8 @@ } } }, - //鍒濆鍖栦簩缁寸爜鏍囩鏁版嵁 - initQrData(data){ - if(data){ - let index = Number(data.qtyRequired) + Number(data.scrapQty) - if(index>0){ - for(var i=1;i<= index;i++){ - let obj = { - moNo: data.moNo, - moNo2: null, - } - let no = (i+"").padStart(3,'0') - obj.moNo2 = data.moNo + no - this.qrData.push(obj) - } - } - } - }, // table鑷甫浜嬩欢 handleSelectionChange(val) { - console.log(val,"涓�琛�"); - let orderData = [] - orderData =val.map( el =>{ - return{ - moNo:el.moNo, - qtyRequired: el.qtyRequired, - scrapQty: el.scrapQty - } - }) - this.orderDatalist = orderData - this.initQrData(orderData[0]) // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳 // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬� var stateArr = val.map(function(value, index) { @@ -1722,13 +1818,6 @@ this.$message.error('涓婁紶澶辫触') } }, - labelPrint(){ - if(this.multipleSelection.length==0){ - this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') - return - } - this.diaPrintTab = true - } } } </script> diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue index b4837ac..542ea79 100644 --- a/src/views/quality/Packaging_ledger/index.vue +++ b/src/views/quality/Packaging_ledger/index.vue @@ -128,23 +128,25 @@ </packfromadd> </basic-container> <el-dialog title="鏍囩鍒楄〃" top="5vh" :visible.sync="diaPrintTab" width="500px"> - <div id="qrCard" class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> - <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 15px;"> - <el-row> - <el-col :span="10" :offset="3">搴忓彿锛�</el-col> - <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> - </el-row> - <el-row> - <el-col :span="10" :offset="3">鍖呰缂栧彿锛�</el-col> - <el-col :span="10" style="font-weight: bold;">{{ item.packageNo }}</el-col> - </el-row> - <el-row> - <el-col :span="10" :offset="3">浜岀淮鐮侊細</el-col> - <el-col :span="10"> - <vueQr :text="JSON.stringify(item)" :size="120" :margin="1"></vueQr> - </el-col> - </el-row> - </el-card> + <div style="width:100%;height: 400px;overflow-y: auto;"> + <div id="qrCard" class="dia_body"> + <el-card class="box-card" v-for="(item, i) in qrData" :key="i" style="margin-bottom: 10px;"> + <el-row> + <el-col :span="10" :offset="3">搴忓彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">鍖呰缂栧彿锛�</el-col> + <el-col :span="10" style="font-weight: bold;">{{ item.packageNo }}</el-col> + </el-row> + <el-row> + <el-col :span="10" :offset="3">鍖呰鍙拌处浜岀淮鐮侊細</el-col> + <el-col :span="10"> + <vueQr :text="JSON.stringify(item)" :size="110" :margin="1"></vueQr> + </el-col> + </el-row> + </el-card> + </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="diaPrintTab = false">鍙� 娑�</el-button> @@ -313,20 +315,27 @@ printFun() { this.diaPrintTab = false; PrintJS({ - printable: "qrCard", - type: "html", - // header: "鍘熸潗鏂欐娴嬫姤鍛�", - targetStyles: ["*"], - style: `@page {margin: 0mm 5mm;} - html {zoom:100%;} - @media print { - html,body{ - width:60mm; - height:40mm; - } - }`, - ignoreElements: ["no-ignore"], - orientation: 'portrait' + printable: 'qrCard',//椤甸潰 + type: "html",//鏂囨。绫诲瀷 + maxWidth:450, + targetStyles:['*'], + style: `@page { + margin:0; + padding: 0; + size: 360px 170px; + } + html{ + zoom:100%; + } + @media print{ + width: 360px; + height: 170px; + margin:0; + padding: 0; + }`, + onPrintDialogClose: this.erexcel=false, + targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + font_size: '', }); }, handleSelectionChange(val){ @@ -340,7 +349,6 @@ return } this.diaPrintTab = true - console.log(this.multipleSelection); this.multipleSelection.forEach(item=>{ let obj = { packageNo: item.packageNo, -- Gitblit v1.9.3