From 13b0bad30ef1df53492cbab1c1b99dfc02dee63f Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期二, 21 十一月 2023 17:51:16 +0800
Subject: [PATCH] 台账管理,盘点任务开发

---
 admin-web/src/views/stock/ledger/alertQuery/index.vue                |  214 ++++-----
 admin-web/src/views/stock/inventorycount/inventorytask/index.vue     |   73 ++
 admin-web/src/views/stock/ledger/inventoryQuery/index.vue            |   83 +--
 admin-web/src/api/stock/inventory.js                                 |    6 
 admin-web/src/utils/settingIplatform.js                              |    4 
 admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue  |   18 
 admin-web/src/views/stock/scrap/itemScrapping/edit.vue               |    4 
 admin-web/src/views/stock/ledger/ledgerQuery/index.vue               |  152 +++---
 /dev/null                                                            |  111 -----
 admin-web/src/views/stock/ledger/inventoryAlert/index.vue            |  142 ++---
 admin-web/src/api/baseSetting/finsystenant.js                        |    9 
 admin-web/src/utils/stockType.js                                     |    9 
 admin-web/src/api/stock/ledger.js                                    |   57 ++
 admin-web/src/views/stock/ledger/inventoryAlert/edit.vue             |  283 ++++++++----
 admin-web/src/views/stock/accessStock/outboundDetails/index.vue      |    1 
 admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue |  137 ++++--
 admin-web/public/static/config.js                                    |    4 
 17 files changed, 704 insertions(+), 603 deletions(-)

diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js
index 60dfb72..78c156c 100644
--- a/admin-web/public/static/config.js
+++ b/admin-web/public/static/config.js
@@ -14,8 +14,8 @@
 // 鎺ュ彛璇锋眰鍦板潃
 // apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡
   // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙�
-  // apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
-  apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
+  apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
+  // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
 // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
   // socket杩炴帴
   wsSocketUrl: VUE_APP_WS_URL,
diff --git a/admin-web/src/api/baseSetting/finsystenant.js b/admin-web/src/api/baseSetting/finsystenant.js
index d4087b1..5da26d1 100644
--- a/admin-web/src/api/baseSetting/finsystenant.js
+++ b/admin-web/src/api/baseSetting/finsystenant.js
@@ -194,4 +194,13 @@
     method: 'get',
     params,
   });
+}
+
+// 鏍规嵁鐗╁搧鍨嬪彿鏌ヨ鐗╁搧淇℃伅
+export function queryGoodsModelInfo(params) {
+  return request({
+    url: '/pc/base/goods/models/queryGoodsModelInfo',
+    method: 'get',
+    params,
+  });
 }
\ No newline at end of file
diff --git a/admin-web/src/api/stock/inventory.js b/admin-web/src/api/stock/inventory.js
index d66e130..c9c371f 100644
--- a/admin-web/src/api/stock/inventory.js
+++ b/admin-web/src/api/stock/inventory.js
@@ -44,7 +44,7 @@
 // 鐩樼偣鏆傚瓨
 export function inventoryTemporaryStorage(data) {
   return request({
-    url: '/pc/l/wh/form/inventory/temporaryStorage',
+    url: '/pc/l/wh/form/inventory/temporary/storage',
     method: 'post',
     data,
   });
@@ -69,9 +69,9 @@
 }
 
 // 鐩樼偣
-export function inventorySelectPdList(params) {
+export function inventoryQuery(params) {
   return request({
-    url: '/pc/l/wh/form/inventory/select/pdList',
+    url: '/pc/l/wh/form/inventory/query',
     method: 'get',
     params,
   });
diff --git a/admin-web/src/api/stock/ledger.js b/admin-web/src/api/stock/ledger.js
index 86e4828..577fdb2 100644
--- a/admin-web/src/api/stock/ledger.js
+++ b/admin-web/src/api/stock/ledger.js
@@ -1,6 +1,6 @@
 import request from '@/utils/request';
 
-// 鍗曟嵁鏂板
+// 搴撳瓨鏌ヨ瀵煎嚭
 export function doExport(params) {
   return request({
     url: '/pc/fin/warehouse/ledger/getListExport',
@@ -9,3 +9,58 @@
     params,
   });
 }
+
+// 棰勮璁剧疆
+// 鍒楄〃
+export function warningConfigGetList(params) {
+  return request({
+    url: '/pc/warehouse/warningConfig/getList',
+    method: 'get',
+    params,
+  });
+}
+
+// 鏂板
+export function warningConfigAdd(data) {
+  return request({
+    url: '/pc/warehouse/warningConfig/add',
+    method: 'post',
+    data,
+  });
+}
+
+// 缂栬緫
+export function warningConfigUpd(data) {
+  return request({
+    url: '/pc/warehouse/warningConfig/upd',
+    method: 'post',
+    data,
+  });
+}
+
+// 缂栬緫鍥炴樉
+export function warningConfigGetById(params) {
+  return request({
+    url: '/pc/warehouse/warningConfig/getById',
+    method: 'get',
+    params,
+  });
+}
+
+// 鍒犻櫎
+export function warningConfigGetDel(data) {
+  return request({
+    url: '/pc/warehouse/warningConfig/del',
+    method: 'delete',
+    data,
+  });
+}
+
+// 鏌ヨ宸叉湁閰嶇疆
+export function warningConfigGetConfigList(params) {
+  return request({
+    url: '/pc/warehouse/warningConfig/getConfigList',
+    method: 'get',
+    params,
+  });
+}
diff --git a/admin-web/src/utils/settingIplatform.js b/admin-web/src/utils/settingIplatform.js
index 366a244..3e3b152 100644
--- a/admin-web/src/utils/settingIplatform.js
+++ b/admin-web/src/utils/settingIplatform.js
@@ -14,8 +14,8 @@
 // apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡
   // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙�
   // apiBaseURL: 'http://172.16.60.175:8083/lowConsum',//寮�鍙�
-  // apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
-  apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
+  apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
+  // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
 // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
   // socket杩炴帴
   wsSocketUrl: VUE_APP_WS_URL,
diff --git a/admin-web/src/utils/stockType.js b/admin-web/src/utils/stockType.js
new file mode 100644
index 0000000..9af85c4
--- /dev/null
+++ b/admin-web/src/utils/stockType.js
@@ -0,0 +1,9 @@
+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>`);
+  }
+  export default stockType;
+  
\ No newline at end of file
diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue b/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue
deleted file mode 100644
index 37b0db9..0000000
--- a/admin-web/src/views/stock/accessStock/outboundDetails/edit.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="缂栧彿" prop="code">
-        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="浠撳簱鍚嶇О" prop="name">
-        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="鍦板潃" >
-        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-switch
-          v-model="formData.status"
-          active-color="#0d997c"
-          inactive-color="#C0CCDA">
-        </el-switch>
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-
-export default {
-  components: {winSm, myButton},
-  props: {
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      checkAll: false,
-      checkedList: [],
-      formData: {
-        code: '',
-        name: '',
-        status: true,
-        summary: '',
-      },
-      rules: {
-        code: [
-          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
-        ],
-        name: [
-          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
-        ],
-        status: [
-          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
-        ]
-      }
-    }
-  },
-  created() {
-    if(this.setting.info){
-      this.formData = Object.assign({},JSON.parse(this.setting.info))
-    }
-  },
-  methods: {
-    getEditInfo(id){
-
-    },
-    close() {
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          if(this.setting.id){
-            // 缂栬緫鎺ュ彛
-            finsystenant.edit(params).then(res => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
-              } else {
-                this.$message.error('淇濆瓨澶辫触')
-              }
-            })
-          }else{
-            params.orgId = this.setting.orgId
-            finsystenant.add(params).then(res => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
-              } else {
-                this.$message.error('淇濆瓨澶辫触')
-              }
-            })
-          }
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
index 58e8656..2c0cf43 100644
--- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
+++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
@@ -30,6 +30,7 @@
 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';
 
 export default {
   name: 'index',
diff --git a/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
index a13fad2..bcaf8ee 100644
--- a/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
+++ b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
@@ -55,7 +55,7 @@
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'goodsTemplateName',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
@@ -104,27 +104,27 @@
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'baseGoodsModelsId',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'operatorName',
           label: '鎿嶄綔浜�',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'incomeTimeStart',
+          dataIndex: 'startTime',
           label: '鏃堕棿',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'incomeTimeEnd',
+          dataIndex: 'endTime',
           label: '鑷�',
           defaultValue: '',
         },
@@ -158,8 +158,8 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          { title: '浠撳簱', field: 'name', align: 'left' },
-          { title: '鐗╁搧鍚嶇О', field: 'WAREHOUSE_NAME', align: 'center' },
+          { title: '浠撳簱', field: 'warehouseFormCode', align: 'left' },
+          { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
           { title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center' },
           { title: '绫诲瀷', field: 'lv', align: 'center' },
           { title: '搴撳瓨鏁伴噺', field: 'summary', align: 'left' },
@@ -167,8 +167,8 @@
           { 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: 'agencyName', align: 'left' },
+          { title: '鎿嶄綔浜�', field: 'operatorName', align: 'left' },
           { title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left' },
         ],
         // 鎿嶄綔淇℃伅
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
index dbe6bdf..c137a58 100644
--- a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
@@ -42,9 +42,9 @@
 import myImport from '@/views/components/myImport';
 import { getBaseUrl } from '@/utils/base';
 import { selectTenantWarehouse } from '@/api/baseSetting/finsystenant';
-import { inventoryListApi,inventoryDel } from '@/api/stock/inventory';
+import { inventoryListApi, inventoryDel } from '@/api/stock/inventory';
 import * as DateFormatter from '@/utils/DateFormatter';
-import {mapGetters} from 'vuex'
+import { mapGetters } from 'vuex';
 
 export default {
   name: 'index',
@@ -193,13 +193,14 @@
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
+          align: 'left',
           width: '220', // 鍒楀
           attr: [
             {
               title: '缂栬緫',
-              hidden:(row)=>{
-                if(row.states!=0){
-                  return true
+              hidden: (row) => {
+                if (row.states != 0) {
+                  return true;
                 }
               },
               events: (row) => {
@@ -208,9 +209,9 @@
             },
             {
               title: '鍒犻櫎',
-              hidden:(row)=>{
-                if(row.states!=0){
-                  return true
+              hidden: (row) => {
+                if (row.states != 0) {
+                  return true;
                 }
               },
               events: (row) => {
@@ -220,13 +221,49 @@
             {
               title: '鐩樼偣',
               type: 'success',
-              hidden:(row)=>{
-                if(row.states!=0){
-                  return true
+              hidden: (row) => {
+                if (row.states != 0) {
+                  return true;
                 }
               },
               events: (row) => {
                 this.showInventory(row);
+              },
+            },
+            {
+              title: '缁х画鐩樼偣',
+              type: 'success',
+              hidden: (row) => {
+                if (row.states != 1) {
+                  return true;
+                }
+              },
+              events: (row) => {
+                this.showInventory(row);
+              },
+            },
+            {
+              title: '鐩樼偣璇︽儏',
+              type: 'info',
+              hidden: (row) => {
+                if (row.states != 2) {
+                  return true;
+                }
+              },
+              events: (row) => {
+                this.showInventoryDetail(row);
+              },
+            },
+            {
+              title: '鐢熶骇鐩樼偣琛�',
+              type: 'primary',
+              hidden: (row) => {
+                if (row.states != 2) {
+                  return true;
+                }
+              },
+              events: (row) => {
+                this.showInventoryDetail(row);
               },
             },
           ],
@@ -244,11 +281,11 @@
       },
     };
   },
-  computed:{
-    ...mapGetters(['userInfo'])
+  computed: {
+    ...mapGetters(['userInfo']),
   },
   created() {
-    selectTenantWarehouse({agencyId: this.userInfo.tenantId}).then((res) => {
+    selectTenantWarehouse({ agencyId: this.userInfo.tenantId }).then((res) => {
       this.items.forEach((v) => {
         if (v.label == '鐩樼偣浠撳簱') {
           v.options = res.map((item) => {
@@ -304,6 +341,12 @@
       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;
+    },
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
@@ -314,7 +357,7 @@
     },
     fifterForm(params) {
       this.filterFrom = Object.assign(this.filterFrom, params);
-      
+
       if (this.filterFrom.startTime) {
         this.filterFrom.startTime = this.filterFrom.startTime.replace(/\-/g, '');
       }
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue b/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
index 4d91a20..45ecc56 100644
--- a/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
@@ -1,30 +1,43 @@
 <template>
   <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="3" :offset="3">
-        <my-button name="瀵煎嚭鐩樼偣鍗�" site="form" size="medium" type="primary" />
-      </el-col>
-    </el-row>
-    <el-table v-loading="loading" :data="formData.tableData" height="100%" :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="classification" label="绫诲埆"> </el-table-column>
-      <el-table-column prop="unit" label="鍗曚綅" align="center"> </el-table-column>
-      <el-table-column prop="kc" label="搴旀湁搴撳瓨" align="center"> </el-table-column>
-      <el-table-column prop="price" label="鍗曚环" align="center"> </el-table-column>
-      <el-table-column prop="inventoryResult" label="閲戦" align="center"> </el-table-column>
-      <el-table-column prop="inventoryCounts" label="瀹炵洏鏁伴噺" align="center">
-        <template slot-scope="scope">
-            <el-input v-model="scope.row.inventoryCounts"></el-input>
-        </template>
-      </el-table-column>
-    </el-table>
+    <el-form class="form" ref="ruleForm" :model="formData" :rules="rules">
+      <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.businessFormName }}</el-col>
+        <el-col :span="6">鐩樼偣浠撳簱锛歿{ formData.warehouseName }}</el-col>
+        <el-col :span="3" :offset="3">
+          <my-button name="瀵煎嚭鐩樼偣鍗�" site="form" size="medium" type="primary" />
+        </el-col>
+      </el-row>
+      <el-table
+        v-loading="loading"
+        :data="formData.formInventoryGoodsList"
+        :rules="rules"
+        height="400"
+        :stripe="true"
+        class="the-table"
+      >
+        <el-table-column prop="goodsTemplateName" label="鐗╁搧鍚嶇О"> </el-table-column>
+        <el-table-column prop="baseGoodsModelsName" label="鍨嬪彿" align="center"> </el-table-column>
+        <el-table-column prop="type" label="绫诲埆"> </el-table-column>
+        <el-table-column prop="unit" 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">
+          <template slot-scope="scope">
+            <el-form-item
+              label-width="0"
+              :prop="`formInventoryGoodsList[${scope.$index}].realNum`"
+              :rules="rules.realNum"
+            >
+              <el-input v-model.number="scope.row.realNum" maxlength="8"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-form>
 
     <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鏆傚瓨" site="form" type="primary" @click="close" />
+      <my-button name="鏆傚瓨" site="form" type="primary" @click="staging" />
       <my-button name="瀹屾垚鐩樼偣" site="form" type="success" @click="save" />
     </div>
   </win-md>
@@ -33,7 +46,7 @@
 <script>
 import winMd from '@/components/win/win-md';
 import myButton from '@/components/myButton/myButton';
-import { inventorySelectPdList,inventoryTemporaryStorage,inventoryFinish } from '@/api/stock/inventory';
+import { inventoryQuery, inventoryTemporaryStorage, inventoryFinish } from '@/api/stock/inventory';
 export default {
   components: { winMd, myButton },
   props: {
@@ -45,38 +58,72 @@
   data() {
     return {
       loading: false,
+      btnLoading: false,
       formData: {
-        businessFormCode: '2023080812',
-        businessTaskCode: '2023骞�9鏈堢洏鐐瑰崟',
-        warehouseId: '寮�灏佸競浠撳簱',
-        tableData: [],
+        businessFormCode: '',
+        businessFormName: '',
+        warehouseName: '',
+        formInventoryGoodsList: [],
+      },
+      rules: {
+        realNum: [
+          { required: true, message: '璇疯緭鍏�', trigger: 'blur' },
+          { type: 'number', message: '璇疯緭鍏ユ暟瀛楀��' },
+        ],
       },
     };
   },
   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,
-    //   });
-    // }
-    inventorySelectPdList({id:this.setting.id}).then(res=>{
-      this.formData = res
-    })
+    const info = JSON.parse(this.setting.info);
+    console.log('info', info);
+    if (info.states == 1) {
+      // 缁х画鐩樼偣
+
+    } 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');
+          });
+        }
+      });
+    },
     save() {
-      
-    }
+      this.$refs['ruleForm'].validate((valid) => {
+        if (valid) {
+          const params = {
+            ...this.formData,
+            inventoryGoodsList: this.formData.formInventoryGoodsList,
+          };
+          inventoryFinish(params).then(() => {
+            this.$message.success('鏆傚瓨鎴愬姛锛�');
+            this.close();
+            this.$emit('search');
+          });
+        }
+      });
+    },
   },
 };
 </script>
diff --git a/admin-web/src/views/stock/ledger/alertQuery/edit.vue b/admin-web/src/views/stock/ledger/alertQuery/edit.vue
deleted file mode 100644
index 37b0db9..0000000
--- a/admin-web/src/views/stock/ledger/alertQuery/edit.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="缂栧彿" prop="code">
-        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="浠撳簱鍚嶇О" prop="name">
-        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="鍦板潃" >
-        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-switch
-          v-model="formData.status"
-          active-color="#0d997c"
-          inactive-color="#C0CCDA">
-        </el-switch>
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-
-export default {
-  components: {winSm, myButton},
-  props: {
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      checkAll: false,
-      checkedList: [],
-      formData: {
-        code: '',
-        name: '',
-        status: true,
-        summary: '',
-      },
-      rules: {
-        code: [
-          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
-        ],
-        name: [
-          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
-        ],
-        status: [
-          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
-        ]
-      }
-    }
-  },
-  created() {
-    if(this.setting.info){
-      this.formData = Object.assign({},JSON.parse(this.setting.info))
-    }
-  },
-  methods: {
-    getEditInfo(id){
-
-    },
-    close() {
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          if(this.setting.id){
-            // 缂栬緫鎺ュ彛
-            finsystenant.edit(params).then(res => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
-              } else {
-                this.$message.error('淇濆瓨澶辫触')
-              }
-            })
-          }else{
-            params.orgId = this.setting.orgId
-            finsystenant.add(params).then(res => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
-              } else {
-                this.$message.error('淇濆瓨澶辫触')
-              }
-            })
-          }
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/stock/ledger/alertQuery/index.vue b/admin-web/src/views/stock/ledger/alertQuery/index.vue
index 1bd1040..0c53e12 100644
--- a/admin-web/src/views/stock/ledger/alertQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/alertQuery/index.vue
@@ -10,67 +10,85 @@
           <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>
       </el-container>
     </el-container>
-    <my-import
-      :import-setting="importSetting"
-      :dialog-show="importSetting.dialogShow"
-      :dialog-title="importSetting.dialogTitle"
-    />
   </div>
 </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 {getBaseUrl} from '@/utils/base';
-import { selectTenantWarehouse, getCategorySelectTree } from '@/api/baseSetting/finsystenant';
+import * as finsystenant from '@/api/baseSetting/finsystenant';
+import { goodsModel, getCategorySelectTree } from '@/api/baseSetting/finsystenant';
 import { getDicts } from '@/api/system/dict/data';
+import * as DateFormatter from '@/utils/DateFormatter';
 
 export default {
-  name: "index",
-  components: {MyButton, MyTableV2, myImport},
+  name: 'index',
+  components: { MyButton, MyTableV2 },
   data() {
     return {
       // 鎼滅储妗�
       items: [
         {
-          type: 'text',
-          dataIndex: 'name',
-          label: '鐗╁搧鍚嶇О',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: ''
-        },
-        {
-          type: 'select',
-          dataIndex: 'status',
-          label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
-          defaultValue: '',
-          options: []
-        },
-        {
-          type: 'select',
-          dataIndex: 'status',
+          type: 'cascader',
+          dataIndex: 'categoryId',
           label: '鍒嗙被',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: []
+          options: [],
+          cascader: [{key:'baseGoodsModelsId',queryKey: 'goodsTemplatesId'}],
+          optionsConfig: {
+            label: 'label',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/category/select/tree',
+            props:{checkStrictly:false}
+          },
         },
         {
           type: 'select',
-          dataIndex: 'status',
+          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',
+          dataIndex: 'costType',
           label: '绫诲埆',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
-          options: []
+          options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
+          },
         },
       ],
       // 鏍戞暟鎹�
@@ -80,25 +98,7 @@
         tenantId: null,
         userName: null,
         userPhone: null,
-        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
+        status: 1,
       },
       editSetting: {
         title: '',
@@ -110,29 +110,48 @@
       table: {
         showIndex: true, // 鏄惁鏄剧ず搴忓彿
         expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        url: SettingIplatform.apiBaseURL + '/pc/warehouse/warning/getList', // 璇锋眰鍦板潃
         // 宸ュ叿鏉�
         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: 'summary', align: 'left',},
+          { title: '鐗╁搧鍚嶇О', field: 'baseGoodsTemplateName', align: 'left' },
+          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
+          { title: '鍗曚綅', field: 'unit', align: 'center' },
+          { title: '褰撳墠搴撳瓨', field: 'warehouseCount', align: 'center' },
+          { title: '淇濆簳搴撳瓨', field: 'lowerLimit', align: 'left' },
+          { title: '灏侀《搴撳瓨', field: 'upperLimit', align: 'left' },
+          {
+            title: '鐘舵��',
+            field: 'warningType',
+            align: 'left',
+            formatter: (row) => {
+              return {
+                type: row.warningType == 1 ? 'warning' : 'danger',
+                value: row.warningType == 1 ? '搴撳瓨宸茶秴' : '棰勮缂鸿揣',
+              }; //棰勮绫诲瀷锛�1=搴撳瓨宸茶秴锛�2=棰勮缂鸿揣锛�
+            },
+          },
+          {
+            title: '棰勮鏃堕棿',
+            field: 'warningTime',
+            align: 'left',
+            width: 160,
+            formatter: (row) => {
+              return { value: DateFormatter.LongToDateTime(row.warningTime) };
+            },
+          },
         ],
         paging: {
           show: true, // 鏄剧ず鍒嗛〉
@@ -141,70 +160,41 @@
             small: false,
             pageNum: 1,
             pageSize: 10,
-            total: 0
-          }
-        }
+            total: 0,
+          },
+        },
       },
-    }
+    };
   },
   created() {
-    this.initQuery();
   },
   methods: {
-    initQuery() {
-      getDicts('GOODS_PRICE').then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '绫诲埆') {
-            v.options = res.map((v) => {
-              v.label = v.dict_label;
-              v.value = v.dict_value;
-              return v;
-            });
-          }
-        });
-      });
-      getCategorySelectTree().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '鍒嗙被') {
-            v.options = res.map((item) => {
-              item.label = item.label;
-              item.vlaue = item.id;
-              return item;
-            });
-          }
-        });
-      });
-    },
     del(row) {
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
         .then(function () {
-          finsystenant.del({id: row.id}).then((res) => {
-          });
+          finsystenant.del({ id: row.id }).then((res) => {});
         })
         .then((res) => {
           this.$message.success('鍒犻櫎鎴愬姛锛�');
-          this.search()
+          this.search();
         })
-        .catch(() => {
-        });
+        .catch(() => {});
     },
     // 鏌ヨ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/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
index 93fcd42..18be030 100644
--- a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
@@ -3,54 +3,108 @@
     <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
       <el-row :gutter="24">
         <el-col :span="12">
-          <el-form-item label="鐗╁搧鍒嗙被">
+          <el-form-item label="鍏ュ簱浠撳簱" prop="baseWarehouseId">
+            <el-select
+              v-model="formData.baseWarehouseId"
+              placeholder="璇烽�夋嫨"
+              style="width: 100%"
+              :disabled="type == 'edit'"
+            >
+              <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id" />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="鐗╁搧鍒嗙被" prop="baseCategoryIds">
             <el-cascader
               v-model="formData.baseCategoryIds"
               :options="categoryOptions"
               :props="{ value: 'id' }"
+              @change="categoryChange"
               style="width: 100%"
+              :disabled="type == 'edit'"
             ></el-cascader>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="鐗╁搧鍚嶇О">
-            <el-select
-              :value="formData.baseGoodsTemplateId"
-              placeholder="璇峰厛鎷╃墿鍝佸垎绫�"
-              filterable
-              style="width: 100%"
-            >
-              <el-option v-for="item in goodsTemplatelAll" :key="item.id" :label="item.goodsName" :value="item.id" />
-            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="24">
         <el-col :span="12">
-          <el-form-item label="瑙勬牸鍨嬪彿">
+          <el-form-item label="鐗╁搧鍚嶇О" prop="baseGoodsTemplateId">
+            <el-select
+              :value="formData.baseGoodsTemplateId"
+              placeholder="璇峰厛鎷╃墿鍝佸垎绫�"
+              filterable
+              :disabled="!formData.baseCategoryId || type == 'edit'"
+              @change="goodsTemplateChange"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in goodsTemplatelOptions"
+                :key="item.id"
+                :label="item.goodsName"
+                :value="item.id"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="瑙勬牸鍨嬪彿" prop="modelsIds">
             <el-select
               v-model="formData.modelsIds"
               multiple
+              :disabled="!formData.baseGoodsTemplateId || type == 'edit'"
               placeholder="璇峰厛鎷╃墿鍝佸悕绉�"
-              @change="modelChange($event)"
-              @remove-tag="modelRemoveTag($event)"
+              @change="modelChange"
+              @remove-tag="modelRemoveTag"
               style="width: 100%"
             >
-              <el-option v-for="item in goodsModelAll" :key="item.id" :label="item.modelName" :value="item.id" />
+              <el-option v-for="item in modelsOptions" :key="item.id" :label="item.modelName" :value="item.id" />
             </el-select>
           </el-form-item>
         </el-col>
       </el-row>
-      <el-table :data="formData.models" :stripe="true">
-        <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
-        <el-table-column prop="bdcount" label="淇濆簳搴撳瓨" align="center">
+      <el-row v-if="type == 'edit'">
+        <el-col :span="12">
+          <el-form-item label="淇濆簳搴撳瓨" prop="lowerLimit">
+            <el-input placeholder="璇疯緭鍏�" v-model.number="formData.lowerLimit"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="灏侀《搴撳瓨" prop="upperLimit">
+            <el-input placeholder="璇疯緭鍏�" v-model.number="formData.upperLimit"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-table v-if="type != 'edit'" :data="formData.models" :stripe="true">
+        <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.bdcount"></el-input>
+            {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }}
           </template>
         </el-table-column>
-        <el-table-column prop="count" label="灏侀《搴撳瓨" align="center">
+        <el-table-column prop="lowerLimit" label="淇濆簳搴撳瓨" align="center">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.count"></el-input>
+            <el-form-item
+              v-if="scope.row.lowerLimit || scope.row.upperLimit"
+              label-width="0"
+              :prop="`models[${scope.$index}].lowerLimit`"
+              :rules="rules.lowerLimit"
+            >
+              <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>
+          </template>
+        </el-table-column>
+        <el-table-column prop="upperLimit" label="灏侀《搴撳瓨" align="center">
+          <template slot-scope="scope">
+            <el-form-item
+              v-if="scope.row.lowerLimit || scope.row.upperLimit"
+              label-width="0"
+              :prop="`models[${scope.$index}].upperLimit`"
+              :rules="rules.upperLimit"
+            >
+              <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>
           </template>
         </el-table-column>
       </el-table>
@@ -65,13 +119,22 @@
 <script>
 import winMd from '@/components/win/win-md';
 import myButton from '@/components/myButton/myButton';
-import * as finsystenant from '@/api/baseSetting/finsystenant';
 import {
   getCategorySelectTree,
   goodsModel,
   warehouseSelectNumber,
   goodsTemplate,
+  selectTenantWarehouse,
+  queryGoodsModelInfo,
 } from '@/api/baseSetting/finsystenant';
+import {
+  warningConfigAdd,
+  warningConfigUpd,
+  warningConfigGetById,
+  warningConfigGetConfigList,
+} from '@/api/stock/ledger';
+import { mapGetters } from 'vuex';
+import { findParentIds } from '@/utils/index';
 
 export default {
   components: { winMd, myButton },
@@ -83,92 +146,133 @@
   },
   data() {
     return {
+      type: '',
+      warehouses: [], // 鍏ュ簱浠撳簱鍒楄〃
       agencyOptions: [], // 璋冩嫧鏈烘瀯
       categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃
-      modelList: [], //鍨嬪彿鍒楄〃
+      goodsTemplatelOptions: [], //鐗╁搧鍚嶇О
+      modelsOptions: [], //鍨嬪彿鍒楄〃
       formData: {
+        warehouseType: 0, //浠撳簱绫诲瀷0鏈烘瀯1閮ㄩ棬
+        baseWarehouseId: '', //浠撳簱缂栧彿
         baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍
         baseCategoryId: '', // 鍒嗙被缂栧彿
-        baseGoodsTemplateId: '', // 鐗╁搧妯$増缂栧彿
+        baseGoodsTemplateId: '', // 鐗╁搧鍚嶇О妯$増缂栧彿
         modelsIds: [], //瑙勬牸鍨嬪彿
         models: [],
       },
-      modelsItem: {
-        baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿
-        worehouseCount: 0,
-        counts: 0, // 鎿嶄綔鏁伴噺
-      },
       rules: {
-        code: [{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur' }],
-        name: [{ required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur' }],
-        status: [{ required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur' }],
+        baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
+        baseGoodsTemplateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
+        modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
+        lowerLimit: [
+          { required: true, message: '璇疯緭鍏�', trigger: 'blur' },
+          { type: 'number', message: '璇疯緭鍏ユ暟瀛楀��', trigger: 'blur' },
+        ],
+        upperLimit: [
+          { required: true, message: '璇疯緭鍏�', trigger: 'blur' },
+          { type: 'number', message: '璇疯緭鍏ユ暟瀛楀��', trigger: 'blur' },
+        ],
       },
     };
   },
+  computed: {
+    ...mapGetters(['userInfo']),
+  },
   created() {
-    if (this.setting.info) {
-      this.formData = Object.assign({}, JSON.parse(this.setting.info));
-    }
     this.init();
   },
   methods: {
     async init() {
-      this.getCategoryTree();
-      this.getgoodsTemplate();
-      this.getgoodsModel();
+      if (this.setting.id) {
+        this.type = 'edit';
+        const detail = await warningConfigGetById({ id: this.setting.id });
+        await this.getCategoryTree();
+        this.formData = Object.assign({}, detail);
+        // 鍒嗙被鍙嶆樉
+        let res = await queryGoodsModelInfo({ baseGoodsModelsId: this.formData.baseGoodsModelsId });
+        this.formData.baseCategoryId = res[0].categoryId;
+        this.formData.baseCategoryIds = findParentIds(this.categoryOptions, this.formData.baseCategoryId);
+        // 鐗╁搧鍚嶇О鍙嶆樉
+        this.getgoodsTemplate(this.formData.baseCategoryId);
+        // 瑙勬牸鍨嬪彿鍙嶆樉
+        this.getgoodsModel(this.formData.baseGoodsTemplateId);
+        this.formData.modelsIds = [this.formData.baseGoodsModelsId];
+        this.getWarehouseList();
+      } else {
+        this.getWarehouseList();
+        this.getCategoryTree();
+      }
+    },
+    // 鑾峰彇鍏ュ簱浠撳簱鍒楄〃
+    getWarehouseList() {
+      selectTenantWarehouse({ agencyId: this.userInfo.tenantId })
+        .then((res) => {
+          this.warehouses = res;
+          if (this.warehouses.length && !this.formData.baseWarehouseId) {
+            // 榛樿閫変腑绗竴涓粨搴�
+            this.formData.baseWarehouseId = this.warehouses[0].id;
+          }
+        })
+        .catch((err) => {
+          console.log('err', err);
+        });
     },
 
-    async getCategoryTree() {
+    getCategoryTree() {
       // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
-      const treeRes = await getCategorySelectTree();
-      this.categoryOptions = this.removeEmptyChildren(treeRes);
-      console.log('categoryOptions', this.categoryOptions);
+      return new Promise(async (resolve) => {
+        const treeRes = await getCategorySelectTree();
+        this.categoryOptions = this.removeEmptyChildren(treeRes);
+        resolve();
+      });
     },
 
     // 鑾峰彇鐗╁搧鍚嶇О鍒楄〃
     getgoodsTemplate(id) {
-      goodsTemplate({ categoryId: id || '', agencyId: this.formData.outAgencyId }).then((res) => {
-        this.goodsTemplatelAll = res;
+      goodsTemplate({ categoryId: id || '', agencyId: this.userInfo.tenantId }).then((res) => {
+        this.goodsTemplatelOptions = res;
       });
     },
 
     // 瑙勬牸鍨嬪彿
     getgoodsModel(id) {
       goodsModel({ goodsTemplatesId: id || '' }).then((res) => {
-        this.goodsModelAll = res;
+        this.modelsOptions = res;
       });
+    },
+
+    // 鏍规嵁瑙勬牸鍨嬪彿id鑾峰彇鍚嶅瓧
+    getGoodsModelsName(id) {
+      let item = this.modelsOptions.find((v) => v.id == id);
+      if (item) {
+        return item.modelName;
+      }
+      return;
     },
 
     // 鐗╁搧鍒嗙被閫夋嫨
     categoryChange(e) {
-      this.formData.goodsOptions = [];
+      if (!e) return;
+      this.goodsTemplatelOptions = [];
+      this.modelsOptions = [];
       this.formData.baseGoodsTemplateId = '';
-      this.formData.goodsTemplateName = '';
-      this.formData.modelsOptions = [];
       this.formData.modelsIds = [];
       this.formData.models = [];
 
-      this.formData.transferGoods.baseCategoryId = e[e.length - 1];
+      this.formData.baseCategoryId = e[e.length - 1];
       // 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃
-      this.getgoodsTemplate(e[e.length - 1]);
+      this.getgoodsTemplate(this.formData.baseCategoryId);
     },
 
     // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨
-    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 = [];
+    goodsTemplateChange(e) {
+      this.formData.modelsIds = [];
+      this.formData.models = [];
 
-      this.formData.transferGoods[index].goodsTemplateName = this.getGoodsTemplateName(e);
+      this.formData.baseGoodsTemplateId = e;
       // 鏍规嵁閫変腑鐗╁搧鍚嶇Оid鑾峰彇瑙勬牸鍨嬪彿鍒楄〃
-      this.getgoodsModel(e, index);
+      this.getgoodsModel(e);
     },
 
     removeEmptyChildren(arr) {
@@ -184,20 +288,18 @@
 
     // 瑙勬牸鍨嬪彿閫夋嫨
     modelChange(e) {
-      let arr = [...this.formData.models];
+      let arr = this.formData.models;
       let str = JSON.stringify(arr);
-      e.forEach((item) => {
-        if (str.indexOf(item) == -1) {
-          arr.push({ baseGoodsModelsId: item, bdcount: null,count:null });
+      e.forEach((item, index) => {
+        if (str && !str.includes(item)) {
+          arr.push({ baseGoodsModelsId: item, lowerLimit: null, upperLimit: null });
         }
       });
-      this.formData.models = arr;
     },
 
     // 瑙勬牸鍨嬪彿绉婚櫎
     modelRemoveTag(e) {
-      let arr = this.formData.models;
-      let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
+      let delIndex = this.formData.models.findIndex((v) => v.baseGoodsModelsId == e);
       this.formData.models.splice(delIndex, 1);
     },
 
@@ -208,28 +310,29 @@
     save() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
-          const params = Object.assign({}, this.formData);
           if (this.setting.id) {
             // 缂栬緫鎺ュ彛
-            finsystenant.edit(params).then((res) => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�');
-                this.close();
-                this.$emit('search');
-              } else {
-                this.$message.error('淇濆瓨澶辫触');
-              }
+            const params = {
+              id: this.setting.id,
+              lowerLimit: this.formData.lowerLimit,
+              upperLimit: this.formData.upperLimit,
+            };
+            warningConfigUpd(params).then((res) => {
+              this.$message.success('淇濆瓨鎴愬姛锛�');
+              this.close();
+              this.$emit('search');
             });
           } else {
-            params.orgId = this.setting.orgId;
-            finsystenant.add(params).then((res) => {
-              if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�');
-                this.close();
-                this.$emit('search');
-              } else {
-                this.$message.error('淇濆瓨澶辫触');
-              }
+            const params = {
+              warehouseType: this.formData.warehouseType,
+              baseWarehouseId: this.formData.baseWarehouseId,
+              baseGoodsTemplateId: this.formData.baseGoodsTemplateId,
+              modelConfigStr: JSON.stringify(this.formData.models),
+            };
+            warningConfigAdd(params).then((res) => {
+              this.$message.success('淇濆瓨鎴愬姛锛�');
+              this.close();
+              this.$emit('search');
             });
           }
         } else {
diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/index.vue b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
index c4a97a1..bedff7b 100644
--- a/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
@@ -18,11 +18,6 @@
         </el-card>
       </el-container>
     </el-container>
-    <my-import
-      :import-setting="importSetting"
-      :dialog-show="importSetting.dialogShow"
-      :dialog-title="importSetting.dialogTitle"
-    />
   </div>
 </template>
 
@@ -31,15 +26,16 @@
 import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
 import edit from './edit';
-import * as finsystenant from '@/api/baseSetting/finsystenant';
 import myImport from '@/views/components/myImport';
 import { getBaseUrl } from '@/utils/base';
-import { selectTenantWarehouse, getCategorySelectTree } from '@/api/baseSetting/finsystenant';
+import { selectTenantWarehouse, treeList } from '@/api/baseSetting/finsystenant';
+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, myImport },
+  components: { MyButton, MyTableV2, edit },
   data() {
     return {
       // 鎼滅储妗�
@@ -49,9 +45,10 @@
           dataIndex: 'agencyId',
           label: '鏈烘瀯',
           placeholder: '璇烽�夋嫨',
-          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
           defaultValue: '',
           options: [],
+          cascader: [{key:'warehouseId',queryKey: 'agencyId'},{key:'goodsTemplateId',queryKey: 'agencyId'}],
+          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
         },
         {
           type: 'select',
@@ -60,57 +57,58 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-        },
-        {
-          type: 'text',
-          dataIndex: 'name',
-          label: '鐗╁搧鍚嶇О',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: '',
+          optionsConfig: {
+            label: 'warehouseName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
+          },
         },
         {
           type: 'select',
-          dataIndex: 'warehouseId',
+          dataIndex: 'goodsTemplateId',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: '',
+          options: [],
+          cascader: [{key:'categoryId',queryKey: 'goodsTemplatesId'}],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
+        },
+        {
+          type: 'select',
+          dataIndex: 'categoryId',
           label: '鍒嗙被',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+          },
         },
         {
           type: 'select',
-          dataIndex: 'warehouseId',
+          dataIndex: 'costType',
           label: '绫诲埆',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
+          },
         },
       ],
       // 鏍戞暟鎹�
       treeDataList: [],
       // 鎼滅储鏉′欢
       filterFrom: {
-        tenantId: null,
-        userName: null,
-        userPhone: null,
-        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,
+        warehouseType: 0,
       },
       editSetting: {
         title: '',
@@ -122,7 +120,7 @@
       table: {
         showIndex: true, // 鏄惁鏄剧ず搴忓彿
         expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        url: SettingIplatform.apiBaseURL + '/pc/warehouse/warningConfig/getList', // 璇锋眰鍦板潃
         // 宸ュ叿鏉�
         tools: {
           columnsCtrl: {
@@ -151,14 +149,14 @@
         },
         // 鍒椾俊鎭�
         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: 'summary', align: 'left' },
+          { title: '鏈烘瀯', field: 'agencyName', align: 'left' },
+          { title: '浠撳簱', field: 'warehouseName', align: 'center' },
+          { title: '鍒嗙被', field: 'categoryName', align: 'center' },
+          { title: '鎵�灞炵被鍒�', field: 'costType', align: 'center' },
+          { title: '鐗╁搧鍚嶇О', field: 'goodsName', align: 'left' },
+          { title: '瑙勬牸鍨嬪彿', field: 'modelName', align: 'left' },
+          { title: '淇濆簳搴撳瓨', field: 'lowerLimit', align: 'left' },
+          { title: '灏侀《搴撳瓨', field: 'upperLimit', align: 'left' },
         ],
         // 鎿嶄綔淇℃伅
         operation: {
@@ -192,48 +190,15 @@
       },
     };
   },
+  computed: {
+    ...mapGetters(['userInfo']),
+  },
   created() {
-    this.initQuery();
   },
   methods: {
-    initQuery() {
-      selectTenantWarehouse().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '浠撳簱') {
-            v.options = res.map((item) => {
-              item.label = item.warehouseName;
-              item.vlaue = item.id;
-              return item;
-            });
-          }
-        });
-      });
-      getDicts('GOODS_PRICE').then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '绫诲埆') {
-            v.options = res.map((v) => {
-              v.label = v.dict_label;
-              v.value = v.dict_value;
-              return v;
-            });
-          }
-        });
-      });
-      getCategorySelectTree().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '鍒嗙被') {
-            v.options = res.map((item) => {
-              item.label = item.label;
-              item.vlaue = item.id;
-              return item;
-            });
-          }
-        });
-      });
-    },
     del(row) {
-      this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�').then(() => {
-        finsystenant.del({ id: row.id }).then((res) => {
+      this.$modal.confirm('鏄惁纭鍒犻櫎姝ゆ潯鐨勬暟鎹悧锛�').then(() => {
+        warningConfigGetDel({ id: row.id }).then((res) => {
           this.$message.success('鍒犻櫎鎴愬姛锛�');
           this.search();
         });
@@ -261,6 +226,9 @@
     },
     fifterForm(params) {
       this.filterFrom = Object.assign(this.filterFrom, params);
+      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/ledger/inventoryQuery/index.vue b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
index 617ee74..178681a 100644
--- a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
@@ -42,9 +42,10 @@
           dataIndex: 'agencyId',
           label: '鏈烘瀯',
           placeholder: '璇烽�夋嫨',
-          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
           defaultValue: '',
           options: [],
+          cascader: [{key:'warehouseId',queryKey: 'agencyId'},{key:'goodsTemplateId',queryKey: 'agencyId'}],
+          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
         },
         {
           type: 'select',
@@ -53,13 +54,25 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'warehouseName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
+          },
         },
         {
-          type: 'text',
-          dataIndex: 'goodsTemplateName',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          cascader: [{key:'categoryId',queryKey: 'goodsTemplatesId'}],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
@@ -68,6 +81,11 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+          },
         },
         {
           type: 'select',
@@ -76,16 +94,18 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
+          },
         },
       ],
       // 鏍戞暟鎹�
       treeDataList: [],
       // 鎼滅储鏉′欢
       filterFrom: {
-        tenantId: null,
-        userName: null,
-        userPhone: null,
-        status: 1,
+        warehouseType:0
       },
       // 琛ㄦ牸鏁版嵁
       table: {
@@ -138,53 +158,9 @@
     };
   },
   created() {
-    this.initQuery();
+    // this.initQuery();
   },
   methods: {
-    initQuery() {
-      selectTenantWarehouse().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '浠撳簱') {
-            v.options = res.map((item) => {
-              item.label = item.warehouseName;
-              item.value = item.id;
-              return item;
-            });
-          }
-        });
-        console.log('this.items', this.items);
-      });
-      getDicts('GOODS_PRICE').then((res) => {
-        // 浠峰�肩被鍨�1A 2B 3C
-        this.items.forEach((v) => {
-          if (v.label == '绫诲埆') {
-            v.options = res.map((v) => {
-              v.label = v.dict_label;
-              if (v.dict_value == 'A') {
-                v.value = 1;
-              } else if (v.dict_value == 'B') {
-                v.value = 2;
-              } else {
-                v.value = 3;
-              }
-              return v;
-            });
-          }
-        });
-      });
-      treeList().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '鍒嗙被') {
-            v.options = res.map((item) => {
-              item.label = item.categoryName;
-              item.value = item.id;
-              return item;
-            });
-          }
-        });
-      });
-    },
-
     // 瀵煎嚭
     handleExport() {
       let loading = this.$loading({
@@ -230,9 +206,6 @@
     },
     fifterForm(params) {
       this.filterFrom = Object.assign(this.filterFrom, params);
-      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/ledger/ledgerQuery/index.vue b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
index 89c5be4..59c1aac 100644
--- a/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
@@ -33,6 +33,7 @@
 import { getBaseUrl } from '@/utils/base';
 import { getCategorySelectTree, goodsModel } from '@/api/baseSetting/finsystenant';
 import { getDicts } from '@/api/system/dict/data';
+import * as DateFormatter from '@/utils/DateFormatter';
 
 export default {
   name: 'index',
@@ -46,40 +47,66 @@
           dataIndex: 'agencyId',
           label: '鏈烘瀯',
           placeholder: '璇烽�夋嫨',
-          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
           defaultValue: '',
           options: [],
+          cascader: [
+            { key: 'warehouseId', queryKey: 'agencyId' },
+            { key: 'goodsTemplateId', queryKey: 'agencyId' },
+          ],
+          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
         },
         {
-          type: 'text',
-          dataIndex: 'name',
+          type: 'select',
+          dataIndex: 'warehouseId',
+          label: '浠撳簱',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'warehouseName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse',
+          },
+        },
+        {
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
+          options: [],
+          cascader: [{ key: 'categoryId', queryKey: 'goodsTemplatesId' }],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
           type: 'select',
-          dataIndex: 'status',
+          dataIndex: 'baseGoodsModelsId',
           label: '瑙勬牸鍨嬪彿',
-          placeholder: '璇烽�夋嫨',
+          placeholder: '璇疯緭鍏�',
           defaultValue: '',
           options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel',
+          },
         },
         {
           type: 'select',
-          dataIndex: 'status',
-          label: '鍒嗙被',
+          dataIndex: 'flowType',
+          label: '绫诲瀷',
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-        },
-        {
-          type: 'select',
-          dataIndex: 'status',
-          label: '绫诲埆',
-          placeholder: '璇烽�夋嫨',
-          defaultValue: '',
-          options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/FLOW_TYPE',
+          },
         },
         {
           type: 'text',
@@ -89,16 +116,9 @@
           defaultValue: '',
         },
         {
-          type: 'text',
-          dataIndex: 'name',
-          label: '鎿嶄綔浜�',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: '',
-        },
-        {
           type: 'date-picker',
           dataIndex: 'val1',
-          label: '鍑哄簱鏃堕棿',
+          label: '鏃堕棿',
           defaultValue: '',
         },
         {
@@ -145,7 +165,7 @@
       table: {
         showIndex: true, // 鏄惁鏄剧ず搴忓彿
         expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        url: SettingIplatform.apiBaseURL + '/pc/warehouse/flow/getTaiZhangList', // 璇锋眰鍦板潃
         // 宸ュ叿鏉�
         tools: {
           columnsCtrl: {
@@ -165,13 +185,44 @@
           { title: '浠撳簱', field: 'warehouseName', align: 'center' },
           { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
           { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
-          { title: '绫诲瀷', field: 'summary', align: 'left' },
-          { title: '鍗曞彿', field: 'summary', align: 'left' },
-          { title: '鏁伴噺', field: 'counts', align: 'left' },
-          { 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',
+            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];
+              }
+              return { value: result };
+            },
+          },
+          { title: '鍗曞彿', field: 'businessFormCode', align: 'left' },
+          { title: '鏁伴噺', field: 'thisCount', align: 'left' },
+          { title: '鎿嶄綔鍓嶆暟閲�', field: 'initialCount', align: 'left' },
+          { title: '鎿嶄綔鍚庢暟閲�', field: 'endCount', align: 'left' },
+          { title: '鍦ㄩ��', field: 'zaiTuCount', align: 'left' },
+          {
+            title: '鎿嶄綔鏃堕棿',
+            field: 'dealTime',
+            align: 'left',
+            formatter: (row) => {
+              return { value: DateFormatter.LongToDateTime(row.dealTime) };
+            },
+          },
         ],
         paging: {
           show: true, // 鏄剧ず鍒嗛〉
@@ -186,45 +237,8 @@
       },
     };
   },
-  created() {
-    this.initQuery();
-  },
+  created() {},
   methods: {
-    initQuery() {
-      goodsModel().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '瑙勬牸鍨嬪彿') {
-            v.options = res.map((item) => {
-              item.label = item.modelName;
-              item.vlaue = item.id;
-              return item;
-            });
-          }
-        });
-      });
-      getDicts('GOODS_PRICE').then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '绫诲埆') {
-            v.options = res.map((v) => {
-              v.label = v.dict_label;
-              v.value = v.dict_value;
-              return v;
-            });
-          }
-        });
-      });
-      getCategorySelectTree().then((res) => {
-        this.items.forEach((v) => {
-          if (v.label == '鍒嗙被') {
-            v.options = res.map((item) => {
-              item.label = item.label;
-              item.vlaue = item.id;
-              return item;
-            });
-          }
-        });
-      });
-    },
     del(row) {
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
index fd5ec9d..c24c442 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue
@@ -276,12 +276,12 @@
       this.getCategoryTree();
       this.formData.procureGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
       this.formData.operatorId = this.userInfo.userCode;
-      this.formData.operatorName = 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.WAREHOUSE_TYPE = 0;
+      this.formData.warehouseType = 0;
     },
     async getCategoryTree() {
       // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃

--
Gitblit v1.9.1