import { defineComponent, reactive, onMounted, ref, nextTick } from 'vue'; import styles from './index.module.less'; import { NButton, NDataTable, NForm, NFormItem, NImage, NModal, NSelect, NSpace, useDialog, useMessage } from 'naive-ui'; import SearchInput from '@/components/searchInput'; import CSelect from '@/components/CSelect'; import Pagination from '@/components/pagination'; import { classGroupList, deleteClass } from './api'; import CreateClass from './modals/createClass'; import RestStudentBox from './modals/restStudentBox'; import TrainDetail from './modals/Gotoclass'; import { getgradeNumList, classArray } from './contants'; import add from '@/views/studentList/images/add.png'; import ClassGuide from '@/custom-plugins/guide-page/class-guide'; import { useRouter } from 'vue-router'; import { rowDark } from 'naive-ui/es/legacy-grid/styles'; import TheEmpty from '/src/components/TheEmpty'; import TheTooltip from '/src/components/TheTooltip'; export default defineComponent({ name: 'class-classList', setup(props, { emit }) { const state = reactive({ searchForm: { keyword: null as any, currentClass: null, currentGradeNum: null }, orchestraType: null, courseTypeCode: null, loading: false, pagination: { page: 1, rows: 10, pageTotal: 6 }, gradeNumList: [] as any, tableList: [] as any, studentVisible: false, activeRow: null as any, showaddClass: false, goCourseVisiable: false, removeVisiable: false, removeRow: {} as any }); const formRef = ref(); const dialog = useDialog(); const message = useMessage(); const router = useRouter(); const search = () => { state.pagination.page = 1; getList(); console.log('search', state); }; const showGuide = ref(false); state.gradeNumList = getgradeNumList(); const onReset = () => { state.searchForm = { keyword: null as any, currentClass: null, currentGradeNum: null }; getList(); }; const removeClass = async () => { try { await deleteClass({ ids: state.removeRow.id }); getList(); message.success(`删除成功`); state.removeVisiable = false; } catch (e) { console.log(e); } }; const getList = async () => { // classGroupList state.loading = true; try { const res = await classGroupList({ ...state.searchForm, ...state.pagination }); state.tableList = res.data.rows; state.pagination.pageTotal = res.data.total; state.loading = false; setTimeout(() => { if (state.tableList.length > 0) { showGuide.value = true; } }, 500); } catch (e) { state.loading = false; console.log(e); } console.log('getList'); }; const columns = () => { return [ { title: '班级名称', key: 'name' }, { title: '学生人数', key: 'preStudentNum' }, { title: '上次学习', key: 'lastStudy', render(row: any) { return ; } }, { title: '操作', key: 'id', render(row: any, index: number) { return (
{index == 0 ? (
{ router.push({ path: '/classDetail', query: { name: row.name, id: row.id } }); }}> 详情
) : ( { router.push({ path: '/classDetail', query: { name: row.name, id: row.id } }); }}> 详情 )} {index == 0 ? ( { startResetStudent(row); }}> 学生调整 ) : ( { startResetStudent(row); }}> 学生调整 )} {index == 0 ? ( 0)} type="primary" text onClick={() => classesBegin(row)}> 开始上课 ) : ( 0)} type="primary" text onClick={() => classesBegin(row)}> 开始上课 )} {!(row.preStudentNum > 0) ? (

{ state.removeVisiable = true; state.removeRow = row; }}> 删除

) : null}
); } } ]; }; const startResetStudent = (row: any) => { state.activeRow = row; state.studentVisible = true; }; const classesBegin = (row: any) => { state.activeRow = row; state.goCourseVisiable = true; }; onMounted(() => { getList(); }); return () => (
(state.searchForm.keyword = val) }> 搜索 重置
(state.showaddClass = true)} v-slots={{ icon: () => ( <> ) }}> 创建班级
}} class={styles.classTable} loading={state.loading} columns={columns()} data={state.tableList}>
(state.studentVisible = false)} onGetList={() => getList()}> getList()} onClose={() => (state.showaddClass = false)} /> (state.goCourseVisiable = false)}>

确定要删除班级么? 删除后该班级所有学生的年级、班级信息将会清空 ,重新加入班级后同步更新。

确定 (state.removeVisiable = false)}> 取消
{showGuide.value ? : null}
); } });