diff --git a/src/pages/view/hr/jsQj/components/jsQjDetail.vue b/src/pages/view/hr/jsQj/components/jsQjDetail.vue
index 48ca4e5..fd3b9d4 100644
--- a/src/pages/view/hr/jsQj/components/jsQjDetail.vue
+++ b/src/pages/view/hr/jsQj/components/jsQjDetail.vue
@@ -1,86 +1,69 @@
-
-
-
-
+
+
+
+
+
-
- 请假类型:
- {{ qjData.qjlx }}
-
-
- 开始时间:
- {{ qjData.qjkstime }}
-
-
- 结束时间:
- {{ qjData.qjjstime }}
-
-
- 请假时长:
- {{ qjData.qjsc }}
-
-
- 请假事由:
- {{ qjData.qjsy }}
-
+ 请假类型:{{ qjData.qjlx }}
+ 开始时间:{{ qjData.qjkstime }}
+ 结束时间:{{ qjData.qjjstime }}
+ 请假时长:{{ qjData.qjsc }}
+ 请假事由:{{ qjData.qjsy }}
代课方式:
- {{
- dkfsList[qjData.dkfs] ? dkfsList[qjData.dkfs].text : ""
- }}
+ {{ dkfsText }}
-
-
-
-
-
-
-
-
+
+
+
+ 无需代课
-
-
-
-
-
-
- 排课名称:
- {{ item.pkName }}
+
+
+
-
- 上课时间:
- {{ item.startTime }}-{{ item.endTime }}
-
-
- 代课老师:
- {{ item.jsName }}
+
+
+
+ 排课名称:
+ {{ item.pkMc }}
+
+
+ 上课时间:
+ {{ item.startTime }}-{{ item.endTime }}
+
+
+ 代课老师:
+ {{ item.jsName }}
+
-
-
-
-
+
+
+
@@ -90,6 +73,7 @@
import { findDkPageApi, findQjById } from "@/api/base/jsQjApi";
import { useDataStore } from "@/store/modules/data";
import ProgressList from "./progressList.vue";
+import { ref, computed, watch, onMounted } from "vue";
const { getXxts } = useDataStore();
// 接收外部传入属性
@@ -114,6 +98,12 @@ const notifyParentLoaded = () => {
};
const qjData = ref({});
+const tabList = ref([{ name: "请假信息", id: "tab-qj" }, { name: "审批流程", id: "tab-sp" }]);
+const showDkTab = ref(false);
+const curTabIndex = ref(0);
+const switchTab = (index: number) => {
+ curTabIndex.value = index;
+};
const wdNameList = ref([
"周一",
@@ -139,6 +129,12 @@ const jsTypeMc: any = {
const dkList = ref([]);
+const dkfsText = computed(() => {
+ if (!qjData.value) { return ''; }
+ let dkfs = typeof qjData.value.dkfs === "string" ? parseInt(qjData.value.dkfs) : qjData.value.dkfs || 0;
+ return dkfsList.value[dkfs].text;
+});
+
watch(
() => props.qjId,
(newVal, oldVal) => {
@@ -153,10 +149,27 @@ watch(
const init = async () => {
{
const res = await findQjById({ id: props.qjId });
- qjData.value = res.result;
+ qjData.value = (res && res.result) ? res.result : {};
}
- // 无需代课,跳过
- if (qjData.value.dkfs == 2) {
+ // 根据是否需要代课,动态设置Tab
+ showDkTab.value = !!(qjData.value && qjData.value.dkfs != 2);
+ if (showDkTab.value) {
+ // 如果需要代课,确保代课Tab存在并排在中间
+ const hasDk = tabList.value.findIndex((t:any) => t.id === 'tab-dk') > -1;
+ if (!hasDk) {
+ tabList.value = [{ name: "请假信息", id: "tab-qj" }, { name: "代课信息", id: "tab-dk" }, { name: "审批流程", id: "tab-sp" }];
+ }
+ } else {
+ // 无需代课,去掉代课Tab
+ tabList.value = [{ name: "请假信息", id: "tab-qj" }, { name: "审批流程", id: "tab-sp" }];
+ }
+ // 查询代课列表(仅在需要代课时)
+ if (!showDkTab.value) {
+ // 无需代课则直接通知父级
+ if (props.dbFlag) {
+ qjData.value.xxzy = getXxts.xxzy;
+ }
+ notifyParentLoaded();
return;
}
{
@@ -165,7 +178,9 @@ const init = async () => {
page: 1,
rows: 1000,
});
- dkList.value = res.rows.map((item: any) => {
+ console.log(res);
+ const rows = (res && (res.rows || res.result || res.data)) || [];
+ dkList.value = rows.map((item: any) => {
item.dktime = item.dktime.split(" ")[0];
item.jcmc = jsTypeMc[item.jcType] + "第" + item.jc + "节";
const xq: number = item.xq - 1;
diff --git a/src/pages/view/hr/jsQj/components/jsQjEdit.vue b/src/pages/view/hr/jsQj/components/jsQjEdit.vue
index 82755ad..5cc3908 100644
--- a/src/pages/view/hr/jsQj/components/jsQjEdit.vue
+++ b/src/pages/view/hr/jsQj/components/jsQjEdit.vue
@@ -7,8 +7,10 @@
@@ -44,11 +46,11 @@ const props = withDefaults(defineProps<{
}>(), {
data: () => ({
id: "",
- qjlx: "",
- qjkstime: "",
- qjjstime: "",
- qjsc: "",
- qjsy: "",
+ qjlx: "事假",
+ qjkstime: "2025-08-28 12:00:00",
+ qjjstime: "2025-08-29 12:00:00",
+ qjsc: "24小时",
+ qjsy: "测试请假",
dkfs: 0,
sprList: [],
csrList: [],
@@ -60,6 +62,14 @@ let formData = ref({
jsId: getJs.id,
});
+const defSpCs = computed(() => {
+ return {
+ sprList: formData.value.sprList,
+ csrList: formData.value.csrList,
+ }
+})
+
+
const dkRef = ref(null);
if (typeof props.data.dkfs === "string") {
@@ -189,9 +199,11 @@ const validateTime = () => {
}
const updateDk = () => {
- if (dkRef.value) {
- dkRef.value.getPkkbList();
- }
+ nextTick(() => {
+ if (dkRef.value) {
+ dkRef.value.getPkkbList();
+ }
+ });
};
// 初始化
@@ -240,6 +252,7 @@ const submit = async () => {
params.jsId = getJs.id;
params.jsName = getJs.jsxm;
}
+ console.log("请假参数:", params);
uni.showLoading({ title: "提交中..." });
await submitApi(params).then(() => {
showToast({ title: "提交成功", icon: "success" });
@@ -249,6 +262,14 @@ const submit = async () => {
});
uni.hideLoading();
};
+
+// 审批/抄送选人变更回调
+const onSpCsChange = (payload: any) => {
+ if (payload) {
+ formData.value.sprList = Array.isArray(payload.sprList) ? payload.sprList : [];
+ formData.value.csrList = Array.isArray(payload.csrList) ? payload.csrList : [];
+ }
+};