Browse Source

盘点管理

chris 3 years ago
parent
commit
4326cb77d4
2 changed files with 92 additions and 6 deletions
  1. 16 0
      src/api/warehouse.js
  2. 76 6
      src/views/modules/warehouse/inventory-detail.vue

+ 16 - 0
src/api/warehouse.js

@@ -195,3 +195,19 @@ export function getInventoryDetail (params) {
     params
   })
 }
+// 开始盘点
+export function beginInventory (data) {
+  return request({
+    url: request.adornUrl(`/biz-service/inventory-checking-ctl/startInventory`),
+    method: 'post',
+    data
+  })
+}
+// 盘点完成
+export function finishInventory (data) {
+  return request({
+    url: request.adornUrl(`/biz-service/inventory-checking-ctl/inventoryComplete`),
+    method: 'post',
+    data
+  })
+}

+ 76 - 6
src/views/modules/warehouse/inventory-detail.vue

@@ -86,12 +86,14 @@
           prop="materialName"
           header-align="center"
           align="center"
+          min-width="160"
           label="物品名称">
         </el-table-column>
         <el-table-column
           prop="specifications"
           header-align="center"
           align="center"
+          min-width="160"
           label="规格">
         </el-table-column>
         <el-table-column
@@ -110,7 +112,11 @@
           prop="inventoryCnt"
           header-align="center"
           align="center"
+          min-width="160"
           label="请选择数量">
+          <template slot-scope="scope">
+            <el-input-number v-model="scope.row.inventoryCnt" :disabled="display" :step="1" :min="1" style="width: 140px;"/>
+          </template>
         </el-table-column>
         <el-table-column
           prop="inventoryState"
@@ -118,6 +124,24 @@
           align="center"
           label="盘库状态">
         </el-table-column>
+        <el-table-column
+          prop="materialState"
+          header-align="center"
+          align="center"
+          :formatter="formatMs"
+          label="物品状态">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="finish(scope.row)">完成</el-button>
+            <el-button type="text" size="small" @click="begin(scope.row)">开始盘点</el-button>
+          </template>
+        </el-table-column>
       </el-table>
       <el-pagination
         @size-change="sizeChangeHandle"
@@ -129,15 +153,11 @@
         layout="total, sizes, prev, pager, next, jumper">
       </el-pagination>
     </el-form>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
-      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
-    </span>
   </el-dialog>
 </template>
 
 <script>
-  import {getInventoryDetail, getWarehouseList, getShelveList} from '@/api/warehouse'
+  import {getInventoryDetail, getWarehouseList, getShelveList, beginInventory, finishInventory} from '@/api/warehouse'
   export default {
     name: 'inventory-detail',
     data () {
@@ -156,7 +176,17 @@
         dataForm: {},
         dataForm1: {},
         dataRule: {
-        }
+        },
+        optionsMs: [
+          {
+            code: '0',
+            value: '正常'
+          },
+          {
+            code: '1',
+            value: '盘点中'
+          }
+        ]
       }
     },
     methods: {
@@ -295,6 +325,46 @@
             })
           }
         })
+      },
+      // 完成盘点
+      async finish (row) {
+        let params = {
+          'recordId': this.id,
+          'cnt': row.inventoryCnt,
+          'materialId': row.materialId,
+          'inventoryState': row.inventoryState
+        }
+        await finishInventory(params).then(({data}) => {
+          if (data && data.code === '200') {
+            this.$message.success('成功')
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      },
+      // 开始盘点
+      async begin (row) {
+        let params = {
+          'materialId': row.materialId,
+          'recordId': this.id
+        }
+        await beginInventory(params).then(({data}) => {
+          if (data && data.code === '200') {
+            this.getDataList()
+            this.$message.success('成功')
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      },
+      // 物品状态转换
+      formatMs (row) {
+        for (let i = 0; i < this.optionsMs.length; i++) {
+          if (this.optionsMs[i].code === row.materialState) {
+            this.getDataList()
+            return this.optionsMs[i].value
+          }
+        }
       }
     }
   }