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