From d51599d19653dba1adfbae2b23a6c1332db5a0b2 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 22 十一月 2023 16:44:42 +0800
Subject: [PATCH] 质量字段添加

---
 src/views/quality/rawMaterial/index.vue |  137 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 123 insertions(+), 14 deletions(-)

diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue
index 63567c2..bdad739 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,
@@ -72,12 +94,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 +165,7 @@
                         prop: 'createTime',
                         label: '鎶ユ鏃ユ湡',
                         isTrue: true,
+                        sort: true,
                         isSearch: true,
                         searchInfoType: 'text',
                         formatter: this.formatDateTime,
@@ -166,8 +205,11 @@
                         label: '鍚堟牸鐘舵��',
                         isTrue: true,
                         isSearch: true,
-                        searchInfoType: 'text',
+                        searchInfoType: 'select',
                         formatter: this.formatJudgeState,
+                        optList: () => {
+                                return this.StateList
+                            }
                     },
                 ],
                 toolbar: [
@@ -175,16 +217,21 @@
                     text: '鏂板',
                     type: 'primary',
                     fun: this.addOrUpdateHandle
-                },
-                {
-                    text: '瀵煎嚭',
-                }
-                ],
+                }],
                 operator: [{
                     text: '鎵撳嵃',
                     type: 'text',
                     size: 'small',
-                },{
+                    fun: this.previewFun,
+                    show: {
+                        val: [
+                            '1',
+                            '0'
+                        ],
+                        key: 'judgeState'
+                    }
+                },
+                {
                     text: '浣滃簾',
                     type: 'text',
                     size: 'small',
@@ -197,19 +244,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: 880,
+                // header: "鍘熸潗鏂欐娴嬫姤鍛�",
+                style: '@page {margin: 10mm 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 +368,7 @@
         },
         getData() {
             this.$refs.rawMaterialTable.getDataList()
+ 
         },
         // table鑷甫浜嬩欢
         handleSelectionChange(val) {

--
Gitblit v1.9.3