QinGang_interested/lib/pages/mine/onboarding_full_page.dart

170 lines
5.4 KiB
Dart

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/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<OnboardingFullPage> createState() => _OnboardingFullPageState();
}
class _OnboardingFullPageState extends State<OnboardingFullPage> {
Map<String, dynamic> pd = {};
// 部门列表
List<dynamic> _deptList = [];
@override
void initState() {
super.initState();
_getDept();
}
// 获取部门
Future<void> _getDept() async {
try {
final data = {
'eqCorpinfoId': widget.scanData['id'],
// 'eqParentId': widget.scanData['corpinfoId'],
};
final result = await BasicInfoApi.getDeptTree(data);
if (result['success'] == true) {
final list = result['data'] ?? [];
if (list.length > 0) {
setState(() {
_deptList = list[0]['childrenList'] ?? [];
});
}
}
} catch (e) {}
}
// 提交
Future<void> _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<void> _relogin() async {
bool isChooseFirm = (SessionService.instance.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'] ?? '',
),
ItemListWidget.selectableLineTitleTextRightButton(
verticalInset: 15,
label: '选择入职部门:',
isEditable: true,
text: pd['departmentName'] ?? '请选择',
isRequired: true,
onTap: () async {
if (_deptList.isEmpty) {
ToastUtil.showNormal(context, '暂无部门信息');
return;
}
final found = await BottomPicker.show(
context,
items: _deptList,
itemBuilder:
(i) => Text(i['name']!, textAlign: TextAlign.center),
initialIndex: 0,
);
//FocusHelper.clearFocus(context);
if (found != null) {
setState(() {
pd['departmentId'] = found['id'];
pd['departmentName'] = found['name'];
pd['corpinfoId'] = found['corpinfoId'];
pd['corpinfoName'] = found['corpinfoName'];
});
}
},
),
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();
},
),
],
),
),
),
);
}
}