ac-grids
Version:
AcGrids ui component for react
84 lines (71 loc) • 15.3 kB
JavaScript
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Con, Row, Col } from 'bee-layout';
import { Panel } from 'bee-panel';
import Drawer from 'bee-drawer';
import Clipboard from 'bee-clipboard';
var Demo1 = require("./demolist/Demo1");var Demo2 = require("./demolist/Demo2");var Demo3 = require("./demolist/Demo3");var DemoArray = [{"example":<Demo1 />,"title":" 基础示例","code":"/**\n * 基础示例\n * 全选、分页、过滤功能、交换\n *\n */\nimport React, { Component } from \"react\";\nimport AcGrids from 'ac-grids'\n\nconst column = [\n {\n title: \"订单编号\",\n dataIndex: \"orderCode\",\n key: \"orderCode\",\n width: 150,\n },\n {\n title: \"金额\",\n dataIndex: \"money\",\n key: \"money\",\n width: 160,\n textAlign:'right'\n },\n {\n title: \"类型\",\n dataIndex: \"type_name\",\n key: \"type_name\",\n width: 100\n },\n {\n title: \"采购组织\",\n dataIndex: \"purchasing\",\n key: \"purchasing\",\n width: 150\n },\n {\n title: \"采购组\",\n dataIndex: \"purchasingGroup\",\n key: \"purchasingGroup\",\n width: 300\n },\n {\n title: \"凭证日期\",\n dataIndex: \"voucherDate\",\n key: \"voucherDate\",\n width: 150\n },\n {\n title: \"审批状态\",\n dataIndex: \"approvalState_name\",\n key: \"approvalState_name\",\n width: 150\n },\n {\n title: \"确认状态\",\n dataIndex: \"confirmState_name\",\n key: \"confirmState_name\",\n width: 500\n },\n {\n title: \"关闭状态\",\n dataIndex: \"closeState_name\",\n key: \"closeState_name\",\n width: 150\n }\n];\nconst dataList = [\n {\n orderCode: \"2343\",\n supplierName: \"xxx\",\n type_name: \"123\",\n purchasing: \"内行\",\n purchasingGroup: \"323\",\n voucherDate: \"kkkk\",\n approvalState_name: \"vvvv\",\n confirmState_name: \"aaaa\",\n closeState_name: \"vnnnnn\",\n money:'1232.56',\n d: \"操作\",\n key: \"1\"\n },\n {\n _checked: true,\n orderCode: \"222\",\n supplierName: \"22xxx\",\n type_name: \"1223\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'2341232.56',\n d: \"2操作\",\n key: \"2\"\n },\n {\n orderCode: \"222\",\n supplierName: \"22xxx\",\n _disabled: true,\n type_name: \"1223\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'122368732.56',\n d: \"3操作\",\n key: \"3\"\n },\n {\n orderCode: \"222\",\n supplierName: \"22xxx\",\n type_name: \"1223\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'18765232.56',\n d: \"4操作\",\n key: \"4\"\n }\n];\n\nclass Demo1 extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n let paginationObj = {\n maxButtons:999,\n items:15,//一页显示多少条\n activePage:2,\n onSelect:(value)=>{console.log('切换到第几页:'+value)},\n onDataNumSelect:(value)=>{console.log(\"每页多少条:\"+value)},//改变页码回调\n }\n return (\n <AcGrids\n columns={column}\n data={dataList}\n getSelectedDataFunc={this.getSelectedDataFunc}\n paginationObj={paginationObj}\n multiSelect={false}\n ref='grid'\n /> \n );\n }\n}\n\n\nexport default Demo1;","desc":" 全选、分页、过滤功能、交换"},{"example":<Demo2 />,"title":" CardTable","code":"/**\n * CardTable\n * 全选、分页、过滤功能、交换\n *\n */\nimport React, { Component } from \"react\";\nimport AcGrids from 'ac-grids';\n\nconst EditGrid = AcGrids.EditGrid;\n\nconst column = [\n {\n title: \"订单编号\",\n dataIndex: \"orderCode\",\n key: \"orderCode\",\n width: 150,\n renderType:'input',\n required:true,\n validate:true,\n disabled:true,\n pattern:/^2$/,\n patternMessage:'格式错误',\n textAlign:'left'\n },\n {\n title: \"金额\",\n dataIndex: \"money\",\n key: \"money\",\n width: 160,\n textAlign:'right',\n renderType:'inputNumber',\n required:true,\n validate:true,\n filedProps:{\n defaultValue:'123',\n precision:2\n }\n },\n {\n title: \"类型\",\n dataIndex: \"type_name\",\n key: \"type_name\",\n width: 100,\n renderType:'select',\n required:true,\n validate:true,\n filedProps:{\n defaultValue:'1',\n options:[\n {\n key:'类型1',value:'1'\n },\n {\n key:'类型2',value:'2'\n },\n {\n key:'类型3',value:'3'\n },\n ]\n }\n },\n {\n title: \"采购组织\",\n dataIndex: \"purchasing\",\n key: \"purchasing\",\n width: 150,\n renderType:'input',\n },\n {\n title: \"采购组\",\n dataIndex: \"purchasingGroup\",\n key: \"purchasingGroup\",\n width: 300\n },\n {\n title: \"凭证日期\",\n dataIndex: \"voucherDate\",\n key: \"voucherDate\",\n width: 150\n },\n {\n title: \"审批状态\",\n dataIndex: \"approvalState_name\",\n key: \"approvalState_name\",\n width: 150\n },\n {\n title: \"确认状态\",\n dataIndex: \"confirmState_name\",\n key: \"confirmState_name\",\n width: 500\n },\n {\n title: \"关闭状态\",\n dataIndex: \"closeState_name\",\n key: \"closeState_name\",\n width: 150\n }\n];\nconst dataList = [\n {\n orderCode: \"11\",\n supplierName: \"xxx\",\n type_name: \"1\",\n purchasing: \"内行\",\n purchasingGroup: \"采购组\",\n voucherDate: \"kkkk\",\n approvalState_name: \"vvvv\",\n confirmState_name: \"aaaa\",\n closeState_name: \"vnnnnn\",\n money:'1232.56',\n d: \"操作\",\n key: \"1\"\n },\n {\n orderCode: \"22\",\n supplierName: \"22xxx\",\n type_name: \"2\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'2341232.56',\n d: \"2操作\",\n key: \"2\"\n },\n {\n orderCode: \"33\",\n supplierName: \"22xxx\",\n type_name: \"3\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'122368732.56',\n d: \"3操作\",\n key: \"3\"\n },\n {\n orderCode: \"44\",\n supplierName: \"22xxx\",\n type_name: \"3\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'18765232.56',\n d: \"4操作\",\n key: \"4\"\n }\n];\n\nclass Demo1 extends Component {\n constructor(props) {\n super(props);\n this.state={\n disabled:false\n }\n }\n\n onChange=(data)=>{\n console.log('table的数据如下')\n console.log(data)\n }\n onDel=(data)=>{\n console.log('删除的数据如下')\n console.log(data)\n }\n setdisabled=()=>{\n this.setState({\n disabled:true\n })\n }\n\n render() {\n let paginationObj = {\n items:10,\n // total:20,//总共多少条、\n freshData:this.freshData,//点击下一页刷新的数据\n onDataNumSelect:this.onDataNumSelect, //每页大小改变触发的事件\n showJump:false,\n noBorder:true\n }\n return (\n <div className='ac-grid-demo'>\n <EditGrid\n defaultOpen={true}\n columns={column}\n data={dataList}\n paginationObj={paginationObj}\n multiSelect={true}\n onChange={this.onChange}\n showPagination={false}\n onDel={this.onDel}\n />\n </div>\n \n );\n }\n}\n\n\nexport default Demo1;","desc":" 全选、分页、过滤功能、交换"},{"example":<Demo3 />,"title":" EditGrid 不可用状态","code":"/**\n * EditGrid 不可用状态\n * disabled\n *\n */\nimport React, { Component } from \"react\";\nimport { Button } from 'tinper-bee';\nimport AcGrids from 'ac-grids';\n\nconst EditGrid = AcGrids.EditGrid;\n\nconst column = [\n {\n title: \"订单编号\",\n dataIndex: \"orderCode\",\n key: \"orderCode\",\n width: 150,\n renderType:'input',\n required:true,\n validate:true,\n pattern:/^2$/,\n patternMessage:'格式错误',\n filedProps:{\n maxLength:'9'\n }\n },\n {\n title: \"金额\",\n dataIndex: \"money\",\n key: \"money\",\n width: 160,\n textAlign:'right',\n renderType:'inputNumber',\n required:true,\n validate:true,\n filedProps:{\n precision:0\n }\n },\n {\n title: \"类型\",\n dataIndex: \"type_name\",\n key: \"type_name\",\n width: 100,\n renderType:'select',\n required:true,\n validate:true,\n filedProps:{\n options:[\n {\n key:'类型1',value:'1'\n },\n {\n key:'类型2',value:'2'\n },\n {\n key:'类型3',value:'3'\n },\n ]\n }\n },\n {\n title: \"采购组织\",\n dataIndex: \"purchasing\",\n key: \"purchasing\",\n width: 150\n },\n {\n title: \"采购组\",\n dataIndex: \"purchasingGroup\",\n key: \"purchasingGroup\",\n width: 300\n },\n {\n title: \"凭证日期\",\n dataIndex: \"voucherDate\",\n key: \"voucherDate\",\n width: 150\n },\n {\n title: \"审批状态\",\n dataIndex: \"approvalState_name\",\n key: \"approvalState_name\",\n width: 150\n },\n {\n title: \"确认状态\",\n dataIndex: \"confirmState_name\",\n key: \"confirmState_name\",\n width: 500\n },\n {\n title: \"关闭状态\",\n dataIndex: \"closeState_name\",\n key: \"closeState_name\",\n width: 150\n }\n];\nconst dataList = [\n {\n orderCode: \"11\",\n supplierName: \"xxx\",\n type_name: \"1\",\n purchasing: \"内行\",\n purchasingGroup: \"323\",\n voucherDate: \"kkkk\",\n approvalState_name: \"vvvv\",\n confirmState_name: \"aaaa\",\n closeState_name: \"vnnnnn\",\n money:'1232.56',\n d: \"操作\",\n key: \"1\"\n },\n {\n orderCode: \"22\",\n supplierName: \"22xxx\",\n type_name: \"2\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'2341232.56',\n d: \"2操作\",\n key: \"2\"\n },\n {\n orderCode: \"33\",\n supplierName: \"22xxx\",\n type_name: \"3\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'122368732.56',\n d: \"3操作\",\n key: \"3\"\n },\n {\n orderCode: \"44\",\n supplierName: \"22xxx\",\n type_name: \"3\",\n purchasing: \"内行2\",\n purchasingGroup: \"3223\",\n voucherDate: \"222kk\",\n approvalState_name: \"22vvvv\",\n confirmState_name: \"2aaaa\",\n closeState_name: \"2vnnnnn\",\n money:'18765232.56',\n d: \"4操作\",\n key: \"4\"\n }\n];\n\nclass Demo1 extends Component {\n constructor(props) {\n super(props);\n this.state={\n disabled:false\n }\n }\n\n onChange=(data)=>{\n console.log('table的数据如下')\n console.log(data)\n }\n onDel=(data)=>{\n console.log('删除的数据如下')\n console.log(data)\n }\n click=()=>{\n this.setState({\n disabled:!this.state.disabled\n })\n }\n render() {\n let paginationObj = {\n items:10,\n // total:20,//总共多少条、\n freshData:this.freshData,//点击下一页刷新的数据\n onDataNumSelect:this.onDataNumSelect, //每页大小改变触发的事件\n showJump:false,\n noBorder:true\n }\n return (\n <div className='ac-grid-demo'>\n <Button onClick={this.click} style={{'marginBottom':'20px'}} colors='primary'>\n {this.state.disabled?'设置可编辑':'设置不可编辑'}\n </Button>\n <EditGrid\n showIndex={false}\n disabled={this.state.disabled}\n defaultOpen={true}\n columns={column}\n data={dataList}\n paginationObj={paginationObj}\n multiSelect={true}\n onChange={this.onChange}\n showPagination={false}\n onDel={this.onDel}\n />\n </div>\n \n );\n }\n}\n\n\nexport default Demo1;","desc":" disabled"}]
class Demo extends Component {
constructor(props){
super(props);
this.state = {
open: false
}
}
handleClick=()=> {
this.setState({ open: !this.state.open })
}
fCloseDrawer=()=>{
this.setState({
open: false
})
}
render () {
const { title, example, code, desc, scss_code } = this.props;
const header = (
<div>
<p className='component-title'>{ title }</p>
<p>{ desc }</p>
<span className='component-code' onClick={this.handleClick}> 查看源码 <i className='uf uf-arrow-right'/> </span>
</div>
);
return (
<Col md={12} id={title.trim()} className='component-demo'>
<Panel header={header}>
{example}
</Panel>
<Drawer className='component-drawerc' title={title} show={this.state.open} placement='right' onClose={this.fCloseDrawer}>
<div className='component-code-copy'> JS代码
<Clipboard action="copy" text={code}/>
</div>
<pre className="pre-js">
<code className="hljs javascript">{ code }</code>
</pre >
{!!scss_code ?<div className='component-code-copy copy-css'> SCSS代码
<Clipboard action="copy" text={scss_code}/>
</div>:null }
{ !!scss_code ? <pre className="pre-css">
<code className="hljs css">{ scss_code }</code>
</pre> : null }
</Drawer>
</Col>
)
}
}
class DemoGroup extends Component {
constructor(props){
super(props)
}
render () {
return (
<Row>
{DemoArray.map((child,index) => {
return (
<Demo example= {child.example} title= {child.title} code= {child.code} scss_code= {child.scss_code} desc= {child.desc} key= {index}/>
)
})}
</Row>
)
}
}
ReactDOM.render(<DemoGroup/>, document.getElementById('tinperBeeDemo'));