From 774e6e650b6235a9e34dfecab65c4322c1767714 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期五, 01 十二月 2023 16:48:15 +0800
Subject: [PATCH] feat: 库存管理 查询条件梳理

---
 admin-web/src/views/stock/accessStock/outboundDetails/index.vue |  158 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 97 insertions(+), 61 deletions(-)

diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
index e94ddb1..095d378 100644
--- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
+++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
@@ -10,11 +10,13 @@
           <el-row style="margin-top: 15px">
             <el-col>
               <!--鍒楄〃-->
-              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" />
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
             </el-col>
           </el-row>
           <!--娣诲姞/缂栬緫寮圭獥-->
-          <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" />
+          <!--          <detail/>-->
+          <component v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false"
+                     :is="activeDetail"></component>
         </el-card>
       </el-container>
     </el-container>
@@ -25,39 +27,67 @@
 import MyTableV2 from '@/components/myTable/myTableV2';
 import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import detail from '../outbound/detail';
-import * as finsystenant from '@/api/baseSetting/finsystenant';
 import myImport from '@/views/components/myImport';
-import { goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant';
-import { outputDtailList } from '@/api/stock/accessStock';
+import * as DateFormatter from '@/utils/DateFormatter';
+import stockType from '@/utils/stockType';
+import detail from '../outbound/detail';
+import purchaseDetail from '@/views/stock/procure/purchaseOrder/detail.vue'; // 閲囪喘鍗曡鎯�
+import transferDetail from '@/views/stock/transfer/transferissue/detail.vue'; // 璋冩嫧鍗曡鎯�
+import inventoryDetail from '@/views/stock/inventorycount/inventorytask/detail.vue'; // 鐩樼偣鍗曡鎯�
+import scrapDetail from '@/views/stock/scrap/itemScrapping/detail.vue'; // 鎶ュ簾鍗曡鎯�
+import distributionDetail from '@/views/departmentitem/itemdis/distribution/detail.vue'; // 鍒嗗彂鍗曡鎯�
+import itemscrDetail from '@/views/departmentitem/itemscr/scrapping/detail.vue'; // 閮ㄩ棬鎶ュ簾鍗曡鎯�
+import returnNoteDetail from '@/views/departmentitem/itemret/returnNote/detail.vue'; // 閮ㄩ棬閫�杩樺崟璇︽儏
 
 export default {
   name: 'index',
-  components: { MyButton, MyTableV2, detail, myImport },
+  components: {
+    MyButton,
+    MyTableV2,
+    detail,
+    myImport,
+    purchaseDetail,
+    transferDetail,
+    inventoryDetail,
+    scrapDetail,
+    distributionDetail,
+    itemscrDetail,
+    returnNoteDetail
+  },
   data() {
     return {
+      activeDetail: '',
       // 鎼滅储妗�
       items: [
         {
           type: 'text',
-          dataIndex: 'businessFormId',
+          dataIndex: 'businessFormCode',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'select',
-          dataIndex: 'thisType',
+          dataIndex: 'flowType',
           label: '绫诲瀷',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [{
-            label:'閲囪喘鍏ュ簱',
-            value:1
-          },{
-            label:'閫�杩樺叆搴�',
-            value:2
-          }],
+          options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/FLOW_TYPE',
+          },
+        },
+        {
+          type: 'cascader',
+          dataIndex: 'agencyId',
+          label: '鏈烘瀯',
+          placeholder: '璇烽�夋嫨',
+          optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null},
+          cascader: [{key:'goodsTemplateId',queryKey: 'agencyId'}],
+          defaultValue: '',
+          options: [],
         },
         {
           type: 'select',
@@ -66,6 +96,12 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          cascader: [{key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId'}],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
@@ -74,32 +110,28 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-        },
-        {
-          type: 'cascader',
-          dataIndex: 'agencyId',
-          label: '鏈烘瀯',
-          placeholder: '璇烽�夋嫨',
-          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
-          defaultValue: '',
-          options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'text',
-          dataIndex: 'createdName',
+          dataIndex: 'createName',
           label: '鍒涘缓浜�',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'dealTimeStart',
+          dataIndex: 'startTime',
           label: '鏃堕棿',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'dealTimeEnd',
+          dataIndex: 'endTime',
           label: '鑷�',
           defaultValue: '',
         },
@@ -144,20 +176,34 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          { title: '绫诲瀷', field: 'thisType', align: 'left' },
-          { title: '鍗曞彿', field: 'businessFormId', align: 'center' },
-          { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
-          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
-          { title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'left' },
-          { title: '閲戦', field: 'totalPrice', align: 'left' },
-          { title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left' },
-          { title: '鍒涘缓浜�', field: 'createdName', align: 'left' },
-          { title: '鎿嶄綔鏃堕棿', field: 'dealTime', align: 'left' },
+          {
+            title: '绫诲瀷', field: 'thisType', align: 'left',
+            formatter: (row) => {
+              let result = stockType(row)
+              return {value: result};
+            },
+          },
+          {title: '鍗曞彿', field: 'businessFormCode', align: 'center', width: 130},
+          {title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'left', minWidth: 130},
+          {title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'left', minWidth: 130},
+          {title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'center', width: 100},
+          {title: '閲戦', field: 'totalPrice', align: 'center', width: 100},
+          {title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left', minWidth: 130},
+          {title: '鍒涘缓浜�', field: 'operatorName', align: 'left', width: 100},
+          {
+            title: '鎿嶄綔鏃堕棿',
+            field: 'dealTime',
+            align: 'center',
+            width: 160,
+            formatter: (row) => {
+              return {value: DateFormatter.LongToDateTime(row.dealTime)};
+            },
+          },
         ],
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '150', // 鍒楀
+          width: 100, // 鍒楀
           attr: [
             {
               title: '璇︽儏',
@@ -178,34 +224,24 @@
           },
         },
       },
+      components: {
+        '1': 'purchaseDetail',
+        '2': 'returnNoteDetail',
+        '3': 'transferDetail',
+        '4': 'inventoryDetail',
+        '5': 'itemscrDetail',
+        '6': 'transferDetail',
+        '7': 'inventoryDetail',
+        '8': 'scrapDetail',
+        '9': 'detail',
+      }
     };
   },
   created() {
-    this.initSearch();
   },
   methods: {
-    initSearch() {
-      this.items.map(async (item) => {
-        if (item.label == '鐗╁搧鍚嶇О') {
-          let res = await goodsTemplate();
-          item.options = res.map((v) => {
-            v.label = v.goodsName;
-            v.value = v.id;
-            return v;
-          });
-        }
-        if (item.label == '瑙勬牸鍨嬪彿') {
-          let res = await goodsModel();
-          item.options = res.map((v) => {
-            v.label = v.modelName;
-            v.value = v.id;
-            return v;
-          });
-        }
-        return item;
-      });
-    },
     showDetail(row) {
+      this.activeDetail = this.components[row.mixType]
       this.detailSetting.id = row.id;
       this.detailSetting.info = JSON.stringify(row);
       this.detailSetting.title = '璇︽儏';
@@ -214,7 +250,7 @@
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
+        this.$refs.myTable.search({pageNum});
       } else {
         this.$refs.myTable.search();
       }

--
Gitblit v1.9.1