gongchunyi
4 小时以前 0f30fb5488c0d642e13418ac15f38efda17e08de
fix: 库存管理接口调整,产品大类下拉只显示对应的子类
已修改2个文件
65 ■■■■ 文件已修改
src/api/inventoryManagement/stockInventory.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/Qualified.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockInventory.js
@@ -2,7 +2,7 @@
// 分页查询库存记录列表
export const getStockInventoryListPage = (params) => {
    return request({
        url: "/stockInventory/pagestockInventory",
        url: "/stockInventory/pageListCombinedStockInventory",
        method: "get",
        params,
    });
src/views/inventoryManagement/stockManagement/Qualified.vue
@@ -10,7 +10,7 @@
          clearable
          filterable
          check-strictly
          :data="productOptions"
          :data="displayProductOptions"
          :render-after-expand="false"
          @change="handleParentChange"
        />
@@ -48,25 +48,25 @@
        <el-table-column label="规格型号" prop="model" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" show-overflow-tooltip />
        <el-table-column label="合格库存数量" prop="qualifiedQuantity" show-overflow-tooltip>
          <template #default="scope">{{ scope.row.qualifiedQuantity ?? scope.row.qualitity ?? scope.row.unLockedQuantity ?? 0 }}</template>
          <template #default="scope">{{ getQualifiedStock(scope.row) }}</template>
        </el-table-column>
        <el-table-column label="不合格库存数量" prop="unqualifiedQuantity" show-overflow-tooltip>
          <template #default="scope">{{ scope.row.unqualifiedQuantity ?? 0 }}</template>
          <template #default="scope">{{ getUnqualifiedStock(scope.row) }}</template>
        </el-table-column>
        <el-table-column label="合格冻结数量" prop="qualifiedLockedQuantity" show-overflow-tooltip>
          <template #default="scope">{{ scope.row.qualifiedLockedQuantity ?? scope.row.lockedQuantity ?? 0 }}</template>
          <template #default="scope">{{ getQualifiedLockedStock(scope.row) }}</template>
        </el-table-column>
        <el-table-column label="不合格冻结数量" prop="unqualifiedLockedQuantity" show-overflow-tooltip>
          <template #default="scope">{{ scope.row.unqualifiedLockedQuantity ?? 0 }}</template>
          <template #default="scope">{{ getUnqualifiedLockedStock(scope.row) }}</template>
        </el-table-column>
        <el-table-column label="库存预警数量" prop="warnNum" show-overflow-tooltip />
        <el-table-column label="备注" prop="remark"  show-overflow-tooltip />
        <el-table-column label="最近更新时间" prop="updateTime" show-overflow-tooltip />
        <el-table-column fixed="right" label="操作" min-width="90" align="center">
          <template #default="scope">
            <el-button link type="primary" @click="showSubtractModal(scope.row)" :disabled="scope.row.unLockedQuantity === 0">领用</el-button>
            <el-button link type="primary" v-if="scope.row.unLockedQuantity > 0" @click="showFrozenModal(scope.row)">冻结</el-button>
            <el-button link type="primary" v-if="scope.row.lockedQuantity > 0" @click="showThawModal(scope.row)">解冻</el-button>
            <el-button link type="primary" @click="showSubtractModal(scope.row)" :disabled="getQualifiedUnLockedStock(scope.row) <= 0">领用</el-button>
            <el-button link type="primary" v-if="getQualifiedUnLockedStock(scope.row) > 0" @click="showFrozenModal(scope.row)">冻结</el-button>
            <el-button link type="primary" v-if="getQualifiedLockedStock(scope.row) > 0" @click="showThawModal(scope.row)">解冻</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -101,7 +101,7 @@
<script setup>
import pagination from '@/components/PIMTable/Pagination.vue'
import { ref, reactive, toRefs, onMounted, getCurrentInstance, watch } from 'vue'
import { ref, reactive, toRefs, onMounted, getCurrentInstance, watch, computed } from 'vue'
import {ElMessage, ElMessageBox} from "element-plus";
import { getStockInventoryListPage } from "@/api/inventoryManagement/stockInventory.js";
import { modelList, productTreeList } from "@/api/basicData/product.js";
@@ -147,6 +147,12 @@
})
const { searchForm } = toRefs(data)
const displayProductOptions = computed(() => {
  if (!props.parentId) return productOptions.value
  const currentParentNode = findNodeById(productOptions.value, props.parentId)
  return Array.isArray(currentParentNode?.children) ? currentParentNode.children : []
})
// 查询列表
/** 搜索按钮操作 */
const handleQuery = () => {
@@ -160,11 +166,12 @@
}
const getList = () => {
  tableLoading.value = true
  const queryParentId = searchForm.value.parentId || props.parentId
  const queryParentId = props.parentId || searchForm.value.parentId
  getStockInventoryListPage({
    ...searchForm.value,
    ...page,
    parentId: queryParentId,
    topParentProductId: queryParentId,
    productName: searchForm.value.productName,
    model: searchForm.value.model,
  }).then(res => {
    tableLoading.value = false
    tableData.value = res.data.records
@@ -270,9 +277,34 @@
}
const expandedRowKeys = ref([])
const toNumber = (value) => {
  const num = Number(value)
  return Number.isFinite(num) ? num : 0
}
const getQualifiedStock = (row) => {
  return toNumber(row?.qualifiedQuantity ?? row?.qualitity ?? row?.unLockedQuantity)
}
const getUnqualifiedStock = (row) => {
  return toNumber(row?.unQualifiedQuantity ?? row?.unqualifiedQuantity ?? row?.unQualifiedUnLockedQuantity ?? row?.unqualifiedUnLockedQuantity)
}
const getQualifiedLockedStock = (row) => {
  return toNumber(row?.qualifiedLockedQuantity ?? row?.lockedQuantity)
}
const getUnqualifiedLockedStock = (row) => {
  return toNumber(row?.unQualifiedLockedQuantity ?? row?.unqualifiedLockedQuantity)
}
const getQualifiedUnLockedStock = (row) => {
  return toNumber(row?.qualifiedUnLockedQuantity ?? row?.unLockedQuantity ?? row?.qualifiedQuantity ?? row?.qualitity)
}
// 表格行类名
const tableRowClassName = ({ row }) => {
  const stock = Number(row?.unLockedQuantity ?? 0);
  const stock = getQualifiedUnLockedStock(row);
  const warn = Number(row?.warnNum ?? 0);
  if (!Number.isFinite(stock) || !Number.isFinite(warn)) {
    return '';
@@ -304,10 +336,11 @@
watch(
  () => props.parentId,
  async () => {
    searchForm.value.parentId = props.parentId
    searchForm.value.parentId = undefined
    searchForm.value.productName = ''
    searchForm.value.productModelId = undefined
    searchForm.value.model = ''
    await loadModelOptions(props.parentId)
    await loadModelOptions(undefined)
    handleQuery()
  },
  { immediate: true }