From 17b36c3c68aa864d122cd767662f344dbacf0be0 Mon Sep 17 00:00:00 2001 From: gaoluyang <gaoluyang@rengu.cc> Date: 星期二, 11 二月 2025 15:55:57 +0800 Subject: [PATCH] 原材料报检页面迁移 --- src/api/business/materialInspection.js | 10 src/components/rawMaterialInspection/unPassRetestResult.vue | 57 ++ src/views/business/rawMaterialInspection/index.vue | 929 ++++++++++++++++++++++++++++++++++++++++++++++ src/components/rawMaterialInspection/dataLookVisible.vue | 162 ++++++++ src/router/index.js | 5 src/components/Table/value-table.vue | 4 6 files changed, 1,165 insertions(+), 2 deletions(-) diff --git a/src/api/business/materialInspection.js b/src/api/business/materialInspection.js new file mode 100644 index 0000000..69feb5e --- /dev/null +++ b/src/api/business/materialInspection.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 鏌ヨ鐢ㄦ埛鍒楄〃 +export function getWarehouseSubmit(query) { + return request({ + url: '/rawMaterialOrder/getWarehouseSubmit', + method: 'get', + params: query + }) +} diff --git a/src/components/Table/value-table.vue b/src/components/Table/value-table.vue index a5a57ef..0998661 100644 --- a/src/components/Table/value-table.vue +++ b/src/components/Table/value-table.vue @@ -118,7 +118,7 @@ <div :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''" class="table"> <el-table :key="specialKey" ref="eltable" v-loading="loading" :current-row-key="data.currentId" :data="tableData" :highlight-current-row="data.highlight===undefined||data.highlight" :row-class-name="tableRowClassName" :row-key="record=>record[rowKey]" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :span-method="spanMethod" - :summary-method="getSummaries" border + :summary-method="getSummaries" height="100%" style="width: 100%;" tooltip-effect="dark" @select="select" @selection-change="selectChange" @sort-change="sortChange" @row-click="rowClick"> @@ -607,7 +607,7 @@ selectList(val) { // console.log('val---', val) // console.log('this.page---', this.page) - this.loading = true + // this.loading = true if(val===undefined){ this.page.current = 1; } diff --git a/src/components/rawMaterialInspection/dataLookVisible.vue b/src/components/rawMaterialInspection/dataLookVisible.vue new file mode 100644 index 0000000..79aceca --- /dev/null +++ b/src/components/rawMaterialInspection/dataLookVisible.vue @@ -0,0 +1,162 @@ +<template> + <div> + <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="isShow" width="80%" @closed="$emit('closeDataLook')"> + <ul class="tab"> + <li v-for="(m,i) in dataVisibleTitle" :key="i" :class="{active:i===dataVisibleIndex}" @click="handleDataVisibleTab(m,i)">{{m.label}}</li> + </ul> + <div style="height: 70vh;overflow-y: auto;"> + <ValueTable ref="ValueTableDataLook" :url="$api.insOrder.selectSampleAndProductByOrderId" + :key="upIndex" + :componentData="componentDataDataLook"/> + </div> + </el-dialog> + <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook" v-if="retestVisible"></un-pass-retest-result> + </div> +</template> + +<script> +import ValueTable from "@/components/Table/value-table.vue"; +import UnPassRetestResult from "./unPassRetestResult.vue"; + +export default { + name: "dataLookVisible", + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: {UnPassRetestResult, ValueTable}, + props: { + dataDialogVisible: { + type: Boolean, + default: () => false + }, + dataLookInfo: { + type: Object, + default: () => {} + }, + }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + upIndex: 0, + isShow: this.dataDialogVisible, + dataVisibleTitle: [ + { + label: '杩涘巶妫�楠�', + value: 0 + }, + { + label: '瀛e害妫�楠�', + value: 1 + }, + ], + dataVisibleIndex: 0, // 鏁版嵁鏌ョ湅tab鏍忛�夋嫨鍊� + // 琛ㄦ牸鏁版嵁 + componentDataDataLook: { // 鏁扮粍鏌ョ湅鐨則able鏁版嵁 + entity: { + id: null, + }, + isIndex: false, + showSelect: false, + select: false, + do: [ + { + id: '', + font: '涓嶅悎鏍煎娴嬫煡鐪�', + type: 'text', + method: 'getRetestResult', + disabFun: (row, index) => { + return row.insResult!=0 + } + } + ], + tagField: { + insState: { + select: [] + }, + insResult: { + select: [{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: 0, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 3, + label: '涓嶅垽瀹�', + type: '' + }] + } + }, + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, + retestVisible: false, + retestInfo: [] + } + }, + mounted() { + this.refreshTable() + }, + // 鏂规硶闆嗗悎 + methods: { + // 鍒囨崲鏁版嵁鏌ョ湅tab鏍� + handleDataVisibleTab (m, i) { + this.dataVisibleIndex = i + this.refreshTable() + }, + // 鏌ヨ鍥炶皟 + refreshTable(e) { + if (this.dataVisibleIndex === 0) { + this.componentDataDataLook.entity.id = this.dataLookInfo.enterOrderId + } else { + this.componentDataDataLook.entity.id = this.dataLookInfo.quarterOrderId + } + this.$nextTick(() => { + this.$refs['ValueTableDataLook'].selectList(e) + }) + }, + // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋� + getRetestResult (row) { + this.$axios.get(this.$api.insOrder.getRetestResult+'?insProductId='+row.insProductId).then(res => { + if (res.code == 201) return + this.retestVisible = true + this.retestInfo = res.data + }) + }, + closeRetestLook () { + this.retestVisible = false + }, + }, +} +</script> + +<style scoped> +.tab { + list-style-type: none; + display: flex; + margin-bottom: 12px; +} + +.tab li { + line-height: 24px; + padding: 6px 14px; + font-size: 14px; + color: #333333; + border: 1px solid #EEEEEE; + cursor: pointer; +} + +.tab li:nth-child(1) { + border-radius: 8px 0 0 8px; +} + +.tab li:nth-child(2) { + border-radius: 0 8px 8px 0; +} + +.tab li.active { + border-color: #3A7BFA; + color: #3A7BFA; +} +</style> diff --git a/src/components/rawMaterialInspection/unPassRetestResult.vue b/src/components/rawMaterialInspection/unPassRetestResult.vue new file mode 100644 index 0000000..22f0f7a --- /dev/null +++ b/src/components/rawMaterialInspection/unPassRetestResult.vue @@ -0,0 +1,57 @@ +<template> + <div> + <el-dialog + title="涓嶅悎鏍煎娴嬫煡鐪�" + :visible.sync="isShow" + @closed="$emit('closeRetestLook')" + width="40%"> + <el-table + :data="retestInfo" + border + style="width: 100%"> + <el-table-column type="index" label="澶嶆祴娆℃暟" align="center" width="100"> + </el-table-column> + <el-table-column prop="tell" label="璇曢獙瑕佹眰" width="120"> + </el-table-column> + <el-table-column prop="lastValue" label="妫�楠岀粨鏋�" width="120"> + </el-table-column> + <el-table-column prop="insResult" label="缁撴灉鍒ゅ畾"> + <template slot-scope="scope"> + <el-tag type="danger" v-if="scope.row.insResult === 0" disable-transitions>涓嶅悎鏍�</el-tag> + <el-tag type="success" v-if="scope.row.insResult === 1" disable-transitions>鍚堟牸</el-tag> + <el-tag v-if="scope.row.insResult === 3" disable-transitions>涓嶅垽瀹�</el-tag> + </template> + </el-table-column> + </el-table> + </el-dialog> + </div> +</template> + +<script> +export default { + name: "unPassRetestResult", + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: {}, + props: { + retestVisible: { + type: Boolean, + default: () => false + }, + retestInfo: { + type: Array, + default: () => [] + } + }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + isShow: this.retestVisible, + } + }, + // 鏂规硶闆嗗悎 + methods: {}, +} +</script> + +<style scoped> +</style> diff --git a/src/router/index.js b/src/router/index.js index 71907b6..c157664 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -93,6 +93,11 @@ // 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇 export const dynamicRoutes = [ { + path: '/business/rawMaterialInspection', + component: Layout, + hidden: true, + }, + { path: '/system/user-auth', component: Layout, hidden: true, diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue new file mode 100644 index 0000000..4eaa8af --- /dev/null +++ b/src/views/business/rawMaterialInspection/index.vue @@ -0,0 +1,929 @@ +<template> + <div class="app-container"> + <div> + <el-row class="title"> + <el-col :span="12" style="text-align: left;">鍘熸潗鏂欐姤妫�</el-col> + <el-col :span="12" style="text-align: right;"> + <el-button v-show="tabIndex === 4" :loading="outLoading" size="medium" type="primary" @click="handleDown">瀵煎嚭</el-button> + <el-button v-if="isShowIFS && tabIndex === 0" :loading="btnLoading" size="small" type="primary" @click="openIFS">鑾峰彇IFS璁㈠崟</el-button> + <el-button v-if="tabIndex === 0" size="small" type="primary" @click="declareS">鎶ユ</el-button> + <el-button v-if="tabIndex === 0" size="small" type="primary" @click="addDeclare">鏂板鎶ユ淇℃伅</el-button> + </el-col> + </el-row> + </div> + <div class="search"> + <el-form :model="componentData" ref="componentData" size="small" :inline="true"> + <el-row> + <el-form-item label="鎵瑰彿" prop="menuName"> + <el-input v-model="componentData.entity.updateBatchNo" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"></el-input> + </el-form-item> + <el-form-item label="闆朵欢鍙�" prop="menuName"> + <el-input v-model="componentData.entity.partNo" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + <el-form-item label="闆朵欢鎻忚堪" prop="menuName"> + <el-input v-model="componentData.entity.partDesc" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + <el-form-item label="渚涘簲鍟�" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4)"> + <el-input v-model="componentData.entity.supplierName" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> +<!-- <div class="search_thing" style="padding-left: 30px;">--> + <el-button v-if="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="small" icon="el-icon-search" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + <el-button size="small" @click="refresh()" icon="el-icon-refresh">閲� 缃�</el-button> +<!-- </div>--> + </el-row> + <el-row> + <el-form-item label="妫�楠岀姸鎬�" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4) && more"> + <el-select v-model="componentData4.entity.inspectStatus" clearable + size="small" style="width: 100%;" @change="refreshTable()"> + <el-option v-for="(a, i) in queryStatusList" :key="i" :label="a.label" :value="a.value"></el-option> + </el-select> + </el-form-item> + <el-form-item label="涓嬪彂鏃堕棿" prop="menuName" v-if="(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="寮�濮嬫棩鏈�" + style="width: 100%;" + type="daterange" + value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> + <el-form-item label="濮旀墭缂栧彿" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4) && more"> + <el-input v-model="componentData4.entity.entrustCode" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + </el-row> + </el-form> + </div> + <div class="table"> + <ul class="tab"> + <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m,i)">{{m.label}}</li> + </ul> + <!-- 寰呮姤妫�--> + <ValueTable v-show="tabIndex === 0" :key="'a'+ upIndex" + ref="ValueTable" + :componentData="componentData" + :style="getStyle()" + :tableRowClassName="changeRowClass" + :url="getWarehouseSubmitApi()" /> + <!-- 寰呬笅鍗�--> + <ValueTable v-show="tabIndex === 1" :key="'b'+ upIndex" + ref="ValueTable1" + :componentData="componentData1" + :style="getStyle()" + :tableRowClassName="changeRowClass" + :url="getWarehouseSubmitApi()" /> + <!-- 宸插畬鎴愬垪琛�--> +<!-- <ValueTable v-show="tabIndex === 3" :key="'c'+ upIndex"--> +<!-- ref="ValueTable2"--> +<!-- :componentData="componentData2"--> +<!-- :style="getStyle()"--> +<!-- :url="$api.materialInspection.getIfsByFinish" />--> +<!-- <!– 鍏ㄩ儴–>--> +<!-- <ValueTable v-show="tabIndex === 4" :key="'d'+ upIndex"--> +<!-- ref="ValueTable4"--> +<!-- :componentData="componentData4"--> +<!-- :style="getStyle()"--> +<!-- :url="$api.materialInspection.getIfsByAll" />--> + </div> + <!-- 鎵归噺鎶ユ --> + <el-dialog :visible.sync="declareDialogSVisible" title="纭鎶ユ" width="30%"> + <p style="font-size:16px;color:#333333">鏄惁纭鎶ユ閫夋嫨鐨勬暟鎹紵</p> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="declareDialogSVisible = false">鍙� 娑�</el-button> + <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclareS">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <!-- 纭鎶ユ --> + <el-dialog :close-on-click-modal="false" :title="declareType === 'add' ? '鏂板鎶ユ淇℃伅' : '鍘熸潗鏂欐姤妫�'" + :visible.sync="declareDialogVisible" + width="62%" @close="resetForm"> + <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules" label-width="130px" style="display: flex;flex-wrap: wrap;"> + <el-form-item class="declareObj-form-item" label="璁㈠崟鍙�:" prop="orderNo"> + <el-input v-model="declareObj.orderNo" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="闆朵欢鍙�:" prop="partNo"> + <el-input v-model="declareObj.partNo" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="闆朵欢鎻忚堪:" prop="partDesc"> + <el-input v-model="declareObj.partDesc" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="鎶佃揪鐨勯噰璐暟閲�:" prop="qtyArrived"> + <el-input v-model="declareObj.qtyArrived" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="渚涘簲鍟嗙紪鍙�:" prop="supplierId"> + <el-input v-model="declareObj.supplierId" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="渚涘簲鍟嗗悕绉�:" prop="supplierName"> + <el-input v-model="declareObj.supplierName" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="鎵瑰彿:" prop="updateBatchNo"> + <el-input v-model="declareObj.updateBatchNo" class="addObj-info" clearable size="small"></el-input> + </el-form-item> + <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="搴撲綅鍙�:" prop="locationNo"> + <el-input v-model="declareObj.locationNo" :disabled="declareType !== 'add'" class="addObj-info" clearable size="small"></el-input> + </el-form-item> + <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="鎺ユ敹鏃堕棿:" prop="receiverDate"> + <el-input v-model="declareObj.receiverDate" class="addObj-info" clearable disabled size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="鍗曚綅:" prop="buyUnitMeas"> + <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" class="addObj-info" size="small"></el-input> + </el-form-item> + <el-form-item class="declareObj-form-item" label="鐗╂枡绫诲瀷锛�" prop="isExpire"> + <el-select v-model="declareObj.isExpire" prop="isExpire" + :disabled="declareType !== 'add'" + clearable size="small"> + <el-option :value="1" label="杩囨湡鐗╂枡"></el-option> + </el-select> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="resetForm">鍙� 娑�</el-button> + <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclare">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <!-- 鍒犻櫎鎶ユ --> + <el-dialog :visible.sync="deleteVisible" title="纭鍒犻櫎" width="30%"> + <p style="font-size:16px;color:#333333">鏄惁纭鍒犻櫎锛�</p> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="deleteVisible = false">鍙� 娑�</el-button> + <el-button :loading="deleteLoading" type="primary" @click="submitDelete">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <!-- 鎾ら攢鎶ユ --> + <el-dialog :visible.sync="declareDialogVisible1" title="鎶ユ鎾ら攢" width="30%"> + <p style="font-size:16px;color:#333333">鎵瑰彿<span + style="color:#34BD66">{{insOrderRow.updateBatchNo}}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span></p> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="declareDialogVisible1 = false">鍙� 娑�</el-button> + <el-button :loading="upLoad" type="primary" @click="submitDeclare1">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <!--鏁版嵁鏌ョ湅寮规--> + <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" + :dataDialogVisible="dataDialogVisible" + :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible> + </div> +</template> + +<script> +import ValueTable from "@/components/Table/value-table.vue"; +import DataLookVisible from "@/components/rawMaterialInspection/dataLookVisible.vue"; +import {getUser} from "@/api/system/user"; +import {getWarehouseSubmit} from '@/api/business/materialInspection' + +export default { + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: {DataLookVisible, ValueTable}, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + entity: { + date: null + }, + more:false, + isShowIFS: false, + declareObj: { + id: null, + orderNo: '', // 璁㈠崟鍙� + partNo: '', // 闆朵欢鍙� + partDesc: '', // 闆朵欢鎻忚堪 + qtyArrived: '', // 鎶佃揪鐨勯噰璐暟閲� + supplierId: '', // 渚涘簲鍟嗙紪鍙� + supplierName: '', // 渚涘簲鍟嗗悕绉� + updateBatchNo: '', // 鎵瑰彿 + locationNo: '', // 搴撲綅鍙� + receiverDate: '', // 鎺ユ敹鏃堕棿 + buyUnitMeas: '', // 鍗曚綅 + isExpire: '', // 鍗曚綅 + }, + componentData: { // 琛ㄦ牸鏁版嵁 + entity: { + updateBatchNo: null, + partNo: null, + partDesc: null, + supplierName: null, + isInspect: 0, + }, + isIndex: true, + showSelect: true, + select: true, + selectMethod: 'selectMethod', + do: [ + { + font: '鎶ユ', + type: 'text', + method: 'declare' + }, + { + font: '鍒犻櫎', + type: 'text', + method: 'deleteMaterial' + } + ], + tagField: { + isExpire: { + select: [{ + value: 1, + label: '杩囨湡鐗╂枡', + type: 'warning' + }] + } + }, + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, + declareDialogVisible1: false, + upLoad: false, + componentData1: { + entity: { + updateBatchNo: null, + partDesc: null, + state: 0, + isInspect: 1, + partNo: null, + supplierName: null, + }, + isIndex: true, + showSelect: false, + select: false, + selectMethod:'selectMethod', + do: [ + { + font: '鎾ら攢鎶ユ', + type: 'text', + method: 'cancelDeclare', + }, + ], + tagField: { + isExpire: { + select: [{ + value: 1, + label: '杩囨湡鐗╂枡', + type: 'warning' + }] + }, + }, + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, + componentData2: { + entity: { + orderBy: { + field: 'sendTime', + order: 'desc' + }, + updateBatchNo: null, + partNo: null, + partDesc: null, + supplierName: null, + beginDeclareDate: null, + endDeclareDate: null, + }, + isIndex: true, + showSelect: true, + select: true, + selectMethod:'selectMethod', + do: [ + { + id: 'dataLook', + font: '鏁版嵁鏌ョ湅', + type: 'text', + method: 'handleDataLook', + } + ], + tagField: { + inspectStatus: { + select: [{ + value: 0, + label: '妫�楠屼腑', + type: 'warning' + },{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: 2, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 3, + label: '鏈笅鍗�', + type: 'info' + },{ + value: 3, + label: '璁╂鏀捐', + type: '' + }] + }, + isExemption: { + select: [{ + value: 1, + label: '鍏嶆', + type: 'success' + }] + }, + isExpire: { + select: [{ + value: 1, + label: '杩囨湡鐗╂枡', + type: 'warning' + }] + }, + }, + selectField: {}, + requiredAdd: [], + requiredUp: [], + needSort: ['sendTime', 'receiverDate', 'declareDate'] + }, + componentData4: { + entity: { + orderBy: { + field: 'id', + order: 'desc' + }, + updateBatchNo: null, + partNo: null, + partDesc: null, + supplierName: null, + inspectStatus: null, + beginDeclareDate: null, + endDeclareDate: null, + }, + isIndex: true, + showSelect: true, + select: true, + selectMethod:'selectMethod', + do: [ + { + id: 'dataLook', + font: '鏁版嵁鏌ョ湅', + type: 'text', + method: 'handleDataLook', + }, + { + id: '', + font: '鏀捐', + type: 'text', + method: 'goPass', + disabFun: (row, index) => { + return row.inspectStatus != 2 + } + }, + { + id: '', + font: '鎻愬墠鍏ュ簱', + type: 'text', + method: 'advancedGodown', + disabFun: (row, index) => { + return row.inspectStatus != 0 && row.inspectStatus != 3 + } + } + ], + tagField: { + inspectStatus: { + select: [{ + value: 0, + label: '妫�楠屼腑', + type: 'warning' + },{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: 2, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 3, + label: '鏈笅鍗�', + type: 'info' + },{ + value: 4, + label: '璁╂鏀捐', + type: '' + }] + }, + isExemption: { + select: [{ + value: 1, + label: '鍏嶆', + type: 'success' + }] + }, + isExpire: { + select: [{ + value: 1, + label: '杩囨湡鐗╂枡', + type: 'warning' + }] + }, + }, + selectField: {}, + requiredAdd: [], + requiredUp: [], + needSort: ['sendTime', 'receiverDate', 'declareDate'] + }, + upIndex: 0, + multipleSelection: [], + entityCopy: {}, + currentId: null, + btnLoading: false, // 鑾峰彇IFS璁㈠崟鎸夐挳loading + insOrderRow: {}, + declareDialogVisible: false, // 纭鎶ユ寮规 + submitDeclareLoading: false, // 鎻愪氦鎶ユ寮规鎸夐挳loading + declareDialogSVisible: false, + declareObjRules: { + orderNo: [ + { required: false, message: '璇峰~鍐欒鍗曞彿', trigger: 'blur' } + ], + partNo: [ + { required: true, message: '璇峰~鍐欓浂浠跺彿', trigger: 'blur' } + ], + partDesc: [ + { required: true, message: '璇峰~鍐欓浂浠舵弿杩�', trigger: 'blur' } + ], + qtyArrived: [ + { required: false, message: '璇峰~鍐欐姷杈剧殑閲囪喘鏁伴噺', trigger: 'blur' } + ], + supplierName: [ + { required: true, message: '璇峰~鍐欎緵搴斿晢鍚嶇О', trigger: 'blur' } + ], + updateBatchNo: [ + { required: true, message: '璇峰~鍐欐壒鍙�', trigger: 'blur' } + ], + locationNo: [ + { required: false, message: '璇峰~鍐欏簱浣嶅彿', trigger: 'blur' } + ], + buyUnitMeas: [ + { required: false, message: '璇峰~鍐欏崟浣�', trigger: 'blur' } + ], + }, + tabList: [ + { + label: '寰呮姤妫�', + value: 0 + }, + { + label: '寰呬笅鍗�', + value: 1 + }, + { + label: '宸插畬鎴�', + value: 3 + }, + { + label: '鍏ㄩ儴', + value: 4 + } + ], + tabIndex: 0, + deleteVisible: false, // 鍒犻櫎鎶ユ寮规 + deleteLoading: false, // 鍒犻櫎鎶ユ鎸夐挳 + entityCopy1: {}, + entityCopy2: {}, + entityCopy4: {}, + dataDialogVisible: false, // 鏁版嵁鏌ョ湅寮规 + dataLookInfo: {}, // 鏁版嵁鏌ョ湅寮规鏁版嵁 + declareType: '', // 鎿嶄綔鎶ユ鐨勭被鍨� + queryStatusList: [ + {label: '妫�楠屼腑', value: 0}, + {label: '鍚堟牸', value: 1}, + {label: '涓嶅悎鏍�', value: 2}, + {label: '鏈笅鍗�', value: 3}, + {label: '璁╂鏀捐', value: 4}, + ], + outLoading:false + } + }, + mounted() { + this.entityCopy = this.HaveJson(this.componentData.entity) + this.entityCopy1 = this.HaveJson(this.componentData1.entity) + this.entityCopy2 = this.HaveJson(this.componentData2.entity) + this.entityCopy4 = this.HaveJson(this.componentData4.entity) + this.getPower() + }, + // 鏂规硶闆嗗悎 + methods: { + // 鎵撳紑鎾ら攢鎶ユ寮规 + cancelDeclare (row) { + this.declareDialogVisible1 = true + this.insOrderRow = row + }, + // 鎻愪氦鎾ら攢鎶ユ鐢宠 + submitDeclare1 () { + this.$axios.post(this.$api.rawMaterialOrder.revokeInspectionReport, { + id: this.insOrderRow.id + }).then(res => { + if (res.code === 200) { + this.declareDialogVisible1 = false + this.refreshTable('page') + this.$message.success("鎾ら攢鎶ユ鎴愬姛") + } + }).catch(err => { + console.log(err) + }) + }, + // 鍒囨崲tab琛ㄦ牸 + handleTab(m, i) { + this.tabIndex = m.value; + this.componentData.entity.isInspect = this.tabIndex + if (this.tabIndex === 0) { + this.componentData.do = [ + { + font: '鎶ユ', + type: 'text', + method: 'declare' + }, + { + font: '鍒犻櫎', + type: 'text', + method: 'deleteMaterial' + } + ] + } else if (this.tabIndex === 1) { + this.componentData.do = [] + } + this.refreshTable() + }, + // 鑾峰彇鏉冮檺 + getPower() { + let power = JSON.parse(sessionStorage.getItem('power')) + let getIFS = false + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'getIfsOrder') { // 鑾峰彇IFS鐨勬潈闄� + getIFS = true + } + } + this.isShowIFS = getIFS + }, + // 鏌ヨ鍥炶皟 + refreshTable(e) { + if (this.tabIndex === 0) { + this.componentData.entity.isInspect = this.tabIndex + this.$refs.ValueTable.selectList(e) + } else if (this.tabIndex === 1) { + this.componentData1.entity.updateBatchNo = this.componentData.entity.updateBatchNo + this.componentData1.entity.partNo = this.componentData.entity.partNo + this.componentData1.entity.partDesc = this.componentData.entity.partDesc + this.componentData1.entity.supplierName = this.componentData.entity.supplierName + this.$refs['ValueTable1'].selectList(e) + } else if (this.tabIndex === 3) { + this.componentData2.entity.updateBatchNo = this.componentData.entity.updateBatchNo + this.componentData2.entity.partNo = this.componentData.entity.partNo + this.componentData2.entity.partDesc = this.componentData.entity.partDesc + this.componentData2.entity.supplierName = this.componentData.entity.supplierName + this.componentData2.entity.inspectStatus = this.componentData4.entity.inspectStatus + if (this.entity.date !== null) { + this.componentData2.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00' + this.componentData2.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59' + } else { + this.componentData2.entity.beginDeclareDate = '' + this.componentData2.entity.endDeclareDate = '' + } + this.$refs['ValueTable2'].selectList(e) + }else { + this.componentData4.entity.updateBatchNo = this.componentData.entity.updateBatchNo + this.componentData4.entity.partNo = this.componentData.entity.partNo + this.componentData4.entity.partDesc = this.componentData.entity.partDesc + this.componentData4.entity.supplierName = this.componentData.entity.supplierName + if (this.entity.date !== null) { + this.componentData4.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00' + this.componentData4.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59' + } else { + this.componentData4.entity.beginDeclareDate = '' + this.componentData4.entity.endDeclareDate = '' + } + this.$refs['ValueTable4'].selectList(e) + } + }, + // 閲嶇疆 + refresh() { + this.entity.date = null + this.componentData.entity = this.HaveJson(this.entityCopy) + if (this.tabIndex === 0) { + this.componentData.entity = this.HaveJson(this.entityCopy) + } else if (this.tabIndex === 1) { + this.componentData1.entity = this.HaveJson(this.entityCopy1) + } else if (this.tabIndex === 3) { + this.componentData2.entity = this.HaveJson(this.entityCopy2) + this.componentData4.entity = this.HaveJson(this.entityCopy4) + } else { + this.componentData4.entity = this.HaveJson(this.entityCopy4) + } + this.refreshTable() + }, + // 鏁版嵁鏌ョ湅 + handleDataLook(row) { + this.dataDialogVisible = true; + this.dataLookInfo = row + }, + // 鐩存帴鏀捐 + goPass (row) { + this.$confirm('鏄惁鏀捐褰撳墠鏁版嵁?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.post(this.$api.materialInspection.concessionRelease+'?ifsInventoryId='+row.id).then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏀捐鎴愬姛!' + }); + this.refresh() + } + }) + }).catch(() => { + this.$message({ + type: 'error', + message: '鏀捐澶辫触' + }); + }); + }, + // 鎻愬墠鍏ュ簱 + advancedGodown (row) { + this.$confirm('褰撳墠鍘熸潗鏂欐槸鍚︽彁鍓嶅叆搴�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.post(this.$api.materialInspection.advancedGodown+'?ifsInventoryId='+row.id).then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鎿嶄綔鎴愬姛!' + }); + this.refresh() + } + }) + }).catch(() => { + this.$message({ + type: 'error', + message: '鎿嶄綔澶辫触' + }); + }); + }, + // 鍏抽棴鏁版嵁鏌ョ湅寮规 + closeDataLook () { + this.dataDialogVisible = false + }, + // 鎵嬪姩鎶ユ + addDeclare () { + this.clear() + this.declareDialogVisible = true + this.declareType = 'add' + }, + declareS () { + if (this.multipleSelection.length > 0) { + this.declareDialogSVisible = true + } else { + this.$message.error('璇烽�夋嫨闇�瑕佹姤妫�鐨勬暟鎹�') + } + }, + submitDeclareS () { + let ids = [] + this.multipleSelection.forEach(item => { + ids.push(item.id) + }) + this.declareDialogSVisible = true + this.$axios.post(this.$api.rawMaterialOrder.inspectionReport, { + ids: ids + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 200) { + this.declareDialogSVisible = false + this.$message.success('鎶ユ鎴愬姛') + this.refresh() + } + this.submitDeclareLoading = false + }).catch(err => { + this.submitDeclareLoading = false + console.log(err) + }) + }, + // 鎵撳紑鎶ユ纭寮规 + declare(row) { + this.declareObj = {...row} + this.declareDialogVisible = true + this.declareType = 'edit' + }, + // 鎻愪氦鎶ユ + submitDeclare () { + if (this.declareType === 'add') { + this.$refs['declareObj'].validate((valid) => { + if (valid) { + this.$axios.post(this.$api.rawMaterialOrder.addIfsInventoryQuantity, + this.declareObj + , { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 200) { + this.declareDialogVisible = false + this.$message.success('鎶ユ鎴愬姛') + this.refresh() + } + }).catch(err => { + console.log(err) + }) + } else { + console.log('error submit!!'); + return false; + } + }); + } else { + this.$refs['declareObj'].validate((valid) => { + if (valid) { + this.$axios.post(this.$api.rawMaterialOrder.inspectionReportOne, { + id: this.declareObj.id, + updateBatchNo: this.declareObj.updateBatchNo + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 200) { + this.declareDialogVisible = false + this.$message.success('鎶ユ鎴愬姛') + this.refresh() + } + }).catch(err => { + console.log(err) + }) + } else { + console.log('error submit!!'); + return false; + } + }); + } + }, + resetForm () { + this.$refs['declareObj'].resetFields(); + this.declareDialogVisible = false + }, + // 鎵撳紑鍒犻櫎寮规 + deleteMaterial (row) { + this.deleteVisible = true + this.deleteInfo = row + }, + // 纭鍒犻櫎 + submitDelete () { + this.deleteLoading = true + this.$axios.post(this.$api.rawMaterialOrder.delIfsInventory + '?id=' + this.deleteInfo.id).then(res => { + if (res.code === 200) { + this.deleteVisible = false + this.$message.success('鍒犻櫎鎴愬姛') + this.refresh() + } + this.deleteLoading = false + }).catch(err => { + console.log(err) + this.deleteLoading = false + }) + }, + // 琛ㄦ牸閫夋嫨鏂规硶 + selectMethod(val) { + this.multipleSelection = val + }, + // 鑾峰彇IFS鎸夐挳鍥炶皟 + openIFS() { + this.btnLoading = true + this.$axios.post(this.$api.materialInspection.getIfsOrder).then(res => { + if (res.code === 200) { + this.refresh() + } + this.btnLoading = false + }).catch(err => { + this.btnLoading = false + console.log(err) + }) + }, + changeRowClass({row, rowIndex}) { + if (row.isFirst == 1) { + return 'highlight-danger-row-border' + } + return '' + }, + getStyle() { + return 'height: calc(100% - ' + (this.more ? '94' : '44') + 'px)' + }, + getWarehouseSubmitApi () { + const row = {} + getWarehouseSubmit(row).then(response => { + + }) + }, + // 鍏ㄩ儴瀵煎嚭 + handleDown(){ + let entity = {...this.componentData4.entity} + delete entity.orderBy + this.outLoading = true + this.$axios.post(this.$api.rawMaterialOrder.rawAllExport,{ + entity:entity + },{ + headers: { + 'Content-Type': 'application/json' + } + ,responseType: "blob"}).then(res => { + this.outLoading = false + this.$message.success('瀵煎嚭鎴愬姛') + const blob = new Blob([res],{ type: 'application/octet-stream' }); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = '鍘熸潗鏂欐娴嬩俊鎭鍑�.xlsx'; + link.click(); + }) + }, + clear() { + this.declareObj = { + id: null, + orderNo: '', // 璁㈠崟鍙� + partNo: '', // 闆朵欢鍙� + partDesc: '', // 闆朵欢鎻忚堪 + qtyArrived: '', // 鎶佃揪鐨勯噰璐暟閲� + supplierId: '', // 渚涘簲鍟嗙紪鍙� + supplierName: '', // 渚涘簲鍟嗗悕绉� + updateBatchNo: '', // 鎵瑰彿 + locationNo: '', // 搴撲綅鍙� + receiverDate: '', // 鎺ユ敹鏃堕棿 + buyUnitMeas: '', // 鍗曚綅 + isExpire: '', // 鍗曚綅 + } + } + }, +} +</script> + +<style scoped lang="scss"> +.app-container { + padding-top: 0; +} +.title { + height: 60px; + line-height: 60px; +} + +.tab { + list-style-type: none; + display: flex; + margin-bottom: 12px; + margin-top: 0; + padding-left: 0; +} + +.tab li { + line-height: 24px; + padding: 6px 14px; + font-size: 14px; + color: #333333; + border: 1px solid #EEEEEE; + cursor: pointer; +} + +.tab li:nth-child(1) { + border-radius: 8px 0 0 8px; +} + +.tab li:nth-child(4) { + border-radius: 0 8px 8px 0; +} + +.tab li.active { + border-color: #3A7BFA; + color: #3A7BFA; +} +</style> -- Gitblit v1.9.3