| | |
| | | <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"> |
| | | @keyup.enter.native="goSearch"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="委托编号" prop="entrustCode"> |
| | | <el-form-item label="委托编号" prop="entrustCode" v-if="tabIndex !== 0"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | @keyup.enter.native="goSearch"> |
| | | </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"> |
| | | @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="refreshTable"> |
| | | @keyup.enter.native="goSearch"> |
| | | </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 size="mini" type="primary" @click="refreshTable()">查询</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="supplierName" |
| | | v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> |
| | | <el-input v-model="entity.supplierName" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | @keyup.enter.native="goSearch"> |
| | | </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"> |
| | | @keyup.enter.native="goSearch"> |
| | | </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-select v-model="entity.inspectStatus" clearable size="small" @change="goSearch"> |
| | | <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="选择日期" |
| | | <el-date-picker v-model="entity.date" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期" @change="goSearch" |
| | | range-separator="至" size="small" start-placeholder="开始日期" type="daterange" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <div class="table-tab"> |
| | | <div> |
| | | <ul class="tab"> |
| | | <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)">季度检验</li> |
| | | <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:raw:await'])" @click="handleTab(0)">待下单</li> |
| | | <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:raw:testing'])" @click="handleTab(1)">检验中</li> |
| | | <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:raw:check'])" @click="handleTab(2)">已检验</li> |
| | | <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:raw:quarterCheck'])" @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" |
| | | <el-button v-show="tabIndex === 3" :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 class="table"> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination" |
| | | :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" key="tableData" :page="page" |
| | | :tableLoading="tableLoading"></lims-table> |
| | | ref="tableData" :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" |
| | | key="tableData" :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <!--检验中--> |
| | | <div class="table"> |
| | |
| | | <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"></el-input> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | |
| | | concessionRelease, |
| | | getIfsByAll, |
| | | getIfsByOver, |
| | | getIfsByQuarter, |
| | | getIfsByStateOne, |
| | | rawAllExport, |
| | | rawOrderRelease, |
| | |
| | | updateEntrustCode |
| | | } from "@/api/business/rawMaterialOrder"; |
| | | import { getWarehouseSubmit } from "@/api/business/materialInspection"; |
| | | import {mapGetters} from "vuex"; |
| | | // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; |
| | | |
| | | export default { |
| | | name: "b1-material-inspection-order", |
| | | name: "MaterialOrder", |
| | | // import 引入的组件需要注入到对象中才能使用 |
| | | components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog }, |
| | | data() { |
| | |
| | | { label: '报检时间', prop: 'declareDate' }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | label: '操作', |
| | | operation: [ |
| | | { |
| | |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | size: 20, |
| | | current: 1 |
| | | }, |
| | | tableData1: [], |
| | |
| | | ], |
| | | page1: { |
| | | total: 0, |
| | | size: 10, |
| | | size: 20, |
| | | current: 1 |
| | | }, |
| | | tableData2: [], |
| | |
| | | { 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', |
| | |
| | | disabled: (row) => { |
| | | return row.isQuarter == 0 |
| | | }, |
| | | showHide: (row) => { |
| | | return this.checkPermi([ |
| | | "get:raw:check:operation", |
| | | ]); |
| | | }, |
| | | }, |
| | | { |
| | | name: '数据查看', |
| | |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.handleFileLook(row); |
| | | }, |
| | | } |
| | | }, |
| | | { |
| | | name: '报告下载', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.download(row); |
| | | }, |
| | | } |
| | | }, |
| | | { |
| | | name: '原始记录', |
| | |
| | | disabled: (row) => { |
| | | return row.inspectStatus != 2 |
| | | }, |
| | | showHide: (row) => { |
| | | return this.checkPermi([ |
| | | "get:raw:check:operation", |
| | | ]); |
| | | }, |
| | | }, |
| | | { |
| | | name: '季度撤销', |
| | |
| | | disabled: (row) => { |
| | | return row.quarterOrderId == null || row.quarterReportId != null |
| | | }, |
| | | showHide: (row) => { |
| | | return this.checkPermi([ |
| | | "get:raw:check:operation", |
| | | ]); |
| | | }, |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | | page2: { |
| | | total: 0, |
| | | size: 10, |
| | | size: 20, |
| | | current: 1 |
| | | }, |
| | | tableData3: [], |
| | |
| | | { 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', |
| | |
| | | ], |
| | | page3: { |
| | | total: 0, |
| | | size: 10, |
| | | size: 20, |
| | | current: 1 |
| | | }, |
| | | tableData4: [], |
| | |
| | | { 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', |
| | |
| | | ], |
| | | page4: { |
| | | total: 0, |
| | | size: 10, |
| | | size: 20, |
| | | current: 1 |
| | | }, |
| | | entity: { |
| | |
| | | } |
| | | ], |
| | | more: false, |
| | | tabIndex: 0, |
| | | tabIndex: '', |
| | | multipleSelection: [], |
| | | active: 0, //1:下单,2:查看 |
| | | orderType: 0, //0:原材料下单,1:季度检验下单 |
| | |
| | | outLoading: false |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['nickName']) |
| | | }, |
| | | mounted() { |
| | | if (this.checkPermi(['get:raw:await'])) { |
| | | this.tabIndex = 0 |
| | | } else { |
| | | this.tabIndex = 2 |
| | | } |
| | | this.refreshTable() |
| | | }, |
| | | activated () { |
| | | this.refreshTable() |
| | | }, |
| | | // 方法集合 |
| | | methods: { |
| | | // 点击查询回调 |
| | | goSearch() { |
| | | this.page.current = 1 |
| | | this.page1.current = 1 |
| | | this.page2.current = 1 |
| | | this.page3.current = 1 |
| | | this.page4.current = 1 |
| | | this.refreshTable() |
| | | }, |
| | | // 查询回调 |
| | | refreshTable() { |
| | | if (this.tabIndex === 0) { |
| | |
| | | // 已检验查询 |
| | | getIfsByOverList() { |
| | | this.tableLoading2 = true |
| | | if(null != this.entity.date){ |
| | | this.entity.beginDeclareDate = this.entity.date[0] |
| | | this.entity.endDeclareDate = this.entity.date[1] |
| | | } else { |
| | | this.entity.beginDeclareDate = '' |
| | | this.entity.endDeclareDate = '' |
| | | } |
| | | const params = { ...this.entity, orderState: 4, state: 2, ...this.page2 } |
| | | getIfsByOver(params).then(res => { |
| | | this.tableLoading2 = false |
| | |
| | | // 查询季度检验 |
| | | getIfsByQuarterList() { |
| | | this.tableLoading4 = true |
| | | if(null != this.entity.date){ |
| | | this.entity.beginDeclareDate = this.entity.date[0] |
| | | this.entity.endDeclareDate = this.entity.date[1] |
| | | } else { |
| | | this.entity.beginDeclareDate = '' |
| | | this.entity.endDeclareDate = '' |
| | | } |
| | | const params = { ...this.entity, ...this.page4 } |
| | | getIfsByOver(params).then(res => { |
| | | getIfsByQuarter(params).then(res => { |
| | | this.tableLoading4 = false |
| | | if (res.code === 200) { |
| | | this.tableData4 = res.data.records |
| | |
| | | // 全部 |
| | | getIfsByAllList() { |
| | | this.tableLoading3 = true |
| | | if(null != this.entity.date){ |
| | | this.entity.beginDeclareDate = this.entity.date[0] |
| | | this.entity.endDeclareDate = this.entity.date[1] |
| | | } else { |
| | | this.entity.beginDeclareDate = '' |
| | | this.entity.endDeclareDate = '' |
| | | } |
| | | const params = { ...this.entity, isInspect: 1, ...this.page3 } |
| | | getIfsByAll(params).then(res => { |
| | | this.tableLoading3 = false |
| | |
| | | if (row.userName) { |
| | | inspectorList = row.userName.split(',') |
| | | } |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | if (user) { |
| | | inspectorList.push(user.name) |
| | | } |
| | | inspectorList.push(this.nickName) |
| | | this.inspectorList = inspectorList |
| | | this.insInfo = row |
| | | this.InspectInfoDialog = true |
| | |
| | | }).catch(() => { }) |
| | | }, |
| | | viewInsInfo0() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.enterOrderId |
| | | let inspectorList = [] |
| | | inspectorList.push(this.nickName) |
| | | this.InspectInfoDialog = false |
| | | if (this.checkPermi(['business:inspectionView'])) { |
| | | this.$router.push({ |
| | | name: "InspectionView", |
| | | query: { |
| | | sonLaboratory: '原材料', |
| | | state: 3, |
| | | typeSource: this.insInfo.typeSource, |
| | | orderId: this.insInfo.enterOrderId, |
| | | inspectorList: inspectorList, |
| | | }, |
| | | }) |
| | | } else { |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | | sonLaboratory: '原材料', |
| | | state: 3, |
| | | typeSource: this.insInfo.typeSource, |
| | | orderId: this.insInfo.enterOrderId, |
| | | inspectorList: inspectorList, |
| | | }, |
| | | }) |
| | | } |
| | | }, |
| | | viewInsInfo1() { |
| | | this.state = 3; |
| | | this.typeSource = this.insInfo.typeSource |
| | | this.orderId = this.insInfo.quarterOrderId |
| | | let inspectorList = [] |
| | | inspectorList.push(this.nickName) |
| | | this.InspectInfoDialog = false |
| | | if (this.checkPermi(['business:inspectionView'])) { |
| | | this.$router.push({ |
| | | name: "InspectionView", |
| | | query: { |
| | | sonLaboratory: '原材料', |
| | | state: 3, |
| | | typeSource: this.insInfo.typeSource, |
| | | orderId: this.insInfo.quarterOrderId, |
| | | inspectorList: inspectorList, |
| | | }, |
| | | }) |
| | | } else { |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | | sonLaboratory: '原材料', |
| | | state: 3, |
| | | typeSource: this.insInfo.typeSource, |
| | | orderId: this.insInfo.quarterOrderId, |
| | | inspectorList: inspectorList, |
| | | }, |
| | | }) |
| | | } |
| | | }, |
| | | goback() { |
| | | this.state = 0 |
| | |
| | | }, |
| | | // 铜材料下单 |
| | | copper() { |
| | | this.$router.push("/materialOrder/copperOrder"); |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: { active: 1 } }); |
| | | }, |
| | | // 打开标签打印弹框 |
| | |
| | | }, |
| | | // 下单 |
| | | playOrder(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } }); |
| | | this.$router.push({ path: "/materialOrder/customsInspectionOrder", query: { orderType: 0, customsInspection: row, active: 1 } }); |
| | | }, |
| | | // 季度检验下单 |
| | | playOrderSec(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } }); |
| | | this.$router.push({ path: "/materialOrder/customsInspectionOrder", query: { orderType: 1, customsInspection: row, active: 1 } }); |
| | | }, |
| | | // 点击样品名称查看详情 |
| | | selectAllByOne(row) { |
| | | if (row.isCopper == 1) { |
| | | this.currentId = row.enterOrderId |
| | | this.$router.push({ path: "/materialOrder/copperOrder", query: { customsInspection: row, active: 2, currentId: this.currentId } }); |
| | | this.$router.push({ path: "/materialOrder/CopperView", query: { customsInspection: row, active: 2, currentId: this.currentId } }); |
| | | } else { |
| | | this.currentId = row.insOrderId |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { customsInspection: row, active: 2, currentId: this.currentId } }); |
| | | this.$router.push({ path: "/materialOrder/customsInspectionView", query: { customsInspection: row, active: 2, currentId: this.currentId } }); |
| | | } |
| | | }, |
| | | // 打开免检弹框 |
| | |
| | | repealQuarterRawOrder({ quarterOrderId: this.insOrderRow.quarterOrderId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('撤销成功') |
| | | this.refreshTable('page') |
| | | this.refreshTable() |
| | | } |
| | | }) |
| | | }).catch(() => { }) |
| | |
| | | }, |
| | | // 导出 |
| | | 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 }).then(res => { |
| | | let params = {} |
| | | if (this.multipleSelection.length > 0) { |
| | | params.ids = this.multipleSelection.map(item => item.id).join(','); |
| | | } else { |
| | | params = {...this.entity} |
| | | } |
| | | rawAllExport(params).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, '原材料检测信息导出.xlsx'); |
| | |
| | | // 切换下单tab表格 |
| | | handleTab(m) { |
| | | this.tabIndex = m; |
| | | this.multipleSelection = [] |
| | | this.refreshTable() |
| | | }, |
| | | // 表格选择方法 |