| | |
| | | // æ£éªä»»å¡ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | // éè¿æ£éªåæ¥è¯¢æ£éªæ°æ®ï¼æ°æ®æ¥çï¼ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // ä¸åæ ¼ç®¡çç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | //æ¥è¯¢è¿è´§éªè¯ä¿¡æ¯ |
| | | export function getFactoryVerify(query) { |
| | | return request({ |
| | | url: "/insOrderPlan/getFactoryVerify", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // ä¿åè¿è´§åå§è®°å½ |
| | | export function addFactoryVerify(data) { |
| | | return request({ |
| | | url: "/insOrderPlan/addFactoryVerify", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢ä¸åæ ¼çæ£éªé¡¹ |
| | | export function getInsProductUnqualified(query) { |
| | | return request({ |
| | | url: "/insOrderPlan/getInsProductUnqualified", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æäº¤éè¦å¤æµçæ£éªé¡¹ |
| | | export function addUnqualifiedRetest(data) { |
| | | return request({ |
| | | url: "/insOrderPlan/addUnqualifiedRetest", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // æ¥è¯¢æ£éªä¸åå
容详æ
|
| | | export function getInsOrder(query) { |
| | | return request({ |
| | | url: "/insOrder/getInsOrder", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ¥çOA详æ
|
| | | export function getUnqualifiedHandler(query) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/getUnqualifiedHandler", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // ä¸è½½OAéä»¶ |
| | | export function downFile(query) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/downFile", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | export function addUnqualifiedHandler(data) { |
| | | return request({ |
| | | url: "/unqualifiedHandler/addUnqualifiedHandler", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | |
| | | // å®éªå®¤çæ£æµè½åæ¡£æ¡ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | //è·åæ åæ¹æ³å表 |
| | |
| | | // çæ¬¡ç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // 绩æç®¡ç-çæ¬¡-å页æ¥è¯¢ |
| | |
| | | // å·¥æ¶ç®¡çç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ¥è¯¢å·¥æ¶æ±æ» |
| | |
| | | // åå§è®°å½æ¨¡æ¿ç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ¥è¯¢å®¢æ·å表 |
| | |
| | | // æ ååºç¸å
³æ¥å£ |
| | | |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ ååºæ æåº |
| | |
| | | </style> |
| | | <template> |
| | | <div class="ins-order-plan-main"> |
| | | <div v-show="activeFace == 0" style="height: 100%"> |
| | | <div style="height: 100%"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å§æç¼å·ï¼</div> |
| | |
| | | <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" |
| | |
| | | </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 { |
| | |
| | | export default { |
| | | components: { |
| | | EditInspectionItem, |
| | | // CopperOrder, |
| | | // ShowInfo, |
| | | ValueTable, |
| | | limsTable, |
| | | // Inspection, |
| | | // Add, |
| | | // CustomsInspection, |
| | | }, |
| | | dicts: ["urgency_level", "inspection_task_state"], |
| | | computed: { |
| | |
| | | { |
| | | 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) { |
| | |
| | | { |
| | | label: "æ£éªç±»å", |
| | | prop: "orderType", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.orderTypeList.find((m) => m.value == params).label; |
| | |
| | | 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; |
| | | } |
| | | |
| | | }, |
| | | playOrder(num) { |
| | | this.activeFace = num; |
| | |
| | | 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; |
| | |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);"> |
| | | <el-row class="title"> |
| | | <el-col :span="8" style="text-align: left"> |
| | | <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" |
| | |
| | | </el-form> |
| | | </el-col> |
| | | <el-col :span="16" style="text-align: right"> |
| | | <!-- <el-button size="small" type="primary" @click="refreshView">å·æ°</el-button> --> |
| | | <el-button size="small" type="primary" @click="refreshView">å·æ°</el-button> |
| | | <el-button v-if="typeSource === 1" size="small" type="primary" @click="openPurchase">è¿è´§éªè¯</el-button> |
| | | <el-button v-if="state === 1 && typeSource === 1" size="small" type="primary" |
| | | @click="openUnPassDialog('add')">ä¸åæ ¼å¤ç</el-button> |
| | |
| | | <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">éè¿</el-button> |
| | | <el-button v-if="state == 2" size="medium" @click="upInsReview(0)">ä¸éè¿</el-button> |
| | | <el-button type="primary" size="small" @click="exportTable('myTable')">ä¸è½½åå§è®°å½</el-button> |
| | | <el-button size="small" @click="$emit('goback')">è¿å</el-button> |
| | | <el-button size="small" @click="goback">è¿å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="search"> |
| | |
| | | <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | </div> |
| | | <div class="center"> |
| | | <div class="search" style=" |
| | |
| | | state == 1 |
| | | "><span :style="`font-family:${n.v.ff} !important;`">{{ |
| | | toFixed(n.v.v, n.v.ct) |
| | | }}</span></template> |
| | | }}</span></template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && |
| | | n.v.ps.value === 'æç»å¼' && |
| | |
| | | <el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" |
| | | @resetAddUnPass="resetAddUnPass"></add-un-pass> --> |
| | | <!-- <UnPassDialog |
| | | v-if="unPassDialog" |
| | | ref="unPassDialog" |
| | | :orderId="orderId" |
| | | :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm" |
| | | ></UnPassDialog> --> |
| | | <!-- <InspectionWord |
| | | v-if="unPassCheck" |
| | | :inspectorList="inspectorList" |
| | | :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" |
| | | :sonLaboratory="sonLaboratory" |
| | | :state="state" |
| | | :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" |
| | | @closeUnPassCheckDialog="closeUnPassCheckDialog" |
| | | @refreshView="refreshView" |
| | | /> --> |
| | | <!-- <purchase-verification |
| | | v-if="purchaseDialog" |
| | | ref="purchaseDialog" |
| | | :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" |
| | | @resetPurchaseDialog="resetPurchaseDialog" |
| | | ></purchase-verification> --> |
| | | <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog" |
| | | @resetAddUnPass="resetAddUnPass"></add-un-pass> |
| | | <UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog" |
| | | @resetForm="resetForm"></UnPassDialog> |
| | | <!-- <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> --> |
| | | <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" |
| | | :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import excelFunction from "@/utils/excelFountion"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | // import UnPassDialog from "../b1-unpass-manage/unPassDialog.vue"; |
| | | // import AddUnPass from "../b1-unpass-manage/addUnPass.vue"; |
| | | // import InspectionWord from "./InspectionWord.vue"; |
| | | // import PurchaseVerification from "../b1-unpass-manage/PurchaseVerification.vue"; |
| | | import UnPassDialog from "../unpass/components/addUnPass.vue"; |
| | | import AddUnPass from "../unpass/components/addUnPass.vue"; |
| | | // import InspectionWord from "./components/InspectionWord.vue"; |
| | | import PurchaseVerification from "../unpass/components/PurchaseVerification.vue"; |
| | | import { |
| | | doInsOrder, |
| | | getCableTag, |
| | |
| | | import html2canvas from "html2canvas"; |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | // props: ["sonLaboratory", "orderId", "state", "inspectorList", "typeSource"], |
| | | components: { |
| | | // PurchaseVerification, |
| | | // AddUnPass, |
| | | PurchaseVerification, |
| | | AddUnPass, |
| | | limsTable, |
| | | // UnPassDialog, |
| | | UnPassDialog, |
| | | // InspectionWord, |
| | | }, |
| | | data() { |
| | |
| | | watch: { |
| | | // çå¬ä»»å¡idï¼è·åä»»å¡ä¿¡æ¯ |
| | | id(val) { |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: val, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.$emit("goback"); |
| | | return this.$message.error("è¯¥ä»»å¡æ²¡ææ ·åä¿¡æ¯"); |
| | | } |
| | | // èµå¼å½åæ ·åå表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // æ¸©åº¦ãæ¹¿åº¦èµå¼ |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // åææçæ£éªä»»å¡æ¥è¯¢æ¹æ° |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // è·åå½åæ ·åçæ£éªé¡¹ |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // åå§åä¼ éå°å端çåæ° |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a) => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | if (this.currentSample.index == undefined) |
| | | this.currentSample["index"] = 1; |
| | | let bushing = this.currentSample.bushing; |
| | | this.getTableLists(); //å¤ç模æ¿åè¡¨ä¿¡æ¯ |
| | | |
| | | this.currentKey = 1; |
| | | this.getCableTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦å¤æ¬¡æ£éªççµç¼é
ç½® |
| | | this.getRepetitionTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦é夿£éªé¡¹ |
| | | }); |
| | | this.refreshView() |
| | | }, |
| | | // çå¬å½å模æ¿åå |
| | | currentTable(val1, val0) { |
| | |
| | | this.checkUser = ""; |
| | | }, |
| | | // å·æ°é¡µé¢ |
| | | // refreshView() { |
| | | // this.$emit("refreshView"); |
| | | // }, |
| | | refreshView() { |
| | | this.loading = true; |
| | | doInsOrder({ |
| | | id: this.id, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(async (res) => { |
| | | this.insOrder = res.data.insOrder; |
| | | this.supplierDensity = res.data.supplierDensity; |
| | | this.getList() |
| | | this.urgentList.forEach((m) => { |
| | | if (m.value == this.insOrder.type) { |
| | | this.insOrder.typeName = m.label; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) { |
| | | this.goback(); |
| | | return this.$message.error("è¯¥ä»»å¡æ²¡ææ ·åä¿¡æ¯"); |
| | | } |
| | | // èµå¼å½åæ ·åå表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // æ¸©åº¦ãæ¹¿åº¦èµå¼ |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | | ? this.insOrder.temperature |
| | | : null, |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // åææçæ£éªä»»å¡æ¥è¯¢æ¹æ° |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | | // è·åå½åæ ·åçæ£éªé¡¹ |
| | | let list = await this.getCurrentProduct(this.currentSample.id, 0); |
| | | this.currentSample.insProduct = this.HaveJson(list); |
| | | // åå§åä¼ éå°å端çåæ° |
| | | this.param = {}; |
| | | this.changeType = 0; |
| | | this.currentSample.insProduct.forEach((a) => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | }; |
| | | }); |
| | | if (this.currentSample.index == undefined) |
| | | this.currentSample["index"] = 1; |
| | | let bushing = this.currentSample.bushing; |
| | | this.getTableLists(); //å¤ç模æ¿åè¡¨ä¿¡æ¯ |
| | | |
| | | this.currentKey = 1; |
| | | this.getCableTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦å¤æ¬¡æ£éªççµç¼é
ç½® |
| | | this.getRepetitionTag(this.currentSample.id); // æ¥è¯¢æ¯å¦æè¦é夿£éªé¡¹ |
| | | }); |
| | | }, |
| | | closeUnPassCheckDialog() { |
| | | this.unPassCheck = false; |
| | | }, |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.addCheck = false; |
| | | } |
| | | this.reviewLoading = false; |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.reviewLoading = false; |
| | | }) |
| | |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | this.submitLoading = false; |
| | | this.addVerifyDia = false; |
| | | } |
| | |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.addVerifyDia = false; |
| | | this.$emit("goback"); |
| | | this.goback(); |
| | | } |
| | | this.submitLoading = false; |
| | | }) |
| | |
| | | return v; |
| | | } |
| | | }, |
| | | goback() { |
| | | this.$tab.closeOpenPage({ path: "/business/inspectionTask" }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | >>>.el-divider { |
| | | margin: 0 !important; |
| | | } |
| | | |
| | | .custom-table .el-table__header-wrapper th { |
| | | background-color: #87ceeb; |
| | | /* åªå¯¹å¸¦æmy-custom-tableç±»çè¡¨æ ¼çæ */ |
| | |
| | | width: 100%; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .search .form-inline { |
| | |
| | | } |
| | | </style> |
| | | <style> |
| | | .inspection .el-form-item__label { |
| | | /* .inspection .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | } */ |
| | | |
| | | .inspection .el-drawer__header::before { |
| | | content: ""; |
| | |
| | | <div> |
| | | <div class="search"> |
| | | <el-form :model="entity" ref="entity" size="small" :inline="true"><el-form-item label="æ¹å·" prop="updateBatchNo"> |
| | | <el-input v-model="entity.updateBatchNo" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="entity.partNo" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶æè¿°" prop="partDesc"> |
| | | <el-input v-model="entity.partDesc" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-input v-model="entity.updateBatchNo" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="entity.partNo" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item><el-form-item label="é¶ä»¶æè¿°" prop="partDesc"> |
| | | <el-input v-model="entity.partDesc" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="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 v-if="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="refreshTable()">æ¥è¯¢</el-button> |
| | | <el-button size="mini" @click="refresh()">éç½®</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºååç§°" prop="supplierName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.supplierName" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | <el-form-item label="ä¾åºååç§°" prop="supplierName" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.supplierName" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ ·ååå·" prop="sampleModel" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.sampleModel" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | <el-form-item label="æ ·ååå·" prop="sampleModel" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.sampleModel" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£éªç¶æ" prop="inspectStatus" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-select v-model="entity.inspectStatus" clearable |
| | | size="small" @change="refreshTable()"> |
| | | <el-form-item label="æ£éªç¶æ" prop="inspectStatus" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-select v-model="entity.inspectStatus" clearable size="small" @change="refreshTable()"> |
| | | <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-date-picker |
| | | v-model="entity.date" |
| | | end-placeholder="ç»ææ¥æ" |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | range-separator="è³" |
| | | size="small" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd"> |
| | | <el-date-picker v-model="entity.date" end-placeholder="ç»ææ¥æ" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" |
| | | range-separator="è³" size="small" start-placeholder="å¼å§æ¥æ" type="daterange" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | <div class="table-tab"> |
| | | <div> |
| | | <ul class="tab"> |
| | | <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li> |
| | | <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)"> |
| | | {{ m.label }}</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-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="openPrint">æ ç¾æå°</el-button> |
| | | </div> |
| | | </div> |
| | | <!--å¾
ä¸å--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" |
| | | @pagination="pagination" :height="'calc(100vh - 290px)'" key="tableData" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination" |
| | | :height="'calc(100vh - 290px)'" key="tableData" :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <!--æ£éªä¸--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination1" :height="'calc(100vh - 290px)'" key="tableData1" |
| | | :page="page1" :tableLoading="tableLoading1"></lims-table> |
| | | <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination1" :height="'calc(100vh - 290px)'" |
| | | key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table> |
| | | </div> |
| | | <!--å·²æ£éª--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination2" :height="'calc(100vh - 290px)'" key="tableData2" |
| | | :page="page2" :tableLoading="tableLoading2"></lims-table> |
| | | <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination2" :height="'calc(100vh - 290px)'" |
| | | key="tableData2" :page="page2" :tableLoading="tableLoading2"></lims-table> |
| | | </div> |
| | | <!--å
¨é¨--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination3" :height="'calc(100vh - 290px)'" key="tableData3" |
| | | :page="page3" :tableLoading="tableLoading3"></lims-table> |
| | | <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination3" :height="'calc(100vh - 290px)'" |
| | | key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table> |
| | | </div> |
| | | <!--å£åº¦æ£éª--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" |
| | | :isSelection="true" :handleSelectionChange="selectMethod" |
| | | @pagination="pagination4" :height="'calc(100vh - 290px)'" key="tableData4" |
| | | :page="page4" :tableLoading="tableLoading4"></lims-table> |
| | | <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true" |
| | | :handleSelectionChange="selectMethod" @pagination="pagination4" :height="'calc(100vh - 290px)'" |
| | | key="tableData4" :page="page4" :tableLoading="tableLoading4"></lims-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-dialog :visible.sync="exemptionVisible" title="确认å
æ£" width="42%"> |
| | | <div style="display: flex"> |
| | | <span style="width: 90px; line-height: 32px">è§æ ¼åå·ï¼</span> |
| | | <el-input v-model="exemptionInfo.partDetail" clearable placeholder="请è¾å
¥" |
| | | size="small" |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | <el-input v-model="exemptionInfo.partDetail" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | |
| | | <!-- æ¤éæ¥æ£ --> |
| | | <el-dialog :visible.sync="declareDialogVisible" title="æ¥æ£æ¤é" width="30%"> |
| | | <p style="font-size:16px;color:#333333">æ¹å·<span |
| | | style="color:#34BD66">{{this.insOrderRow.updateBatchNo}}</span>çä¿¡æ¯æ¯å¦<span style="color: #FF4902">æ¤éæ¥æ£</span></p> |
| | | style="color:#34BD66">{{ this.insOrderRow.updateBatchNo }}</span>çä¿¡æ¯æ¯å¦<span style="color: #FF4902">æ¤éæ¥æ£</span> |
| | | </p> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="declareDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="upLoad" type="primary" @click="submitDeclare">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | <el-row> |
| | | <el-button @click="declareDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="upLoad" type="primary" @click="submitDeclare">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ¤éä¸å --> |
| | | <el-dialog :visible.sync="quashDialogVisible" title="ä¸åæ¤é" width="30%"> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <!--æ ç¾æå°å¼¹æ¡--> |
| | | <print-dialog v-if="printDialog" ref="printDialog" |
| | | :printDialog="printDialog" |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog" |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <!--æ°æ®æ¥çå¼¹æ¡--> |
| | | <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" |
| | | :dataDialogVisible="dataDialogVisible" |
| | | :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible> |
| | | <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" :dataDialogVisible="dataDialogVisible" |
| | | :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible> |
| | | <!--éä»¶æ¥çå¼¹æ¡--> |
| | | <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible" |
| | | :filesDialogVisible="filesDialogVisible" |
| | | :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible> |
| | | <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible" :filesDialogVisible="filesDialogVisible" |
| | | :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible> |
| | | <!--æ¥åä¸è½½å¼¹æ¡--> |
| | | <down-file-dialog v-if="downFileDialogVisible" ref="downFileDialogVisible" |
| | | :downFileDialogVisible="downFileDialogVisible" |
| | | :downLoadInfo="downLoadInfo" @closeDownFileDialog="closeDownFileDialog"></down-file-dialog> |
| | | :downFileDialogVisible="downFileDialogVisible" :downLoadInfo="downLoadInfo" |
| | | @closeDownFileDialog="closeDownFileDialog"></down-file-dialog> |
| | | <!--产ä¸é¾ä¿¡æ¯æ¥ç--> |
| | | <ShowInfo v-if="showInfoDialog" ref="showInfoDialog" :showInfoDialog="showInfoDialog"></ShowInfo> |
| | | <!--æ£éªä»»å¡ä¿¡æ¯æ¥ç--> |
| | | <el-dialog :visible.sync="InspectInfoDialog" title="æ°æ®æ¥ç" width="400px" @closed="closeInsInfoDialog"> |
| | | <div style="margin-bottom: 8px"> |
| | | <span style="font-size: 16px;">è¿åæ£éªåå§æ°æ®</span> |
| | | <el-link :disabled="!insInfo.enterOrderId" :underline="false" |
| | | style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo0">æ¥ç</el-link> |
| | | <el-link :disabled="!insInfo.enterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo0">æ¥ç</el-link> |
| | | </div> |
| | | <div> |
| | | <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> |
| | | <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"--> |
| | | <!-- :typeSource="typeSource"--> |
| | | <!-- @goback="goback" @refreshView="refreshView"/>--> |
| | | <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"--> |
| | | <!-- :sonLaboratory="'åææ'" :state="state"--> |
| | | <!-- :typeSource="typeSource"--> |
| | | <!-- @goback="goback" @refreshView="refreshView"/>--> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | revokeInspectionReport, |
| | | updateEntrustCode |
| | | } from "@/api/business/rawMaterialOrder"; |
| | | import {getWarehouseSubmit} from "@/api/business/materialInspection"; |
| | | import { getWarehouseSubmit } from "@/api/business/materialInspection"; |
| | | // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; |
| | | |
| | | export default { |
| | | name: "b1-material-inspection-order", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {limsTable,DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog}, |
| | | components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | tableData: [], |
| | | tableLoading: false, |
| | | column: [ |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData1: [], |
| | | tableLoading1: false, |
| | | column1: [ |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page1: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData2: [], |
| | | tableLoading2: false, |
| | | column2: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page2: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData3: [], |
| | | tableLoading3: false, |
| | | column3: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page3: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | tableData4: [], |
| | | tableLoading4: false, |
| | | column4: [ |
| | | {label: 'å§æç¼å·', prop: 'entrustCode'}, |
| | | {label: 'æ£éªç¶æ', prop: 'inspectStatus'}, |
| | | {label: '订åå·', prop: 'orderNo'}, |
| | | {label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived'}, |
| | | {label: 'ä¸åæ¶é´', prop: 'sendTime'}, |
| | | {label: 'æ¹å·', prop: 'updateBatchNo'}, |
| | | {label: 'é¶ä»¶å·', prop: 'partNo'}, |
| | | {label: 'é¶ä»¶æè¿°', prop: 'partDesc'}, |
| | | {label: 'ä¾åºååç§°', prop: 'supplierName'}, |
| | | {label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc'}, |
| | | {label: 'å
æ£', prop: 'isExemption'}, |
| | | {label: 'æ ·ååç§°', prop: 'sampleName'}, |
| | | {label: 'æ ·ååå·', prop: 'sampleModel'}, |
| | | {label: 'æ£éªäºº', prop: 'userName'}, |
| | | { label: 'å§æç¼å·', prop: 'entrustCode' }, |
| | | { label: 'æ£éªç¶æ', prop: 'inspectStatus' }, |
| | | { label: '订åå·', prop: 'orderNo' }, |
| | | { label: 'æµè¾¾çéè´æ°é', prop: 'qtyArrived' }, |
| | | { label: 'ä¸åæ¶é´', prop: 'sendTime' }, |
| | | { label: 'æ¹å·', prop: 'updateBatchNo' }, |
| | | { label: 'é¶ä»¶å·', prop: 'partNo' }, |
| | | { label: 'é¶ä»¶æè¿°', prop: 'partDesc' }, |
| | | { label: 'ä¾åºååç§°', prop: 'supplierName' }, |
| | | { label: 'ä¸åæ ¼æè¿°', prop: 'unqualifiedDesc' }, |
| | | { label: 'å
æ£', prop: 'isExemption' }, |
| | | { label: 'æ ·ååç§°', prop: 'sampleName' }, |
| | | { label: 'æ ·ååå·', prop: 'sampleModel' }, |
| | | { label: 'æ£éªäºº', prop: 'userName' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç©æç±»å', |
| | |
| | | } |
| | | } |
| | | }, |
| | | {label: 'åä½', prop: 'buyUnitMeas'}, |
| | | {label: 'æ¥æ¶æ¶é´', prop: 'receiverDate'}, |
| | | {label: 'æ¥æ£æ¶é´', prop: 'declareDate'}, |
| | | { label: 'åä½', prop: 'buyUnitMeas' }, |
| | | { label: 'æ¥æ¶æ¶é´', prop: 'receiverDate' }, |
| | | { label: 'æ¥æ£æ¶é´', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | } |
| | | ], |
| | | page4: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | entity: { |
| | | updateBatchNo: null, |
| | |
| | | value: 3 |
| | | } |
| | | ], |
| | | more:false, |
| | | more: false, |
| | | tabIndex: 0, |
| | | multipleSelection:[], |
| | | multipleSelection: [], |
| | | active: 0, //1ï¼ä¸åï¼2ï¼æ¥ç |
| | | orderType: 0, //0ï¼åææä¸åï¼1ï¼å£åº¦æ£éªä¸å |
| | | currentId: null, |
| | | btnLoading: false, |
| | | quashDialogVisible: false, // æ¤éä¸åæéå¼¹æ¡ |
| | | declareDialogVisible: false, // æ¤éæ¥æ£æéå¼¹æ¡ |
| | | insOrderRow:{}, |
| | | insOrderRow: {}, |
| | | upLoad: false, |
| | | filesDialogVisible: false, // éä»¶æ¥çå¼¹æ¡ |
| | | printDialog: false, // æ ç¾æå°å¼¹æ¡ |
| | |
| | | exemptionLoading: false, |
| | | exemptionInfo: {}, |
| | | inspectStatusList: [ |
| | | {label: 'æ£éªä¸', value: 0}, |
| | | {label: 'åæ ¼', value: 1}, |
| | | {label: 'ä¸åæ ¼', value: 2}, |
| | | {label: 'æªä¸å', value: 3}, |
| | | {label: 'è®©æ¥æ¾è¡', value: 4}, |
| | | { label: 'æ£éªä¸', value: 0 }, |
| | | { label: 'åæ ¼', value: 1 }, |
| | | { label: 'ä¸åæ ¼', value: 2 }, |
| | | { label: 'æªä¸å', value: 3 }, |
| | | { label: 'è®©æ¥æ¾è¡', value: 4 }, |
| | | ], |
| | | state: 0, |
| | | orderId: 0, |
| | |
| | | typeSource: null,// 0:æåä¸åï¼1ï¼åææä¸å, 2: éåä¸ä¸å |
| | | InspectInfoDialog: false, // æ°æ®æ¥çå¼¹æ¡ |
| | | insInfo: {}, |
| | | outLoading:false |
| | | outLoading: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | mounted() { |
| | | this.refreshTable() |
| | | }, |
| | | // æ¹æ³éå |
| | |
| | | } |
| | | }, |
| | | // å¾
ä¸åæ¥è¯¢ |
| | | getPurchaseOrderList () { |
| | | getPurchaseOrderList() { |
| | | this.tableLoading = true |
| | | const params = {...this.entity, isInspect: 1, state: 0} |
| | | const params = { ...this.entity, isInspect: 1, state: 0 } |
| | | getWarehouseSubmit(params).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // æ£éªä¸æ¥è¯¢ |
| | | getIfsByStateOneList () { |
| | | getIfsByStateOneList() { |
| | | this.tableLoading1 = true |
| | | const params = {...this.entity, orderState: 1, state: 1} |
| | | const params = { ...this.entity, orderState: 1, state: 1 } |
| | | getIfsByStateOne(params).then(res => { |
| | | this.tableLoading1 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // å·²æ£éªæ¥è¯¢ |
| | | getIfsByOverList () { |
| | | getIfsByOverList() { |
| | | this.tableLoading2 = true |
| | | const params = {...this.entity, orderState: 4, state: 2} |
| | | const params = { ...this.entity, orderState: 4, state: 2 } |
| | | getIfsByOver(params).then(res => { |
| | | this.tableLoading2 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // æ¥è¯¢å£åº¦æ£éª |
| | | getIfsByQuarterList () { |
| | | getIfsByQuarterList() { |
| | | this.tableLoading4 = true |
| | | const params = {...this.entity} |
| | | const params = { ...this.entity } |
| | | getIfsByOver(params).then(res => { |
| | | this.tableLoading4 = false |
| | | if (res.code === 200) { |
| | |
| | | }) |
| | | }, |
| | | // å
¨é¨ |
| | | getIfsByAllList () { |
| | | getIfsByAllList() { |
| | | this.tableLoading3 = true |
| | | const params = {...this.entity, isInspect: 1} |
| | | const params = { ...this.entity, isInspect: 1 } |
| | | getIfsByAll(params).then(res => { |
| | | this.tableLoading3 = false |
| | | if (res.code === 200) { |
| | |
| | | this.resetForm('entity') |
| | | this.refreshTable() |
| | | }, |
| | | pagination (page) { |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination1 (page) { |
| | | pagination1(page) { |
| | | this.page1.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination2 (page) { |
| | | pagination2(page) { |
| | | this.page2.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination3 (page) { |
| | | pagination3(page) { |
| | | this.page3.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | pagination4 (page) { |
| | | pagination4(page) { |
| | | this.page4.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | // æ¥çæ£éªæ°æ® |
| | | viewInspectInfo (row) { |
| | | viewInspectInfo(row) { |
| | | //å½åæ£éªä»»å¡çæ£éªäººå表 |
| | | let inspectorList = [] |
| | | if(row.userName){ |
| | | if (row.userName) { |
| | | inspectorList = row.userName.split(',') |
| | | } |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | if(user){ |
| | | if (user) { |
| | | inspectorList.push(user.name) |
| | | } |
| | | this.inspectorList = inspectorList |
| | | this.insInfo = row |
| | | this.InspectInfoDialog = true |
| | | }, |
| | | closeInsInfoDialog () { |
| | | closeInsInfoDialog() { |
| | | this.InspectInfoDialog = false |
| | | }, |
| | | // ç´æ¥æ¾è¡ |
| | | goPass (row) { |
| | | goPass(row) { |
| | | this.$confirm('æ¯å¦æ¾è¡å½åæ°æ®?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | concessionRelease({ifsInventoryId: row.id}).then(res => { |
| | | concessionRelease({ ifsInventoryId: row.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | }, |
| | | viewInsInfo0 () { |
| | | viewInsInfo0() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.enterOrderId |
| | | this.InspectInfoDialog = false |
| | | }, |
| | | viewInsInfo1 () { |
| | | viewInsInfo1() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.quarterOrderId |
| | |
| | | this.refreshTable('page') |
| | | }, |
| | | // å·æ°é¡µé¢ |
| | | refreshView () { |
| | | refreshView() { |
| | | this.InspectionKey++ |
| | | }, |
| | | // éææä¸å |
| | | copper () { |
| | | copper() { |
| | | this.$router.push("/materialOrder/copperOrder"); |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: {active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: { active: 1 } }); |
| | | }, |
| | | // æå¼æ ç¾æå°å¼¹æ¡ |
| | | openPrint () { |
| | | openPrint() { |
| | | if (this.multipleSelection.length > 0) { |
| | | this.printDialog = true |
| | | this.$nextTick(() => { |
| | |
| | | } |
| | | }, |
| | | // å
³éæ ç¾æå°å¼¹æ¡ |
| | | closePrintDialog () { |
| | | closePrintDialog() { |
| | | this.printDialog = false |
| | | }, |
| | | // ä¸å |
| | | playOrder(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 0, customsInspection: row, active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } }); |
| | | }, |
| | | // å£åº¦æ£éªä¸å |
| | | playOrderSec (row) { |
| | | playOrderSec(row) { |
| | | if (typeof row !== "object") { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {active: row} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { active: row } }); |
| | | } else { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 1, customsInspection: row, active: 1} }); |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } }); |
| | | } |
| | | }, |
| | | // æå¼å
æ£å¼¹æ¡ |
| | | exemption (row) { |
| | | exemption(row) { |
| | | this.exemptionVisible = true |
| | | this.exemptionInfo = row |
| | | this.$set(this.exemptionInfo, 'partDetail', row.partDesc) |
| | | }, |
| | | // æäº¤å
æ£ä¿¡æ¯ |
| | | submitExemption () { |
| | | submitExemption() { |
| | | this.exemptionLoading = true |
| | | rawOrderRelease({ |
| | | ifsInventoryId: this.exemptionInfo.id, |
| | |
| | | }) |
| | | }, |
| | | // æå¼æ¤éæ¥æ£å¼¹æ¡ |
| | | cancelDeclare (row) { |
| | | cancelDeclare(row) { |
| | | this.declareDialogVisible = true |
| | | this.insOrderRow = row |
| | | }, |
| | | // æäº¤æ¤éæ¥æ£ç³è¯· |
| | | submitDeclare () { |
| | | revokeInspectionReport({id: this.insOrderRow.id}).then(res => { |
| | | submitDeclare() { |
| | | revokeInspectionReport({ id: this.insOrderRow.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.declareDialogVisible = false |
| | | this.refreshTable() |
| | |
| | | }) |
| | | }, |
| | | // æå¼æ¤éä¸åçå¼¹æ¡ |
| | | cancelOrder (row) { |
| | | cancelOrder(row) { |
| | | if (row.enterOrderId && row.quarterOrderId) { |
| | | this.quashDialogVisible = true |
| | | } else if (row.enterOrderId && !row.quarterOrderId) { |
| | |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealEnterRawOrder({enterOrderId: row.enterOrderId}).then(res => { |
| | | repealEnterRawOrder({ enterOrderId: row.enterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } else if (!row.enterOrderId && row.quarterOrderId) { |
| | | this.$confirm('æ¯å¦æ¤éå£åº¦ä¸å?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } |
| | | this.insOrderRow = row |
| | | }, |
| | | cancelQuashOrder (type) { |
| | | cancelQuashOrder(type) { |
| | | if (type === 'enterOrderId') { |
| | | this.$confirm('æ¯å¦æ¤éå½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealEnterRawOrder({enterOrderId: this.insOrderRow.enterOrderId}).then(res => { |
| | | repealEnterRawOrder({ enterOrderId: this.insOrderRow.enterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } else { |
| | | this.$confirm('æ¯å¦æ¤éå½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | repealQuarterRawOrder({quarterOrderId: this.insOrderRow.quarterOrderId}).then(res => { |
| | | repealQuarterRawOrder({ quarterOrderId: this.insOrderRow.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ¤éæå') |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | } |
| | | }, |
| | | // ç¹å»æ ·ååç§°æ¥ç详æ
|
| | |
| | | this.dataDialogVisible = true; |
| | | }, |
| | | // å
³éæ°æ®æ¥çå¼¹æ¡ |
| | | closeDataLook () { |
| | | closeDataLook() { |
| | | this.dataDialogVisible = false |
| | | }, |
| | | // éä»¶æ¥ç |
| | | handleFileLook (row) { |
| | | handleFileLook(row) { |
| | | this.filesDialogVisible = true |
| | | this.filesLookInfo = row |
| | | }, |
| | | // å
³ééä»¶æ¥çå¼¹æ¡ |
| | | closeFilesLook () { |
| | | closeFilesLook() { |
| | | this.filesDialogVisible = false |
| | | }, |
| | | // æ¥åä¸è½½ |
| | |
| | | this.downLoadInfo = row |
| | | }, |
| | | // å
³éæ¥åä¸è½½å¼¹æ¡ |
| | | closeDownFileDialog () { |
| | | closeDownFileDialog() { |
| | | this.downFileDialogVisible = false |
| | | }, |
| | | // æ¥ç产ä¸é¾ä¿¡æ¯ |
| | | openInfoDialog (row) { |
| | | openInfoDialog(row) { |
| | | this.showInfoDialog = true |
| | | this.$nextTick(() => { |
| | | this.$refs.showInfoDialog.getInfo(row.id) |
| | | }) |
| | | }, |
| | | // ä¿®æ¹å§æç¼å· |
| | | changeEntrustCode (row) { |
| | | changeEntrustCode(row) { |
| | | this.entrustCodeVisible = true |
| | | this.entrustCodeInfo = {...row} |
| | | this.entrustCodeInfo = { ...row } |
| | | }, |
| | | // å¯¼åº |
| | | handleOut(){ |
| | | let entity = this.tabIndex === 3 ? {...this.entity, isInspect: 2} : {...this.entity,state: 2, orderState: 4,} |
| | | handleOut() { |
| | | let entity = this.tabIndex === 3 ? { ...this.entity, isInspect: 2 } : { ...this.entity, state: 2, orderState: 4, } |
| | | delete entity.orderBy |
| | | this.outLoading = true |
| | | rawAllExport({ |
| | | entity:entity |
| | | },{responseType: "blob"}).then(res => { |
| | | entity: entity |
| | | }, { responseType: "blob" }).then(res => { |
| | | this.outLoading = false |
| | | this.$message.success('å¯¼åºæå') |
| | | const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | |
| | | }) |
| | | }, |
| | | // æäº¤ä¿®æ¹å§æç¼å·ä¿¡æ¯ |
| | | submitCode () { |
| | | submitCode() { |
| | | this.submitCodeLoading = true |
| | | try { |
| | | updateEntrustCode({ |
| | |
| | | this.refreshTable() |
| | | }, |
| | | // è¡¨æ ¼éæ©æ¹æ³ |
| | | selectMethod(val){ |
| | | selectMethod(val) { |
| | | this.multipleSelection = val |
| | | }, |
| | | }, |
| | |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .tab { |
| | | list-style-type: none; |
| | | display: flex; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="è¿è´§éªè¯åå§è®°å½" :visible.sync="isShow" width="1000px" :show-close="false" :close-on-click-modal="false" |
| | | style="max-height: 96vh; margin-top: 2vh" :modal-append-to-body="false" :close-on-press-escape="false"> |
| | | <div class="search"> |
| | | <el-form :inline="true" :model="purchaseForm" label-position="right" :rules="purchaseFormRules" |
| | | ref="purchaseForm" class="form-inline" label-width="130px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ£éªç¼å·:"> |
| | | <el-input clearable v-model="purchaseForm.entrustCode" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ææåå®¶:"> |
| | | <el-input clearable v-model="purchaseForm.supplierName" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å°è´§æ¥æ:"> |
| | | <el-input clearable v-model="purchaseForm.declareDate" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ææåç§°:"> |
| | | <el-input clearable v-model="purchaseForm.sample" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è§æ ¼åå·:"> |
| | | <el-input clearable v-model="purchaseForm.model" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æææ¹å·:"> |
| | | <el-input clearable v-model="purchaseForm.updateBatchNo" disabled size="small" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <el-form-item class="headLine" label="éªè¯ä¾æ®æä»¶ç¼å·:" label-width="160px" style="width: 100%" |
| | | prop="verifyFileCode"> |
| | | <el-input clearable v-model="purchaseForm.verifyFileCode" size="small" |
| | | :disabled="operationType === 'view'" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <h4> |
| | | <span style="display: flex;align-items: center;"> |
| | | <span class="line"></span><span>éªè¯å
容</span> |
| | | </span> |
| | | </h4> |
| | | <div class="title">ä¸ã便¹äº§åæ£æµæ¥åçåºæ¬ä¿¡æ¯ç¡®è®¤</div> |
| | | <el-form-item label="ææåç§°:" prop="basicName"> |
| | | <el-radio-group v-model="purchaseForm.basicName" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="è§æ ¼åå·:" prop="basicModel"> |
| | | <el-radio-group v-model="purchaseForm.basicModel" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æææ¹å·:" prop="basicBatchNo"> |
| | | <el-radio-group v-model="purchaseForm.basicBatchNo" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æ§è¡æ å:" prop="basicStandard"> |
| | | <el-radio-group v-model="purchaseForm.basicStandard" :disabled="operationType === 'view'" |
| | | v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¥æ:" prop="basicDate"> |
| | | <el-radio-group v-model="purchaseForm.basicDate" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¾è´§æ°é:" prop="basicNumber"> |
| | | <el-radio-group v-model="purchaseForm.basicNumber" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="ææé¢è²:" prop="basicColor"> |
| | | <el-radio-group v-model="purchaseForm.basicColor" :disabled="operationType === 'view'" v-removeAriaHidden> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <div> |
| | | <el-form-item label="å
¶ä»:"> |
| | | <el-input clearable v-model="purchaseForm.basicOtherValue" size="small" |
| | | :disabled="operationType === 'view'" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-radio-group v-model="purchaseForm.basicOther" :disabled="operationType === 'view'"> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <div class="titleSec"> |
| | | <span>äºã便¹äº§åæ£æµæ¥åä¸å项æ§è½ææ çéªè¯</span> |
| | | <span> |
| | | <el-button type="primary" size="small" @click="addItem" |
| | | v-if="operationType === 'add'">æå¨æ·»å æ£éªé¡¹ç®</el-button> |
| | | <el-button type="primary" @click="addFactoryVerifyItem" v-if="operationType === 'add'" |
| | | size="small">æ·»å éªè¯é¡¹ç®</el-button> |
| | | </span> |
| | | </div> |
| | | <div> |
| | | <el-table :data="factoryVerifyItemList" style="width: 98%" v-loading="tableLoading"> |
| | | <el-table-column type="index" label="åºå·" width="180" align="center"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="éªè¯é¡¹ç®" width="300"></el-table-column> |
| | | <el-table-column prop="result" label="éªè¯ç»æ"> |
| | | <template slot-scope="scope"> |
| | | <el-radio-group v-model="scope.row.result" v-removeAriaHidden :disabled="operationType === 'view'"> |
| | | <el-radio label="1">符å</el-radio> |
| | | <el-radio label="2">ä¸ç¬¦å</el-radio> |
| | | <el-radio label="3">ä¸éç¨</el-radio> |
| | | </el-radio-group> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" width="120" v-if="operationType === 'add'"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click.native.prevent="deleteRow(scope.$index)" type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetPurchaseDialog')">å æ¶</el-button> |
| | | <el-button type="primary" @click="handlePurchase" :loading="handlePurchaseLoading" |
| | | v-if="operationType === 'add'">ç¡® |
| | | å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="å¾
éªè¯é¡¹ç®" :visible.sync="factoryVerifyItemDia" width="1000px" |
| | | style="max-height: 96vh; margin-top: 2vh" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <el-table :data="tableList" style="width: 100%" v-loading="tableLoading" |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column type="index" label="åºå·" width="60" align="center"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="éªè¯é¡¹ç®"></el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="factoryVerifyItemDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="handleFactoryVerifyItem" :loading="handleFactoryVerifyLoading">æ·» å </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æå¨æ·»å éªè¯é¡¹ç®" :visible.sync="inspectionItemDia" width="500px" @close="resetInput" :show-close="false" |
| | | :close-on-click-modal="false" :close-on-press-escape="false"> |
| | | <el-input v-model="inspectionItem"></el-input> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="inspectionItemDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="handleAdd">æ·» å </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getFactoryVerify, addFactoryVerify } from '@/api/business/unpass.js' |
| | | import { |
| | | getInsProduct, |
| | | } from "@/api/business/inspectionTask.js"; |
| | | export default { |
| | | name: "PurchaseVerification", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | purchaseDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | orderId: { |
| | | type: String, |
| | | default: () => null |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | info: {}, |
| | | isShow: this.purchaseDialog, |
| | | purchaseForm: { |
| | | entrustCode: '', // æ£éªç¼å· |
| | | supplierName: '', // ææåå®¶ |
| | | declareDate: '', // å°è´§æ¥æ |
| | | sample: '', // ææåç§° |
| | | model: '', // è§æ ¼åå· |
| | | updateBatchNo: '', // æææ¹å· |
| | | verifyFileCode: '', // éªè¯ä¾æ®æä»¶ç¼å· |
| | | // ç¡®è®¤ä¿¡æ¯ |
| | | basicName: '', // ææåç§° |
| | | basicModel: '', // è§æ ¼åå· |
| | | basicBatchNo: '', // æææ¹å· |
| | | basicStandard: '', // æ§è¡æ å |
| | | basicDate: '', // çäº§æ¥æ |
| | | basicNumber: '', // ä¾è´§æ°é |
| | | basicColor: '', // ææé¢è² |
| | | basicOtherValue: '', // å
¶ä»åç§° |
| | | basicOther: '', // å
¶ä» |
| | | }, |
| | | purchaseFormRules: { |
| | | verifyFileCode: [{ required: true, message: '请填åéªè¯ä¾æ®æä»¶ç¼å·', trigger: 'blur' }], |
| | | basicName: [{ required: false, message: 'è¯·éæ©ææåç§°éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicModel: [{ required: false, message: 'è¯·éæ©è§æ ¼åå·éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicStandard: [{ required: false, message: 'è¯·éæ©æ§è¡æ åéªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicDate: [{ required: false, message: 'è¯·éæ©çäº§æ¥æéªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicNumber: [{ required: false, message: 'è¯·éæ©ä¾è´§æ°ééªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | basicColor: [{ required: false, message: 'è¯·éæ©ææé¢è²éªè¯ä¿¡æ¯', trigger: 'change' }], |
| | | }, |
| | | factoryVerifyItemList: [], // 便¹äº§åæ£æµæ¥åä¸å项æ§è½ææ çéªè¯ |
| | | tableList: [], // |
| | | multipleSelection: [], // |
| | | operationType: '', |
| | | handlePurchaseLoading: false, |
| | | tableLoading: false, |
| | | factoryVerifyItemDia: false, // æ·»å éªè¯é¡¹ç®å¼¹æ¡ |
| | | handleFactoryVerifyLoading: false, |
| | | inspectionItemDia: false, |
| | | inspectionItem: '' |
| | | } |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | async getInsOrder(operationType, item) { |
| | | this.operationType = operationType |
| | | this.info = item |
| | | // æ¥è¯¢å·²æäº¤çæ°æ® |
| | | let factoryVerify = await getFactoryVerify({ insOrderId: this.orderId }) |
| | | this.purchaseForm = factoryVerify.data |
| | | this.factoryVerifyItemList = factoryVerify.data.factoryVerifyItemList || [] |
| | | }, |
| | | // æå¼æ·»å éªè¯é¡¹ç®å¼¹æ¡ |
| | | async addFactoryVerifyItem() { |
| | | this.factoryVerifyItemDia = true |
| | | this.tableList = [] |
| | | if (this.info.cableTag === undefined) { |
| | | this.info.cableTag = '' |
| | | } |
| | | this.tableLoading = true; |
| | | const type1 = 5 |
| | | // æ¥è¯¢æ£éªé¡¹ç® |
| | | let res = await getInsProduct({ id: this.info.id, type: type1, laboratory: this.info.sonLaboratory, cableTag: this.info.cableTag, rawMaterialTag: this.info.rawMaterialTag }) |
| | | if (res.data.length > 0) { |
| | | res.data.map((item) => { |
| | | if (item.inspectionItemSubclass) { |
| | | item.inspectionItem = item.inspectionItem + '-' + item.inspectionItemSubclass |
| | | } |
| | | const obj = Object.assign({ |
| | | inspectionItem: item.inspectionItem, |
| | | result: item.result, |
| | | }) |
| | | this.tableList.push(obj) |
| | | }) |
| | | this.tableLoading = false; |
| | | } |
| | | }, |
| | | handleSelectionChange(val) { |
| | | console.log('val---', val) |
| | | this.multipleSelection = val; |
| | | }, |
| | | addItem() { |
| | | this.inspectionItemDia = true |
| | | }, |
| | | deleteRow(index) { |
| | | this.factoryVerifyItemList.splice(index, 1); |
| | | }, |
| | | handleAdd() { |
| | | if (!this.inspectionItem) { |
| | | this.$message.warning('请填åå
容') |
| | | return |
| | | } |
| | | this.factoryVerifyItemList.push({ |
| | | inspectionItem: this.inspectionItem, |
| | | result: null, |
| | | }) |
| | | this.inspectionItemDia = false |
| | | }, |
| | | resetInput() { |
| | | this.inspectionItem = '' |
| | | this.inspectionItemDia = false |
| | | }, |
| | | // æäº¤æ·»å è¦éªè¯çæ£éªé¡¹ |
| | | handleFactoryVerifyItem() { |
| | | if (this.multipleSelection.length === 0) { |
| | | this.$message.warning('è¯·éæ©æ°æ®') |
| | | } else { |
| | | this.factoryVerifyItemList = JSON.parse(JSON.stringify(this.multipleSelection)) |
| | | this.factoryVerifyItemDia = false |
| | | } |
| | | }, |
| | | handlePurchase() { |
| | | this.$refs['purchaseForm'].validate((valid) => { |
| | | if (valid) { |
| | | if (this.factoryVerifyItemList.some(item => item.result === undefined || item.result === null || item.result === '')) { |
| | | this.$message.warning('è¯·éæ©ä¾æ¹äº§åéªè¯ç»æ') |
| | | return |
| | | } |
| | | this.factoryVerifyItemList.forEach((item, index) => { |
| | | item.sort = index |
| | | }) |
| | | this.purchaseForm.factoryVerifyItemList = JSON.parse(JSON.stringify(this.factoryVerifyItemList)) |
| | | this.handlePurchaseLoading = true |
| | | addFactoryVerify(this.purchaseForm).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetPurchaseDialog') |
| | | } |
| | | this.handlePurchaseLoading = false |
| | | }) |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .headLine>>>.el-form-item__content { |
| | | width: 68%; |
| | | } |
| | | |
| | | >>>.el-form-item__content { |
| | | display: inline-block; |
| | | } |
| | | |
| | | h4 .line { |
| | | display: inline-block; |
| | | width: 3px; |
| | | height: 16px; |
| | | background: #3A7BFA; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .title { |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | .titleSec { |
| | | margin: 10px 0; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | >>>.el-dialog__body { |
| | | max-height: 700px; |
| | | overflow-y: auto; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="æ°å¢ä¸åæ ¼å¤æµ" :visible.sync="isShow" width="70%" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <div class="table"> |
| | | <el-table class="el-table" ref="productTable" :data="productList" max-height="800px" tooltip-effect="dark" |
| | | border v-loading="tableLoading" @selection-change="selectProduct" style="margin-bottom: 10px;" |
| | | @select-all="handleAll"> |
| | | <el-table-column type="selection" width="65"></el-table-column> |
| | | <el-table-column prop="inspectionItemClass" label="æ£éªé¡¹åç±»" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="tell" label="è¦æ±æè¿°" min-width="220px"></el-table-column> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="220px"></el-table-column> |
| | | <el-table-column prop="lastValue" label="æ£éªç»æ" min-width="140" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="insResult" label="ç»æå¤å®" min-width="140" show-overflow-tooltip> |
| | | <template> |
| | | <el-tag type="danger">ä¸åæ ¼</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetAddUnPass')">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitHandle" :loading="handlePassLoading">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getInsProductUnqualified } from '@/api/business/unpass.js' |
| | | export default { |
| | | name: "addUnPass", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | addUnPassDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | isShow: this.addUnPassDialog, |
| | | handlePassLoading: false, |
| | | productList: [], |
| | | productListSelected: [], |
| | | productIds: [], |
| | | tableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | getInsOrder(info) { |
| | | this.tableLoading = true |
| | | try { |
| | | getInsProductUnqualified({ id: info.id, type: info.type, laboratory: info.laboratory, rawMaterialTag: info.rawMaterialTag }).then(res => { |
| | | if (res.code === 200) { |
| | | this.productList = res.data |
| | | } |
| | | this.tableLoading = false |
| | | }) |
| | | } catch (err) { |
| | | this.tableLoading = false |
| | | } |
| | | }, |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | submitHandle() { |
| | | if (this.productListSelected.length === 0) { |
| | | this.$message.warning('è¯·éæ©éè¦å¤æµçæ£éªé¡¹') |
| | | return |
| | | } |
| | | this.$confirm('确认æäº¤ä¸åæ ¼å¤æµ?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.handlePass() |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | }, |
| | | handlePass() { |
| | | this.handlePassLoading = true |
| | | try { |
| | | addUnqualifiedRetest({ |
| | | ids: this.productIds |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetAddUnPass') |
| | | } |
| | | this.handlePassLoading = false |
| | | }) |
| | | } catch (e) { |
| | | this.handlePassLoading = false |
| | | } |
| | | }, |
| | | selectProduct(val) { |
| | | this.productListSelected = val |
| | | this.productIds = [] |
| | | val.forEach(a => { |
| | | this.productIds.push(a.id) |
| | | }) |
| | | }, |
| | | handleAll(val) { |
| | | this.productListSelected = val |
| | | this.productIds = [] |
| | | val.forEach(a => { |
| | | this.productIds.push(a.id) |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="æ°å¢ä¸åæ ¼å¤ç" :visible.sync="isShow" width="740px" :show-close="false" :close-on-click-modal="false" |
| | | :close-on-press-escape="false"> |
| | | <div class="search"> |
| | | <el-form :inline="true" :model="unPassForm" :rules="unPassFormRules" ref="unPassForm" class="form-inline" |
| | | label-width="120px"> |
| | | <div> |
| | | <el-form-item class="headLine" label="æ é¢:" style="width: 100%" prop="headline"> |
| | | <el-input clearable v-model="unPassForm.headline" size="small" :disabled="type === 'view'" type="textarea" |
| | | placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="ä¾åºååç§°:"> |
| | | <el-input clearable v-model="unPassForm.supplierName" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æåç§°:"> |
| | | <el-tooltip class="item" effect="dark" placement="top" :content="unPassForm.materialName"> |
| | | <el-input clearable v-model="unPassForm.materialName" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¹æ¬¡:"> |
| | | <el-input clearable v-model="unPassForm.productionBatch" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°è´§æ°é:"> |
| | | <el-input clearable v-model="unPassForm.cargoQuantity" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è§æ ¼åå·:"> |
| | | <el-input clearable v-model="unPassForm.specsModels" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æ£æ¶é´:"> |
| | | <el-date-picker v-model="unPassForm.inspectTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" |
| | | disabled style="width: 175px" type="date" placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åé¦äºº:"> |
| | | <el-input clearable v-model="unPassForm.feedbackUser" disabled size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å馿¶é´:" prop="feedbackTime"> |
| | | <el-date-picker v-model="unPassForm.feedbackTime" :disabled="type === 'view'" format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd HH:mm:ss" size="small" style="width: 175px" type="date" placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»:" prop="classification"> |
| | | <el-select v-model="unPassForm.classification" :disabled="type === 'view'" size="small" placeholder="è¯·éæ©"> |
| | | <el-option v-for="item in classificationOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ ¼å½å±:" prop="offGradeAscription"> |
| | | <el-select v-model="unPassForm.offGradeAscription" :disabled="type === 'view'" size="small" |
| | | placeholder="è¯·éæ©"> |
| | | <el-option v-for="item in offGradeAscriptionOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ ¼æ
åµæè¿°:" prop="unqualifiedDesc"> |
| | | <el-input clearable type="textarea" v-model="unPassForm.unqualifiedDesc" :disabled="type === 'view'" |
| | | style="width: 484px" size="small" placeholder="请è¾å
¥"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-upload v-if="type === 'add'" ref="upload" :action="action2" :on-change="beforeUpload" :on-error="onError" |
| | | :on-remove="handleRemoveFile" :on-success="getUnpassUrl" :headers="headers" :file-list="unPassFilesList"> |
| | | <el-button size="small" type="primary" style="text-align: left">éä»¶ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | <div v-if="type !== 'add'"> |
| | | <div style="padding-left: 40px;margin-bottom: 4px">éä»¶ï¼</div> |
| | | <div style="padding-left: 40px;margin-bottom: 4px" v-for="item in unqualifiedHandlerFiles"> |
| | | <span>{{ item.fileName }}</span><el-link type="primary" style="margin-left: 20px;vertical-align: top" |
| | | :underline="false" @click="handleDown(item)">ä¸è½½</el-link> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('resetForm')">å æ¶</el-button> |
| | | <el-button type="primary" @click="handlunPass" :loading="handlunPassLoading" v-if="type === 'add'">ç¡® |
| | | å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getInsOrder, getUnqualifiedHandler, downFile, addUnqualifiedHandler } from '@/api/business/unpass.js' |
| | | export default { |
| | | name: "unPassDialog", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | unPassDialog: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | orderId: { |
| | | type: String, |
| | | default: () => null |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | type: '', |
| | | isShow: this.unPassDialog, |
| | | unPassForm: { // ä¸åæ ¼å¤çæ°æ® |
| | | headline: '', // æ é¢ |
| | | inventoryQuantityId: '', // åææid,ä¸åå±ç¤ºï¼åªä¼ å¼ |
| | | supplierName: '', // ä¾åºååç§° |
| | | materialName: '', // ç©æåç§° |
| | | productionBatch: '', // çäº§æ¹æ¬¡ |
| | | cargoQuantity: '', // å°è´§æ°é |
| | | specsModels: '', // è§æ ¼åå· |
| | | inspectTime: '', // æ¥æ£æ¶é´ |
| | | feedbackUser: '', // åé¦äºº |
| | | feedbackTime: '', // å馿¶é´ |
| | | classification: '', // åç±» |
| | | offGradeAscription: '', // ä¸åæ ¼å½å± |
| | | unqualifiedDesc: '', // ä¸åæ ¼æ
åµæè¿° |
| | | unqualifiedHandlerFiles: [], // ä¸åæ ¼éä»¶URL |
| | | }, |
| | | unPassFormRules: { |
| | | offGradeAscription: [ |
| | | { required: true, message: 'è¯·éæ©ä¸åæ ¼å½å±', trigger: 'change' } |
| | | ], |
| | | headline: [ |
| | | { required: true, message: 'è¯·å¡«åæ é¢', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | unPassFilesList: [], // ä¸åæ ¼å¤çéä»¶æ°æ® |
| | | classificationOptions: [], // ä¸åæ ¼åç±»ä¸ææ¡ |
| | | offGradeAscriptionOptions: [], // ä¸åæ ¼å½å±ä¸ææ¡ |
| | | handlunPassLoading: false, |
| | | unqualifiedHandlerFiles: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getClassificationOptions() // è·åä¸åæ ¼åç±»ä¸ææ¡é项 |
| | | this.getOffGradeAscriptionOptions() // è·åä¸åæ ¼å½å±ä¸ææ¡é项 |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | getInsOrder(type, row) { |
| | | this.type = type |
| | | if (type === 'add') { |
| | | // èµå¼é»è®¤æ°æ® |
| | | getInsOrder({ |
| | | orderId: this.orderId |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.unPassForm.headline = `No.0005-ä¸å¤©è£
å¤çµçº¿-å¤è´åä¸åæ ¼åé¦è¯å®¡åçº æ£é¢é²æµç¨(æ£å¼ç)-${JSON.parse(localStorage.getItem("user")).name}-${new Date().toISOString().substring(0, 10)}` // æ é¢ |
| | | this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // åææid |
| | | this.unPassForm.insOrderId = res.data.insOrder.id // 订åid |
| | | this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // ä¾åºååç§° |
| | | this.unPassForm.materialName = res.data.insOrder.sampleType // ç©æåç§° |
| | | this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // çäº§æ¹æ¬¡ |
| | | this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // å°è´§æ°é |
| | | this.unPassForm.specsModels = res.data.insOrder.partDetail // è§æ ¼åå· |
| | | this.unPassForm.inspectTime = res.data.insOrderTemplate.sendTime.substring(0, 10) // æ¥æ£æ¶é´ |
| | | this.unPassForm.feedbackTime = new Date().toISOString().substring(0, 10) // æ¥æ£æ¶é´ |
| | | this.unPassForm.feedbackUser = JSON.parse(localStorage.getItem("user")).name // åé¦äºº |
| | | } |
| | | }) |
| | | } else { |
| | | this.getInfo(row.handlerId) |
| | | this.unPassForm = { ...row } |
| | | } |
| | | }, |
| | | getInfo(handlerId) { |
| | | getUnqualifiedHandler({ |
| | | id: handlerId |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.unqualifiedHandlerFiles = this.HaveJson(res.data.unqualifiedHandlerFiles) |
| | | } |
| | | }) |
| | | }, |
| | | handleDown(row) { |
| | | downFile({ |
| | | id: row.id, |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | let url = ''; |
| | | if (res.data.type == 1) { |
| | | url = this.javaApi + '/img/' + res.data.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } else { |
| | | url = this.javaApi + '/word/' + res.data.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } |
| | | } |
| | | }).catch(error => { |
| | | |
| | | }) |
| | | }, |
| | | // æäº¤ä¸åæ ¼å¤ç |
| | | handlunPass() { |
| | | this.$refs['unPassForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.unPassForm.unqualifiedHandlerFiles.forEach(item => { |
| | | delete item.orderBy |
| | | }) |
| | | this.handlunPassLoading = true |
| | | addUnqualifiedHandler(this.unPassForm).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æäº¤æå') |
| | | this.$emit('resetForm') |
| | | } |
| | | this.handlunPassLoading = false |
| | | }) |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | getUnpassUrl(response, file, fileList) { |
| | | // éä»¶ä¸ä¼ æååï¼å°urlå¨æäº¤ä¸åæ ¼å¤çæ¶ä¼ ç»åå° |
| | | if (response.code == 200) { |
| | | this.$message.success('ä¸ä¼ æå') |
| | | this.unPassForm.unqualifiedHandlerFiles.push(response.data) |
| | | } |
| | | }, |
| | | // ç§»é¤éä»¶ |
| | | handleRemoveFile(file) { |
| | | const index = this.unPassForm.unqualifiedHandlerFiles.findIndex(val => val === file.response.data) |
| | | if (index > -1) { |
| | | this.unPassForm.unqualifiedHandlerFiles.splice(index, 1) |
| | | } |
| | | }, |
| | | beforeUpload(file) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | | } else { |
| | | this.upLoading = true; |
| | | return true; |
| | | } |
| | | }, |
| | | onError(err, file, fileList) { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | getClassificationOptions() { |
| | | // ä¸åæ ¼åç±» |
| | | this.getDicts("categories_no_conformities").then((response) => { |
| | | this.classificationOptions = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | getOffGradeAscriptionOptions() { |
| | | // ä¸åæ ¼å½å± |
| | | this.getDicts("attribution_no_conformities").then((response) => { |
| | | this.offGradeAscriptionOptions = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'token': sessionStorage.getItem('token') |
| | | } |
| | | }, |
| | | action2() { |
| | | return this.javaApi + '/unqualifiedHandler/uploadFileByUnqualified' |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .headLine>>>.el-form-item__content { |
| | | width: 68%; |
| | | } |
| | | </style> |
| | |
| | | proxy: { |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target: `http://192.168.0.104:8002`, |
| | | target: `http://192.168.0.170:8002`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ["^" + process.env.VUE_APP_BASE_API]: "", |