import 'package:flutter/material.dart'; import 'package:qhd_prevention/customWidget/bottom_picker.dart'; import 'package:qhd_prevention/customWidget/custom_alert_dialog.dart'; import 'package:qhd_prevention/customWidget/custom_button.dart'; import 'package:qhd_prevention/customWidget/department_picker.dart'; import 'package:qhd_prevention/customWidget/item_list_widget.dart'; import 'package:qhd_prevention/customWidget/toast_util.dart'; import 'package:qhd_prevention/http/modules/basic_info_api.dart'; import 'package:qhd_prevention/pages/main_tab.dart'; import 'package:qhd_prevention/pages/my_appbar.dart'; import 'package:qhd_prevention/pages/user/login_page.dart'; import 'package:qhd_prevention/services/SessionService.dart'; import 'package:qhd_prevention/services/auth_service.dart'; import 'package:qhd_prevention/tools/tools.dart'; import 'package:shared_preferences/shared_preferences.dart'; class OnboardingFullPage extends StatefulWidget { const OnboardingFullPage({super.key, required this.scanData}); final Map scanData; @override State createState() => _OnboardingFullPageState(); } class _OnboardingFullPageState extends State { Map pd = {}; // 部门列表 List _deptList = []; @override void initState() { super.initState(); } void chooseUnitHandle() { final data = { 'eqCorpinfoId': widget.scanData['id'], // 'eqParentId': widget.scanData['corpinfoId'], }; showModalBottomSheet( context: context, isScrollControlled: true, barrierColor: Colors.black54, backgroundColor: Colors.transparent, builder: (_) => DepartmentPicker( data: data, onSelected: (id, name, data) async { setState(() { pd['departmentId'] = data['id'] ?? ''; pd['departmentName'] = data['name'] ?? ''; pd['corpinfoId'] = data['corpinfoId'] ?? ''; pd['corpinfoName'] = data['corpinfoName'] ?? ''; }); }, ), ).then((_) {}); } // 提交 Future _saveSuccess() async { if (!FormUtils.hasValue(pd, 'corpinfoId')) { ToastUtil.showNormal(context, '请选择部门'); return; } if (!FormUtils.hasValue(pd, 'postName')) { ToastUtil.showNormal(context, '请输入岗位'); return; } await CustomAlertDialog.showConfirm( context, title: '温馨提示', content: '确定加入${widget.scanData['corpName'] ?? ''}?', onConfirm: () async { LoadingDialogHelper.show(); pd['id'] = SessionService.instance.accountId; try { final result = await BasicInfoApi.userFirmEntry(pd); LoadingDialogHelper.hide(); if (result['success'] == true) { ToastUtil.showNormal(context, '申请成功'); _relogin(); } else { ToastUtil.showNormal(context, result['errMessage']); } } catch (e) { LoadingDialogHelper.hide(); ToastUtil.showNormal(context, '操作失败,请重试'); } }, ); } /// 回到首页 Future _relogin() async { String token = SessionService.instance.token ?? ''; bool isChooseFirm = token.isNotEmpty; Navigator.pushReplacement( context, MaterialPageRoute(builder: (_) => MainPage(isChooseFirm: isChooseFirm)), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: MyAppbar(title: '信息补充'), body: SafeArea( child: ItemListWidget.itemContainer( horizontal: 5, ListView( children: [ ItemListWidget.singleLineTitleText( label: '企业名称', isEditable: false, text: widget.scanData['corpName'] ?? widget.scanData['corpinfoName'] ?? '', ), const Divider(), ItemListWidget.selectableLineTitleTextRightButton( verticalInset: 15, label: '选择入职部门:', isEditable: true, text: pd['departmentName'] ?? '请选择', isRequired: true, onTap: () { chooseUnitHandle(); }, ), const Divider(), ItemListWidget.singleLineTitleText( label: '岗位(工种):', isRequired: true, hintText: '请输入岗位名称', text: "", isEditable: true, onChanged: (value) { pd['postName'] = value; }, ), const Divider(), const SizedBox(height: 20), CustomButton( text: '保存', backgroundColor: Colors.blue, onPressed: () { _saveSuccess(); }, ), ], ), ), ), ); } }