Explorar o código

fix: 锁库问题解决

tzx hai 2 días
pai
achega
63c69e7081

+ 10 - 0
src/api/warehouseManagement/index.js

@@ -664,6 +664,16 @@ export default {
     }
     return Promise.reject(new Error(res.data.message));
   },
+  //库存台账-锁库明细(点击锁库数量)
+  getLockDetail: async (data) => {
+    const res = await request.get('/wms/lockOrder/v1/lock-detail', {
+      params: data
+    });
+    if (res.data.code == 0) {
+      return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.message));
+  },
   // 解锁提交
   submitUnlock: async (data) => {
     const res = await request.post('/bpm/inventoryUnlockApprove/submit', data);

+ 21 - 0
src/views/warehouseManagement/stockLedger/components/item-list.vue

@@ -173,6 +173,19 @@
         <el-link type="primary" @click="openQRCode(row, 3)"> 查看 </el-link>
       </template>
 
+      <!-- 锁定数量:点击查看锁库详情 -->
+      <template v-slot:lockQuantity="{ row }">
+        <el-link
+          v-if="Number(row.lockQuantity) > 0"
+          type="primary"
+          :underline="false"
+          @click="showLockDetail(row)"
+        >
+          {{ row.lockQuantity }}
+        </el-link>
+        <span v-else>{{ row.lockQuantity || 0 }}</span>
+      </template>
+
       <template v-slot:areaName="{ row }">
         <el-link type="primary" @click="openUploadDetail(row, 'list')">
           查看
@@ -255,6 +268,7 @@
     />
     <unlockModal ref="unlockModalRef"></unlockModal>
     <BatchChangeDialog ref="batchChangeRef" @success="reload" />
+    <lockDetailDialog ref="lockDetailDialogRef" />
   </div>
 </template>
 
@@ -287,6 +301,7 @@
   import exportButton from '@/components/upload/exportButton.vue';
   import printQRCode from '@/views/warehouseManagement/stockManagement/components/printQRCode.vue';
   import unlockModal from '@/views/warehouseManagement/unlockApplication/components/unlockModal.vue';
+  import lockDetailDialog from './lockDetailDialog.vue';
   import BatchChangeDialog from './BatchChangeDialog.vue';
   import stockBatchChange from '@/api/warehouseManagement/stockBatchChange';
 
@@ -301,6 +316,7 @@
       printQRCode,
       ItemListed,
       unlockModal,
+      lockDetailDialog,
       BatchChangeDialog
     },
     props: {
@@ -465,6 +481,7 @@
           {
             prop: 'lockQuantity',
             label: '锁定数量',
+            slot: 'lockQuantity',
             align: 'center',
             showOverflowTooltip: true
           },
@@ -779,6 +796,10 @@
       openUploadDetail(row, type) {
         this.$refs.itemListedRef.open(row, type, 'detail', this.selectedDime);
       },
+      // 查看锁库详情(客户名称、订单号等)
+      showLockDetail(row) {
+        this.$refs.lockDetailDialogRef.open(row);
+      },
       openQRCode(row, type) {
         this.$refs.printQRCodeRef.open(row, type);
       },

+ 161 - 0
src/views/warehouseManagement/stockLedger/components/lockDetailDialog.vue

@@ -0,0 +1,161 @@
+<template>
+  <ele-modal
+    title="锁库详情"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    width="75%"
+    :maxable="true"
+  >
+    <el-card shadow="never">
+      <el-descriptions :column="3">
+        <el-descriptions-item label="物品编码">{{
+          formData.categoryCode || '-'
+        }}</el-descriptions-item>
+        <el-descriptions-item label="物品名称">{{
+          formData.categoryName || '-'
+        }}</el-descriptions-item>
+        <el-descriptions-item label="批次号">{{
+          formData.batchNo || '-'
+        }}</el-descriptions-item>
+      </el-descriptions>
+      <div style="margin-top: 12px">
+        <ele-pro-table
+          ref="eleTable"
+          :columns="columns"
+          :datasource="detailList"
+          height="calc(100vh - 460px)"
+          full-height="calc(100vh - 116px)"
+          tool-class="ele-toolbar-form"
+          :needPage="false"
+          :initLoad="false"
+        >
+          <template v-slot:sourceType="{ row }">
+            <span>{{ LockOrderSourceTypeEnum[row.sourceType] || '-' }}</span>
+          </template>
+          <template v-slot:status="{ row }">
+            <span>{{ lockStatusEnum[row.status] || '-' }}</span>
+          </template>
+        </ele-pro-table>
+      </div>
+    </el-card>
+  </ele-modal>
+</template>
+<script>
+  import storageApi from '@/api/warehouseManagement';
+  export default {
+    data() {
+      return {
+        visible: false,
+        formData: {},
+        detailList: [],
+        loading: false,
+        columns: [
+          {
+            columnKey: 'index',
+            type: 'index',
+            width: 50,
+            align: 'center',
+            label: '序号',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'orderNo',
+            label: '锁库单号',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'sourceOrderNo',
+            label: '订单号',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'sourceType',
+            label: '单据类型',
+            slot: 'sourceType',
+            align: 'center',
+            width: 110
+          },
+          {
+            prop: 'customerName',
+            label: '客户名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 160
+          },
+          {
+            prop: 'quantity',
+            label: '锁定数量',
+            align: 'center',
+            width: 110
+          },
+          {
+            prop: 'status',
+            label: '锁定状态',
+            slot: 'status',
+            align: 'center',
+            width: 100
+          },
+          {
+            prop: 'orderDate',
+            label: '锁库时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            width: 160
+          }
+        ],
+        LockOrderSourceTypeEnum: {
+          0: '无定义',
+          1: '销售发货单',
+          2: '领料出库单',
+          3: '调拨出库单',
+          4: '销售订单'
+        },
+        lockStatusEnum: {
+          1: '锁定中',
+          2: '已扣减',
+          3: '已释放'
+        }
+      };
+    },
+    methods: {
+      async open(row) {
+        this.visible = true;
+        this.formData = row || {};
+        this.detailList = [];
+        await this.loadData();
+      },
+      async loadData() {
+        const row = this.formData || {};
+        const params = {
+          pageNum: 1,
+          size: 999,
+          productId: row.categoryId,
+          productCode: row.categoryCode,
+          batchNo: row.batchNo,
+          systemBatchNo: row.systemBatchNo,
+          warehouseId: row.warehouseId
+        };
+        try {
+          this.loading = true;
+          const res = await storageApi.getLockDetail(params);
+          this.detailList = res || [];
+        } catch (e) {
+          this.detailList = [];
+        } finally {
+          this.loading = false;
+        }
+      },
+      handleClose() {
+        this.visible = false;
+      }
+    }
+  };
+</script>