Просмотр исходного кода

采购入库的"选择到货单"选主表展示子表

zhouying 1 неделя назад
Родитель
Сommit
c6752c1a2f

+ 32 - 23
src/views/inventiry/purchaseIn/components/purchaseInForm.vue

@@ -113,7 +113,7 @@
     <!-- 子表单区域 -->
     <a-tabs v-model:activeKey="activeKey" animated style="padding: 24px; padding-top: 0px">
       <a-tab-pane tab="采购入库 - 入库明细(stock in details)" key="stockIn" :forceRender="true">
-        <a-button type="primary" style="margin-right: 1%; margin-bottom: 1%" @click="selectArrivalList" :disabled="disabled">
+        <a-button type="primary" style="margin-right: 1%; margin-bottom: 1%" @click="selectArrivalList" :disabled="disabled || notAllowEdit">
           选择到货单(select arrival)</a-button
         >
         <j-vxe-table
@@ -164,7 +164,7 @@
   import { defineComponent, ref, reactive, computed, toRaw } from 'vue';
   import { defHttp } from '/@/utils/http/axios';
   import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods';
-  import { queryPurInFormShipFormShippTable, querystockInByMainId, queryDataById, saveOrUpdate, ClassList } from '../purchaseInForm.api';
+  import { queryPurInFormShipFormShippTable, querystockInByMainId, queryDataById, saveOrUpdate, ClassList, getArrivalDetailList } from '../purchaseInForm.api';
   import { JVxeTable } from '/@/components/jeecg/JVxeTable';
   import { purInShipColumns, stockInColumns } from '../puechaseInForm.data';
   import BaseShipArchiveAccessoriesModal from '../../../publicComponents/BaseShipArchiveAccessoriesModal.vue';
@@ -207,6 +207,7 @@
       const SelectArrivalListRef = ref();
       const purInShipTableRef = ref();
       const BaseShipArchiveAccessoriesModalRef = ref();
+      var notAllowEdit = ref(false);
       const purInShipTable = reactive<Record<string, any>>({
         loading: false,
         columns: purInShipColumns,
@@ -274,6 +275,7 @@
         var goodsAllocationArr = await initDictOptions('goods_allocation');
         formData.warehouse = warehouseArr[0].value;
         formData.goodsAllocation = goodsAllocationArr[0].value;
+        notAllowEdit.value = false;
       }
       async function edit(row) {
         //主表数据
@@ -283,6 +285,7 @@
         purInShipTable.dataSource = [...purInShipDataList];
         const stockInDataList = await querystockInByMainId(row['id']);
         stockInTable.dataSource = [...stockInDataList];
+        notAllowEdit.value = true;
       }
 
       async function queryMainData(id) {
@@ -375,27 +378,32 @@
       function selectArrivalList() {
         SelectArrivalListRef.value.getTable(formData);
       }
-      function addStockInList(data) {
-        formData.project = data[0].project;
-        formData.projectName = data[0].projectName;
-        formData.supplier = data[0].supplier;
-        formData.supplierName = data[0].supplierName;
-        formData.delivery = data[0].delivery;
-        formData.productionClass = data[0].productionClass;
-        formData.model = data[0].model;
-        formData.maker = data[0].maker;
-        formData.sourceCode = data[0].billCode;
-        formData.arrivalDetails = data[0].arrivalDetails;
-        getShipList(data[0].headId);
-        data.map((item) => {
-          item.model = item.childModel;
-          item.sourceId = item.childId;
-          item.arrivalQuantity = item.quantity;
-          item.stockInQuantity = item.quantity;
-        });
-        var xTable = stockInTableRef.value!.getXTable();
-        var arr = xTable.data.concat(data);
-        stockInTable.dataSource = arr;
+      async function addStockInList(data) {
+        var arr = await getArrivalDetailList({ headId: data[0].id, pageSize: -1 }) 
+        if(arr.records.length!==0) {
+          formData.project = arr.records[0].project;
+          formData.projectName = arr.records[0].projectName;
+          formData.supplier = arr.records[0].supplier;
+          formData.supplierName = arr.records[0].supplierName;
+          formData.delivery = arr.records[0].delivery;
+          formData.productionClass = arr.records[0].productionClass;
+          formData.model = arr.records[0].model;
+          formData.maker = arr.records[0].maker;
+          formData.sourceCode = arr.records[0].billCode;
+          formData.arrivalDetails = arr.records[0].arrivalDetails;
+          getShipList(arr.records[0].headId);
+          data.map((item) => {
+            item.model = item.childModel;
+            item.sourceId = item.childId;
+            item.arrivalQuantity = item.quantity;
+            item.stockInQuantity = item.quantity;
+          });
+          stockInTable.dataSource = arr.records;
+          notAllowEdit.value = true;
+        }
+        // var xTable = stockInTableRef.value!.getXTable();
+        // var arr = xTable.data.concat(data);
+        // stockInTable.dataSource = arr;
       }
       /**
        * 值改变事件触发-树控件回调
@@ -432,6 +440,7 @@
         addStockInList,
         baseUrl,
         ClassList,
+        notAllowEdit,
       };
     },
   });

+ 4 - 0
src/views/inventiry/purchaseIn/purchaseInForm.api.ts

@@ -19,6 +19,7 @@ enum Api {
   classList='baseCode/baseProductClass/list',
   supplierList='/cuspCode/cuspSupplierProfile/list',
   projectList='/baseCode/baseProjectArchive/list',
+  getArrivalDetail='/purCode/purDeliveryNote/purDeliveryNoteArrivalAlert',
 }
 /**
  * 导出api
@@ -148,3 +149,6 @@ export const supplierOption = (params) => defHttp.get({url: Api.supplierList, pa
 
 //获取项目下拉框列表
 export const ProjectOption = (params) => defHttp.get({ url: Api.projectList, params });
+
+// 获取到货单的子表信息
+export const getArrivalDetailList = (params) => defHttp.get({ url: Api.getArrivalDetail, params})

+ 5 - 5
src/views/publicComponents/selectArrivalList.vue

@@ -104,7 +104,7 @@
             </a-alert>
             <a-table
                 :columns="columns"
-                :row-key="record => record.childId"
+                :row-key="record => record.id"
                 :data-source="dataSource"
                 bordered
                 size="small"
@@ -269,7 +269,7 @@
     });
     function loadData(){
         let params = getQueryParams();
-        defHttp.get({ url: '/purCode/purDeliveryNote/purDeliveryNoteArrivalAlert',params}, { isTransformResponse: false })
+        defHttp.get({ url: '/purCode/purDeliveryNote/listHead',params}, { isTransformResponse: false })
         .then((res) => {
             if (res.success) {
                 dataSource.value = res.result.records;
@@ -334,7 +334,7 @@
     function onSelectChange(selectedRowKeys1, selectionRows1) {
         var arr = []
         selectionRows.value.map(item=>{
-            arr.push(item.childId)
+            arr.push(item.id)
         })
         selectedRowKeys.value =  arr
     }
@@ -344,7 +344,7 @@
             console.log( selectionRows.value);
         }else{
             const delIndex = selectionRows.value.findIndex((val) => {
-            return val.childId === record.childId
+            return val.id === record.id
             })
             selectionRows.value.splice(delIndex, 1)
         }
@@ -358,7 +358,7 @@
             const delIndex = []
             selectionRows2.forEach((item, index) => {
             changeRows.forEach((val, itemIndex) => {
-                if (item.childId === val.childId) {
+                if (item.id === val.id) {
                 delIndex.push(index)
                 }
             })