<template>
|
<view class="list">
|
<z-paging ref="pagingRef" v-model="twistReportList" :fixed="false" @query="getTwistReportList">
|
<template #top>
|
<CardTitle title="报工信息" :hideAction="true" :full="false" @action="addReport" />
|
</template>
|
<wd-card v-for="item in twistReportList" :key="item.id" type="rectangle" custom-class="round">
|
<template #title>
|
<view class="flex justify-between">
|
<view>
|
<wd-icon name="user" color="#0D867F"></wd-icon>
|
<text class="text-[#0D867F] ml-2 font-medium">生产人</text>
|
<text class="text-[#333333] ml-2">{{ item.productUser }}</text>
|
</view>
|
<view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
|
</view>
|
</template>
|
<ProductionCard :data="cardAttr" :value="item" />
|
<template #footer>
|
<wd-button size="small" plain style="margin-right: 10px" @click="toAttachment(item)">
|
附件
|
</wd-button>
|
<wd-button size="small" plain @click="handleSelfCheck(item.id)">自检</wd-button>
|
</template>
|
</wd-card>
|
</z-paging>
|
|
<wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
|
<view class="action px-3">
|
<wd-button type="text" @click="cancel">取消</wd-button>
|
<wd-button type="text" @click="submit">确定</wd-button>
|
</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>
|
<script setup lang="ts">
|
import CardTitle from "@/components/card-title/index.vue";
|
import TwistForm from "./form.vue";
|
import { useToast } from "wot-design-uni";
|
import ProductionCard from "../../components/ProductionCard.vue";
|
import { onLoad } from "@dcloudio/uni-app";
|
import { ref, reactive } 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;
|
};
|
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[]>([
|
{
|
label: "领用杆号",
|
prop: "poleNumber",
|
},
|
{
|
label: "杆重(kg)",
|
prop: "poleWeight",
|
},
|
{
|
label: "单丝盘号",
|
prop: "monofilamentNumber",
|
},
|
{
|
label: "实际重量(kg)",
|
prop: "actuallyWeight",
|
},
|
{
|
label: "盘长(m)",
|
prop: "oneLength",
|
},
|
{
|
label: "理论重量(kg)",
|
prop: "theoryWeight",
|
},
|
{
|
label: "规格型号",
|
prop: "model",
|
},
|
]);
|
|
const twistReportList = ref<any[]>([]);
|
|
const toEdit = () => {
|
uni.navigateTo({
|
url: "/pages/production/twist/report/edit",
|
});
|
};
|
|
const addReport = () => {
|
dialog.visible = true;
|
};
|
|
const submit = async () => {
|
const isSuccess = await twistFormRef.value.submit();
|
dialog.visible = !isSuccess; // 如果提交成功,关闭弹窗
|
if (isSuccess) {
|
// 提交成功后执行
|
showDrawPopup();
|
}
|
};
|
|
const cancel = () => {
|
toast.show("取消");
|
dialog.visible = false;
|
};
|
|
const toAttachment = (item: any) => {
|
uni.navigateTo({
|
url: "/pages/production/twist/attachment/index",
|
success: () => {
|
// 页面跳转成功后发送事件传递数据
|
uni.$emit("detailData", item);
|
},
|
});
|
};
|
|
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 handleSelfCheck = (id: string) => {
|
console.log("执行自检操作,ID:", id);
|
uni.showToast({
|
title: "自检功能开发中",
|
icon: "none",
|
});
|
};
|
|
// 保留原有的confirm函数,用于其他地方调用
|
// const confirm = async () => {
|
// await showDrawPopup();
|
// };
|
|
// 获取拉丝报工列表
|
const getTwistReportList = async () => {
|
const { data } = await ManageApi.getReportList({
|
wireId: paramsId.value,
|
type: "绞线",
|
});
|
pagingRef.value.complete(data);
|
};
|
|
onLoad((options: any) => {
|
paramsId.value = options.id;
|
});
|
</script>
|
|
<style lang="scss" scoped>
|
.list {
|
height: calc(100vh - 80px);
|
padding: 12px;
|
background: #f3f9f8;
|
|
:deep() {
|
.round {
|
border-radius: 4px;
|
}
|
}
|
}
|
|
.action {
|
display: flex;
|
justify-content: space-between;
|
}
|
</style>
|