From 7eeeadfd5a4c13923db680b99a4a23339a214da4 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 07 十二月 2023 17:28:52 +0800 Subject: [PATCH] modified: src/page/index/logo.vue modified: src/views/equipment/equipment/index.vue modified: src/views/plan/customerorder/sample-customerorder-form.vue modified: src/views/plan/manufacturingorder/index.vue modified: src/views/quality/Packaging_ledger/index.vue --- src/views/plan/manufacturingorder/index.vue | 226 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 197 insertions(+), 29 deletions(-) diff --git a/src/views/plan/manufacturingorder/index.vue b/src/views/plan/manufacturingorder/index.vue index 7ba7935..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,15 +41,16 @@ </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 > </el-dropdown-menu> </el-dropdown> - <el-dropdown + <!-- <el-dropdown v-if="permissions.manufacturingorder_issue_material" @command="issueMaterialHandleCommand" style="margin-left:10px;" @@ -64,8 +66,8 @@ >{{ item.label }}</el-dropdown-item > </el-dropdown-menu> - </el-dropdown> - <el-button + </el-dropdown> --> + <!-- <el-button v-if="permissions.manufacturingorder_orderto_ifs" @click="commitOrderIfs()" type="primary" @@ -88,15 +90,15 @@ style="margin-left:10px;" :loading="loadingStructIfs" >鐗╂枡鍚屾ERP - </el-button> - <el-button + </el-button> --> + <!-- <el-button v-if="permissions.manufacturingorder_refresh_ifsorder" @click="refreshIfsorder()" type="primary" style="margin-left:10px;" :loading="refreshIfsorderLoading" >鍒锋柊ifs杞﹂棿璁㈠崟鍙� - </el-button> + </el-button> --> <el-button @click="exportExcel" @@ -106,12 +108,18 @@ >瀵煎嚭 </el-button> <el-button + @click="labelPrint" + type="primary" + style="margin-left:10px;" + >鏍囩鎵撳嵃 + </el-button> + <!-- <el-button v-if="permissions.manufacturingorder_update_orderno" @click="updateOrderNo" type="primary" style="margin-left:10px;" >鏇存柊璁㈠崟鍙� - </el-button> + </el-button>--> </template> </ttable> <customerorder @@ -190,6 +198,61 @@ </span> </el-dialog> </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"> + <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> + </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="110" :margin="2"></vueQr> + </el-col> + </el-row> + </el-card> + </div> + </div> </div> </template> @@ -218,9 +281,17 @@ import DelMatUnIssueVue from './DelMatUnIssue.vue' 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 { + checkAll: false, + isIndeterminate: true, + checkDataList: [], + checkIndexList: [], + qrData: [], + diaPrintTab:false, showCustomerorder: false, paramObj: { customerList: null }, customerOrder: null, @@ -324,7 +395,7 @@ sort: true, isTrue: true, formatter: this.formatState, - propVal: '01planned', + propVal: '', isSearch: true, searchInfoType: 'select', optList: () => { @@ -426,10 +497,19 @@ isSearch: true, searchInfoType: 'text' }, + { + minWidth: '120', + prop: 'scrapQty', + label: '鎶ュ簾鏁伴噺', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, { minWidth: '120', - prop: 'orderRemark', - label: '閿�鍞鍗曞娉�', + prop: 'remark', + label: '澶囨敞', sort: true, isTrue: true, isSearch: true, @@ -823,14 +903,7 @@ } ], toolbar: [], - operator: [ - { - text: '鏌ョ湅搴撳瓨', - type: 'text', - size: 'small', - fun: this.searchStock - } - ], + operator: null, operatorConfig: { fixed: 'right', label: '鎿嶄綔', @@ -902,7 +975,8 @@ AutoOperationtask, IssueMaterialForm, OrderMergeForm, - DelMatUnIssueVue + DelMatUnIssueVue, + vueQr }, created() { this.getManufactureAttrs() @@ -934,12 +1008,12 @@ fun: this.getOperationTaskByCustomer }) } - if (this.permissions.manufacturingorder_order_merge) { - this.table.toolbar.push({ - text: '璁㈠崟鍚堝苟', - fun: this.openOrderMerge - }) - } + // if (this.permissions.manufacturingorder_order_merge) { + // this.table.toolbar.push({ + // text: '璁㈠崟鍚堝苟', + // fun: this.openOrderMerge + // }) + // } /** * { @@ -1003,7 +1077,6 @@ } }) }, - computed: { ...mapGetters(['permissions']) }, @@ -1013,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) { @@ -1654,7 +1817,12 @@ } else { this.$message.error('涓婁紶澶辫触') } - } + }, } } </script> +<style lang="scss"> +.gantt-info { + display: none !important; +} +</style> -- Gitblit v1.9.3