From 414a9c839061e06468138c9f662a4d9cf4225599 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 09 四月 2025 15:08:29 +0800 Subject: [PATCH] 完成二次报检,过期报检 --- src/views/business/materialOrder/index.vue | 316 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 217 insertions(+), 99 deletions(-) diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue index b6232e1..2ab2c30 100644 --- a/src/views/business/materialOrder/index.vue +++ b/src/views/business/materialOrder/index.vue @@ -14,21 +14,29 @@ </el-input> </el-form-item> <el-form-item label="闆朵欢鍙�" prop="partNo"> - <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" size="small" - @keyup.enter.native="goSearch"> + <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" size="small" @keyup.enter.native="goSearch"> </el-input> </el-form-item> - <el-form-item label="闆朵欢鎻忚堪" prop="partDesc"> - <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�" size="small" - @keyup.enter.native="goSearch"> - </el-input> + <el-form-item label="鎶ユ绫诲瀷" prop="inspectionType"> + <el-select v-model="entity.inspectionType" clearable placeholder="璇烽�夋嫨" size="small" @change="refreshTable" + style="width: 100%"> + <!-- <el-option label="鍘熻緟鏉�" value="鍘熻緟鏉�"></el-option> + <el-option label="鍖呮潗" value="鍖呮潗"></el-option> --> + <el-option v-for="item in dict.type.inspection_type" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> </el-form-item> <el-form-item> - <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" + <el-button v-if="tabIndex === 1 || tabIndex === 2 || tabIndex === 3 || tabIndex === 4" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button> <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button> <el-button size="mini" @click="refresh()">閲嶇疆</el-button> + </el-form-item> + <el-form-item label="闆朵欢鎻忚堪" prop="partDesc" v-if="more"> + <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�" size="small" @keyup.enter.native="goSearch"> + </el-input> </el-form-item> <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> @@ -62,22 +70,25 @@ <li :class="{ active: tabIndex === 0 }" @click="handleTab(0)">寰呬笅鍗�</li> <li :class="{ active: tabIndex === 1 }" @click="handleTab(1)">妫�楠屼腑</li> <li :class="{ active: tabIndex === 2 }" @click="handleTab(2)">宸叉楠�</li> - <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">瀛e害妫�楠�</li> + <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">鍙潬鎬ф楠�</li> <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(3)">鍏ㄩ儴</li> </ul> </div> <div> <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" @click="handleOut">瀵煎嚭</el-button> - <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">閾滄潗鏂欎笅鍗�</el-button> + <!-- <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">閾滄潗鏂欎笅鍗�</el-button> --> <el-button v-if="tabIndex !== 0" size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button> + <el-button v-if="tabIndex === 0" size="small" type="primary" + @click="opendeclareDialog(2, '浜屾鎶ユ')">浜屾鎶ユ</el-button> + <el-button v-if="tabIndex === 0" size="small" type="primary" + @click="opendeclareDialog(3, '杩囨湡鎶ユ')">杩囨湡鎶ユ</el-button> </div> </div> <!--寰呬笅鍗�--> <div class="table"> <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination" - ref="tableData" - :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" key="tableData" :page="page" + ref="tableData" :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" key="tableData" :page="page" :tableLoading="tableLoading"></lims-table> </div> <!--妫�楠屼腑--> @@ -98,7 +109,7 @@ :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination3" :height="'calc(100vh - 290px)'" key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table> </div> - <!--瀛e害妫�楠�--> + <!--鍙潬鎬ф楠�--> <div class="table"> <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true" :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination4" @@ -134,7 +145,7 @@ <!-- 鎾ら攢涓嬪崟 --> <el-dialog :visible.sync="quashDialogVisible" title="涓嬪崟鎾ら攢" width="30%"> <el-button size="small" type="primary" @click="cancelQuashOrder('enterOrderId')">鎾ら攢杩涘巶妫�楠屼笅鍗�</el-button> - <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">鎾ら攢瀛e害妫�楠屼笅鍗�</el-button> + <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">鎾ら攢鍙潬鎬ф楠屼笅鍗�</el-button> <span slot="footer" class="dialog-footer"> <el-row> <el-button @click="quashDialogVisible = false">鍙� 娑�</el-button> @@ -172,15 +183,17 @@ type="primary" @click="viewInsInfo0">鏌ョ湅</el-link> </div> <div> - <span style="font-size: 16px;">瀛e害妫�楠屽師濮嬫暟鎹�</span> + <span style="font-size: 16px;">鍙潬鎬ф楠屽師濮嬫暟鎹�</span> <el-link :disabled="!insInfo.quarterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px" type="primary" @click="viewInsInfo1">鏌ョ湅</el-link> </div> </el-dialog> <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"--> - <!-- :sonLaboratory="'鍘熸潗鏂�'" :state="state"--> + <!-- :sonLaboratory="'鍘熻緟鏉�'" :state="state"--> <!-- :typeSource="typeSource"--> <!-- @goback="goback" @refreshView="refreshView"/>--> + <!-- 杩囨湡鎶ユ/浜屾鎶ユ --> + <declareDialog ref="declareDialog" :title="declareTitle" @refreshTable="refreshTable" /> </div> </template> @@ -204,17 +217,21 @@ revokeInspectionReport, updateEntrustCode } from "@/api/business/rawMaterialOrder"; -import { getWarehouseSubmit } from "@/api/business/materialInspection"; -import {mapGetters} from "vuex"; +import { getWarehouseSubmit, ifsInventoryQuantityDelIfsInventory } from "@/api/business/materialInspection"; +import { mapGetters } from "vuex"; +import declareDialog from './components/declareDialog.vue' // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; export default { name: "MaterialOrder", + dicts: ["inspection_type"], // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� - components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog }, + components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog, declareDialog }, data() { // 杩欓噷瀛樻斁鏁版嵁 return { + inspectionTypeList: [], + declareTitle: '', tableData: [], tableLoading: false, column: [ @@ -222,23 +239,24 @@ { label: '闆朵欢鍙�', prop: 'partNo' }, { label: '闆朵欢鎻忚堪', prop: 'partDesc' }, { + label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag', - label: '鐗╂枡绫诲瀷', - prop: 'isExpire', formatData: (params) => { - if (params == 1) { - return '杩囨湡鐗╂枡' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.label } }, formatType: (params) => { - if (params == 1) { - return 'info' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.raw.listClass } } + }, + { + label: '杩囨湡鏃堕棿', + prop: 'expirationTime', }, { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' }, { label: '鍗曚綅', prop: 'buyUnitMeas' }, @@ -248,6 +266,7 @@ { dataType: 'action', label: '鎿嶄綔', + fixed: 'right', operation: [ { name: '涓嬪崟', @@ -264,18 +283,52 @@ }, }, { - name: '鎾ら攢鎶ユ', + name: '鍒犻櫎', type: 'text', clickFun: (row) => { - this.cancelDeclare(row); + this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + ifsInventoryQuantityDelIfsInventory({ id: row.id }).then((res) => { + if (res.code == 200) { + this.$message.success("鍒犻櫎鎴愬姛"); + this.refreshTable() + } + }); + }) + .catch(() => { }); + }, + disabled: (row) => { + return !row.inspectionType || row.inspectionType < 2 }, }, + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.declareTitle = row.inspectionType == 2 ? '浜屾鎶ユ' : '杩囨湡鎶ユ' + this.$refs.declareDialog.open(row.inspectionType, row) + }, + disabled: (row) => { + return !row.inspectionType || row.inspectionType < 2 + }, + }, + // { + // name: '鎾ら攢鎶ユ', + // type: 'text', + // clickFun: (row) => { + // this.cancelDeclare(row); + // }, + // }, ] } ], page: { total: 0, - size: 10, + size: 20, current: 1 }, tableData1: [], @@ -302,23 +355,24 @@ { label: '妫�楠屼汉', prop: 'userName' }, { label: '涓嬪彂鏃堕棿', prop: 'sendTime' }, { + label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag', - label: '鐗╂枡绫诲瀷', - prop: 'isExpire', formatData: (params) => { - if (params == 1) { - return '杩囨湡鐗╂枡' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.label } }, formatType: (params) => { - if (params == 1) { - return 'info' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.raw.listClass } } + }, + { + label: '杩囨湡鏃堕棿', + prop: 'expirationTime', }, { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' }, { label: '鍗曚綅', prop: 'buyUnitMeas' }, @@ -356,7 +410,7 @@ ], page1: { total: 0, - size: 10, + size: 20, current: 1 }, tableData2: [], @@ -412,7 +466,25 @@ { label: '闆朵欢鎻忚堪', prop: 'partDesc' }, { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' }, { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' }, - { label: '鍏嶆', prop: 'isExemption' }, + { + dataType: 'tag', + label: '鍏嶆', + prop: 'isExemption', + formatData: (params) => { + if (params == 1) { + return '鍏嶆' + } else { + return null + } + }, + formatType: (params) => { + if (params == 1) { + return 'success' + } else { + return null + } + } + }, { label: '鏍峰搧鍚嶇О', prop: 'sampleName', @@ -423,23 +495,24 @@ { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' }, { label: '妫�楠屼汉', prop: 'userName' }, { + label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag', - label: '鐗╂枡绫诲瀷', - prop: 'isExpire', formatData: (params) => { - if (params == 1) { - return '杩囨湡鐗╂枡' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.label } }, formatType: (params) => { - if (params == 1) { - return 'info' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.raw.listClass } } + }, + { + label: '杩囨湡鏃堕棿', + prop: 'expirationTime', }, { label: '鍗曚綅', prop: 'buyUnitMeas' }, { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' }, @@ -450,7 +523,7 @@ label: '鎿嶄綔', operation: [ { - name: '瀛e害妫�楠�', + name: '鍙潬鎬ф楠�', type: 'text', clickFun: (row) => { this.playOrderSec(row); @@ -501,7 +574,7 @@ }, }, { - name: '瀛e害鎾ら攢', + name: '鍙潬鎬ф挙閿�', type: 'text', clickFun: (row) => { this.repealQuarter(row); @@ -515,13 +588,13 @@ ], page2: { total: 0, - size: 10, + size: 20, current: 1 }, tableData3: [], tableLoading3: false, column3: [ - { label: '濮旀墭缂栧彿', prop: 'entrustCode',width: "160px", }, + { label: '濮旀墭缂栧彿', prop: 'entrustCode', width: "160px", }, { dataType: 'tag', label: '妫�楠岀姸鎬�', @@ -565,7 +638,25 @@ { label: '闆朵欢鎻忚堪', prop: 'partDesc' }, { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' }, { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' }, - { label: '鍏嶆', prop: 'isExemption' }, + { + dataType: 'tag', + label: '鍏嶆', + prop: 'isExemption', + formatData: (params) => { + if (params == 1) { + return '鍏嶆' + } else { + return null + } + }, + formatType: (params) => { + if (params == 1) { + return 'success' + } else { + return null + } + } + }, { label: '鏍峰搧鍚嶇О', prop: 'sampleName', @@ -576,23 +667,24 @@ { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' }, { label: '妫�楠屼汉', prop: 'userName' }, { + label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag', - label: '鐗╂枡绫诲瀷', - prop: 'isExpire', formatData: (params) => { - if (params == 1) { - return '杩囨湡鐗╂枡' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.label } }, formatType: (params) => { - if (params == 1) { - return 'info' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.raw.listClass } } + }, + { + label: '杩囨湡鏃堕棿', + prop: 'expirationTime', }, { label: '鍗曚綅', prop: 'buyUnitMeas' }, { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' }, @@ -621,13 +713,13 @@ ], page3: { total: 0, - size: 10, + size: 20, current: 1 }, tableData4: [], tableLoading4: false, column4: [ - { label: '濮旀墭缂栧彿', prop: 'entrustCode',width: "160px", }, + { label: '濮旀墭缂栧彿', prop: 'entrustCode', width: "160px", }, { dataType: 'tag', label: '妫�楠岀姸鎬�', @@ -671,7 +763,25 @@ { label: '闆朵欢鎻忚堪', prop: 'partDesc' }, { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' }, { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' }, - { label: '鍏嶆', prop: 'isExemption' }, + { + dataType: 'tag', + label: '鍏嶆', + prop: 'isExemption', + formatData: (params) => { + if (params == 1) { + return '鍏嶆' + } else { + return null + } + }, + formatType: (params) => { + if (params == 1) { + return 'success' + } else { + return null + } + } + }, { label: '鏍峰搧鍚嶇О', prop: 'sampleName', @@ -682,23 +792,23 @@ { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' }, { label: '妫�楠屼汉', prop: 'userName' }, { - dataType: 'tag', - label: '鐗╂枡绫诲瀷', - prop: 'isExpire', + label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag', formatData: (params) => { - if (params == 1) { - return '杩囨湡鐗╂枡' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.label } }, formatType: (params) => { - if (params == 1) { - return 'info' - } else { - return null + let obj = this.inspectionTypeList.find(m => m.value == params) + if (obj) { + return obj.raw.listClass } } + }, + { + label: '杩囨湡鏃堕棿', + prop: 'expirationTime', }, { label: '鍗曚綅', prop: 'buyUnitMeas' }, { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' }, @@ -709,7 +819,7 @@ label: '鎿嶄綔', operation: [ { - name: '瀛e害妫�楠�', + name: '鍙潬鎬ф楠�', type: 'text', clickFun: (row) => { this.playOrderSec(row); @@ -744,7 +854,7 @@ ], page4: { total: 0, - size: 10, + size: 20, current: 1 }, entity: { @@ -773,7 +883,7 @@ value: 2 }, { - label: '瀛e害妫�楠�', + label: '鍙潬鎬ф楠�', value: 4 }, { @@ -785,7 +895,7 @@ tabIndex: 0, multipleSelection: [], active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪� - orderType: 0, //0锛氬師鏉愭枡涓嬪崟锛�1锛氬搴︽楠屼笅鍗� + orderType: 0, //0锛氬師杈呮潗涓嬪崟锛�1锛氬彲闈犳�ф楠屼笅鍗� currentId: null, btnLoading: false, quashDialogVisible: false, // 鎾ら攢涓嬪崟鎻愰啋寮规 @@ -817,7 +927,7 @@ orderId: 0, inspectorList: [],//妫�楠屼汉鍛樺垪琛� InspectionKey: 1, - typeSource: null,// 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟, 2: 閾滃崟涓濅笅鍗� + typeSource: null,// 0:鎴愬搧涓嬪崟锛�1锛氬師杈呮潗涓嬪崟, 2: 閾滃崟涓濅笅鍗� InspectInfoDialog: false, // 鏁版嵁鏌ョ湅寮规 insInfo: {}, outLoading: false @@ -827,6 +937,10 @@ ...mapGetters(['nickName']) }, mounted() { + this.refreshTable() + this.inspectionTypeList = this.dict.type.inspection_type; + }, + activated() { this.refreshTable() }, // 鏂规硶闆嗗悎 @@ -852,7 +966,7 @@ // 宸叉楠屾煡璇� this.getIfsByOverList() } else if (this.tabIndex === 4) { - // 鏌ヨ瀛e害妫�楠� + // 鏌ヨ鍙潬鎬ф楠� this.getIfsByQuarterList() } else { // 鍏ㄩ儴鏌ヨ @@ -890,7 +1004,7 @@ // 宸叉楠屾煡璇� getIfsByOverList() { this.tableLoading2 = true - if(null != this.entity.date){ + if (null != this.entity.date) { this.entity.beginDeclareDate = this.entity.date[0] this.entity.endDeclareDate = this.entity.date[1] } else { @@ -908,10 +1022,10 @@ this.tableLoading2 = false }) }, - // 鏌ヨ瀛e害妫�楠� + // 鏌ヨ鍙潬鎬ф楠� getIfsByQuarterList() { this.tableLoading4 = true - if(null != this.entity.date){ + if (null != this.entity.date) { this.entity.beginDeclareDate = this.entity.date[0] this.entity.endDeclareDate = this.entity.date[1] } else { @@ -932,7 +1046,7 @@ // 鍏ㄩ儴 getIfsByAllList() { this.tableLoading3 = true - if(null != this.entity.date){ + if (null != this.entity.date) { this.entity.beginDeclareDate = this.entity.date[0] this.entity.endDeclareDate = this.entity.date[1] } else { @@ -1013,9 +1127,9 @@ }); }); }, - // 瀛e害鎾ら攢 + // 鍙潬鎬ф挙閿� repealQuarter(row) { - this.$confirm('鏄惁鎾ら攢瀛e害涓嬪崟?', "璀﹀憡", { + this.$confirm('鏄惁鎾ら攢鍙潬鎬т笅鍗�?', "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" @@ -1035,7 +1149,7 @@ this.$router.push({ path: "/inspectionTask/inspection", query: { - sonLaboratory: '鍘熸潗鏂�', + sonLaboratory: '鍘熻緟鏉�', state: 3, typeSource: this.insInfo.typeSource, orderId: this.insInfo.enterOrderId, @@ -1050,7 +1164,7 @@ this.$router.push({ path: "/inspectionTask/inspection", query: { - sonLaboratory: '鍘熸潗鏂�', + sonLaboratory: '鍘熻緟鏉�', state: 3, typeSource: this.insInfo.typeSource, orderId: this.insInfo.quarterOrderId, @@ -1091,7 +1205,7 @@ playOrder(row) { this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } }); }, - // 瀛e害妫�楠屼笅鍗� + // 鍙潬鎬ф楠屼笅鍗� playOrderSec(row) { this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } }); }, @@ -1164,7 +1278,7 @@ }) }).catch(() => { }) } else if (!row.enterOrderId && row.quarterOrderId) { - this.$confirm('鏄惁鎾ら攢瀛e害涓嬪崟?', "璀﹀憡", { + this.$confirm('鏄惁鎾ら攢鍙潬鎬т笅鍗�?', "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" @@ -1255,7 +1369,7 @@ rawAllExport({ entity: entity }).then(res => { this.outLoading = false const blob = new Blob([res], { type: 'application/octet-stream' }); - this.$download.saveAs(blob, '鍘熸潗鏂欐娴嬩俊鎭鍑�.xlsx'); + this.$download.saveAs(blob, '鍘熻緟鏉愭娴嬩俊鎭鍑�.xlsx'); }) }, // 鎻愪氦淇敼濮旀墭缂栧彿淇℃伅 @@ -1292,6 +1406,10 @@ } return '' }, + opendeclareDialog(type, title) { + this.declareTitle = title + this.$refs.declareDialog.open(type) + } }, } </script> -- Gitblit v1.9.3