学生请假调整

This commit is contained in:
hebo 2025-11-02 20:45:35 +08:00
parent 05f368b32e
commit 88a8c6f3de
2 changed files with 53 additions and 14 deletions

10
src/api/base/jsBjApi.ts Normal file
View File

@ -0,0 +1,10 @@
import { get } from "@/utils/request";
/**
* ID获取班主任和副班主任信息
* @param bjId ID
*/
export const getClassLeadersByBjIdApi = (bjId: string) => {
return get("/api/jsBj/classLeaders", { bjId });
};

View File

@ -46,10 +46,14 @@
<view class="approver-section">
<view class="section-title">审批信息</view>
<view class="approver-list">
<view class="approver-item">
<text class="label">审批人</text>
<text class="value">{{ approverName }}</text>
<text class="role">班主任</text>
<view
v-for="approver in approverList"
:key="approver.id || approver.jsId || approver.jsxm"
class="approver-item"
>
<text class="label">{{ approver.gxId || '审批人' }}</text>
<text class="value">{{ approver.jsxm || '未设置' }}</text>
<text class="role" v-if="approver.gxId">{{ approver.gxId }}</text>
</view>
</view>
</view>
@ -95,13 +99,14 @@
</template>
<script setup lang="ts">
import { computed, onMounted, ref } from "vue";
import { useForm } from "@/components/BasicForm/hooks/useForm";
import { jzAddXsQjApi } from "@/api/base/xsQjApi";
import { getClassLeadersByBjIdApi } from "@/api/base/jsBjApi";
import { useDicStore } from "@/store/modules/dic";
import { showToast } from "@/utils/uniapp";
import dayjs from "dayjs";
import { useUserStore } from "@/store/modules/user";
import { useCommonStore } from "@/store/modules/common";
import { useDebounce } from "@/utils/debounce";
import DatetimePicker from "@/components/BasicPicker/TimePicker/DatetimePicker.vue";
@ -112,7 +117,6 @@ const emit = defineEmits<{
const { getCurXs, getUser } = useUserStore();
const { findByPid } = useDicStore();
const commonStore = useCommonStore();
// isSubmitting useDebounce
const { isProcessing: isSubmitting, debounce } = useDebounce(2000);
@ -144,7 +148,15 @@ let formData = ref<any>({
qjjstime: "",
qjsc: ""
});
let approverName = ref<string>(''); //
const approverList = ref<any[]>([]);
const primaryApprover = computed(() => {
return (
approverList.value.find((item) => item.gxId === "班主任") ||
approverList.value[0] ||
null
);
});
const [register, { getValue, setValue }] = useForm({
schema: [
@ -234,14 +246,26 @@ onMounted(async () => {
});
const getDefaultApprover = async () => {
approverList.value = [];
try {
// ID
if (getCurXs && getCurXs.bzrId) {
approverName.value = getCurXs.bzrXm;
if (getCurXs && getCurXs.bjId) {
const res = await getClassLeadersByBjIdApi(getCurXs.bjId);
if (res?.resultCode === 1 && Array.isArray(res.result)) {
approverList.value = res.result;
}
}
} catch (error) {
console.error('获取审批人信息失败:', error);
approverName.value = '获取失败';
console.error("获取审批人信息失败:", error);
}
if (approverList.value.length === 0 && getCurXs && getCurXs.bzrId) {
approverList.value = [
{
jsId: getCurXs.bzrId,
jsxm: getCurXs.bzrXm,
gxId: "班主任",
},
];
}
};
@ -330,8 +354,13 @@ const submit = debounce(async () => {
params.id = null;
params.xsId = getCurXs.id; // ID
params.xsxm = getCurXs.xm; //
params.jsId = getCurXs.bzrId; // ID
params.jsxm = approverName.value; //
if (primaryApprover.value) {
params.jsId = primaryApprover.value.jsId; // ID
params.jsxm = primaryApprover.value.jsxm; //
} else {
params.jsId = getCurXs.bzrId;
params.jsxm = getCurXs.bzrXm;
}
params.xqId = getCurXs.xqId; // ID
params.jzId = getUser.jzId; // ID
params.jzxm = getUser.jzxm || getUser.xm; //