当前位置: 首页 > wzjs >正文

网站建设 dw 时间轴网站开发新加坡

网站建设 dw 时间轴,网站开发新加坡,江宁网站建设要多少钱,莘县网站建设公司关于数据模型:模型就是一种规范约束,便于维护管理,在不确定表单内会出现什么数据时,就没有模型一说。 这时就要用到动态表单(根据接口返回的字段,生成动态表单) 1、观察数据格式,定义…

关于数据模型:模型就是一种规范约束,便于维护管理,在不确定表单内会出现什么数据时,就没有模型一说。
这时就要用到动态表单(根据接口返回的字段,生成动态表单)

1、观察数据格式,定义模型

modelData:[{id:1,name:'模型一',ctaVal:{"first_usdt": {"val": "10", "title": "首仓金额", "unit": "usdt", "read": "0" },}},{id:2,name:'模型二',ctaVal:{"min_profit": {"val": "2", "title": "最小收益率", "unit": "%", "read": "1"}}}
]上边自定义的数据格式,已知id和name为固定格式,
ctaVal内的数据不确定具体会返回什么信息,
接口从别的地方抓取的数据,不确定具体字段,
需要动态展示的数据定义:`final Map<String, dynamic> ctaVal;`class DynamicFormModel {int? id;String? name;final Map<String, dynamic> ctaVal;DynamicFormModel ({required this.id,required this.name,required this.ctaVal,});factory DynamicFormModel .fromJson(Map<String, dynamic> json) {return StrategyListModel(id: json['id'] as int?,name: json['name'] as String?,ctaVal: json['ctaVal'] ?? {},);}Map<String, dynamic> toJson() => {'id': id,'name': name,'ctaVal': ctaVal,};
}

2、接口处理,请求数据,

// 模型列表
List<DynamicFormModel> modelList = [];
// 当前选中的模型id
int modelId = 0;
// 当前选中的模型
DynamicFormModel? selectedModel;
// 动态表单控制器
final Map<String, TextEditingController> fieldControllers = {};@overridevoid onReady() {super.onReady();// 获取模型列表、默认模型为第一条数据modelList = modelData.map((e) => DynamicFormModel .fromJson(e)).toList();if (modelList.isNotEmpty) {selectedModel = modelList.first;modelController.text = selectedModel?.name ?? '';modelId = selectedModel?.id ?? 0;}update(["strategy_add"]);
}@override
void onClose() {super.onClose();// 释放所有控制器fieldControllers.forEach((key, controller) {controller.dispose();});
}void submit() async{// 获取每个字段的值for (var entry in fieldControllers.entries) {if (entry.value.text.isEmpty) {Loading.toast('请输入完整内容');return;}}// 收集动态表单内的数据,key=键名(first_usdt)Map<String, String> data = {};fieldControllers.forEach((key, controller) {data[key] = controller.text;print('$key,${controller.text}');});// 如果需要自定义字段 data['remark'] = remarkController.text;// 转换为 JSONString jsonData = jsonEncode(data);print('jsonData = $jsonData');
}

3、动态渲染表单页面

// 表单
Widget _buildForm() {return GetBuilder<StrategyAddController>(id: "strategy_model",builder: (_) {return <Widget>[controller.selectedModel == null? const Center(child: Text('请选择一个模型')): <Widget>[...controller.selectedModel!.ctaVal.entries.map((item) {// 获取或创建控制器final controllerKey = item.key;if (!controller.fieldControllers.containsKey(controllerKey)) {controller.fieldControllers[controllerKey] = TextEditingController(text: item.value['val']);}final fieldController = controller.fieldControllers[controllerKey];return <Widget>[InputWidget(prefix: TextWidget.body(item.value['title'],),placeholder: item.value['read'] == '1'? "": '请输入${item.value['title']}',controller:fieldController,readOnly: item.value['read'] == '1' ? true : false,).expanded(),TextWidget.body(item.value['unit'],),].toRow(crossAxisAlignment: CrossAxisAlignment.center).opacity(item.value['read'] == '1' ? 0.5 : 1);}),].toColumn(crossAxisAlignment: CrossAxisAlignment.start)].toColumn();},);
}

...controller.selectedModel!.ctaVal.entries.map((item) => ...) 会遍历 ctaVal 中的每个条目,并将其映射为一个新的 Widget 列表。
每个 item 是一个 MapEntry,可以通过 item.keyitem.value 访问键和值。
这种方式非常适合动态生成 UI 组件,特别是在字段数量和内容不确定的情况下。


文章转载自:

http://4J5NCoGS.ykshx.cn
http://HrzBIi1v.ykshx.cn
http://kmqPuPSC.ykshx.cn
http://lGkstR5W.ykshx.cn
http://DTuLeWs1.ykshx.cn
http://OpfT9KJT.ykshx.cn
http://2PbqVVAO.ykshx.cn
http://ZSBzdj43.ykshx.cn
http://PteI5Di3.ykshx.cn
http://WCKtArKS.ykshx.cn
http://37rJDz9W.ykshx.cn
http://BWwW8FWi.ykshx.cn
http://brX3eQEh.ykshx.cn
http://fh2eEdPx.ykshx.cn
http://GXv6PJdv.ykshx.cn
http://hE29vht7.ykshx.cn
http://92vJMscV.ykshx.cn
http://H8U7uyVi.ykshx.cn
http://s3KOs2Zz.ykshx.cn
http://4MOr2iqL.ykshx.cn
http://BGGR5bYO.ykshx.cn
http://AIuo4YNK.ykshx.cn
http://B9lOwfac.ykshx.cn
http://9vXFC0Cn.ykshx.cn
http://3iL3G97e.ykshx.cn
http://r3gmogvL.ykshx.cn
http://IleoQYs9.ykshx.cn
http://7TO0WO3W.ykshx.cn
http://j5wnWUeT.ykshx.cn
http://kS4IQ2j3.ykshx.cn
http://www.dtcms.com/wzjs/657392.html

相关文章:

  • 长春火车站到龙嘉机场怎么走好用的h5制作软件
  • 工作了应该浏览器哪些网站温州易富信息技术有限公司
  • win10建设网站目录什么是工具型网站
  • 电商网站开发进度表清远网站推广优化公司
  • 三亚网站开发公司哈尔滨自助板建站
  • 怎么创建网站平台赚钱做英文小说网站
  • 张店学校网站建设公司wordpress插件排列
  • 大型企业网站欣赏西安百度首页优化
  • 湘潭做网站选择磐石网络如何建立公司网站账号
  • 企业邮箱注册申请免费注册入口东莞网站优化怎样
  • 佛山网站建设公司怎么选重庆营销网站建设
  • 网站建设怎么开发客户男的女的做那个视频网站
  • 自己做的网站如何上传网上学生个人网站作品
  • 公司网站制作步骤流程图网站建设模板哪里有
  • 北京个人制作网站logo设计在线生成免费下载
  • 谷德设计网站吴中企业建设网站报价
  • 广西建设职业技术学院图书馆网站东莞市招聘信息最新招聘
  • 加盟网站制作做网站工作怀孕
  • 杭州餐饮网站建设南宁cms建站
  • 大丰做网站网站没备案怎么做淘宝客
  • 坪山附近公司做网站建设哪家效益快企业购
  • 网站建设 推荐专业网站建设公司兴田德润放心
  • 如何建设企业网站ppt域名查询ip地址
  • 里面云智能建站佛山市seo推广联系方式
  • 建设 政务数据共享网站网站 做购物车
  • 长春专业网站制作公司义乌网站建设方式
  • 做网站哪个部分陕西专业做网站
  • 福建建设厅网站工程履约保险学网站开发网页制作
  • 上海网站建设一般多少钱中国企业信息公示网登录
  • 关于做摄影的网站php数据库的网站模板