dev #8
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { ComboModel } from "@/components/hTable/hTable";
|
||||||
import { http } from "@/utils/http";
|
import { http } from "@/utils/http";
|
||||||
import type { Res } from "@/utils/http/types";
|
import type { Res } from "@/utils/http/types";
|
||||||
|
|
||||||
|
|
@ -7,7 +8,7 @@ import type { Res } from "@/utils/http/types";
|
||||||
* @return {object}
|
* @return {object}
|
||||||
*/
|
*/
|
||||||
export function getenum(type) {
|
export function getenum(type) {
|
||||||
return http.request<Res<any>>("get", `Public/enum/${type}`);
|
return http.request<Res<ComboModel[]>>("get", `Public/enum/${type}`);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @description 获取枚举对象
|
* @description 获取枚举对象
|
||||||
|
|
|
||||||
|
|
@ -34,16 +34,6 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="减免金额(元):" prop="amountRelief">
|
|
||||||
<el-input-number
|
|
||||||
v-model="form.amountRelief"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.1"
|
|
||||||
:max="10"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="当前状态:" prop="status">
|
<el-form-item label="当前状态:" prop="status">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -58,9 +48,55 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="申请减免" prop="amountRelief">
|
||||||
|
<el-switch v-model="form.reliefApplication" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-show="form.userType === 1" class="pb-4.5">
|
<el-row v-show="form.reliefApplication" class="pb-4.5">
|
||||||
|
<el-col :span="24">
|
||||||
|
<div style="display: flex; gap: 10px">
|
||||||
|
<label for="Level" class="el-form-item__label" style="width: 120px"
|
||||||
|
>减免详情:
|
||||||
|
</label>
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.amountRelief"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.1"
|
||||||
|
style="width: 180px"
|
||||||
|
placeholder="减免金额(元)"
|
||||||
|
:max="99999999"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<el-select
|
||||||
|
v-model="form.reliefType"
|
||||||
|
filterable
|
||||||
|
placeholder="减免类型"
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, i) in reliefSubTimeEnum"
|
||||||
|
:key="i"
|
||||||
|
autocomplete="off"
|
||||||
|
:label="item.text"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
<el-date-picker
|
||||||
|
placeholder="减免时间"
|
||||||
|
style="width: 180px"
|
||||||
|
v-model="form.reliefSubTime"
|
||||||
|
type="date"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row class="pb-4.5">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<div style="display: flex; gap: 10px">
|
<div style="display: flex; gap: 10px">
|
||||||
<label for="Level" class="el-form-item__label" style="width: 120px"
|
<label for="Level" class="el-form-item__label" style="width: 120px"
|
||||||
|
|
@ -223,6 +259,9 @@ interface FormData {
|
||||||
remark?: string;
|
remark?: string;
|
||||||
status?: string;
|
status?: string;
|
||||||
amountRelief?: number;
|
amountRelief?: number;
|
||||||
|
reliefSubTime?: number;
|
||||||
|
reliefType?: number;
|
||||||
|
reliefApplication?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DialogConfig {
|
interface DialogConfig {
|
||||||
|
|
@ -244,6 +283,8 @@ const formLabelWidth = "120px";
|
||||||
const size = "small";
|
const size = "small";
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
||||||
|
const reliefSubTimeEnum = ref<ComboModel[]>();
|
||||||
|
|
||||||
const subject1 = ref<ComboModel[]>([
|
const subject1 = ref<ComboModel[]>([
|
||||||
{ value: 4, text: "物理" },
|
{ value: 4, text: "物理" },
|
||||||
{ value: 8, text: "历史" },
|
{ value: 8, text: "历史" },
|
||||||
|
|
@ -401,7 +442,9 @@ const handleResetForm = () => {
|
||||||
positionList.value = [];
|
positionList.value = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
const fetchInitData = async () => {};
|
const fetchInitData = async () => {
|
||||||
|
reliefSubTimeEnum.value = (await getenum("ReliefSubTimeEnum")).data;
|
||||||
|
};
|
||||||
|
|
||||||
const fetchFormData = async () => {
|
const fetchFormData = async () => {
|
||||||
handleResetForm();
|
handleResetForm();
|
||||||
|
|
|
||||||
|
|
@ -171,10 +171,13 @@
|
||||||
<el-table-column prop="gkSubject" label="选修" width="140" />
|
<el-table-column prop="gkSubject" label="选修" width="140" />
|
||||||
<el-table-column prop="joinTime" label="入班时间" width="100" />
|
<el-table-column prop="joinTime" label="入班时间" width="100" />
|
||||||
<el-table-column prop="exitTime" label="退出时间" width="100" />
|
<el-table-column prop="exitTime" label="退出时间" width="100" />
|
||||||
<el-table-column label="减免情况(元)" width="150">
|
<el-table-column label="减免情况(元)" width="230">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span v-if="scope.row.amountRelief == 0">未申请</span>
|
<span v-if="!scope.row.reliefApplication">未申请</span>
|
||||||
<span v-else>{{ scope.row.amountRelief }}</span>
|
<span v-else
|
||||||
|
>{{ scope.row.reliefSubTime }} {{ scope.row.amountRelief }}
|
||||||
|
{{ scope.row.reliefType }}
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="状态">
|
<el-table-column label="状态">
|
||||||
|
|
@ -190,7 +193,7 @@
|
||||||
style="display: flex; justify-content: center; padding-top: 10px"
|
style="display: flex; justify-content: center; padding-top: 10px"
|
||||||
@size-change="pageSizeChange"
|
@size-change="pageSizeChange"
|
||||||
@current-change="pageIndexChange"
|
@current-change="pageIndexChange"
|
||||||
:current-page="pagination.total + 1"
|
:current-page="pagination.now"
|
||||||
:page-sizes="[10, 20, 40, 80, 100]"
|
:page-sizes="[10, 20, 40, 80, 100]"
|
||||||
:page-size="pagination.size"
|
:page-size="pagination.size"
|
||||||
layout="prev, pager, next,sizes, total"
|
layout="prev, pager, next,sizes, total"
|
||||||
|
|
@ -267,6 +270,7 @@ interface TableData {
|
||||||
interface PaginationData {
|
interface PaginationData {
|
||||||
index: number;
|
index: number;
|
||||||
size: number;
|
size: number;
|
||||||
|
now?: number;
|
||||||
total: number;
|
total: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@
|
||||||
style="display: flex; justify-content: center"
|
style="display: flex; justify-content: center"
|
||||||
@size-change="pageSizeChange"
|
@size-change="pageSizeChange"
|
||||||
@current-change="pageIndexChange"
|
@current-change="pageIndexChange"
|
||||||
:current-page="pagination.total + 1"
|
:current-page="pagination.now"
|
||||||
:page-sizes="[10, 20, 40, 80, 100]"
|
:page-sizes="[10, 20, 40, 80, 100]"
|
||||||
:page-size="pagination.size"
|
:page-size="pagination.size"
|
||||||
layout="prev, pager, next,sizes, total"
|
layout="prev, pager, next,sizes, total"
|
||||||
|
|
@ -288,6 +288,7 @@ interface PaginationData {
|
||||||
index: number;
|
index: number;
|
||||||
size: number;
|
size: number;
|
||||||
total: number;
|
total: number;
|
||||||
|
now?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DialogData {
|
interface DialogData {
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="年级" prop="baseInfo.grade">
|
<el-form-item label="年级" prop="baseInfo.grade">
|
||||||
<el-select
|
<el-select v-model="form.baseInfo.grade" placeholder="请选择年级" clearable>
|
||||||
v-model="form.baseInfo.grade"
|
|
||||||
placeholder="请选择年级"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="g in gradeOptions"
|
v-for="g in gradeOptions"
|
||||||
:key="g.value"
|
:key="g.value"
|
||||||
|
|
@ -88,6 +84,7 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="座谈情况">
|
<el-form-item label="座谈情况">
|
||||||
<el-input
|
<el-input
|
||||||
|
:maxlength="500"
|
||||||
v-model="form.work.talkDetail"
|
v-model="form.work.talkDetail"
|
||||||
:disabled="!form.work.talk"
|
:disabled="!form.work.talk"
|
||||||
placeholder="请输入座谈情况"
|
placeholder="请输入座谈情况"
|
||||||
|
|
@ -105,6 +102,7 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="班会情况">
|
<el-form-item label="班会情况">
|
||||||
<el-input
|
<el-input
|
||||||
|
:maxlength="500"
|
||||||
v-model="form.work.classMeetingDetail"
|
v-model="form.work.classMeetingDetail"
|
||||||
:disabled="!form.work.classMeeting"
|
:disabled="!form.work.classMeeting"
|
||||||
placeholder="请输入班会情况"
|
placeholder="请输入班会情况"
|
||||||
|
|
@ -115,21 +113,14 @@
|
||||||
|
|
||||||
<el-divider>反馈问题</el-divider>
|
<el-divider>反馈问题</el-divider>
|
||||||
<div style="height: 370px; overflow-y: auto">
|
<div style="height: 370px; overflow-y: auto">
|
||||||
<div
|
<div v-for="group in feedbackGroups" :key="group.key" class="feedback-group">
|
||||||
v-for="group in feedbackGroups"
|
|
||||||
:key="group.key"
|
|
||||||
class="feedback-group"
|
|
||||||
>
|
|
||||||
<div class="feedback-header">
|
<div class="feedback-header">
|
||||||
<span class="group-title">{{ group.name }}</span>
|
<span class="group-title">{{ group.name }}</span>
|
||||||
<el-button type="primary" link @click="addProblem(group.key)"
|
<el-button type="primary" link @click="addProblem(group.key)"
|
||||||
>添加问题</el-button
|
>添加问题</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="form.feedback[group.key].length === 0" class="feedback-empty">
|
||||||
v-if="form.feedback[group.key].length === 0"
|
|
||||||
class="feedback-empty"
|
|
||||||
>
|
|
||||||
暂无问题
|
暂无问题
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|
@ -137,10 +128,7 @@
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="feedback-item"
|
class="feedback-item"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input v-model="item.text" :placeholder="`请输入${group.name}问题描述`" />
|
||||||
v-model="item.text"
|
|
||||||
:placeholder="`请输入${group.name}问题描述`"
|
|
||||||
/>
|
|
||||||
<el-button type="danger" text @click="removeProblem(group.key, idx)"
|
<el-button type="danger" text @click="removeProblem(group.key, idx)"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
>
|
>
|
||||||
|
|
@ -166,10 +154,7 @@ import { ref, reactive, computed, defineProps, defineEmits, watch } from "vue";
|
||||||
import type { FormInstance, FormRules } from "element-plus";
|
import type { FormInstance, FormRules } from "element-plus";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { getSchoolData } from "@/api/userCenter";
|
import { getSchoolData } from "@/api/userCenter";
|
||||||
import {
|
import { getSchoolBusinessPeopleListApi, addOrEditApi } from "@/api/toschoolinfomanage";
|
||||||
getSchoolBusinessPeopleListApi,
|
|
||||||
addOrEditApi
|
|
||||||
} from "@/api/toschoolinfomanage";
|
|
||||||
const props = defineProps<{ visible: boolean }>();
|
const props = defineProps<{ visible: boolean }>();
|
||||||
// const emit = defineEmits<{ (e: "update:visible", value: boolean): void }>();
|
// const emit = defineEmits<{ (e: "update:visible", value: boolean): void }>();
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
|
@ -178,7 +163,7 @@ const emit = defineEmits<{
|
||||||
}>();
|
}>();
|
||||||
const dialogVisible = computed({
|
const dialogVisible = computed({
|
||||||
get: () => props.visible,
|
get: () => props.visible,
|
||||||
set: v => emit("update:visible", v)
|
set: (v) => emit("update:visible", v),
|
||||||
});
|
});
|
||||||
|
|
||||||
const formRef = ref<FormInstance>();
|
const formRef = ref<FormInstance>();
|
||||||
|
|
@ -189,11 +174,11 @@ function uid() {
|
||||||
const schoolOptions = ref([]);
|
const schoolOptions = ref([]);
|
||||||
const peopleOptions = ref([]);
|
const peopleOptions = ref([]);
|
||||||
const getSchoolDataFn = () => {
|
const getSchoolDataFn = () => {
|
||||||
getSchoolData().then(res => {
|
getSchoolData().then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
schoolOptions.value = res.data.map((i: any) => ({
|
schoolOptions.value = res.data.map((i: any) => ({
|
||||||
label: i.text,
|
label: i.text,
|
||||||
value: i.value
|
value: i.value,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -204,9 +189,9 @@ const getSchoolDataFn = () => {
|
||||||
const getSchoolBusinessPeopleList = () => {
|
const getSchoolBusinessPeopleList = () => {
|
||||||
getSchoolBusinessPeopleListApi({}).then((res: any) => {
|
getSchoolBusinessPeopleListApi({}).then((res: any) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
peopleOptions.value = (res.data || []).map(i => ({
|
peopleOptions.value = (res.data || []).map((i) => ({
|
||||||
label: i.text,
|
label: i.text,
|
||||||
value: i.text
|
value: i.text,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -219,15 +204,10 @@ const gradeOptions = [
|
||||||
{ label: "初三", value: "初三" },
|
{ label: "初三", value: "初三" },
|
||||||
{ label: "高一", value: "高一" },
|
{ label: "高一", value: "高一" },
|
||||||
{ label: "高二", value: "高二" },
|
{ label: "高二", value: "高二" },
|
||||||
{ label: "高三", value: "高三" }
|
{ label: "高三", value: "高三" },
|
||||||
];
|
];
|
||||||
|
|
||||||
type FeedbackKey =
|
type FeedbackKey = "leaders" | "classroom" | "equipment" | "students" | "others";
|
||||||
| "leaders"
|
|
||||||
| "classroom"
|
|
||||||
| "equipment"
|
|
||||||
| "students"
|
|
||||||
| "others";
|
|
||||||
interface FeedbackItem {
|
interface FeedbackItem {
|
||||||
id: string;
|
id: string;
|
||||||
text: string;
|
text: string;
|
||||||
|
|
@ -253,53 +233,47 @@ const form = reactive<FormModel>({
|
||||||
school: undefined,
|
school: undefined,
|
||||||
grade: undefined,
|
grade: undefined,
|
||||||
date: undefined,
|
date: undefined,
|
||||||
people: []
|
people: [],
|
||||||
},
|
},
|
||||||
work: {
|
work: {
|
||||||
talk: false,
|
talk: false,
|
||||||
talkDetail: "",
|
talkDetail: "",
|
||||||
classMeeting: false,
|
classMeeting: false,
|
||||||
classMeetingDetail: ""
|
classMeetingDetail: "",
|
||||||
},
|
},
|
||||||
feedback: {
|
feedback: {
|
||||||
leaders: [],
|
leaders: [],
|
||||||
classroom: [],
|
classroom: [],
|
||||||
equipment: [],
|
equipment: [],
|
||||||
students: [],
|
students: [],
|
||||||
others: []
|
others: [],
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
watch(
|
watch(
|
||||||
() => form.work.talk,
|
() => form.work.talk,
|
||||||
val => {
|
(val) => {
|
||||||
!val ? (form.work.talkDetail = "") : "";
|
!val ? (form.work.talkDetail = "") : "";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
watch(
|
watch(
|
||||||
() => form.work.classMeeting,
|
() => form.work.classMeeting,
|
||||||
val => {
|
(val) => {
|
||||||
!val ? (form.work.classMeetingDetail = "") : "";
|
!val ? (form.work.classMeetingDetail = "") : "";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const rules: FormRules = {
|
const rules: FormRules = {
|
||||||
"baseInfo.school": [
|
"baseInfo.school": [{ required: true, message: "请选择学校", trigger: "change" }],
|
||||||
{ required: true, message: "请选择学校", trigger: "change" }
|
"baseInfo.grade": [{ required: true, message: "请选择年级", trigger: "change" }],
|
||||||
],
|
"baseInfo.date": [{ required: true, message: "请选择赴校时间", trigger: "change" }],
|
||||||
"baseInfo.grade": [
|
|
||||||
{ required: true, message: "请选择年级", trigger: "change" }
|
|
||||||
],
|
|
||||||
"baseInfo.date": [
|
|
||||||
{ required: true, message: "请选择赴校时间", trigger: "change" }
|
|
||||||
],
|
|
||||||
"baseInfo.people": [
|
"baseInfo.people": [
|
||||||
{ required: true, message: "请选择赴校人员", trigger: "change" },
|
{ required: true, message: "请选择赴校人员", trigger: "change" },
|
||||||
{
|
{
|
||||||
type: "array",
|
type: "array",
|
||||||
min: 1,
|
min: 1,
|
||||||
message: "请至少选择一名赴校人员",
|
message: "请至少选择一名赴校人员",
|
||||||
trigger: "change"
|
trigger: "change",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const feedbackGroups = [
|
const feedbackGroups = [
|
||||||
|
|
@ -307,7 +281,7 @@ const feedbackGroups = [
|
||||||
{ key: "classroom", name: "双师课堂" },
|
{ key: "classroom", name: "双师课堂" },
|
||||||
{ key: "equipment", name: "设备" },
|
{ key: "equipment", name: "设备" },
|
||||||
{ key: "students", name: "学生" },
|
{ key: "students", name: "学生" },
|
||||||
{ key: "others", name: "其他" }
|
{ key: "others", name: "其他" },
|
||||||
] as { key: FeedbackKey; name: string }[];
|
] as { key: FeedbackKey; name: string }[];
|
||||||
|
|
||||||
function addProblem(key: FeedbackKey) {
|
function addProblem(key: FeedbackKey) {
|
||||||
|
|
@ -324,7 +298,7 @@ const feedbackGroupNameMap: Record<FeedbackKey, string> = {
|
||||||
classroom: "双师课堂",
|
classroom: "双师课堂",
|
||||||
equipment: "设备",
|
equipment: "设备",
|
||||||
students: "学生",
|
students: "学生",
|
||||||
others: "其他"
|
others: "其他",
|
||||||
};
|
};
|
||||||
function validateFeedbackNotEmpty() {
|
function validateFeedbackNotEmpty() {
|
||||||
for (const g of feedbackGroups) {
|
for (const g of feedbackGroups) {
|
||||||
|
|
@ -355,22 +329,17 @@ const handleFeedback = (data: any) => {
|
||||||
return items.map((item, idx) => ({
|
return items.map((item, idx) => ({
|
||||||
question: item.text,
|
question: item.text,
|
||||||
questionType,
|
questionType,
|
||||||
sort: (idx + 1).toString()
|
sort: (idx + 1).toString(),
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
let handledData = [];
|
let handledData = [];
|
||||||
|
|
||||||
if (data.leaders.length > 0)
|
if (data.leaders.length > 0) handledData.push(...processData(data.leaders, 1));
|
||||||
handledData.push(...processData(data.leaders, 1));
|
if (data.classroom.length > 0) handledData.push(...processData(data.classroom, 10));
|
||||||
if (data.classroom.length > 0)
|
if (data.equipment.length > 0) handledData.push(...processData(data.equipment, 15));
|
||||||
handledData.push(...processData(data.classroom, 10));
|
if (data.students.length > 0) handledData.push(...processData(data.students, 20));
|
||||||
if (data.equipment.length > 0)
|
if (data.others.length > 0) handledData.push(...processData(data.others, 999));
|
||||||
handledData.push(...processData(data.equipment, 15));
|
|
||||||
if (data.students.length > 0)
|
|
||||||
handledData.push(...processData(data.students, 20));
|
|
||||||
if (data.others.length > 0)
|
|
||||||
handledData.push(...processData(data.others, 999));
|
|
||||||
|
|
||||||
return handledData;
|
return handledData;
|
||||||
};
|
};
|
||||||
|
|
@ -399,8 +368,8 @@ let editParams = {
|
||||||
// 解决情况
|
// 解决情况
|
||||||
solution: "string",
|
solution: "string",
|
||||||
// 解决时间
|
// 解决时间
|
||||||
endTime: "2025-08-19T07:20:29.292Z"
|
endTime: "2025-08-19T07:20:29.292Z",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
// 解决方案记录
|
// 解决方案记录
|
||||||
solutionRecord: {
|
solutionRecord: {
|
||||||
|
|
@ -415,18 +384,18 @@ let editParams = {
|
||||||
// 执行记录
|
// 执行记录
|
||||||
executionRecords: "string",
|
executionRecords: "string",
|
||||||
// 执行时间
|
// 执行时间
|
||||||
executionTime: "2025-08-19T07:20:29.292Z"
|
executionTime: "2025-08-19T07:20:29.292Z",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
// 座谈情况
|
// 座谈情况
|
||||||
discussion: "string",
|
discussion: "string",
|
||||||
// 班会情况
|
// 班会情况
|
||||||
classMeeting: "string"
|
classMeeting: "string",
|
||||||
};
|
};
|
||||||
async function onSubmit() {
|
async function onSubmit() {
|
||||||
if (!formRef.value) return;
|
if (!formRef.value) return;
|
||||||
await formRef.value.validate(valid => {
|
await formRef.value.validate((valid) => {
|
||||||
if (!valid) return;
|
if (!valid) return;
|
||||||
// 新增:校验反馈问题不为空
|
// 新增:校验反馈问题不为空
|
||||||
if (!validateFeedbackNotEmpty()) return;
|
if (!validateFeedbackNotEmpty()) return;
|
||||||
|
|
@ -442,8 +411,7 @@ async function onSubmit() {
|
||||||
let reqParams = {
|
let reqParams = {
|
||||||
id: 0, //id传0代表新增
|
id: 0, //id传0代表新增
|
||||||
schoolId: form.baseInfo.school,
|
schoolId: form.baseInfo.school,
|
||||||
schoolName: schoolOptions.value.find(i => i.value == form.baseInfo.school)
|
schoolName: schoolOptions.value.find((i) => i.value == form.baseInfo.school).label,
|
||||||
.label,
|
|
||||||
grade: form.baseInfo.grade,
|
grade: form.baseInfo.grade,
|
||||||
// 固定传空字符串
|
// 固定传空字符串
|
||||||
gradeLevel: "",
|
gradeLevel: "",
|
||||||
|
|
@ -453,12 +421,12 @@ async function onSubmit() {
|
||||||
discussion: form.work.talkDetail,
|
discussion: form.work.talkDetail,
|
||||||
isClassMeeting: form.work.classMeeting,
|
isClassMeeting: form.work.classMeeting,
|
||||||
classMeeting: form.work.classMeetingDetail,
|
classMeeting: form.work.classMeetingDetail,
|
||||||
feedbackQuestions: handleFeedback(form.feedback)
|
feedbackQuestions: handleFeedback(form.feedback),
|
||||||
};
|
};
|
||||||
// return;
|
// return;
|
||||||
console.log("提交数据", reqParams);
|
console.log("提交数据", reqParams);
|
||||||
addOrEditApi(reqParams)
|
addOrEditApi(reqParams)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
ElMessage.success("提交成功");
|
ElMessage.success("提交成功");
|
||||||
dialogVisible.value = false;
|
dialogVisible.value = false;
|
||||||
|
|
@ -484,7 +452,7 @@ function resetForm() {
|
||||||
form.work.talkDetail = "";
|
form.work.talkDetail = "";
|
||||||
form.work.classMeeting = false;
|
form.work.classMeeting = false;
|
||||||
form.work.classMeetingDetail = "";
|
form.work.classMeetingDetail = "";
|
||||||
(Object.keys(form.feedback) as FeedbackKey[]).forEach(k => {
|
(Object.keys(form.feedback) as FeedbackKey[]).forEach((k) => {
|
||||||
form.feedback[k] = [];
|
form.feedback[k] = [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue