From d389d02439b024f7ca6d993ce156eef702840524 Mon Sep 17 00:00:00 2001 From: 86134 <aa> Date: 星期三, 08 十一月 2023 11:29:25 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/views/quality/rawMaterial/index.vue | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 106 insertions(+), 12 deletions(-) diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue index 63567c2..4765239 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,18 +37,36 @@ ref="addOrUpdate" @refreshDataList="getData" ></RawMaterialForm> + <el-dialog + top="10vh" + title="鎵撳嵃棰勮" + :visible.sync="printDialogVisible" + width="60%"> + <div style="width:100%;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 } 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 printTemplate from './rawMaterial-print.vue' export default { data() { return { + printFormData: null, + printDialogVisible: false, + queryParam: {}, + resultData:[], addOrUpdateVisible: false, type: [1], prelang: 'rawMaterial', @@ -61,7 +83,7 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'formTime', direction: 'desc' }, + defaultOrderBy: { column: 'createTime', direction: 'desc' }, }, table: { total: 0, @@ -78,6 +100,14 @@ isSearch: true, searchInfoType: 'text', render: { fun: this.addOrUpdateHandle } + }, + { + minWidth: '120', + prop: 'projectName', + label: '椤圭洰鍚嶇О', + isTrue: true, + isSearch: true, + searchInfoType: 'text' }, { minWidth: '120', @@ -127,6 +157,7 @@ prop: 'createTime', label: '鎶ユ鏃ユ湡', isTrue: true, + sort: true, isSearch: true, searchInfoType: 'text', formatter: this.formatDateTime, @@ -166,8 +197,11 @@ label: '鍚堟牸鐘舵��', isTrue: true, isSearch: true, - searchInfoType: 'text', + searchInfoType: 'select', formatter: this.formatJudgeState, + optList: () => { + return this.StateList + } }, ], toolbar: [ @@ -175,16 +209,14 @@ text: '鏂板', type: 'primary', fun: this.addOrUpdateHandle - }, - { - text: '瀵煎嚭', - } - ], + }], operator: [{ text: '鎵撳嵃', type: 'text', size: 'small', - },{ + fun: this.previewFun + }, + { text: '浣滃簾', type: 'text', size: 'small', @@ -197,19 +229,80 @@ 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() { + }, computed: { ...mapGetters(['permissions']) }, + watch:{ + printFormData(newVal){ + if(newVal){ + this.printFormData = newVal + } + } + }, methods:{ + //鏌ョ湅鎶ュ憡鎸夐挳 + 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", + maxWidth: 1200, + // header: "鍘熸潗鏂欐娴嬫姤鍛�", + style: '@page {margin: 0 5mm}', + targetStyles: ["*"], + ignoreElements: ["no-ignore"], + orientation: 'portrait' + }); + }, + getQueryParam(data){ + this.queryParam = data + }, + exportRawMaterial(){ + exportRawMaterial(this.queryParam).then(res=>{ + console.log(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 , '鎻愮ず', { @@ -260,6 +353,7 @@ }, getData() { this.$refs.rawMaterialTable.getDataList() + }, // table鑷甫浜嬩欢 handleSelectionChange(val) { -- Gitblit v1.9.3