diff --git a/src/pages/view/hr/jsQj/components/jsQjDetailDk.vue b/src/pages/view/hr/jsQj/components/jsQjDetailDk.vue
index 2c978c6..9ccf8fe 100644
--- a/src/pages/view/hr/jsQj/components/jsQjDetailDk.vue
+++ b/src/pages/view/hr/jsQj/components/jsQjDetailDk.vue
@@ -19,6 +19,10 @@
代课老师:
{{ item.jsName }}
+
+ 确认状态:
+ {{ item.statusLabel }}
+
@@ -67,6 +71,12 @@ const jsTypeMc: any = {
PM: "下午",
};
+const qrStatus: any = {
+ "wait": "待确认",
+ "approved": "同意",
+ "rejected": "拒绝",
+};
+
const dkList = ref([]);
watch(
@@ -92,6 +102,7 @@ const init = async () => {
item.jcmc = jsTypeMc[item.jcType] + "第" + item.jc + "节";
const xq: number = item.xq - 1;
item.xqLabel = wdNameList.value[xq];
+ item.statusLabel = qrStatus[item.qrStatus] || "未知";
return item;
});
// 排序,将当前教师作为代课教师的代课数据,排在前面,并且添加一个标记
diff --git a/src/pages/view/hr/jsQj/detail.vue b/src/pages/view/hr/jsQj/detail.vue
index d12316d..140249e 100644
--- a/src/pages/view/hr/jsQj/detail.vue
+++ b/src/pages/view/hr/jsQj/detail.vue
@@ -23,8 +23,11 @@
-
-
+
+ {{ showDkEmptyLabel }}
+
+
@@ -54,24 +57,18 @@ import ProgressList from "./components/progressList.vue";
const { getData, setData } = useDataStore();
-const tabList = ref([{ name: "请假信息", id: "tab-qj" }]);
+const tabList = ref([
+ { name: "请假信息", id: "tab-qj" },
+ { name: "代课信息", id: "tab-dk" },
+ { name: "审批流程", id: "tab-sp" }
+]);
const curTabIndex = ref(0);
const dbFlag = ref(false);
const qjId = computed(() => getData.id);
-const showDkTab = ref(false);
+const showDkFlag = ref(false);
+const showDkEmptyLabel = ref('');
-// 构建Tab列表
-const rebuildTabList = (showDk: boolean) => {
- // 构建Tab列表
- tabList.value = [
- { name: "请假信息", id: "tab-qj" },
- ];
- if (showDk) {
- tabList.value.push({ name: "代课信息", id: "tab-dk" });
- }
- tabList.value.push({ name: "审批流程", id: "tab-sp" });
-};
// 切换Tab
const switchTab = (index: number) => {
@@ -80,8 +77,15 @@ const switchTab = (index: number) => {
const handleQjDataLoaded = (data: any) => {
setData(data);
- showDkTab.value = !!(data && data.dkfs != 2);
- rebuildTabList(showDkTab.value);
+ data = data || {};
+ const dkfs = typeof(data.dkfs) === "string" ? parseInt(data.dkfs) : (data.dkfs || 2);
+ const bpmStatus = typeof(data.bpmStatus) === "string" ? parseInt(data.bpmStatus) : (data.bpmStatus || 1);
+ showDkFlag.value = dkfs === 0 || (dkfs === 1 && bpmStatus > 4);
+ if (dkfs === 1) {
+ showDkEmptyLabel.value = "等待教科处协调";
+ } else if (dkfs === 2) {
+ showDkEmptyLabel.value = "无需代课";
+ }
};
const handleDkListLoaded = (list: any[]) => {
@@ -101,4 +105,12 @@ const goHome = () => {
background-color: #f5f7fa;
}
+.empty-dk {
+ margin: 15px;
+ background-color: #fff;
+ border-radius: 8px;
+ padding: 50px 15px;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
+ text-align: center;
+}
diff --git a/src/pages/view/hr/jsQj/dkQr.vue b/src/pages/view/hr/jsQj/dkQr.vue
index b97dfc2..2d6628b 100644
--- a/src/pages/view/hr/jsQj/dkQr.vue
+++ b/src/pages/view/hr/jsQj/dkQr.vue
@@ -1,289 +1,212 @@
-
-
-
-
-
-
- 请假老师:
- {{ qjData.jsName }}
-
-
- 请假类型:
- {{ qjData.qjlx }}
-
-
- 请假时间:
- {{ qjData.qjkstime }} 至 {{ qjData.qjjstime }}
-
-
- 请假时长:
- {{ qjData.qjsc }}
-
-
- 请假事由:
- {{ qjData.qjsy }}
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
- 代课时间:
- {{ dkData.dktime }}
-
-
- 课程名称:
- {{ dkData.kcmc }}
-
-
- 班级:
- {{ dkData.bjmc }}
-
-
+
+
-
-
- 确认代课
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/view/hr/jsQj/jwcQr.vue b/src/pages/view/hr/jsQj/jwcQr.vue
index c146a13..37e92b2 100644
--- a/src/pages/view/hr/jsQj/jwcQr.vue
+++ b/src/pages/view/hr/jsQj/jwcQr.vue
@@ -74,14 +74,14 @@ import { navigateBack } from "@/utils/uniapp";
import { jsQjJwcQrApi } from "@/api/base/jsQjApi";
import { useUserStore } from "@/store/modules/user";
import { useDataStore } from "@/store/modules/data";
-import { ref, computed } from "vue";
-import { xxtsFindByIdApi } from "@/api/base/server";
+import { ref } from "vue";
import JsQjDetailInfo from "./components/jsQjDetailInfo.vue";
import JsQjDetailDk from "./components/jsQjDetailDk.vue";
import ProgressList from "./components/progressList.vue";
+import { QjPageUtils } from "@/utils/qjPageUtils";
-const { getJs, loginByOpenId } = useUserStore();
-const { getData, setXxts, setData, getXxts } = useDataStore();
+const { getJs } = useUserStore();
+const { setData } = useDataStore();
const tabList = ref([{ name: "请假信息", id: "tab-qj" }]);
const curTabIndex = ref(0);
@@ -162,50 +162,12 @@ const handleReject = async () => {
};
onLoad(async (data?: any) => {
- // 从待办过来的,需要从后端获取数据
- console.log(data);
- if (data && data.from && data.from == "db") {
- dbFlag.value = true;
-
- // 检查登录状态
- const isLoggedIn = await loginByOpenId(data.openId);
- if (!isLoggedIn) {
- console.log("用户未登录,跳过处理");
- return;
- }
-
- 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 });
- let url = "/pages/view/hr/jsQj/detail";
- uni.navigateTo({ url });
- return;
- }
- setXxts(xxts);
- qjId.value = xxts.xxzbId;
- }
- } catch (error) {
- console.error("获取待办信息失败", error);
- // 如果获取Xxts失败,回退到原来的逻辑
- const xxtsData = getXxts;
- if (xxtsData && xxtsData.dbZt === "B") {
- setData({ id: data.id });
- let url = "/pages/view/hr/jsQj/detail";
- uni.navigateTo({ url });
- return;
- }
- qjId.value = data.id;
- }
- } else {
- dbFlag.value = false;
- // 直接加载请假详情
- qjId.value = getData.id || '';
+ const ret = await QjPageUtils.init(data);
+ if (!ret || !ret.success) {
+ return;
}
+ qjId.value = ret.qjId;
+ dbFlag.value = ret.dbFlag;
});
diff --git a/src/pages/view/hr/jsQj/jwcXt.vue b/src/pages/view/hr/jsQj/jwcXt.vue
index 677f829..7566990 100644
--- a/src/pages/view/hr/jsQj/jwcXt.vue
+++ b/src/pages/view/hr/jsQj/jwcXt.vue
@@ -1,366 +1,176 @@
-
-
-
-
-
-
- 请假类型:
- {{ qjData.qjlx }}
-
-
- 请假时间:
- {{ qjData.qjkstime }} 至 {{ qjData.qjjstime }}
-
-
- 请假时长:
- {{ qjData.qjsc }}
-
-
- 请假事由:
- {{ qjData.qjsy }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 代课教师:
- {{ dk.jsName }}
-
-
- 代课时间:
- {{ dk.dktime }}
-
-
- 课程名称:
- {{ dk.kcmc }}
-
-
- 班级:
- {{ dk.bjmc }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/src/pages/view/hr/jsQj/sp.vue b/src/pages/view/hr/jsQj/sp.vue
index 968a104..5235b6b 100644
--- a/src/pages/view/hr/jsQj/sp.vue
+++ b/src/pages/view/hr/jsQj/sp.vue
@@ -23,8 +23,11 @@
-
-
+
+ {{ showDkEmptyLabel }}
+
+
@@ -56,21 +59,26 @@ import { navigateBack } from "@/utils/uniapp";
import { jsQjSpApi } from "@/api/base/jsQjApi";
import { useUserStore } from "@/store/modules/user";
import { useDataStore } from "@/store/modules/data";
-import { ref, computed } from "vue";
-import { xxtsFindByIdApi } from "@/api/base/server";
+import { ref } from "vue";
import JsQjDetailInfo from "./components/jsQjDetailInfo.vue";
import JsQjDetailDk from "./components/jsQjDetailDk.vue";
import ProgressList from "./components/progressList.vue";
+import { QjPageUtils } from "@/utils/qjPageUtils";
-const { getJs, loginByOpenId } = useUserStore();
-const { getData, setXxts, setData, getXxts } = useDataStore();
+const { getJs } = useUserStore();
+const { setData } = useDataStore();
-const tabList = ref([{ name: "请假信息", id: "tab-qj" }]);
+const tabList = ref([
+ { name: "请假信息", id: "tab-qj" },
+ { name: "代课信息", id: "tab-dk" },
+ { name: "审批流程", id: "tab-sp" }
+]);
const curTabIndex = ref(0);
const dbFlag = ref(false);
const qjId = ref('');
-const showDkTab = ref(false);
+const showDkFlag = ref(false);
+const showDkEmptyLabel = ref('');
const [register, { getValue }] = useForm({
schema: [
@@ -90,7 +98,7 @@ const [register, { getValue }] = useForm({
},
},
{
- field: "spYj",
+ field: "spRemark",
label: "审批说明",
component: "BasicInput",
required: true,
@@ -105,18 +113,6 @@ const [register, { getValue }] = useForm({
],
});
-// 构建Tab列表
-const rebuildTabList = (showDk: boolean) => {
- // 构建Tab列表
- tabList.value = [
- { name: "请假信息", id: "tab-qj" },
- ];
- if (showDk) {
- tabList.value.push({ name: "代课信息", id: "tab-dk" });
- }
- tabList.value.push({ name: "审批流程", id: "tab-sp" });
-};
-
// 切换Tab
const switchTab = (index: number) => {
curTabIndex.value = index;
@@ -124,8 +120,14 @@ const switchTab = (index: number) => {
const handleQjDataLoaded = (data: any) => {
setData(data);
- showDkTab.value = !!(data && data.dkfs != 2);
- rebuildTabList(showDkTab.value);
+ data = data || {};
+ const dkfs = typeof(data.dkfs) === "string" ? parseInt(data.dkfs) : (data.dkfs || 2);
+ showDkFlag.value = dkfs === 0;
+ if (dkfs === 1) {
+ showDkEmptyLabel.value = "审批同意后由教科处协调";
+ } else if (dkfs === 2) {
+ showDkEmptyLabel.value = "无需代课";
+ }
};
const handleDkListLoaded = (list: any[]) => {
@@ -135,7 +137,7 @@ const handleDkListLoaded = (list: any[]) => {
const submit = async () => {
try {
const formData = await getValue();
- if (!formData.spStatus || !formData.spYj) {
+ if (!formData.spStatus || !formData.spRemark) {
uni.showToast({
title: '请填写完整的审批信息',
icon: 'none'
@@ -147,7 +149,7 @@ const submit = async () => {
qjId: qjId.value,
jsId: getJs.id,
spStatus: formData.spStatus,
- spYj: formData.spYj,
+ spRemark: formData.spRemark,
};
uni.showLoading({
@@ -161,11 +163,9 @@ const submit = async () => {
title: '审批提交成功',
icon: 'success'
});
-
setTimeout(() => {
- navigateBack();
- }, 1500);
-
+ uni.reLaunch({ url: '/pages/base/message/index' });
+ }, 1000);
} catch (error) {
uni.hideLoading();
uni.showToast({
@@ -177,50 +177,12 @@ const submit = async () => {
};
onLoad(async (data?: any) => {
- // 从待办过来的,需要从后端获取数据
- console.log(data);
- if (data && data.from && data.from == "db") {
- dbFlag.value = true;
-
- // 检查登录状态
- const isLoggedIn = await loginByOpenId(data.openId);
- if (!isLoggedIn) {
- console.log("用户未登录,跳过处理");
- return;
- }
-
- 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 });
- let url = "/pages/view/hr/jsQj/detail";
- uni.navigateTo({ url });
- return;
- }
- setXxts(xxts);
- qjId.value = xxts.xxzbId;
- }
- } catch (error) {
- console.error("获取待办信息失败", error);
- // 如果获取Xxts失败,回退到原来的逻辑
- const xxtsData = getXxts;
- if (xxtsData && xxtsData.dbZt === "B") {
- setData({ id: data.id });
- let url = "/pages/view/hr/jsQj/detail";
- uni.navigateTo({ url });
- return;
- }
- qjId.value = data.id;
- }
- } else {
- dbFlag.value = false;
- // 直接加载请假详情
- qjId.value = getData.id || '';
+ const ret = await QjPageUtils.init(data);
+ if (!ret || !ret.success) {
+ return;
}
+ qjId.value = ret.qjId;
+ dbFlag.value = ret.dbFlag;
});
@@ -229,34 +191,12 @@ onLoad(async (data?: any) => {
background-color: #f5f7fa;
}
-.info-card {
+.empty-dk {
margin: 15px;
background-color: #fff;
border-radius: 8px;
- padding: 15px;
+ padding: 50px 15px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
-
- .card-header {
- font-size: 16px;
- font-weight: bold;
- color: #333;
- margin-bottom: 10px;
-
- .applicant-name {
- font-size: 16px;
- font-weight: bold;
- color: #333;
- }
- }
-
- .divider {
- height: 1px;
- background-color: #eee;
- margin-bottom: 15px;
- }
-
- .card-body {
- padding: 15px;
- }
+ text-align: center;
}
diff --git a/src/pages/view/routine/xk/dm.vue b/src/pages/view/routine/xk/dm.vue
index 045a51b..4861d71 100644
--- a/src/pages/view/routine/xk/dm.vue
+++ b/src/pages/view/routine/xk/dm.vue
@@ -147,7 +147,7 @@ const mediaData = ref({
photoList: [],
videoList: []
});
-const dmPsRef = ref(null);
+const dmPsRef = ref(null);
const now = dayjs();
let wDay = now.day();
diff --git a/src/pages/view/routine/xk/dmIndex.vue b/src/pages/view/routine/xk/dmIndex.vue
index 41df944..9d185b2 100644
--- a/src/pages/view/routine/xk/dmIndex.vue
+++ b/src/pages/view/routine/xk/dmIndex.vue
@@ -240,6 +240,8 @@ const goDm = (xkkc: any) => {
} else {
msg = "上课时间未到,无法点名";
}
+ // TODO: 测试阶段,默认都可以点名,不计算时间
+ dmFlag = true;
if (dmFlag) {
setData(xkkc);
uni.navigateTo({
diff --git a/src/utils/qjPageUtils.ts b/src/utils/qjPageUtils.ts
new file mode 100644
index 0000000..3da8fde
--- /dev/null
+++ b/src/utils/qjPageUtils.ts
@@ -0,0 +1,64 @@
+import { xxtsFindByIdApi } from "@/api/base/server";
+import { useUserStore } from "@/store/modules/user";
+import { useDataStore } from "@/store/modules/data";
+
+const { loginByOpenId } = useUserStore();
+const { getData, setXxts, setData, getXxts } = useDataStore();
+
+export const QjPageUtils = {
+ async init(data?: any) {
+ let ret = {
+ success: true,
+ dbFlag: false,
+ qjId: 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/hr/jsQj/detail";
+ uni.reLaunch({ url });
+ ret.success = false;
+ } else {
+ setXxts(xxts);
+ ret.qjId = 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;
+ }
+ }
+ }
+}
\ No newline at end of file