| | |
| | | <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"> |
| | | @keyup.enter.native="refreshTable()"></el-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> |
| | | :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" |
| | |
| | | <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-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" |
| | |
| | | :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)))" 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> |
| | |
| | | <viewManHourDia ref="viewManHourDia"></viewManHourDia> |
| | | <!--不合格复测查看弹框--> |
| | | <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" |
| | |
| | | import { mapGetters } from "vuex"; |
| | | 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, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | issuedVisible: false, |
| | | fullscreen: false, |
| | | lookDialogVisible: false, |
| | | option: null, |
| | | InspectionKey: 1, |
| | | bindDialogVisible: false, |
| | | bindAddDialogVisible: false, |
| | |
| | | }, |
| | | // 查看报告 |
| | | handleIssued(row) { |
| | | console.log('================') |
| | | // todo: 查看报告组件 |
| | | this.currentInfo = row; |
| | | let fileName = row.url |
| | |
| | | case null: |
| | | // 成品 |
| | | this.$router.push({ |
| | | path: "/productOrder/add", query: { |
| | | path: "/productOrder/addView", query: { |
| | | examine: this.examine, |
| | | active: this.activeFace, |
| | | currentId: this.currentId |
| | |
| | | if (response.code == 200) { |
| | | this.$refs.upload.clearFiles() |
| | | this.$message.success("上传成功"); |
| | | this.refreshTable() |
| | | } else { |
| | | this.$message.error(response.message); |
| | | } |
| | |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .search { |
| | | background-color: #fff; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | |
| | | .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 { |
| | |
| | | border-color: #3a7bfa; |
| | | 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 { |
| | |
| | | |
| | | .view-self-checkbox { |
| | | margin-left: 50px; |
| | | } |
| | | </style> |
| | | <style> |
| | | .ins-order-plan-main .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | </style> |