From d1faa4f23135dabad9e2948842ba415eddfcc08b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 08 四月 2025 14:00:37 +0800
Subject: [PATCH] 修改检验对象
---
src/views/business/inspectionTask/index.vue | 208 ++++++++++++++++++++++++---------------------------
1 files changed, 99 insertions(+), 109 deletions(-)
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index b635be5..aa138cb 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,95 +1,85 @@
<template>
- <div class="ins-order-plan-main">
+ <div class="app-container">
<div style="height: 100%">
<div class="search">
- <div class="search_thing">
- <div class="search_label">濮旀墭缂栧彿锛�</div>
- <div class="search_input">
+ <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
+ <el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
<el-input v-model="queryParams.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
@keyup.enter.native="refreshTable()"></el-input>
- </div>
- </div>
- <div class="search_thing">
- <div class="search_label">妫�楠岀姸鎬侊細</div>
- <div class="search_input">
+ </el-form-item>
+ <el-form-item label="妫�楠岀姸鎬�" prop="insState">
<el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
<el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
:value="a.value"></el-option>
</el-select>
- </div>
- </div>
- <div class="search_thing" style="padding-left: 30px">
- <el-button size="small" @click="refresh()">閲� 缃�</el-button>
- <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
- </div>
+ </el-form-item>
+ <el-form-item>
+ <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
</div>
<div class="center">
<div class="center-options">
- <el-row>
- <el-col :span="21">
- <div style="display: flex; align-items: center">
- <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span>
- <ul class="tab">
- <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
- {{ m.label.replace("璇曢獙瀹�", "") }}
- </li>
- </ul>
- <div>
- <el-checkbox v-model="alone" class="view-self-checkbox"
- @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
- </div>
- </div>
- </el-col>
- <el-col :span="3">
- <div class="center-title">
- <span>鎬昏浠诲姟鏁伴噺:</span>
- <span>{{ page.total }}</span>
- </div>
- </el-col>
- </el-row>
+ <div style="display: flex; align-items: center">
+ <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span>
+ <ul class="tab">
+ <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
+ {{ m.label.replace("璇曢獙瀹�", "") }}
+ </li>
+ </ul>
+ <div>
+ <el-checkbox v-model="alone" class="view-self-checkbox"
+ @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
+ </div>
+ </div>
+ <div class="center-title">
+ <span>鎬昏浠诲姟鏁伴噺:</span>
+ <span>{{ page.total }}</span>
+ </div>
</div>
<lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
- :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
- key="tableData0">
+ :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0">
<div slot="action" slot-scope="scope">
<el-button size="small" type="text" @click="handleDataLook(scope.row)">鏁版嵁鏌ョ湅</el-button>
<el-button type="text" size="small"
- :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
- @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
+ :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
+ @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
<el-button type="text" size="small" :disabled="(
- scope.row.userName == null ||
- scope.row.insState == 3 ||
- scope.row.insState == 5 ||
- (scope.row.userName && !scope.row.userName.includes(nickName))
- )"
- @click="handleInspection(scope.row)">妫�楠�</el-button>
+ scope.row.userName == null ||
+ scope.row.insState == 3 ||
+ scope.row.insState == 5 ||
+ (scope.row.userName && !scope.row.userName.includes(nickName))
+ )" @click="handleInspection(scope.row)">妫�楠�</el-button>
<el-button type="text" size="small" :disabled="(
- scope.row.userName == null ||
- scope.row.insState == 5 ||
- scope.row.insState == 3 ||
- (scope.row.userName && !scope.row.userName.includes(nickName))
- )"
- @click="handleConnect(scope.row)">浜ゆ帴</el-button>
+ scope.row.userName == null ||
+ scope.row.insState == 5 ||
+ scope.row.insState == 3 ||
+ (scope.row.userName && !scope.row.userName.includes(nickName))
+ )" @click="handleConnect(scope.row)">浜ゆ帴</el-button>
<el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
<el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
<template #reference>
<el-button link type="text" size="small">鏇村</el-button>
</template>
<div>
- <el-button :disabled="scope.row.insState != 3" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
- <el-upload ref='upload'
- :action="javaApi + '/insReport/inReport'"
- :before-upload="beforeUpload"
- :data="{id: scope.row.insReportId}"
- :headers="uploadHeader" :on-error="onError"
- :on-success="handleSuccessUp"
- :show-file-list="false"
- style="display: inline;margin: 0 6px"
- accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
- <el-button :disabled="scope.row.insState != 3" size="small" type="text">涓婁紶</el-button>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px"
+ type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
+ <el-upload ref='upload' :action="javaApi + '/insReport/inReport'" :before-upload="beforeUpload"
+ :data="{ id: scope.row.insReportId }" :headers="uploadHeader" :on-error="onError"
+ :on-success="handleSuccessUp" :show-file-list="false" style="display: inline;margin: 0 6px"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small"
+ type="text">涓婁紶</el-button>
</el-upload>
- <el-button :disabled="scope.row.insState != 3" type="text" size="small" @click="handleRestore(scope.row)">杩樺師</el-button>
- <el-button :disabled="scope.row.insState != 3" type="text" size="small" @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
+ @click="handleRestore(scope.row)">杩樺師</el-button>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
+ @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
</div>
</el-popover>
</div>
@@ -161,7 +151,7 @@
</el-button>
</div>
<el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
- :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
<el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
</el-table-column>
<el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
@@ -177,7 +167,7 @@
</el-dialog>
<el-dialog :visible.sync="bindAddDialogVisible" title="閫夋嫨缁戝畾" width="600px">
<el-table :data="bindAddTableData" style="width: 100%" height="60vh"
- :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
@selection-change="handleBindAddSelectionChange">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
@@ -203,12 +193,30 @@
<!--鏌ョ湅宸ユ椂寮规-->
<viewManHourDia ref="viewManHourDia"></viewManHourDia>
<!--涓嶅悎鏍煎娴嬫煡鐪嬪脊妗�-->
- <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
+ <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible"
+ @closeRetestLook="closeRetestLook"></un-pass-retest-result>
+ <!--鎶ュ憡鏌ョ湅-->
+ <el-dialog title="鎶ュ憡鏌ョ湅" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
+ :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;">
+ </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 EditInspectionItem from "./components/EditInspectionItem.vue";
import limsTable from "@/components/Table/lims-table.vue";
import viewManHourDia from "./components/viewManHourDia.vue"
@@ -226,11 +234,14 @@
selectSampleAndProductByOrderId,
} from "@/api/business/inspectionTask.js";
import { mapGetters } from "vuex";
-import {getRetestResult} from "@/api/business/rawMaterialOrder";
-import {upReportUrl} from "@/api/business/insReport";
+import { getRetestResult } from "@/api/business/rawMaterialOrder";
+import { upReportUrl } from "@/api/business/insReport";
+import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
export default {
name: 'InspectionTask',
components: {
+ filePreview, onlyoffice,
EditInspectionItem,
limsTable,
viewManHourDia,
@@ -242,6 +253,10 @@
},
data() {
return {
+ issuedVisible: false,
+ fullscreen: false,
+ lookDialogVisible: false,
+ option: null,
InspectionKey: 1,
bindDialogVisible: false,
bindAddDialogVisible: false,
@@ -315,7 +330,7 @@
},
{
value: "Quarterly inspection",
- label: "瀛e害妫�楠�",
+ label: "鍙潬鎬ф楠�",
type: "warning",
effect: "plain",
},
@@ -481,6 +496,7 @@
}
},
},
+ { label: "妫�楠屼汉", prop: "checkUserName" },
{
dataType: "action",
fixed: "right",
@@ -493,7 +509,7 @@
this.getRetestResultInfo(row);
},
disabled: (row) => {
- return row.insResult!=0
+ return row.insResult != 0
},
},
{
@@ -621,7 +637,7 @@
},
// 涓嬭浇鎶ュ憡
download(row) {
- let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+ let url = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
const link = document.createElement('a');
link.href = this.javaApi + url;
link.target = '_blank';
@@ -646,6 +662,7 @@
},
// 鏌ョ湅鎶ュ憡
handleIssued(row) {
+ console.log('================')
// todo: 鏌ョ湅鎶ュ憡缁勪欢
this.currentInfo = row;
let fileName = row.url
@@ -654,7 +671,7 @@
fileName = row.tempUrlPdf
fileType = "pdf"
}
- fileName = fileName.replace('/word/','')
+ fileName = fileName.replace('/word/', '')
const userName = this.nickName
this.option = {
url: this.javaApi + "/word/" + fileName,
@@ -868,13 +885,13 @@
});
},
// 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
- getRetestResultInfo (row) {
- getRetestResult({insProductId: row.insProductId}).then(res => {
+ getRetestResultInfo(row) {
+ getRetestResult({ insProductId: row.insProductId }).then(res => {
this.retestVisible = true
this.retestInfo = res.data
})
},
- closeRetestLook () {
+ closeRetestLook() {
this.retestVisible = false
},
// 缁戝畾妫�楠岄」缁戝畾
@@ -943,7 +960,7 @@
});
});
},
- beforeUpload (file) {
+ beforeUpload(file) {
if (file.size > 1024 * 1024 * 10) {
this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
this.$refs.upload.clearFiles()
@@ -962,6 +979,7 @@
if (response.code == 200) {
this.$refs.upload.clearFiles()
this.$message.success("涓婁紶鎴愬姛");
+ this.refreshTable()
} else {
this.$message.error(response.message);
}
@@ -970,14 +988,6 @@
};
</script>
<style scoped>
-.search {
- background-color: #fff;
- height: 40px;
- display: flex;
- align-items: center;
- margin-top: 20px;
-}
-
.search_thing {
display: flex;
align-items: center;
@@ -992,20 +1002,6 @@
.search_input {
width: calc(100% - 120px);
-}
-
-.ins-order-plan-main .search {
- width: 100%;
- height: 40px;
- background-color: #fff;
- border-radius: 3px;
-}
-
-.ins-order-plan-main .center {
- background-color: #fff;
- border-radius: 3px;
- padding: 20px;
- padding-top: 0px;
}
.tab {
@@ -1036,11 +1032,10 @@
color: #3a7bfa;
}
-.center .center-options .center-title {
- width: 100%;
+.center-options {
display: flex;
align-items: center;
- justify-content: right;
+ justify-content: space-between;
}
.center .center-options .center-title span:last-child {
@@ -1051,10 +1046,5 @@
.view-self-checkbox {
margin-left: 50px;
-}
-</style>
-<style>
-.ins-order-plan-main .el-form-item__label {
- color: #000;
}
</style>
--
Gitblit v1.9.3