|
@@ -26,6 +26,8 @@ import TheEmpty from '/src/components/TheEmpty';
|
|
|
import { useUserStore } from '/src/store/modules/users';
|
|
|
import UpdateStudent from './modals/update-student';
|
|
|
import { initCache, setCache } from '/src/hooks/use-async';
|
|
|
+import { classArray, getgradeNumList } from '../classList/contants';
|
|
|
+import { getGradeLevelList, getGradeYearList } from '../home/api';
|
|
|
export default defineComponent({
|
|
|
name: 'student-studentList',
|
|
|
setup(props, { emit }) {
|
|
@@ -35,8 +37,13 @@ export default defineComponent({
|
|
|
keyword: '',
|
|
|
gender: '' as any,
|
|
|
classGroupId: '' as any,
|
|
|
- membership: '' as any
|
|
|
+ membership: '' as any,
|
|
|
+ currentClass: '' as any,
|
|
|
+ currentGradeNum: '' as any,
|
|
|
+ gradeYear: '' as any,
|
|
|
+ gradeLevel: ''
|
|
|
},
|
|
|
+ gradeNumList: [] as any,
|
|
|
searchWord: '',
|
|
|
orchestraType: null,
|
|
|
courseTypeCode: null,
|
|
@@ -53,8 +60,11 @@ export default defineComponent({
|
|
|
classList: [],
|
|
|
addStudentVisible: false,
|
|
|
editStatus: false,
|
|
|
- activeRow: {} as any
|
|
|
+ activeRow: {} as any,
|
|
|
+ popSelectYearList: [] as any,
|
|
|
+ popSelectLevelList: [] as any
|
|
|
});
|
|
|
+ state.gradeNumList = getgradeNumList();
|
|
|
const route = useRoute();
|
|
|
const router = useRouter();
|
|
|
const showGuide = ref(false);
|
|
@@ -93,8 +103,15 @@ export default defineComponent({
|
|
|
keyword: '',
|
|
|
gender: '' as any,
|
|
|
classGroupId: '' as any,
|
|
|
- membership: '' as any
|
|
|
+ membership: '' as any,
|
|
|
+ currentClass: '' as any,
|
|
|
+ currentGradeNum: '' as any,
|
|
|
+ gradeYear: '' as any,
|
|
|
+ gradeLevel: ''
|
|
|
};
|
|
|
+ if (state.popSelectYearList.length > 0) {
|
|
|
+ state.searchForm.gradeYear = state.popSelectYearList[1].id;
|
|
|
+ }
|
|
|
search();
|
|
|
setCache({ current: state.searchForm, saveKey: route.path });
|
|
|
};
|
|
@@ -124,9 +141,54 @@ export default defineComponent({
|
|
|
console.log('getList');
|
|
|
};
|
|
|
|
|
|
- onMounted(() => {
|
|
|
- getList();
|
|
|
- getClasslist();
|
|
|
+ // 获取学年
|
|
|
+ const getYearList = async () => {
|
|
|
+ try {
|
|
|
+ const { data } = await getGradeYearList();
|
|
|
+ const temp = data || [];
|
|
|
+ temp.forEach((i: any) => {
|
|
|
+ i.name = i.name + '学年';
|
|
|
+ });
|
|
|
+ temp.unshift({
|
|
|
+ id: '',
|
|
|
+ name: '全部学年'
|
|
|
+ });
|
|
|
+ state.popSelectYearList = temp || [];
|
|
|
+ if (temp.length > 0 && !state.searchForm.gradeYear) {
|
|
|
+ state.searchForm.gradeYear = temp[1].id;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+ // 获取学级
|
|
|
+ const getLevelList = async () => {
|
|
|
+ try {
|
|
|
+ const { data } = await getGradeLevelList();
|
|
|
+ const temp = data || [];
|
|
|
+ temp.forEach((i: any) => {
|
|
|
+ i.name = i.name + '级';
|
|
|
+ });
|
|
|
+ temp.unshift({
|
|
|
+ id: '',
|
|
|
+ name: '全部学级'
|
|
|
+ });
|
|
|
+ state.popSelectLevelList = temp || [];
|
|
|
+ if (temp.length > 0 && !state.searchForm.gradeLevel) {
|
|
|
+ state.searchForm.gradeLevel = temp[0].id;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ onMounted(async () => {
|
|
|
+ state.loading = true;
|
|
|
+ await getYearList();
|
|
|
+ await getLevelList();
|
|
|
+ await getList();
|
|
|
+ await getClasslist();
|
|
|
+ state.loading = false;
|
|
|
});
|
|
|
const columns = () => {
|
|
|
return [
|
|
@@ -247,6 +309,7 @@ export default defineComponent({
|
|
|
<SearchInput
|
|
|
{...{ placeholder: '请输入学生姓名' }}
|
|
|
class={styles.searchInput}
|
|
|
+ style={{ width: '160px' }}
|
|
|
searchWord={state.searchForm.keyword}
|
|
|
onChangeValue={(val: string) =>
|
|
|
(state.searchForm.keyword = val)
|
|
@@ -279,6 +342,51 @@ export default defineComponent({
|
|
|
<NFormItem>
|
|
|
<CSelect
|
|
|
{...({
|
|
|
+ options: state.popSelectYearList,
|
|
|
+ placeholder: '选择学年',
|
|
|
+ clearable: true,
|
|
|
+ inline: true,
|
|
|
+ labelField: 'name',
|
|
|
+ valueField: 'id'
|
|
|
+ } as any)}
|
|
|
+ v-model:value={state.searchForm.gradeYear}></CSelect>
|
|
|
+ </NFormItem>
|
|
|
+ <NFormItem>
|
|
|
+ <CSelect
|
|
|
+ {...({
|
|
|
+ options: state.popSelectLevelList,
|
|
|
+ placeholder: '选择学级',
|
|
|
+ clearable: true,
|
|
|
+ inline: true,
|
|
|
+ labelField: 'name',
|
|
|
+ valueField: 'id'
|
|
|
+ } as any)}
|
|
|
+ v-model:value={state.searchForm.gradeLevel}></CSelect>
|
|
|
+ </NFormItem>
|
|
|
+
|
|
|
+ <NFormItem>
|
|
|
+ <CSelect
|
|
|
+ {...({
|
|
|
+ options: state.gradeNumList,
|
|
|
+ placeholder: '选择年级',
|
|
|
+ clearable: true,
|
|
|
+ inline: true
|
|
|
+ } as any)}
|
|
|
+ v-model:value={state.searchForm.currentGradeNum}></CSelect>
|
|
|
+ </NFormItem>
|
|
|
+ <NFormItem>
|
|
|
+ <CSelect
|
|
|
+ {...({
|
|
|
+ options: classArray,
|
|
|
+ placeholder: '选择班级',
|
|
|
+ clearable: true,
|
|
|
+ inline: true
|
|
|
+ } as any)}
|
|
|
+ v-model:value={state.searchForm.currentClass}></CSelect>
|
|
|
+ </NFormItem>
|
|
|
+ {/* <NFormItem>
|
|
|
+ <CSelect
|
|
|
+ {...({
|
|
|
options: [
|
|
|
{ label: '全部年级班级', value: '' },
|
|
|
...state.classList
|
|
@@ -288,7 +396,7 @@ export default defineComponent({
|
|
|
inline: true
|
|
|
} as any)}
|
|
|
v-model:value={state.searchForm.classGroupId}></CSelect>
|
|
|
- </NFormItem>
|
|
|
+ </NFormItem> */}
|
|
|
<NFormItem>
|
|
|
<CSelect
|
|
|
{...({
|