QinGang_interested/lib/pages/mine/onboarding_full_page.dart

158 lines
4.9 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/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<OnboardingFullPage> createState() => _OnboardingFullPageState();
}
class _OnboardingFullPageState extends State<OnboardingFullPage> {
Map<String, dynamic> pd = {};
// 部门列表
List<dynamic> _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<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 {
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();
},
),
],
),
),
),
);
}
}