Browse Source

feat: 盘点静态修复

liujt 3 weeks ago
parent
commit
06750de393

+ 86 - 38
src/views/warehouseManagement/stocktaking/plan/components/addInventoryDialog.vue

@@ -236,81 +236,104 @@
                   style="width: 100%"
                   :disabled="isBindPlan"
                   @change="dimensionChange"
-                  v-model="dimension"
+                  v-model="addForm.dimension"
                   placeholder="请选择维度"
                 >
                   <el-option label="物品维度" :value="1"> </el-option>
                   <el-option label="批次维度" :value="2"> </el-option>
+                  <el-option label="包装维度" :value="3"> </el-option>
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="16">
               <el-row :gutter="20">
                 <el-col :span="8">
-                  <el-form-item label="盘点范围" prop="name">
+                  <el-form-item label="盘点范围" prop="scope">
                     <el-select
                       style="width: 100%"
-                      v-model="addForm.autoOrder"
+                      v-model="addForm.scope"
                       class="w100"
                       placeholder="请选择"
                       :disabled="isBindPlan"
                       filterable
                     >
-                      <el-option :value="1" label="是"></el-option>
-                      <el-option :value="0" label="否"></el-option>
+                      <el-option :value="1" label="按仓库"></el-option>
+                      <el-option :value="2" label="按库区"></el-option>
+                      <el-option :value="3" label="按货架"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
-                <el-col :span="6">
-                  <el-form-item label-width="1px" label="" prop="name">
+                <el-col :span="5">
+                  <el-form-item label-width="1px" label="" prop="warehouseId">
                     <el-select
                       style="width: 100%"
-                      v-model="addForm.autoOrder"
+                      v-model="addForm.warehouseId"
                       class="w100"
-                      placeholder="选择"
+                      placeholder="选择仓库"
                       :disabled="isBindPlan"
                       filterable
+                      @change="changeWarehouse"
                     >
-                      <el-option :value="1" label="是"></el-option>
-                      <el-option :value="0" label="否"></el-option>
+                      <el-option v-for="item in warehouseList" :key="item.id" :value="item.id" :label="item.name"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
-                <el-col :span="6">
-                  <el-form-item label-width="1px" label="" prop="name">
+                <el-col :span="5" v-if="addForm.scope != 1">
+                  <el-form-item label-width="1px" label="" prop="areaId">
                     <el-select
                       style="width: 100%"
-                      v-model="addForm.autoOrder"
+                      v-model="addForm.areaId"
                       class="w100"
-                      placeholder="请选择"
+                      placeholder="选择库区"
+                      :disabled="isBindPlan"
+                      filterable
+                      @change="changeArea"
+                    >
+                      <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5" v-if="addForm.scope == 3">
+                  <el-form-item label-width="1px" label="" prop="shelfId">
+                    <el-select
+                      style="width: 100%"
+                      v-model="addForm.shelfId"
+                      class="w100"
+                      placeholder="选择货架"
                       :disabled="isBindPlan"
                       filterable
                     >
-                      <el-option :value="1" label="是"></el-option>
-                      <el-option :value="0" label="否"></el-option>
+                      <el-option v-for="item in shelfList" :key="item.id" :value="item.id" :label="item.goodsshelvesCode"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
               </el-row>
             </el-col>
             <el-col :span="6">
-              <el-form-item label="冻结策略" prop="autoOrder">
+              <el-form-item label="冻结策略" prop="strategy">
                 <el-select
-                  v-model="addForm.autoOrder"
-                  class="w100"
+                  v-model="addForm.strategy"
+                                   class="w100"
                   placeholder="请选择"
                   :disabled="isBindPlan"
                   filterable
                 >
-                  <el-option :value="1" label="是"></el-option>
-                  <el-option :value="0" label="否"></el-option>
+                  <el-option :value="1" label="库存快照(不锁库)"></el-option>
+                  <el-option :value="2" label="仓库锁"></el-option>
+                  <el-option :value="3" label="库区锁"></el-option>
+                  <el-option :value="4" label="货架锁"></el-option>
+                  <el-option :value="5" label="货位锁"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label-width="180px" label="是否允许新增“无账货”" prop="ruleId">
-                <el-select
-                  v-model="addForm.ruleId"
+              <el-form-item label-width="180px" label="是否允许新增“无账货”" prop="allowAddNoStock">
+                <el-radio-group v-model="allowAddNoStock">
+                  <el-radio :label="1">否</el-radio>
+                  <el-radio :label="2">是</el-radio>
+                </el-radio-group>
+                <!-- <el-select
+                  v-model="addForm.allowAddNoStock"
                   class="w100"
                   placeholder="请选择规则名称"
                   @change="change_ruleId"
@@ -324,7 +347,7 @@
                     :label="item.name"
                     @click.native="addForm.ruleName = item.name"
                   ></el-option>
-                </el-select>
+                </el-select> -->
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -539,6 +562,8 @@
         dialogVisible: false,
         wh_checkStatus: [], // 盘点类型
         warehouseList: [], // 盘点仓库
+        areaList: [], // 库区
+        shelfList: [], // 货架
         uerList: [], // 审核人
         executorList: [], // 执行人
         assetsType: null,
@@ -564,12 +589,19 @@
           executorName: '', // 执行人name
           lockWarehouse: 1, // 是否锁库盘点
           urgent: '1', // 紧急程度
-          warehouseId: '', // 盘点仓库Id
+          // warehouseId: '', // 盘点仓库Id
           autoOrder: 1, // 是否自动派单
           remark: '', // 备注
           approvalUserId: '', // 审核人Id
           approvalUserName: '', // 审核人name
-          executorDuration: 0 // 盘点时长
+          executorDuration: 0, // 盘点时长
+          scope: 1, // 盘点范围
+          dimension: 2, // 盘点维度1物品 2批次 3包装
+          warehouseId: '', // 盘点仓库Id
+          areaId: '', // 库区Id
+          shelfId: '', // 货架Id
+          strategy: 1, // 盘点策略
+          allowAddNoStock: 1 // 是否允许新增“无账货”
         },
         rules: {
           code: [
@@ -734,17 +766,26 @@
       // 仓库选择
       changeWarehouse(val) {
         if (val) {
-          this.addForm.warehouseId = val;
-          this.addForm.warehouseName = this.warehouseList.filter(
-            (item) => item.id === val
-          )[0].name;
-          this.productList = [];
-          getCategoryLevelIdByWarehouseId({ warehouseId: val }).then((data) => {
-            console.log(data);
-            this.productType = Array.from(new Set(data));
-          });
+          // this.addForm.warehouseId = val;
+          // this.addForm.warehouseName = this.warehouseList.filter(
+          //   (item) => item.id === val
+          // )[0].name;
+          // this.productList = [];
+          // getCategoryLevelIdByWarehouseId({ warehouseId: val }).then((data) => {
+          //   console.log(data);
+          //   this.productType = Array.from(new Set(data));
+          // });
+          this.getAreaList();
         }
       },
+      changeArea(val) {
+        this.getShelfList(val);
+      },
+      async getShelfList() {
+        const rep = await warehouseDefinition.getListByAreaId(this.addForm.areaId);
+        this.shelfList = rep || [];
+        console.log('getShelfList~~~', this.shelfList);
+      },
       // 关闭弹窗
       handleClose() {
         this.dialogVisible = false;
@@ -772,12 +813,19 @@
 
       // 封装 - 获取盘点仓库
       async _getWarehouse() {
-        const res = await getWarehouseList({});
+        const res = await getWarehouseList({status: 1});
+        console.log('_getWarehouse~~', res);
         this.warehouseList = res.map((item) => {
           return { ...item};
         });
       },
 
+      async getAreaList() {
+        const res = await warehouseDefinition.getListByWarehouseId(this.addForm.warehouseId);
+        console.log('getAreaList~~~', res);
+        this.areaList = res || [];
+      },
+
       //选择部门(搜索)
       searchDeptNodeClick(info, row) {
         console.log(info);

+ 96 - 34
src/views/warehouseManagement/stocktaking/plan/components/assignDialog.vue

@@ -29,57 +29,94 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="盘点精度" prop="name">
-                <el-input
+              <el-form-item label="盘点精度" prop="dimension">
+                <el-select
+                  style="width: 100%"
                   disabled
-                  v-model="formData.name"
-                  placeholder="请输入"
-                ></el-input>
+                  v-model="formData.dimension"
+                  placeholder="请选择维度"
+                >
+                  <el-option label="物品维度" :value="1"> </el-option>
+                  <el-option label="批次维度" :value="2"> </el-option>
+                  <el-option label="包装维度" :value="3"> </el-option>
+                </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="冻结策略" prop="name">
-                <el-input
+              <el-form-item label="冻结策略" prop="strategy">
+                <el-select
+                  v-model="formData.strategy"
+                  class="w100"
+                  placeholder="请选择"
                   disabled
-                  v-model="formData.name"
-                  placeholder="请输入"
-                ></el-input>
+                  filterable
+                >
+                  <el-option :value="1" label="库存快照(不锁库)"></el-option>
+                  <el-option :value="2" label="仓库锁"></el-option>
+                  <el-option :value="3" label="库区锁"></el-option>
+                  <el-option :value="4" label="货架锁"></el-option>
+                  <el-option :value="5" label="货位锁"></el-option>
+                </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
               <el-form-item label="仓库" prop="warehouseName">
-                <el-input
-                  disabled
-                  v-model="formData.warehouseName"
-                  placeholder="请输入"
-                ></el-input>
+                <!-- <el-select
+                      style="width: 100%"
+                      v-model="formData.warehouseId"
+                      class="w100"
+                      placeholder="选择仓库"
+                      disabled
+                      filterable
+                    >
+                      <el-option v-for="item in warehouseList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                    </el-select> -->
+                    <el-input
+                      disabled
+                      v-model="formData.warehouseName"
+                      placeholder="请输入"
+                    ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="库区" prop="warehouseName">
-                <el-input
-                  disabled
-                  v-model="formData.warehouseName"
-                  placeholder="请输入"
-                ></el-input>
+              <el-form-item label="库区" prop="areaId">
+                <el-select
+                      style="width: 100%"
+                      v-model="formData.areaId"
+                      class="w100"
+                      placeholder="选择库区"
+                      filterable
+                      @change="changeArea"
+                    >
+                      <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+                    </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="货架" prop="warehouseName">
-                <el-input
-                  disabled
-                  v-model="formData.warehouseName"
-                  placeholder="请输入"
-                ></el-input>
+              <el-form-item label="货架" prop="shelfId">
+                <el-select
+                      style="width: 100%"
+                      v-model="formData.shelfId"
+                      class="w100"
+                      placeholder="选择货架"
+                      filterable
+                      @change="changeShelf"
+                    >
+                      <el-option v-for="item in shelfList" :key="item.id" :value="item.id" :label="item.goodsshelvesCode"></el-option>
+                    </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="货位" prop="warehouseName">
-                <el-input
-                  disabled
-                  v-model="formData.warehouseName"
-                  placeholder="请输入"
-                ></el-input>
+              <el-form-item label="货位" prop="locationId">
+                <el-select
+                      style="width: 100%"
+                      v-model="formData.locationId"
+                      class="w100"
+                      placeholder="选择货位"
+                      filterable
+                    >
+                      <el-option v-for="item in locationList" :key="item.id" :value="item.id" :label="item.locationCode"></el-option>
+                    </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -252,13 +289,38 @@
         rules: {
           executeGroupId: [{ required: true, message: '请选择执行部门', trigger: 'blur' }],
           executorId: [{ required: true, message: '请选择执行人员', trigger: 'blur' }],
-        }
+        },
+        warehouseList: [], // 盘点仓库
+        areaList: [], // 库区
+        shelfList: [], // 货架
+        locationList: [], // 货位
       };
     },
     created() {
       this.getFieldModel();
     },
     methods: {
+      async getAreaList() {
+        const res = await warehouseDefinition.getListByWarehouseId(this.formData.warehouseId);
+        console.log('getAreaList~~~', res);
+        this.areaList = res || [];
+      },
+      async getShelfList() {
+        const rep = await warehouseDefinition.getListByAreaId(this.formData.areaId);
+        this.shelfList = rep || [];
+        console.log('getShelfList~~~', this.shelfList);
+      },
+      async getLocationList() {
+        const rep = await warehouseDefinition.getListByGoodId(this.formData.shelfId);
+        this.locationList = rep || [];
+        console.log('getLocationList~~~', this.locationList);
+      },
+      changeArea(val) {
+        this.getShelfList();
+      },
+      changeShelf(val) {
+        this.getLocationList();
+      },
       executorChange(val) {
         this.formData.executorName = this.executorList.filter(
           (item) => item.id == val