+ Load API
This commit is contained in:
parent
d57333fcf4
commit
362e788157
3 changed files with 59 additions and 8 deletions
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"github.com/yaoapp/xiang/query"
|
"github.com/yaoapp/xiang/query"
|
||||||
"github.com/yaoapp/xiang/share"
|
"github.com/yaoapp/xiang/share"
|
||||||
"github.com/yaoapp/xiang/table"
|
"github.com/yaoapp/xiang/table"
|
||||||
|
"github.com/yaoapp/xiang/workflow"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Load 根据配置加载 API, FLow, Model, Plugin
|
// Load 根据配置加载 API, FLow, Model, Plugin
|
||||||
|
|
@ -28,14 +29,15 @@ func Load(cfg config.Config) {
|
||||||
LoadEngine(cfg.Path)
|
LoadEngine(cfg.Path)
|
||||||
query.Load(cfg) // 加载数据分析引擎
|
query.Load(cfg) // 加载数据分析引擎
|
||||||
|
|
||||||
share.Load(cfg) // 加载共享库 lib
|
share.Load(cfg) // 加载共享库 lib
|
||||||
model.Load(cfg) // 加载数据模型 model
|
model.Load(cfg) // 加载数据模型 model
|
||||||
api.Load(cfg) // 加载业务接口 API
|
flow.Load(cfg) // 加载业务逻辑 Flow
|
||||||
flow.Load(cfg) // 加载业务逻辑 Flow
|
plugin.Load(cfg) // 加载业务插件 plugin
|
||||||
plugin.Load(cfg) // 加载业务插件 plugin
|
table.Load(cfg) // 加载数据表格 table
|
||||||
table.Load(cfg) // 加载数据表格 table
|
chart.Load(cfg) // 加载分析图表 chart
|
||||||
chart.Load(cfg) // 加载分析图表 chart
|
page.Load(cfg) // 加载页面 page
|
||||||
page.Load(cfg) // 加载页面 page
|
workflow.Load(cfg) // 加载工作流 workflow
|
||||||
|
api.Load(cfg) // 加载业务接口 API
|
||||||
|
|
||||||
// 加密密钥函数
|
// 加密密钥函数
|
||||||
gou.LoadCrypt(fmt.Sprintf(`{"key":"%s"}`, cfg.Database.AESKey), "AES")
|
gou.LoadCrypt(fmt.Sprintf(`{"key":"%s"}`, cfg.Database.AESKey), "AES")
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"github.com/yaoapp/xiang/page"
|
"github.com/yaoapp/xiang/page"
|
||||||
"github.com/yaoapp/xiang/share"
|
"github.com/yaoapp/xiang/share"
|
||||||
"github.com/yaoapp/xiang/table"
|
"github.com/yaoapp/xiang/table"
|
||||||
|
"github.com/yaoapp/xiang/workflow"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Watch 监听应用目录文件变更
|
// Watch 监听应用目录文件变更
|
||||||
|
|
@ -24,6 +25,7 @@ func Watch(cfg config.Config) {
|
||||||
WatchTable(cfg.RootTable, "")
|
WatchTable(cfg.RootTable, "")
|
||||||
WatchChart(cfg.RootChart, "")
|
WatchChart(cfg.RootChart, "")
|
||||||
WatchPage(cfg.RootPage, "")
|
WatchPage(cfg.RootPage, "")
|
||||||
|
WatchWorkFlow(cfg.RootWorkFlow, "")
|
||||||
|
|
||||||
// 看板大屏
|
// 看板大屏
|
||||||
WatchPage(filepath.Join(cfg.Root, "/kanban"), "")
|
WatchPage(filepath.Join(cfg.Root, "/kanban"), "")
|
||||||
|
|
@ -325,3 +327,46 @@ func WatchPage(root string, prefix string) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WatchWorkFlow 监听工作流更新
|
||||||
|
func WatchWorkFlow(root string, prefix string) {
|
||||||
|
if share.DirNotExists(root) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
root = share.DirAbs(root)
|
||||||
|
go share.Watch(root, func(op string, filename string) {
|
||||||
|
if !strings.HasSuffix(filename, ".json") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if op == "write" || op == "create" {
|
||||||
|
name := prefix + share.SpecName(root, filename)
|
||||||
|
content := share.ReadFile(filename)
|
||||||
|
_, err := workflow.LoadWorkFlow(content, name) // Relaod
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
api, has := gou.APIs["xiang.workflow."+name]
|
||||||
|
if has {
|
||||||
|
api.Reload() // 重载API
|
||||||
|
}
|
||||||
|
log.Printf("WorkFlow %s 已重新加载完毕", name)
|
||||||
|
|
||||||
|
} else if op == "remove" || op == "rename" {
|
||||||
|
name := prefix + share.SpecName(root, filename)
|
||||||
|
if _, has := workflow.WorkFlows[name]; has {
|
||||||
|
delete(workflow.WorkFlows, name)
|
||||||
|
log.Printf("WorkFlow %s 已经移除", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重启服务器
|
||||||
|
if op == "write" || op == "create" || op == "remove" || op == "rename" {
|
||||||
|
Stop(func() {
|
||||||
|
log.Printf("服务器重启完毕")
|
||||||
|
go Start()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "指派商务负责人",
|
"description": "指派商务负责人",
|
||||||
"apis": {
|
"apis": {
|
||||||
|
"/confirm": {
|
||||||
|
"label": "确认",
|
||||||
|
"process": "xiang.assign.confirm"
|
||||||
|
},
|
||||||
"/save": {
|
"/save": {
|
||||||
"label": "保存",
|
"label": "保存",
|
||||||
"process": "xiang.assign.save"
|
"process": "xiang.assign.save"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue