From 0a26d58a3906b9e13946c7cb46fae51a0de98920 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期一, 17 三月 2025 15:49:08 +0800 Subject: [PATCH] Merge branch 'dev' into dev_tides --- src/views/business/inspectionReview/index.vue | 144 +++++++++++++++++++++++++++-------------------- 1 files changed, 83 insertions(+), 61 deletions(-) diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue index 3756557..98861dd 100644 --- a/src/views/business/inspectionReview/index.vue +++ b/src/views/business/inspectionReview/index.vue @@ -3,9 +3,8 @@ <div> <el-form :model="entity" ref="entity" size="small" :inline="true"> <el-form-item label="濮旀墭缂栧彿" prop="entrustCode"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="entity.entrustCode" - @keyup.enter.native="refreshTable()"></el-input> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.entrustCode" + @keyup.enter.native="refreshTable()"></el-input> </el-form-item> <el-form-item label="涓嬪崟绫诲埆" prop="entrustCode"> <el-select size="small" v-model="entity.typeSource" clearable style="width: 100%;" @change="refreshTable()"> @@ -19,53 +18,48 @@ </el-form> <div class="page_total"> <span>鎬昏浠诲姟鏁伴噺:</span> - <span>{{page.total}}</span> + <span>{{ page.total }}</span> </div> </div> <div> <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" - :rowClassName="rowClassName" :height="'calc(100vh - 250px)'" @pagination="pagination" + :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination" key="tableData0"></lims-table> </div> -<!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == null">--> -<!-- <Add :active="activeFace" :currentId="currentId"/>--> -<!-- </div>--> -<!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 0">--> -<!-- <CustomsInspection :active="activeFace" :customsInspection="customsInspection" :currentId="currentId"/>--> -<!-- </div>--> -<!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 1">--> -<!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder>--> -<!-- </div>--> -<!-- <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory" :typeSource="typeSource" :state="state"/>--> -<!-- <!–浜т笟閾句俊鎭煡鐪�–>--> -<!-- <ShowInfo v-if="showInfoDialog" :showInfoDialog="showInfoDialog" ref="showInfoDialog"></ShowInfo>--> <!--鎶ュ憡鏌ョ湅--> <el-dialog title="鎶ュ憡鏌ョ湅" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false" - :fullscreen="fullscreen"> + :fullscreen="fullscreen"> <div class="full-screen"> - <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i> - <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > + <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;" + v-if="!fullscreen"></i> + <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;"> </div> <div style="height: 80vh;" v-if="issuedVisible"> <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" /> </div> + </el-dialog> + <el-dialog title="鏌ョ湅闄勪欢" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen> + <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}" + style="max-height: 90vh;overflow-y: auto;" /> </el-dialog> </div> </template> <script> import { getYearAndMonthAndDays } from "@/utils/date"; -// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue"; import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue"; import limsTable from "@/components/Table/lims-table.vue"; -import {selectInsOrderPlanList, selectUserCondition} from "@/api/business/inspectionTask"; -import {mapGetters} from "vuex"; +import { selectInsOrderPlanList, selectUserCondition } from "@/api/business/inspectionTask"; +import { mapGetters } from "vuex"; +import { upReportUrl } from "@/api/business/insReport"; +import filePreview from "@/components/Preview/filePreview.vue"; export default { + name: 'InspectionReview', components: { + filePreview, onlyoffice, limsTable, - // ShowInfo, }, dicts: ["urgency_level", "inspection_task_state"], computed: { @@ -73,6 +67,7 @@ }, data() { return { + lookDialogVisible: false, alone: false, tabList: [], active: 1, @@ -113,7 +108,18 @@ prop: "type", dataType: "tag", formatData: (params) => { - return this.urgencyLevel.find((m) => m.value == params).label; + if (this.urgencyLevel.find((m) => m.value == params)) { + return this.urgencyLevel.find((m) => m.value == params).label; + } else { + return null + } + }, + formatType: (params) => { + if (this.urgencyLevel.find((m) => m.value == params)) { + return this.urgencyLevel.find((m) => m.value == params).type; + } else { + return null + } }, }, { @@ -133,11 +139,18 @@ prop: "insState", dataType: "tag", formatData: (params) => { - return this.inspectionTaskState.find((m) => m.value == params) - .label; + if (this.inspectionTaskState.find((m) => m.value == params)) { + return this.inspectionTaskState.find((m) => m.value == params).label; + } else { + return null + } }, formatType: (params) => { - return this.inspectionTaskState.find((m) => m.value == params).type; + if (this.inspectionTaskState.find((m) => m.value == params)) { + return this.inspectionTaskState.find((m) => m.value == params).type; + } else { + return null + } }, }, { label: "妫�楠屼汉", prop: "userName" }, @@ -158,7 +171,7 @@ this.handleReview(row); }, disabled: (row) => { - return row.userName == null || row.userName && !row.userName.includes(this.nickName) + return row.checkName == null || (row.checkName && !row.checkName.includes(this.nickName)) } }, { @@ -170,10 +183,12 @@ }, { name: "涓婁紶", - type: "text", - clickFun: (row) => { - this.handleUpload(row); - }, + type: "upload", + accept: '.doc,.docx', + url: '/insReport/inReport', + uploadIdFun: (row) => { + return row.insReportId + } }, { name: "杩樺師", @@ -211,18 +226,18 @@ upIndex: 0, planTotal: 0, insStateList: [], - state:0,//0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0 + state: 0,//0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0 activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0 examine: null, isReport: 0, currentId: null, orderId: 0, - personList:[], + personList: [], currentTime: null, - sonLaboratoryList:[], + sonLaboratoryList: [], typeSourceList: [ - {label: '鎴愬搧涓嬪崟', value: 0}, - {label: '鍘熸潗鏂欎笅鍗�', value: 1}, + { label: '鎴愬搧涓嬪崟', value: 0 }, + { label: '鍘熸潗鏂欎笅鍗�', value: 1 }, ], isCopper: null, customsInspection: {}, @@ -230,7 +245,15 @@ showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪� issuedVisible: false, fullscreen: false, - option:null, + option: null, + orderTypeList: [ + { label: '濮旀墭璇曢獙', value: 'Customer-ordered test', type: 'success' }, + { label: '鎶芥', value: '鎶芥', type: 'danger' }, + { label: '杩涘巶妫�楠�', value: '杩涘巶妫�楠�', type: 'info' }, + { label: '瀛e害妫�楠�', value: 'Quarterly inspection', type: '' }, + ], + urgencyLevel: [], + inspectionTaskState: [], } }, created() { @@ -246,8 +269,11 @@ mounted() { this.refreshTable() }, + activated() { + this.refreshTable() + }, methods: { - refreshTable(e) { + refreshTable() { this.tableLoading = true; let param = { ...this.entity, ...this.page }; delete param.total; @@ -278,13 +304,6 @@ } return ""; }, - // 鏌ョ湅浜т笟閾句俊鎭� - // openInfoDialog (row) { - // this.showInfoDialog = true - // this.$nextTick(() => { - // this.$refs.showInfoDialog.getInfo(row.ifsInventoryId) - // }) - // }, selectAllByOne(row) { this.isCopper = row.isCopper this.customsInspection = row @@ -326,7 +345,7 @@ } }, // 澶嶆牳鍥炶皟 - handleReview(row){ + handleReview(row) { this.$router.push({ path: "/inspectionTask/inspection", query: { @@ -336,10 +355,6 @@ orderId: row.id, }, }) - }, - // 涓婁紶鎶ュ憡 - handleUpload () { - }, // 涓嬭浇鎶ュ憡 download(row) { @@ -352,17 +367,24 @@ }, // 杩樺師鎿嶄綔 handleRestore(row) { - this.$axios.post(this.$api.insReport.upReportUrl, { - id: row.insReportId - }).then(res => { - if (res.code === 200) { - this.$message.success('鎿嶄綔鎴愬姛') - this.refreshTable('page') - } - }) + this.$confirm('鏄惁杩樺師褰撳墠鎶ュ憡?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + upReportUrl({ id: row.insReportId }).then(res => { + if (res.code === 200) { + this.$message.success('杩樺師鎴愬姛') + this.refreshTable() + } + }) + }).catch(() => { }) + }, // 鏌ョ湅鎶ュ憡 handleIssued(row) { + // todo: 鏌ョ湅鎶ュ憡缁勪欢 + console.log(this.javaApi) this.currentInfo = row; let fileName = row.url let fileType = "docx" @@ -371,7 +393,7 @@ fileType = "pdf" } fileName = fileName.replace('/word/','') - const userName = JSON.parse(localStorage.getItem("user")).name; + const userName = this.nickName this.option = { url: this.javaApi + "/word/" + fileName, isEdit: false, -- Gitblit v1.9.3