更新眠花糖选择城市

This commit is contained in:
wyf
2025-12-17 11:01:30 +08:00
parent f2657e4238
commit 18c3b86e8a
7 changed files with 572 additions and 77 deletions

View File

@@ -1,24 +1,22 @@
import 'dart:async';
import 'package:ef/ef.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/svg.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/pojo/city.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/home/home_controller.dart';
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
import 'package:vbvs_app/controller/mh_controller/people_info_controller.dart';
import 'package:vbvs_app/controller/person/person_controller.dart';
import 'package:vbvs_app/pages/common/selectDialog.dart';
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
import 'package:vbvs_app/pages/person/select_city.dart';
//更新人员信息
class PeopleInfoPage extends GetView<PeopleInfoController> {
Map data;
PeopleInfoPage({required this.data});
@@ -32,9 +30,10 @@ class PeopleInfoPage extends GetView<PeopleInfoController> {
}
PeopleInfoController controller = Get.put(PeopleInfoController());
@override
Widget build(BuildContext context) {
getPersonData();
getPersonData();
return LayoutBuilder(
builder: (context, boxConstraints) => GestureDetector(
onTap: () {
@@ -123,6 +122,22 @@ class PeopleInfoPage extends GetView<PeopleInfoController> {
isValid = false;
break;
}
// if (d['UTC'] == null ||
// d['UTC'].toString().isEmpty) {
// TopSlideNotification.show(context,
// text: "请选择城市".tr,
// textColor: Color(0xFFFF7159));
// isValid = false;
// break;
// }
// if (d['city_id'] ==null ||
// d['city_id'].toString().isEmpty) {
// TopSlideNotification.show(context,
// text: "请选择城市".tr,
// textColor: Color(0xFFFF7159));
// isValid = false;
// break;
// }
}
// 所有数据合法,开始保存
if (isValid) {
@@ -785,6 +800,137 @@ class PeopleInfoPage extends GetView<PeopleInfoController> {
),
),
getLine(),
Container(
height: 90.rpx,
margin: EdgeInsets.only(
left: 40.rpx, right: 35.rpx),
child: InkWell(
onTap: () {
// if (widget.status ==
// BindType.share.code) {
// TopSlideNotification.show(
// context,
// text: "被分享用户只能修改用户名称",
// textColor:
// themeController
// .currentColor
// .sc9);
// return;
// }
FocusScope.of(context)
.requestFocus(
FocusNode());
Future.delayed(
Duration(
milliseconds: 250),
() {
// 使用当前选中的城市数据,如果没有则创建默认
CityModel? currentCity;
if (controller
.model
.cityModels
.isNotEmpty &&
index <
controller
.model
.cityModels
.length) {
currentCity = controller
.model
.cityModels[index];
} else {
currentCity = CityModel();
}
showCitySelectionDialog(
context,
selectedCity: currentCity,
onCityChanged:
(CityModel newCity) {
final list = controller
.model.cityModels;
if (index <
list.length) {
// 替换
list[index] = newCity;
} else {
// 补齐并追加
list.add(newCity);
}
controller.model
.peopleList[
index]['UTC'] =
list[index].UTC;
controller.model
.peopleList[
index]
['city_id'] = list[
index]
.id;
controller.updateAll();
},
title: "选择城市".tr,
cityDataFuture: controller
.cityDataFuture, // 传入预加载的数据
colors:
CitySelectionColors(
pickerBackgroundColor:
stringToColor(
"#003058"),
confirmTextColor:
stringToColor(
"#84F5FF"),
selectedCityColor:
stringToColor(
"#84F5FF"),
),
);
});
},
child: Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text(
'请选择城市'.tr,
style: TextStyle(
fontFamily:
'Readex Pro',
color:
Color(0xFF9EA4B7),
fontSize: 30.rpx,
letterSpacing: 0,
),
),
Text(
getCityModel(index) !=
null
? MyUtils
.getDetailedCityDisplayText(
getCityModel(
index))
: "请选择城市".tr,
style: TextStyle(
color: getCityModel(
index) !=
null
? themeController
.currentColor
.sc3
: themeController
.currentColor
.sc4,
fontSize: AppConstants()
.title_text_fontSize,
),
),
],
),
),
),
getLine(),
],
),
)
@@ -819,4 +965,10 @@ class PeopleInfoPage extends GetView<PeopleInfoController> {
await peopleInfoController
.getPeoples(Get.arguments['mac'.tr]); // 控制器创建时立即执行
}
CityModel? getCityModel(int index) {
final list = controller.model.cityModels;
if (list.isEmpty || index >= list.length) return null;
return list[index];
}
}