YLouie
2025-10-21 61fc2ef49c5f369c2db6eb3aad5a98c0ebe3fcbc
src/pages/production/twist/report/index.vue
@@ -17,7 +17,7 @@
        </template>
        <ProductionCard :data="cardAttr" :value="item" />
        <template #footer>
          <wd-button size="small" plain @click="toAttachment(item)" style="margin-right: 10px">
          <wd-button size="small" plain style="margin-right: 10px" @click="toAttachment(item)">
            附件
          </wd-button>
          <wd-button size="small" plain @click="toCheck(item.id)">自检</wd-button>
@@ -32,6 +32,15 @@
      </view>
      <TwistForm ref="twistFormRef" />
    </wd-popup>
    <wd-popup v-model="drawFormRef.visible" position="bottom" custom-class="yl-popup">
      <Draw
        :single-regulation-info-array="drawData.singleRegulationInfoArray"
        :steel-regulation-info-array="drawData.steelRegulationInfoArray"
        :reel-tooling-info="drawData.reelToolingInfo"
        :wire-id="drawData.wireId"
        @close="handleDrawClose"
      />
    </wd-popup>
    <wd-toast />
  </view>
</template>
@@ -41,14 +50,33 @@
import { useToast } from "wot-design-uni";
import ProductionCard from "../../components/ProductionCard.vue";
import { onLoad } from "@dcloudio/uni-app";
import { ref } from "vue";
import ManageApi from "@/api/product/manage";
import TwistApi from "@/api/product/twist";
import Draw from "./draw.vue";
const drawFormRef = reactive({
  visible: false,
});
// 处理draw组件关闭事件
const handleDrawClose = () => {
  // 确保弹窗被正确关闭
  drawFormRef.visible = false;
  console.log('Draw popup closed');
};
const pagingRef = ref();
const paramsId = ref();
const twistFormRef = ref();
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const drawData = ref({
  singleRegulationInfoArray: [],
  steelRegulationInfoArray: [],
  reelToolingInfo: {},
  wireId: "",
});
const cardAttr = ref<any[]>([
@@ -94,8 +122,13 @@
  dialog.visible = true;
};
const submit = () => {
  dialog.visible = twistFormRef.value.submit();
const submit = async () => {
  const isSuccess = await twistFormRef.value.submit();
  dialog.visible = !isSuccess; // 如果提交成功,关闭弹窗
  if (isSuccess) {
    // 提交成功后执行
    showDrawPopup();
  }
};
const cancel = () => {
@@ -113,7 +146,50 @@
  });
};
const showDrawPopup = async () => {
  try {
    const { data } = await TwistApi.querySingleDishInspection({
      id: paramsId.value,
    });
    console.log("领用信息数据:", data);
    // 适配不同的数据结构返回格式
    const responseData = data.data || data;
    if (responseData && responseData.singleWirePrePareInfoVo) {
      const info = responseData.singleWirePrePareInfoVo;
      drawData.value = {
        singleRegulationInfoArray: info.singleRegulationInfoArray || [],
        steelRegulationInfoArray: info.steelRegulationInfoArray || [],
        reelToolingInfo: info.reelToolingInfo || {},
        wireId: paramsId.value,
      };
      // 显示Draw弹窗
      drawFormRef.visible = true;
      toast.success("请填写领用信息!");
    } else {
      toast.error("已存在领用信息,无需填报!");
    }
  } catch (error) {
    console.error("获取领用信息失败:", error);
    toast.error("获取信息失败,请重试");
  }
};
const closeDrawPopup = () => {
  drawDialogVisible.value = false;
};
const handleSelfCheck = (id: string) => {
  console.log("执行自检操作,ID:", id);
  uni.showToast({
    title: "自检功能开发中",
    icon: "none",
  });
};
// 保留原有的confirm函数,用于其他地方调用
// const confirm = async () => {
//   await showDrawPopup();
// };
// 获取拉丝报工列表
const getTwistReportList = async () => {