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,使用二级缓 ...
随机推荐
- 算法设计与分析 - 李春葆 - 第二版 - pdf->word v3
1.1 第1章─概论 练习题 . 下列关于算法的说法中正确的有( ). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊 Ⅳ. ...
- python 杂记 网络
参考资料:https://www.cnblogs.com/gareth-yu/p/9097943.htmlimport selectors import socket sel = selectors. ...
- 基于 C++ 的脚本语言 cpps 脚本
cpps 脚本是一个基于 C++ 的脚本语言. 基础语法: if&else 接口说明 根据括号中数据判断执行相关代码. 代码演示 var i = toint(io.getc()); if(i ...
- Oracle 中文转字母 函数
CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE V ...
- ELK---- Elasticsearch 安装 学习
elk = 分布式系统收集管理多台服务器日志,并能快速做增删改查操作的几个工具集合简称. elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据) 在linux ...
- 洛谷P1903 [国家集训队]数颜色 / 维护队列 ( 带 修 )
题意:有两种操作: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 对每个1操作 输出答案: 带修莫队 模板题 (加 ...
- Bzoj 3631: [JLOI2014]松鼠的新家(树链剖分+线段树)
3631: [JLOI2014]松鼠的新家 Time Limit: 10 Sec Memory Limit: 128 MB Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个 ...
- CONTINUE...? ZOJ - 4033
CONTINUE...? ZOJ - 4033 题解:先计算一下总数sum是否是偶数,如果不是则不能分出来,如果是则从后面开始分,先把人分到1.3组,分完sum / 2这些人,如果恰好能够分成零,那么 ...
- shell uniq 统计,计数
uniq选项与参数-i:忽略大小写-c:进行计数[zhang@localhost ~]$ cat 2.txt helloHelloWOrldabcabcABChello1 对2.txt进行sort后, ...
- java试题复盘——11月25日
上: 11.下列表述错误的是?(D) A.int是基本类型,直接存数值,Integer是对象,用一个引用指向这个对象. B.在子类构造方法中使用super()显示调用父类的构造方法,super()必须 ...