import React, { Component } from 'react';
import { observable, computed, toJS } from 'mobx'
import { observer, inject } from 'mobx-react';
import nj from 'nornj';
import { registerTmpl } from 'nornj-react';
import { autobind } from 'core-decorators';
import {tranBase58} from '../../../utils/util';
import 'flarej/lib/components/antd/table';
import 'flarej/lib/components/antd/pagination';
import 'flarej/lib/components/antd/input';
import 'flarej/lib/components/antd/button';
import 'flarej/lib/components/antd/cascader';
import 'flarej/lib/components/antd/datePicker';
import 'flarej/lib/components/antd/checkbox';
import Message from 'flarej/lib/components/antd/message';
import Notification from 'flarej/lib/components/antd/notification';
import UserCert from '../../components/usercert';
import styles from './user.m.scss';
import tmpls from './user.t.html';
// 页面容器组件
@registerTmpl('User')
@inject('store')
@observer
export default class User extends Component {
@observable pageSize = 10;
@observable useraddress='';
constructor(props) {
super(props);
}
componentDidMount() {
const { store: { header } } = this.props;
header.setSelectMenu(['user']);
this.Search();
}
Search(){
const { store: { user } } = this.props;
const closeLoading = Message.loading('正在获取数据...', 0);
let leader=this.props.store.common.getDefaultLedger(),
param={
fromIndex:(user.accountcurrent-1)*this.pageSize,
count:this.pageSize,
}
Promise.all([
user.getUserCount(leader)
]).then(() => {
if(user.accountcount>0){
Promise.all([ user.getUser(leader,
param
),
]).then(() => {
closeLoading();
});
}
else{
closeLoading();
}
});
}
SearchVague(){
const { store: { user } } = this.props;
const closeLoading = Message.loading('正在获取数据...', 0);
let leader=this.props.store.common.getDefaultLedger(),
keyword=this.useraddress,
param={
fromIndex:(user.accountcurrent-1)*this.pageSize,
count:this.pageSize,
keyword:keyword
}
Promise.all([
user.getUserCountVague(leader,keyword)
]).then(() => {
if(user.accountcount>0){
Promise.all([ user.getUserVague(leader,
param
),
]).then(() => {
closeLoading();
});
}
else{
closeLoading();
}
});
}
//模糊查询
@autobind
SerchInfo(){
if (this.useraddress.trim()!='') {
this.SearchVague();
}
else{
this.Search()
}
}
////分页切换
@autobind
onPageChange(page, pageSize) {
const { store: { user } } = this.props;
user.setCurrent(page);
this.Search();
}
@autobind
onChangeInput(e){
this.useraddress=e.target.value;
}
@computed get tableColumns() {
return [ {
title: '用户地址',
dataIndex: 'address',
key:'address',
},{
title: '用户公钥',
dataIndex: 'pubKey',
key:'pubKey',
render: (text, record, index) => nj `
${text}
算法:${tranBase58(text)}
`()
},{
title: '状态',
dataIndex: 'address',
key:'state',
render: (text, record, index) => nj`
`()
}];
}
render() {
const { store: { user } } = this.props;
return tmpls.container(this.state, this.props, this, {
styles,
user,
tableData: toJS(user.tableData),
});
}
}