spring
4 小时以前 a87c52ba861983052139295de5f78e00ae174051
src/pages/outbound/material.vue
@@ -44,7 +44,7 @@
                  <wd-icon name="folder" color="#0D867F"></wd-icon>
                </view>
                <text class="text-[#646874] mx-2">
                  待货数量:
                  待发货数量:
                  <text class="text-[#252525]">{{ item.shippedQuantity || 0 }}</text>
                </text>
              </view>
@@ -70,6 +70,16 @@
// 物料信息列表
const materialList = ref<any[]>([]);
// 安全解码(兼容后端已编码或未编码的情况)
const safeDecode = (val: any) => {
  if (typeof val !== "string") return val || "";
  try {
    return val.includes("%") ? decodeURIComponent(val) : val;
  } catch (e) {
    return val;
  }
};
// 点击某个物料,跳转到单独的出库页面
const toMaterialOutbound = (item: any) => {
@@ -108,15 +118,15 @@
    uni.hideLoading();
    if (code === 200 && data) {
      // 将接口返回的数据映射到 materialList
      // 将接口返回的数据映射到 materialList,并对可能被 URL 编码的字段做一次安全解码
      materialList.value = data.map((item: any) => ({
        materialcode: item.materialcode,
        materialname: item.materialname || "-",
        materialspec: item.materialspec || "-",
        materialcode: safeDecode(item.materialcode),
        materialname: safeDecode(item.materialname || "-"),
        materialspec: safeDecode(item.materialspec || "-"),
        shippedQuantity: item.nnum || 0,
        cdeliveryid: item.cdeliveryid,
        cdeliverybid: item.cdeliverybid,
        vsrccode: item.vsrccode,
        cdeliveryid: safeDecode(item.cdeliveryid),
        cdeliverybid: safeDecode(item.cdeliverybid),
        vsrccode: safeDecode(item.vsrccode),
      }));
    } else {
      toast.error(msg || "获取物料详情失败");