import {
DataTableColumn,
NButton,
NCascader,
NDataTable,
NForm,
NFormItem,
NIcon,
NImage,
NInput,
NModal,
NSpace,
useDialog,
useMessage
} from 'naive-ui';
import { defineComponent, onMounted, reactive, ref } 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',
render: (row: any) => {
return (
copyTo(row.nickname)}>
{row.nickname}
);
}
},
{
title: '手机号码',
key: 'phone',
render: (row: any) => {
return (
copyTo(row.phone)}>
{row.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 formRef = ref();
const changeSchoolInfo = () => {
formRef.value?.validate(async (err: any) => {
if (err) {
return;
}
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;
};
const copyTo = (text: string) => {
const input = document.createElement('input');
input.value = text;
document.body.appendChild(input);
input.select();
input.setSelectionRange(0, input.value.length);
document.execCommand('Copy');
document.body.removeChild(input);
message.success('复制成功');
};
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();
}}
/>
);
}
});