From c880739ec4cd5ede33b31eb98ad5f7628ea288e5 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 11 十二月 2023 17:41:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/quality/rawMaterial/index.vue |  184 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 140 insertions(+), 44 deletions(-)

diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue
index 297bd4e..0c11eb8 100644
--- a/src/views/quality/rawMaterial/index.vue
+++ b/src/views/quality/rawMaterial/index.vue
@@ -37,21 +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,exportRawMaterial } 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: {
@@ -77,12 +96,20 @@
                 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',
@@ -188,12 +215,32 @@
                     },
                 ],
                 toolbar: [
+                    {
+                        text: '鏂板',
+                        type: 'primary',
+                        fun: this.addOrUpdateHandle
+                    },
+                    {
+                        text: '涓嬭浇妫�楠屾姤鍛�',
+                        type: 'primary',
+                        fun: this.downloadReport
+                    }
+                ],
+                operator: [
+                //     {
+                //     text: '鎵撳嵃',
+                //     type: 'text',
+                //     size: 'small',
+                //     fun: this.previewFun,
+                //     show: {
+                //         val: [
+                //             '1',
+                //             '0'
+                //         ],
+                //         key: 'judgeState'
+                //     }
+                // },
                 {
-                    text: '鏂板',
-                    type: 'primary',
-                    fun: this.addOrUpdateHandle
-                }],
-                operator: [{
                     text: '浣滃簾',
                     type: 'text',
                     size: 'small',
@@ -210,31 +257,81 @@
             StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸插悎鏍�',value:'1'},{label:'涓嶅悎鏍�',value:'0'}],
         }
     },
-    // props:{
-    //     queryParam:{
-    //         type: Object,
-    //         default: ()=>{
-    //             return {}
-    //         }
-    //     }
-    // },
     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=>{
-                console.log(res)
                 this.downloadFun(res)
             }).catch(error=>{
                 console.log(error);
@@ -307,37 +404,36 @@
         },
         getData() {
             this.$refs.rawMaterialTable.getDataList()
- 
         },
         // 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