From 9834dbff448908d2008d8c52a2544aad00c099b1 Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期三, 22 十一月 2023 17:34:26 +0800
Subject: [PATCH] 库存盘点, 异常明细,报废管理

---
 admin-web/src/views/stock/ledger/alertQuery/index.vue                |   16 
 admin-web/src/views/stock/transfer/transferdetails/index.vue         |   38 -
 admin-web/src/views/stock/inventorycount/inventorytask/index.vue     |   20 
 admin-web/src/views/stock/ledger/inventoryQuery/index.vue            |   24 
 admin-web/src/views/stock/procure/receiptDetails/index.vue           |   32 
 admin-web/src/views/stock/procure/purchaseOrder/index.vue            |   25 
 admin-web/src/api/stock/inventory.js                                 |   11 
 admin-web/src/views/stock/transfer/transferApplication/edit.vue      |   33 
 admin-web/src/views/stock/transfer/transferissue/index.vue           |   14 
 admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue  |  155 +++---
 admin-web/src/views/stock/scrap/itemScrapping/detail.vue             |   57 -
 admin-web/src/views/stock/scrap/itemScrapping/edit.vue               |  246 ++++------
 admin-web/src/views/stock/inventorycount/inventorytask/detail.vue    |   41 -
 admin-web/src/views/stock/transfer/transferApplication/index.vue     |   13 
 admin-web/src/views/stock/ledger/ledgerQuery/index.vue               |   27 -
 admin-web/src/views/stock/ledger/inventoryAlert/index.vue            |   83 ++-
 admin-web/src/utils/stockType.js                                     |   34 +
 admin-web/src/views/stock/accessStock/outbound/index.vue             |   16 
 admin-web/src/views/stock/scrap/itemScrapping/index.vue              |   87 ---
 admin-web/src/views/stock/scrap/scrapDetails/index.vue               |  141 +++--
 admin-web/src/views/stock/ledger/inventoryAlert/edit.vue             |    4 
 admin-web/src/views/stock/accessStock/outboundDetails/index.vue      |   51 -
 admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue |   33 
 23 files changed, 592 insertions(+), 609 deletions(-)

diff --git a/admin-web/src/api/stock/inventory.js b/admin-web/src/api/stock/inventory.js
index c9c371f..a3348c8 100644
--- a/admin-web/src/api/stock/inventory.js
+++ b/admin-web/src/api/stock/inventory.js
@@ -32,7 +32,7 @@
   });
 }
 
-// 缂栬緫
+// 鐩樼偣璇︽儏
 export function inventoryDetail(params) {
   return request({
     url: '/pc/l/wh/form/inventory/detail',
@@ -76,3 +76,12 @@
     params,
   });
 }
+
+// 鏌ヨ鐩樼偣鍗曠墿鍝�
+export function inventoryGoodsList(params) {
+  return request({
+    url: '/pc/l/wh/form/inventory/goods/list',
+    method: 'get',
+    params,
+  });
+}
\ No newline at end of file
diff --git a/admin-web/src/utils/stockType.js b/admin-web/src/utils/stockType.js
index 9af85c4..e721978 100644
--- a/admin-web/src/utils/stockType.js
+++ b/admin-web/src/utils/stockType.js
@@ -1,9 +1,27 @@
-function stockType(str, selStr,color) {
-    color=color||'#F3595A'
-    //str涓鸿鏀瑰彉棰滆壊鐨勫瓧绗︼紙浼犲叆鐨勫弬鏁帮級
-    //selStr鏄寚瀹氱殑瀛楃涓�
-    let res = new RegExp('(' + str + ')', 'g');
-    return selStr.replace(res, `<span style='color:${color}'>${str}</span>`);
+function stockType(row) {
+  let result = '';
+  let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '閮ㄩ棬鐗╁搧鍥為��浠撳簱', '鐗╁搧鐩樼偣'];
+  if (row.businessType == 7) {
+    if (row.thisType == 1) {
+      result = '鐩樼泩鍏ュ簱';
+    } else {
+      result = '鐩樹簭鍑哄簱';
+    }
+  } else if (row.businessType == 2) {
+    if (row.thisType == 1) {
+      result = '璋冩嫧鍏ュ簱';
+    } else {
+      result = '璋冩嫧鍑哄簱';
+    }
+  } else if (row.businessType == 4) {
+    if (row.thisType == 1) {
+      result = '閫�杩樺叆搴�';
+    } else {
+      result = '鐢抽鍑哄簱';
+    }
+  } else {
+    result = arr[row.businessType - 1];
   }
-  export default stockType;
-  
\ No newline at end of file
+  return result
+}
+export default stockType;
diff --git a/admin-web/src/views/stock/accessStock/outbound/index.vue b/admin-web/src/views/stock/accessStock/outbound/index.vue
index 32d8b6a..b6ce027 100644
--- a/admin-web/src/views/stock/accessStock/outbound/index.vue
+++ b/admin-web/src/views/stock/accessStock/outbound/index.vue
@@ -83,6 +83,7 @@
 import edit from './edit';
 import detail from './detail';
 import listPage from '../../../mixins/listPage'
+import SettingIplatform from '@/utils/settingIplatform';
 
 export default {
   name: 'index',
@@ -101,11 +102,17 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
-          placeholder: '鍙ā绯婃悳绱�',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'cascader',
@@ -138,6 +145,9 @@
       ],
     };
   },
+  created(){
+    this.fetchData()
+  },
   methods: {
     fetchData() {
       this.loading = true;
diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
index 2c0cf43..e0d322f 100644
--- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
+++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
@@ -48,20 +48,16 @@
         },
         {
           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: 'select',
@@ -70,6 +66,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',
@@ -78,6 +80,11 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'cascader',
@@ -193,30 +200,8 @@
     };
   },
   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.detailSetting.id = row.id;
       this.detailSetting.info = JSON.stringify(row);
diff --git a/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
index bcaf8ee..3c1b726 100644
--- a/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
+++ b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
@@ -26,8 +26,9 @@
 import * as finsystenant from '@/api/baseSetting/finsystenant';
 import { getBaseUrl } from '@/utils/base';
 import { mapGetters } from 'vuex';
-import { selectTenantWarehouse,goodsModel } from '@/api/baseSetting/finsystenant';
+import { selectTenantWarehouse, goodsModel } from '@/api/baseSetting/finsystenant';
 import { getDicts } from '@/api/system/dict/data';
+import * as DateFormatter from '@/utils/DateFormatter';
 
 export default {
   name: 'index',
@@ -52,21 +53,38 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-        },
-        {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
-          label: '鐗╁搧鍚嶇О',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: '',
+          optionsConfig: {
+            label: 'warehouseName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse',
+          },
         },
         {
           type: 'select',
-          dataIndex: 'warehouseId',
-          label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
+          dataIndex: 'goodsTemplateId',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
+        },
+        {
+          type: 'select',
+          dataIndex: 'baseGoodsModelsId',
+          label: '瑙勬牸鍨嬪彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'select',
@@ -74,16 +92,20 @@
           label: '绫诲瀷',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [{
-            label:'鍏ㄩ儴',
-            value:''
-          },{
-            label:'鐩樼泩',
-            value:'1'
-          },{
-            label:'鐩樹簭',
-            value:'2'
-          }],
+          options: [
+            {
+              label: '鍏ㄩ儴',
+              value: '',
+            },
+            {
+              label: '鐩樼泩',
+              value: '1',
+            },
+            {
+              label: '鐩樹簭',
+              value: '2',
+            },
+          ],
         },
         {
           type: 'select',
@@ -91,20 +113,24 @@
           label: '鍑哄叆搴撶被鍨�',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [{
-            label:'鍏ㄩ儴',
-            value:''
-          },{
-            label:'鐩樼泩鍏ュ簱',
-            value:'1'
-          },{
-            label:'鐩樹簭鍑哄簱',
-            value:'2'
-          }],
+          options: [
+            {
+              label: '鍏ㄩ儴',
+              value: '',
+            },
+            {
+              label: '鐩樼泩鍏ュ簱',
+              value: '1',
+            },
+            {
+              label: '鐩樹簭鍑哄簱',
+              value: '2',
+            },
+          ],
         },
         {
           type: 'text',
-          dataIndex: 'baseGoodsModelsId',
+          dataIndex: 'businessFormCode',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
@@ -133,10 +159,6 @@
       treeDataList: [],
       // 鎼滅储鏉′欢
       filterFrom: {
-        tenantId: null,
-        userName: null,
-        userPhone: null,
-        status: 1,
       },
       // 琛ㄦ牸鏁版嵁
       table: {
@@ -158,18 +180,32 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          { title: '浠撳簱', field: 'warehouseFormCode', align: 'left' },
+          { title: '浠撳簱', field: 'warehouseName', align: 'left' },
           { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
-          { title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center' },
-          { title: '绫诲瀷', field: 'lv', align: 'center' },
-          { title: '搴撳瓨鏁伴噺', field: 'summary', align: 'left' },
-          { title: '鐩樼偣鏁伴噺', field: 'summary', align: 'left' },
-          { title: '寮傚父鏁伴噺', field: 'summary', align: 'left' },
-          { title: '鍑哄叆搴撶被鍨�', field: 'summary', align: 'left' },
-          { title: '鍑哄叆搴撳崟鍙�', field: 'summary', align: 'left' },
+          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
+          { title: '绫诲瀷', field: 'inventoryResultType', align: 'center' },
+          { title: '搴撳瓨鏁伴噺', field: 'initCounts', align: 'left' },
+          { title: '鐩樼偣鏁伴噺', field: 'inventoryCounts', align: 'left' },
+          { title: '寮傚父鏁伴噺', field: 'errorCounts', align: 'left' },
+          {
+            title: '鍑哄叆搴撶被鍨�',
+            field: 'inventoryType',
+            align: 'left',
+            formatter: (row) => {
+              return { value: row.inventoryType, type: row.inventoryType && row.inventoryType.includes('鐩樼泩') ? 'success' : 'danger' };
+            },
+          },
+          { title: '鍑哄叆搴撳崟鍙�', field: 'warehouseFormCode', align: 'left' },
           { title: '鏈烘瀯', field: 'agencyName', align: 'left' },
           { title: '鎿嶄綔浜�', field: 'operatorName', align: 'left' },
-          { title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left' },
+          {
+            title: '鎿嶄綔鏃堕棿',
+            field: 'operatorTime',
+            align: 'center',
+            formatter: (row) => {
+              return { value: row.operatorTime ? DateFormatter.LongToDateTime(row.operatorTime) : '-' };
+            },
+          },
         ],
         // 鎿嶄綔淇℃伅
         operation: {
@@ -194,35 +230,8 @@
   computed: {
     ...mapGetters(['userInfo']),
   },
-  created() {
-    this.initQuery();
-  },
+  created() {},
   methods: {
-    initQuery() {
-      selectTenantWarehouse({ agencyId: this.userInfo.tenantId }).then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '鐩樼偣浠撳簱') {
-            v.options = res.map((item) => {
-              item.label = item.warehouseName;
-              item.value = item.id;
-              return item;
-            });
-          }
-        });
-      });
-      goodsModel().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '瑙勬牸鍨嬪彿') {
-            v.options = res.map((item) => {
-              item.label = item.modelName;
-              item.value = item.id;
-              return item;
-            });
-          }
-        });
-      });
-
-    },
     showAudit(row) {
       this.editSetting.id = row.id;
       this.editSetting.info = JSON.stringify(row);
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue b/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue
index 4c66b66..34f314d 100644
--- a/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/detail.vue
@@ -2,27 +2,23 @@
   <win-md :title="setting.title" @close="close" :width="'1200px'">
     <el-row :gutter="20" style="margin-bottom: 20px" type="flex" align="middle">
       <el-col :span="6">鐩樼偣鍗曞彿锛歿{ formData.businessFormCode }}</el-col>
-      <el-col :span="6">鐩樼偣浠诲姟锛歿{ formData.businessTaskCode }}</el-col>
-      <el-col :span="6">鐩樼偣浠撳簱锛歿{ formData.warehouseId }}</el-col>
+      <el-col :span="6">鐩樼偣浠诲姟锛歿{ formData.businessFormName }}</el-col>
+      <el-col :span="6">鐩樼偣浠撳簱锛歿{ formData.warehouseName }}</el-col>
     </el-row>
-    <el-table v-loading="loading" :data="formData.tableData" height="100%" :stripe="true" class="the-table">
+    <el-table v-loading="loading" :data="formData.formInventoryGoodsList" height="500" :stripe="true" class="the-table">
       <el-table-column prop="goodsTemplateName" label="鐗╁搧鍚嶇О"> </el-table-column>
-      <el-table-column prop="baseGoodsModelsId" label="鍨嬪彿" align="center"> </el-table-column>
-      <el-table-column prop="inventoryCounts" label="搴旂洏鏁伴噺" align="center"></el-table-column>
-      <el-table-column prop="inventoryCounts" label="瀹炵洏鏁伴噺" align="center"></el-table-column>
-      <el-table-column prop="inventoryCounts" label="鐘舵��" align="center"></el-table-column>
+      <el-table-column prop="baseGoodsModelsName" label="鍨嬪彿" align="center"> </el-table-column>
+      <el-table-column prop="inventoryCount" label="搴旂洏鏁伴噺" align="center"></el-table-column>
+      <el-table-column prop="realNum" label="瀹炵洏鏁伴噺" align="center"></el-table-column>
+      <el-table-column prop="states" label="鐘舵��" align="center"></el-table-column>
     </el-table>
-
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鏆傚瓨" site="form" type="primary" @click="close" />
-      <my-button name="瀹屾垚鐩樼偣" site="form" type="success" @click="save" />
-    </div>
   </win-md>
 </template>
 
 <script>
 import winMd from '@/components/win/win-md';
 import myButton from '@/components/myButton/myButton';
+import { inventoryDetail } from '@/api/stock/inventory';
 export default {
   components: { winMd, myButton },
   props: {
@@ -36,25 +32,16 @@
       loading: false,
       formData: {
         businessFormCode: '2023080812',
-        businessTaskCode: '2023骞�9鏈堢洏鐐瑰崟',
-        warehouseId: '寮�灏佸競浠撳簱',
-        tableData: [],
+        businessFormName: '2023骞�9鏈堢洏鐐瑰崟',
+        warehouseName: '寮�灏佸競浠撳簱',
+        formInventoryGoodsList: [],
       },
     };
   },
   created() {
-    for (let i = 0; i < 10; i++) {
-      this.formData.tableData.push({
-        goodsTemplateName: '鏂戒箰榛戣壊纰崇矇',
-        baseGoodsModelsId: '鏂戒箰c2201',
-        classification: 'A',
-        unit: '濂�',
-        kc: 10,
-        price: 20,
-        inventoryResult: 200,
-        inventoryCounts: 0,
-      });
-    }
+    inventoryDetail({ id: this.setting.id }).then((res) => {
+      this.formData = res;
+    });
   },
   methods: {
     close() {
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
index c137a58..4e02bcb 100644
--- a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
@@ -21,6 +21,7 @@
             @close="inventorySetting.show = false"
             @search="search"
           />
+          <detail v-if="inventoryDetail.show" :setting="inventoryDetail" @close="inventoryDetail.show = false" @search="search" />
         </el-card>
       </el-container>
     </el-container>
@@ -38,6 +39,7 @@
 import SettingIplatform from '@/utils/settingIplatform';
 import edit from './edit';
 import inventory from './inventory';
+import detail from './detail';
 import * as finsystenant from '@/api/baseSetting/finsystenant';
 import myImport from '@/views/components/myImport';
 import { getBaseUrl } from '@/utils/base';
@@ -48,7 +50,7 @@
 
 export default {
   name: 'index',
-  components: { MyButton, MyTableV2, edit, myImport, inventory },
+  components: { MyButton, MyTableV2, edit, myImport, inventory,detail },
   data() {
     return {
       // 鎼滅储妗�
@@ -122,6 +124,12 @@
         show: false,
       },
       inventorySetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      inventoryDetail:{
         title: '',
         id: '',
         orgId: '',
@@ -338,14 +346,14 @@
     showInventory(row) {
       this.inventorySetting.id = row.id;
       this.inventorySetting.info = JSON.stringify(row);
-      this.inventorySetting.title = '鐩樼偣';
+      this.inventorySetting.title = '鐩樼偣浠诲姟';
       this.inventorySetting.show = true;
     },
     showInventoryDetail(row) {
-      this.inventorySetting.id = row.id;
-      this.inventorySetting.info = JSON.stringify(row);
-      this.inventorySetting.title = '鐩樼偣';
-      this.inventorySetting.show = true;
+      this.inventoryDetail.id = row.id;
+      this.inventoryDetail.info = JSON.stringify(row);
+      this.inventoryDetail.title = '鐩樼偣璇︽儏';
+      this.inventoryDetail.show = true;
     },
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue b/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
index 45ecc56..fa31464 100644
--- a/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
@@ -13,7 +13,7 @@
         v-loading="loading"
         :data="formData.formInventoryGoodsList"
         :rules="rules"
-        height="400"
+        height="500"
         :stripe="true"
         class="the-table"
       >
@@ -46,7 +46,7 @@
 <script>
 import winMd from '@/components/win/win-md';
 import myButton from '@/components/myButton/myButton';
-import { inventoryQuery, inventoryTemporaryStorage, inventoryFinish } from '@/api/stock/inventory';
+import { inventoryQuery, inventoryTemporaryStorage, inventoryFinish, inventoryDetail } from '@/api/stock/inventory';
 export default {
   components: { winMd, myButton },
   props: {
@@ -78,35 +78,30 @@
     console.log('info', info);
     if (info.states == 1) {
       // 缁х画鐩樼偣
-
+      inventoryDetail({ id: this.setting.id }).then((res) => {
+        this.formData = res;
+        this.formData.id = this.setting.id;
+      });
     } else {
       inventoryQuery({ id: this.setting.id }).then((res) => {
         this.formData = res;
         this.formData.id = this.setting.id;
       });
     }
-      inventoryQuery({ id: this.setting.id }).then((res) => {
-        this.formData = res;
-        this.formData.id = this.setting.id;
-      });
   },
   methods: {
     close() {
       this.$emit('close');
     },
     staging() {
-      this.$refs['ruleForm'].validate((valid) => {
-        if (valid) {
-          const params = {
-            ...this.formData,
-            inventoryGoodsList: this.formData.formInventoryGoodsList,
-          };
-          inventoryTemporaryStorage(params).then(() => {
-            this.$message.success('鏆傚瓨鎴愬姛锛�');
-            this.close();
-            this.$emit('search');
-          });
-        }
+      const params = {
+        id: this.formData.id,
+        inventoryGoodsList: this.formData.formInventoryGoodsList,
+      };
+      inventoryTemporaryStorage(params).then(() => {
+        this.$message.success('鏆傚瓨鎴愬姛锛�');
+        this.close();
+        this.$emit('search');
       });
     },
     save() {
diff --git a/admin-web/src/views/stock/ledger/alertQuery/index.vue b/admin-web/src/views/stock/ledger/alertQuery/index.vue
index 0c53e12..b4afedf 100644
--- a/admin-web/src/views/stock/ledger/alertQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/alertQuery/index.vue
@@ -83,12 +83,16 @@
           label: '绫诲埆',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [],
-          optionsConfig: {
-            label: 'dict_label',
-            value: 'dict_value',
-            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
-          },
+          options: [{
+            label:'A',
+            value:'1'
+          },{
+            label:'B',
+            value:'2'
+          },{
+            label:'C',
+            value:'3'
+          }],
         },
       ],
       // 鏍戞暟鎹�
diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
index 18be030..e23fe53 100644
--- a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
@@ -91,7 +91,7 @@
             >
               <el-input v-model.number="scope.row.lowerLimit"></el-input>
             </el-form-item>
-            <el-input v-else v-model.number="scope.row.lowerLimit"></el-input>
+            <el-input v-else v-model.number="scope.row.lowerLimit" style="margin-bottom: 18px;"></el-input>
           </template>
         </el-table-column>
         <el-table-column prop="upperLimit" label="灏侀《搴撳瓨" align="center">
@@ -104,7 +104,7 @@
             >
               <el-input v-model.number="scope.row.upperLimit"></el-input>
             </el-form-item>
-            <el-input v-else v-model.number="scope.row.upperLimit"></el-input>
+            <el-input v-else v-model.number="scope.row.upperLimit" style="margin-bottom: 18px;"></el-input>
           </template>
         </el-table-column>
       </el-table>
diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/index.vue b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
index bedff7b..150b2fb 100644
--- a/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
@@ -18,6 +18,11 @@
         </el-card>
       </el-container>
     </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
   </div>
 </template>
 
@@ -29,13 +34,13 @@
 import myImport from '@/views/components/myImport';
 import { getBaseUrl } from '@/utils/base';
 import { selectTenantWarehouse, treeList } from '@/api/baseSetting/finsystenant';
-import {warningConfigGetDel} from '@/api/stock/ledger'
+import { warningConfigGetDel } from '@/api/stock/ledger';
 import { getDicts } from '@/api/system/dict/data';
 import { mapGetters } from 'vuex';
 
 export default {
   name: 'index',
-  components: { MyButton, MyTableV2, edit },
+  components: { MyButton, MyTableV2, edit,myImport },
   data() {
     return {
       // 鎼滅储妗�
@@ -47,7 +52,10 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-          cascader: [{key:'warehouseId',queryKey: 'agencyId'},{key:'goodsTemplateId',queryKey: 'agencyId'}],
+          cascader: [
+            { key: 'warehouseId', queryKey: 'agencyId' },
+            { key: 'goodsTemplateId', queryKey: 'agencyId' },
+          ],
           optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
         },
         {
@@ -60,17 +68,17 @@
           optionsConfig: {
             label: 'warehouseName',
             value: 'id',
-            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse',
           },
         },
         {
           type: 'select',
-          dataIndex: 'goodsTemplateId',
+          dataIndex: 'baseGoodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
-          cascader: [{key:'categoryId',queryKey: 'goodsTemplatesId'}],
+          cascader: [{ key: 'categoryId', queryKey: 'goodsTemplatesId' }],
           optionsConfig: {
             label: 'goodsName',
             value: 'id',
@@ -78,16 +86,17 @@
           },
         },
         {
-          type: 'select',
+          type: 'cascader',
           dataIndex: 'categoryId',
           label: '鍒嗙被',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
           optionsConfig: {
-            label: 'modelName',
+            label: 'label',
             value: 'id',
-            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+            url: SettingIplatform.apiBaseURL + '/pc/base/category/select/tree',
+            props: { checkStrictly: false },
           },
         },
         {
@@ -96,16 +105,36 @@
           label: '绫诲埆',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [],
-          optionsConfig: {
-            label: 'dict_label',
-            value: 'dict_value',
-            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
-          },
+          options: [{
+            label:'A',
+            value:'1'
+          },{
+            label:'B',
+            value:'2'
+          },{
+            label:'C',
+            value:'3'
+          }],
         },
       ],
-      // 鏍戞暟鎹�
-      treeDataList: [],
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
       // 鎼滅储鏉′欢
       filterFrom: {
         warehouseType: 0,
@@ -140,9 +169,9 @@
               },
             },
             {
-              name: '瀵煎嚭',
+              name: '瀵煎叆',
               click: () => {
-                this.handleExport();
+                this.importOrg();
               },
             },
           ],
@@ -193,8 +222,7 @@
   computed: {
     ...mapGetters(['userInfo']),
   },
-  created() {
-  },
+  created() {},
   methods: {
     del(row) {
       this.$modal.confirm('鏄惁纭鍒犻櫎姝ゆ潯鐨勬暟鎹悧锛�').then(() => {
@@ -216,6 +244,19 @@
       this.editSetting.title = '缂栬緫';
       this.editSetting.show = true;
     },
+    // 瀵煎叆
+    importOrg() {
+      this.importSetting.dialogShow = true;
+      this.importSetting.onSuccess = (response, callBack) => {
+        if (response.code === 1) {
+          this.$message.success(response.msg);
+          this.search(1);
+        } else {
+          this.$message.warning(response.msg);
+        }
+        callBack();
+      };
+    },
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
diff --git a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
index 178681a..56f4188 100644
--- a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
@@ -75,16 +75,17 @@
           },
         },
         {
-          type: 'select',
+          type: 'cascader',
           dataIndex: 'categoryId',
           label: '鍒嗙被',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
           optionsConfig: {
-            label: 'modelName',
+            label: 'label',
             value: 'id',
-            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+            url: SettingIplatform.apiBaseURL + '/pc/base/category/select/tree',
+            props:{checkStrictly:false}
           },
         },
         {
@@ -93,12 +94,16 @@
           label: '绫诲埆',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: [],
-          optionsConfig: {
-            label: 'dict_label',
-            value: 'dict_value',
-            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
-          },
+          options: [{
+            label:'A',
+            value:'1'
+          },{
+            label:'B',
+            value:'2'
+          },{
+            label:'C',
+            value:'3'
+          }],
         },
       ],
       // 鏍戞暟鎹�
@@ -158,7 +163,6 @@
     };
   },
   created() {
-    // this.initQuery();
   },
   methods: {
     // 瀵煎嚭
diff --git a/admin-web/src/views/stock/ledger/ledgerQuery/index.vue b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
index 59c1aac..16a2193 100644
--- a/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
@@ -34,6 +34,7 @@
 import { getCategorySelectTree, goodsModel } from '@/api/baseSetting/finsystenant';
 import { getDicts } from '@/api/system/dict/data';
 import * as DateFormatter from '@/utils/DateFormatter';
+import stockType from '@/utils/stockType'
 
 export default {
   name: 'index',
@@ -75,7 +76,7 @@
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
-          cascader: [{ key: 'categoryId', queryKey: 'goodsTemplatesId' }],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
           optionsConfig: {
             label: 'goodsName',
             value: 'id',
@@ -110,20 +111,20 @@
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'businessFormCode',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'val1',
+          dataIndex: 'dealTimeStart',
           label: '鏃堕棿',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'val2',
+          dataIndex: 'dealTimeEnd',
           label: '鑷�',
           defaultValue: '',
         },
@@ -190,23 +191,7 @@
             field: 'summary',
             align: 'left',
             formatter: (row) => {
-              let result = '';
-              let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '閮ㄩ棬鐗╁搧鍥為��浠撳簱', '鐗╁搧鐩樼偣'];
-              if (row.businessType == 7) {
-                if (this.thisType == 1) {
-                  result = '鐩樼泩鍏ュ簱';
-                } else {
-                  result = '鐩樹簭鍑哄簱';
-                }
-              }else if(this.businessType == 2) {
-                if (this.thisType == 1) {
-                  result = '璋冩嫧鍏ュ簱';
-                } else {
-                  result = '璋冩嫧鍑哄簱';
-                }
-              }else {
-                result = arr[row.businessType - 1];
-              }
+              let result = stockType(row)
               return { value: result };
             },
           },
diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue
index 33b64a6..7000dc4 100644
--- a/admin-web/src/views/stock/procure/purchaseOrder/index.vue
+++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue
@@ -140,12 +140,25 @@
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
+        // {
+        //   type: 'text',
+        //   dataIndex: 'goodsTemplateName',
+        //   label: '鐗╁搧鍚嶇О',
+        //   placeholder: '鍙ā绯婃悳绱�',
+        //   defaultValue: '',
+        // },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
-          placeholder: '鍙ā绯婃悳绱�',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'cascader',
@@ -219,6 +232,9 @@
       },
     };
   },
+  created(){
+    this.fetchData()
+  },
   methods: {
     fetchData() {
       this.loading = true;
@@ -287,9 +303,6 @@
       }
       if (this.filterFrom.incomeTimeEnd) {
         this.filterFrom.incomeTimeEnd = this.filterFrom.incomeTimeEnd.replace(/\-/g, '');
-      }
-      if (this.filterFrom.agencyId && this.filterFrom.agencyId.length) {
-        this.filterFrom.agencyId = this.filterFrom.agencyId[this.filterFrom.agencyId.length - 1];
       }
       this.search(1);
     },
diff --git a/admin-web/src/views/stock/procure/receiptDetails/index.vue b/admin-web/src/views/stock/procure/receiptDetails/index.vue
index 7f80beb..67a4754 100644
--- a/admin-web/src/views/stock/procure/receiptDetails/index.vue
+++ b/admin-web/src/views/stock/procure/receiptDetails/index.vue
@@ -52,19 +52,31 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
           dataIndex: 'baseGoodsModelsId',
           label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'cascader',
@@ -206,17 +218,6 @@
     };
   },
   created() {
-    // 鎼滅储妗嗚鏍煎瀷鍙�
-    goodsModel().then((res) => {
-      this.items.forEach((v) => {
-        if (v.label == '瑙勬牸鍨嬪彿') {
-          v.options = res.map((item) => {
-            (item.label = item.modelName), (item.value = item.id);
-            return item;
-          });
-        }
-      });
-    });
   },
   methods: {
     //瀵煎叆
@@ -279,9 +280,6 @@
       }
       if (this.filterFrom.incomeTimeEnd) {
         this.filterFrom.incomeTimeEnd = this.filterFrom.incomeTimeEnd.replace(/\-/g, '');
-      }
-      if (params.agencyId && params.agencyId.length) {
-        this.filterFrom.agencyId = params.agencyId[params.agencyId.length - 1];
       }
       this.search(1);
     },
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/detail.vue b/admin-web/src/views/stock/scrap/itemScrapping/detail.vue
index c6b0a1e..ca33631 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/detail.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/detail.vue
@@ -6,7 +6,7 @@
         <span>{{ detail.businessFormCode }}</span>
       </el-col>
       <el-col :span="8">
-        <span>鎶ュ簾浠撳簱锛�</span>
+        <span>浠撳簱锛�</span>
         <span>{{ detail.warehouseName }}</span>
       </el-col>
       <el-col :span="8">
@@ -16,33 +16,23 @@
     </el-row>
     <el-row :gutter="20" style="margin-top: 20px">
       <el-col :span="8">
-        <span>鐘舵�侊細</span>
-        <span>{{ detail.states == 1 ? '寰呮姤搴�' : '宸叉姤搴�' }}</span>
-      </el-col>
-      <el-col :span="8">
         <span>鍒涘缓浜猴細</span>
-        <span>{{ detail.buyerName }}</span>
+        <span>{{ detail.operatorName }}</span>
       </el-col>
       <el-col :span="8">
         <span>鎶ュ簾鏃堕棿锛�</span>
-        <span>{{ detail.incomeTime | formatTime }}</span>
-      </el-col>
-    </el-row>
-    <el-row :gutter="20" style="margin-top: 20px">
-      <el-col class="img-row" :span="12">
-        <span>鎶ュ簾绫诲瀷锛�</span>
-        <span>{{ detail.buyType == 1 ? '闆嗛噰' : '鑷噰' }}</span>
+        <span>{{ detail.dealTime | formatTime }}</span>
       </el-col>
     </el-row>
     <el-row :gutter="20" style="margin-top: 20px">
       <el-col class="img-row" :span="24">
-        <span>鎶ュ簾鎵嬬画鐓х墖锛�</span>
+        <span>鎶ュ簾鎵嬬画锛�</span>
         <div class="img-box" v-for="(item, index) in fileList" :key="index" @click="handlePreview(item)">
           <img class="img" :src="getUrl(item.path)" alt="" />
         </div>
       </el-col>
     </el-row>
-    <div class="goods-card" v-for="(goodsItem, goodsIndex) in detail.procureGoods" :key="goodsIndex">
+    <div class="goods-card" v-for="(goodsItem, goodsIndex) in detail.scrappedGoodsInfo" :key="goodsIndex">
       <el-row :gutter="20">
         <el-col :span="8">
           <span>鐗╁搧鍒嗙被锛�</span>
@@ -52,12 +42,8 @@
           <span>鐗╁搧鍚嶇О锛�</span>
           <span>{{ goodsItem.goodsTemplateName }}</span>
         </el-col>
-        <el-col :span="8">
-          <span>渚涜揣鍟嗭細</span>
-          <span>{{ goodsItem.supplier }}</span>
-        </el-col>
       </el-row>
-      <el-table :data="goodsItem.models" :stripe="true" style="margin-top: 20px">
+      <el-table :data="goodsItem.scrappedGoodsInfo" :stripe="true" style="margin-top: 20px">
         <el-table-column prop="baseGoodsModelsName" label="瑙勬牸鍨嬪彿" align="center">
           <template slot-scope="scope">
             {{ scope.row.baseGoodsModelsName }}
@@ -68,19 +54,14 @@
             {{ scope.row.unit }}
           </template>
         </el-table-column>
-        <el-table-column prop="price" label="鍗曚环" align="center">
-          <template slot-scope="scope">
-            {{ scope.row.price }}
-          </template>
-        </el-table-column>
         <el-table-column prop="counts" label="鎶ュ簾鏁伴噺" align="center">
           <template slot-scope="scope">
             {{ scope.row.counts }}
           </template>
         </el-table-column>
-        <el-table-column prop="counts" label="閲戦" align="center">
+        <el-table-column prop="scrappedCode" label="鎶ュ簾鍘熷洜" align="center">
           <template slot-scope="scope">
-            {{ (scope.row.price * scope.row.counts).toFixed(2) }}
+            {{ getDictName(scope.row.scrappedCode) }}
           </template>
         </el-table-column>
       </el-table>
@@ -99,12 +80,13 @@
   </win-md>
 </template>
 <script>
-import { procureDetail } from '@/api/stock/procure/purchaseOrder';
+import { scrappedDetail } from '@/api/stock/scrap';
 import winMd from '@/components/win/win-md';
 import * as DateFormatter from '@/utils/DateFormatter';
 import { getDownUrl } from '@/utils/base';
 import Viewer from 'viewerjs';
 import 'viewerjs/dist/viewer.css';
+import { getDicts } from '@/api/system/dict/data';
 
 let viewer = null;
 
@@ -119,6 +101,7 @@
   },
   data() {
     return {
+      scrapReasonOptions: [],
       fileList: [],
       detail: {
         baseCategoryName: '',
@@ -130,8 +113,7 @@
         states: '',
         createName: '',
         time: '',
-        procureGoods: [{}, {}],
-        fileKey: Math.random(),
+        scrappedGoodsInfo: [],
       },
     };
   },
@@ -142,15 +124,22 @@
     },
   },
   created() {
-    procureDetail({ id: this.setting.id }).then((res) => {
+    scrappedDetail({ id: this.setting.id }).then((res) => {
       this.detail = res;
       this.fileList = this.detail.procureDoc ? JSON.parse(this.detail.procureDoc) : [];
       this.$nextTick(() => {
         this.initPreviewImg();
       });
     });
+    getDicts('SCRAP_REASON').then((res) => {
+      this.scrapReasonOptions = res;
+    });
   },
   methods: {
+    getDictName(code) {
+      let item = this.scrapReasonOptions.find(v=>v.dict_value==code)
+      return item ? item.dict_label : ''
+    },
     initPreviewImg() {
       if (viewer != null) {
         viewer.destroy();
@@ -172,12 +161,6 @@
           index++;
         }
       }
-      // this.fileList.forEach((f, i) => {
-      //   if (file.uid == f.uid) {
-      //     index = i
-      //   }
-      // })
-      // document.querySelector('#uploadPreviewImages').children[0].click()
       viewer.view(index);
     },
     checkImg(name) {
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
index c24c442..a4846ec 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
@@ -1,29 +1,31 @@
 <template>
-  <win-md class="stock-edit" :title="`${setting.title}鎶ュ簾鎶ュ簾`" @close="close" :width="'800px'">
+  <win-md class="stock-edit" :title="`${setting.title}鎶ュ簾`" @close="close" :width="'800px'">
     <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px">
       <div class="main-w">
         <el-row :gutter="24" class="headerHeight">
           <el-col :span="12">
-            <el-form-item label="鏈烘瀯" prop="warehouseId">
+            <el-form-item label="鏈烘瀯" prop="agencyName">
               <el-input :value="formData.agencyName" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鎶ュ簾浠撳簱" prop="warehouseId">
-              <el-input :value="formData.warehouseName" disabled></el-input>
+              <el-select v-model="formData.warehouseId" placeholder="璇烽�夋嫨" style="width: 100%">
+                <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24" class="headerHeight">
           <el-col :span="12">
-            <el-form-item label="鎶ュ簾浜�" prop="buyType">
+            <el-form-item label="鎶ュ簾浜�" prop="operatorName">
               <el-input :value="formData.operatorName" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鎶ュ簾鏃堕棿" prop="procureTime">
+            <el-form-item label="鎶ュ簾鏃堕棿" prop="dealTime">
               <el-date-picker
-                v-model="formData.procureTime"
+                v-model="formData.dealTime"
                 type="datetime"
                 value="yyyy-MM-dd HH:mm:ss"
                 value-format="yyyyMMddHHmmss"
@@ -36,17 +38,17 @@
         </el-row>
         <el-row :gutter="24" class="headerHeight">
           <el-col :span="24">
-            <el-form-item label="鎶ュ簾瀹℃壒鎵嬬画" prop="procureDoc">
+            <el-form-item label="鎶ュ簾瀹℃壒鎵嬬画" prop="uploadFiles">
               <upload ref="uploadRef" :values="fileList" :settings="uploadSettings" @on-change="uploadChange"></upload>
             </el-form-item>
           </el-col>
         </el-row>
-        <div class="goods-card" v-for="(goodsItem, goodsIndex) in formData.procureGoods" :key="goodsIndex">
+        <div class="goods-card" v-for="(goodsItem, goodsIndex) in formData.scrappedGoodsInfo" :key="goodsIndex">
           <el-row :gutter="24">
             <el-col :span="12">
               <el-form-item
                 label="鐗╁搧鍒嗙被"
-                :prop="`procureGoods[${goodsIndex}].baseCategoryIds`"
+                :prop="`scrappedGoodsInfo[${goodsIndex}].baseCategoryIds`"
                 :rules="{
                   required: true,
                   message: '璇烽�夋嫨',
@@ -65,12 +67,8 @@
             <el-col :span="12">
               <el-form-item
                 label="鐗╁搧鍚嶇О"
-                :prop="`procureGoods[${goodsIndex}].baseGoodsTemplateId`"
-                :rules="{
-                  required: true,
-                  message: '璇烽�夋嫨',
-                  trigger: 'change',
-                }"
+                :prop="`scrappedGoodsInfo[${goodsIndex}].baseGoodsTemplateId`"
+                :rules="rules.baseGoodsTemplateId"
               >
                 <el-select
                   v-model="goodsItem.baseGoodsTemplateId"
@@ -94,7 +92,7 @@
             <el-col :span="12">
               <el-form-item
                 label="瑙勬牸鍨嬪彿"
-                :prop="`procureGoods[${goodsIndex}].modelsIds`"
+                :prop="`scrappedGoodsInfo[${goodsIndex}].modelsIds`"
                 :rules="{
                   required: true,
                   message: '璇烽�夋嫨',
@@ -120,33 +118,38 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-table :data="goodsItem.models" :stripe="true">
+          <el-table :data="goodsItem.scrappedGoodsList" :stripe="true">
             <el-table-column prop="baseGoodsModelsId" label="鍨嬪彿" align="center">
               <template slot-scope="scope">
                 {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }}
               </template>
             </el-table-column>
-            <el-table-column prop="price" label="鍓╀綑鏁伴噺" align="center">
+            <el-table-column prop="total" label="鍓╀綑鏁伴噺" align="center">
               <template slot-scope="scope">
-                <el-input type="number" v-model="scope.row.price"></el-input>
+                {{ scope.row.total }}
               </template>
             </el-table-column>
             <el-table-column prop="counts" label="鎶ュ簾鏁伴噺" align="center">
               <template slot-scope="scope">
-                <el-input type="number" v-model="scope.row.counts"></el-input>
+                <el-input v-model.number="scope.row.counts"></el-input>
               </template>
             </el-table-column>
-            <el-table-column prop="counts" label="鎶ュ簾鍘熷洜" align="center">
+            <el-table-column prop="scrappedCode" label="鎶ュ簾鍘熷洜" align="center">
               <template slot-scope="scope">
-                <el-select v-model="scope.row.modelsIds" multiple placeholder="璇烽�夋嫨">
-                  <el-option v-for="item in []" :key="item.id" :label="item.label" :value="item.id" />
+                <el-select v-model="scope.row.scrappedCode" placeholder="璇烽�夋嫨">
+                  <el-option
+                    v-for="item in scrapReasonOptions"
+                    :key="item.dict_value"
+                    :label="item.dict_label"
+                    :value="item.dict_value"
+                  />
                 </el-select>
               </template>
             </el-table-column>
           </el-table>
           <div class="btn-group">
             <el-button
-              v-if="formData.procureGoods.length > 1"
+              v-if="formData.scrappedGoodsInfo.length > 1"
               name="绉婚櫎"
               type="danger"
               plain
@@ -155,7 +158,7 @@
               >绉婚櫎</el-button
             >
             <el-button
-              v-if="formData.procureGoods.length - 1 == goodsIndex"
+              v-if="formData.scrappedGoodsInfo.length - 1 == goodsIndex"
               name="鏂板鐗╁搧"
               type="primary"
               plain
@@ -174,21 +177,21 @@
   </win-md>
 </template>
 <script>
+import { scrappedAdd } from '@/api/stock/scrap';
 import {
   goodsTemplate,
-  procureAdd,
-  procureEdit,
   selectTenantWarehouse,
   goodsModel,
-  procureDetail,
-} from '@/api/stock/procure/purchaseOrder';
+  warehouseSelectNumber,
+} from '@/api/baseSetting/finsystenant';
 import { getTree } from '@/api/foudation/classification';
 import MyButton from '@/components/myButton/myButton';
 import winMd from '@/components/win/win-md';
 import upload from '@/components/upload/index';
-import { getUploadUrl, getDownUrl } from '@/utils/base';
+import { getUploadUrl } from '@/utils/base';
 import { mapGetters } from 'vuex';
 import SettingIplatform from '../../../../../public/static/config';
+import { getDicts } from '@/api/system/dict/data';
 
 export default {
   components: { MyButton, winMd, upload },
@@ -199,29 +202,29 @@
     },
   },
   data() {
+    // 鑷畾涔夋牎楠�
+    // 鐗╁搧閲嶅鏍¢獙
+    var checkGoodsTemplateId = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('璇烽�夋嫨'));
+      }
+      let temp = this.formData.scrappedGoodsInfo.filter((v) => v.baseGoodsTemplateId == value);
+      if (!temp || temp.length != 1) {
+        return callback(new Error('宸查�夎繃姝ょ墿鍝�'));
+      }
+      callback();
+    };
     return {
-      visible: false,
       loading: false,
-      buyTypeOptions: [
-        {
-          label: '闆嗛噰',
-          value: '1',
-        },
-        {
-          label: '鑷噰',
-          value: '2',
-        },
-      ],
       fileList: [],
       warehouses: [], // 鎶ュ簾浠撳簱鍒楄〃
       categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃
-      modelList: [], //鍨嬪彿鍒楄〃
+      scrapReasonOptions: [], // 鎶ュ簾鍘熷洜鍒楄〃
       formData: {
-        procureDoc: '',
+        uploadFiles: '',
         warehouseId: '', // 鎶ュ簾浠撳簱id
-        procureTime: '', // 鎶ュ簾鏃堕棿
-        buyType: '2', // 鎶ュ簾鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
-        procureGoods: [],
+        dealTime: '', // 鎶ュ簾鏃堕棿
+        scrappedGoodsInfo: [],
       },
       goodsItem: {
         baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍
@@ -231,21 +234,17 @@
         sort: '', // 鏄剧ず椤哄簭
         goodsOptions: [], // 鐗╁搧鍒楄〃select
         modelsOptions: [], //瑙勬牸鍨嬪彿select
-        models: [], // 鐗╁搧鍚嶇О
+        scrappedGoodsList: [], // 鐗╁搧鍚嶇О
         modelsIds: [], //瑙勬牸鍨嬪彿
-      },
-      modelsItem: {
-        baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿
-        counts: 0, // 鎿嶄綔鏁伴噺
       },
       rules: {
         warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        procureTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        dealTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
         buyType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
 
-        procureDoc: [{ required: true, message: '璇蜂笂浼�', trigger: 'change' }],
+        uploadFiles: [{ required: true, message: '璇蜂笂浼�', trigger: 'change' }],
         baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        baseGoodsTemplateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
         modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
       },
 
@@ -274,14 +273,15 @@
       this.getgoodsTemplate();
       this.getgoodsModel();
       this.getCategoryTree();
-      this.formData.procureGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
-      this.formData.operatorId = this.userInfo.userCode;
+      this.formData.scrappedGoodsInfo.push(JSON.parse(JSON.stringify(this.goodsItem)));
+      this.formData.operatorId = this.userInfo.id;
       this.formData.operatorName = this.userInfo.userName;
       this.formData.agencyId = this.userInfo.tenantId;
       this.formData.agencyName = this.userInfo.tenantName;
-      this.formData.warehouseId = this.userInfo.tenantId;
-      this.formData.warehouseName = this.userInfo.tenantName;
       this.formData.warehouseType = 0;
+      getDicts('SCRAP_REASON').then((res) => {
+        this.scrapReasonOptions = res;
+      });
     },
     async getCategoryTree() {
       // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
@@ -319,7 +319,7 @@
     getgoodsTemplate(id, index) {
       goodsTemplate({ categoryId: id || '' }).then((res) => {
         if (index || index == 0) {
-          this.$set(this.formData.procureGoods[index], 'goodsOptions', res);
+          this.$set(this.formData.scrappedGoodsInfo[index], 'goodsOptions', res);
         } else {
           this.goodsTemplatelAll = res;
         }
@@ -330,7 +330,7 @@
     getgoodsModel(id, index) {
       goodsModel({ goodsTemplatesId: id || '' }).then((res) => {
         if (index || index == 0) {
-          this.$set(this.formData.procureGoods[index], 'modelsOptions', res);
+          this.$set(this.formData.scrappedGoodsInfo[index], 'modelsOptions', res);
         } else {
           this.goodsModelAll = res;
         }
@@ -357,63 +357,70 @@
 
     // 鐗╁搧鍒嗙被閫夋嫨
     categoryChange(e, index) {
-      this.formData.procureGoods[index].goodsOptions = [];
-      this.formData.procureGoods[index].baseGoodsTemplateId = '';
-      this.formData.procureGoods[index].goodsTemplateName = '';
-      this.formData.procureGoods[index].modelsOptions = [];
-      this.formData.procureGoods[index].modelsIds = [];
-      this.formData.procureGoods[index].models = [];
+      this.formData.scrappedGoodsInfo[index].goodsOptions = [];
+      this.formData.scrappedGoodsInfo[index].baseGoodsTemplateId = '';
+      this.formData.scrappedGoodsInfo[index].goodsTemplateName = '';
+      this.formData.scrappedGoodsInfo[index].modelsOptions = [];
+      this.formData.scrappedGoodsInfo[index].modelsIds = [];
+      this.formData.scrappedGoodsInfo[index].scrappedGoodsList = [];
 
-      this.formData.procureGoods[index].baseCategoryId = e[e.length - 1];
+      this.formData.scrappedGoodsInfo[index].baseCategoryId = e[e.length - 1];
       // 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃
       this.getgoodsTemplate(e[e.length - 1], index);
     },
 
     // 鐗╁搧鍚嶇О鍒楄〃
     goodsTemplateChange(e, index) {
-      this.formData.procureGoods[index].modelsOptions = [];
-      this.formData.procureGoods[index].modelsIds = [];
-      this.formData.procureGoods[index].models = [];
+      this.formData.scrappedGoodsInfo[index].modelsOptions = [];
+      this.formData.scrappedGoodsInfo[index].modelsIds = [];
+      this.formData.scrappedGoodsInfo[index].scrappedGoodsList = [];
 
-      this.formData.procureGoods[index].goodsTemplateName = this.getGoodsTemplateName(e);
+      this.formData.scrappedGoodsInfo[index].goodsTemplateName = this.getGoodsTemplateName(e);
       // 鏍规嵁閫変腑鐗╁搧鍚嶇Оid鑾峰彇瑙勬牸鍨嬪彿鍒楄〃
       this.getgoodsModel(e, index);
     },
 
     // 瑙勬牸鍨嬪彿閫夋嫨
-    modelChange(e, index) {
-      let arr = [...this.formData.procureGoods[index].models];
+    async modelChange(e, index) {
+      let arr = [...this.formData.scrappedGoodsInfo[index].scrappedGoodsList];
       let str = JSON.stringify(arr);
-      e.forEach((item) => {
+      for (let item of e) {
         if (str.indexOf(item) == -1) {
-          let temp = this.goodsModelAll.find((v) => v.id == item);
-          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit });
+          // 鑾峰彇搴撳瓨
+          let num = await warehouseSelectNumber({
+            warehouseId: this.formData.warehouseId,
+            baseGoodsModelsId: item,
+            warehouseType: 0,
+            states: 1,
+            buyType: null,
+          });
+          arr.push({ baseGoodsModelsId: item, total: num, counts: null, scrappedCode: null });
         }
-      });
-      this.formData.procureGoods[index].models = arr;
+      }
+      this.formData.scrappedGoodsInfo[index].scrappedGoodsList = arr;
     },
 
     // 瑙勬牸鍨嬪彿绉婚櫎
     modelRemoveTag(e, index) {
-      let arr = this.formData.procureGoods[index].models;
+      let arr = this.formData.scrappedGoodsInfo[index].scrappedGoodsList;
       let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
-      this.formData.procureGoods[index].models.splice(delIndex, 1);
+      this.formData.scrappedGoodsInfo[index].scrappedGoodsList.splice(delIndex, 1);
     },
 
     // 涓婁紶
     uploadChange() {
       let arr = this.$refs.uploadRef.fileList;
-      this.formData.procureDoc = JSON.stringify(arr);
+      this.formData.uploadFiles = JSON.stringify(arr);
     },
 
     // 鐐瑰嚮鏂板鐗╁搧
     addGoods() {
-      this.formData.procureGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
+      this.formData.scrappedGoodsInfo.push(JSON.parse(JSON.stringify(this.goodsItem)));
     },
 
     // 鐐瑰嚮绉婚櫎
     removeGoods(index) {
-      this.formData.procureGoods.splice(index, 1);
+      this.formData.scrappedGoodsInfo.splice(index, 1);
     },
 
     // 鎻愪氦
@@ -421,29 +428,16 @@
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
           console.log('this.formData', this.formData);
-          if (!this.setting.id) {
-            procureAdd(this.formData)
-              .then((res) => {
-                this.$message.success('淇濆瓨鎴愬姛锛�');
-                this.close();
-                this.$emit('search');
-              })
-              .catch((err) => {
-                console.log('create err', err);
-                this.$message.error('淇濆瓨澶辫触');
-              });
-          } else {
-            procureEdit(this.formData)
-              .then((res) => {
-                this.$message.success('淇濆瓨鎴愬姛锛�');
-                this.close();
-                this.$emit('search');
-              })
-              .catch((err) => {
-                console.log('edit err', err);
-                this.$message.error('淇濆瓨澶辫触');
-              });
-          }
+          scrappedAdd(this.formData)
+            .then((res) => {
+              this.$message.success('淇濆瓨鎴愬姛锛�');
+              this.close();
+              this.$emit('search');
+            })
+            .catch((err) => {
+              console.log('create err', err);
+              this.$message.error('淇濆瓨澶辫触');
+            });
         } else {
           this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��');
         }
@@ -453,46 +447,10 @@
     close() {
       this.formData = {
         warehouseId: '', // 鎶ュ簾浠撳簱id
-        procureTime: '', // 鎶ュ簾鏃堕棿
-        procureGoods: [],
+        dealTime: '', // 鎶ュ簾鏃堕棿
+        scrappedGoodsInfo: [],
       };
       this.$emit('close');
-    },
-
-    // 閫氳繃瀛愰泦id鏌ュ埌鎵�浠ョ浉鍏崇埗绾d骞惰繑鍥炴暟缁�
-    findParentIds(dataSource, nodeId) {
-      const parentIds = [nodeId]; // 鐢ㄤ簬瀛樺偍鎵�鏈夌埗鑺傜偣ID鐨勬暟缁�
-
-      // 瀹氫箟涓�涓�掑綊鍑芥暟锛岀敤浜庨亶鍘嗘暣妫垫爲骞舵煡鎵惧瓙鑺傜偣鐨勬墍鏈夌埗鑺傜偣
-      function traverse(node, nodeId) {
-        if (node.id === nodeId) {
-          // 濡傛灉褰撳墠鑺傜偣鐨処D绛変簬瀛愯妭鐐圭殑ID锛屽垯琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣锛屽彲浠ュ紑濮嬪悜涓婃煡鎵剧埗鑺傜偣
-          return true; // 杩斿洖true琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣
-        }
-
-        if (node.children) {
-          // 濡傛灉褰撳墠鑺傜偣鏈夊瓙鑺傜偣锛屽垯缁х画閬嶅巻瀛愯妭鐐�
-          for (const childNode of node.children) {
-            if (traverse(childNode, nodeId)) {
-              // 濡傛灉鍦ㄥ瓙鑺傜偣涓壘鍒颁簡瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欏皢褰撳墠鑺傜偣鐨処D娣诲姞鍒扮埗鑺傜偣ID鏁扮粍涓紝骞惰繑鍥瀟rue琛ㄧず宸茬粡鎵惧埌浜嗗瓙鑺傜偣
-              parentIds.unshift(node.id);
-              return true;
-            }
-          }
-        }
-
-        return false; // 濡傛灉褰撳墠鑺傜偣涓嶆槸瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欒繑鍥瀎alse
-      }
-
-      // 浠庢牴鑺傜偣寮�濮嬮亶鍘嗘暣妫垫爲锛屽苟璋冪敤閫掑綊鍑芥暟鏌ユ壘瀛愯妭鐐圭殑鎵�鏈夌埗鑺傜偣
-      for (const node of dataSource) {
-        if (traverse(node, nodeId)) {
-          // 濡傛灉鍦ㄥ綋鍓嶈妭鐐圭殑瀛愭爲涓壘鍒颁簡瀛愯妭鐐圭殑鐖惰妭鐐癸紝鍒欑洿鎺ラ��鍑哄惊鐜�
-          break;
-        }
-      }
-
-      return parentIds; // 杩斿洖鎵�鏈夌埗鑺傜偣ID鐨勬暟缁�
     },
   },
 };
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/index.vue b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
index 5263192..4f2565c 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/index.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
@@ -21,9 +21,7 @@
                         <div class="card-header-left">
                           <span>鎶ュ簾鍗曞彿锛�</span>
                           <span class="value">{{ item.businessFormCode }}</span>
-                          <div class="states" :class="item.states == 1 ? '' : 'states-success'">
-                            {{ item.states == 1 ? '寰呮姤搴�' : '宸叉姤搴�' }}
-                          </div>
+                          
                         </div>
                         <div class="card-header-right">
                           <el-button site="form" type="success" size="mini" @click="handleExport(item)"
@@ -35,15 +33,15 @@
                         </div>
                       </div>
                       <div class="one-hed">
-                        <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyId }}</div>
-                        <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.buyerName }}</div>
+                        <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyName }}</div>
+                        <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div>
                         <div class="box">
-                          <span class="span-two">鎶ュ簾鏃堕棿锛�</span>{{ item.procureTime | formatTime }}
+                          <span class="span-two">鎶ュ簾鏃堕棿锛�</span>{{ item.dealTime | formatTime }}
                         </div>
                       </div>
                       <div class="card-end">
-                        <div v-for="(just, index) in item.fromProcureTemplateInfoList" :key="index" class="item">
-                          <div class="name">{{ just.goodsTemplateName }}</div>
+                        <div v-for="(just, index) in item.goodTemplateInfo" :key="index" class="item">
+                          <div class="name">{{ just.goodsName }}</div>
                           <div class="value-box">
                             <div class="value-box-item">
                               <span class="label">鏁伴噺锛�</span>
@@ -86,20 +84,14 @@
       @close="detailSetting.show = false"
       ref="detailRef"
     ></detail>
-    <my-import
-      :import-setting="importSetting"
-      :dialog-show="importSetting.dialogShow"
-      :dialog-title="importSetting.dialogTitle"
-    />
   </div>
 </template>
 
 <script>
-import { procureList, procureDel, procureIncome } from '@/api/stock/procure/purchaseOrder';
+import { scrappedList,  } from '@/api/stock/scrap';
 import { getTree } from '@/api/baseSetting/finsystenant';
 import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import myImport from '@/views/components/myImport';
 import edit from './edit';
 import detail from './detail';
 import { getBaseUrl } from '@/utils/base';
@@ -107,7 +99,7 @@
 
 export default {
   name: 'index',
-  components: { MyButton, myImport, edit, detail },
+  components: { MyButton, edit, detail },
   data() {
     return {
       loading: false,
@@ -123,11 +115,17 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
-          placeholder: '鍙ā绯婃悳绱�',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'cascader',
@@ -159,24 +157,6 @@
         userName: null,
         userPhone: null,
         states: null,
-      },
-      // 瀵煎叆
-      importSetting: {
-        dialogTitle: '瀵煎叆',
-        dialogShow: false,
-        fileSettings: {
-          data: {},
-          uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 涓婁紶鍦板潃
-          accept: '.xls', // 鏍煎紡
-          type: 'text', // 鍥炴樉褰㈠紡
-          loading: false, // 瀵煎叆鏁堟灉
-        },
-        /* 妯℃澘涓嬭浇 */
-        templateSettings: {
-          templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
-          templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 涓嬭浇鍦板潃
-        },
-        onSuccess: null,
       },
       editSetting: {
         title: '',
@@ -211,7 +191,7 @@
   methods: {
     fetchData() {
       this.loading = true;
-      procureList({
+      scrappedList({
         pageNum: this.pageNum,
         pageSize: this.pageSize,
         ...this.filterFrom,
@@ -245,38 +225,10 @@
       this.editSetting.title = '鏂板';
       this.editSetting.show = true;
     },
-    // 缂栬緫
-    handleEdit(row) {
-      this.editSetting.id = row.id;
-      this.editSetting.info = null;
-      this.editSetting.title = '缂栬緫';
-      this.editSetting.show = true;
-    },
     // 璇︽儏
     handleDetail(row) {
       this.detailSetting.id = row.id;
       this.detailSetting.show = true;
-    },
-    // 鎶ュ簾
-    handleIncome(row) {
-      this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode}  鎶ュ簾鍚�?`, '鎶ュ簾鎶ュ簾').then(() => {
-        procureIncome({ id: row.id })
-          .then((res) => {
-            this.$message.success('鎶ュ簾鎴愬姛锛�');
-            this.search();
-          })
-          .catch(() => {});
-      });
-    },
-    del(row) {
-      this.$modal.confirm('鏄惁纭鍒犻櫎鎶ュ簾鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�').then(() => {
-        procureDel({ id: row.id })
-          .then((res) => {
-            this.$message.success('鍒犻櫎鎴愬姛锛�');
-            this.search();
-          })
-          .catch(() => {});
-      });
     },
     // 鍒嗛〉
     handleSizeChange(pageSize) {
@@ -306,9 +258,6 @@
       }
       if (this.filterFrom.incomeTimeEnd) {
         this.filterFrom.incomeTimeEnd = this.filterFrom.incomeTimeEnd.replace(/\-/g, '');
-      }
-      if (this.filterFrom.agencyId.length) {
-        this.filterFrom.agencyId = this.filterFrom.agencyId[this.filterFrom.agencyId.length - 1];
       }
       this.search(1);
     },
diff --git a/admin-web/src/views/stock/scrap/scrapDetails/index.vue b/admin-web/src/views/stock/scrap/scrapDetails/index.vue
index 257a248..d694dca 100644
--- a/admin-web/src/views/stock/scrap/scrapDetails/index.vue
+++ b/admin-web/src/views/stock/scrap/scrapDetails/index.vue
@@ -10,7 +10,7 @@
           <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>
         </el-card>
@@ -31,17 +31,18 @@
 </template>
 
 <script>
-import MyTableV2 from "@/components/myTable/myTableV2";
-import MyButton from "@/components/myButton/myButton";
+import MyTableV2 from '@/components/myTable/myTableV2';
+import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-import myImport from '@/views/components/myImport'
+import * as finsystenant from '@/api/baseSetting/finsystenant';
+import myImport from '@/views/components/myImport';
 import detail from '../itemScrapping/detail';
-import {getBaseUrl} from '@/utils/base';
+import { getBaseUrl } from '@/utils/base';
+import * as DateFormatter from '@/utils/DateFormatter';
 
 export default {
-  name: "index",
-  components: {MyButton, MyTableV2, myImport,detail},
+  name: 'index',
+  components: { MyButton, MyTableV2, myImport, detail },
   data() {
     return {
       // 鎼滅储妗�
@@ -51,22 +52,35 @@
           dataIndex: 'name',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
         },
+
         {
-          type: 'text',
-          dataIndex: 'name',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
+          options: [],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
-          dataIndex: 'warehouseId',
+          dataIndex: 'baseGoodsModelsId',
           label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'cascader',
@@ -82,7 +96,7 @@
           dataIndex: 'name',
           label: '鍒涘缓浜�',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
         },
         {
           type: 'date-picker',
@@ -104,25 +118,25 @@
         tenantId: null,
         userName: null,
         userPhone: null,
-        status: 1
+        status: 1,
       },
       // 瀵煎叆
       importSetting: {
-          dialogTitle: '瀵煎叆',
-          dialogShow: false,
-          fileSettings: {
-              data: {},
-              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
-              accept: '.xls', // 鏍煎紡
-              type: 'text', // 鍥炴樉褰㈠紡
-              loading: false // 瀵煎叆鏁堟灉
-          },
-          /* 妯℃澘涓嬭浇 */
-          templateSettings: {
-              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
-              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
-          },
-          onSuccess: null
+        dialogTitle: '瀵煎叆',
+        dialogShow: false,
+        fileSettings: {
+          data: {},
+          uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 涓婁紶鍦板潃
+          accept: '.xls', // 鏍煎紡
+          type: 'text', // 鍥炴樉褰㈠紡
+          loading: false, // 瀵煎叆鏁堟灉
+        },
+        /* 妯℃澘涓嬭浇 */
+        templateSettings: {
+          templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+          templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 涓嬭浇鍦板潃
+        },
+        onSuccess: null,
       },
       editSetting: {
         title: '',
@@ -134,28 +148,36 @@
       table: {
         showIndex: true, // 鏄惁鏄剧ず搴忓彿
         expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        url: SettingIplatform.apiBaseURL + '/pc/l/wh/form/scrapped/list/detailList', // 璇锋眰鍦板潃
         // 宸ュ叿鏉�
         tools: {
-          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
-            show: false
+          columnsCtrl: {
+            // 鍒楁帶鍒舵寜閽�
+            show: false,
           },
-          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
-            show: false
+          generalExport: {
+            // 閫氱敤瀵煎嚭鎸夐挳
+            show: false,
           },
           // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-          ]
+          custom: [],
         },
         // 鍒椾俊鎭�
         columns: [
-          {title: '鍗曞彿', field: 'name', align: 'left',},
-          {title: '鐗╁搧鍚嶇О', field: 'code', align: 'center'},
-          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
-          {title: '鎶ュ簾鏁伴噺', field: 'lv', align: 'center', },
-          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
-          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
-          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+          { title: '鍗曞彿', field: 'businessFormCode', align: 'left' },
+          { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
+          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
+          { title: '鎶ュ簾鏁伴噺', field: 'lv', align: 'center' },
+          { title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left' },
+          { title: '鍒涘缓浜�', field: 'operatorName', align: 'left' },
+          {
+            title: '鎿嶄綔鏃堕棿',
+            field: 'dealTime',
+            align: 'left',
+            formatter: (row) => {
+              return { value: DateFormatter.LongToDateTime(row.dealTime) };
+            },
+          },
         ],
         // 鎿嶄綔淇℃伅
         operation: {
@@ -177,19 +199,18 @@
             small: false,
             pageNum: 1,
             pageSize: 10,
-            total: 0
-          }
-        }
+            total: 0,
+          },
+        },
       },
       detailSetting: {
         title: '璇︽儏',
         id: '',
         show: false,
       },
-    }
+    };
   },
-  created() {
-  },
+  created() {},
   methods: {
     showDetail(row) {
       this.detailSetting.id = row.id;
@@ -198,19 +219,17 @@
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum)
+        this.$refs.myTable.search(pageNum);
       } else {
-        this.$refs.myTable.search()
+        this.$refs.myTable.search();
       }
     },
     fifterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params)
-      this.search(1)
-    }
-  }
-}
+      this.filterFrom = Object.assign(this.filterFrom, params);
+      this.search(1);
+    },
+  },
+};
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>
diff --git a/admin-web/src/views/stock/transfer/transferApplication/edit.vue b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
index e09140b..2921487 100644
--- a/admin-web/src/views/stock/transfer/transferApplication/edit.vue
+++ b/admin-web/src/views/stock/transfer/transferApplication/edit.vue
@@ -56,14 +56,10 @@
               <el-form-item
                 label="鐗╁搧鍚嶇О"
                 :prop="`transferGoods[${goodsIndex}].baseGoodsTemplateId`"
-                :rules="{
-                  required: true,
-                  message: '璇烽�夋嫨',
-                  trigger: 'change',
-                }"
+                :rules="rules.baseGoodsTemplateId"
               >
                 <el-select
-                  :value="goodsItem.baseGoodsTemplateId"
+                  v-model="goodsItem.baseGoodsTemplateId"
                   placeholder="璇峰厛鎷╃墿鍝佸垎绫�"
                   filterable
                   :disabled="!goodsItem.baseCategoryId"
@@ -191,6 +187,18 @@
     },
   },
   data() {
+    // 鑷畾涔夋牎楠�
+    // 鐗╁搧閲嶅鏍¢獙
+    var checkGoodsTemplateId = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('璇烽�夋嫨'));
+      }
+      let temp = this.formData.transferGoods.filter((v) => v.baseGoodsTemplateId == value);
+      if (!temp || temp.length != 1) {
+        return callback(new Error('宸查�夎繃姝ょ墿鍝�'));
+      }
+      callback();
+    };
     return {
       loading: false,
       agencyOptions: [], // 璋冩嫧鏈烘瀯
@@ -223,7 +231,7 @@
         createTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
 
         baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        baseGoodsTemplateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+        baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
         modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
         counts: [
           { required: true, message: '璇疯緭鍏�', trigger: 'change' },
@@ -265,8 +273,8 @@
           this.agencyOptions = [res];
           this.formData.outAgencyId = res.id;
           this.formData.transferGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
-        }else{
-          this.$message.warning('鏃犱笂绾ф満鏋�')
+        } else {
+          this.$message.warning('鏃犱笂绾ф満鏋�');
         }
       });
     },
@@ -344,13 +352,6 @@
 
     // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨
     goodsTemplateChange(e, index) {
-      let temp = this.formData.transferGoods.find((v) => v.baseGoodsTemplateId == e);
-      if (temp) {
-        this.$message.warning('宸查�夎繃姝ょ墿鍝�');
-        return;
-      } else {
-        this.formData.transferGoods[index].baseGoodsTemplateId = e;
-      }
       this.formData.transferGoods[index].modelsOptions = [];
       this.formData.transferGoods[index].modelsIds = [];
       this.formData.transferGoods[index].models = [];
diff --git a/admin-web/src/views/stock/transfer/transferApplication/index.vue b/admin-web/src/views/stock/transfer/transferApplication/index.vue
index 6720ce6..b514269 100644
--- a/admin-web/src/views/stock/transfer/transferApplication/index.vue
+++ b/admin-web/src/views/stock/transfer/transferApplication/index.vue
@@ -129,6 +129,7 @@
 import listPage from '../../../mixins/listPage';
 import transfer from '../../../mixins/transfer';
 import { commonsApi } from '@/api/commonsApi';
+import SettingIplatform from '@/utils/settingIplatform';
 
 export default {
   name: 'index',
@@ -149,11 +150,17 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
-          placeholder: '鍙ā绯婃悳绱�',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
diff --git a/admin-web/src/views/stock/transfer/transferdetails/index.vue b/admin-web/src/views/stock/transfer/transferdetails/index.vue
index ddb044c..0817f63 100644
--- a/admin-web/src/views/stock/transfer/transferdetails/index.vue
+++ b/admin-web/src/views/stock/transfer/transferdetails/index.vue
@@ -52,19 +52,31 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
           dataIndex: 'baseGoodsModelsId',
           label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'cascader',
@@ -218,22 +230,8 @@
     };
   },
   created() {
-    this.initSearch();
   },
   methods: {
-    initSearch() {
-      this.items.map(async (item) => {
-        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.detailSetting.id = row.id;
       this.detailSetting.info = JSON.stringify(row);
@@ -250,12 +248,6 @@
     },
     fifterForm(params) {
       this.filterFrom = Object.assign(this.filterFrom, params);
-      if (this.filterFrom.outAgencyId && this.filterFrom.outAgencyId.length) {
-        this.filterFrom.outAgencyId = this.filterFrom.outAgencyId[this.filterFrom.outAgencyId.length - 1];
-      }
-      if (this.filterFrom.inAgencyId && this.filterFrom.inAgencyId.length) {
-        this.filterFrom.inAgencyId = this.filterFrom.inAgencyId[this.filterFrom.inAgencyId.length - 1];
-      }
       if (this.filterFrom.createTimeStart) {
         this.filterFrom.createTimeStart = this.filterFrom.createTimeStart.replace(/\-/g, '');
       }
diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue
index f938a91..c151048 100644
--- a/admin-web/src/views/stock/transfer/transferissue/index.vue
+++ b/admin-web/src/views/stock/transfer/transferissue/index.vue
@@ -109,6 +109,7 @@
 import listPage from '../../../mixins/listPage';
 import transfer from '../../../mixins/transfer';
 import { commonsApi } from '@/api/commonsApi';
+import SettingIplatform from '@/utils/settingIplatform';
 
 export default {
   name: 'index',
@@ -129,11 +130,18 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
-          placeholder: '鍙ā绯婃悳绱�',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'cascader',

--
Gitblit v1.9.1