<template>
|
<view>
|
<ProductCard
|
:data="cardData"
|
:map="{
|
deviceModel: 'deviceModel',
|
model: 'model',
|
systemNo: 'systemNo',
|
totalAmount: 'totalAmount',
|
amount: 'amount',
|
unAmount: 'unAmount',
|
}"
|
/>
|
<view class="mx-3">
|
<wd-grid class="rounded-lg" clickable>
|
<wd-grid-item icon="computer" @click="handleReportClick" text="报工" />
|
<!-- <wd-grid-item
|
icon="chart"
|
text="自检"
|
link-type="navigateTo"
|
url="/pages/production/twist/selfInspect/index"
|
/> -->
|
<wd-grid-item
|
icon="tips"
|
link-type="navigateTo"
|
:url="`/pages/production/twist/backman/index?id=${paramsId}`"
|
text="杂工"
|
/>
|
<wd-grid-item
|
icon="wallet"
|
link-type="navigateTo"
|
:url="`/pages/production/twist/receive/index?id=${paramsId}`"
|
text="材料领用"
|
/>
|
</wd-grid>
|
</view>
|
</view>
|
</template>
|
|
<script lang="ts" setup>
|
import { onLoad } from "@dcloudio/uni-app";
|
import ProductCard from "@/components/product_card/index.vue";
|
import TwistApi from "@/api/product/twist";
|
import { getPrepareId, setPrepareId, clearPrepareId } from "@/utils/cache";
|
import HomeApi from "@/api/home";
|
|
const paramsId = ref();
|
const cardData = reactive({
|
deviceModel: undefined,
|
model: undefined,
|
systemNo: undefined,
|
totalAmount: undefined,
|
amount: undefined,
|
unAmount: undefined,
|
});
|
|
const getDetailData = async (id: string) => {
|
const { data } = await TwistApi.getTwistDetailById({
|
id: id,
|
});
|
cardData.deviceModel = data.deviceModel;
|
cardData.model = data.model;
|
cardData.systemNo = data.systemNo;
|
cardData.totalAmount = data.totalLength;
|
cardData.amount = data.length;
|
cardData.unAmount = data.unLength;
|
};
|
|
// 获取并缓存生产准备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/twist/report/index?id=${paramsId.value}`,
|
});
|
};
|
|
onLoad(async (options: any) => {
|
paramsId.value = options.id;
|
await getDetailData(options.id);
|
// 获取并缓存生产准备ID
|
await initPrepareId();
|
});
|
</script>
|
|
<style lang="scss" scoped></style>
|