gongchunyi
2 天以前 515d02b5945ab23527d8ef9ac5d467b0f619412e
src/views/inventoryManagement/stockManagement/index.vue
@@ -25,6 +25,12 @@
          </div>
          <div>
            <el-button @click="handleOut">导出</el-button>
            <el-button type="danger"
                       plain
                       @click="handleFrozenFinished">冻结</el-button>
            <el-button type="success"
                       plain
                       @click="handleThawFinished">解冻</el-button>
            <!--            <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
          </div>
        </div>
@@ -49,36 +55,38 @@
                             width="60" />
            <el-table-column label="入库日期"
                             prop="createTime"
                             width="100"
                             show-overflow-tooltip />
            <el-table-column label="销售合同号"
                             prop="salesContractNo"
                             width="120">
              <template #default="scope">
                {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') || '-' }}
              </template>
            </el-table-column>
            <el-table-column label="产品名称"
                             prop="productName"
                             width="180"
                             show-overflow-tooltip />
            <el-table-column label="产品大类"
                             prop="productCategory"
                             show-overflow-tooltip />
            <el-table-column label="规格型号"
                             prop="specificationModel"
            <el-table-column label="产品规格"
                             prop="model"
                             show-overflow-tooltip />
            <el-table-column label="单位"
                             prop="unit"
                             width="80"
                             show-overflow-tooltip />
            <el-table-column label="已出库数量"
                             prop="totalInboundNum"
                             width="100"
                             prop="outboundNum"
                             show-overflow-tooltip />
            <el-table-column label="剩余库存"
                             prop="inboundNum0"
                             width="100"
                             prop="stockQuantity"
                             show-overflow-tooltip />
            <el-table-column label="单价(元)"
                             prop="unitPrice"
                             width="150"></el-table-column>
            <el-table-column label="总价(元)"
                             prop="totalPrice"
                             width="150"></el-table-column>
            <el-table-column label="状态"
                             align="center"
                             prop="isFrozen"
                             width="100">
              <template #default="scope">
                <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
                  {{ scope.row.isFrozen ? '已冻结' : '正常' }}
                </el-tag>
              </template>
            </el-table-column>
            <!-- <el-table-column fixed="right" label="操作" min-width="60" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button>
@@ -116,6 +124,12 @@
          </div>
          <div>
            <el-button @click="handleOut">导出</el-button>
            <el-button type="danger"
                       plain
                       @click="handleFrozen">冻结</el-button>
            <el-button type="success"
                       plain
                       @click="handleThaw">解冻</el-button>
            <!--           <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
          </div>
        </div>
@@ -140,8 +154,12 @@
                             width="60" />
            <el-table-column label="入库日期"
                             prop="createTime"
                             width="100"
                             show-overflow-tooltip />
                             width="120"
                             show-overflow-tooltip>
              <template #default="scope">
                {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') || '-' }}
              </template>
            </el-table-column>
            <el-table-column label="采购合同号"
                             prop="purchaseContractNumber"
                             width="180"
@@ -168,6 +186,16 @@
            <el-table-column label="含税总价(元)"
                             prop="taxInclusiveTotalPrice"
                             width="150"></el-table-column>
            <el-table-column label="状态"
                             align="center"
                             prop="isFrozen"
                             width="100">
              <template #default="scope">
                <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
                  {{ scope.row.isFrozen ? '已冻结' : '正常' }}
                </el-tag>
              </template>
            </el-table-column>
          </el-table>
          <pagination v-show="total > 0"
                      :total="total"
@@ -203,7 +231,11 @@
  import {
    getStockManagePage,
    getStockManagePageByProduction,
    delStockManage,
    delStockManage, getStockManageProduction,
    frozenQuality,
    thawQuality,
    frozenFinishedQuality,
    thawFinishedQuality,
  } from "@/api/inventoryManagement/stockManage.js";
  import {
    updateManagement,
@@ -337,7 +369,7 @@
    const params = buildQueryParams();
    const apiCall =
      activeTab.value === "production"
        ? getStockManagePageByProduction(params)
        ? getStockManageProduction(params)
        : getStockManagePage(params);
    apiCall
      .then(res => {
@@ -345,28 +377,28 @@
        tableData.value = res.data.records;
        // 为表格数据自动计算总价
        tableData.value = tableData.value.map(item => {
          // 计算剩余库存
          const stockQuantity = parseFloat(item.inboundNum) || 0;
          const outboundQuantity = parseFloat(item.totalInboundNum) || 0;
          const remainingStock = Math.max(stockQuantity - outboundQuantity, 0);
          // 根据标签页类型计算总价
          if (activeTab.value === "production") {
            // 成品库存:总价 = 单价 × 剩余库存
            const unitPrice = parseFloat(item.unitPrice) || 0;
            item.totalPrice = (unitPrice * remainingStock).toFixed(2);
          } else if (activeTab.value === "purchase") {
            // 原料库存:含税总价 = 含税单价 × 剩余库存
            const taxInclusiveUnitPrice =
              parseFloat(item.taxInclusiveUnitPrice) || 0;
            item.taxInclusiveTotalPrice = (
              taxInclusiveUnitPrice * remainingStock
            ).toFixed(2);
          }
          return item;
        });
        // tableData.value = tableData.value.map(item => {
        //   // 计算剩余库存
        //   const stockQuantity = parseFloat(item.inboundNum) || 0;
        //   const outboundQuantity = parseFloat(item.totalInboundNum) || 0;
        //   const remainingStock = Math.max(stockQuantity - outboundQuantity, 0);
        //
        //   // 根据标签页类型计算总价
        //   if (activeTab.value === "production") {
        //     // 成品库存:总价 = 单价 × 剩余库存
        //     const unitPrice = parseFloat(item.unitPrice) || 0;
        //     item.totalPrice = (unitPrice * remainingStock).toFixed(2);
        //   } else if (activeTab.value === "purchase") {
        //     // 原料库存:含税总价 = 含税单价 × 剩余库存
        //     const taxInclusiveUnitPrice =
        //       parseFloat(item.taxInclusiveUnitPrice) || 0;
        //     item.taxInclusiveTotalPrice = (
        //       taxInclusiveUnitPrice * remainingStock
        //     ).toFixed(2);
        //   }
        //
        //   return item;
        // });
        total.value = res.data.total;
        // 数据加载完成后检查库存
@@ -538,6 +570,108 @@
        proxy.$modal.msg("已取消");
      });
  };
  // 冻结
  const handleFrozen = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
      ids = selectedRows.value.map(item => item.salesLedgerProductId);
    } else {
      proxy.$modal.msgWarning("请选择数据");
      return;
    }
    ElMessageBox.confirm("选中的内容将被标记为不合格产品并冻结,是否确认?", "警告", {
      confirmButtonText: "确认",
      cancelButtonText: "取消",
      type: "warning",
    })
      .then(() => {
        frozenQuality(ids).then(res => {
          proxy.$modal.msgSuccess("操作成功");
          getList();
        });
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
      });
  };
  // 原料解冻
  const handleThaw = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
      ids = selectedRows.value.map(item => item.id);
    } else {
      proxy.$modal.msgWarning("请选择数据");
      return;
    }
    ElMessageBox.confirm("选中的内容将被解冻,是否确认?", "提示", {
      confirmButtonText: "确认",
      cancelButtonText: "取消",
      type: "success",
    })
      .then(() => {
        thawQuality(ids).then(res => {
          proxy.$modal.msgSuccess("操作成功");
          getList();
        });
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
      });
  };
  // 成品冻结
  const handleFrozenFinished = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
      ids = selectedRows.value.map(item => item.productId);
    } else {
      proxy.$modal.msgWarning("请选择数据");
      return;
    }
        console.log(ids);
    ElMessageBox.confirm("选中的内容将被标记为不合格产品并冻结,是否确认?", "警告", {
      confirmButtonText: "确认",
      cancelButtonText: "取消",
      type: "warning",
    })
      .then(() => {
        frozenFinishedQuality(ids).then(res => {
          proxy.$modal.msgSuccess("操作成功");
          getList();
        });
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
      });
  };
  // 成品解冻
  const handleThawFinished = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
      ids = selectedRows.value.map(item => item.productId);
    } else {
      proxy.$modal.msgWarning("请选择数据");
      return;
    }
    console.log(ids);
    ElMessageBox.confirm("选中的内容将被解冻,是否确认?", "提示", {
      confirmButtonText: "确认",
      cancelButtonText: "取消",
      type: "success",
    })
      .then(() => {
        thawFinishedQuality(ids).then(res => {
          proxy.$modal.msgSuccess("操作成功");
          getList();
        });
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
      });
  };
  // 删除
  const handleDelete = () => {
    let ids = [];