From 41e0df8413624e6034c967f3afae30da59370879 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期一, 11 十二月 2023 16:20:15 +0800 Subject: [PATCH] modified: src/components/verifition/Verify/VerifyPoints.vue modified: src/const/crud/admin/sys-public-param.js modified: src/page/full-screen/fullScreenPlus.vue modified: src/page/index/logo.vue modified: src/page/index/sidebar/sidebarItem.vue modified: src/page/login/index.vue modified: src/page/login/thirdpartylogin.vue modified: src/util/elAttr.js modified: src/views/accounting/unitworkfactor/unitworkfactor-form.vue modified: src/views/accounting/unitworkfactor/updateQuota-form.vue modified: src/views/basic/discmaintenance/discmaintenance-form.vue modified: src/views/basic/log/index.vue modified: src/views/basic/part/part-form.vue modified: src/views/basic/part/print-label-form.vue modified: src/views/basic/poc/index.vue modified: src/views/basic/tabletest/index.vue modified: src/views/basic/template/index.vue modified: src/views/basic/template/template-form.vue modified: src/views/basic/workstation/workstation-form.vue modified: src/views/common/custom-table.vue modified: src/views/common/documentDetail.vue modified: src/views/common/operationParamTemplate.vue modified: src/views/common/rawMaterial-part.vue modified: src/views/common/search-select.vue modified: src/views/common/ztt-table.vue modified: src/views/huawei/code19bind/list.vue modified: src/views/huawei/code19gen/form.vue modified: src/views/huawei/grossweightcode/list.vue modified: src/views/huawei/grossweightcode/task-secret-form.vue modified: src/views/oa/JiegouModal.vue modified: src/views/oa/PeizhiModal.vue modified: src/views/oa/technology-document-new.vue modified: src/views/oa/technology-document.vue modified: src/views/plan/customer/index.vue modified: src/views/plan/customerorder/confirm-pull-customerorder.vue modified: src/views/plan/customerorder/customerorder-config-history.vue modified: src/views/plan/customerorder/customerorder-form.vue modified: src/views/plan/customerorder/customerorder-return.vue modified: src/views/plan/customerorder/customerorder-ztt-table.vue modified: src/views/plan/customerorder/index.vue modified: src/views/plan/customerorder/other-customer-order-line.vue modified: src/views/plan/customerorder/sample-customerorder-form.vue modified: src/views/plan/customerorder/schedule-table.vue modified: src/views/plan/manufacturingorder/auto-operationtask.vue modified: src/views/plan/manufacturingorder/customerorder.vue modified: src/views/plan/manufacturingorder/customize-param-template.vue modified: src/views/plan/manufacturingorder/order-operation-form.vue modified: src/views/plan/manufacturingorder/productorder-form.vue modified: src/views/plan/manufacturingorderapply/index.vue modified: src/views/plan/masterproductionschedule/auto-manufacturingorder.vue modified: src/views/plan/operationtask/gantt.vue modified: src/views/plan/operationtask/operationtask-form.vue modified: src/views/plan/operationtask/task-material.vue modified: src/views/plan/productionschedul/index.vue modified: src/views/plan/productionschedul/template-form.vue modified: src/views/plan/schedule/gantt.vue modified: src/views/plan/schedulelookover/ganttview.vue modified: src/views/plan/segmentmerge/index.vue modified: src/views/plan/segmentmerge/operate-dialog.vue modified: src/views/plan/segmentmerge/operation-technology-form.vue modified: src/views/product/dutyrecord/index.vue modified: src/views/product/producttraceability/index.vue modified: src/views/product/producttraceability/traceability-diagram.vue modified: src/views/product/workbench/batchproductout-form-new.vue modified: src/views/product/workbench/batchproductout-form.vue modified: src/views/product/workbench/feed-form.vue modified: src/views/product/workbench/feed-pane.vue modified: src/views/product/workbench/feed-tab.vue modified: src/views/product/workbench/handymantype.vue modified: src/views/product/workbench/index.vue modified: src/views/product/workbench/mould-pane.vue modified: src/views/product/workbench/operation-task-pane.vue modified: src/views/product/workbench/product-record-form.vue modified: src/views/product/workbench/productout-form-by-batch.vue modified: src/views/product/workbench/productout-form.vue modified: src/views/product/workbench/productrecord-tab.vue modified: src/views/product/workbench/producttracking-tab.vue modified: src/views/product/workbench/shift-productout-form.vue modified: src/views/product/workbench/splitTaskForm.vue modified: src/views/product/workbench/taskinfo-pane.vue modified: src/views/quality/Packaging_ledger/pack-from.vue modified: src/views/quality/apply/index.vue modified: src/views/quality/exception/exception.vue modified: src/views/quality/exception/index.vue modified: src/views/quality/finishedProductInspection/finishedProduct-form.vue modified: src/views/quality/finishedProductInspection/finishedProduct-print.vue modified: src/views/quality/finishedProductInspection/finishedProducter-print.vue modified: src/views/quality/finishedProductInspection/index.vue modified: src/views/quality/newReport/ReportForm.vue modified: src/views/quality/processInspect/index.vue modified: src/views/quality/processInspect/processInspect-form.vue modified: src/views/quality/processconfiguration/index.vue modified: src/views/quality/processconfiguration/table-form.vue modified: src/views/quality/rawMaterial/QrcodeReader.vue modified: src/views/quality/rawMaterial/index.vue modified: src/views/quality/rawMaterial/rawMaterial-form.vue modified: src/views/quality/report/index.vue modified: src/views/quality/standardbind/standardbind-form.vue modified: src/views/quality/statistics/rateChart.vue modified: src/views/quality/testitemlayout/index.vue modified: src/views/quality/testplan/testplan-form.vue modified: src/views/quality/unqualifiedprocess/examineApproveform.vue modified: src/views/quality/unqualifiedprocess/index.vue modified: src/views/quality/unqualifiedprocess/loaction-form.vue modified: src/views/quality/unqualifiedprocess/unqualifiedprocessform.vue modified: src/views/technology/completeproductstructure/completeproductstructure-form.vue modified: src/views/technology/document/checkStandardTable.vue modified: src/views/technology/document/document-form.vue modified: src/views/technology/document/extendsOperation.vue modified: src/views/technology/document/extendsTestStandard.vue modified: src/views/technology/document/extendsTestStandardParam.vue modified: src/views/technology/document/teststandard.vue modified: src/views/technology/structure/single-structure-form.vue modified: src/views/warehouse/changestock/index.vue modified: src/views/warehouse/check/check-detail.vue modified: src/views/warehouse/pallettransports/ifslocation-form.vue modified: src/views/warehouse/pallettransports/ifsstock-form.vue modified: src/views/warehouse/pallettransports/index.vue modified: src/views/warehouse/returnstock/ifslocation-form.vue modified: src/views/warehouse/returnstock/index.vue modified: src/views/warehouse/returnstock/returnstock-form.vue modified: src/views/warehouse/returnstock/stock-part.vue modified: src/views/warehouse/stock/print-label-form.vue modified: src/views/warehouse/stock/small-print-label-form.vue modified: src/views/warehouse/stock/small-warehousing-label-form.vue modified: src/views/warehouse/stock/stock-table.vue modified: src/views/warehouse/stock/warehousing-label-form.vue modified: src/views/zte/pkgidbind/index.vue --- src/views/quality/rawMaterial/index.vue | 241 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 194 insertions(+), 47 deletions(-) diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue index ae5e1c2..0c11eb8 100644 --- a/src/views/quality/rawMaterial/index.vue +++ b/src/views/quality/rawMaterial/index.vue @@ -19,12 +19,16 @@ <basic-container> <ttable :table="table" + :resultData="resultData" @handleSelectionChange="handleSelectionChange" :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + @queryParam="getQueryParam($event)" ref="rawMaterialTable"> - <template #toolbar></template> + <template #toolbar> + <el-button @click="exportRawMaterial" type="primary" >瀵煎嚭</el-button> + </template> </ttable> </basic-container> <!-- 寮圭獥, 鏂板 / 淇敼 --> @@ -33,20 +37,40 @@ ref="addOrUpdate" @refreshDataList="getData" ></RawMaterialForm> + <el-dialog + top="7vh" + title="鎵撳嵃棰勮" + :visible.sync="printDialogVisible" + width="70%"> + <div style="width:90%;margin-left:5%;height: 60vh;overflow-y: scroll;"> + <printTemplate id="printRaw" :formData="printFormData"></printTemplate> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="()=>{printDialogVisible = false;this.printFormData=null}">鍙� 娑�</el-button> + <el-button type="primary" @click="printFun()">鎵� 鍗�</el-button> + </span> + </el-dialog> </div> </template> - <script> import ttable from '@/views/common/ztt-table.vue' -import { getRawInspectList,delObj } from '@/api/quality/rawMaterial' +import { getRawInspectList,delObj,exportRawMaterial,getObj,downloadReport } from '@/api/quality/rawMaterial' import RawMaterialForm from './rawMaterial-form' import * as fecha from 'element-ui/lib/utils/date' import { mapGetters } from 'vuex' +import PrintJS from 'print-js' +import { transformZip } from '@/util/fileTransform' +import printTemplate from './rawMaterial-print.vue' export default { data() { return { + printFormData: null, + printDialogVisible: false, + queryParam: {}, + resultData:[], addOrUpdateVisible: false, type: [1], + multipleSelection: [], prelang: 'rawMaterial', ajaxFun: getRawInspectList, options: { @@ -61,7 +85,7 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'formTime', direction: 'desc' }, + defaultOrderBy: { column: 'createTime', direction: 'desc' }, }, table: { total: 0, @@ -72,12 +96,28 @@ column: [ { minWidth: '120', - prop: 'code', - label: '鍘熸潗鏂欑紪鐮�', + prop: 'rawInsNo', + label: '鍘熸潗鏂欐楠岀紪鍙�', isTrue: true, isSearch: true, searchInfoType: 'text', render: { fun: this.addOrUpdateHandle } + }, + { + minWidth: '120', + prop: 'code', + label: '鍘熸潗鏂欑紪鐮�', + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '120', + prop: 'projectName', + label: '椤圭洰鍚嶇О', + isTrue: true, + isSearch: true, + searchInfoType: 'text' }, { minWidth: '120', @@ -127,6 +167,7 @@ prop: 'createTime', label: '鎶ユ鏃ユ湡', isTrue: true, + sort: true, isSearch: true, searchInfoType: 'text', formatter: this.formatDateTime, @@ -166,25 +207,40 @@ label: '鍚堟牸鐘舵��', isTrue: true, isSearch: true, - searchInfoType: 'text', + searchInfoType: 'select', formatter: this.formatJudgeState, + optList: () => { + return this.StateList + } }, ], toolbar: [ - { - text: '鏂板', - type: 'primary', - fun: this.addOrUpdateHandle - }, - { - text: '瀵煎嚭', - } + { + text: '鏂板', + type: 'primary', + fun: this.addOrUpdateHandle + }, + { + text: '涓嬭浇妫�楠屾姤鍛�', + type: 'primary', + fun: this.downloadReport + } ], - operator: [{ - text: '鎵撳嵃', - type: 'text', - size: 'small', - },{ + operator: [ + // { + // text: '鎵撳嵃', + // type: 'text', + // size: 'small', + // fun: this.previewFun, + // show: { + // val: [ + // '1', + // '0' + // ], + // key: 'judgeState' + // } + // }, + { text: '浣滃簾', type: 'text', size: 'small', @@ -197,19 +253,107 @@ minWidth: 100 }, }, - insStateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉娴�',value:'1'},{label:'鏈娴�',value:'0'}] + insStateList: [{label:'鍏ㄩ儴',value:''},{label:'宸叉娴�',value:'1'},{label:'鏈娴�',value:'0'}], + StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸插悎鏍�',value:'1'},{label:'涓嶅悎鏍�',value:'0'}], } }, components: { ttable, RawMaterialForm, + printTemplate, }, - created() { - }, + created() { }, computed: { ...mapGetters(['permissions']) }, + watch:{ + printFormData(newVal){ + if(newVal){ + this.printFormData = newVal + } + } + }, methods:{ + downloadReport(){ + let selection = this.multipleSelection + if(!selection || selection.length < 1){ + this.$message.error("璇峰厛閫夋嫨妫�楠屾暟鎹�") + return + }else{ + let arr = selection.filter(s=>{ + return s.judgeState==null || s.judgeState=='' + }) + if(arr.length > 0){ + this.$message.error("鍙兘閫夋嫨宸叉娴嬬殑鏁版嵁") + return + } + let ids = [] + selection.forEach(ele=>{ + ids.push(ele.id) + }) + downloadReport({ids : ids}).then(res=>{ + transformZip(res) + }).catch(error=>{ + console.log(error) + }) + } + }, + //鏌ョ湅鎶ュ憡鎸夐挳 + previewFun(row){ + getObj(row.id).then(res=>{ + this.printFormData = res.data.data + this.printDialogVisible = true + }).catch(error=>{ + console.log(error); + }) + }, + //鎵撳嵃鎸夐挳 + printFun() { + this.printDialogVisible = false; + PrintJS({ + printable: "printRaw", + type: "html", + // header: "鍘熸潗鏂欐娴嬫姤鍛�", + targetStyles: ["*"], + style: `@page {margin: 0mm 5mm;size: A4;} + html {zoom:100%;} + @media print { + html,body{ + width:200mm; + height:297mm; + } + }`, + ignoreElements: ["no-ignore"], + orientation: 'portrait' + }); + }, + getQueryParam(data){ + this.queryParam = data + }, + exportRawMaterial(){ + exportRawMaterial(this.queryParam).then(res=>{ + this.downloadFun(res) + }).catch(error=>{ + console.log(error); + }) + }, + downloadFun(result){ + if(result == null || result == undefined){ + return; + } + var nameList = result.headers['content-disposition']; + nameList = decodeURI(nameList); + var fileName = nameList.split('=')[1]; + const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣 + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂 + downloadElement.click() // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) + }, // 鍒犻櫎 deleteHandle(row) { this.$confirm('鏄惁纭鍒犻櫎璇ユ暟鎹細' + row.code , '鎻愮ず', { @@ -233,7 +377,10 @@ addOrUpdateHandle(row) { this.$router.push({ name: 'rawMaterialForm', - query: { id: row == null ? null : row.id } + query: { + id: row == null ? null : row.id, + resultVal: row == null ? null : row.judgeState + } }) }, formatInsState(row, column, cellValue){ @@ -260,33 +407,33 @@ }, // table鑷甫浜嬩欢 handleSelectionChange(val) { + this.multipleSelection = val // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳 // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬� - var stateArr = val.map(function(value, index) { - return value.coState - }) + // var stateArr = val.map(function(value, index) { + // return value.coState + // }) // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲� - var uniqueStateArr = [] - for (var i = 0; i < stateArr.length; i++) { - if (uniqueStateArr.indexOf(stateArr[i]) == -1) { - uniqueStateArr.push(stateArr[i]) - } - } + // var uniqueStateArr = [] + // for (var i = 0; i < stateArr.length; i++) { + // if (uniqueStateArr.indexOf(stateArr[i]) == -1) { + // uniqueStateArr.push(stateArr[i]) + // } + // } // 寰幆鑷畾涔夋寜閽紝鍒ゆ柇姣忎釜鎸夐挳鐨刾ermitArr鏄惁瀹屽叏鍖呭惈閫変腑鐘舵�侊紝鑻ュ畬鍏ㄥ寘鍚紝鍒欐寜閽寒锛屽惁鍒欐寜閽伆 - for (var i = 0; i < this.stateTagArr.length; i++) { - if ( - uniqueStateArr.every((val) => - this.stateTagArr[i].permitArr.length <= 0 - ? true - : this.stateTagArr[i].permitArr.includes(val) - ) - ) { - this.stateTagArr[i].disabled = false - } else { - this.stateTagArr[i].disabled = true - } - } - this.multipleSelection = val + // for (var i = 0; i < this.stateTagArr.length; i++) { + // if ( + // uniqueStateArr.every((val) => + // this.stateTagArr[i].permitArr.length <= 0 + // ? true + // : this.stateTagArr[i].permitArr.includes(val) + // ) + // ) { + // this.stateTagArr[i].disabled = false + // } else { + // this.stateTagArr[i].disabled = true + // } + // } }, } } -- Gitblit v1.9.3