71 lines
1.9 KiB
Vue
Raw Normal View History

<template>
<view class="leave-page">
2025-07-26 21:29:04 +08:00
<JsQjEdit :data="qjData" v-if="qjData.id" />
</view>
</template>
<script setup lang="ts">
2025-07-27 23:37:02 +08:00
import { findQjById } from "@/api/base/jsQjApi";
2025-08-01 20:11:36 +08:00
import { xxtsFindByIdApi } from "@/api/base/server";
import { useDataStore } from "@/store/modules/data";
2025-07-27 23:37:02 +08:00
import { onLoad } from "@dcloudio/uni-app";
import JsQjEdit from "./components/jsQjEdit.vue";
2025-08-01 20:11:36 +08:00
const { setData, getData, setXxts, getXxts } = useDataStore();
const dbFlag = ref(false);
2025-07-26 21:29:04 +08:00
const qjData = computed(() => getData);
onLoad(async (data: any) => {
// 从待办过来的,需要从后端获取数据
if (data && data.from && data.from == "db") {
dbFlag.value = true;
2025-08-01 20:11:36 +08:00
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 }); // 使用消息推送中的主表ID
let url = "/pages/view/hr/jsQj/detail";
uni.navigateTo({ url });
return;
}
setXxts(xxts);
// 根据主表ID去查询请假信息
const res = await findQjById({ id: xxts.xxzbId });
nextTick(() => {
setData(res.result);
});
}
} catch (error) {
console.error("获取待办信息失败", error);
// 如果获取Xxts失败回退到原来的逻辑
const xxtsData = getXxts();
if (xxtsData && xxtsData.dbZt === "B") {
setXxts(xxtsData);
let url = "/pages/view/hr/jsQj/detail";
uni.navigateTo({ url });
return;
}
const res = await findQjById({ id: data.id });
nextTick(() => {
setData(res.result);
});
2025-07-27 23:37:02 +08:00
}
} else {
dbFlag.value = false;
}
});
</script>
<style lang="scss" scoped>
.leave-page {
height: 100vh;
}
2025-07-27 23:37:02 +08:00
</style>