# xTable
**Repository Path**: hllinc/xTable
## Basic Information
- **Project Name**: xTable
- **Description**: xTable.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-09-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# xTable
This is a Table component for Angular2.
## 依赖
```json
{
'typescript': '>=2.0.3',
'angular': '>=2.2.1',
'jquery': '^3.2.1',
'font-awesome': '^4.7.0',
'bootstrap': '^3.3.7'
}
```
## 用法
### module中导入
```typescript
import {XTableModule} from '../components/x-table';
@NgModule({
imports: [
XTableModule
]
})
```
### template中使用
```html
```
### 对应的component
```typescript
@ViewChild('xTable') xTable: XTableModule;
option: any = {
serverUrl: 'auth/user/selectResultByXTablePage.do',
columns: {
filter: {
enabled: true
},
batch: {
enabled: true,
checkAllName: null,
checkSingleName: null
},
items: [{
label: "系统编号",
colName: "c_id",
colAlias: "u.c_id",
visible: false,
order: false,
width: null,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "string",// string,select,date,datetime,num,combobox
compare: "like" // like,=,>,<,between
},
render: (obj) => {
}
}, {
label: "姓名",
colName: "c_name",
visible: true,
order: true,
width: null,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "string",// string,select,date,datetime,num,combobox
compare: "like" // like,=,>,<,between
},
render: (obj) => {
}
}, {
label: "性别",
colName: "c_sex",
visible: true,
order: false,
width: null,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "select",// string,select,date,datetime,num,combobox
data : [{
text: '男',
value: '男'
}, {
text: '女',
value: '女'
}],
compare: "=" // like,=,>,<,between
},
render: (obj) => {
}
}, {
label: "邮箱",
colName: "c_email",
visible: true,
order: true,
width: null,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "string",// string,select,date,datetime,num,combobox
compare: "like" // like,=,>,<,between
},
render: (obj) => {
}
}, {
label: "电话",
colName: "c_telphone",
visible: true,
order: true,
width: null,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "string",// string,select,date,datetime,num,combobox
compare: "like" // like,=,>,<,between
},
render: (obj) => {
}
}, {
label: "创建时间",
colName: "d_createtime",
visible: true,
order: true,
width: 200,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: true,
type: "date",// string,select,date,datetime,num,combobox
compare: "like" // like,=,>,<,between
},
render: (obj) => {
let result = Sys.dateFormat(obj.d_createtime, 'yyyy-MM-dd');
return result;
}
}, {
label: "操作",
colName: null,
visible: true,
order: false,
width: 200,
cls: "text-center",
style: null,
ellipsis: false,
filterProp: {
enabled: false
},
render: [{
text: '删除',
type: 'button',
cls: 'btn-xs btn-danger',
exist: (obj) => {// 不设置该属性默认显示按钮
return true;// 返回true显示按钮,false不显示
},
event: (obj) => {
console.log(obj.c_name);
}
}, {
text: '编辑',
type: 'button',
cls: 'btn-xs btn-warning',
event: (obj) => {
console.log(obj.c_name);
}
}]
}]
}
};
ready() {
console.log('essence table ready.');
}
refresh(){
this.eTable.refresh();
}
```
# API说明
## 属性
### option
详细说明参见XTable jQuery版本的API文档,通用。
### option.columns.index
#### enabled
- boolean
是否显示列表序号,默认为true
### option.columns.batch
#### enabled
- boolean
是否进行批量操作
#### option.columns.items.render
当colName为null时,该列不映射任何字段,可以用做操作列等,对应render的值如下:
```typescript
[{
text: '删除', // 操作元素显示名称
type: 'button',// 操作元素类型
cls: 'btn-xs btn-danger',// 操作元素样式
event: (obj) => {// 操作元素事件
console.log(obj.c_name);
}
}, {
text: '编辑',
type: 'button',
cls: 'btn-xs btn-warning',
event: (obj) => {
console.log(obj.c_name);
}
}]
```
#### option.columns.items.colAlias
- string
列别名,以供后台多表查询使用
#### option.columns.items.filterProp
##### enabled: boolean
是否启用该列过滤
##### type: string,过滤输入控件类型。支持string,select,date
- string
控件类型为文本输入框
- select
控件类型为下拉列表,当为该类型时需要为其设置值,值的类型为对象数组,属性为text和value,text代表下拉列表显示的文本,value代表下拉列表选中的值,如下所示:
```typescript
{
enabled: true,
type: 'select',// string,select,date,datetime,num,combobox
data : [{
text: '男',
value: '男'
}, {
text: '女',
value: '女'
}],
compare: '=' // like,=,>,<,between
}
```
- date
控件类型为日期选择器
### 事件
- 表格准备就绪后会触发该事件
@Output()
ready: EventEmitter = new EventEmitter(false);
### 实例方法
- refresh()
刷新列表数据
- getSelectedItems()
获取批量选中的条目