import {useEffect, useState} from 'react' import Taro, {getCurrentInstance} from '@tarojs/taro' import { Form, Button, Input, Radio, SideNavBar, SubSideNavBar, SideNavBarItem } from '@nutui/nutui-react-taro' import {DictData} from "@/api/system/dict-data/model"; import {Picker} from '@nutui/nutui-react-taro' import {pageDictData} from "@/api/system/dict-data"; import {addBszxBm, myPageBszxBm} from "@/api/bszx/bszxBm"; import {BszxBm} from "@/api/bszx/bszxBm/model"; import {getBszxClassForTree} from "@/api/bszx/bszxClass"; // import {User} from "@/api/system/user/model"; // import Banner from "../pages/index/Banner"; const {router} = getCurrentInstance() const Bm = () => { const formId = Number(router?.params.id) const [form] = Form.useForm() const [sex, setSex] = useState() const [gradeName, setGradeName] = useState('') const [className, setClassName] = useState('') const [phone, setPhone] = useState('') const [classList, setClassList] = useState() const [gradeList, setGradeList] = useState() const [present, setPresent] = useState() const [isVisibleClass, setIsVisibleClass] = useState(false) const [isVisibleGrade, setIsVisibleGrade] = useState(false) const [FormData, setFormData] = useState( { type: 0, name: undefined, sex: undefined, phone: undefined, className: undefined, gradeName: undefined, address: undefined, workUnit: undefined, position: undefined, present: undefined, formId: undefined, comments: undefined } ) // 提交表单 const submitSucceed = (values: any) => { addBszxBm({ formId, name: values.name || FormData.name, sex: values.sex || FormData.sex, phone: phone, type: values.type || FormData.type, className: className || FormData.className, gradeName: gradeName || FormData.gradeName, address: values.address || FormData.address, workUnit: values.workUnit || FormData.workUnit, position: values.position || FormData.position, present: values.present ? '能' : '', comments: values.comments || FormData.comments }).then((data) => { if (data) { console.log(data,'data') Taro.showToast({title: `报名成功`, icon: 'success'}) // setFormData(); Taro.setStorageSync('NickName', values.name || FormData.name) setTimeout(() => { Taro.navigateTo({ url: '/bszx/bm-cert/bm-cert' }) }, 1000) } }).catch(() => { Taro.showToast({ title: '请勿重复报名', icon: 'error' }); }) } const submitFailed = (error: any) => { console.log(error, 'err...') // Taro.showToast({ title: error[0].message, icon: 'error' }) } const classConfirmPicker = ( options: any[] ) => { let description = '' options.forEach((option: any) => { description += ` ${option.text}` }) setClassName(description) } const gradeNameConfirmPicker = ( options: any[] ) => { let description = '' options.forEach((option: any) => { description += ` ${option.text}` }) setGradeName(description) } const changePicker = (options: any[], values: any, columnIndex: number) => { form.setFieldValue('className', values) console.log(options, columnIndex) } const [navBarState, setNavBarState] = useState({ visible: false }) const changeNarBar = (visible) => { setNavBarState({ visible }) } const onClassChange = (gradeName: string, className: string) => { console.log(gradeName,className) setGradeName(gradeName); setClassName(className); setFormData({ ...FormData, gradeName, className }) setNavBarState({ visible: false }) } const reload = () => { if (!Taro.getStorageSync('access_token')) { Taro.showModal({ title: '提示', content: '请先登录', showCancel: false, success: function (res) { if (res.confirm) { Taro.switchTab({ url: '/pages/user/user' }) } } }) return false; } myPageBszxBm().then(res => { const item = res.list[0]; console.log(item, 'myPageBszxBm') if (item) { setFormData(item) if (item.gradeName) { setGradeName(item.gradeName) } if (item.className) { setClassName(item.className) } } }) getBszxClassForTree().then(res => { console.log(res, 'setClassList'); setClassList(res); }) pageDictData({limit: 200}).then(res => { setSex(res?.list.filter((item) => item.dictCode === 'sex')) setPresent(res?.list.filter((item) => item.dictCode === 'present')) // setClassList([res?.list.filter((item) => item.dictCode === 'Class')]) setGradeList(res?.list.filter((item) => { if (item.dictCode === 'Grade') { item.value = item.dictDataCode; item.text = item.dictDataName; return item } })) }) setPhone(Taro.getStorageSync('Phone')) form.setFieldValue('phone', Taro.getStorageSync('Phone')) // 确保 form 已经初始化 } useEffect(() => { reload() }, [form]) // 确保 form 已经初始化 return ( <> {/**/} {/*
*/} {/* */} {/* 返回*/} {/*
*/}
submitSucceed(values)} onFinishFailed={(errors) => submitFailed(errors)} footer={
} > 校友 单位 { sex?.map((item, index) => ( {item.dictDataName} )) } { present?.map((item, index) => ( {item.dictDataName} )) }
classConfirmPicker(list)} defaultValue={[2]} threeDimensional={false} duration={1000} onClose={() => setIsVisibleClass(false)} onChange={changePicker} /> gradeNameConfirmPicker(list)} defaultValue={[2]} threeDimensional={false} duration={1000} onClose={() => setIsVisibleGrade(false)} onChange={changePicker} /> { changeNarBar(false) }} > { classList?.map((item) => { return ( { item.children?.map((sub) => { return ( <> { sub.children?.map((sub2) => { return ( { onClassChange(sub.name,sub2.name) }}/> ) }) } ) }) } ); }) }
) } export default Bm