From 0f102473c642142976d537af4c505b8a7161d6c5 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 31 十月 2025 15:30:17 +0800
Subject: [PATCH] 原材料报检拆分功能V1
---
src/views/business/inspectionTask/index.vue | 1577 ++++++++++++++++++++++++++-------------------------------
1 files changed, 717 insertions(+), 860 deletions(-)
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 80b4a18..b6833ec 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,234 +1,103 @@
-<style scoped>
-.ins-order-plan-main .title {
- font-size: 20px;
- color: #3a7bfa;
-}
-
-.search {
- background-color: #fff;
- height: 80px;
- display: flex;
- align-items: center;
-}
-
-.search_thing {
- display: flex;
- align-items: center;
- height: 50px;
-}
-
-.search_label {
- width: 120px;
- font-size: 14px;
- text-align: right;
-}
-
-.search_input {
- width: calc(100% - 120px);
-}
-
-.ins-order-plan-main .search {
- width: 100%;
- margin-bottom: 10px;
- height: 80px;
- background-color: #fff;
- border-radius: 3px;
-}
-
-.search .form-inline {
- height: 50px;
- padding-top: 20px;
- padding-left: 50px;
-}
-
-.ins-order-plan-main .center {
- width: calc(100% - 40px);
- height: calc(100% - 60px - 80px - 40px);
- background-color: #fff;
- border-radius: 3px;
- padding: 20px;
-}
-
-.ins-order-plan-main .center .value-table {
- width: 100%;
- height: calc(100% - 68px);
-}
-
-.tab {
- list-style-type: none;
- display: flex;
-}
-
-.tab li {
- line-height: 24px;
- padding: 6px 14px;
- font-size: 14px;
- color: #333333;
- border: 1px solid #eeeeee;
- cursor: pointer;
-}
-
-.tab li:nth-child(1) {
- border-radius: 8px 0 0 8px;
-}
-
-.tab li:nth-last-child(1) {
- border-radius: 0 8px 8px 0;
-}
-
-.tab li.active {
- border-color: #3a7bfa;
- color: #3a7bfa;
-}
-
-.center .center-options .center-title {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: right;
-}
-
-.center .center-options .center-title span:last-child {
- color: #3a7bfa;
- font-size: 23px;
- font-weight: 400;
-}
-
-.view-self-checkbox {
- margin-left: 50px;
-}
-</style>
-<style>
-.ins-order-plan-main .el-form-item__label {
- color: #000;
-}
-
-.ins-order-plan-main .el-table th.el-table__cell > .cell {
- height: 46px;
- line-height: 30px;
-}
-</style>
<template>
- <div class="ins-order-plan-main">
- <div v-show="activeFace == 0 && state == 0" style="height: 100%">
- <p
- style="
- font-size: 16px;
- padding-left: 20px;
- text-align: left;
- height: 60px;
- line-height: 60px;
- "
- >
- 妫�楠屼换鍔�
- </p>
+ <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-input
- v-model="componentData.entity.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-select
- v-model="componentData.entity.insState"
- size="small"
- style="width: 100%"
- @change="refreshTable()"
- >
- <el-option
- v-for="(a, i) in insStateList"
- :key="i"
- :label="a.label"
- :value="a.value"
- ></el-option>
+ <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>
+ </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>
+ </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" v-loading="tableLoading">
+ <div class="center-options">
+ <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>
- <!-- <div class="search_thing">-->
- <!-- <div class="search_label">涓嬪崟绫诲埆锛�</div>-->
- <!-- <div class="search_input">-->
- <!-- <el-select v-model="componentData.entity.typeSource" clearable size="small" style="width: 100%;" @change="refreshTable()">-->
- <!-- <el-option v-for="(a, i) in typeSourceList" :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>
- </div>
- <div class="center">
- <div class="center-options">
- <el-row>
- <el-col :span="21">
- <div
- style="display: flex; align-items: center; margin-bottom: 10px"
- >
- <span style="margin-right: 8px">璇曢獙瀹ょ绫�:</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>
+ <lims-table :tableData="tableData" :column="column" :page="page"
+ :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>
+ <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>
+ <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>
+ <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
+ <el-popover placement="bottom" trigger="hover" style="margin-left: 6px" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||(scope.row.userName && !scope.row.userName.includes(nickName)))">
+ <template #reference>
+ <el-button link type="text" size="small" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))">鏇村</el-button>
+ </template>
+ <div>
+ <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 || 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-col>
- <el-col :span="3">
- <div class="center-title">
- <span>鎬昏浠诲姟鏁伴噺:</span>
- <span v-if="$refs.insOrderPlan != undefined">{{
- $refs.insOrderPlan.total
- }}</span>
- </div>
- </el-col>
- </el-row>
- </div>
- <ValueTable
- :key="upIndex"
- ref="insOrderPlan"
- :componentData="componentData"
- :isColumnWidth="true"
- :tableRowClassName="changeRowClass"
- :upUrl="$api.user.updateUser"
- :url="$api.insOrderPlan.selectInsOrderPlanList"
- class="value-table"
- @handleInspection="handleInspection"
- />
+ </el-popover>
+ </div>
+ </lims-table>
</div>
</div>
<el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
sampleUserForm.entrustCode
- }}</span
- >鐨勪换鍔�
+ }}</span>鐨勪换鍔�
<span slot="footer" class="dialog-footer">
<el-button @click="claimVisible = false">鍙� 娑�</el-button>
- <el-button :loading="loading" type="primary" @click="confirmClaim"
- >纭� 瀹�</el-button
- >
+ <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px">
@@ -237,18 +106,8 @@
<span class="required-span">* </span>浜ゆ帴浜哄憳锛�
</div>
<div class="search_input">
- <el-select
- v-model="connect.connectPerson"
- filterable
- placeholder="璇烽�夋嫨"
- style="width: 100%"
- >
- <el-option
- v-for="item in personList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
+ <el-select v-model="connect.connectPerson" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+ <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
@@ -258,102 +117,47 @@
<span class="required-span">* </span>璇曢獙瀹わ細
</div>
<div class="search_input">
- <el-select
- v-model="connect.sonLaboratory"
- filterable
- placeholder="璇烽�夋嫨"
- style="width: 100%"
- >
- <el-option
- v-for="item in sonLaboratoryList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
+ <el-select v-model="connect.sonLaboratory" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+ <el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="connectVisible = false">鍙� 娑�</el-button>
- <el-button :loading="loading" type="primary" @click="confirmConnect"
- >纭� 瀹�</el-button
- >
+ <el-button :loading="loading" type="primary" @click="confirmConnect">纭� 瀹�</el-button>
</span>
</el-dialog>
- <div
- v-if="activeFace > 0 && isCopper == null"
- style="width: 100%; height: 100%"
- >
- <!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> -->
- </div>
- <div
- v-if="activeFace > 0 && isCopper == 0"
- style="width: 100%; height: 100%"
- >
- <!-- <CustomsInspection
- :active="activeFace"
- :currentId="currentId"
- :customsInspection="customsInspection"
- :isReport="isReport"
- /> -->
- </div>
- <div
- v-if="activeFace > 0 && isCopper == 1"
- style="width: 100%; height: 100%"
- >
- <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> -->
- </div>
- <!--<Inspection
- v-if="state > 0"
- :key="InspectionKey"
- :inspectorList="inspectorList"
- :orderId="orderId"
- :sonLaboratory="sonLaboratory"
- :state="state"
- :typeSource="typeSource"
- @goback="goback"
- @refreshView="refreshView"
- />-->
<el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
- <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
- <ValueTable
- ref="ValueTableDataLook"
- :componentData="componentDataDataLook"
- :rowKey="'insProductId'"
- :url="$api.insOrder.selectSampleAndProductByOrderId"
- />
+ <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
+ <div>
+ <el-form :model="entity" :inline="true">
+ <el-form-item label="妫�楠岄」" prop="outputWorkTime">
+ <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button size="small" type="primary" @click="getLookList">鏌ヨ</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
+ :height="'60vh'" @pagination="lookPagination" key="tableData1" :key="upIndex"></lims-table>
</div>
</el-dialog>
- <el-dialog
- :visible.sync="bindDialogVisible"
- title="妫�楠岄」缁戝畾"
- width="600px"
- >
- <div
- slot="title"
- style="
+ <el-dialog :visible.sync="bindDialogVisible" title="妫�楠岄」缁戝畾" width="600px">
+ <div slot="title" style="
display: flex;
align-items: center;
justify-content: space-between;
- "
- >
+ ">
<span>妫�楠岄」缁戝畾</span>
- <el-button
- style="float: right; margin-left: 360px"
- size="small"
- @click="openBindAdd"
- type="primary"
- >
+ <el-button style="float: right; margin-left: 360px" size="small" @click="openBindAdd" type="primary">
鏂板
</el-button>
</div>
- <el-table :data="bindTableData" style="width: 100%" height="70vh">
- <el-table-column
- prop="inspectionItemClass"
- label="妫�楠岄」鍒嗙被"
- width="150"
- >
+ <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
+ :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">
</el-table-column>
@@ -361,30 +165,17 @@
</el-table-column>
<el-table-column label="鎿嶄綔">
<template slot-scope="scope">
- <el-button size="mini" type="text" @click="handleDelete(scope.row)"
- >鍒犻櫎</el-button
- >
+ <el-button size="mini" type="text" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
- <el-dialog
- :visible.sync="bindAddDialogVisible"
- title="閫夋嫨缁戝畾"
- width="600px"
- >
- <el-table
- :data="bindAddTableData"
- style="width: 100%"
- height="60vh"
- @selection-change="handleBindAddSelectionChange"
- >
+ <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
+ @selection-change="handleBindAddSelectionChange">
<el-table-column type="selection" width="55"> </el-table-column>
- <el-table-column
- prop="inspectionItemClass"
- label="妫�楠岄」鍒嗙被"
- width="150"
- >
+ <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
</el-table-column>
<el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
</el-table-column>
@@ -393,51 +184,87 @@
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="bindAddDialogVisible = false">鍙� 娑�</el-button>
- <el-button :loading="loading" type="primary" @click="bindAdd"
- >缁� 瀹�</el-button
- >
+ <el-button :loading="loading" type="primary" @click="bindAdd">缁� 瀹�</el-button>
</span>
</el-dialog>
- <un-pass-retest-result
- v-if="retestVisible"
- :retestInfo="retestInfo"
- :retestVisible="retestVisible"
- @closeRetestLook="closeRetestLook"
- ></un-pass-retest-result>
<!--浜т笟閾句俊鎭煡鐪�-->
<!-- <ShowInfo
v-if="showInfoDialog"
ref="showInfoDialog"
:showInfoDialog="showInfoDialog"
></ShowInfo> -->
+ <!--淇敼妫�楠屽�煎脊妗�-->
<edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
+ <!--鏌ョ湅宸ユ椂寮规-->
+ <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 ValueTable from "@/components/Table/value-table.vue";
-// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
-// import CustomsInspection from "../do/b1-material-ins-order/customs-inspection.vue";
import { getYearAndMonthAndDays } from "@/utils/date";
-// import Add from "../do/b1-ins-order/add.vue";
-// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
-// import CopperOrder from "../do/b1-material-ins-order/copper-order.vue";
+
import EditInspectionItem from "./components/EditInspectionItem.vue";
+import limsTable from "@/components/Table/lims-table.vue";
+import viewManHourDia from "./components/viewManHourDia.vue"
+import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue"
+import {
+ claimInsOrderPlan,
+ upPlanUser2,
+ upPlanUser,
+ selectUserCondition,
+ getBindingProductByProductId,
+ getProductTreeByProductId,
+ bindingProductTreeByProductId,
+ delProductTreeByProductId,
+ selectInsOrderPlanList,
+ selectSampleAndProductByOrderId,
+} from "@/api/business/inspectionTask.js";
+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,
- // CopperOrder,
- // ShowInfo,
- ValueTable,
- // Inspection,
- // Add,
- // CustomsInspection,
+ limsTable,
+ viewManHourDia,
+ UnPassRetestResult
+ },
+ dicts: ["urgency_level", "inspection_task_state"],
+ computed: {
+ ...mapGetters(["nickName", "userId"]),
},
data() {
return {
+ issuedVisible: false,
+ fullscreen: false,
+ lookDialogVisible: false,
+ option: null,
InspectionKey: 1,
bindDialogVisible: false,
bindAddDialogVisible: false,
+ bindTableDataLoading: false,
bindTableData: [],
bindAddTableData: [],
chooseBindAddList: [],
@@ -456,262 +283,7 @@
],
active: 1,
tabIndex: 0,
- componentDataDataLook: {
- entity: {
- id: 0,
- orderBy: {
- field: "sampleCode",
- order: "asc",
- },
- },
- isIndex: false,
- showSelect: false,
- select: false,
- do: [
- {
- id: "parent",
- font: "涓嶅悎鏍煎娴嬫煡鐪�",
- type: "text",
- method: "getRetestResult",
- disabFun: (row, index) => {
- return row.insResult != 0;
- },
- },
- {
- id: "parent",
- font: "妫�楠岄」缁戝畾",
- type: "text",
- method: "getBinding",
- disabFun: (row, index) => {
- return (
- this.lookInfo.userName == null ||
- this.lookInfo.insState == 3 ||
- this.lookInfo.insState == 5
- );
- },
- },
- ],
- tagField: {
- insState: {
- select: [],
- },
- insResult: {
- select: [
- {
- value: 1,
- label: "鍚堟牸",
- type: "success",
- },
- {
- value: 0,
- label: "涓嶅悎鏍�",
- type: "danger",
- },
- {
- value: 3,
- label: "涓嶅垽瀹�",
- type: "",
- },
- ],
- },
- },
- selectField: {},
- spanConfig: {
- rows: [
- {
- name: "sampleCode",
- index: 0,
- },
- {
- name: "sample",
- index: 1,
- },
- {
- name: "model",
- index: 6,
- },
- ],
- },
- requiredAdd: [],
- requiredUp: [],
- },
dataDialogVisible: false,
- componentData: {
- entity: {
- orderBy: {
- field: "entrustCode",
- order: "asc",
- },
- sonLaboratory: null,
- insState: null,
- userId: null,
- typeSource: null,
- },
- isIndex: true,
- showSelect: false,
- select: false,
- init: false,
- needSort: ["createTime", "sendTime", "type", "appointed", "insState"],
- do: [
- {
- id: "",
- font: "鏁版嵁鏌ョ湅",
- type: "text",
- method: "handleDataLook",
- },
- {
- id: "",
- font: "淇敼妫�楠屽��",
- type: "text",
- method: "editInspection",
- disabFun: (row, index) => {
- return (
- row.userName == null || row.insState == 3 || row.insState == 5
- );
- },
- },
- {
- id: "",
- font: "妫�楠�",
- type: "text",
- method: "handleInspection",
- disabFun: (row, index) => {
- return (
- row.userName == null ||
- row.insState == 3 ||
- row.insState == 5 ||
- (row.userName &&
- !row.userName.includes(
- JSON.parse(localStorage.getItem("user")).name
- ))
- );
- },
- },
- {
- id: "",
- font: "浜ゆ帴",
- type: "text",
- method: "handleConnect",
- disabFun: (row, index) => {
- return (
- row.userName == null ||
- row.insState == 5 ||
- row.insState == 3 ||
- (row.userName &&
- !row.userName.includes(
- JSON.parse(localStorage.getItem("user")).name
- ))
- );
- },
- },
- // {
- // font: '浜т笟閾�',
- // type: 'text',
- // method: 'openInfoDialog',
- // disabFun: (row, index) => {
- // return row.typeSource !== 1
- // }
- // },
- // {
- // id: '',
- // font: '璁ら',
- // type: 'text',
- // method: 'claimFun',
- // disabFun: (row, index) => {
- // return row.userName != null || row.checkName!=null
- // }
- // },
- {
- id: "",
- font: "鍘熷璁板綍",
- type: "text",
- method: "viewInspectInfo",
- },
- ],
- linkEvent: {
- entrustCode: {
- method: "selectAllByOne",
- },
- },
- tagField: {
- type: {
- select: [],
- },
- insState: {
- select: [],
- },
- insResult: {
- select: [
- {
- value: 0,
- label: "涓嶅悎鏍�",
- type: "danger",
- },
- {
- value: 1,
- label: "鍚堟牸",
- type: "success",
- },
- {
- value: "",
- label: "鏈嚭缁撴灉",
- type: "info",
- },
- ],
- },
- typeSource: {
- select: [
- {
- value: 0,
- label: "鎴愬搧涓嬪崟",
- type: "info",
- },
- {
- value: 1,
- label: "鍘熸潗鏂欎笅鍗�",
- type: "info",
- },
- {
- value: 2,
- label: "鍘熸潗鏂欎笅鍗�",
- type: "info",
- },
- ],
- },
- orderType: {
- select: [
- {
- value: "Customer-ordered test",
- label: "濮旀墭璇曢獙",
- type: "success",
- effect: "plain",
- },
- {
- value: "鎶芥",
- label: "鎶芥",
- type: "",
- effect: "plain",
- },
- {
- value: "杩涘巶妫�楠�",
- label: "杩涘巶妫�楠�",
- type: "info",
- effect: "plain",
- },
- {
- value: "Quarterly inspection",
- label: "瀛e害妫�楠�",
- type: "warning",
- effect: "plain",
- },
- ],
- },
- },
- selectField: {},
- requiredAdd: [],
- requiredUp: [],
- },
- upIndex: 0,
planTotal: 0,
insStateList: [],
state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
@@ -737,115 +309,387 @@
customsInspection: {},
showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
isReport: 0,
- retestVisible: false,
retestInfo: [],
isCopper: null,
bindCurrentInfo: {},
lookInfo: {},
+ orderTypeList: [
+ {
+ value: "Customer-ordered test",
+ label: "濮旀墭璇曢獙",
+ type: "success",
+ effect: "plain",
+ },
+ {
+ value: "鎶芥",
+ label: "鎶芥",
+ type: "",
+ effect: "plain",
+ },
+ {
+ value: "杩涘巶妫�楠�",
+ label: "杩涘巶妫�楠�",
+ type: "info",
+ effect: "plain",
+ },
+ {
+ value: "Quarterly inspection",
+ label: "瀛e害妫�楠�",
+ type: "warning",
+ effect: "plain",
+ },
+ ],
+ urgencyLevel: [],
+ inspectionTaskState: [],
+ tableData: [],
+ column: [
+ {
+ label: "濮旀墭缂栧彿",
+ prop: "entrustCode",
+ width: "160px",
+ dataType: "link",
+ linkMethod: "selectAllByOne",
+ },
+ { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
+ {
+ label: "涓嬪崟绫诲埆",
+ prop: "typeSource",
+ width: "100px",
+ dataType: "tag",
+ formatData: (params) => {
+ if (params == 0) {
+ return "鎴愬搧涓嬪崟";
+ } else {
+ return "鍘熸潗鏂欎笅鍗�";
+ }
+ },
+ },
+ { label: "鏍峰搧鍨嬪彿", prop: "sampleModel", width: "120px" },
+ {
+ label: "绱ф�ョ▼搴�",
+ prop: "type",
+ dataType: "tag",
+ formatData: (params) => {
+ if (params == 0) {
+ return '鏅��'
+ } else if (params == 1) {
+ return '浼樺厛'
+ } else {
+ return '绱ф��'
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'success'
+ } else if (params == 1) {
+ return 'warning'
+ } else {
+ return 'danger'
+ }
+ }
+ },
+ {
+ label: "妫�楠岀被鍨�",
+ prop: "orderType",
+ width: "100px",
+ dataType: "tag",
+ formatData: (params) => {
+ return this.orderTypeList.find((m) => m.value == params).label;
+ },
+ formatType: (params) => {
+ return this.orderTypeList.find((m) => m.value == params).type;
+ },
+ },
+ {
+ label: "鐘舵��",
+ prop: "insState",
+ dataType: "tag",
+ formatData: (params) => {
+ if (this.inspectionTaskState.find((m) => m.value == params)) {
+ return this.inspectionTaskState.find((m) => m.value == params).label;
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (this.inspectionTaskState.find((m) => m.value == params)) {
+ return this.inspectionTaskState.find((m) => m.value == params).type;
+ } else {
+ return null
+ }
+ },
+ },
+ { label: "妫�楠屼汉", prop: "userName" },
+ { label: "澶嶆牳浜�", prop: "checkName" },
+ { label: "绾﹀畾鏃堕棿", prop: "appointed" },
+ { label: "涓嬪彂鏃堕棿", prop: "sendTime", width: "140px" },
+ { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
+ { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
+ {
+ fixed: "right",
+ dataType: "slot",
+ slot: "action",
+ width: '340px',
+ label: "鎿嶄綔"
+ }
+ ],
+ page: {
+ total: 0,
+ size: 20,
+ current: 0,
+ },
+ tableLoading: false,
+ queryParams: {},
+ insResultList: [
+ {
+ value: 1,
+ label: "鍚堟牸",
+ type: "success",
+ },
+ {
+ value: 0,
+ label: "涓嶅悎鏍�",
+ type: "danger",
+ },
+ {
+ value: 3,
+ label: "涓嶅垽瀹�",
+ type: "",
+ },
+ ],
+ // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮�
+ entity: {
+ inspectionItem: "",
+ },
+ lookTableData: [],
+ lookColumn: [
+ {
+ label: "鏍峰搧缂栧彿",
+ prop: "sampleCode",
+ width: "140px",
+ mergeCol: true, //鍚堝苟鍒�
+ },
+ { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px", mergeCol: true },
+ { label: "妫�楠岄」鍒嗙被", prop: "inspectionItemClass" },
+ { label: "妫�楠岄」", prop: "inspectionItem", width: "140px" },
+ { label: "妫�楠屽瓙椤�", prop: "inspectionItemSubclass" },
+ { label: "鍗曚綅", prop: "unit" },
+ { label: "鏍峰搧鍨嬪彿", prop: "model", mergeCol: true },
+ { label: "鏉′欢", prop: "radius" },
+ { label: "鐢电紗鏍囪瘑", prop: "cableTag" },
+ { label: "璇曢獙瑕佹眰", prop: "tell" },
+ { label: "妫�楠岀粨鏋�", prop: "lastValue" },
+ {
+ label: "缁撴灉鍒ゅ畾",
+ prop: "insResult",
+ dataType: "tag",
+ formatData: (params) => {
+ let obj = this.insResultList.find((m) => m.value == params)
+ if (obj) {
+ return this.insResultList.find((m) => m.value == params).label;
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ let obj = this.insResultList.find((m) => m.value == params)
+ if (obj) {
+ return this.insResultList.find((m) => m.value == params).type;
+ } else {
+ return null
+ }
+ },
+ },
+ {
+ dataType: "action",
+ fixed: "right",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "涓嶅悎鏍煎娴嬫煡鐪�",
+ type: "text",
+ clickFun: (row) => {
+ this.getRetestResultInfo(row);
+ },
+ disabled: (row) => {
+ return row.insResult!=0
+ },
+ },
+ {
+ name: "妫�楠岄」缁戝畾",
+ type: "text",
+ clickFun: (row) => {
+ this.getBinding(row);
+ },
+ disabled: (row) => {
+ return (
+ this.lookInfo.userName == null ||
+ this.lookInfo.insState == 3 ||
+ this.lookInfo.insState == 5
+ );
+ },
+ },
+ ],
+ },
+ ],
+ lookPage: {
+ total: 0,
+ size: 20,
+ current: 0,
+ },
+ lookTableLoading: false,
+ // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫
+ retestVisible: false,
+ upIndex: 0
};
},
- created() {
- // this.getLaboratoryDicts()
- this.getTypeDicts();
- this.getInsStateDicts();
+ mounted() {
+ this.getAuthorizedPerson();
+ this.queryParams.userId = this.userId;
+ this.currentTime = getYearAndMonthAndDays();
+ this.getDicts("urgency_level").then((response) => {
+ this.urgencyLevel = this.dictToValue(response.data);
+ });
+ this.getDicts("inspection_task_state").then((response) => {
+ this.inspectionTaskState = this.dictToValue(response.data);
+ });
+ this.refreshTable();
+ },
+ activated() {
this.getAuthorizedPerson();
this.currentTime = getYearAndMonthAndDays();
- },
- mounted() {
- this.entityCopy = this.HaveJson(this.componentData.entity);
- let user = JSON.parse(localStorage.getItem("user"));
- this.componentData.entity.userId = user.userId;
- this.getPower();
+ this.getDicts("urgency_level").then((response) => {
+ this.urgencyLevel = this.dictToValue(response.data);
+ });
+ this.getDicts("inspection_task_state").then((response) => {
+ this.inspectionTaskState = this.dictToValue(response.data);
+ });
this.refreshTable();
},
methods: {
+ getList() {
+ this.tableLoading = true;
+ let param = { ...this.queryParams, ...this.page };
+ delete param.total;
+ selectInsOrderPlanList({ ...param })
+ .then((res) => {
+ this.tableLoading = false;
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total;
+ }
+ })
+ .catch((err) => {
+ this.tableLoading = false;
+ });
+ },
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.getList();
+ },
+ getLookList() {
+ this.lookTableLoading = true;
+ let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem };
+ delete param.total;
+ selectSampleAndProductByOrderId({ ...param })
+ .then((res) => {
+ this.lookTableLoading = false;
+ if (res.code === 200) {
+ this.lookTableData = res.data.records;
+ this.lookPage.total = res.data.total;
+ this.upIndex++
+ this.dataDialogVisible = true;
+ }
+ })
+ .catch((err) => {
+ this.lookTableLoading = false;
+ });
+ },
+ lookPagination({ page, limit }) {
+ this.lookPage.current = page;
+ this.lookPage.size = limit;
+ this.getLookList();
+ },
// 淇敼妫�楠屽��
editInspection(row) {
this.$refs.editInspectionItem.showDialog(row.id);
},
- // 鍒锋柊椤甸潰
- refreshView() {
- this.InspectionKey++;
+ // 鏌ョ湅宸ユ椂
+ viewManHour(row) {
+ this.$refs.viewManHourDia.showDialog(row.id, row.insState);
},
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
this.lookInfo = row;
- this.componentDataDataLook.entity.id = row.id;
- this.dataDialogVisible = true;
- },
- // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
- getRetestResult(row) {
- this.$axios
- .get(
- this.$api.insOrder.getRetestResult +
- "?insProductId=" +
- row.insProductId
- )
- .then((res) => {
- if (res.code == 201) return;
- this.retestVisible = true;
- this.retestInfo = res.data;
- });
- },
- //
- closeRetestLook() {
- this.retestVisible = false;
- },
- // 鏉冮檺鍒嗛厤
- getPower(radio) {
- let power = JSON.parse(sessionStorage.getItem("power"));
- let inspection = false;
- let connect = false;
- let review = false;
- let claim = false;
- for (var i = 0; i < power.length; i++) {
- if (power[i].menuMethod == "doInsOrder") {
- inspection = true;
- }
- if (power[i].menuMethod == "upPlanUser") {
- connect = true;
- }
- if (power[i].menuMethod == "verifyPlan") {
- review = true;
- }
- if (power[i].menuMethod == "claimInsOrderPlan") {
- claim = true;
- }
- }
- if (!claim) {
- this.componentData.do.splice(3, 1);
- }
- if (!review) {
- this.componentData.do.splice(2, 1);
- }
- if (!connect) {
- this.componentData.do.splice(1, 1);
- }
- if (!inspection) {
- this.componentData.do.splice(0, 1);
- }
+ this.getLookList();
},
changeCheckBox(val) {
- this.componentData.entity.userId = val ? 0 : null;
+ this.queryParams.userId = val ? 0 : null;
this.refreshTable();
},
refresh() {
- this.componentData.entity = this.HaveJson(this.entityCopy);
- let user = JSON.parse(localStorage.getItem("user"));
- this.componentData.entity.userId = user.userId;
+ this.queryParams = {};
+ this.queryParams.userId = this.userId;
this.alone = true;
this.refreshTable();
},
- // claimFun(row) {
- // if (row) {
- // this.sampleUserForm = {
- // entrustCode: row.entrustCode,
- // insSampleId: row.id,
- // sonLaboratory: row.sonLaboratory,
- // }
- // this.claimVisible = true
- // }
- // },
+ refreshTable(e) {
+ this.page.current = 1;
+ this.queryParams.typeSource = this.tabIndex;
+ this.getList();
+ },
+ // 涓嬭浇鎶ュ憡
+ download(row) {
+ let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+ const link = document.createElement('a');
+ link.href = this.javaApi + url;
+ link.target = '_blank';
+ document.body.appendChild(link);
+ link.click();
+ },
+ // 杩樺師鎿嶄綔
+ handleRestore(row) {
+ 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) {
+ console.log('================')
+ // todo: 鏌ョ湅鎶ュ憡缁勪欢
+ 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;
+ },
// 鏌ョ湅浜т笟閾句俊鎭�
openInfoDialog(row) {
this.showInfoDialog = true;
@@ -855,12 +699,7 @@
},
confirmClaim() {
this.loading = true;
- this.$axios
- .post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, {
- headers: {
- "Content-Type": "application/json",
- },
- })
+ claimInsOrderPlan(this.sampleUserForm)
.then((res) => {
if (res.code === 200 && res.data) {
this.loading = false;
@@ -874,11 +713,7 @@
this.loading = false;
});
},
- refreshTable(e) {
- this.componentData.entity.typeSource = this.tabIndex;
- this.$refs.insOrderPlan.selectList(e);
- },
- changeRowClass({ row, rowIndex }) {
+ rowClassName({ row, rowIndex }) {
if (this.currentTime == row.appointed) {
return "highlight-warning-row-border";
} else if (this.currentTime > row.appointed) {
@@ -886,83 +721,11 @@
}
return "";
},
- onReset() {
- this.searchForm = {
- sampleName: null,
- state: null,
- };
- this.componentData.entity.insState = null;
- this.componentData.entity.sampleName = null;
- this.refreshTable();
- },
- onSubmit() {
- this.componentData.entity.insState = this.searchForm.state;
- this.componentData.entity.sampleName = this.searchForm.sampleName;
- this.$nextTick(() => {
- this.refreshTable();
- });
- },
handleTab(m, i) {
this.tabIndex = i;
- this.componentData.entity.sonLaboratory = "";
+ this.queryParams.sonLaboratory = "";
this.refreshTable();
},
- getTypeDicts() {
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "绱ф�ョ▼搴�",
- })
- .then((res) => {
- let data = res.data;
- data.forEach((ele) => {
- if (ele.value === "0") {
- ele.type = "success";
- } else if (ele.value === "1") {
- ele.type = "warning";
- } else if (ele.value === "2") {
- ele.type = "danger";
- }
- });
- this.componentData.tagField.type.select = data;
- });
- },
- getInsStateDicts() {
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "妫�楠屼换鍔$姸鎬�",
- })
- .then((res) => {
- let data = res.data;
- this.insStateList = data;
- data.forEach((ele) => {
- //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
- if (["2", "5"].includes(ele.value)) {
- ele.type = "success";
- } else if (["1", "3"].includes(ele.value)) {
- ele.type = "warning";
- } else if (["0", "4"].includes(ele.value)) {
- ele.type = "danger";
- }
- });
- this.componentData.tagField.insState.select = data;
- });
- },
- // getLaboratoryDicts() {
- // this.$axios.post(this.$api.enums.selectEnumByCategory, {
- // category: "瀛愬疄楠屽"
- // }).then(res => {
- // this.tabList = res.data.map(ele => {
- // return {
- // label: ele.label,
- // value: ele.value
- // }
- // })
- // if(this.tabList.length>0){
- // this.componentData.entity.sonLaboratory = this.tabList[0].value
- // }
- // this.refreshTable()
- // })
- // },
selectAllByOne(row) {
this.isCopper = row.isCopper;
this.customsInspection = row;
@@ -970,9 +733,39 @@
this.examine = 1;
this.isReport = 0;
this.currentId = parseInt(row.id);
- },
- playOrder(num) {
- this.activeFace = num;
+ switch (row.isCopper) {
+ case 0:
+ // 鍘熸潗鏂�
+ this.$router.push({
+ path: "/materialOrder/customsInspectionView", query: {
+ customsInspection: row,
+ active: this.activeFace,
+ currentId: this.currentId,
+ isReport: this.isReport
+ }
+ });
+ break;
+ case null:
+ // 鎴愬搧
+ this.$router.push({
+ path: "/productOrder/addView", query: {
+ examine: this.examine,
+ active: this.activeFace,
+ currentId: this.currentId
+ }
+ });
+ break;
+ case 1:
+ // 閾滄潗
+ this.$router.push({
+ path: "/materialOrder/CopperView", query: {
+ active: this.activeFace,
+ currentId: this.currentId
+ }
+ });
+ break;
+ }
+
},
goback() {
this.state = 0;
@@ -985,15 +778,25 @@
if (row.userName) {
inspectorList = row.userName.split(",");
}
- let user = JSON.parse(localStorage.getItem("user"));
- if (user) {
- inspectorList.push(user.name);
+ if (this.nickName) {
+ inspectorList.push(this.nickName);
}
this.inspectorList = inspectorList;
this.sonLaboratory = row.sonLaboratory;
this.state = 1;
this.typeSource = row.typeSource;
this.orderId = row.id;
+ this.$router.push({
+ path: "/inspectionTask/inspection",
+ query: {
+ inspectorList: this.inspectorList,
+ sonLaboratory: this.sonLaboratory,
+ state: this.state,
+ typeSource: this.typeSource,
+ orderId: this.orderId,
+ isSplit: row.isSplitOrder
+ },
+ });
},
// 鏌ョ湅妫�楠屾暟鎹�
viewInspectInfo(row) {
@@ -1002,36 +805,41 @@
if (row.userName) {
inspectorList = row.userName.split(",");
}
- let user = JSON.parse(localStorage.getItem("user"));
- if (user) {
- inspectorList.push(user.name);
+ if (this.nickName) {
+ inspectorList.push(this.nickName);
}
this.inspectorList = inspectorList;
this.sonLaboratory = row.sonLaboratory;
this.state = 3;
this.typeSource = row.typeSource;
this.orderId = row.id;
+ this.$router.push({
+ path: "/inspectionTask/inspection",
+ query: {
+ inspectorList: this.inspectorList,
+ sonLaboratory: this.sonLaboratory,
+ state: this.state,
+ typeSource: this.typeSource,
+ orderId: this.orderId,
+ },
+ });
},
handleConnect(row) {
this.orderId = row.id;
this.connect = {};
this.connectVisible = true;
- this.$axios
- .post(this.$api.insOrderPlan.upPlanUser2, {
- orderId: this.orderId,
- })
- .then((res) => {
- if (res.code === 200 && res.data.length > 0) {
- this.sonLaboratoryList = [];
- res.data.forEach((m) => {
- this.sonLaboratoryList.push({
- value: m,
- label: m,
- });
+ upPlanUser2({ orderId: this.orderId }).then((res) => {
+ if (res.code === 200 && res.data.length > 0) {
+ this.sonLaboratoryList = [];
+ res.data.forEach((m) => {
+ this.sonLaboratoryList.push({
+ value: m,
+ label: m,
});
- this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
- }
- });
+ });
+ this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
+ }
+ });
},
confirmConnect() {
if (
@@ -1051,12 +859,11 @@
return;
}
this.loading = true;
- this.$axios
- .post(this.$api.insOrderPlan.upPlanUser, {
- orderId: this.orderId,
- userId: this.connect.connectPerson,
- sonLaboratory: this.connect.sonLaboratory,
- })
+ upPlanUser({
+ orderId: this.orderId,
+ userId: this.connect.connectPerson,
+ sonLaboratory: this.connect.sonLaboratory,
+ })
.then((res) => {
if (res.code === 200) {
this.loading = false;
@@ -1070,12 +877,8 @@
this.loading = false;
});
},
- handleReview(row) {
- this.state = 2;
- this.orderId = row.id;
- },
getAuthorizedPerson() {
- this.$axios.get(this.$api.user.getUserMenu).then((res) => {
+ selectUserCondition({ type: 1 }).then((res) => {
let data = [];
res.data.forEach((a) => {
data.push({
@@ -1086,21 +889,21 @@
this.personList = data;
});
},
+ // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
+ getRetestResultInfo (row) {
+ getRetestResult({insProductId: row.insProductId}).then(res => {
+ this.retestVisible = true
+ this.retestInfo = res.data
+ })
+ },
+ closeRetestLook () {
+ this.retestVisible = false
+ },
// 缁戝畾妫�楠岄」缁戝畾
getBinding(row) {
this.bindCurrentInfo = row;
- this.$axios
- .get(
- this.$api.insOrderPlan.getBindingProductByProductId +
- "?productId=" +
- row.insProductId
- )
+ getBindingProductByProductId({ productId: row.insProductId })
.then((res) => {
- if (res.coe == 201) {
- // this.$message.error('鏈粦瀹氭楠岄」')
- return;
- }
- // console.log(res)
this.bindTableData = res.data;
this.bindDialogVisible = true;
})
@@ -1109,18 +912,10 @@
});
},
openBindAdd() {
- this.$axios
- .get(
- this.$api.insOrderPlan.getProductTreeByProductId +
- "?productId=" +
- this.bindCurrentInfo.insProductId
- )
+ getProductTreeByProductId({
+ productId: this.bindCurrentInfo.insProductId,
+ })
.then((res) => {
- if (res.coe == 201) {
- // this.$message.error('鏈粦瀹氭楠岄」')
- return;
- }
- // console.log(res)
this.bindAddTableData = res.data;
this.bindAddDialogVisible = true;
})
@@ -1140,26 +935,12 @@
delete item.template;
});
this.loading = true;
- this.$axios
- .post(
- this.$api.insOrderPlan.bindingProductTreeByProductId,
- {
- insProductId: this.bindCurrentInfo.insProductId,
- insProductBindingList: this.chooseBindAddList,
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- noQs: true,
- }
- )
+ bindingProductTreeByProductId({
+ insProductId: this.bindCurrentInfo.insProductId,
+ insProductBindingList: this.chooseBindAddList,
+ })
.then((res) => {
this.loading = false;
- if (res.code == 201) {
- this.$message.error("缁戝畾澶辫触");
- return;
- }
this.$message.success("缁戝畾鎴愬姛");
this.bindAddDialogVisible = false;
this.getBinding(this.bindCurrentInfo);
@@ -1174,24 +955,100 @@
cancelButtonText: "鍙栨秷",
type: "warning",
}).then(async () => {
- this.$axios
- .get(
- this.$api.insOrderPlan.delProductTreeByProductId +
- "?productId=" +
- row.id
- )
- .then((res) => {
- if (res.coe == 201) {
- // this.$message.error('鏈粦瀹氭楠岄」')
- return;
- }
- this.getBinding(this.bindCurrentInfo);
- })
- .catch((error) => {
- console.error(error);
- });
+ this.bindTableDataLoading = true
+ delProductTreeByProductId({ productId: row.id }).then((res) => {
+ this.bindTableDataLoading = false
+ this.getBinding(this.bindCurrentInfo);
+ }).catch((error) => {
+ this.bindTableDataLoading = false
+ console.error(error);
+ });
});
+ },
+ beforeUpload (file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ return true;
+ }
+ },
+ onError(error, file, fileList, index) {
+ this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+ },
+ onExceed() {
+ this.$message.warning("瓒呭嚭鏂囦欢涓暟");
+ },
+ handleSuccessUp(response) {
+ if (response.code == 200) {
+ this.$refs.upload.clearFiles()
+ this.$message.success("涓婁紶鎴愬姛");
+ this.refreshTable()
+ } else {
+ this.$message.error(response.message);
+ }
},
},
};
</script>
+<style scoped>
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+}
+
+.search_label {
+ width: 100px;
+ font-size: 14px;
+ text-align: right;
+}
+
+.search_input {
+ width: calc(100% - 120px);
+}
+
+.tab {
+ list-style-type: none;
+ display: flex;
+ padding-left: 6px;
+}
+
+.tab li {
+ line-height: 24px;
+ padding: 4px 10px;
+ font-size: 14px;
+ color: #333333;
+ border: 1px solid #eeeeee;
+ cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+ border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-last-child(1) {
+ border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+ border-color: #3a7bfa;
+ color: #3a7bfa;
+}
+.center-options {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.center .center-options .center-title span:last-child {
+ color: #3a7bfa;
+ font-size: 23px;
+ font-weight: 400;
+}
+
+.view-self-checkbox {
+ margin-left: 50px;
+}
+</style>
--
Gitblit v1.9.3