| | |
| | | <template> |
| | | <view class="page pt-2"> |
| | | <z-paging ref="paging" refresher-only class="list"> |
| | | <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, index) in 6" type="rectangle" custom-class="round"> |
| | | <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">方兆玉</text> |
| | | <text class="text-[#333333] ml-2">{{ item.productUser }}</text> |
| | | </view> |
| | | <view class="text-[#A8A8A8]" @click="toEdit">编辑</view> |
| | | </view> |
| | | </template> |
| | | <ProductionCard :data="cardAttr" /> |
| | | <ProductionCard :data="cardAttr" :value="item" /> |
| | | <template #footer> |
| | | <wd-button size="small" plain @click="toCheck">自检</wd-button> |
| | | <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> |
| | | <wd-loadmore custom-class="loadmore" state="loading" /> |
| | | </z-paging> |
| | | |
| | | <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup"> |
| | |
| | | <wd-button type="text" @click="cancel">取消</wd-button> |
| | | <wd-button type="text" @click="submit">确定</wd-button> |
| | | </view> |
| | | <TwistForm /> |
| | | <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> |
| | |
| | | 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: "合同号", |
| | | value: "ht2921246", |
| | | label: "领用杆号", |
| | | prop: "poleNumber", |
| | | }, |
| | | { |
| | | label: "状态", |
| | | value: "-----", |
| | | label: "杆重(kg)", |
| | | prop: "poleWeight", |
| | | }, |
| | | { |
| | | label: "客户名称", |
| | | value: "夏志豪", |
| | | label: "单丝盘号", |
| | | prop: "monofilamentNumber", |
| | | }, |
| | | { |
| | | label: "机台", |
| | | value: "-----", |
| | | }, |
| | | { |
| | | label: "规格型号", |
| | | value: "2921246", |
| | | }, |
| | | { |
| | | label: "已生产数量", |
| | | value: "0", |
| | | label: "实际重量(kg)", |
| | | prop: "actuallyWeight", |
| | | }, |
| | | { |
| | | label: "盘长(m)", |
| | | value: "292", |
| | | prop: "oneLength", |
| | | }, |
| | | { |
| | | label: "计划数量", |
| | | value: "100", |
| | | label: "理论重量(kg)", |
| | | prop: "theoryWeight", |
| | | }, |
| | | { |
| | | label: "质量追溯号", |
| | | value: "JX-1838", |
| | | label: "规格型号", |
| | | prop: "model", |
| | | }, |
| | | ]); |
| | | |
| | | const twistReportList = ref<any[]>([]); |
| | | |
| | | const toEdit = () => { |
| | | uni.navigateTo({ |
| | |
| | | dialog.visible = true; |
| | | }; |
| | | |
| | | const submit = () => { |
| | | toast.show("提交"); |
| | | dialog.visible = false; |
| | | const submit = async () => { |
| | | const isSuccess = await twistFormRef.value.submit(); |
| | | dialog.visible = !isSuccess; // 如果提交成功,关闭弹窗 |
| | | if (isSuccess) { |
| | | // 提交成功后执行 |
| | | showDrawPopup(); |
| | | } |
| | | }; |
| | | |
| | | const cancel = () => { |
| | |
| | | dialog.visible = false; |
| | | }; |
| | | |
| | | const toCheck = () => { |
| | | const toAttachment = (item: any) => { |
| | | uni.navigateTo({ |
| | | url: "/pages/production/twist/selfInspect/index", |
| | | 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> |
| | | .page { |
| | | .list { |
| | | height: calc(100vh - 80px); |
| | | padding: 12px; |
| | | background: #f3f9f8; |
| | | |
| | | .list { |
| | | margin: 12px; |
| | | |
| | | :deep() { |
| | | .round { |
| | | border-radius: 4px; |
| | | } |
| | | :deep() { |
| | | .round { |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | } |