From c7f3b447415448e6ae570882900ee129590f580b Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 09 四月 2025 17:47:30 +0800 Subject: [PATCH] Merge branch 'radio-frequency-cable' of http://114.132.189.42:9002/r/lims-ruoyi-before into radio-frequency-cable --- src/views/business/inspectionTask/index.vue | 766 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 409 insertions(+), 357 deletions(-) diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue index 6dccaa2..9c622a9 100644 --- a/src/views/business/inspectionTask/index.vue +++ b/src/views/business/inspectionTask/index.vue @@ -1,150 +1,95 @@ -<style scoped> -.search { - background-color: #fff; - height: 40px; - display: flex; - align-items: center; - margin-top: 20px; -} - -.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); -} - -.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 { - 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 .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; -} -</style> <template> - <div class="ins-order-plan-main"> - <div v-show="activeFace == 0" style="height: 100%"> + <div class="app-container"> + <div style="height: 100%"> <div class="search"> - <div class="search_thing"> - <div class="search_label">濮旀墭缂栧彿锛�</div> - <div class="search_input"> + <el-form :model="queryParams" ref="queryParams" size="small" :inline="true"> + <el-form-item label="濮旀墭缂栧彿" prop="entrustCode"> <el-input v-model="queryParams.entrustCode" clearable placeholder="璇疯緭鍏�" size="small" @keyup.enter.native="refreshTable()"></el-input> - </div> - </div> - <div class="search_thing"> - <div class="search_label">妫�楠岀姸鎬侊細</div> - <div class="search_input"> + </el-form-item> + <el-form-item label="妫�楠岀姸鎬�" prop="insState"> <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()"> <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label" :value="a.value"></el-option> </el-select> - </div> - </div> - <div class="search_thing" style="padding-left: 30px"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> + </el-form-item> + <el-form-item> + <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button> + <el-button size="mini" @click="refresh()">閲嶇疆</el-button> + </el-form-item> + </el-form> </div> <div class="center"> <div class="center-options"> - <el-row> - <el-col :span="21"> - <div style="display: flex; align-items: center"> - <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span> - <ul class="tab"> - <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)"> - {{ m.label.replace("璇曢獙瀹�", "") }} - </li> - </ul> - <div> - <el-checkbox v-model="alone" class="view-self-checkbox" - @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox> - </div> - </div> - </el-col> - <el-col :span="3"> - <div class="center-title"> - <span>鎬昏浠诲姟鏁伴噺:</span> - <span>{{ page.total }}</span> - </div> - </el-col> - </el-row> + <div style="display: flex; align-items: center"> + <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span> + <ul class="tab"> + <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)"> + {{ m.label.replace("璇曢獙瀹�", "") }} + </li> + </ul> + <div> + <el-checkbox v-model="alone" class="view-self-checkbox" + @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox> + </div> + </div> + <div class="center-title"> + <span>鎬昏浠诲姟鏁伴噺:</span> + <span>{{ page.total }}</span> + </div> </div> <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" - :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"></lims-table> + :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)" v-if="tabIndex != 0">浜ゆ帴</el-button> + <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button> + <el-popover placement="bottom" trigger="hover" style="margin-left: 6px"> + <template #reference> + <el-button link type="text" size="small">鏇村</el-button> + </template> + <div> + <el-button :disabled="(scope.row.insState != 3 || 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-popover> + </div> + </lims-table> </div> </div> <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px"> 鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{ - sampleUserForm.entrustCode - }}</span>鐨勪换鍔� + 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> @@ -178,33 +123,18 @@ <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"> + <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> @@ -220,7 +150,8 @@ 鏂板 </el-button> </div> - <el-table :data="bindTableData" style="width: 100%" height="70vh"> + <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"> @@ -236,6 +167,7 @@ </el-dialog> <el-dialog :visible.sync="bindAddDialogVisible" title="閫夋嫨缁戝畾" width="600px"> <el-table :data="bindAddTableData" style="width: 100%" height="60vh" + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border @selection-change="handleBindAddSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150"> @@ -256,20 +188,39 @@ 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, @@ -283,16 +234,18 @@ 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, limsTable, - // Inspection, - // Add, - // CustomsInspection, + viewManHourDia, + UnPassRetestResult }, dicts: ["urgency_level", "inspection_task_state"], computed: { @@ -300,9 +253,15 @@ }, data() { return { + workShopId: null, + issuedVisible: false, + fullscreen: false, + lookDialogVisible: false, + option: null, InspectionKey: 1, bindDialogVisible: false, bindAddDialogVisible: false, + bindTableDataLoading: false, bindTableData: [], bindAddTableData: [], chooseBindAddList: [], @@ -372,7 +331,7 @@ }, { value: "Quarterly inspection", - label: "瀛e害妫�楠�", + label: "鍙潬鎬ф楠�", type: "warning", effect: "plain", }, @@ -384,14 +343,15 @@ { label: "濮旀墭缂栧彿", prop: "entrustCode", - width: "140px", + width: "160px", dataType: "link", linkMethod: "selectAllByOne", }, - { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px" }, + { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" }, { label: "涓嬪崟绫诲埆", prop: "typeSource", + width: "100px", dataType: "tag", formatData: (params) => { if (params == 0) { @@ -407,12 +367,28 @@ prop: "type", dataType: "tag", formatData: (params) => { - return this.urgencyLevel.find((m) => m.value == params).label; + 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; @@ -426,11 +402,18 @@ prop: "insState", dataType: "tag", formatData: (params) => { - return this.inspectionTaskState.find((m) => m.value == params) - .label; + if (this.inspectionTaskState.find((m) => m.value == params)) { + return this.inspectionTaskState.find((m) => m.value == params).label; + } else { + return null + } }, formatType: (params) => { - return this.inspectionTaskState.find((m) => m.value == params).type; + if (this.inspectionTaskState.find((m) => m.value == params)) { + return this.inspectionTaskState.find((m) => m.value == params).type; + } else { + return null + } }, }, { label: "妫�楠屼汉", prop: "userName" }, @@ -440,72 +423,16 @@ { 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); - }, - }, - ], - }, + dataType: "slot", + slot: "action", + width: '340px', + label: "鎿嶄綔" + } ], page: { total: 0, - size: 10, + size: 20, current: 0, }, tableLoading: false, @@ -528,6 +455,9 @@ }, ], // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮� + entity: { + inspectionItem: "", + }, lookTableData: [], lookColumn: [ { @@ -551,17 +481,38 @@ prop: "insResult", dataType: "tag", formatData: (params) => { - return this.insResultList.find((m) => m.value == params).label; + 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) => { - return this.insResultList.find((m) => m.value == params).type; + let obj = this.insResultList.find((m) => m.value == params) + if (obj) { + return this.insResultList.find((m) => m.value == params).type; + } else { + return null + } }, }, + { label: "妫�楠屼汉", prop: "checkUserName" }, { dataType: "action", fixed: "right", label: "鎿嶄綔", operation: [ + { + name: "涓嶅悎鏍煎娴嬫煡鐪�", + type: "text", + clickFun: (row) => { + this.getRetestResultInfo(row); + }, + disabled: (row) => { + return row.insResult != 0 + }, + }, { name: "妫�楠岄」缁戝畾", type: "text", @@ -581,15 +532,17 @@ ], lookPage: { total: 0, - size: 10, + size: 20, current: 0, }, lookTableLoading: false, // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫 + retestVisible: false, }; }, - created() { + mounted() { this.getAuthorizedPerson(); + this.queryParams.userId = this.userId; this.currentTime = getYearAndMonthAndDays(); this.getDicts("urgency_level").then((response) => { this.urgencyLevel = this.dictToValue(response.data); @@ -597,10 +550,18 @@ this.getDicts("inspection_task_state").then((response) => { this.inspectionTaskState = this.dictToValue(response.data); }); + this.refreshTable(); }, - mounted() { + activated() { + this.getAuthorizedPerson(); this.queryParams.userId = this.userId; - // this.getPower(); + 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: { @@ -627,7 +588,7 @@ }, getLookList() { this.lookTableLoading = true; - let param = { id: this.lookInfo.id, ...this.lookPage }; + let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem }; delete param.total; selectSampleAndProductByOrderId({ ...param }) .then((res) => { @@ -651,48 +612,14 @@ editInspection(row) { this.$refs.editInspectionItem.showDialog(row.id); }, - // 鍒锋柊椤甸潰 - refreshView() { - this.getList(); + // 鏌ョ湅宸ユ椂 + viewManHour(row) { + this.$refs.viewManHourDia.showDialog(row.id, row.insState); }, // 鏁版嵁鏌ョ湅 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; @@ -709,16 +636,57 @@ 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 - // } - // }, + // 涓嬭浇鎶ュ憡 + 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; @@ -742,7 +710,7 @@ this.loading = false; }); }, - changeRowClass({ row, rowIndex }) { + rowClassName({ row, rowIndex }) { if (this.currentTime == row.appointed) { return "highlight-warning-row-border"; } else if (this.currentTime > row.appointed) { @@ -750,43 +718,11 @@ } 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; @@ -794,9 +730,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/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; @@ -814,6 +780,7 @@ } this.inspectorList = inspectorList; this.sonLaboratory = row.sonLaboratory; + this.workShopId = row.workShopId; this.state = 1; this.typeSource = row.typeSource; this.orderId = row.id; @@ -825,6 +792,7 @@ state: this.state, typeSource: this.typeSource, orderId: this.orderId, + workShopId: row.workShopId }, }); }, @@ -843,6 +811,16 @@ 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; @@ -897,10 +875,6 @@ this.loading = false; }); }, - handleReview(row) { - this.state = 2; - this.orderId = row.id; - }, getAuthorizedPerson() { selectUserCondition({ type: 1 }).then((res) => { let data = []; @@ -913,16 +887,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; getBindingProductByProductId({ productId: row.insProductId }) .then((res) => { - if (res.coe == 201) { - // this.$message.error('鏈粦瀹氭楠岄」') - return; - } - // console.log(res) this.bindTableData = res.data; this.bindDialogVisible = true; }) @@ -935,11 +914,6 @@ productId: this.bindCurrentInfo.insProductId, }) .then((res) => { - if (res.coe == 201) { - // this.$message.error('鏈粦瀹氭楠岄」') - return; - } - // console.log(res) this.bindAddTableData = res.data; this.bindAddDialogVisible = true; }) @@ -965,10 +939,6 @@ }) .then((res) => { this.loading = false; - if (res.code == 201) { - this.$message.error("缁戝畾澶辫触"); - return; - } this.$message.success("缁戝畾鎴愬姛"); this.bindAddDialogVisible = false; this.getBinding(this.bindCurrentInfo); @@ -983,19 +953,101 @@ 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); - }); + 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