2025-09-16 14:05:39 +08:00
|
|
|
|
import { xxtsFindByIdApi, xxtsSaveApi } from "@/api/base/xxtsApi";
|
2025-09-15 23:49:21 +08:00
|
|
|
|
import { useUserStore } from "@/store/modules/user";
|
|
|
|
|
|
import { useDataStore } from "@/store/modules/data";
|
|
|
|
|
|
|
|
|
|
|
|
const { loginByOpenId } = useUserStore();
|
|
|
|
|
|
const { getData, setXxts, setData, getXxts } = useDataStore();
|
|
|
|
|
|
|
|
|
|
|
|
export const XkTfPageUtils = {
|
2025-09-16 14:05:39 +08:00
|
|
|
|
// 初始化校验
|
2025-09-15 23:49:21 +08:00
|
|
|
|
async init(data?: any) {
|
|
|
|
|
|
let ret = {
|
|
|
|
|
|
success: true,
|
|
|
|
|
|
dbFlag: false,
|
|
|
|
|
|
xkTfId: getData.id,
|
|
|
|
|
|
};
|
|
|
|
|
|
if (!data || !data.from || data.from != "db") {
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 从待办过来的,需要从后端获取数据
|
|
|
|
|
|
ret.dbFlag = true;
|
|
|
|
|
|
// 检查登录状态
|
|
|
|
|
|
const isLoggedIn = await loginByOpenId(data.openId);
|
|
|
|
|
|
if (!isLoggedIn) {
|
|
|
|
|
|
console.log("用户未登录,跳过处理");
|
|
|
|
|
|
ret.success = false;
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
let url = "/pages/base/message/index";
|
|
|
|
|
|
try {
|
|
|
|
|
|
// 优先从后端根据url中的id去查询Xxts
|
|
|
|
|
|
const xxtsRes = await xxtsFindByIdApi({ id: data.id });
|
|
|
|
|
|
if (xxtsRes && xxtsRes.result) {
|
|
|
|
|
|
const xxts = xxtsRes.result;
|
|
|
|
|
|
// 检查待办状态
|
|
|
|
|
|
if (xxts.dbZt === "B") {
|
|
|
|
|
|
setData({ id: xxts.xxzbId });
|
|
|
|
|
|
url = "/pages/view/routine/xk/tf/detail";
|
|
|
|
|
|
uni.reLaunch({ url });
|
|
|
|
|
|
ret.success = false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
setXxts(xxts);
|
|
|
|
|
|
ret.xkTfId = xxts.xxzbId;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "获取消息推送数据失败",
|
|
|
|
|
|
icon: "error",
|
|
|
|
|
|
});
|
|
|
|
|
|
uni.reLaunch({ url });
|
|
|
|
|
|
ret.success = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.error("获取待办信息失败", error);
|
|
|
|
|
|
// 如果获取Xxts失败,回退到原来的逻辑
|
|
|
|
|
|
const xxtsData = getXxts;
|
|
|
|
|
|
if (xxtsData && xxtsData.dbZt === "B") {
|
|
|
|
|
|
setData({ id: data.id });
|
|
|
|
|
|
uni.reLaunch({ url });
|
|
|
|
|
|
ret.success = false;
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-09-16 14:05:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 检查待办状态是否需要更新
|
|
|
|
|
|
async updateXxts() {
|
|
|
|
|
|
// 如果没有查询过消息推送,表示不是从待办进入的,不自动更新,
|
|
|
|
|
|
if (!getXxts || !getXxts.id) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 更新待办状态
|
|
|
|
|
|
await xxtsSaveApi({
|
|
|
|
|
|
id: getXxts.id,
|
|
|
|
|
|
dbZt: "B",
|
|
|
|
|
|
});
|
|
|
|
|
|
return true;
|
|
|
|
|
|
},
|
2025-09-15 23:49:21 +08:00
|
|
|
|
}
|