医学道
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
video/src/pages/manage/userInfo/userInfo.tsx

106 lines
2.7 KiB

import {View} from "@tarojs/components";
import {FC, useEffect, useState} from "react";
import styles from './userInfo.module.scss'
import Taro from "@tarojs/taro";
import Info from "@/pages/manage/userInfo/components/info";
import MyButton from "@/components/button/MyButton";
import {ManageApi, userApi} from "@/api";
import {Profile} from "@/store";
import LearningRecord from "@/components/learningRecord/learningRecord";
const UserInfo: FC = () => {
const {userId} = Taro.getCurrentInstance().router?.params as { userId: string }
const [data, setData] = useState<User | null>(null)
const router = Taro.useRouter()
const {user} = Profile.useContainer()
function setRoleType() {
if (!data) return;
if (data.role_type === 2) {
Taro.showModal({title: "禁止修改超级管理员"})
return
}
const type = data.role_type === 0 ? 1 : 0
Taro.showModal({
title: "设置为" + ['学员', '管理员'][type],
async success({confirm}) {
if (confirm) {
try {
await ManageApi.setRoleType(userId, {auth_id: user?.id!, role_type: type})
Taro.showToast({title: "设置成功"})
setData({
...data,
role_type: type
})
} catch (e) {
}
}
}
})
}
function delUser() {
Taro.showModal({
title: '是否确认删除',
async success({confirm}) {
if (confirm) {
try {
await ManageApi.del(userId)
Taro.showToast({title: '删除成功'})
Taro.navigateBack()
} catch (e) {
}
}
}
})
}
useEffect(() => {
userApi.info(userId).then(res => {
setData(res)
})
}, [])
Taro.useDidShow(() => {
if (data) {
userApi.info(router.params.userId!).then(res => {
setData(res)
})
}
})
return (
<View className={styles.page}>
<Info data={data}/>
<LearningRecord userId={userId}/>
<View className='mt-5'>
{
data?.role_type !== 2
&& <MyButton onClick={setRoleType}>{['设置为管理员', '设置为学员'][data?.role_type || 0]}</MyButton>
}
<MyButton
type='default'
style={{background: '#fff'}}
onClick={() => Taro.navigateTo({url: "/pages/manage/addStudent/addStudent?id=" + userId})}
className={'mt-3'}>
</MyButton>
<MyButton
type='default'
style={{background: '#fff', color: 'red'}}
className={'mt-3'}
onClick={delUser}>
</MyButton>
</View>
</View>
)
}
export default UserInfo