From 4b9dfff19ff70db47f99cb93070d0650267c6896 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 06 三月 2025 16:22:19 +0800
Subject: [PATCH] 检验任务-添加查看工时功能
---
src/views/business/inspectionReview/index.vue | 143 +++++++++++++++++++++++++----------------------
1 files changed, 77 insertions(+), 66 deletions(-)
diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue
index 15d685a..6d48595 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,36 +18,29 @@
</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"
- key="tableData0"></lims-table>
+ :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>
@@ -58,12 +50,14 @@
// 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 {upReportUrl} from "@/api/business/insReport";
+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 {
components: {
+ filePreview,
onlyoffice,
limsTable,
// ShowInfo,
@@ -74,6 +68,7 @@
},
data() {
return {
+ lookDialogVisible: false,
alone: false,
tabList: [],
active: 1,
@@ -171,10 +166,12 @@
},
{
name: "涓婁紶",
- type: "text",
- clickFun: (row) => {
- this.handleUpload(row);
- },
+ type: "upload",
+ accept: '.doc,.docx',
+ url: '/insReport/inReport',
+ uploadIdFun: (row) => {
+ return row.insReportId
+ }
},
{
name: "杩樺師",
@@ -212,18 +209,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: {},
@@ -231,7 +228,15 @@
showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
issuedVisible: false,
fullscreen: false,
- option:null,
+ option: null,
+ orderTypeList: [
+ { label: '濮旀墭璇曢獙', value: 'Customer-ordered test' },
+ { label: '鎶芥', value: '鎶芥' },
+ { label: '杩涘巶妫�楠�', value: '杩涘巶妫�楠�' },
+ { label: '瀛e害妫�楠�', value: 'Quarterly inspection' },
+ ],
+ urgencyLevel: [],
+ inspectionTaskState: [],
}
},
created() {
@@ -327,7 +332,7 @@
}
},
// 澶嶆牳鍥炶皟
- handleReview(row){
+ handleReview(row) {
this.$router.push({
path: "/inspectionTask/inspection",
query: {
@@ -337,10 +342,6 @@
orderId: row.id,
},
})
- },
- // 涓婁紶鎶ュ憡
- handleUpload () {
-
},
// 涓嬭浇鎶ュ憡
download(row) {
@@ -353,36 +354,46 @@
},
// 杩樺師鎿嶄綔
handleRestore(row) {
- 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) {
- this.currentInfo = row;
- let fileName = row.url
- 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;
- 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
- }
- this.issuedVisible = true;
+ if (!row.tempUrlPdf) return this.$message.warning('鏂囦欢鏈笂浼�')
+ this.currentInfo = row
+ this.lookDialogVisible = true
+ // this.currentInfo = row;
+ // let fileName = row.url
+ // let fileType = "docx"
+ // if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
+ // fileName = row.tempUrlPdf
+ // fileType = "pdf"
+ // }
+ // fileName = fileName.replace('/word/','')
+ // const userName = this.nickName
+ // 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
+ // }
+ // this.issuedVisible = true;
},
getAuthorizedPerson() {
selectUserCondition({ type: 1 }).then((res) => {
--
Gitblit v1.9.3