+ DataSetting API
This commit is contained in:
parent
6b1f3bdf4a
commit
269da4fc94
5 changed files with 75 additions and 35 deletions
|
|
@ -228,16 +228,68 @@ func (imp *Importer) MappingPreview(src from.Source) *Mapping {
|
||||||
}
|
}
|
||||||
|
|
||||||
// DataSetting 预览数据表格配置
|
// DataSetting 预览数据表格配置
|
||||||
func (imp *Importer) DataSetting(src from.Source) []map[string]interface{} {
|
func (imp *Importer) DataSetting() map[string]interface{} {
|
||||||
return nil
|
|
||||||
|
columns := map[string]share.Column{}
|
||||||
|
layoutColumns := []map[string]interface{}{}
|
||||||
|
for _, column := range imp.Columns {
|
||||||
|
name := column.Label
|
||||||
|
layoutColumns = append(layoutColumns, map[string]interface{}{"name": name})
|
||||||
|
columns[name] = share.Column{
|
||||||
|
Label: name,
|
||||||
|
View: share.Render{
|
||||||
|
Type: "label",
|
||||||
|
Props: map[string]interface{}{"value": fmt.Sprintf(":%s", column.Field)},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setting := map[string]interface{}{
|
||||||
|
"columns": columns,
|
||||||
|
"filters": map[string]interface{}{},
|
||||||
|
"list": share.Page{
|
||||||
|
Primary: "id",
|
||||||
|
Layout: map[string]interface{}{"columns": layoutColumns},
|
||||||
|
},
|
||||||
|
"actions": map[string]interface{}{
|
||||||
|
"pagination": map[string]interface{}{
|
||||||
|
"props": map[string]interface{}{
|
||||||
|
"showTotal": true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"option": map[string]interface{}{
|
||||||
|
"operation": map[string]interface{}{
|
||||||
|
"hideView": true,
|
||||||
|
"hideEdit": true,
|
||||||
|
"width": 120,
|
||||||
|
"unfold": true,
|
||||||
|
"checkbox": map[string]interface{}{
|
||||||
|
"value": ":__effected",
|
||||||
|
"visible_label": false,
|
||||||
|
"status": []map[string]interface{}{
|
||||||
|
{
|
||||||
|
"label": "有效",
|
||||||
|
"value": true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "无效",
|
||||||
|
"value": false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return setting
|
||||||
}
|
}
|
||||||
|
|
||||||
// MappingSetting 预览映射数据表格配置
|
// MappingSetting 预览映射数据表格配置
|
||||||
func (imp *Importer) MappingSetting(src from.Source) map[string]interface{} {
|
func (imp *Importer) MappingSetting(src from.Source) map[string]interface{} {
|
||||||
|
|
||||||
columns := map[string]share.Column{
|
columns := map[string]share.Column{
|
||||||
"关联字段": {
|
"字段名称": {
|
||||||
Label: "关联字段",
|
Label: "字段名称",
|
||||||
View: share.Render{
|
View: share.Render{
|
||||||
Type: "label",
|
Type: "label",
|
||||||
Props: map[string]interface{}{"value": ":label"},
|
Props: map[string]interface{}{"value": ":label"},
|
||||||
|
|
@ -281,10 +333,10 @@ func (imp *Importer) MappingSetting(src from.Source) map[string]interface{} {
|
||||||
"columns": columns,
|
"columns": columns,
|
||||||
"filters": map[string]interface{}{},
|
"filters": map[string]interface{}{},
|
||||||
"list": share.Page{
|
"list": share.Page{
|
||||||
Primary: "field",
|
Primary: "id",
|
||||||
Layout: map[string]interface{}{
|
Layout: map[string]interface{}{
|
||||||
"columns": []map[string]interface{}{
|
"columns": []map[string]interface{}{
|
||||||
{"name": "字段"},
|
{"name": "字段名称"},
|
||||||
{"name": "数据源"},
|
{"name": "数据源"},
|
||||||
{"name": "清洗规则"},
|
{"name": "清洗规则"},
|
||||||
{"name": "数据示例"},
|
{"name": "数据示例"},
|
||||||
|
|
@ -295,7 +347,6 @@ func (imp *Importer) MappingSetting(src from.Source) map[string]interface{} {
|
||||||
"option": map[string]interface{}{
|
"option": map[string]interface{}{
|
||||||
"operation": map[string]interface{}{"hideView": true, "hideEdit": true, "width": 0},
|
"operation": map[string]interface{}{"hideView": true, "hideEdit": true, "width": 0},
|
||||||
},
|
},
|
||||||
"edit": map[string]interface{}{},
|
|
||||||
}
|
}
|
||||||
return setting
|
return setting
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -147,3 +147,9 @@ func TestMappingSetting(t *testing.T) {
|
||||||
setting := imp.MappingSetting(file)
|
setting := imp.MappingSetting(file)
|
||||||
assert.NotNil(t, setting)
|
assert.NotNil(t, setting)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDataSetting(t *testing.T) {
|
||||||
|
imp := Select("order")
|
||||||
|
setting := imp.DataSetting()
|
||||||
|
assert.NotNil(t, setting)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ func init() {
|
||||||
gou.RegisterProcessHandler("xiang.import.DataSetting", ProcessDataSetting)
|
gou.RegisterProcessHandler("xiang.import.DataSetting", ProcessDataSetting)
|
||||||
gou.RegisterProcessHandler("xiang.import.Mapping", ProcessMapping)
|
gou.RegisterProcessHandler("xiang.import.Mapping", ProcessMapping)
|
||||||
gou.RegisterProcessHandler("xiang.import.MappingSetting", ProcessMappingSetting)
|
gou.RegisterProcessHandler("xiang.import.MappingSetting", ProcessMappingSetting)
|
||||||
gou.RegisterProcessHandler("xiang.import.Rules", ProcessRules)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessRun xiang.import.Run
|
// ProcessRun xiang.import.Run
|
||||||
|
|
@ -48,7 +47,10 @@ func ProcessData(process *gou.Process) interface{} {
|
||||||
// ProcessDataSetting xiang.import.DataSetting
|
// ProcessDataSetting xiang.import.DataSetting
|
||||||
// 数据预览表格配置
|
// 数据预览表格配置
|
||||||
func ProcessDataSetting(process *gou.Process) interface{} {
|
func ProcessDataSetting(process *gou.Process) interface{} {
|
||||||
return nil
|
process.ValidateArgNums(1)
|
||||||
|
name := process.ArgsString(0)
|
||||||
|
imp := Select(name)
|
||||||
|
return imp.DataSetting()
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessMapping xiang.import.Mapping
|
// ProcessMapping xiang.import.Mapping
|
||||||
|
|
@ -75,12 +77,6 @@ func ProcessMappingSetting(process *gou.Process) interface{} {
|
||||||
return imp.MappingSetting(src)
|
return imp.MappingSetting(src)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessRules xiang.import.Rules
|
|
||||||
// 可用处理器下拉列表
|
|
||||||
func ProcessRules(process *gou.Process) interface{} {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// 转换为映射表
|
// 转换为映射表
|
||||||
func anyToMapping(v interface{}) *Mapping {
|
func anyToMapping(v interface{}) *Mapping {
|
||||||
var mapping Mapping
|
var mapping Mapping
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,11 @@ func TestProcessMapping(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProcessMappingSetting(t *testing.T) {
|
func TestProcessMappingSetting(t *testing.T) {
|
||||||
args := []interface{}{"order"}
|
simple := filepath.Join(config.Conf.Root, "imports", "assets", "simple.xlsx")
|
||||||
|
args := []interface{}{"order", simple}
|
||||||
response := gou.NewProcess("xiang.import.MappingSetting", args...).Run()
|
response := gou.NewProcess("xiang.import.MappingSetting", args...).Run()
|
||||||
assert.Nil(t, response)
|
_, ok := response.(map[string]interface{})
|
||||||
|
assert.True(t, ok)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProcessData(t *testing.T) {
|
func TestProcessData(t *testing.T) {
|
||||||
|
|
@ -35,7 +37,8 @@ func TestProcessData(t *testing.T) {
|
||||||
func TestProcessDataSetting(t *testing.T) {
|
func TestProcessDataSetting(t *testing.T) {
|
||||||
args := []interface{}{"order"}
|
args := []interface{}{"order"}
|
||||||
response := gou.NewProcess("xiang.import.DataSetting", args...).Run()
|
response := gou.NewProcess("xiang.import.DataSetting", args...).Run()
|
||||||
assert.Nil(t, response)
|
_, ok := response.(map[string]interface{})
|
||||||
|
assert.True(t, ok)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProcessRun(t *testing.T) {
|
func TestProcessRun(t *testing.T) {
|
||||||
|
|
@ -46,9 +49,3 @@ func TestProcessRun(t *testing.T) {
|
||||||
_, ok := response.(map[string]int)
|
_, ok := response.(map[string]int)
|
||||||
assert.True(t, ok)
|
assert.True(t, ok)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProcessRules(t *testing.T) {
|
|
||||||
args := []interface{}{"order"}
|
|
||||||
response := gou.NewProcess("xiang.import.Rules", args...).Run()
|
|
||||||
assert.Nil(t, response)
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
"path": "/:name/data/setting",
|
"path": "/:name/data/setting",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"process": "xiang.import.DataSetting",
|
"process": "xiang.import.DataSetting",
|
||||||
"in": ["$param.name", ":query"],
|
"in": ["$param.name"],
|
||||||
"out": {
|
"out": {
|
||||||
"status": 200,
|
"status": 200,
|
||||||
"type": "application/json"
|
"type": "application/json"
|
||||||
|
|
@ -60,16 +60,6 @@
|
||||||
"status": 200,
|
"status": 200,
|
||||||
"type": "application/json"
|
"type": "application/json"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "/:name/rule/select",
|
|
||||||
"method": "GET",
|
|
||||||
"process": "xiang.import.Rules",
|
|
||||||
"in": ["$param.name", ":query"],
|
|
||||||
"out": {
|
|
||||||
"status": 200,
|
|
||||||
"type": "application/json"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue