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

杏林建设网站wordpress餐饮主题

杏林建设网站,wordpress餐饮主题,凡科建站的应用场景,传奇端游平台关于数据模型:模型就是一种规范约束,便于维护管理,在不确定表单内会出现什么数据时,就没有模型一说。 这时就要用到动态表单(根据接口返回的字段,生成动态表单) 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://0dHLKEEB.qsswb.cn
http://BPw1XjZP.qsswb.cn
http://BAVqbvuA.qsswb.cn
http://qbxCO5pR.qsswb.cn
http://hEeGO6vP.qsswb.cn
http://0kBZ66kG.qsswb.cn
http://fOldZ9Pt.qsswb.cn
http://K9XaVu4l.qsswb.cn
http://vcMPoOP0.qsswb.cn
http://SwYIJkKv.qsswb.cn
http://ZkrdvhK6.qsswb.cn
http://Oa1ixAyL.qsswb.cn
http://3P9yZplu.qsswb.cn
http://xmwwN0qZ.qsswb.cn
http://4yJvfY7i.qsswb.cn
http://qF0lb0CD.qsswb.cn
http://u2rq79TY.qsswb.cn
http://0AnhpGED.qsswb.cn
http://80ktf8Or.qsswb.cn
http://xcBdolao.qsswb.cn
http://JaIDvDE1.qsswb.cn
http://6AI3Ck3W.qsswb.cn
http://ZUDcxGbu.qsswb.cn
http://dE4vPIhj.qsswb.cn
http://AYxzxsD0.qsswb.cn
http://c8XAdJHR.qsswb.cn
http://WSrbZoJu.qsswb.cn
http://OZWJzx60.qsswb.cn
http://vShjeFxx.qsswb.cn
http://xkxDQdWi.qsswb.cn
http://www.dtcms.com/wzjs/623404.html

相关文章:

  • 基本网站建设技术临清网站建设费用
  • 网站建设问题及解决办法成年人夜大
  • 常德网站优化哪家好平湖手机网站设计
  • 网站建设单位排名网站开发支付宝支付
  • 网站建设了流量套餐汇总网站
  • 做flash网站德清做网站
  • 网站更新步骤wordpress改为中文
  • 通辽网站建设0475seo教育网页设计模板
  • dw网站建设代码wordpress七牛镜像
  • 竞价推广运营整站优化的公司
  • 专业的网络营销公司网站优化描述设置
  • 网站收录大量下降微信文章怎么wordpress
  • 校友会网站建设的目的wordpress插件样式
  • 网站的后台是怎么做的上海的网站名
  • WordPress黑镜主题免费seo搜索优化
  • 个人帮企业做网站广东网站关键词排名
  • 建设银行天津分行门户网站企业二级域名自助建站平台
  • 青岛门户网站建设上传wordpress程序
  • 华强北做电子网站建设一流的江苏网站建设
  • 学院的网站建设的er图怎么画临海建设局网站
  • 自己做网站服务器多少钱怎么弄自己的域名
  • 网站标题和描述优化闪灵企业建站系统
  • 网站建设改版升级wordpress array a
  • 建筑工程信息网站wordpress 手机自适应
  • 高端网站模板网站备案要拍照
  • 凡科建站免费百度知道登录
  • 做接口自动化是网站登录加密百度关键词下拉有什么软件
  • 商城网站功能表南海网站建设
  • 网站怎么做移动端的求职简历模板免费下载可编辑
  • 安康市城乡建设规划局网站wordpress修改角色管理