[change] init application

This commit is contained in:
Max 2022-11-17 12:35:03 +08:00
parent 50cedfb9f7
commit 5878b238c7
3 changed files with 88 additions and 945 deletions

View file

@ -231,7 +231,7 @@ func initAppJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/app.json", size: 325, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/app.json", size: 325, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -251,7 +251,7 @@ func initChartsDashboardChartJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/charts/dashboard.chart.json", size: 8471, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/charts/dashboard.chart.json", size: 8471, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -271,7 +271,7 @@ func initFlowsAppMenuFlowJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/flows/app/menu.flow.json", size: 1327, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/flows/app/menu.flow.json", size: 1327, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -291,7 +291,7 @@ func initFormsPetFormJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/forms/pet.form.json", size: 87, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/forms/pet.form.json", size: 87, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -311,7 +311,7 @@ func initLangsZhCnGlobalYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -331,7 +331,7 @@ func initLangsZhHkLangsGlobalYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/langs/zh-hk/langs/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/langs/zh-hk/langs/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -351,7 +351,7 @@ func initLoginsAdminLoginJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/logins/admin.login.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/logins/admin.login.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -371,7 +371,7 @@ func initLoginsUserLoginJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/logins/user.login.json", size: 272, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/logins/user.login.json", size: 272, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -391,7 +391,7 @@ func initModelsPetModJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/models/pet.mod.json", size: 1418, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/models/pet.mod.json", size: 1418, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -411,7 +411,7 @@ func initPublicIndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/public/index.html", size: 1373, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/public/index.html", size: 1373, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -431,7 +431,7 @@ func initScriptsDemoJs() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/scripts/demo.js", size: 334, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/scripts/demo.js", size: 334, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -451,7 +451,7 @@ func initScriptsStatJs() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/scripts/stat.js", size: 2235, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/scripts/stat.js", size: 2235, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -471,7 +471,7 @@ func initTablesPetTabJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "init/tables/pet.tab.json", size: 118, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "init/tables/pet.tab.json", size: 118, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -491,7 +491,7 @@ func publicIndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -511,7 +511,7 @@ func uiIndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -531,7 +531,7 @@ func xgenSetupIndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -551,7 +551,7 @@ func xgenV09IndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -571,7 +571,7 @@ func xgenV10IndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -591,7 +591,7 @@ func xgenV10Layouts__indexAsyncJs() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -611,7 +611,7 @@ func xgenV10UmiJs() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -631,7 +631,7 @@ func yaoApisReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -651,7 +651,7 @@ func yaoApisChartHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -671,7 +671,7 @@ func yaoApisImportHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -691,7 +691,7 @@ func yaoApisPageHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -711,7 +711,7 @@ func yaoApisStorageHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1026, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1026, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -731,7 +731,7 @@ func yaoApisTableHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3213, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3213, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -751,7 +751,7 @@ func yaoApisUserHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -771,7 +771,7 @@ func yaoApisXiangHttpJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -791,7 +791,7 @@ func yaoDataAppJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -811,7 +811,7 @@ func yaoDataIcons404Png() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -831,7 +831,7 @@ func yaoDataIconsIconIcns() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -851,7 +851,7 @@ func yaoDataIconsIconIco() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -871,7 +871,7 @@ func yaoDataIconsIconPng() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -891,7 +891,7 @@ func yaoDataIndexHtml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -911,7 +911,7 @@ func yaoFieldsModelTransJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14959, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14959, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -931,7 +931,7 @@ func yaoFlowsReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -951,7 +951,7 @@ func yaoFlowsAdminGuardFlowJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -971,7 +971,7 @@ func yaoFlowsMenuFlowJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -991,7 +991,7 @@ func yaoFlowsUserFindFlowJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1011,7 +1011,7 @@ func yaoLangsEnUsJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1031,7 +1031,7 @@ func yaoLangsZhCnGlobalYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1629, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1629, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1051,7 +1051,7 @@ func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1071,7 +1071,7 @@ func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1091,7 +1091,7 @@ func yaoLangsZhHkGlobalYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1629, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1629, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1111,7 +1111,7 @@ func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1131,7 +1131,7 @@ func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1151,7 +1151,7 @@ func yaoModelsReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1171,7 +1171,7 @@ func yaoModelsMenuModJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1191,7 +1191,7 @@ func yaoModelsUserModJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1211,7 +1211,7 @@ func yaoModelsWorkflowModJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1231,7 +1231,7 @@ func yaoTablesReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1251,7 +1251,7 @@ func yaoTablesMenuTabJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@ -1271,7 +1271,7 @@ func yaoTablesUserTabJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1668656844, 0)}
info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1668659457, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}

View file

@ -7,12 +7,9 @@ import (
"strings"
"github.com/yaoapp/gou"
"github.com/yaoapp/gou/fs"
"github.com/yaoapp/gou/fs/dsl"
"github.com/yaoapp/gou/fs/system"
"github.com/yaoapp/kun/log"
"github.com/yaoapp/yao/data"
"github.com/yaoapp/yao/engine"
"github.com/yaoapp/yao/share"
"github.com/yaoapp/yao/widgets/app"
)
@ -95,7 +92,7 @@ func Install(payload map[string]map[string]string) error {
return err
}
err = makeDemoWidgets(root)
err = makeInit(root)
if err != nil {
return err
}
@ -231,897 +228,26 @@ func makeDirs(root string) error {
return nil
}
func makeDemoWidgets(root string) error {
dsl := dsl.New(root)
// make app
ok, err := makeAppWidget(dsl, root)
if err != nil || !ok {
return err
}
// make flows
err = makeMenuFlowWidget(dsl, root)
if err != nil {
return err
}
// make logins
err = makeLoginWidget(dsl, root)
if err != nil {
return err
}
// make models
err = makeModelWidget(dsl, root)
if err != nil {
return err
}
// make tables & forms
err = makeTableFormWidget(dsl, root)
if err != nil {
return err
}
// make chart
err = makeChartWidget(dsl, root)
if err != nil {
return err
}
// make scripts
err = makeScript(root)
if err != nil {
return err
}
// make scripts
err = makeLang(root)
if err != nil {
return err
}
// make index page
err = makeIndexPage(root)
if err != nil {
return err
}
return nil
}
func makeAppWidget(dsl fs.FileSystem, root string) (bool, error) {
file := filepath.Join("app.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return false, nil
}
_, err := dsl.WriteFile(file, []byte(fmt.Sprintf(`
{
"xgen": "1.0",
"name": "::Demo Application",
"short": "::Demo",
"description": "::Another yao application",
"version": "%s",
"adminRoot": "admin",
"setup": "scripts.demo.Data",
"menu": {
"process": "flows.app.menu",
"args": ["demo"]
},
"optional": {
"hideNotification": true,
"hideSetting": false
}
}
`, share.VERSION)), 0644)
if err != nil {
return false, err
}
return true, nil
}
func makeMenuFlowWidget(dsl fs.FileSystem, root string) error {
file := filepath.Join("flows", "app", "menu.flow.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err := dsl.WriteFile(file, []byte(`
{
"name": "APP Menu",
"nodes": [],
"output": [
{
"blocks": 0,
"icon": "icon-activity",
"id": 1,
"name": "图表",
"parent": null,
"path": "/x/Chart/dashboard",
"visible_menu": 0
},
{
"blocks": 0,
"icon": "icon-book",
"id": 2,
"name": "表格",
"parent": null,
"path": "/x/Table/pet",
"visible_menu": 1,
"children": [
{
"blocks": 0,
"icon": "icon-book",
"name": "宠物列表",
"id": 2010,
"parent": 2,
"path": "/x/Table/pet",
"visible_menu": 1
}
]
},
{
"blocks": 0,
"icon": "icon-clipboard",
"id": 2,
"name": "表单",
"parent": null,
"path": "/x/Form/pet/1/edit",
"visible_menu": 1,
"children": [
{
"blocks": 0,
"icon": "icon-clipboard",
"name": "编辑模式",
"id": 2010,
"parent": 2,
"path": "/x/Form/pet/1/edit",
"visible_menu": 1
},
{
"blocks": 0,
"icon": "icon-clipboard",
"name": "查看模式",
"id": 2010,
"parent": 2,
"path": "/x/Form/pet/1/view",
"visible_menu": 1
}
]
}
]
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeLoginWidget(dsl fs.FileSystem, root string) error {
file := filepath.Join("logins", "admin.login.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err := dsl.WriteFile(file, []byte(`
{
"name": "::Admin Login",
"action": {
"process": "yao.login.Admin",
"args": [":payload"]
},
"layout": {
"entry": "/x/Chart/dashboard",
"slogan": "::Make Your Dream With Yao App Engine",
"site": "https://yaoapps.com?from=instance-admin-login"
}
}
`), 0644)
if err != nil {
return err
}
file = filepath.Join("logins", "user.login.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err = dsl.WriteFile(file, []byte(`
{
"name": "::User Login",
"action": {
"process": "scripts.user.Login",
"args": [":payload"]
},
"layout": {
"entry": "/x/Table/pet",
"slogan": "::Make Your Dream With Yao App Engine",
"site": "https://yaoapps.com/from=instance-user-login"
}
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeModelWidget(dsl fs.FileSystem, root string) error {
file := filepath.Join("models", "pet.mod.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err := dsl.WriteFile(file, []byte(`
{
"name": "Pet",
"table": { "name": "pet", "comment": "宠物表" },
"columns": [
{ "name": "id", "comment": "ID", "type": "ID" },
{
"name": "name",
"comment": "昵称",
"type": "string",
"length": 80,
"index": true,
"nullable": true
},
{
"name": "type",
"comment": "类型",
"type": "enum",
"option": ["cat", "dog", "others"],
"index": true
},
{
"name": "status",
"comment": "入院状态",
"type": "enum",
"option": ["checked", "curing", "cured"],
"index": true
},
{
"name": "mode",
"comment": "状态",
"type": "enum",
"option": ["enabled", "disabled"],
"index": true
},
{
"name": "online",
"comment": "是否在线",
"type": "boolean",
"default": false,
"index": true
},
{
"name": "curing_status",
"comment": "治疗状态",
"type": "enum",
"default": "0",
"option": ["0", "1", "2"],
"index": true
},
{
"name": "stay",
"comment": "入院时间",
"type": "integer"
},
{
"name": "cost",
"comment": "花费",
"type": "integer"
},
{
"name": "doctor_id",
"type": "integer",
"comment": "相关职工",
"nullable": true
},
{
"name": "images",
"type": "json",
"comment": "相关图片",
"nullable": true
},
{
"name": "test_string",
"comment": "测试字段(字符串)",
"type": "string",
"nullable": true
},
{
"name": "test_number",
"comment": "测试字段(数字)",
"type": "integer",
"nullable": true
},
{
"name": "test_array",
"comment": "测试字段(数组)",
"type": "json",
"nullable": true
}
],
"relations": {},
"values": [],
"indexes": [],
"option": { "timestamps": true,"soft_deletes": true }
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeTableFormWidget(dsl fs.FileSystem, root string) error {
file := filepath.Join("tables", "pet.tab.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err := dsl.WriteFile(file, []byte(`
{
"name": "::Pet Admin Bind Model",
"action": {
"bind": { "model": "pet", "option": {} }
}
}
`), 0644)
if err != nil {
return err
}
file = filepath.Join("forms", "pet.form.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err = dsl.WriteFile(file, []byte(`
{
"name": "::Pet Admin Bind Table",
"action": {
"bind": { "table": "pet", "option": {} }
}
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeChartWidget(dsl fs.FileSystem, root string) error {
file := filepath.Join("charts", "dashboard.chart.json")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err := dsl.WriteFile(file, []byte(`
{
"name": "宠物医院数据图表",
"config":{"full":false},
"action": {
"before:data": "scripts.stat.BeforeData",
"data": { "process": "scripts.stat.Data", "default": ["2022-09-20"] },
"after:data": "scripts.stat.AfterData"
},
"layout": {
"operation": {
"actions": [
{
"title": "跳转至大屏",
"icon": "icon-airplay",
"action": { "Common.historyPush": { "pathname": "/x/Cool/demo" } }
}
]
},
"filter": {
"columns": [{ "name": "时间区间", "width": 6 }]
},
"chart": {
"columns": [
{ "name": "宠物数量", "width": 6 },
{ "name": "宠物类型", "width": 6 },
{ "name": "当月收入", "width": 6 },
{ "name": "医师数量", "width": 6 },
{ "name": "宠物数量_上月", "width": 6 },
{ "name": "宠物类型_上月", "width": 6 },
{ "name": "当月收入_上月", "width": 6 },
{ "name": "医师数量_上月", "width": 6 },
{ "name": "收入", "width": 8 },
{ "name": "支出", "width": 8 },
{ "name": "综合评分", "width": 8 },
{ "name": "收入_折线图", "width": 8 },
{ "name": "支出_折线图", "width": 8 },
{ "name": "综合评分_折线图", "width": 8 },
{ "name": "类型排布", "width": 12 },
{ "name": "状态分布", "width": 12 },
{ "name": "综合消费", "width": 24 }
]
}
},
"fields": {
"filter": {
"时间区间": {
"bind": "range",
"edit": { "type": "RangePicker", "props": {} }
},
"状态": {
"bind": "status",
"edit": {
"type": "Select",
"props": {
"xProps": {
"$remote": {
"process": "models.pet.Get",
"query": { "select": "name,status", "limit": 2 }
}
}
}
}
func makeInit(root string) error {
files := data.AssetNames()
for _, file := range files {
if strings.HasPrefix(file, "init/") {
dst := filepath.Join(root, strings.TrimPrefix(file, "init/"))
content, err := data.Read(file)
if err != nil {
return err
}
},
"chart": {
"收入": {
"bind": "income",
"link": "/x/Table/pet",
"out": "scripts.stat.Income",
"view": {
"type": "NumberChart",
"props": {
"chartHeight": 150,
"prefix": "¥",
"decimals": 2,
"nameKey": "date",
"valueKey": "value"
}
}
},
"支出": {
"bind": "cost",
"link": "/x/Table/pet",
"view": {
"type": "NumberChart",
"props": {
"chartHeight": 150,
"color": "red",
"prefix": "¥",
"decimals": 2,
"nameKey": "date",
"valueKey": "value"
}
}
},
"综合评分": {
"bind": "rate",
"link": "/x/Table/pet",
"view": {
"type": "NumberChart",
"props": {
"chartHeight": 150,
"color": "orange",
"unit": "分",
"decimals": 1,
"nameKey": "date",
"valueKey": "value"
}
}
},
"收入_折线图": {
"bind": "income",
"link": "/x/Table/pet",
"view": {
"type": "NumberChart",
"props": {
"cardStyle": { "padding": 0 },
"type": "line",
"chartHeight": 120,
"prefix": "¥",
"decimals": 2,
"nameKey": "date",
"valueKey": "value"
}
}
},
"支出_折线图": {
"bind": "cost",
"link": "/x/Table/pet",
"view": {
"type": "NumberChart",
"props": {
"cardStyle": { "padding": 0 },
"type": "line",
"chartHeight": 120,
"color": "red",
"prefix": "¥",
"decimals": 2,
"nameKey": "date",
"valueKey": "value"
}
}
},
"综合评分_折线图": {
"bind": "rate",
"link": "/x/Table/pet",
"view": {
"type": "NumberChart",
"props": {
"cardStyle": { "padding": 0 },
"type": "line",
"chartHeight": 120,
"color": "orange",
"unit": "分",
"decimals": 1,
"nameKey": "date",
"valueKey": "value"
}
}
},
"宠物数量": {
"bind": "pet_count",
"link": "/x/Table/pet",
"view": { "type": "Number", "props": { "unit": "个" } }
},
"宠物类型": {
"bind": "pet_type",
"view": { "type": "Number", "props": { "unit": "种" } }
},
"当月收入": {
"bind": "income_monthly",
"view": { "type": "Number", "props": { "unit": "元" } }
},
"医师数量": {
"bind": "doctor_count",
"view": { "type": "Number", "props": { "unit": "个" } }
},
"宠物数量_上月": {
"bind": "prev_pet_count",
"link": "/x/Table/pet",
"view": {
"type": "Number",
"props": {
"cardStyle": { "padding": 0 },
"unit": "个",
"prev_title": "上月数据"
}
}
},
"宠物类型_上月": {
"bind": "prev_pet_type",
"link": "/x/Table/pet",
"view": {
"type": "Number",
"props": {
"cardStyle": { "padding": 0 },
"unit": "种",
"prev_title": "上月数据"
}
}
},
"当月收入_上月": {
"bind": "prev_income_monthly",
"link": "/x/Table/pet",
"view": {
"type": "Number",
"props": {
"cardStyle": { "padding": 0 },
"unit": "元",
"prev_title": "上月数据"
}
}
},
"医师数量_上月": {
"bind": "prev_doctor_count",
"link": "/x/Table/pet",
"view": {
"type": "Number",
"props": {
"cardStyle": { "padding": 0 },
"unit": "个",
"prev_title": "上月数据"
}
}
},
"类型排布": {
"bind": "datasource_type",
"link": "/x/Table/pet",
"view": {
"type": "Pie",
"props": {
"height": 240,
"nameKey": "type",
"series": [
{
"valueKey": "count",
"roseType": "area",
"radius": [10, 100],
"center": ["60%", "50%"],
"itemStyle": { "borderRadius": 6 }
}
]
}
},
"refer": {
"type": "Table",
"props": {
"columns": [
{ "title": "类型", "dataIndex": "type" },
{ "title": "数量", "dataIndex": "count" }
]
}
}
},
"状态分布": {
"bind": "datasource_status",
"view": {
"type": "Bar",
"props": {
"height": 240,
"nameKey": "status",
"axisLabel": { "interval": 0, "fontSize": 12 },
"series": [
{
"valueKey": "count",
"type": "bar",
"colorBy": "data",
"itemStyle": { "borderRadius": 6 },
"splitLine": { "show": false },
"axisLabel": { "show": false }
}
]
}
},
"refer": {
"type": "Table",
"props": {
"columns": [
{ "title": "状态", "dataIndex": "status" },
{ "title": "数量", "dataIndex": "count" }
]
}
}
},
"综合消费": {
"bind": "datasource_cost",
"view": {
"type": "LineBar",
"props": {
"height": 240,
"nameKey": "name",
"axisLabel": { "interval": 0, "fontSize": 12 },
"series": [
{
"valueKey": "stay",
"type": "line",
"smooth": true,
"symbolSize": 8,
"itemStyle": { "borderRadius": 6 },
"splitLine": { "show": false },
"axisLabel": { "show": false }
},
{
"valueKey": "cost",
"type": "bar",
"itemStyle": { "borderRadius": 6 },
"splitLine": { "show": false },
"axisLabel": { "show": false }
}
]
}
}
dir := filepath.Dir(dst)
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return err
}
if err = os.WriteFile(dst, content, 0644); err != nil {
return err
}
}
}
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeScript(root string) error {
fs := system.New(filepath.Join(root, "scripts"))
file := "demo.js"
if _, err := os.Stat(filepath.Join(root, "scripts", file)); err == nil { // exists
return nil
}
_, err := fs.WriteFile(file, []byte(`
/**
* Demo Data
*/
function Data() {
return Process(
"yao.table.Insert",
"pet",
["name", "type", "status", "mode", "stay", "cost", "doctor_id"],
[
["Cookie", "cat", "checked", "enabled", 200, 105, 1],
["Baby", "dog", "checked", "enabled", 186, 24, 1],
["Poo", "others", "checked", "enabled", 199, 66, 1],
]
);
}
`), 0644)
if err != nil {
return err
}
file = filepath.Join("stat.js")
if _, err := os.Stat(filepath.Join(root, "scripts", file)); err == nil { // exists
return nil
}
_, err = fs.WriteFile(file, []byte(`
/**
* before:data hook
* @param {*} params
* @returns
*/
function BeforeData(params) {
log.Info("[chart] before data hook: %s", JSON.stringify(params));
return [params];
}
/**
* after:data hook
* @param {*} data
* @returns
*/
function AfterData(data) {
log.Info("[chart] after data hook: %s", JSON.stringify(data));
return data;
}
/**
* Get Data
* @param {*} params
*/
function Data(params) {
log.Info("[chart] process data query: %s", JSON.stringify(params));
return {
income: [
{ value: 40300, date: "2022-1-1" },
{ value: 50800, date: "2022-2-1" },
{ value: 31300, date: "2022-3-1" },
{ value: 48800, date: "2022-4-1" },
{ value: 69900, date: "2022-5-1" },
{ value: 37800, date: "2022-6-1" },
],
cost: [
{ value: 28100, date: "2022-1-1" },
{ value: 23000, date: "2022-2-1" },
{ value: 29300, date: "2022-3-1" },
{ value: 26700, date: "2022-4-1" },
{ value: 26400, date: "2022-5-1" },
{ value: 31200, date: "2022-6-1" },
],
rate: [
{ value: 8.0, date: "2022-1-1" },
{ value: 7.6, date: "2022-2-1" },
{ value: 9.1, date: "2022-3-1" },
{ value: 8.4, date: "2022-4-1" },
{ value: 6.9, date: "2022-5-1" },
{ value: 9.0, date: "2022-6-1" },
],
pet_count: 54,
pet_type: 8,
income_monthly: 68900,
doctor_count: 23,
prev_pet_count: { current: 54, prev: 45 },
prev_pet_type: { current: 8, prev: 13 },
prev_income_monthly: { current: 68900, prev: 92000 },
prev_doctor_count: { current: 23, prev: 27 },
datasource_type: [
{ type: "猫猫", count: 18 },
{ type: "狗狗", count: 6 },
{ type: "其他", count: 3 },
],
datasource_status: [
{ status: "已查看", count: 3 },
{ status: "治疗中", count: 12 },
{ status: "已治愈", count: 9 },
],
datasource_cost: [
{ name: "毛毛", stay: 3, cost: 2000 },
{ name: "阿布", stay: 6, cost: 4200 },
{ name: "咪咪", stay: 7, cost: 6000 },
{ name: "狗蛋", stay: 1, cost: 1000 },
],
};
}
/**
* Compute out
* @param {*} field
* @param {*} value
* @param {*} data
* @returns
*/
function Income(field, value, data) {
log.Info(
"[chart] Income Compute: %s",
JSON.stringify({ field: field, value: value, data: data })
);
return value;
}
`), 0644)
if err != nil {
return err
}
return nil
}
func makeLang(root string) error {
fs := system.New(filepath.Join(root, "langs"))
file := filepath.Join("zh-cn", "global.yml")
if _, err := os.Stat(filepath.Join(root, "langs", file)); err == nil { // exists
return nil
}
_, err := fs.WriteFile(file, []byte(`
Demo: 演示
Demo Application: 示例应用
Another yao application: 又一个 YAO 应用`), 0644)
if err != nil {
return err
}
file = filepath.Join("zh-hk", "langs", "global.yml")
if _, err := os.Stat(filepath.Join(root, file)); err == nil { // exists
return nil
}
_, err = fs.WriteFile(file, []byte(`
Demo: 演示
Demo Application: 示例應用
Another yao application: 又一個YAO應用`), 0644)
if err != nil {
return err
}
return nil
}
func makeIndexPage(root string) error {
fs := system.New(filepath.Join(root, "public"))
file := "index.html"
if _, err := os.Stat(filepath.Join(root, "public", file)); err == nil { // exists
return nil
}
_, err := fs.WriteFile(file, []byte(`
It works!`), 0644)
if err != nil {
return err
}
return nil
}

View file

@ -1,6 +1,7 @@
package setup
import (
"os"
"testing"
)
@ -10,3 +11,19 @@ func TestInstall(t *testing.T) {
// t.Fatal(err)
// }
}
func TestMakeInit(t *testing.T) {
root := prepare(t)
err := makeInit(root)
if err != nil {
t.Fatal(err)
}
}
func prepare(t *testing.T) string {
dir, err := os.MkdirTemp("", "-install")
if err != nil {
t.Fatal(err)
}
return dir
}