From efdd0cfd0c5b65b01491835e94352e8afcb78085 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 23 十二月 2024 16:58:01 +0800 Subject: [PATCH] 报告编制预览修改 --- src/components/do/b1-inspect-order-plan/humidity.vue | 16 ++++---- src/components/view/b1-report-preparation.vue | 79 +++++++++++++++++++++++++++++++-------- 2 files changed, 70 insertions(+), 25 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/humidity.vue b/src/components/do/b1-inspect-order-plan/humidity.vue index 9ca6f6e..5eead4d 100644 --- a/src/components/do/b1-inspect-order-plan/humidity.vue +++ b/src/components/do/b1-inspect-order-plan/humidity.vue @@ -3,7 +3,7 @@ <table border="1" cellpadding="10" class="thermal-table" style="margin-bottom: 20px;"> <template v-for="(item,index) in insProductList"> <tr> - <td style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;" colspan="6">{{ item.inspectionItemSubclass }}</td> + <td style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;" :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?7:6">{{ item.inspectionItemSubclass }}</td> </tr> <tr> <td style="font-size: 16px;background-color: #F0F1F5;">瑙勬牸鍨嬪彿</td> @@ -11,7 +11,7 @@ <td style="font-size: 16px;background-color: #F0F1F5;">璇曢獙鏂规硶</td> <td>{{item.methodS}}</td> <td style="font-size: 16px;background-color: #F0F1F5;">璁惧缂栧彿</td> - <td> + <td :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?2:1"> <el-select v-model="item.equipValue" placeholder="璇烽�夋嫨" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)"> <el-option v-for="item in equipOptions" @@ -26,11 +26,11 @@ <td style="font-size: 16px;background-color: #F0F1F5;">璇曢獙瑕佹眰</td> <td colspan="3" style="text-align: left;">{{item.tell}}</td> <td style="font-size: 16px;background-color: #F0F1F5;">璁惧鍚嶇О</td> - <td>{{ item.equipName }}</td> + <td :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?2:1">{{ item.equipName }}</td> </tr> <tr> <td style="font-size: 16px;background-color: #F0F1F5;">瀹為獙鍓嶆牱鍝佹鏌�</td> - <td :colspan="item.beforeCheck=='鐮存崯'?1:2"> + <td :colspan="item.beforeCheck=='鐮存崯'?1:(insProductList&&insProductList.find(m=>m.list0.length==6)?3:2)"> <el-select v-model="item.beforeCheck" placeholder="璇烽�夋嫨" size="small" :disabled="state>1" @change="save(item)"> <el-option v-for="item in options" @@ -55,7 +55,7 @@ </el-option> </el-select> </td> - <td v-if="item.afterCheck=='鐮存崯'"> + <td v-if="item.afterCheck=='鐮存崯'" :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?2:1"> <el-input v-model="item.afterNote" placeholder="鐮存崯璇存槑" size="small" :disabled="state>1" style="display: inline-block;width: 100%;" @change="save(item)" type="textarea" :rows="3"></el-input> </td> @@ -66,14 +66,14 @@ <el-input v-model="m.value" :placeholder="'绗�'+(i+1)+'娆�'" size="small" :disabled="state>1" style="display: inline-block;width: 50%;" @change="save(item)"></el-input> <el-button icon="el-icon-minus" circle size="mini" type="danger" :disabled="state>1" style="margin: 5px;display: inline-block;" @click="deleteList(item.list0,i,m)" ></el-button> - <el-button icon="el-icon-plus" circle size="mini" type="primary" :disabled="state>1" style="margin: 5px;display: inline-block;" v-if="i==item.list0.length-1&&i<4" @click="addList(item.list0,item.list0.length-1)"></el-button> + <el-button icon="el-icon-plus" circle size="mini" type="primary" :disabled="state>1" style="margin: 5px;display: inline-block;" v-if="i==item.list0.length-1&&i<5" @click="addList(item.list0,item.list0.length-1)"></el-button> </td> </tr> <tr style="background-color: #F0F1F5;"> <td colspan="2">鏃堕棿</td> <td colspan="1">娓╁害</td> <td colspan="1">婀垮害</td> - <td colspan="2">鎿嶄綔</td> + <td :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?3:2">鎿嶄綔</td> </tr> <tr v-for="(m,i) in item.list" :key="i+item.id"> <td colspan="2"> @@ -88,7 +88,7 @@ <td colspan="1"> <el-input v-model="m.humidity" placeholder="婀垮害" size="small" @change ="a=>handleReplace(m,'%rh','humidity',item)" :disabled="state>1"></el-input> </td> - <td colspan="2"> + <td :colspan="insProductList&&insProductList.find(m=>m.list0.length==6)?3:2"> <el-button icon="el-icon-minus" circle size="mini" type="danger" @click="deleteList(item.list,i,item)" :disabled="state>1" style="margin: 5px;"></el-button> <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(item.list,i,'out')" :disabled="state>1" style="margin: 5px;"></el-button> diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue index 01d848c..ab759b0 100644 --- a/src/components/view/b1-report-preparation.vue +++ b/src/components/view/b1-report-preparation.vue @@ -223,6 +223,17 @@ <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/> </el-dialog> + <!--鎶ュ憡鏌ョ湅--> + <el-dialog :fullscreen="fullscreen" top="5vh" :modal-append-to-body="false" :visible.sync="viewIssuedVisible" title="鎶ュ憡鏌ョ湅" + width="80vw"> + <div class="full-screen"> + <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"></i> + <img v-else alt="" src="../../../static/img/no-full.svg" style="cursor: pointer;" @click="fullscreen=false;" > + </div> + <div v-if="viewIssuedVisible" style="height: 80vh;"> + <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" /> + </div> + </el-dialog> </div> </template> @@ -387,7 +398,8 @@ inLoading:false, imgList:[], imgVisible:false, - currentImg:null + currentImg:null, + viewIssuedVisible:false } }, computed: { @@ -588,32 +600,65 @@ async selectAllByOne(row) { // let url = row.urlS ? row.urlS : row.url; // this.currentFile.url = this.javaApi + url; + // let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS + // fileName = fileName.replace('/word/','') + // const userName = JSON.parse(localStorage.getItem("user")).name; + // //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆 + // const { href } = this.$router.resolve({ + // path: `/wordEdit`, + // query: { + // url: this.javaApi + "/word/" + fileName, + // isEdit: false, + // fileType: "docx", + // title: fileName, + // lang: 'zh-CN', + // isPrint: true, + // user_id: 1, + // user_name: userName, + // } + // }) + // window.open(href, '_blank'); + // this.lookFileVisible = true + this.currentInfo = row; + console.log(`output->row`,row); let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS + let fileType = "docx" + if (row.tempUrlPdf != null || row.tempUrlPdf === '') { + fileName = row.tempUrlPdf + fileType = "pdf" + } fileName = fileName.replace('/word/','') const userName = JSON.parse(localStorage.getItem("user")).name; - //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆 - const { href } = this.$router.resolve({ - path: `/wordEdit`, - query: { - url: this.javaApi + "/word/" + fileName, - isEdit: false, - fileType: "docx", - title: fileName, - lang: 'zh-CN', - isPrint: true, - user_id: 1, - user_name: userName, - } - }) - window.open(href, '_blank'); - // this.lookFileVisible = true + this.option = { + url: this.javaApi + "/word/" + fileName, + isEdit: false, + fileType: fileType, + title: fileName, + lang: 'zh-CN', + isPrint: false, + user_id: 1, + user_name: userName, + editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName + } + // console.log(this.javaApi + "/word/" + fileName); + this.viewIssuedVisible = true; }, download(row) { + // 鍒ゆ柇row瀵硅薄涓槸鍚﹀瓨鍦╱rlS灞炴�э紝鑻ュ瓨鍦ㄥ垯浣跨敤urlS锛屽惁鍒欎娇鐢╱rl let url = row.urlS ? row.urlS : row.url; + + // 鍒涘缓涓�涓�<a>鏍囩鍏冪礌 const link = document.createElement('a'); + + // 璁剧疆<a>鏍囩鐨刪ref灞炴�э紝涓簀avaApi鍜寀rl鐨勭粍鍚� link.href = this.javaApi + url; + + // 璁剧疆<a>鏍囩鐨則arget灞炴�т负'_blank'锛岃〃绀哄湪鏂扮獥鍙d腑鎵撳紑閾炬帴 link.target = '_blank'; + + // 灏�<a>鏍囩娣诲姞鍒版枃妗g殑涓讳綋涓� document.body.appendChild(link); + link.click(); }, // 杩樺師鎿嶄綔 -- Gitblit v1.9.3