zouyu
2023-11-18 3fbd3713082275f5af20797e11db0ece0ab83350
src/views/quality/rawMaterial/rawMaterial-print.vue
@@ -1,6 +1,6 @@
<template>
<div style="word-wrap:break-word;text-justify-trim:punctuation">
    <div class="WordSection1" style="layout-grid:15.6pt;margin-top: 20pt;">
    <div class="WordSection1" style="layout-grid:15.6pt;">
        <div align="center">
            <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="629"
                style="width:620pt;border-collapse:collapse;border:1pt solid windowtext">
@@ -71,19 +71,19 @@
                style="width:620pt;border-collapse:collapse;border:1pt solid windowtext">
                <tbody>
                    <tr>
                        <td width="121" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                        <td width="121" colspan="2" style="width:120pt;height:50pt;border:solid windowtext 1.0pt;padding:1pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">零件名称</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Part Description</span>
                            </p>
                        </td>
                        <td width="127" colspan="4" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="127" colspan="5" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                                <span lang="EN-US" style="font-family:&quot;Arial&quot;,sans-serif" v-text="tableData.name"></span>
                            </p>
                        </td>
                        <td width="113" colspan="4" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="113" colspan="3" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">型</span><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
@@ -107,18 +107,18 @@
                        </td>
                    </tr>
                    <tr>
                        <td width="101" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                        <td width="101" colspan="2" style="width:110pt;height:50pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">检验仪器</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Inspection
                                    instrument</span></p>
                        </td>
                        <td width="127" colspan="4" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="127" colspan="5" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif" v-text="deviceStr"></span></p>
                        </td>
                        <td width="113" colspan="4" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="113" colspan="3" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">检验数量</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
@@ -163,20 +163,20 @@
                        </td>
                    </tr>
                    <tr>
                        <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt">
                        <td width="145" colspan="3" style="width:109.1pt;height:40pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">技术要求</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Technical
                                    Requirement</span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                        <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt">
                            <div class="MsoNormal" align="center" style="text-align:center">
                                <span style="font-size:9.0pt;font-family:宋体">公差</span>
                                <span lang="EN-US" style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">TOL</span>
                            </p>
                                <p lang="EN-US" style="font-size:9.0pt;text-align: center;font-family:&quot;Arial&quot;,sans-serif">TOL</p>
                            </div>
                        </td>
                        <td width="43" v-for="(item,index) in 13" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="43" v-for="(item,index) in columnLength" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">{{item>9?item:'0'+item}}</span></p>
                        </td>
@@ -184,17 +184,17 @@
                </tbody>
                <tbody v-for="(item,index) in projectList" :key="index">
                    <tr style="height:19.85pt">
                        <td width="85" rowspan="16" style="width:63.95pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="85" :rowspan="item.children.length" style="width:63.95pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-family:宋体" v-text="item.rpFather"></span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif"></span></p>
                        </td>
                        <td width="60" colspan="2" style="width:65.15pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="60" colspan="2" style="width:65.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif" v-text="item.children[0].rpName"></span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="59" colspan="3" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif"  v-text="item.children[0].required"></span></p>
                        </td>
@@ -202,35 +202,39 @@
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{val}}</span></p>
                        </td>
                        <td width="74" style="width:55.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p v-if="item.children[0].testState==1" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                        <td width="74" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt">
                            <p v-if="item.children[0].testState=='1'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">合格</span></p>
                            <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                            <p v-if="item.children[0].testState=='0'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">不合格</span></p>
                            <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif"></span></p>
                        </td>
                    </tr>
                    <tr style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index">
                        <td width="60" colspan="2" style="width:45.15pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;
                        border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                    <tr class="pageTr" style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index">
                        <td width="60" colspan="2" style="width:45.15pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{j.rpName}}</span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="59" colspan="3" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{j.required}}</span></p>
                        </td>
                        <td width="59" v-for="(testValue,index) in j.testValueList" :key="index" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="59" v-for="(testValue,index) in j.testValueList" :key="index" style="width:44.4pt;border:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{testValue}}</span></p>
                        </td>
                        <td width="43" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">&nbsp;</span></p>
                        <td width="43" colspan="1" style="width:70pt;border:1pt solid windowtext;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                                <span lang="EN-US" style="font-family:&quot;Arial&quot;,sans-serif">
                                    {{ j.testState | formatState}}
                                </span>
                            </p>
                        </td>
                    </tr>
                </tbody>
                    <!-- bottom -->
                <tr style="height:40.95pt">
                <tr style="height:40.95pt" class="pageTr">
                    <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;
  border-top:1pt solid windowtext;padding:0cm 5.4pt 0cm 5.4pt;height:40.95pt">
                        <p class="MsoNormal" align="center" style="text-align:center"><span
@@ -337,6 +341,21 @@
            projectList: [],
            deviceStr: null,
            childrenData: [],
            columnLength: 12,
        }
    },
    filters:{
        formatState(state){
            if(state){
                if(state == "1"){
                    return "合格"
                }
                if(state == "0"){
                    return "不合格"
                }
                return null
            }
            return null
        }
    },
    methods:{
@@ -347,7 +366,9 @@
                    this.projectList.push(e)
                    if(e.children){
                        e.children.forEach(o =>{
                            deviceNameList.push(o.deviceName)
                            if(o.deviceName){
                                deviceNameList.push(o.deviceName)
                            }
                        })
                    }
                });
@@ -361,28 +382,30 @@
                            required: '',
                            rpName: '',
                            rpUnit: '',
                            testState: '',
                            testState: null,
                            userName: '',
                            testValueList: new Array(13)
                            testValueList: new Array(this.columnLength)
                        }
            let rowNum = 15
            let columnNum = this.columnLength
            if(list && list.length<2){
                list.forEach(item=>{
                    if(item.children && item.children.length < 15){
                        let size = 15 - item.children.length
                    if(item.children && item.children.length < rowNum){
                        rowNum-=item.children.length
                        for(let j=0;j<item.children.length;j++){
                            let arr = []
                            if(item.children[j].testValue){
                                arr = item.children[j].testValue.split(",")
                            }
                            item.children[j].testValueList = arr
                            if(item.children[0].testValueList.length<13){
                                let num = 13 - item.children[j].testValueList.length
                            if(item.children[0].testValueList.length< columnNum ){
                                let num = columnNum - item.children[j].testValueList.length
                                for(let i=0;i<num;i++){
                                    item.children[j].testValueList.push("")
                                }
                            }
                        }
                        for(let i=0;i< size;i++){
                        for(let i=0;i< rowNum;i++){
                            item.children.push(data)
                        }
                    }
@@ -392,30 +415,41 @@
                list.forEach(item=>{
                    if(item.children){
                        size+=item.children.length
                        item.children.forEach(obj=>{
                            if(obj.testValue){
                                let testValueList = obj.testValue.split(",")
                                obj.testValueList = testValueList
                                if(testValueList.length < columnNum){
                                    let len = columnNum-testValueList.length
                                    for(var i=0;i<len;i++){
                                        obj.testValueList.push("")
                                    }
                                }
                            }else{
                                obj.testValueList = new Array(12)
                            }
                        })
                    }
                })
                if(size<15){
                    let num = 15 - size
                if(size < rowNum){
                    let num = rowNum - size
                    for(let i=0;i<num;i++){
                        list[list.length-1].children.push(data)
                    }
                }
            }
            // this.projectList = list
            console.log("list----",list)
            this.projectList = list
        }
    },
    created(){
        this.tableData = this.formData
        this.initData()
        this.initProjectList(this.projectList)
        // console.log("aa--",this.tableData)
    },
    watch:{
        formData(newVal){
            if(newVal){
                this.projectList = []
                console.log(newVal)
                this.tableData = newVal
                this.initData()
                this.initProjectList(this.projectList)
@@ -456,6 +490,9 @@
   margin:72.0pt 2.0cm 2.0cm 2.0cm;
   layout-grid:15.6pt;
}
.pageTr{
    page-break-inside: avoid;
}
div.WordSection1{
    page : WordSection1;
}