Ant Design中模态框中订单金额随商品数量与商品类别动态变化的记录
来源:互联网 发布:起床闹钟软件 编辑:程序博客网 时间:2024/05/16 17:47
Ant Design中模态框中订单金额随商品数量与商品类别动态变化的记录
- 第一步,创建模态框,模态框中有商品(商品种类),商品数量,订单金额
<FormItem {...formItemLayout} label={"商品"} hasFeedback> {getFieldDecorator('goodsId', { initialValue: dto.goodsId+'' ,//value必须是字符串格式,因为Select rules: [{required: true, message: HAP.getMessage("商品是必须的","goods is required")}] })( <Select onChange={moneyChange}> //change函数 {goodsSelect} //goodsSelect 通过查询数据库得到 </Select> )} </FormItem> <FormItem {...formItemLayout} label={'数量'} hasFeedback> {getFieldDecorator('goodsNumber', { initialValue: dto?dto.goodsNumber:0, rules: [{required: true, message: HAP.getMessage("数量是必须的","goodsNumber is required")}, { validator: checkNumber }] // checkNumber验证函数 })( <InputNumber onChange={moneyChange} type='number' min={1}/> //change函数 )} </FormItem> <FormItem {...formItemLayout} label={'订单金额'}> {getFieldDecorator('aTotal', { initialValue: dto?dto.aTotal:'', })( <Input disabled size="default"/> )} </FormItem>
goodsSelect通过React的组件渲染后的加载函数去数据库查出所有的商品集合设置到state的goods:[]中,再通过map循环state.goods创建并放到option中
//所有商品
const goodsSelect = this.state.goods.map(item => <Option key={item.goodsId} value={item.goodsId + ""}>{item.goodsName}</Option>);
商品数量必须是正整数,所以checkNumber函数为:
//数量正则验证
checkNumber = (rule, value, callback) => { const reg = /^[1-9]\d*$/; if (reg.test(value)) { callback() } else { callback('请输入正整数'); }};
商品与数量设置为同一onChange函数,它俩都可以触发
//动态金额变化函数 moneyChange = (value) => { //value:触发onChange是从form表单传递过来的标签的value(goodsId 或者 goodsNumber) let goodsId; //定义商品Id let goodsNumber; //定义数量 this.modelFormRef.validateFields(["goodsId","goodsNumber"],(err, values) => { //goodsId=values['goodsId']||""; 得到form表单中的goodsId //goodsNumber=values['goodsNumber']||""; // 得到form表单中的商品数量 //上面两行方法不能使用,这种方法得到的数据不是即时的,总是慢一拍 // 通过判断value类型辨别value是goodsId还是goodsNumber if('number'==typeof(value)){ //传递过来的商品数量是number类型 goodsNumber=value; }else { //传递过来的商品Id是string类型 goodsId=value; } let goodsPrice = 0.0; // 定义单价 this.state.goods.map(item =>{ //得到价格 if(item.goodsId==goodsId){ //循环goods,通过if找到与goodId对应的goods对象 goodsPrice=item.goodsPrice; //返回商品单价给goodsPrice } }); //返回订单金额 使用三元运算符进行限制 this.modelFormRef.setFieldsValue({'aTotal': (goodsNumber*1.0*goodsPrice)>=0?(goodsNumber*1.0*goodsPrice):0}); }); }
阅读全文
0 0
- Ant Design中模态框中订单金额随商品数量与商品类别动态变化的记录
- 商品类别的标签
- 更新订单内多个商品的数量---在存在相同商品id时。
- 更新订单内多个商品的数量---在存在相同商品id时。
- 商品订单
- ajax 实现订单商品数量的增减及订单的删除进行异步更新界面
- mssql将传入的文本信息写入临时表,记录之间通过';'进行分割,商品编码,数量,销售金额通过','进行分割
- JS实现总价随数量变化而变化(顾客购买商品表单)
- 商品详情页中的数量的增加与减少
- 电商订单模块的订单表与订单商品表关系,1个订单对应多个商品的页面布局,el表达式去掉重复的数据。
- jquery来实现的添加商品和减少商品数量
- 统计各个商品每月的销售金额
- 商品类别管理设计
- 取出购买记录、评价记录、订单页面取出商品图片
- sql取出商品表每个类别的前3条记录
- 文章标题 商品订单
- AngularJS商品订单
- AngularJs 商品订单信息管理
- SpringApplication 的运行过程分析: run()
- vue2.0动态改变index中title
- Node.js使用
- Django模版中for循环的方法
- python+Selenium2自动化之路Day2-pip降级selenium3.0
- Ant Design中模态框中订单金额随商品数量与商品类别动态变化的记录
- 车东西 | 腾讯发布AI IN CAR车载系统 智能车机迎来BAT“三国杀”时代
- 腾讯首次公开完整AI战略:三层架构,八大场景
- 锤子新机坚果Pro2支持人脸解锁 腾讯拟在武汉建无人警局
- Date类的getTime()方法
- 深度体验!华为Mate10的十大人工智能必杀技
- X86 SMI 笔记
- Python学习---21
- caffe学习笔记--自定义cifar10网络参数