Skip to content

Commit 839763e

Browse files
author
xiaoqing.dongxq
committed
add table
0 parents  commit 839763e

File tree

15 files changed

+692
-0
lines changed

15 files changed

+692
-0
lines changed

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
*.iml
2+
.idea/
3+
.ipr
4+
.iws
5+
*~
6+
~*
7+
*.diff
8+
*.patch
9+
*.bak
10+
.DS_Store
11+
Thumbs.db
12+
.project
13+
.*proj
14+
.svn/
15+
*.swp
16+
*.swo
17+
*.pyc
18+
*.pyo
19+
.build
20+
node_modules
21+
_site
22+
sea-modules
23+
spm_modules
24+
.cache
25+
dist

.spmignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
dist
2+
_site
3+
sea-modules
4+
spm_modules
5+
node_modules
6+
.git
7+
tests
8+
examples
9+
test

.travis.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
language: node_js
2+
3+
node_js:
4+
- "0.10"
5+
6+
install:
7+
- npm install spm coveralls
8+
9+
before_script:
10+
- node_modules/spm/bin/spm-install
11+
12+
script:
13+
- node_modules/spm/bin/spm-test
14+
15+
after_success:
16+
- node_modules/spm/bin/spm-test --coveralls | node_modules/.bin/coveralls

HISTORY.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# History
2+
3+
---
4+
5+
## 0.0.0
6+
7+
`new` It is the first version of table.

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# table [![spm version](http://spmjs.io/badge/table)](http://spmjs.io/package/table)
2+
3+
---
4+
5+
6+
7+
## Install
8+
9+
```
10+
$ spm install table --save
11+
```
12+
13+
## Usage
14+
15+
```js
16+
var table = require('table');
17+
// use table
18+
```

config.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
require.config({
2+
"packages": {
3+
"react/0.12.1": {
4+
"base": "/node_modules/react",
5+
"main": "react.js"
6+
},
7+
"envify/3.2.0": {
8+
"base": "/node_modules/react/node_modules/envify",
9+
"main": "index.js"
10+
},
11+
"jstransform/7.0.0": {
12+
"base": "/node_modules/react/node_modules/envify/node_modules/jstransform",
13+
"main": "src/jstransform"
14+
},
15+
"base62/0.1.1": {
16+
"base": "/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/base62",
17+
"main": "base62.js"
18+
},
19+
"esprima-fb/7001.1.0-dev-harmony-fb": {
20+
"base": "/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/esprima-fb",
21+
"main": "esprima.js"
22+
},
23+
"source-map/0.1.31": {
24+
"base": "/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/source-map",
25+
"main": "./lib/source-map.js"
26+
},
27+
"amdefine/0.1.0": {
28+
"base": "/node_modules/react/node_modules/envify/node_modules/jstransform/node_modules/source-map/node_modules/amdefine",
29+
"main": "./amdefine.js"
30+
},
31+
"through/2.3.6": {
32+
"base": "/node_modules/react/node_modules/envify/node_modules/through",
33+
"main": "index.js"
34+
},
35+
"jquery/1.11.1": {
36+
"base": "/node_modules/jquery",
37+
"main": "dist/jquery.js"
38+
},
39+
"simulate-dom-event/1.0.2": {
40+
"base": "/node_modules/simulate-dom-event",
41+
"main": "index"
42+
},
43+
"expect.js/0.3.1": {
44+
"base": "/node_modules/expect.js",
45+
"main": "index"
46+
}
47+
}
48+
});

examples/index.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Demo
2+
3+
---
4+
5+
## Normal usage
6+
7+
````javascript
8+
seajs.use('index', function(table) {
9+
10+
});
11+
````

gulpfile.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var gulp = require('gulp');
2+
var path = require('path');
3+
var packageInfo = require('./package.json');
4+
var src = path.resolve(process.cwd(), 'lib');
5+
var build = path.resolve(process.cwd(), 'build');
6+
var jshint = require('gulp-jshint');
7+
var stylish = require('jshint-stylish');
8+
var jscs = require('gulp-jscs');
9+
var exec = require('child_process').exec;
10+
11+
gulp.task('lint', function () {
12+
return gulp.src('./lib/**/*.js')
13+
.pipe(require('gulp-jsx')())
14+
.pipe(jshint())
15+
.pipe(jshint.reporter(stylish))
16+
.pipe(jshint.reporter('fail'))
17+
.pipe(jscs());
18+
});
19+
20+
gulp.task('tag', function (done) {
21+
var cp = require('child_process');
22+
var version = packageInfo.version;
23+
cp.exec('git tag ' + version + ' | git push origin ' + version + ':' + version + ' | git push origin master:master', done);
24+
});
25+
26+
gulp.task('config', function () {
27+
var modulexNpm = require('modulex-npm');
28+
var config = modulexNpm.generateConfig(['react', 'jquery', 'simulate-dom-event','sinon', 'expect.js']);
29+
require('fs').writeFileSync(path.join(process.cwd(), 'config.js'), 'require.config(' + JSON.stringify(config, null, 2) + ');');
30+
});
31+
32+
gulp.task('gh-changelog', function (done) {
33+
var ghChangeLog = require('gh-changelog');
34+
ghChangeLog.getChangeLog({
35+
user: 'kissyteam',
36+
repo: 'xtemplate',
37+
mdFilePath: './HISTORY.md'
38+
}, function () {
39+
done();
40+
});
41+
});

index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
var table = require('./lib/Table');
2+
3+
module.exports = table;

lib/Table.js

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/** @jsx React.DOM */
2+
3+
var React = require('react');
4+
5+
//表格列
6+
var TableColumn = React.createClass({
7+
8+
render : function () {
9+
return (<th width={this.props.width}>{this.props.title}</th>);
10+
}
11+
});
12+
13+
/**
14+
* 表格行
15+
*/
16+
var TableRow = React.createClass({
17+
18+
render : function () {
19+
var _self= this,
20+
columns = _self.props.columns,
21+
record = _self.props.record,
22+
index = _self.props.index,
23+
cells = [];
24+
for (var i = 0; i < columns.length; i++) {
25+
var col = columns[i],
26+
renderer = col.renderer,
27+
text = record[col.dataIndex];
28+
if(renderer){
29+
text = renderer(text,record,index);
30+
}
31+
cells.push(<td>{text}</td>);
32+
}
33+
return (<tr>{cells}</tr>);
34+
}
35+
});
36+
37+
var Table = React.createClass({
38+
_getColumns : function () {
39+
40+
var _self = this,
41+
columns = _self.props.columns,
42+
rst = [];
43+
for (var i = 0; i < columns.length; i++) {
44+
var col = columns[i];
45+
rst.push(<TableColumn title={col.title} dataIndex={col.dataIndex} width={col.width}/>);
46+
}
47+
return rst;
48+
},
49+
_getRows : function () {
50+
var _self = this,
51+
data = _self.props.data,
52+
columns = _self.props.columns,
53+
rst = [];
54+
55+
for (var i = 0; i < data.length; i++) {
56+
var record = data[i];
57+
rst.push(<TableRow record={record} index={i} columns={columns}/>);
58+
}
59+
return rst;
60+
61+
},
62+
render : function () {
63+
var _self = this,
64+
columns = _self._getColumns(),
65+
rows = _self._getRows();
66+
67+
return (
68+
<table className={this.props.className}>
69+
<thead>
70+
<tr>
71+
{columns}
72+
</tr>
73+
</thead>
74+
<tbody>
75+
{rows}
76+
</tbody>
77+
</table>
78+
);
79+
}
80+
});
81+
82+
module.exports = Table;

0 commit comments

Comments
 (0)