import { DataTableColumn, NButton, NCascader, NDataTable, NForm, NFormItem, NIcon, NImage, NInput, NModal, NSpace, useDialog, useMessage } from 'naive-ui'; import { defineComponent, onMounted, reactive } from 'vue'; import styles from './index.module.less'; import { useUserStore } from '/src/store/modules/users'; import UploadFile from '/src/components/upload-file'; import { Add } from '@vicons/ionicons5'; import { api_schoolUpdate, api_sysAreaQueryAllProvince, api_teacherPage, api_tenantInfoUpdateStatus, api_userResetPassword } from '../../api'; import AddTeacher from '../../modal/add-teacher'; import TheQrCode from '/src/components/TheQrCode'; import { stringifyQuery } from '/src/router'; export default defineComponent({ name: 'school-info', setup() { const user = useUserStore(); const formOptions = reactive({ areaList: [] as any[] }); const forms = reactive({ name: user.info.schoolInfos?.[0]?.name, logo: user.info.schoolInfos?.[0]?.logo || user.info.avatar, provinceCode: user.info.schoolInfos?.[0]?.provinceCode || '', // 省份编码 cityCode: user.info.schoolInfos?.[0]?.cityCode || '', // 城市编码 regionCode: user.info.schoolInfos?.[0]?.regionCode || '' // 区域编码 }); const data = reactive({ loading: false, schoolLoading: true, dataList: [] as any[], disabled: true, modal: false, qrModal: false }); const columns = (): DataTableColumn[] => { return [ { title: '老师姓名', key: 'nickname' }, { title: '手机号码', key: 'phone' }, { title: '性别', key: 'questionTypeCode', render: (row: any) => { return
{row.gender ? '男' : '女'}
; } }, { title: '状态', key: 'statusName', render: (row: any) => { return (
{row.status === 'ACTIVATION' ? ( {row.statusName} ) : ( {row.statusName} )}
); } }, { title: '操作', key: 'titleImg', render: (row: any) => ( onResetPassword(row)}> 重置密码 {row.status === 'ACTIVATION' ? ( handleChange(row)}> 冻结 ) : ( handleChange(row)}> 解冻 )} ) } ]; }; const getAreaList = async () => { const res = await api_sysAreaQueryAllProvince(); if (res?.code === 200) { formOptions.areaList = res.data; } }; const getList = async () => { data.loading = true; const res = await api_teacherPage({ schoolId: user.info.schoolInfos?.[0]?.id, // jobType: 'TEACHER', // jobType: 'ADMIN', page: 1, rows: 1000 }); data.loading = false; if (res?.code === 200 && Array.isArray(res?.data?.rows)) { data.dataList = res.data.rows; } }; onMounted(() => { getAreaList(); getList(); }); const dialog = useDialog(); const message = useMessage(); const handleChange = (row: any) => { const statuStr = row.status === 'LOCKED' ? '解冻' : '冻结'; dialog.warning({ title: '温馨提示', content: `是否${statuStr}"${row.nickname}"?`, positiveText: '确定', negativeText: '取消', onPositiveClick: async () => { await api_tenantInfoUpdateStatus({ ids: [row.id], status: row.status === 'LOCKED' ? 'ACTIVATION' : 'LOCKED' }); getList(); message.success(statuStr + '成功'); } }); }; // 重置密码 const onResetPassword = (row: any): void => { dialog.warning({ title: '警告', content: `重置"${row.nickname}"的密码,是否继续?`, positiveText: '确定', negativeText: '取消', onPositiveClick: async () => { await api_userResetPassword({ userId: row.id, password: 'ktyq' + row.phone.substr(7), clientType: 'TEACHER' }); message.success('重置成功'); } }); }; const changeSchoolInfo = async () => { data.schoolLoading = false; await api_schoolUpdate({ ...user.info.schoolInfos?.[0], ...forms }); data.schoolLoading = true; message.success('修改成功'); data.disabled = true; }; const registerUrl = () => { const queryStr = `tenantId=${user.info.schoolInfos?.[0]?.tenantId}&schoolId=${user.info.schoolInfos?.[0]?.id}&schoolName=${user.info.schoolInfos?.[0]?.name}`; const url = `${location.origin}/classroom-app/#/teaher-register?` + queryStr; console.log(url); return url; }; return () => (
修改头像 {data.schoolLoading && ( { forms.logo = val; }} /> )}
{ forms.provinceCode = pathValues[0]?.code; forms.cityCode = pathValues[1]?.code; forms.regionCode = pathValues[2]?.code; }} /> {data.disabled ? ( (data.disabled = false)}> 修改信息 ) : ( (data.disabled = true)}> 取消 changeSchoolInfo()}> 完成 )}
} />} onClick={() => (data.modal = true)}> 添加老师 (data.qrModal = true)}> 老师注册二维码 { data.modal = false; getList(); }} />
); } });