From c5190d45cc1b3bcb59bdd031fcee06a8774c3499 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期一, 17 三月 2025 14:03:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/business/inspectionTask/index.vue | 1832 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 920 insertions(+), 912 deletions(-) diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue index 6dccaa2..7917484 100644 --- a/src/views/business/inspectionTask/index.vue +++ b/src/views/business/inspectionTask/index.vue @@ -1,3 +1,923 @@ +<template> + <div class="ins-order-plan-main"> + <div style="height: 100%"> + <div class="search"> + <div class="search_thing"> + <div class="search_label">濮旀墭缂栧彿锛�</div> + <div class="search_input"> + <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-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> + </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> + <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" + :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" + key="tableData0"></lims-table> + </div> + </div> + <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px"> + 鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{ + sampleUserForm.entrustCode + }}</span>鐨勪换鍔� + <span slot="footer" class="dialog-footer"> + <el-button @click="claimVisible = false">鍙� 娑�</el-button> + <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px"> + <div class="search_thing"> + <div class="search_label" style="width: 90px"> + <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-option> + </el-select> + </div> + </div> + <div class="search_thing"> + <div class="search_label" style="width: 90px"> + <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-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> + </span> + </el-dialog> + <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%"> + <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"></lims-table> + </div> + </el-dialog> + <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> + </div> + <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> + <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"> + </el-table-column> + <el-table-column label="鎿嶄綔"> + <template slot-scope="scope"> + <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" + :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> + <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150"> + </el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"> + </el-table-column> + </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> + </span> + </el-dialog> + <!--浜т笟閾句俊鎭煡鐪�--> + <!-- <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> + </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 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"; +export default { + name: 'InspectionTask', + components: { + EditInspectionItem, + limsTable, + viewManHourDia, + UnPassRetestResult + }, + dicts: ["urgency_level", "inspection_task_state"], + computed: { + ...mapGetters(["nickName", "userId"]), + }, + data() { + return { + InspectionKey: 1, + bindDialogVisible: false, + bindAddDialogVisible: false, + bindTableDataLoading: false, + bindTableData: [], + bindAddTableData: [], + chooseBindAddList: [], + examine: null, + inspectorList: [], //妫�楠屼汉鍛樺垪琛� + alone: true, + sampleUserForm: { + entrustCode: null, + insSampleId: null, + userId: null, + }, + claimVisible: false, + tabList: [ + { label: "濮旀墭", value: 0 }, + { label: "鍘熸潗鏂�", value: 1 }, + ], + active: 1, + tabIndex: 0, + dataDialogVisible: false, + planTotal: 0, + insStateList: [], + state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅 + typeSource: null, // 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟 + sonLaboratory: null, // 0:濮旀墭锛�1锛氬師鏉愭枡 + activeFace: 0, // 1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0 + currentId: null, + entityCopy: {}, + orderId: 0, + personList: [], + connectVisible: false, + connect: { + connectPerson: "", + sonLaboratory: "", + }, + loading: false, + currentTime: null, + sonLaboratoryList: [], + typeSourceList: [ + { label: "鎴愬搧涓嬪崟", value: 0 }, + { label: "鍘熸潗鏂欎笅鍗�", value: 1 }, + ], + customsInspection: {}, + showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪� + isReport: 0, + 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" }, + { + dataType: "action", + fixed: "right", + label: "鎿嶄綔", + operation: [ + { + name: "鏁版嵁鏌ョ湅", + type: "text", + clickFun: (row) => { + this.handleDataLook(row); + }, + }, + { + name: "淇敼妫�楠屽��", + type: "text", + clickFun: (row) => { + this.editInspection(row); + }, + disabled: (row) => { + return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan']) + }, + }, + // { + // name: "鏌ョ湅宸ユ椂", + // type: "text", + // clickFun: (row) => { + // this.viewManHour(row); + // }, + // showHide: (row) => { + // return this.checkPermi(['get:working:hours:byOrder']) + // }, + // }, + { + name: "妫�楠�", + type: "text", + clickFun: (row) => { + this.handleInspection(row); + }, + disabled: (row) => { + return ( + row.userName == null || + row.insState == 3 || + row.insState == 5 || + (row.userName && !row.userName.includes(this.nickName)) + ); + }, + }, + { + name: "浜ゆ帴", + type: "text", + clickFun: (row) => { + this.handleConnect(row); + }, + disabled: (row) => { + return ( + row.userName == null || + row.insState == 5 || + row.insState == 3 || + (row.userName && !row.userName.includes(this.nickName)) + ); + }, + }, + { + name: "鍘熷璁板綍", + type: "text", + clickFun: (row) => { + this.viewInspectInfo(row); + }, + }, + ], + }, + ], + 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, + }; + }, + 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.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(); + }, + 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.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); + }, + // 鏌ョ湅宸ユ椂 + viewManHour(row) { + this.$refs.viewManHourDia.showDialog(row.id, row.insState); + }, + // 鏁版嵁鏌ョ湅 + handleDataLook(row) { + this.lookInfo = row; + this.getLookList(); + }, + changeCheckBox(val) { + this.queryParams.userId = val ? 0 : null; + this.refreshTable(); + }, + refresh() { + this.queryParams = {}; + this.queryParams.userId = this.userId; + this.alone = true; + this.refreshTable(); + }, + refreshTable(e) { + this.page.current = 1; + this.queryParams.typeSource = this.tabIndex; + this.getList(); + }, + // 鏌ョ湅浜т笟閾句俊鎭� + openInfoDialog(row) { + this.showInfoDialog = true; + this.$nextTick(() => { + this.$refs.showInfoDialog.getInfo(row.ifsInventoryId); + }); + }, + confirmClaim() { + this.loading = true; + claimInsOrderPlan(this.sampleUserForm) + .then((res) => { + if (res.code === 200 && res.data) { + this.loading = false; + this.$message.success("璁ら鎴愬姛"); + this.claimVisible = false; + this.refreshTable("page"); + } + }) + .catch((error) => { + console.error(error); + this.loading = false; + }); + }, + rowClassName({ row, rowIndex }) { + if (this.currentTime == row.appointed) { + return "highlight-warning-row-border"; + } else if (this.currentTime > row.appointed) { + return "highlight-danger-row-border"; + } + return ""; + }, + handleTab(m, i) { + this.tabIndex = i; + this.queryParams.sonLaboratory = ""; + this.refreshTable(); + }, + selectAllByOne(row) { + this.isCopper = row.isCopper; + this.customsInspection = row; + this.activeFace = 2; + this.examine = 1; + this.isReport = 0; + this.currentId = parseInt(row.id); + switch (row.isCopper) { + case 0: + // 鍘熸潗鏂� + this.$router.push({ + path: "/materialOrder/customsInspection", query: { + customsInspection: row, + active: this.activeFace, + currentId: this.currentId, + isReport: this.isReport + } + }); + break; + case null: + // 鎴愬搧 + this.$router.push({ + path: "/productOrder/add", query: { + examine: this.examine, + active: this.activeFace, + currentId: this.currentId + } + }); + break; + case 1: + // 閾滄潗 + this.$router.push({ + path: "/materialOrder/copperOrder", query: { + active: this.activeFace, + currentId: this.currentId + } + }); + break; + } + + }, + goback() { + this.state = 0; + this.refreshTable("page"); + }, + // 杩涜妫�楠屼换鍔� + handleInspection(row) { + //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃 + let inspectorList = []; + if (row.userName) { + inspectorList = row.userName.split(","); + } + 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, + }, + }); + }, + // 鏌ョ湅妫�楠屾暟鎹� + viewInspectInfo(row) { + //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃 + let inspectorList = []; + if (row.userName) { + inspectorList = row.userName.split(","); + } + 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; + 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; + } + }); + }, + confirmConnect() { + if ( + this.connect.connectPerson == null || + this.connect.connectPerson == "" || + this.connect.connectPerson == undefined + ) { + this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳"); + return; + } + if ( + this.connect.sonLaboratory == null || + this.connect.sonLaboratory == "" || + this.connect.sonLaboratory == undefined + ) { + this.$message.error("鏈�夋嫨璇曢獙瀹�"); + return; + } + this.loading = true; + upPlanUser({ + orderId: this.orderId, + userId: this.connect.connectPerson, + sonLaboratory: this.connect.sonLaboratory, + }) + .then((res) => { + if (res.code === 200) { + this.loading = false; + this.$message.success("鎿嶄綔鎴愬姛"); + this.refreshTable("page"); + } + this.connectVisible = false; + }) + .catch((error) => { + console.error(error); + this.loading = false; + }); + }, + getAuthorizedPerson() { + selectUserCondition({ type: 1 }).then((res) => { + let data = []; + res.data.forEach((a) => { + data.push({ + label: a.name, + value: a.id, + }); + }); + 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; + getBindingProductByProductId({ productId: row.insProductId }) + .then((res) => { + // console.log(res) + this.bindTableData = res.data; + this.bindDialogVisible = true; + }) + .catch((error) => { + console.error(error); + }); + }, + openBindAdd() { + getProductTreeByProductId({ + productId: this.bindCurrentInfo.insProductId, + }) + .then((res) => { + // console.log(res) + this.bindAddTableData = res.data; + this.bindAddDialogVisible = true; + }) + .catch((error) => { + console.error(error); + }); + }, + handleBindAddSelectionChange(list) { + this.chooseBindAddList = list; + }, + bindAdd() { + if (this.chooseBindAddList.length == 0) { + this.$message.error("璇烽�夋嫨妫�楠岄」"); + return; + } + this.chooseBindAddList.forEach((item) => { + delete item.template; + }); + this.loading = true; + bindingProductTreeByProductId({ + insProductId: this.bindCurrentInfo.insProductId, + insProductBindingList: this.chooseBindAddList, + }) + .then((res) => { + this.loading = false; + this.$message.success("缁戝畾鎴愬姛"); + this.bindAddDialogVisible = false; + this.getBinding(this.bindCurrentInfo); + }) + .catch((error) => { + console.error(error); + }); + }, + handleDelete(row) { + this.$confirm("纭鍒犻櫎姝ゆ楠岄」, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(async () => { + this.bindTableDataLoading = true + delProductTreeByProductId({ productId: row.id }).then((res) => { + this.bindTableDataLoading = false + this.getBinding(this.bindCurrentInfo); + }).catch((error) => { + this.bindTableDataLoading = false + console.error(error); + }); + }); + }, + }, +}; +</script> <style scoped> .search { background-color: #fff; @@ -87,915 +1007,3 @@ color: #000; } </style> -<template> - <div class="ins-order-plan-main"> - <div v-show="activeFace == 0" style="height: 100%"> - <div class="search"> - <div class="search_thing"> - <div class="search_label">濮旀墭缂栧彿锛�</div> - <div class="search_input"> - <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-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> - </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> - <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" - :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"></lims-table> - </div> - </div> - <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px"> - 鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{ - sampleUserForm.entrustCode - }}</span>鐨勪换鍔� - <span slot="footer" class="dialog-footer"> - <el-button @click="claimVisible = false">鍙� 娑�</el-button> - <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px"> - <div class="search_thing"> - <div class="search_label" style="width: 90px"> - <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-option> - </el-select> - </div> - </div> - <div class="search_thing"> - <div class="search_label" style="width: 90px"> - <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-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> - </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"> - <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading" - :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table> - </div> - </el-dialog> - <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> - </div> - <el-table :data="bindTableData" style="width: 100%" height="70vh"> - <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150"> - </el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150"> - </el-table-column> - <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"> - </el-table-column> - <el-table-column label="鎿嶄綔"> - <template slot-scope="scope"> - <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-table-column type="selection" width="55"> </el-table-column> - <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150"> - </el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150"> - </el-table-column> - <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"> - </el-table-column> - </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> - </span> - </el-dialog> - <!--浜т笟閾句俊鎭煡鐪�--> - <!-- <ShowInfo - v-if="showInfoDialog" - ref="showInfoDialog" - :showInfoDialog="showInfoDialog" - ></ShowInfo> --> - <edit-inspection-item ref="editInspectionItem"></edit-inspection-item> - </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 { - claimInsOrderPlan, - upPlanUser2, - upPlanUser, - selectUserCondition, - getBindingProductByProductId, - getProductTreeByProductId, - bindingProductTreeByProductId, - delProductTreeByProductId, - selectInsOrderPlanList, - selectSampleAndProductByOrderId, -} from "@/api/business/inspectionTask.js"; -import { mapGetters } from "vuex"; -export default { - components: { - EditInspectionItem, - // CopperOrder, - // ShowInfo, - ValueTable, - limsTable, - // Inspection, - // Add, - // CustomsInspection, - }, - dicts: ["urgency_level", "inspection_task_state"], - computed: { - ...mapGetters(["nickName", "userId"]), - }, - data() { - return { - InspectionKey: 1, - bindDialogVisible: false, - bindAddDialogVisible: false, - bindTableData: [], - bindAddTableData: [], - chooseBindAddList: [], - examine: null, - inspectorList: [], //妫�楠屼汉鍛樺垪琛� - alone: true, - sampleUserForm: { - entrustCode: null, - insSampleId: null, - userId: null, - }, - claimVisible: false, - tabList: [ - { label: "濮旀墭", value: 0 }, - { label: "鍘熸潗鏂�", value: 1 }, - ], - active: 1, - tabIndex: 0, - dataDialogVisible: false, - planTotal: 0, - insStateList: [], - state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅 - typeSource: null, // 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟 - sonLaboratory: null, // 0:濮旀墭锛�1锛氬師鏉愭枡 - activeFace: 0, // 1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0 - currentId: null, - entityCopy: {}, - orderId: 0, - personList: [], - connectVisible: false, - connect: { - connectPerson: "", - sonLaboratory: "", - }, - loading: false, - currentTime: null, - sonLaboratoryList: [], - typeSourceList: [ - { label: "鎴愬搧涓嬪崟", value: 0 }, - { label: "鍘熸潗鏂欎笅鍗�", value: 1 }, - ], - customsInspection: {}, - showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪� - isReport: 0, - 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: "140px", - dataType: "link", - linkMethod: "selectAllByOne", - }, - { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px" }, - { - label: "涓嬪崟绫诲埆", - prop: "typeSource", - dataType: "tag", - formatData: (params) => { - if (params == 0) { - return "鎴愬搧涓嬪崟"; - } else { - return "鍘熸潗鏂欎笅鍗�"; - } - }, - }, - { label: "鏍峰搧鍨嬪彿", prop: "sampleModel", width: "120px" }, - { - label: "绱ф�ョ▼搴�", - prop: "type", - dataType: "tag", - formatData: (params) => { - return this.urgencyLevel.find((m) => m.value == params).label; - }, - }, - { - label: "妫�楠岀被鍨�", - prop: "orderType", - 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) => { - return this.inspectionTaskState.find((m) => m.value == params) - .label; - }, - formatType: (params) => { - return this.inspectionTaskState.find((m) => m.value == params).type; - }, - }, - { label: "妫�楠屼汉", prop: "userName" }, - { label: "澶嶆牳浜�", prop: "checkName" }, - { label: "绾﹀畾鏃堕棿", prop: "appointed" }, - { label: "涓嬪彂鏃堕棿", prop: "sendTime", width: "140px" }, - { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" }, - { label: "鐞嗙敱", prop: "verifyTell", width: "140px" }, - { - dataType: "action", - fixed: "right", - label: "鎿嶄綔", - operation: [ - { - name: "鏁版嵁鏌ョ湅", - type: "text", - clickFun: (row) => { - this.handleDataLook(row); - }, - }, - { - name: "淇敼妫�楠屽��", - type: "text", - clickFun: (row) => { - this.editInspection(row); - }, - disabled: (row) => { - return ( - row.userName == null || row.insState == 3 || row.insState == 5 - ); - }, - }, - { - name: "妫�楠�", - type: "text", - clickFun: (row) => { - this.handleInspection(row); - }, - disabled: (row) => { - return ( - row.userName == null || - row.insState == 3 || - row.insState == 5 || - (row.userName && !row.userName.includes(this.nickName)) - ); - }, - }, - { - name: "浜ゆ帴", - type: "text", - clickFun: (row) => { - this.handleConnect(row); - }, - disabled: (row) => { - return ( - row.userName == null || - row.insState == 5 || - row.insState == 3 || - (row.userName && !row.userName.includes(this.nickName)) - ); - }, - }, - { - name: "鍘熷璁板綍", - type: "text", - clickFun: (row) => { - this.viewInspectInfo(row); - }, - }, - ], - }, - ], - page: { - total: 0, - size: 10, - current: 0, - }, - tableLoading: false, - queryParams: {}, - insResultList: [ - { - value: 1, - label: "鍚堟牸", - type: "success", - }, - { - value: 0, - label: "涓嶅悎鏍�", - type: "danger", - }, - { - value: 3, - label: "涓嶅垽瀹�", - type: "", - }, - ], - // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮� - 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) => { - return this.insResultList.find((m) => m.value == params).label; - }, - formatType: (params) => { - return this.insResultList.find((m) => m.value == params).type; - }, - }, - { - dataType: "action", - fixed: "right", - label: "鎿嶄綔", - operation: [ - { - 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: 10, - current: 0, - }, - lookTableLoading: false, - // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫 - }; - }, - created() { - this.getAuthorizedPerson(); - 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); - }); - }, - mounted() { - this.queryParams.userId = this.userId; - // this.getPower(); - 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 }; - 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.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.getList(); - }, - // 鏁版嵁鏌ョ湅 - handleDataLook(row) { - this.lookInfo = row; - this.getLookList(); - }, - // 鏉冮檺鍒嗛厤 - 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); - } - }, - changeCheckBox(val) { - this.queryParams.userId = val ? 0 : null; - this.refreshTable(); - }, - refresh() { - this.queryParams = {}; - this.queryParams.userId = this.userId; - this.alone = true; - this.refreshTable(); - }, - refreshTable(e) { - this.page.current = 1; - this.queryParams.typeSource = this.tabIndex; - this.getList(); - }, - // claimFun(row) { - // if (row) { - // this.sampleUserForm = { - // entrustCode: row.entrustCode, - // insSampleId: row.id, - // sonLaboratory: row.sonLaboratory, - // } - // this.claimVisible = true - // } - // }, - // 鏌ョ湅浜т笟閾句俊鎭� - openInfoDialog(row) { - this.showInfoDialog = true; - this.$nextTick(() => { - this.$refs.showInfoDialog.getInfo(row.ifsInventoryId); - }); - }, - confirmClaim() { - this.loading = true; - claimInsOrderPlan(this.sampleUserForm) - .then((res) => { - if (res.code === 200 && res.data) { - this.loading = false; - this.$message.success("璁ら鎴愬姛"); - this.claimVisible = false; - this.refreshTable("page"); - } - }) - .catch((error) => { - console.error(error); - this.loading = false; - }); - }, - changeRowClass({ row, rowIndex }) { - if (this.currentTime == row.appointed) { - return "highlight-warning-row-border"; - } else if (this.currentTime > row.appointed) { - return "highlight-danger-row-border"; - } - return ""; - }, - onReset() { - this.searchForm = { - sampleName: null, - state: null, - }; - this.queryParams.insState = null; - this.queryParams.sampleName = null; - this.refreshTable(); - }, - onSubmit() { - this.queryParams.insState = this.searchForm.state; - this.queryParams.sampleName = this.searchForm.sampleName; - this.$nextTick(() => { - this.refreshTable(); - }); - }, - handleTab(m, i) { - this.tabIndex = i; - this.queryParams.sonLaboratory = ""; - this.refreshTable(); - }, - // 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; - this.activeFace = 2; - this.examine = 1; - this.isReport = 0; - this.currentId = parseInt(row.id); - }, - playOrder(num) { - this.activeFace = num; - }, - goback() { - this.state = 0; - this.refreshTable("page"); - }, - // 杩涜妫�楠屼换鍔� - handleInspection(row) { - //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃 - let inspectorList = []; - if (row.userName) { - inspectorList = row.userName.split(","); - } - 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, - }, - }); - }, - // 鏌ョ湅妫�楠屾暟鎹� - viewInspectInfo(row) { - //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃 - let inspectorList = []; - if (row.userName) { - inspectorList = row.userName.split(","); - } - 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; - }, - handleConnect(row) { - this.orderId = row.id; - this.connect = {}; - this.connectVisible = true; - 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; - } - }); - }, - confirmConnect() { - if ( - this.connect.connectPerson == null || - this.connect.connectPerson == "" || - this.connect.connectPerson == undefined - ) { - this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳"); - return; - } - if ( - this.connect.sonLaboratory == null || - this.connect.sonLaboratory == "" || - this.connect.sonLaboratory == undefined - ) { - this.$message.error("鏈�夋嫨璇曢獙瀹�"); - return; - } - this.loading = true; - upPlanUser({ - orderId: this.orderId, - userId: this.connect.connectPerson, - sonLaboratory: this.connect.sonLaboratory, - }) - .then((res) => { - if (res.code === 200) { - this.loading = false; - this.$message.success("鎿嶄綔鎴愬姛"); - this.refreshTable("page"); - } - this.connectVisible = false; - }) - .catch((error) => { - console.error(error); - this.loading = false; - }); - }, - handleReview(row) { - this.state = 2; - this.orderId = row.id; - }, - getAuthorizedPerson() { - selectUserCondition({ type: 1 }).then((res) => { - let data = []; - res.data.forEach((a) => { - data.push({ - label: a.name, - value: a.id, - }); - }); - this.personList = data; - }); - }, - // 缁戝畾妫�楠岄」缁戝畾 - getBinding(row) { - this.bindCurrentInfo = row; - getBindingProductByProductId({ productId: row.insProductId }) - .then((res) => { - if (res.coe == 201) { - // this.$message.error('鏈粦瀹氭楠岄」') - return; - } - // console.log(res) - this.bindTableData = res.data; - this.bindDialogVisible = true; - }) - .catch((error) => { - console.error(error); - }); - }, - openBindAdd() { - 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; - }) - .catch((error) => { - console.error(error); - }); - }, - handleBindAddSelectionChange(list) { - this.chooseBindAddList = list; - }, - bindAdd() { - if (this.chooseBindAddList.length == 0) { - this.$message.error("璇烽�夋嫨妫�楠岄」"); - return; - } - this.chooseBindAddList.forEach((item) => { - delete item.template; - }); - this.loading = 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); - }) - .catch((error) => { - console.error(error); - }); - }, - handleDelete(row) { - this.$confirm("纭鍒犻櫎姝ゆ楠岄」, 鏄惁缁х画?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }).then(async () => { - delProductTreeByProductId({ productId: row.id }) - .then((res) => { - if (res.coe == 201) { - // this.$message.error('鏈粦瀹氭楠岄」') - return; - } - this.getBinding(this.bindCurrentInfo); - }) - .catch((error) => { - console.error(error); - }); - }); - }, - }, -}; -</script> -- Gitblit v1.9.3