From fe618973c04544c0bd169c2c4436ff5807b756f1 Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期一, 20 十一月 2023 17:52:31 +0800
Subject: [PATCH] 库存预警设置,盘点删除

---
 admin-web/src/views/stock/ledger/inventoryAlert/edit.vue |  271 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 201 insertions(+), 70 deletions(-)

diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
index 37b0db9..93fcd42 100644
--- a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
@@ -1,111 +1,242 @@
 <template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
+  <win-md :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-row :gutter="24">
+        <el-col :span="12">
+          <el-form-item label="鐗╁搧鍒嗙被">
+            <el-cascader
+              v-model="formData.baseCategoryIds"
+              :options="categoryOptions"
+              :props="{ value: 'id' }"
+              style="width: 100%"
+            ></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-select
+              v-model="formData.modelsIds"
+              multiple
+              placeholder="璇峰厛鎷╃墿鍝佸悕绉�"
+              @change="modelChange($event)"
+              @remove-tag="modelRemoveTag($event)"
+              style="width: 100%"
+            >
+              <el-option v-for="item in goodsModelAll" :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">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.bdcount"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="count" label="灏侀《搴撳瓨" align="center">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.count"></el-input>
+          </template>
+        </el-table-column>
+      </el-table>
     </el-form>
     <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
+      <my-button name="鍙栨秷" site="form" @click="close" />
+      <my-button name="淇濆瓨" site="form" @click="save" />
     </div>
-  </win-sm>
+  </win-md>
 </template>
 
 <script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
+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,
+} from '@/api/baseSetting/finsystenant';
 
 export default {
-  components: {winSm, myButton},
+  components: { winMd, myButton },
   props: {
     setting: {
       type: Object,
-      default: () => {
-      }
-    }
+      default: () => {},
+    },
   },
   data() {
     return {
-      checkAll: false,
-      checkedList: [],
+      agencyOptions: [], // 璋冩嫧鏈烘瀯
+      categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃
+      modelList: [], //鍨嬪彿鍒楄〃
       formData: {
-        code: '',
-        name: '',
-        status: true,
-        summary: '',
+        baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍
+        baseCategoryId: '', // 鍒嗙被缂栧彿
+        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'}
-        ]
-      }
-    }
+        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))
+    if (this.setting.info) {
+      this.formData = Object.assign({}, JSON.parse(this.setting.info));
     }
+    this.init();
   },
   methods: {
-    getEditInfo(id){
-
+    async init() {
+      this.getCategoryTree();
+      this.getgoodsTemplate();
+      this.getgoodsModel();
     },
+
+    async getCategoryTree() {
+      // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
+      const treeRes = await getCategorySelectTree();
+      this.categoryOptions = this.removeEmptyChildren(treeRes);
+      console.log('categoryOptions', this.categoryOptions);
+    },
+
+    // 鑾峰彇鐗╁搧鍚嶇О鍒楄〃
+    getgoodsTemplate(id) {
+      goodsTemplate({ categoryId: id || '', agencyId: this.formData.outAgencyId }).then((res) => {
+        this.goodsTemplatelAll = res;
+      });
+    },
+
+    // 瑙勬牸鍨嬪彿
+    getgoodsModel(id) {
+      goodsModel({ goodsTemplatesId: id || '' }).then((res) => {
+        this.goodsModelAll = res;
+      });
+    },
+
+    // 鐗╁搧鍒嗙被閫夋嫨
+    categoryChange(e) {
+      this.formData.goodsOptions = [];
+      this.formData.baseGoodsTemplateId = '';
+      this.formData.goodsTemplateName = '';
+      this.formData.modelsOptions = [];
+      this.formData.modelsIds = [];
+      this.formData.models = [];
+
+      this.formData.transferGoods.baseCategoryId = e[e.length - 1];
+      // 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃
+      this.getgoodsTemplate(e[e.length - 1]);
+    },
+
+    // 鐗╁搧鍚嶇О鍒楄〃閫夋嫨
+    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 = [];
+
+      this.formData.transferGoods[index].goodsTemplateName = this.getGoodsTemplateName(e);
+      // 鏍规嵁閫変腑鐗╁搧鍚嶇Оid鑾峰彇瑙勬牸鍨嬪彿鍒楄〃
+      this.getgoodsModel(e, index);
+    },
+
+    removeEmptyChildren(arr) {
+      arr.forEach((item) => {
+        if (!item.children || !item.children.length) {
+          delete item.children;
+        } else {
+          this.removeEmptyChildren(item.children);
+        }
+      });
+      return arr;
+    },
+
+    // 瑙勬牸鍨嬪彿閫夋嫨
+    modelChange(e) {
+      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 });
+        }
+      });
+      this.formData.models = arr;
+    },
+
+    // 瑙勬牸鍨嬪彿绉婚櫎
+    modelRemoveTag(e) {
+      let arr = this.formData.models;
+      let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
+      this.formData.models.splice(delIndex, 1);
+    },
+
+    getEditInfo(id) {},
     close() {
-      this.$emit('close')
+      this.$emit('close');
     },
     save() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
-          const params = Object.assign({}, this.formData)
-          if(this.setting.id){
+          const params = Object.assign({}, this.formData);
+          if (this.setting.id) {
             // 缂栬緫鎺ュ彛
-            finsystenant.edit(params).then(res => {
+            finsystenant.edit(params).then((res) => {
               if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
+                this.$message.success('淇濆瓨鎴愬姛锛�');
+                this.close();
+                this.$emit('search');
               } else {
-                this.$message.error('淇濆瓨澶辫触')
+                this.$message.error('淇濆瓨澶辫触');
               }
-            })
-          }else{
-            params.orgId = this.setting.orgId
-            finsystenant.add(params).then(res => {
+            });
+          } else {
+            params.orgId = this.setting.orgId;
+            finsystenant.add(params).then((res) => {
               if (res) {
-                this.$message.success('淇濆瓨鎴愬姛锛�')
-                this.close()
-                this.$emit('search')
+                this.$message.success('淇濆瓨鎴愬姛锛�');
+                this.close();
+                this.$emit('search');
               } else {
-                this.$message.error('淇濆瓨澶辫触')
+                this.$message.error('淇濆瓨澶辫触');
               }
-            })
+            });
           }
         } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��');
         }
-      })
-    }
-  }
-}
+      });
+    },
+  },
+};
 </script>

--
Gitblit v1.9.1