import React, {FC, useCallback, useEffect, useState} from "react"; import {ManageApi} from "@/api/manage"; import {View, Input} from "@tarojs/components"; import Taro, {useRouter} from "@tarojs/taro"; import './depAdmin.scss' import PopPut from "@/components/popPut/popPut"; import folder from '@/static/img/folder.png' import ShowModel from "@/components/showModel/showModel"; import Empty from "@/components/empty/empty"; import {Profile} from '@/store' const DepAdmin: FC = () => { const router = useRouter() const [manages, setManages] = useState([]) const [show, setShow] = useState(false) const [users, setUsers] = useState([]) const [isPut, setIsPut] = useState(false) const [depName, setDepName] = useState('') const [reset, setReset] = useState(false) const {company} = Profile.useContainer() async function getData() { show && setShow(false) try { const res = await ManageApi.depList(router.params.dep_id || 0) if (res) { setReset(true) setManages(res.department) setUsers(res.data) } } catch (e) { } } function showPop(name: string | undefined) { if (name) { setDepName(name) setIsPut(true) } else { setIsPut(false) setDepName('') } setShow(true) } function del(name: string, id: string) { Taro.showModal({ title: name + ' 删除后将不可恢复', async success({confirm}) { if (confirm) { try { Taro.showLoading() await ManageApi.delDep(id) Taro.hideLoading() Taro.showToast({title: "删除成功"}) Taro.navigateBack() await getData() } catch (e) { } } } }) } function jumpDepAdmin(item: Manage) { Taro.navigateTo({url: `/pages/manage/depAdmin/depAdmin?dep_id=${item.id}&name=${encodeURI(item.name)}&id=${item.id}`}) } function managesSheet() { Taro.showActionSheet({ itemList: [ '查看部门课程', '修改当前部门名称', '删除部门' ], success({tapIndex}) { switch (tapIndex) { case 0: Taro.navigateTo({url: `/pages/manage/depCur/depCur?id=${router.params.id}`}) break case 1: showPop(decodeURI(router.params.name!)) break case 2: del(decodeURI(router.params.name!), router.params.id!) break } }, fail() { } }) } function jumpAddStudent() { Taro.navigateTo({url: '/pages/manage/addStudent/addStudent'}) } const addDep = useCallback(async () => { if (!depName) { Taro.showToast({title: '请填写部门名称!', icon: 'error'}) return } try { if (isPut) { await ManageApi.putDep(router.params.id!, depName) router.params.name = depName Taro.setNavigationBarTitle({ title: depName }) } else { await ManageApi.addDep({ name: depName, parent_id: Number(router.params.dep_id) || 0, company_id: company?.id!, sort: manages.length, }) } getData() setShow(false) } catch (e) { Taro.showToast({title: '操作失败', icon: 'error'}) } }, [isPut, depName]) useEffect(() => { getData() Taro.setNavigationBarTitle({ title: router.params.name ? decodeURI(router.params.name!) : '部门管理' }) }, []) Taro.useDidShow(() => { reset && getData() }) return ( <> {manages.map(d => jumpDepAdmin(d)} chevron leftImage={folder} />)} {users.map(d => Taro.navigateTo({url: '/pages/manage/userInfo/userInfo?userId=' + d.id})} content={['学员', '管理员', '超级管理员'][d.role_type]} />)} {!manages.length && !users.length && } 添加学员 showPop(undefined)}>分配部门 { router.params.id && 更多操作 } setShow(false)} onOk={addDep} > setDepName(e.detail.value)}/> ) } export default DepAdmin