spring
2025-11-19 1187936c713bae2ad43063900c7bee80502e091d
src/pages/production/detail/wireDetail.vue
@@ -9,16 +9,13 @@
        totalAmount: 'totalAmount',
        amount: 'amount',
        unAmount: 'unAmount',
        poleModel: 'poleModel',
        contractNo: 'contractNo',
      }"
    />
    <view class="mx-3">
      <wd-grid class="rounded-lg" clickable>
        <wd-grid-item
          icon="computer"
          link-type="navigateTo"
          :url="`/pages/production/wire/report/wire?id=${paramsId}&model=${cardData.model}&oneLength=${cardData.oneLength}`"
          text="报工"
        />
        <wd-grid-item icon="computer" @click="handleReportClick" text="报工" />
        <!-- <wd-grid-item
          icon="chart"
          text="自检"
@@ -46,6 +43,8 @@
import { onLoad } from "@dcloudio/uni-app";
import ProductCard from "@/components/product_card/index.vue";
import WireApi from "@/api/product/wire";
import { getPrepareId, setPrepareId, clearPrepareId } from "@/utils/cache";
import HomeApi from "@/api/home";
const paramsId = ref();
const cardData = reactive({
@@ -56,6 +55,9 @@
  amount: undefined,
  unAmount: undefined,
  oneLength: undefined,
  poleModel: undefined,
  contractNo: undefined,
  type: "拉丝",
});
const getDetailData = async (id: string) => {
@@ -69,11 +71,59 @@
  cardData.amount = data.amount;
  cardData.unAmount = data.unAmount;
  cardData.oneLength = data.oneLength;
  cardData.poleModel = data.poleModel;
  cardData.contractNo = data.contractNo;
  cardData.type = data.type || "拉丝";
};
onLoad((options: any) => {
// 获取并缓存生产准备ID
const initPrepareId = async () => {
  try {
    const { data } = await HomeApi.getIndex();
    if (data && data.prepareId) {
      setPrepareId(data.prepareId);
    } else {
      // 如果没有 prepareId,清空缓存
      clearPrepareId();
    }
  } catch (error) {
    console.error("获取生产准备ID失败:", error);
    // 获取失败时也清空缓存
    clearPrepareId();
  }
};
// 处理报工点击
const handleReportClick = () => {
  const prepareId = getPrepareId();
  console.log("拉丝表格报工检查 - prepareId值:", prepareId);
  // 如果prepareId为空或未定义,说明生产准备未完成
  if (!prepareId) {
    console.log("拉丝表格报工阻止 - 生产准备未完成");
    uni.showModal({
      title: "提示",
      content: "请在电脑端完成生产准备确认,再进行报工操作",
      showCancel: false,
      confirmText: "确定",
      success: () => {
        // 用户点击确定后,不做任何操作
      },
    });
    return;
  }
  // 如果有 prepareId,正常跳转
  uni.navigateTo({
    url: `/pages/production/wire/report/wire?id=${paramsId.value}&model=${cardData.model}&oneLength=${cardData.oneLength}`,
  });
};
onLoad(async (options: any) => {
  paramsId.value = options.id;
  getDetailData(options.id);
  await getDetailData(options.id);
  // 获取并缓存生产准备ID
  await initPrepareId();
});
</script>