医学道
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/selectDep/selectDep.tsx

58 lines
1.4 KiB

import React, {FC, useCallback, useEffect, useState} from "react";
import {Checkbox, View} from "@tarojs/components";
import Taro from "@tarojs/taro";
import {curriculum} from "@/api";
import PopPut from "@/components/popPut/popPut";
import folder from "@/static/img/folder.png";
import MyButton from "@/components/button/MyButton";
const SelectDep: FC = () => {
const {depIds} = Taro.getCurrentInstance()?.router?.params as { depIds: string }
const [ids, setIds] = useState<number[]>([])
const [deps, setDeps] = useState<Manage[]>([])
useEffect(() => {
curriculum.department().then(res => {
setDeps(res.data)
})
setIds(JSON.parse(depIds))
}, [])
const onChange = useCallback((id: number) => {
setIds([
...ids,
id
])
}, [ids])
function ok() {
if (!ids.length) {
Taro.showToast({title: '请选着部门', icon: "error"})
return
}
Taro.setStorageSync('selectDep', ids)
Taro.navigateBack({delta: 1})
}
return (
<View className='px-2 bg-white'>
{deps.map(d => <View className='flex align-center' key={d.id} onClick={()=>onChange(d.id)}>
<Checkbox value={d.id + ''} checked={ids.includes(d.id)}/>
<PopPut
key={d.id}
title={d.name}
chevron
leftImage={folder}
/>
</View>)}
<View className={'my-3'}>
<MyButton onClick={ok}></MyButton>
</View>
</View>
)
}
export default SelectDep