bugfix
This commit is contained in:
parent
220eb8bf1a
commit
e39214e606
@ -133,7 +133,7 @@ bricks.DataRow = class extends bricks.HBox {
|
||||
var opts = bricks.extend({
|
||||
margin:'3px'
|
||||
}, f);
|
||||
if (header){
|
||||
if (header || ! this.user_data){
|
||||
opts.value = f.label || f.name;
|
||||
} else {
|
||||
opts.value = this.user_data[f.name];
|
||||
|
@ -64,11 +64,6 @@ bricks.Message = class extends bricks.Modal {
|
||||
{
|
||||
title:
|
||||
message:
|
||||
params:
|
||||
auto_open:
|
||||
auto_dismiss:
|
||||
archor:cc
|
||||
timeout:
|
||||
}
|
||||
*/
|
||||
constructor(opts){
|
||||
|
@ -2,15 +2,14 @@ var bricks = window.bricks || {};
|
||||
bricks.Tabular = class extends bricks.DynamicAccordion {
|
||||
constructor(opts){
|
||||
super(opts);
|
||||
// this.fields = this.record_view.options.fields;
|
||||
this.get_edit_fields();
|
||||
}
|
||||
get_edit_fields(){
|
||||
var fs = this.record_view.options.fields;
|
||||
var fs = this.row_options.fields;
|
||||
this.fields = [];
|
||||
var exclouded = [];
|
||||
if (this.record_view.options.editexclouded){
|
||||
exclouded = this.record_view.options.editexclouded;
|
||||
if (this.row_options.editexclouded){
|
||||
exclouded = this.row_options.editexclouded;
|
||||
}
|
||||
fs.forEach(f => {
|
||||
if (!exclouded.includes(f.name)){
|
||||
@ -20,29 +19,17 @@ bricks.Tabular = class extends bricks.DynamicAccordion {
|
||||
}
|
||||
|
||||
async build_info(item, record){
|
||||
if (this.record_view.widgettype != 'DataRow'){
|
||||
console.log('record_view must be DataRow');
|
||||
return
|
||||
}
|
||||
var header = true;
|
||||
var options = bricks.extend({cheight:this.cheight}, this.row_options);
|
||||
if (record){
|
||||
/* data row
|
||||
*/
|
||||
var options = bricks.extend({cheight:this.cheight}, this.record_view.options);
|
||||
var desc = bricks.extend({}, this.record_view);
|
||||
options.user_data = record;
|
||||
desc.options = options
|
||||
var dr = await bricks.widgetBuild(desc, this);
|
||||
dr.render(this.editable, this.checkable, false);
|
||||
dr.event_names.forEach(e => {
|
||||
dr.toolbar_w.bind(e, this.record_event_handle.bind(this, e, record, dr, item));
|
||||
});
|
||||
} else {
|
||||
var dr = await bricks.widgetBuild(this.record_view, this);
|
||||
dr.render(this.editable, this.checkable, true);
|
||||
dr.event_names.forEach(e => {
|
||||
dr.toolbar_w.bind(e, this.record_event_handle.bind(this, e, record, dr, item));
|
||||
});
|
||||
header = false;
|
||||
}
|
||||
var dr = new bricks.DataRow(options);
|
||||
dr.render(this.editable, this.checkable, header);
|
||||
dr.event_names.forEach(e => {
|
||||
dr.toolbar_w.bind(e, this.record_event_handle.bind(this, e, record, dr, item));
|
||||
});
|
||||
item.add_widget(dr);
|
||||
return dr;
|
||||
}
|
||||
|
33
docs/cn/widgets/audioplayer.md
Normal file
33
docs/cn/widgets/audioplayer.md
Normal file
@ -0,0 +1,33 @@
|
||||
# AudioPlayer
|
||||
音频播放器
|
||||
## 父类
|
||||
[JsWidget](jswidget.md)
|
||||
## 构建参数
|
||||
options = {
|
||||
* url:音频源的url
|
||||
* autoplay:自动播放,如果是true,音频在导入后自动播放
|
||||
}
|
||||
## 方法
|
||||
### set_url(url)
|
||||
此方法设置新的音频源,如果autoplay为真,新设置的资源会立即播放
|
||||
|
||||
### toggle_play()
|
||||
如果当前资源正在播放,则停止播放,否则开始播放
|
||||
|
||||
### play()
|
||||
播放资源
|
||||
|
||||
## 事件
|
||||
无
|
||||
|
||||
## 使用例子
|
||||
```
|
||||
{
|
||||
"id":"audioplayer",
|
||||
"widgettype":"AudioPlayer",
|
||||
"options":{
|
||||
"autoplay":true,
|
||||
"url":"http://kimird.com/songs/sample-mp3-file.mp3"
|
||||
}
|
||||
}
|
||||
```
|
56
docs/cn/widgets/audiorecorder.md
Normal file
56
docs/cn/widgets/audiorecorder.md
Normal file
@ -0,0 +1,56 @@
|
||||
# 录制音频
|
||||
音频录制器
|
||||
## widgettype值
|
||||
AudioRecorder
|
||||
|
||||
## 父类
|
||||
[bricks.HBox](hbox.md)
|
||||
## 构建参数
|
||||
{
|
||||
"upload_url":音频上传url
|
||||
“icon_rate”:录音按钮比例,设置录音图标显示多少个字符大小。
|
||||
}
|
||||
## 方法
|
||||
### start_recording()
|
||||
### stop_recording()
|
||||
### async upload()
|
||||
|
||||
## 事件
|
||||
### uploaded
|
||||
上传成功事件,事件参数是fetch返回的response
|
||||
### record_started
|
||||
录音开始事件,无参数
|
||||
### record_ended
|
||||
录音结束事件,参数为:
|
||||
|
||||
var d = {
|
||||
|
||||
data:blob,
|
||||
|
||||
url:localURL,
|
||||
|
||||
duration:duration
|
||||
|
||||
}
|
||||
|
||||
|
||||
## 使用例子
|
||||
```
|
||||
{
|
||||
"id":"recorder",
|
||||
"widgettype":"AudioRecorder",
|
||||
"options":{
|
||||
"height":"40px",
|
||||
"upload_url":"{{entire_url('stt.dspy')}}"
|
||||
},
|
||||
"binds":[
|
||||
{
|
||||
"wid":"self",
|
||||
"event":"uploaded",
|
||||
"actiontype":"script",
|
||||
"script":"alert(event.params)"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
34
docs/cn/widgets/conform.md
Normal file
34
docs/cn/widgets/conform.md
Normal file
@ -0,0 +1,34 @@
|
||||
# 确认控件
|
||||
弹出式用户确认控件,显示标题以及消息,并在下方提供确认和放弃两个按钮。点击确认后,关闭窗口,并触发“comformed”事件
|
||||
|
||||
## widgettype值
|
||||
Conform
|
||||
|
||||
## 父类
|
||||
[bricks.Message](message.md)
|
||||
|
||||
## 构建参数
|
||||
同bircks.Message控件的参数
|
||||
|
||||
## 方法
|
||||
无
|
||||
## 事件
|
||||
### conformed
|
||||
用户点击确认按钮触发的事件
|
||||
### cancelled
|
||||
用户点击discard按钮触发的事件
|
||||
|
||||
## 使用例子
|
||||
```
|
||||
{
|
||||
"id":"uuuu",
|
||||
"widgettype":"Conform",
|
||||
"options":{
|
||||
"width":"40%",
|
||||
"height":"40%",
|
||||
"archor":"cc",
|
||||
"title":"Test Title",
|
||||
"message":"This is a test message"
|
||||
}
|
||||
}
|
||||
```
|
30
docs/cn/widgets/dynamicaccordion.md
Normal file
30
docs/cn/widgets/dynamicaccordion.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Tabular
|
||||
表格形式的数据展现控件
|
||||
|
||||
## widgettype值
|
||||
Tabular
|
||||
|
||||
## 父类
|
||||
bricks.VScrollPanel
|
||||
|
||||
## 构建参数
|
||||
* "data_url":数据获取url,用来获取条目数据,返回数据须符合[页数据要求](pagingdata.md)
|
||||
* "data_method":数据获取的方法缺省是“GET”
|
||||
* "data_params",获取数据需要带的参数
|
||||
* "cache_limit",缓存数据页数
|
||||
* "page_rows",每页数据条数
|
||||
* "row_cheight":每条目显示按字符大小为单位的高度
|
||||
* "row_options":条目数据显示控件的构建参数,参数需要符合要求
|
||||
* "content_view": 内容显示的控件描述,当用户点击条目后会在条目后面显示此控件描述生成的控件,在其中可以使用${name}的形式调用后台返回数据当前记录字段数据
|
||||
### row_options格式
|
||||
* toolbar: 格式要求参看[工具条](toolbar.md)
|
||||
* fields:数组,数据字段说明,数组中每个数据要素请参看[字段规范](field_spec.md)
|
||||
* browserfields:条目显示字段约束,是一个字典类型数据
|
||||
* editexclouded: 数组编辑是蓄意排除的数据字段名
|
||||
|
||||
## 方法
|
||||
无
|
||||
## 事件
|
||||
无
|
||||
## 使用例子
|
||||
|
@ -1,143 +1,34 @@
|
||||
# Message
|
||||
# 消息控件
|
||||
一个Modal类型控件,用于显示提示信息
|
||||
|
||||
## 用法
|
||||
## widgettype值
|
||||
Message
|
||||
|
||||
```html
|
||||
<html>
|
||||
## 父类
|
||||
bricks.Modal
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="/bricks/css/bricks.css">
|
||||
</head>
|
||||
## 构建参数
|
||||
* title 在标题栏上显示的内容
|
||||
|
||||
<body>
|
||||
<script src="/bricks/bricks.js"></script>
|
||||
<script>
|
||||
const opts =
|
||||
{
|
||||
"widget": {
|
||||
"widgettype": "Tree",
|
||||
"options": {
|
||||
"idField": "id",
|
||||
"textField": "text",
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"text": "node1",
|
||||
"is_leaf": false,
|
||||
"children": [
|
||||
{
|
||||
"id": 11,
|
||||
"text": "node11",
|
||||
"is_leaf": false,
|
||||
"children": [
|
||||
{
|
||||
"id": 112,
|
||||
"text": "node.12",
|
||||
"is_leaf": false,
|
||||
"children": [
|
||||
{
|
||||
"id": 1112,
|
||||
"text": "node1112",
|
||||
"is_leaf": true
|
||||
},
|
||||
{
|
||||
"id": 1113,
|
||||
"text": "node113",
|
||||
"is_leaf": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 113,
|
||||
"text": "node113",
|
||||
"is_leaf": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"text": "node12",
|
||||
"is_leaf": true
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"text": "node13",
|
||||
"is_leaf": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"text": "node2",
|
||||
"is_leaf": false,
|
||||
"children": [
|
||||
{
|
||||
"id": 21,
|
||||
"text": "node21",
|
||||
"is_leaf": true
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"text": "node22",
|
||||
"is_leaf": true
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"text": "node23",
|
||||
"is_leaf": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"text": "node3",
|
||||
"is_leaf": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
const app = new BricksApp(opts);
|
||||
app.run();
|
||||
var m = new Message({
|
||||
"title": "TEst Message",
|
||||
"message": "This is a test message",
|
||||
"auto_open": true,
|
||||
"timeout": 3
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
|
||||
## 示例
|
||||
|
||||
![](F:\mh\bricks\docs\images\message.png)
|
||||
|
||||
## 参数说明
|
||||
|
||||
### widget.type
|
||||
|
||||
控件的类型.(控件有多种类型,如:Form,Image...等等)
|
||||
|
||||
### widget.options参数说明
|
||||
|
||||
| 参数 | 说明 | 类型 | 是否必填 | 可选值 | 默认值 |
|
||||
| --------- | -------------------- | ------- | -------- | ---------- | ------ |
|
||||
| idField | 当前节点的唯一标识 | String | 是 | --- | --- |
|
||||
| textField | 当前节点的label | String | 是 | --- | --- |
|
||||
| is_leaf | 是否可以展开 | Boolean | 否 | true/false | --- |
|
||||
| data | 文件夹具体信息的集合 | Array | 否 | --- | --- |
|
||||
|
||||
#### options.data参数说明
|
||||
|
||||
options.data参数的key必须和widget.options参数的value一致,比如widget.options.idField="id",那么options.data参数的key就是"options.data.id" .另外多了一个children参数,是对象形式,参数与options.data的参数保持一致.
|
||||
|
||||
注意:**如果想下写一级目录,就添加children参数对象**
|
||||
* message 在正文栏内显示的正文
|
||||
|
||||
## 方法
|
||||
无
|
||||
## 事件
|
||||
无新增事件
|
||||
|
||||
none
|
||||
## 例子
|
||||
```
|
||||
{
|
||||
"id":"uuuu",
|
||||
"widgettype":"Message",
|
||||
"options":{
|
||||
"width":"40%",
|
||||
"height":"40%",
|
||||
"archor":"cc",
|
||||
"title":"Test Title",
|
||||
"timeout":2,
|
||||
"message":"This is a test message"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
9
docs/cn/widgets/tmpl.md
Normal file
9
docs/cn/widgets/tmpl.md
Normal file
@ -0,0 +1,9 @@
|
||||
# component name
|
||||
音频播放器
|
||||
## widgettype值
|
||||
## 父类
|
||||
## 构建参数
|
||||
## 方法
|
||||
## 事件
|
||||
## 使用例子
|
||||
|
Loading…
Reference in New Issue
Block a user