2025-07-23 00:01:09 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<view class="leave-page">
|
2025-07-26 21:29:04 +08:00
|
|
|
|
<JsQjEdit :data="qjData" v-if="qjData.id" />
|
2025-07-23 00:01:09 +08:00
|
|
|
|
</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";
|
2025-07-23 00:01:09 +08:00
|
|
|
|
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();
|
2025-07-23 00:01:09 +08:00
|
|
|
|
|
|
|
|
|
|
const dbFlag = ref(false);
|
|
|
|
|
|
|
2025-07-26 21:29:04 +08:00
|
|
|
|
const qjData = computed(() => getData);
|
|
|
|
|
|
|
2025-07-23 00:01:09 +08:00
|
|
|
|
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
|
|
|
|
}
|
2025-07-23 00:01:09 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
dbFlag.value = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.leave-page {
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
}
|
2025-07-27 23:37:02 +08:00
|
|
|
|
</style>
|