antd二级联动异步加载
/**
* Created by Admin on 2016/9/19.
* 批量导入
*/
import React, {Component, PropTypes} from "react";
import {Link} from "react-router";
import {Upload, Icon, Select, Row, Col, Button, notification, Card, Cascader} from "antd";
import CustomBreadcrumb from "../CustomBreadcrumb";
import Utils from "../../common/Utils";
import moment from "moment"; export default class ExportData extends Component { state = {
inputValue: '',
// templateUrl: '/assets/templatefile/行政处罚模板.xlsx',
options: [{
value: 'TI_B_XZXK_REPORTING',
label: '行政许可',
isLeaf: false,
}, {
value: 'TI_B_XZCF_REPORTING',
label: '行政处罚',
isLeaf: false,
}],
}; fetchSelectData = (tableName) => {
// debugger;
this.setState({loading: true});
const query = {
tableName: tableName
};
this.props.exportDataService.findList(query)
.then(arr => {
const options = this.state.options.map(item => {
if (item.value === tableName) {
item.children = arr.map(value => ({value: value, label: value, isLeaf: true}));
}
return item;
});
this.setState({options: options});
});
// .catch(e => this.setState({loading: false}));
// Utils.pushLink(this.props.location.pathname, query);
}; onChange = (values, selectedOptions) => {
console.log(values, selectedOptions); this.setState({
inputValue: selectedOptions.map(o => o.label).join(', '),
});
}; loadData = (selectedOptions) => {
console.log('loadData', selectedOptions); const obj = selectedOptions[0];
if (obj && !obj.isLeaf) {
this.fetchSelectData(obj.value);
}
// const targetOption = selectedOptions[selectedOptions.length - 1];
// targetOption.loading = true;
//
// // load options lazily
// setTimeout(() => {
// targetOption.loading = false;
// targetOption.children = [{
// label: `${targetOption.label} Dynamic 1`,
// value: 'dynamic1',
// }, {
// label: `${targetOption.label} Dynamic 2`,
// value: 'dynamic2',
// }];
// this.setState({
// options: [...this.state.options],
// });
// }, 1000);
}; render() {
const breadcrumbItems = [{
name: '在线填报'
}, {
link: '/reporting/data',
name: '数据维护'
}, {
name: '导出错误数据'
}];
console.log(this.state); let downloadElement ='';
//需要注意这里的取值条件可能有不满足的情况
if(this.state.inputValue && this.state.inputValue.length>6){
const myTime = this.state.inputValue.substring(5);
downloadElement = myTime
? <a href={`/inapi/reportingXzcf/export?time=${myTime}`}><Button type="primary" size="large">导出错误数据</Button></a>
: '';
} return (
<div>
<CustomBreadcrumb global={this.props.global}
globalService={this.props.globalService}
location={this.props.location}
items={breadcrumbItems}/>
<div className="block-box">
<div className="block-box-body clearfix"> <Row gutter={24} style={{marginBottom: "40px", marginLeft: "20px"}}>
<Col className="gutter-row" span={12}>
<div className="ant-row" style={{marginBottom: "40px"}}>
<div className="ant-col-5 ant-form-item-label">
<label htmlFor="CF_WSH" className="ant-form-item-required">请选择</label>
</div>
<Cascader
style={{width: '250px'}}
options={this.state.options}
loadData={this.loadData}
onChange={this.onChange}
changeOnSelect
/>
</div>
</Col> <Col className="gutter-row" span={5}>
{downloadElement}
</Col>
</Row>
</div>
</div>
</div>
);
} }
效果图展示:

antd二级联动异步加载的更多相关文章
- Android批量图片加载经典系列——采用二级缓存、异步加载网络图片
一.问题描述 Android应用中经常涉及从网络中加载大量图片,为提升加载速度和效率,减少网络流量都会采用二级缓存和异步加载机制,所谓二级缓存就是通过先从内存中获取.再从文件中获取,最后才会访问网络. ...
- winform TreeView的一些用法以及异步加载
今天,主要弄了一下对于树型控件的一些方法,以及异步加载.参考: http://www.cnblogs.com/greatverve/archive/2012/03/23/winform-treevie ...
- android listview 异步加载图片并防止错位
网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 convertView 不会出现错位现象, 重用 convertVie ...
- Android ListView 图片异步加载和图片内存缓存
开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...
- Listview异步加载之优化篇
异步加载图片基本思想: 1. 先从内存缓存中获取图片显示(内存缓冲) 2. 获取不到的话从SD卡里获取(SD卡缓冲) 3. 都获取不到的话从网络下载图片并保存到SD卡同时 ...
- zTree 异步加载
zTree异步加载数据的简单实现,更为详细的Api请参考 zTree官网 http://www.treejs.cn/ <link href="~/Content/ztree/css ...
- Listview 异步加载图片之优化篇(有图有码有解释)
在APP应用中,listview的异步加载图片方式能够带来很好的用户体验,同时也是考量程序性能的一个重要指标.关于listview的异步加载,网上其实很多示例了,中心思想都差不多,不过很多版本或是有b ...
- 转:web前端面试题合集 (Javascript相关)(js异步加载详解)
1. HTTP协议的状态消息都有哪些? 1**:请求收到,继续处理2**:操作成功收到,分析.接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请 ...
- 【jar包】图片的异步加载--【 Imageloader】
Android Imageloader图片异步加载 Imageloader是一个在android平台下简单的下载.显示.缓存空间的图片加载库. 异步下载网络图片并可以在UI线程更新View,使用二级缓 ...
随机推荐
- 2018年5月20日--西安icpc邀请赛试题一览
热身赛 正式赛 A题,样例不代表后台数据,出题人把题意和后台数据代表的意思搞差了! B: C: D-E F f-G G G-H H-I I-J J-k K-2
- 一个基于TCP/IP的小项目,实现广播消息的功能。(超详细版)
1.结合现状 功能分析 该功能基于上个项目的改进,主要是通过对服务器端代码的修改,以及对客户端作少许修改,实现开启多客户端时,一个客户端发送消息,达到对所有客户端广播的效果.可参考网吧里的点歌系统,比 ...
- day 03 turtle 画鹅
turtle 画鹅 import turtle t=turtle turtle.speed(10) t. setup(800,600) #画头 turtle.penup() turtle.goto(0 ...
- Python 字节码bytecode
字节码bytecode python把源码文件编译成字节码文件,存放在__pycahe子目录内,用.pyc结尾.之后如果不再修改源码文件,运行时则使用*.pyc文件编译成机器码,这样不但运行速度快,而 ...
- Codeforces Round #543 (Div. 1, based on Technocup 2019 Final Round) 题解
题面戳这里 A. Diana and Liana 首先如果s>ks>ks>k一定无解,特判一下.那么我们考虑找恰好满足满足题目中的要求的区间[l,r][l,r][l,r],那么需要要 ...
- [Google Guava] 3-缓存
原文地址 译文地址 译者:许巧辉 校对:沈义扬 范例 01 LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() ...
- 【转】解决 canvas 在高清屏中绘制模糊的问题
来源: http://www.css88.com/archives/9297 使用 canvas 绘制图片或者是文字在 Retina 屏中会非常模糊.如图: 因为 canvas 不是矢量图,而是像图片 ...
- python自动华 (二)
Python自动化 [第二篇]:Python基础-列表.元组.字典 本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初 ...
- xgzc— math 专题训练(二)
费马小定理&欧拉定理 费马小定理: 如果\(p\)是一个质数,而整数\(a\)不是\(p\)的倍数,\(a^{p-1}\equiv1\pmod p\) 欧拉定理: 当\(a\)与\(n\)互质 ...
- Appium获取toast消息
Android获取toast,需要在参数里设置automationName:Uiautomator2 设置设备的信息 desired_caps = { 'platformName': 'Android ...