[remove] unused code
2
Makefile
|
|
@ -9,7 +9,7 @@ COMMIT := $(shell git log | head -n 1 | awk '{print substr($$2, 0, 12)}')
|
|||
NOW := $(shell date +"%FT%T%z")
|
||||
|
||||
# ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
TESTFOLDER := $(shell $(GO) list ./... | grep -E 'api|model|flow|script|fs|i18n|connector|query|plugin|cert|crypto|task|schedule|runtime|helper|utils|widget|importer|store' | grep -vE 'examples|tests*|config|widgets')
|
||||
TESTFOLDER := $(shell $(GO) list ./... | grep -E 'api|model|flow|script|fs|i18n|connector|query|plugin|cert|crypto|task|schedule|runtime|helper|utils|widget|importer|store|widgets' | grep -vE 'examples|tests*|config')
|
||||
TESTTAGS ?= ""
|
||||
|
||||
# TESTWIDGETS := $(shell $(GO) list ./widgets/...)
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ import (
|
|||
|
||||
"github.com/google/uuid"
|
||||
"github.com/yaoapp/gou/application"
|
||||
"github.com/yaoapp/gou/fs"
|
||||
"github.com/yaoapp/gou/process"
|
||||
"github.com/yaoapp/kun/any"
|
||||
"github.com/yaoapp/kun/exception"
|
||||
"github.com/yaoapp/kun/log"
|
||||
"github.com/yaoapp/yao/config"
|
||||
"github.com/yaoapp/yao/fs"
|
||||
"github.com/yaoapp/yao/importer/from"
|
||||
"github.com/yaoapp/yao/importer/xlsx"
|
||||
"github.com/yaoapp/yao/share"
|
||||
|
|
@ -29,11 +29,12 @@ var DataRoot string = ""
|
|||
// Load 加载导入器
|
||||
func Load(cfg config.Config) error {
|
||||
|
||||
root, err := fs.Root(cfg)
|
||||
fs, err := fs.Get("system")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
DataRoot = root
|
||||
|
||||
DataRoot = fs.Root()
|
||||
|
||||
exts := []string{"*.imp.yao", "*.imp.json", "*.imp.jsonc"}
|
||||
return application.App.Walk("imports", func(root, file string, isdir bool) error {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
package importer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/yaoapp/gou/fs"
|
||||
"github.com/yaoapp/yao/config"
|
||||
"github.com/yaoapp/yao/fs"
|
||||
"github.com/yaoapp/yao/importer/xlsx"
|
||||
"github.com/yaoapp/yao/script"
|
||||
"github.com/yaoapp/yao/test"
|
||||
|
|
@ -208,7 +209,10 @@ func prepare(t *testing.T, cfg config.Config) string {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dataRoot, err := fs.Root(cfg)
|
||||
fs := fs.MustGet("system")
|
||||
dataRoot := fs.Root()
|
||||
fmt.Println("prepare", dataRoot)
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package test
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -48,6 +49,10 @@ func Prepare(t *testing.T, cfg config.Config) {
|
|||
}
|
||||
application.Load(app)
|
||||
|
||||
if cfg.DataRoot == "" {
|
||||
cfg.DataRoot = filepath.Join(root, "data")
|
||||
}
|
||||
|
||||
dbconnect(t, cfg)
|
||||
load(t, cfg)
|
||||
startRuntime(t, cfg)
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
# 测试用应用
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"name": "用户接口",
|
||||
"version": "1.0.0",
|
||||
"description": "用户API",
|
||||
"group": "benchmark",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/ping",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.helper.Return",
|
||||
"in": [":query"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/flows/pure",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "flows.benchmark.pure",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/flows/script",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "flows.benchmark.script",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"name": "A Chat WebSocket server",
|
||||
"description": "A Chat WebSocket serverr",
|
||||
"version": "0.9.2",
|
||||
"protocols": ["yao-chat-01"],
|
||||
"guard": "bearer-jwt",
|
||||
"buffer": { "read": 1024, "write": 1024 },
|
||||
"limit": { "read-wait": 10, "pong-wait": 20, "max-message": 1024 },
|
||||
"timeout": 5,
|
||||
"process": "flows.websocket.chat"
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
{
|
||||
"name": "Demo",
|
||||
"version": "1.0.0",
|
||||
"description": "demo",
|
||||
"group": "demo",
|
||||
"guard": "-",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/user",
|
||||
"method": "GET",
|
||||
"process": "flows.demo.user",
|
||||
"in": ["$query.id"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/admin",
|
||||
"method": "GET",
|
||||
"process": "flows.demo.admin",
|
||||
"in": ["$query.id"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/token",
|
||||
"method": "GET",
|
||||
"process": "flows.demo.token",
|
||||
"in": ["$query.id"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "厂商接口",
|
||||
"version": "1.0.0",
|
||||
"description": "厂商API",
|
||||
"group": "manu",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": []
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "厂商接口",
|
||||
"version": "1.0.0",
|
||||
"description": "厂商API",
|
||||
"group": "manu",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": []
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
{
|
||||
"name": "用户接口",
|
||||
"version": "1.0.0",
|
||||
"description": "用户API",
|
||||
"group": "user",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/login",
|
||||
"method": "POST",
|
||||
"guard": "-",
|
||||
"process": "plugins.user.Login",
|
||||
"in": ["$payload.mobile", "$payload.password", "$payload.captcha"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/ping",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "plugins.user.Login",
|
||||
"in": ["$payload.mobile", "$payload.password", "$payload.captcha"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/find/:id",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "models.user.Find",
|
||||
"in": ["$param.id", ":params"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/search",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "models.user.Paginate",
|
||||
"in": [":params", "$query.page", "$query.pagesize"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/info/:id",
|
||||
"method": "GET",
|
||||
"process": "models.user.Find",
|
||||
"in": ["$param.id", ":params"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "象传应用",
|
||||
"short": "象传",
|
||||
"description": "象传应用后台",
|
||||
"lang": "en-US",
|
||||
"option": {
|
||||
"index": "/table/service"
|
||||
},
|
||||
"storage": {
|
||||
"default": "oss",
|
||||
"oss": {
|
||||
"comment": "https://www.alibabacloud.com/help/zh/doc-detail/100624.htm",
|
||||
"endpoint": "oss-cn-hangzhou.aliyuncs.com",
|
||||
"id": "LTAI5tHXfWAMpcsobfqfeXsm",
|
||||
"secret": "4NeGNw97nFrfmgBWZTlFE0XtYQdMQO",
|
||||
"roleArn": "acs:ram::31524094:role/ramosstest",
|
||||
"sessionName": "SessionTest"
|
||||
},
|
||||
"cos": {},
|
||||
"s3": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
|
||||
## ERROR
|
||||
select `service`.`id` as `service_id`, `service`.`short_name` as `service_short_name`, `service`.`name` as `service_name`, `service`.`city` as `service_city`, `service`.`kind_id` as `service_kind_id`, `service`.`manu_id` as `service_manu_id`, `service`.`registed_at` as `service_registed_at`, `service`.`link` as `service_link`, `service`.`contact_name` as `service_contact_name`, `service`.`contact_mobile` as `service_contact_mobile`, `service`.`fields` as `service_fields`, `service`.`price_options` as `service_price_options`, `service`.`industries` as `service_industries`, `service`.`rank` as `service_rank`, `service`.`status` as `service_status`, `service`.`deleted_at` as `service_deleted_at`, `service`.`created_at` as `service_created_at`, `service`.`updated_at` as `service_updated_at` from `service` as `service` where `service`.`deleted_at` is null order by `service`.`created_at` limit 1 offset 907
|
||||
select `service`.`id` as `service_id`, `service`.`short_name` as `service_short_name`, `service`.`name` as `service_name`, `service`.`city` as `service_city`, `service`.`kind_id` as `service_kind_id`, `service`.`manu_id` as `service_manu_id`, `service`.`registed_at` as `service_registed_at`, `service`.`link` as `service_link`, `service`.`contact_name` as `service_contact_name`, `service`.`contact_mobile` as `service_contact_mobile`, `service`.`fields` as `service_fields`, `service`.`price_options` as `service_price_options`, `service`.`industries` as `service_industries`, `service`.`rank` as `service_rank`, `service`.`status` as `service_status`, `service`.`deleted_at` as `service_deleted_at`, `service`.`created_at` as `service_created_at`, `service`.`updated_at` as `service_updated_at` from `service` as `service` where `service`.`deleted_at` is null order by `service`.`created_at` limit 1 offset 1740
|
||||
|
||||
|
||||
## CORRECT
|
||||
select `service`.`id` as `service_id`, `service`.`short_name` as `service_short_name`, `service`.`name` as `service_name`, `service`.`city` as `service_city`, `service`.`kind_id` as `service_kind_id`, `service`.`manu_id` as `service_manu_id`, `service`.`registed_at` as `service_registed_at`, `service`.`link` as `service_link`, `service`.`contact_name` as `service_contact_name`, `service`.`contact_mobile` as `service_contact_mobile`, `service`.`fields` as `service_fields`, `service`.`price_options` as `service_price_options`, `service`.`industries` as `service_industries`, `service`.`rank` as `service_rank`, `service`.`status` as `service_status`, `service`.`deleted_at` as `service_deleted_at`, `service`.`created_at` as `service_created_at`, `service`.`updated_at` as `service_updated_at` from `service` as `service` where `service`.`deleted_at` is null order by `service`.`created_at`, `service`.`id` limit 1 offset 907
|
||||
select `service`.`id` as `service_id`, `service`.`short_name` as `service_short_name`, `service`.`name` as `service_name`, `service`.`city` as `service_city`, `service`.`kind_id` as `service_kind_id`, `service`.`manu_id` as `service_manu_id`, `service`.`registed_at` as `service_registed_at`, `service`.`link` as `service_link`, `service`.`contact_name` as `service_contact_name`, `service`.`contact_mobile` as `service_contact_mobile`, `service`.`fields` as `service_fields`, `service`.`price_options` as `service_price_options`, `service`.`industries` as `service_industries`, `service`.`rank` as `service_rank`, `service`.`status` as `service_status`, `service`.`deleted_at` as `service_deleted_at`, `service`.`created_at` as `service_created_at`, `service`.`updated_at` as `service_updated_at` from `service` as `service` where `service`.`deleted_at` is null order by `service`.`created_at`, `service`.`id` limit 1 offset 1740
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDCjCCAfICCQDIMbr1hVnv2TANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJD
|
||||
TjEQMA4GA1UECAwHQmVpamluZzEQMA4GA1UEBwwHSGFpZGlhbjEUMBIGA1UECgwL
|
||||
WWFvQXBwcy5jb20wHhcNMjIwNzE2MDY0ODI5WhcNMzIwNzEzMDY0ODI5WjBHMQsw
|
||||
CQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpamluZzEQMA4GA1UEBwwHSGFpZGlhbjEU
|
||||
MBIGA1UECgwLWWFvQXBwcy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||
AoIBAQCqLwF385x1w0umsYpUb6LfSl/jUtny2T4hrVAAfzKcPDYyKT/gwJKJAm5v
|
||||
PPLhsqjJLD27eRVNfzqCYOOJPIK5D+YAJigEb7/n+s96P7m0bzLZla3w/2GZRqZb
|
||||
8m48xOQIHm/jVDC45Q3q/zdFUwgBtrOJxBBSs75eLRhj04CCPjdqoZcr0RdoyzSG
|
||||
KvGiNGMNjfWEsdTnGYOcGNUa0UOsIpk+gS+QXD6EMlilM8GWQA+cDw6Owk5ydD0b
|
||||
mPAiDD+mQn4wqCqruRuDziFe/cqWlY7etETT5Ox1D8eiLTTGRnj8p0TEro/eZ4Pc
|
||||
JsVhH/t9yOvLgze3pgaPbbY6enTTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAAp9
|
||||
7QuYnZF6YKp4zZp4VQkikAyYMvNnvQC9Fgah0RaX/ZY8hG7QQqiLDjcMPVaR13jT
|
||||
oVumWJ225xO3HCi38AGHsJW8Uu7ZR4LZzI59MHenv10EIiTpc3HYAv+bH5bVtmgX
|
||||
R7CEUMhNiJBKr6TwxiKBWkfjvO7sJrX4ZxKe6SKcOoKUeIMRyZCqstlSMlfu1xwr
|
||||
DX83fyOyOaDJkUPIJNhVIbwqQxV0X47Bxdj9IdGF26ut4Dh0YNVxtArVr5va1VQo
|
||||
Rsa9r63lhmnqbjeFcbY8TlO1Pm+hWgOmgcrjGNdP8DYi3KFMFiwY+VSUtwPnSZQS
|
||||
OANAV1mlEv6+7UMZHRs=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqLwF385x1w0um
|
||||
sYpUb6LfSl/jUtny2T4hrVAAfzKcPDYyKT/gwJKJAm5vPPLhsqjJLD27eRVNfzqC
|
||||
YOOJPIK5D+YAJigEb7/n+s96P7m0bzLZla3w/2GZRqZb8m48xOQIHm/jVDC45Q3q
|
||||
/zdFUwgBtrOJxBBSs75eLRhj04CCPjdqoZcr0RdoyzSGKvGiNGMNjfWEsdTnGYOc
|
||||
GNUa0UOsIpk+gS+QXD6EMlilM8GWQA+cDw6Owk5ydD0bmPAiDD+mQn4wqCqruRuD
|
||||
ziFe/cqWlY7etETT5Ox1D8eiLTTGRnj8p0TEro/eZ4PcJsVhH/t9yOvLgze3pgaP
|
||||
bbY6enTTAgMBAAECggEAGgj65ojkRLfN2QCMMwKpHhPYu4QvR5Goiapj9M+AxJoJ
|
||||
iH77AL01LbSrhGUEmzajz7Lu9sE9Ww+9ubhs1s/lB77A5wDvWk5mQ20BVKhvFoV0
|
||||
eAkIBThsi/Bc/vAFoVJVuFA/ub1lfsO771l/8SEUtn5m1QqjnKNW2j133725iTMP
|
||||
iwRlcEOEfFGa5bVQ/eEnQ5Fbk0OmIwfoSiFBTIsi2ZO7qTXaN5O1QzJKtSq0Jqbi
|
||||
7cB0Z2cUi0QJ11jP4OcoawdVmx9InVwLkBfgR/AydmzClfnV7F8lk+m9UZmDV6/M
|
||||
Wf+nAkijvYHvtmbb38qsHigE34agkvcy2YWoIstdcQKBgQDYi6fUsNu8RF2JC2NH
|
||||
YWSnDS4JhYVP6pRugaH/RMe8+uX64JK1h85EXqf+rIWfmdkEN43p95lUxjObpEHE
|
||||
pt2irrei8ARYqb7W0VkDfcEJnWoHMPlY/j7wunoIUFP1l8WWsrDyF3l+XnFLfRSj
|
||||
rJ8/q/pPqJT2caYyOfF4EGltBQKBgQDJMOOVuoNAsZNttK9JwbORME+aK9OTXriT
|
||||
VzHbqbMiyWBvqtnpRbwr6gHm+1nJgL4Fz1pT7vUxyXKzDIrRjx92qWp2sIFoYmAs
|
||||
y0pdKChREbPAZUFIG5VJHqSgpStJq74Cq7Rrpmyg/rgKTNNCx7CwJ7Lap4OSr1tY
|
||||
u5tZ/ARB9wKBgQCrXhn7X9sFKrU69yAiJRkaenusXVYa4HGG4l/pO+01yPiniYGQ
|
||||
12CNCru395/npkDv7WcJeUCGrjO5QEwr7EIJtGrvLzLBV9QG/LWM5cAWc9SszD0I
|
||||
CGyW5XwdiDRpbyqXD+KoM5uaPfM64kmrHbkJEniNAcShI1968BAADDziYQKBgHIG
|
||||
UkXu0iqdOdgoWlwr+vBjeAoBosTYHzXqaih7sjoZ9Zz0MNKDolUlJ/TYKZgJbiju
|
||||
ztvZB4AzEt2lUxvXyNZAyEUCXiVh8+4PPVM0yjzAEqcM/AW5FE+/nUAqvDDhtCvh
|
||||
UrzcMp7AHmBAEE+9y0bbCQPhgrFkzxmoIjDKo0MbAoGAK58GTcH85twPkxdcskmv
|
||||
wGzaUNXK4ggUvvXHbHDv0oVgx9aZR5dNclBkYcED0bQQL/c8aUk8hQkDj7TEvU6I
|
||||
VDZ9iuJl2HRiVxRgl+cREqRhVhIoGbHCpZveymCIUjVWQqZtsWrtyI6R5gt+8LbW
|
||||
eNJGBYZxsCZuBtBdhiFIlfI=
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqi8Bd/OcdcNLprGKVG+i
|
||||
30pf41LZ8tk+Ia1QAH8ynDw2Mik/4MCSiQJubzzy4bKoySw9u3kVTX86gmDjiTyC
|
||||
uQ/mACYoBG+/5/rPej+5tG8y2ZWt8P9hmUamW/JuPMTkCB5v41QwuOUN6v83RVMI
|
||||
AbazicQQUrO+Xi0YY9OAgj43aqGXK9EXaMs0hirxojRjDY31hLHU5xmDnBjVGtFD
|
||||
rCKZPoEvkFw+hDJYpTPBlkAPnA8OjsJOcnQ9G5jwIgw/pkJ+MKgqq7kbg84hXv3K
|
||||
lpWO3rRE0+TsdQ/Hoi00xkZ4/KdExK6P3meD3CbFYR/7fcjry4M3t6YGj222Onp0
|
||||
0wIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
{
|
||||
"label": "::Demo",
|
||||
"version": "1.0.0",
|
||||
"description": "::Demo",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "行业",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"select": [
|
||||
"city",
|
||||
":COUNT(id) as 数量",
|
||||
"industries[*](string 50) as industry"
|
||||
],
|
||||
"from": "$service",
|
||||
"wheres": [
|
||||
{ "field": "created_at", ">": "?:$from.0" },
|
||||
{ "field": "created_at", "<": "?:$to" }
|
||||
],
|
||||
"orders": "数量 desc",
|
||||
"limit": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "计费",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"select": ["city", ":COUNT(id) as 数量", "price_options[*] as option"],
|
||||
"from": "$service",
|
||||
"wheres": [
|
||||
{ "field": "created_at", ">": "?:$from.0" },
|
||||
{ "field": "created_at", "<": "?:$to" }
|
||||
],
|
||||
"orders": "数量 desc",
|
||||
"limit": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "合并结果",
|
||||
"process": "xiang.helper.ArrayPluck",
|
||||
"args": [
|
||||
["城市", "行业", "计费"],
|
||||
{
|
||||
"行业": { "key": "city", "value": "数量", "items": "{{$res.行业}}" },
|
||||
"计费": { "key": "city", "value": "数量", "items": "{{$res.计费}}" }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"::Merge": "{{$res.合并结果}}",
|
||||
"::Billing": "{{$res.计费}}",
|
||||
"::Industry": "{{$res.行业}}",
|
||||
"::Parameter": "{{$in}}"
|
||||
},
|
||||
"apis": {
|
||||
"data": {
|
||||
"disable": false,
|
||||
"guard": "-",
|
||||
"default": [{ "from": "1980-01-02", "to": "2050-12-31" }]
|
||||
},
|
||||
"setting": { "disable": false, "guard": "-" }
|
||||
},
|
||||
"filters": {
|
||||
"::Start": {
|
||||
"label": "::Start",
|
||||
"bind": "from",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "::Please select a start time"
|
||||
}
|
||||
}
|
||||
},
|
||||
"::End": {
|
||||
"label": "::End",
|
||||
"bind": "to",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "::Please select an end time"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"primary": "::City",
|
||||
"layout": {
|
||||
"filters": [
|
||||
{ "name": "::Start", "width": 6 },
|
||||
{ "name": "::End", "width": 6 }
|
||||
],
|
||||
"charts": [
|
||||
{ "type": "line", "props": {} },
|
||||
{ "type": "bar", "props": {} }
|
||||
]
|
||||
},
|
||||
"actions": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
{
|
||||
"label": "指标对比",
|
||||
"version": "1.0.0",
|
||||
"description": "指标对比用于测试",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "行业",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"debug": false,
|
||||
"select": [
|
||||
"city",
|
||||
":COUNT(id) as 数量",
|
||||
"industries[*](string 50) as industry"
|
||||
],
|
||||
"from": "$service",
|
||||
"wheres": [
|
||||
{ "field": "created_at", ">": "?:$from.0" },
|
||||
{ "field": "created_at", "<": "?:$to" }
|
||||
],
|
||||
"orders": "数量 desc",
|
||||
"limit": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "计费",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"select": ["city", ":COUNT(id) as 数量", "price_options[*] as option"],
|
||||
"from": "$service",
|
||||
"wheres": [
|
||||
{ "field": "created_at", ">": "?:$from.0" },
|
||||
{ "field": "created_at", "<": "?:$to" }
|
||||
],
|
||||
"orders": "数量 desc",
|
||||
"limit": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "合并结果",
|
||||
"process": "xiang.helper.ArrayPluck",
|
||||
"args": [
|
||||
["城市", "行业", "计费"],
|
||||
{
|
||||
"行业": { "key": "city", "value": "数量", "items": "{{$res.行业}}" },
|
||||
"计费": { "key": "city", "value": "数量", "items": "{{$res.计费}}" }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"合并": "{{$res.合并结果}}",
|
||||
"计费": "{{$res.计费}}",
|
||||
"行业": "{{$res.行业}}",
|
||||
"参数": "{{$in}}"
|
||||
},
|
||||
"apis": {
|
||||
"data": {
|
||||
"disable": false,
|
||||
"guard": "-",
|
||||
"default": [{ "from": "1980-01-02", "to": "2050-12-31" }]
|
||||
},
|
||||
"setting": {
|
||||
"disable": false,
|
||||
"guard": "-"
|
||||
}
|
||||
},
|
||||
"filters": {
|
||||
"开始时间": {
|
||||
"label": "开始时间",
|
||||
"bind": "from",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "请选择开始时间"
|
||||
}
|
||||
}
|
||||
},
|
||||
"结束时间": {
|
||||
"label": "结束时间",
|
||||
"bind": "to",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "请选择结束时间"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"primary": "城市",
|
||||
"layout": {
|
||||
"filters": [
|
||||
{ "name": "开始时间", "width": 6 },
|
||||
{ "name": "结束时间", "width": 6 }
|
||||
],
|
||||
"charts": [
|
||||
{ "type": "line", "props": {} },
|
||||
{ "type": "bar", "props": {} }
|
||||
]
|
||||
},
|
||||
"actions": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
function main(args, out, res) {
|
||||
console.log(args, out, res);
|
||||
return out;
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
SELECT * FROM service as service
|
||||
JOIN JSON_TABLE(service.price_options, '$[*]' columns (price varchar(50) path '$') ) as t group by price
|
||||
|
||||
/**
|
||||
[mysqld]
|
||||
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
|
||||
*/
|
||||
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
{
|
||||
"label": "指标对比",
|
||||
"version": "1.0.0",
|
||||
"description": "指标对比用于测试",
|
||||
"nodes": [{ "name": "ID", "process": "session.Get", "args": ["id"] }],
|
||||
"output": {
|
||||
"ID": "{{$res.ID}}"
|
||||
},
|
||||
"apis": {
|
||||
"data": {
|
||||
"disable": false,
|
||||
"guard": "-",
|
||||
"default": [{ "from": "1980-01-02", "to": "2050-12-31" }]
|
||||
},
|
||||
"setting": {
|
||||
"disable": false,
|
||||
"guard": "-"
|
||||
}
|
||||
},
|
||||
"filters": {
|
||||
"开始时间": {
|
||||
"label": "开始时间",
|
||||
"bind": "from",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "请选择开始时间"
|
||||
}
|
||||
}
|
||||
},
|
||||
"结束时间": {
|
||||
"label": "结束时间",
|
||||
"bind": "to",
|
||||
"input": {
|
||||
"type": "date",
|
||||
"props": {
|
||||
"placeholder": "请选择结束时间"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"primary": "城市",
|
||||
"layout": {
|
||||
"filters": [
|
||||
{ "name": "开始时间", "width": 6 },
|
||||
{ "name": "结束时间", "width": 6 }
|
||||
],
|
||||
"charts": [
|
||||
{ "type": "line", "props": {} },
|
||||
{ "type": "bar", "props": {} }
|
||||
]
|
||||
},
|
||||
"actions": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"LANG": "1.0.0",
|
||||
"VERSION": "1.0.0",
|
||||
"label": "Mongo TEST",
|
||||
"type": "mongo",
|
||||
"options": {
|
||||
"db": "test",
|
||||
"hosts": [
|
||||
{
|
||||
"host": "$ENV.MONGO_TEST_HOST",
|
||||
"port": "$ENV.MONGO_TEST_PORT",
|
||||
"user": "$ENV.MONGO_TEST_USER",
|
||||
"pass": "$ENV.MONGO_TEST_PASS"
|
||||
}
|
||||
],
|
||||
"params": { "maxPoolSize": 20, "w": "majority" }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"LANG": "1.0.0",
|
||||
"VERSION": "1.0.0",
|
||||
"label": "MySQL 8.0 TEST",
|
||||
"type": "mysql",
|
||||
"version": "8.0.26",
|
||||
"options": {
|
||||
"db": "test",
|
||||
"charset": "utf8mb4",
|
||||
"parseTime": true,
|
||||
"hosts": [
|
||||
{
|
||||
"host": "$ENV.MYSQL_TEST_HOST",
|
||||
"port": "$ENV.MYSQL_TEST_PORT",
|
||||
"user": "$ENV.MYSQL_TEST_USER",
|
||||
"pass": "$ENV.MYSQL_TEST_PASS",
|
||||
"primary": true
|
||||
},
|
||||
{
|
||||
"host": "$ENV.MYSQL_TEST_HOST",
|
||||
"port": "$ENV.MYSQL_TEST_PORT",
|
||||
"user": "$ENV.MYSQL_TEST_USER",
|
||||
"pass": "$ENV.MYSQL_TEST_PASS"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"LANG": "1.0.0",
|
||||
"VERSION": "1.0.0",
|
||||
"label": "Redis TEST",
|
||||
"type": "redis",
|
||||
"options": {
|
||||
"host": "$ENV.REDIS_TEST_HOST",
|
||||
"port": "$ENV.REDIS_TEST_PORT",
|
||||
"user": "$ENV.REDIS_TEST_USER",
|
||||
"pass": "$ENV.REDIS_TEST_PASS",
|
||||
"db": "1"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"LANG": "1.0.0",
|
||||
"VERSION": "1.0.0",
|
||||
"label": "SQLite TEST",
|
||||
"type": "sqlite3",
|
||||
"options": {
|
||||
"file": "$ENV.SQLITE_DB"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 679 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 667 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 667 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
|
@ -1 +0,0 @@
|
|||
文件上传
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
订单号,姓名,手机,性别,年龄,商品名称,数量,单价,总价,备注
|
||||
SN202101120018,张三,13211000011,男,26,彩绘湖北地图,3,65.5,196.5,
|
||||
,李四,13211000011,男,42,景祐遁甲符应经,1,34.8,34.8,
|
||||
SN202101120019,王二麻子,13410001998,男,51,太极先天后天三图说,1,24.35,72.85,孔夫子二手交易
|
||||
SN202101120019,王二麻子,13410001998,男,51,五要奇书,1,48.5,72.85,孔夫子二手交易
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
"guard": "bearer-jwt",
|
||||
"title": "应用表单",
|
||||
"sn": "AP1024",
|
||||
"orign": "手机应用",
|
||||
"columns": [
|
||||
{
|
||||
"name": "门店",
|
||||
"field": "store_id",
|
||||
"searchable": true,
|
||||
"props": {
|
||||
"value": ":store_id",
|
||||
"type": "SelectStore",
|
||||
"title": "门店",
|
||||
"placeholder": "请选择门店",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "StoreStatus", "args": [":store_id"] }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "订单数量",
|
||||
"field": "orders_amount",
|
||||
"searchable": true,
|
||||
"props": {
|
||||
"value": ":orders_amount",
|
||||
"type": "Number",
|
||||
"title": "订单数量",
|
||||
"placeholder": "今日订单数量",
|
||||
"computed": "OrderAmount",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "IsNumber", "args": [":orders_amount"] }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "账单地址",
|
||||
"field": "address",
|
||||
"props": {
|
||||
"value": ":address",
|
||||
"type": "Text",
|
||||
"title": "账单地址",
|
||||
"placeholder": "填写账单地址",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "MaxLength", "args": [":address", 200] }
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"filters": [],
|
||||
"list-layout": {
|
||||
"columns": [{ "name": "store_id" }, { "name": "orders_amount" }],
|
||||
"filters": [{ "name": "订单数量" }]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
{
|
||||
"guard": "bearer-jwt",
|
||||
"title": "官网表单",
|
||||
"sn": "AP2048",
|
||||
"orign": "官方网站",
|
||||
"columns": [
|
||||
{
|
||||
"name": "门店",
|
||||
"field": "store_id",
|
||||
"searchable": true,
|
||||
"props": {
|
||||
"value": ":store_id",
|
||||
"type": "SelectStore",
|
||||
"title": "门店",
|
||||
"placeholder": "请选择门店",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "StoreStatus", "args": [":store_id"] }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "订单数量",
|
||||
"field": "orders_amount",
|
||||
"searchable": true,
|
||||
"props": {
|
||||
"value": ":orders_amount",
|
||||
"type": "Number",
|
||||
"title": "订单数量",
|
||||
"placeholder": "今日订单数量",
|
||||
"computed": "OrderAmount",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "IsNumber", "args": [":orders_amount"] }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "账单地址",
|
||||
"field": "address",
|
||||
"props": {
|
||||
"value": ":address",
|
||||
"type": "Text",
|
||||
"title": "账单地址",
|
||||
"placeholder": "填写账单地址",
|
||||
"validation": [
|
||||
{ "type": "Required" },
|
||||
{ "type": "MaxLength", "args": [":address", 200] }
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"订单数量": {
|
||||
"label": "订单数量超过",
|
||||
"bind": "where.orders_amount.ge",
|
||||
"type": "Select",
|
||||
"props": {
|
||||
"placeholder": "订单数量",
|
||||
"options": [
|
||||
{ "label": "大于100", "value": 100 },
|
||||
{ "label": "大于50", "value": 50 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"list-layout": {
|
||||
"columns": [
|
||||
{ "name": "store_id" },
|
||||
{ "name": "orders_amount" },
|
||||
{ "name": "address" }
|
||||
],
|
||||
"filters": [{ "name": "订单数量" }]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
"label": "审批驳回并重置状态",
|
||||
"version": "1.0.0",
|
||||
"description": "审批驳回并重置状态",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "审批驳回",
|
||||
"process": "xiang.workflow.Next",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$res.工作流.id}}",
|
||||
{ "审批状态": "驳回", "驳回原因": "{{$input.reason}}" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "重置工作流",
|
||||
"process": "xiang.workflow.Goto",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$res.工作流.id}}",
|
||||
"选择商务负责人",
|
||||
{}
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.重置工作流}}"
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"label": "审批驳回并关闭流程",
|
||||
"version": "1.0.0",
|
||||
"description": "审批驳回并关闭流程",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "审批驳回",
|
||||
"process": "xiang.workflow.Next",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$res.工作流.id}}",
|
||||
{ "审批状态": "驳回", "驳回原因": "{{$input.reason}}" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "关闭流程",
|
||||
"process": "xiang.workflow.Status",
|
||||
"args": ["{{$res.工作流.id}}", "已关闭"]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.关闭流程}}"
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"label": "指派信息审批通过",
|
||||
"version": "1.0.0",
|
||||
"description": "指派信息审批通过",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "审批通过",
|
||||
"process": "xiang.workflow.Next",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$res.工作流.id}}",
|
||||
{ "审批状态": "通过" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.审批通过}}"
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"label": "保存指派信息",
|
||||
"version": "1.0.0",
|
||||
"description": "保存指派信息",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.工作流}}"
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"label": "提交指派信息",
|
||||
"version": "1.0.0",
|
||||
"description": "提交指派信息",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "提交审批",
|
||||
"process": "xiang.workflow.Next",
|
||||
"args": ["{{$res.当前用户.id}}", "{{$res.工作流.id}}"]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.关闭流程}}"
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"label": "关闭流程",
|
||||
"version": "1.0.0",
|
||||
"description": "关闭流程",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "当前用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "工作流",
|
||||
"process": "xiang.workflow.Save",
|
||||
"args": [
|
||||
"{{$res.当前用户.id}}",
|
||||
"{{$name}}",
|
||||
"{{$node}}",
|
||||
"{{$id}}",
|
||||
"{{$input}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "关闭流程",
|
||||
"process": "xiang.workflow.Status",
|
||||
"args": ["{{$res.当前用户.id}}", "{{$res.工作流.id}}", "已关闭"]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.关闭流程}}"
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "性能测试",
|
||||
"version": "1.0.0",
|
||||
"description": "性能测试",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "性能测试",
|
||||
"process": "xiang.helper.Return",
|
||||
"args": [1, 2, 3]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.性能测试}}"
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "性能测试",
|
||||
"version": "1.0.0",
|
||||
"description": "性能测试",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "性能测试",
|
||||
"process": "scripts.time.now",
|
||||
"args": [1, 2, 3]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.性能测试}}"
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"label": "当前用户",
|
||||
"version": "1.0.0",
|
||||
"description": "读取当前用户",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "用户",
|
||||
"process": "session.Get",
|
||||
"args": ["user"]
|
||||
},
|
||||
{
|
||||
"name": "ID",
|
||||
"process": "xiang.helper.MapGet",
|
||||
"args": ["{{$res.用户}}", "ID"]
|
||||
}
|
||||
],
|
||||
"output": 1
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"label": "Auto Login",
|
||||
"version": "1.0.0",
|
||||
"description": "Auto Login for demo",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "User",
|
||||
"process": "models.xiang.user.Get",
|
||||
"args": [
|
||||
{
|
||||
"select": ["id", "email", "name", "type"],
|
||||
"wheres": [{ "column": "id", "value": 1 }],
|
||||
"limit": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Menu",
|
||||
"process": "flows.xiang.menu",
|
||||
"args": ["{{$res.User.0.id}}"]
|
||||
},
|
||||
{
|
||||
"name": "SID",
|
||||
"process": "session.start"
|
||||
},
|
||||
{
|
||||
"name": "JWT",
|
||||
"process": "xiang.helper.JWTMake",
|
||||
"args": [
|
||||
"{{$res.User.0.id}}",
|
||||
{},
|
||||
{
|
||||
"timeout": 3600,
|
||||
"sid": "{{$res.SID}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Set User",
|
||||
"process": "session.set",
|
||||
"args": ["user", "{{$res.User.0}}"]
|
||||
},
|
||||
{
|
||||
"name": "Set issuer",
|
||||
"process": "session.set",
|
||||
"args": ["issuer", "xiang"]
|
||||
},
|
||||
{
|
||||
"name": "Set User ID",
|
||||
"process": "session.set",
|
||||
"args": ["user_id", "{{$res.User.0.id}}"]
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"sid": "{{$res.SID}}",
|
||||
"user": "{{$res.User.0}}",
|
||||
"menus": "{{$res.Menu}}",
|
||||
"token": "{{$res.JWT.token}}",
|
||||
"expires_at": "{{$res.JWT.expires_at}}"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "Auto Login",
|
||||
"version": "1.0.0",
|
||||
"description": "Auto Login for demo",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "User",
|
||||
"process": "flows.demo.admin",
|
||||
"args": []
|
||||
}
|
||||
],
|
||||
"output": "{{$res.User.token}}"
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"label": "最新信息",
|
||||
"version": "1.0.0",
|
||||
"description": "最新信息",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "user",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"select": ["id", "name"],
|
||||
"from": "$user",
|
||||
"first": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"params": "{{$in}}"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "HexToString",
|
||||
"version": "1.0.0",
|
||||
"description": "HexToString",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "Value",
|
||||
"process": "xiang.helper.HexToString",
|
||||
"args": ["ab"]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.Value}}"
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "After:Find",
|
||||
"version": "1.0.0",
|
||||
"description": "After:Find",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "结果",
|
||||
"process": "xiang.helper.MapSet",
|
||||
"args": ["{{$in.0}}", "after", 100]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.结果}}"
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "After:Save",
|
||||
"version": "1.0.0",
|
||||
"description": "After:Save",
|
||||
"nodes": [],
|
||||
"output": { "id": "{{$in.0}}", "after": 100 }
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "After:Search",
|
||||
"version": "1.0.0",
|
||||
"description": "After:Search",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "结果",
|
||||
"process": "xiang.helper.MapSet",
|
||||
"args": ["{{$in.0}}", "after", 100]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.结果}}"
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"label": "After:Select",
|
||||
"version": "1.0.0",
|
||||
"description": "After:Select",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "结果",
|
||||
"process": "xiang.helper.ArrayMapSet",
|
||||
"args": ["{{$in.0}}", "after", 100]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.结果}}"
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "Before:Find",
|
||||
"version": "1.0.0",
|
||||
"description": "Before:Find",
|
||||
"nodes": [],
|
||||
"output": [1, {}]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"label": "Before:Save",
|
||||
"version": "1.0.0",
|
||||
"description": "Before:Save",
|
||||
"nodes": [],
|
||||
"output": [
|
||||
{
|
||||
"name": "腾讯黑岩云主机",
|
||||
"short_name": "高性能云主机",
|
||||
"kind_id": 3,
|
||||
"manu_id": 1,
|
||||
"price_options": "按月订阅"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "Before:Search",
|
||||
"version": "1.0.0",
|
||||
"description": "Before:Search",
|
||||
"nodes": [],
|
||||
"output": [{ "wheres": [{ "column": "status", "value": "enabled" }] }, 1, 2]
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "Before:Select",
|
||||
"version": "1.0.0",
|
||||
"description": "Before:Select",
|
||||
"nodes": [],
|
||||
"output": ["腾讯", "name", "id"]
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"label": "会话测试",
|
||||
"version": "1.0.0",
|
||||
"description": "Before:Select",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "会话数据",
|
||||
"process": "session.Dump"
|
||||
},
|
||||
{
|
||||
"name": "打印数据",
|
||||
"process": "xiang.helper.Print",
|
||||
"args": ["会话数据:", "{{$res.会话数据}}"]
|
||||
}
|
||||
],
|
||||
"output": "{{$in}}"
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
function main(args, out, res) {
|
||||
return {
|
||||
args: args,
|
||||
plugin: res.github.name,
|
||||
};
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
{
|
||||
"label": "最新信息",
|
||||
"version": "1.0.0",
|
||||
"description": "最新信息",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "manus",
|
||||
"process": "models.manu.get",
|
||||
"args": [
|
||||
{
|
||||
"select": ["id", "name", "short_name"],
|
||||
"limit": 20,
|
||||
"orders": [{ "column": "created_at", "option": "desc" }],
|
||||
"wheres": [
|
||||
{ "column": "status", "value": "enabled" },
|
||||
{ "column": "name", "value": "{{$in.0}}", "op": "like" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"script": "rank",
|
||||
"outs": ["{{$out.manus}}", "{{$out.manu_ids}}"]
|
||||
},
|
||||
{
|
||||
"name": "users",
|
||||
"process": "models.user.paginate",
|
||||
"args": [
|
||||
{
|
||||
"select": ["id", "name", "extra", "resume"],
|
||||
"withs": {
|
||||
"manu": { "query": { "select": ["name", "short_name"] } },
|
||||
"addresses": {
|
||||
"query": { "select": ["province", "city", "location"] }
|
||||
}
|
||||
},
|
||||
"orders": [{ "column": "created_at", "option": "desc" }],
|
||||
"wheres": [
|
||||
{ "column": "status", "value": "enabled" },
|
||||
{ "column": "manu_id", "value": "{{$res.manus.1}}", "op": "in" }
|
||||
]
|
||||
},
|
||||
1,
|
||||
20
|
||||
],
|
||||
"outs": ["{{$out.data}}"]
|
||||
},
|
||||
{
|
||||
"name": "github",
|
||||
"process": "plugins.user.github",
|
||||
"args": [
|
||||
"{{$res.users.0}}",
|
||||
"{{$res.manus}}",
|
||||
"{{$in.0}}",
|
||||
"{{$in.1}}",
|
||||
"{{$in.2}}",
|
||||
"{{pluck(:$res.users, 'id', 0.618, 10)}}",
|
||||
"foo",
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "count",
|
||||
"script": "count"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"params": "{{$in}}",
|
||||
"data": {
|
||||
"manus": "{{$res.manus.0}}",
|
||||
"users": "{{$res.users.0}}",
|
||||
"count": "{{$res.count}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
// 结果集处理脚本
|
||||
function main(args, manus, data) {
|
||||
// 解析厂商ID
|
||||
var manu_ids = [];
|
||||
for (var i in manus) {
|
||||
var id = manus[i].id;
|
||||
if (id) {
|
||||
manu_ids.push(id);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理返回结果
|
||||
var res = {
|
||||
manus: manus,
|
||||
manu_ids: manu_ids,
|
||||
};
|
||||
return res;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "读取RFID标签",
|
||||
"version": "1.0.0",
|
||||
"description": "读取RFID标签",
|
||||
"nodes": [{ "script": "print" }],
|
||||
"output": null
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
function main(args, out, res) {
|
||||
// 100000012021128798321101 15 2d 02 f2 96 72 1e 52 b9 cd
|
||||
var idstr = args[0] || "";
|
||||
var len = idstr.length;
|
||||
|
||||
if (len != 36) {
|
||||
return;
|
||||
}
|
||||
id = BigInt("0x" + idstr.substring(8, len - 8).toUpperCase()).toString(10);
|
||||
console.log(id);
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"label": "选择管理者",
|
||||
"version": "1.0.0",
|
||||
"description": "选择管理者",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "负责人",
|
||||
"engine": "xiang",
|
||||
"query": {
|
||||
"select": ["id"],
|
||||
"from": "$xiang.user",
|
||||
"wheres": [{ ":type": "类型", "=": "staff" }],
|
||||
"first": true
|
||||
},
|
||||
"orders": [":RAND()"]
|
||||
}
|
||||
],
|
||||
"output": "{{$in.0}}"
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"label": "a chat Websocket process",
|
||||
"version": "1.0.0",
|
||||
"description": "a chat Websocket process",
|
||||
"nodes": [],
|
||||
"output": "{{$in.0}}"
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"mapping": {
|
||||
"name": "name",
|
||||
"short_name": "smalltitle",
|
||||
"rank": "priority"
|
||||
},
|
||||
"option": {
|
||||
"strict": true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
{
|
||||
"title": "导入订单数据",
|
||||
"process": "scripts.rules.ImportData",
|
||||
"columns": [
|
||||
{
|
||||
"label": "订单号",
|
||||
"name": "order_sn",
|
||||
"match": ["订单号", "订单", "order_sn", "id"],
|
||||
"rules": ["scripts.rules.order_sn"],
|
||||
"primary": true
|
||||
},
|
||||
{
|
||||
"label": "用户",
|
||||
"name": "user.name",
|
||||
"match": ["用户名称", "姓名", "user_id"],
|
||||
"rules": ["scripts.rules.FmtUser"],
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "性别",
|
||||
"name": "user.sex",
|
||||
"match": ["性别", "gender", "sex"],
|
||||
"rules": [],
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "年龄",
|
||||
"name": "user.age",
|
||||
"match": ["年龄", "age"],
|
||||
"rules": [],
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "手机号",
|
||||
"name": "mobile",
|
||||
"match": ["手机号", "手机", "mobile"],
|
||||
"rules": ["scripts.rules.mobile"]
|
||||
},
|
||||
{
|
||||
"label": "商品",
|
||||
"name": "skus[*].name",
|
||||
"match": ["商品", "商品名称", "goods", "skus", "sku_id", "goods_id"],
|
||||
"rules": ["scripts.rules.FmtGoods"]
|
||||
},
|
||||
{
|
||||
"label": "数量",
|
||||
"name": "skus[*].amount",
|
||||
"match": ["数量", "amount"],
|
||||
"rules": ["scripts.rules.FmtGoods"]
|
||||
},
|
||||
{
|
||||
"label": "单价",
|
||||
"name": "skus[*].price",
|
||||
"match": ["单价", "price", "价格"],
|
||||
"rules": ["scripts.rules.FmtGoods"]
|
||||
},
|
||||
{
|
||||
"label": "总价",
|
||||
"name": "total",
|
||||
"match": ["总价", "total", "total_price"],
|
||||
"rules": ["scripts.rules.FmtGoods"]
|
||||
},
|
||||
{
|
||||
"label": "备注",
|
||||
"name": "remark",
|
||||
"match": []
|
||||
}
|
||||
],
|
||||
"option": {
|
||||
"autoMatching": true,
|
||||
"chunkSize": 3,
|
||||
"logging": "error",
|
||||
"mappingPreview": "auto",
|
||||
"dataPreview": "auto",
|
||||
"templateLink": "/somelinke/download/xxx"
|
||||
},
|
||||
"rules": {
|
||||
"scripts.rules.order_sn": "订单号验证",
|
||||
"scripts.rules.mobile": "手机号验证",
|
||||
"scripts.rules.FmtUser": "用户数据匹配验证",
|
||||
"scripts.rules.FmtGoods": "商品数据匹配验证"
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
Latest: 最新信息
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
Demo: 演示
|
||||
Phone: 电话号码
|
||||
ZipCode: 邮政编码
|
||||
Uptime: 更新时间
|
||||
Action: 动作
|
||||
Yao: YAO
|
||||
Xiang: 象传
|
||||
|
|
@ -1 +0,0 @@
|
|||
SN: 编码
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
ID: 序号
|
||||
SN: 编码
|
||||
Name: 姓名
|
||||
Kind: 类型
|
||||
Cat: 猫
|
||||
Dog: 狗
|
||||
Description: 介绍
|
||||
Keywords: 关键词
|
||||
Please input the SN: 请输入编码
|
||||
type the keywords...: 关键词...
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
Start: 開始時間
|
||||
End: 結束時間
|
||||
City: 城市
|
||||
Please select a start time: 請選擇開始時間
|
||||
Please select an end time: 請選擇結束時間
|
||||
Industry: 行業
|
||||
Billing: 計費
|
||||
Merge Reulst: 合併結果
|
||||
Parameter: 參數
|
||||
Merge: 合併
|
||||
|
|
@ -1 +0,0 @@
|
|||
Latest: 最新信息
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
Demo: 演示
|
||||
Phone: 電話號碼
|
||||
ZipCode: 郵政編碼
|
||||
Uptime: 更新時間
|
||||
Action: 動作
|
||||
Yao: YAO
|
||||
Xiang: 像傳
|
||||
|
|
@ -1 +0,0 @@
|
|||
SN: 編碼
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
Start: 開始時間
|
||||
End: 結束時間
|
||||
City: 城市
|
||||
Please select a start time: 請選擇開始時間
|
||||
Please select an end time: 請選擇結束時間
|
||||
Industry: 行業
|
||||
Billing: 計費
|
||||
Merge Reulst: 合併結果
|
||||
Parameter: 參數
|
||||
Merge: 合併
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
ID: 序號
|
||||
SN: 編碼
|
||||
Name: 姓名
|
||||
Kind: 類型
|
||||
Description: 介绍
|
||||
Keywords: 關鍵詞
|
||||
Cat: 貓
|
||||
Dog: 狗
|
||||
Please input the SN: 請輸入編碼
|
||||
type the keywords...: 關鍵詞...
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"保存": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "保存"
|
||||
}
|
||||
},
|
||||
"删除": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "保存"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"Search": {
|
||||
"default": [null, null, "{{$in.0}}"]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
{
|
||||
"保存": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "保存",
|
||||
"api": "/api/xiang/workflow/assign/save"
|
||||
}
|
||||
},
|
||||
"提交": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "提交",
|
||||
"api": "/api/xiang/workflow/assign/submit"
|
||||
}
|
||||
},
|
||||
"同意": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "同意",
|
||||
"api": "/api/xiang/workflow/assign/resolve"
|
||||
}
|
||||
},
|
||||
"驳回并重填": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "驳回并重填",
|
||||
"api": "/api/xiang/workflow/assign/reject/reset"
|
||||
}
|
||||
},
|
||||
"驳回并关闭": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "驳回并关闭",
|
||||
"api": "/api/xiang/workflow/assign/reject/reset"
|
||||
}
|
||||
},
|
||||
"审批同意": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "审批同意",
|
||||
"api": "/api/xiang/workflow/assign/terminal"
|
||||
}
|
||||
},
|
||||
"关闭": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "关闭",
|
||||
"api": "/api/xiang/workflow/terminal"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
{
|
||||
"Label": {
|
||||
"__comment": "column.Lable('ID',':id')",
|
||||
"label": "{{$in.0}}",
|
||||
"view": {
|
||||
"props": {
|
||||
"value": "{{$in.1}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Image": {
|
||||
"__comment": "column.Image('图标',':icon', 40)",
|
||||
"label": "{{$in.0}}",
|
||||
"view": {
|
||||
"type": "image",
|
||||
"props": {
|
||||
"value": "{{$in.1}}",
|
||||
"width": "{{$in.2}}",
|
||||
"height": "{{$in.2}}"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "upload",
|
||||
"props": {
|
||||
"value": "{{$in.1}}",
|
||||
"filetype": "image",
|
||||
"multiple": false,
|
||||
"maxCount": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"创建时间": {
|
||||
"__comment": "column.创建时间",
|
||||
"label": "创建时间",
|
||||
"view": {
|
||||
"name": "label",
|
||||
"props": {
|
||||
"value": ":created_at",
|
||||
"format": "YYYY年MM月DD日 @hh:mm:ss"
|
||||
}
|
||||
}
|
||||
},
|
||||
"商务负责人": {
|
||||
"label": "商务负责人",
|
||||
"view": {
|
||||
"name": "label",
|
||||
"props": {
|
||||
"value": ":kind.name"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"value": ":kind.id",
|
||||
"tree": true,
|
||||
"searchable": true,
|
||||
"remote": {
|
||||
"api": "/api/kind/tree",
|
||||
"query": {
|
||||
"select": ["id", "name"],
|
||||
"keyword": "where_name_like"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
"关键词": {
|
||||
"__comment": "filter.关键词('where.name.match')",
|
||||
"label": "关键词",
|
||||
"bind": "{{$in.0}}",
|
||||
"input": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"placeholder": "请输入关键词"
|
||||
}
|
||||
}
|
||||
},
|
||||
"排序": {
|
||||
"__comment": "filter.排序()",
|
||||
"label": "排序方式",
|
||||
"bind": "order",
|
||||
"input": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"placeholder": "排序方式",
|
||||
"options": [
|
||||
{ "label": "手动顺序", "value": "rank" },
|
||||
{ "label": "最近更新", "value": "updated_at.desc" },
|
||||
{ "label": "最近创建", "value": "created_at.desc" }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"客户状态": {
|
||||
"__comment": "filter.客户状态()",
|
||||
"label": "状态",
|
||||
"bind": "where.status.in",
|
||||
"input": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"placeholder": "选择厂商状态",
|
||||
"mode": "multiple",
|
||||
"options": [
|
||||
{ "value": "已注册" },
|
||||
{ "value": "待收录" },
|
||||
{ "value": "待审核" },
|
||||
{ "value": "已禁用" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"Page": {
|
||||
"primary": "{{$in.0}}",
|
||||
"layout": {
|
||||
"filters": [
|
||||
{ "name": "开始时间", "width": 6 },
|
||||
{ "name": "结束时间", "width": 6 }
|
||||
],
|
||||
"charts": [
|
||||
{ "type": "line", "props": {} },
|
||||
{ "type": "bar", "props": {} }
|
||||
]
|
||||
},
|
||||
"actions": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"Image": {
|
||||
"type": "image",
|
||||
"props": {
|
||||
"value": "{{$in.0}}",
|
||||
"width": "{{$in.1}}",
|
||||
"height": "{{$in.2}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"name": "地址",
|
||||
"table": {
|
||||
"name": "address",
|
||||
"comment": "地址表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "用户",
|
||||
"name": "user_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "所属用户",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "省份",
|
||||
"name": "province",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "省份",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "城市",
|
||||
"name": "city",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "城市",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "地址",
|
||||
"name": "location",
|
||||
"type": "string",
|
||||
"length": 400,
|
||||
"comment": "详细地址",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{
|
||||
"user_id": 1,
|
||||
"province": "北京市",
|
||||
"city": "丰台区",
|
||||
"location": "银海星月9号楼9单元9层1024室"
|
||||
},
|
||||
{
|
||||
"user_id": 1,
|
||||
"province": "北京市",
|
||||
"city": "丰台区",
|
||||
"location": "北京国家数字出版基地A103"
|
||||
},
|
||||
{
|
||||
"user_id": 2,
|
||||
"province": "北京市",
|
||||
"city": "海淀区",
|
||||
"location": "华严北里7号楼7单元7层2048室"
|
||||
},
|
||||
{
|
||||
"user_id": 3,
|
||||
"province": "山东省",
|
||||
"city": "威海市",
|
||||
"location": "威海市6号楼6单元6层1056室"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,230 +0,0 @@
|
|||
{
|
||||
"name": "客户",
|
||||
"table": {
|
||||
"name": "customer",
|
||||
"comment": "客户表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{
|
||||
"label": "ID",
|
||||
"name": "id",
|
||||
"type": "ID",
|
||||
"comment": "ID"
|
||||
},
|
||||
{
|
||||
"label": "来源",
|
||||
"name": "channel_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "客户来源"
|
||||
},
|
||||
{
|
||||
"label": "公司名称",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "公司全称",
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"label": "公司简称",
|
||||
"name": "short_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "简称",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "credit_no",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "统一社会信用代码",
|
||||
"nullable": true,
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"name": "oper_name",
|
||||
"type": "string",
|
||||
"length": 50,
|
||||
"comment": "法人代表",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "注册资本(万元)",
|
||||
"name": "reg_capi",
|
||||
"type": "integer",
|
||||
"comment": "注册资本(万元)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "注册时间",
|
||||
"name": "opened_at",
|
||||
"type": "date",
|
||||
"comment": "注册时间",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "省份",
|
||||
"name": "province",
|
||||
"type": "string",
|
||||
"length": 50,
|
||||
"comment": "总部所在省份",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "城市",
|
||||
"name": "city",
|
||||
"type": "string",
|
||||
"length": 100,
|
||||
"comment": "总部所在城市",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "地址",
|
||||
"name": "address",
|
||||
"type": "string",
|
||||
"length": 255,
|
||||
"comment": "总部地址",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "经度",
|
||||
"name": "lng",
|
||||
"type": "unsignedDecimal",
|
||||
"precision": 12,
|
||||
"scale": 6,
|
||||
"comment": "经度",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "纬度",
|
||||
"name": "lat",
|
||||
"type": "unsignedDecimal",
|
||||
"comment": "纬度",
|
||||
"precision": 12,
|
||||
"scale": 6,
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "经营状态",
|
||||
"name": "company_status",
|
||||
"type": "string",
|
||||
"length": 255,
|
||||
"comment": "经营状态",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "LOGO",
|
||||
"name": "logo",
|
||||
"type": "json",
|
||||
"comment": "LOGO",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "简介",
|
||||
"name": "summary",
|
||||
"type": "string",
|
||||
"length": 600,
|
||||
"comment": "简介",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "官网",
|
||||
"name": "link",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "官网地址",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "联系人",
|
||||
"name": "contact_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "联系人姓名",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "联系人职务",
|
||||
"name": "contact_title",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "联系人职务",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "联系电话",
|
||||
"name": "contact_mobile",
|
||||
"type": "string",
|
||||
"comment": "联系电话",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "联系微信",
|
||||
"name": "contact_wechat",
|
||||
"type": "string",
|
||||
"comment": "联系微信",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "介绍",
|
||||
"name": "desc",
|
||||
"type": "text",
|
||||
"comment": "介绍",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "领域",
|
||||
"name": "fields",
|
||||
"type": "json",
|
||||
"comment": "服务领域(多选)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "行业",
|
||||
"name": "industries",
|
||||
"type": "json",
|
||||
"comment": "行业覆盖(多选)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "标签",
|
||||
"name": "tags",
|
||||
"type": "json",
|
||||
"comment": "标签(多选)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "关系",
|
||||
"name": "relation",
|
||||
"type": "enum",
|
||||
"default": "正在接洽",
|
||||
"option": ["已有合作", "正在接洽", "潜在客户"],
|
||||
"comment": "合作关系: 已有合作, 正在接洽, 潜在客户",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": {
|
||||
"timestamps": true,
|
||||
"soft_deletes": true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
"name": "::Demo",
|
||||
"connector": "trace",
|
||||
"table": { "name": "user_trace", "comment": "::Demo" },
|
||||
"columns": [
|
||||
{ "label": "ID", "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "::SN",
|
||||
"name": "user_sn",
|
||||
"type": "string",
|
||||
"length": 42,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "::Uptime",
|
||||
"name": "uptime",
|
||||
"type": "datetime",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "::Action",
|
||||
"name": "action",
|
||||
"type": "enum",
|
||||
"option": ["进入", "离开"],
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "user_sn_action_unique",
|
||||
"type": "unique",
|
||||
"columns": ["user_sn", "action"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
"name": "用户角色",
|
||||
"table": {
|
||||
"name": "foo_bar",
|
||||
"comment": "用户角色关系表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "用户ID",
|
||||
"name": "user_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "所属用户",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "角色ID",
|
||||
"name": "role_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "角色ID",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{ "user_id": 1, "role_id": 1 },
|
||||
{ "user_id": 1, "role_id": 2 },
|
||||
{ "user_id": 2, "role_id": 3 },
|
||||
{ "user_id": 2, "role_id": 4 },
|
||||
{ "user_id": 3, "role_id": 1 }
|
||||
]
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
{
|
||||
"name": "好友",
|
||||
"table": {
|
||||
"name": "friends",
|
||||
"comment": "好友关系表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "用户ID",
|
||||
"name": "user_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "所属用户",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "好友用户ID",
|
||||
"name": "friend_id",
|
||||
"type": "bigInteger",
|
||||
"comment": "好友用户ID",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "类型",
|
||||
"name": "type",
|
||||
"type": "enum",
|
||||
"default": "monther",
|
||||
"option": ["monther", "father", "friend"],
|
||||
"comment": "类型 monther 母亲, father 父亲, friend 朋友",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{
|
||||
"user_id": 1,
|
||||
"friend_id": 2,
|
||||
"type": "monther"
|
||||
},
|
||||
{
|
||||
"user_id": 1,
|
||||
"friend_id": 3,
|
||||
"type": "father"
|
||||
},
|
||||
{
|
||||
"user_id": 2,
|
||||
"friend_id": 3,
|
||||
"type": "friend"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,589 +0,0 @@
|
|||
{
|
||||
"name": "服务类型",
|
||||
"table": {
|
||||
"name": "kind",
|
||||
"comment": "服务类型",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"name": "category_id",
|
||||
"type": "integer",
|
||||
"length": 128,
|
||||
"comment": "gw_category ID(废弃)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "type_id",
|
||||
"type": "integer",
|
||||
"length": 128,
|
||||
"comment": "gw_type ID(废弃)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"comment": "名称",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "parent",
|
||||
"type": "bigInteger",
|
||||
"length": 128,
|
||||
"comment": "父类型ID",
|
||||
"nullable": false,
|
||||
"default": 0,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"default": "enabled",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "rank",
|
||||
"type": "bigInteger",
|
||||
"length": 128,
|
||||
"comment": "排序",
|
||||
"nullable": false,
|
||||
"default": 9999,
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {
|
||||
"parent": {
|
||||
"type": "hasOne",
|
||||
"key": "parent",
|
||||
"model": "Kind",
|
||||
"foreign": "id"
|
||||
},
|
||||
"children": {
|
||||
"type": "hasMany",
|
||||
"key": "id",
|
||||
"model": "Kind",
|
||||
"foreign": "parent"
|
||||
},
|
||||
"nodes": {
|
||||
"type": "treeNodes",
|
||||
"key": "id",
|
||||
"model": "Kind",
|
||||
"parent": "parent",
|
||||
"max_level": 256
|
||||
}
|
||||
},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "云服务",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 0
|
||||
},
|
||||
|
||||
{
|
||||
"id": 2,
|
||||
"name": "基础服务",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 1
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "云主机",
|
||||
"category_id": null,
|
||||
"type_id": 4,
|
||||
"rank": 1,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "对象存储",
|
||||
"category_id": null,
|
||||
"type_id": 5,
|
||||
"rank": 2,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "云数据库",
|
||||
"category_id": null,
|
||||
"type_id": 6,
|
||||
"rank": 3,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "块存储",
|
||||
"category_id": null,
|
||||
"type_id": 7,
|
||||
"rank": 4,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "应用托管容器",
|
||||
"category_id": null,
|
||||
"type_id": 8,
|
||||
"rank": 5,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "云缓存",
|
||||
"category_id": null,
|
||||
"type_id": 9,
|
||||
"rank": 6,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "本地负载均衡",
|
||||
"category_id": null,
|
||||
"type_id": 10,
|
||||
"rank": 7,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "全局负载均衡",
|
||||
"category_id": null,
|
||||
"type_id": 13,
|
||||
"rank": 8,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "云分发",
|
||||
"category_id": null,
|
||||
"type_id": 11,
|
||||
"rank": 9,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "企业级SaaS",
|
||||
"category_id": null,
|
||||
"type_id": 12,
|
||||
"rank": 10,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "云桌面",
|
||||
"category_id": null,
|
||||
"type_id": 14,
|
||||
"rank": 11,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "云备份",
|
||||
"category_id": null,
|
||||
"type_id": 17,
|
||||
"rank": 12,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"name": "GPU云主机",
|
||||
"category_id": null,
|
||||
"type_id": 18,
|
||||
"rank": 13,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"name": "物理云主机",
|
||||
"category_id": null,
|
||||
"type_id": 20,
|
||||
"rank": 14,
|
||||
"parent": 2
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"name": "智能云",
|
||||
"category_id": 41,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 2
|
||||
},
|
||||
|
||||
{
|
||||
"id": 18,
|
||||
"name": "软件和开发",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"name": "虚拟化及管理",
|
||||
"category_id": 59,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 18
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"name": "容器解决方案",
|
||||
"category_id": 65,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 18
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"name": "微服务解决方案",
|
||||
"category_id": 76,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 18
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"name": "serverless解决方案",
|
||||
"category_id": 82,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 18
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"name": "云管理和云运营",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"name": "混合云",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 23
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"name": "混合云解决方案",
|
||||
"category_id": 88,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 24
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"name": "混合云安全",
|
||||
"category_id": 671,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 24
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"name": "多云管理",
|
||||
"category_id": 94,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 23
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"name": "金牌运维",
|
||||
"category_id": 120,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 23
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"name": "研发运营一体化",
|
||||
"category_id": 443,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 23
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"name": "MSP",
|
||||
"category_id": 112,
|
||||
"type_id": null,
|
||||
"rank": 5,
|
||||
"parent": 23
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"name": "安全与保险",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"name": "风险管理",
|
||||
"category_id": 141,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"name": "云服务用户数据保护",
|
||||
"category_id": 152,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"name": "业务风控",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 35,
|
||||
"name": "内容安全",
|
||||
"category_id": 159,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 34
|
||||
},
|
||||
{
|
||||
"id": 36,
|
||||
"name": "反交易欺诈",
|
||||
"category_id": 164,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 34
|
||||
},
|
||||
{
|
||||
"id": 37,
|
||||
"name": "反信贷欺诈",
|
||||
"category_id": 165,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 34
|
||||
},
|
||||
{
|
||||
"id": 38,
|
||||
"name": "反营销欺诈",
|
||||
"category_id": 166,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 34
|
||||
},
|
||||
{
|
||||
"id": 39,
|
||||
"name": "反钓鱼欺诈",
|
||||
"category_id": 167,
|
||||
"type_id": null,
|
||||
"rank": 5,
|
||||
"parent": 34
|
||||
},
|
||||
{
|
||||
"id": 40,
|
||||
"name": "云主机安全",
|
||||
"category_id": 184,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 41,
|
||||
"name": "态势感知",
|
||||
"category_id": 190,
|
||||
"type_id": null,
|
||||
"rank": 5,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 42,
|
||||
"name": "云保险",
|
||||
"category_id": 272,
|
||||
"type_id": null,
|
||||
"rank": 6,
|
||||
"parent": 31
|
||||
},
|
||||
{
|
||||
"id": 43,
|
||||
"name": "云网&云边",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 5,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 44,
|
||||
"name": "云平台网络能力",
|
||||
"category_id": 102,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 43
|
||||
},
|
||||
{
|
||||
"id": 45,
|
||||
"name": "SD-WAN",
|
||||
"category_id": 106,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 43
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"name": "物联网",
|
||||
"category_id": 234,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 43
|
||||
},
|
||||
{
|
||||
"id": 47,
|
||||
"name": "行业云",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 6,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 48,
|
||||
"name": "政务",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 47
|
||||
},
|
||||
{
|
||||
"id": 49,
|
||||
"name": "政务云综合水平评估",
|
||||
"category_id": 215,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 48
|
||||
},
|
||||
{
|
||||
"id": 50,
|
||||
"name": "可信政务云评估",
|
||||
"category_id": 216,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 48
|
||||
},
|
||||
{
|
||||
"id": 51,
|
||||
"name": "金融",
|
||||
"category_id": 225,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 47
|
||||
},
|
||||
{
|
||||
"id": 52,
|
||||
"name": "开源治理",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 7,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 53,
|
||||
"name": "面向开源用户企业",
|
||||
"category_id": 196,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 52
|
||||
},
|
||||
{
|
||||
"id": 54,
|
||||
"name": "面向自发开源企业",
|
||||
"category_id": 202,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 52
|
||||
},
|
||||
{
|
||||
"id": 55,
|
||||
"name": "开源项目评估",
|
||||
"category_id": 711,
|
||||
"type_id": null,
|
||||
"rank": 3,
|
||||
"parent": 52
|
||||
},
|
||||
{
|
||||
"id": 56,
|
||||
"name": "开源工具评估",
|
||||
"category_id": 720,
|
||||
"type_id": null,
|
||||
"rank": 4,
|
||||
"parent": 52
|
||||
},
|
||||
{
|
||||
"id": 57,
|
||||
"name": "检测平台",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 8,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 58,
|
||||
"name": "云主机分级",
|
||||
"category_id": 371,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 57
|
||||
},
|
||||
{
|
||||
"id": 59,
|
||||
"name": "监管支撑",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 9,
|
||||
"parent": 0
|
||||
},
|
||||
{
|
||||
"id": 60,
|
||||
"name": "企业上云效果成熟度",
|
||||
"category_id": 250,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 59
|
||||
},
|
||||
{
|
||||
"id": 61,
|
||||
"name": "综合信用评估",
|
||||
"category_id": null,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 59
|
||||
},
|
||||
{
|
||||
"id": 62,
|
||||
"name": "云服务企业",
|
||||
"category_id": 261,
|
||||
"type_id": null,
|
||||
"rank": 1,
|
||||
"parent": 61
|
||||
},
|
||||
{
|
||||
"id": 63,
|
||||
"name": "CDN服务企业",
|
||||
"category_id": 271,
|
||||
"type_id": null,
|
||||
"rank": 2,
|
||||
"parent": 61
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,125 +0,0 @@
|
|||
{
|
||||
"name": "厂商",
|
||||
"table": {
|
||||
"name": "manu",
|
||||
"comment": "厂商表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "名称",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "全称",
|
||||
"unique": true
|
||||
},
|
||||
{
|
||||
"label": "简称",
|
||||
"name": "short_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "简称",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "类型",
|
||||
"name": "type",
|
||||
"type": "enum",
|
||||
"option": ["服务商", "采购商", "其他"],
|
||||
"comment": "厂商类型 服务商, 采购商, 其他",
|
||||
"default": "服务商",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "LOGO",
|
||||
"name": "logo",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "LOGO",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "简介",
|
||||
"name": "summary",
|
||||
"type": "string",
|
||||
"length": 600,
|
||||
"comment": "简介",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "官网",
|
||||
"name": "link",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "官网地址",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "联系人",
|
||||
"name": "contact_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "联系人",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "联系电话",
|
||||
"name": "contact_mobile",
|
||||
"type": "string",
|
||||
"comment": "联系电话",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "详情",
|
||||
"name": "desc",
|
||||
"type": "text",
|
||||
"comment": "介绍",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "排序",
|
||||
"name": "rank",
|
||||
"type": "integer",
|
||||
"default": 9999999,
|
||||
"comment": "查询排序"
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{ "id": 1, "name": "北京云道天成科技有限公司", "short_name": "云道天成" },
|
||||
{
|
||||
"id": 2,
|
||||
"name": "象传高新(北京)数字科技有限公司",
|
||||
"short_name": "象传高新"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "象传智数(北京)软件科技有限公司",
|
||||
"short_name": "象传智数"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "象传智慧(北京)软件科技有限公司",
|
||||
"short_name": "象传智慧"
|
||||
},
|
||||
{ "id": 5, "name": "象传数据服务引擎", "short_name": "服务引擎" },
|
||||
{ "id": 6, "name": "象传数据应用开发平台", "short_name": "应用开发平台" },
|
||||
{ "id": 7, "name": "象传数据解决方案", "short_name": "解决方案" },
|
||||
{ "id": 8, "name": "象传数据企业服务", "short_name": "企业服务" }
|
||||
]
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
"name": "角色",
|
||||
"table": {
|
||||
"name": "role",
|
||||
"comment": "角色表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "名称",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "名称",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "标签",
|
||||
"name": "label",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "标签",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "权限",
|
||||
"name": "permission",
|
||||
"type": "JSON",
|
||||
"comment": "权限"
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{
|
||||
"label": "超级管理员",
|
||||
"name": "admin",
|
||||
"status": "enabled",
|
||||
"permission": { "read": ["t1", "t2", "t3"] }
|
||||
},
|
||||
{
|
||||
"label": "编辑",
|
||||
"name": "editor",
|
||||
"status": "enabled",
|
||||
"permission": { "read": ["t1", "t2", "t3"] }
|
||||
},
|
||||
{
|
||||
"label": "用户",
|
||||
"name": "user",
|
||||
"status": "enabled",
|
||||
"permission": { "read": ["t1", "t2", "t3"] }
|
||||
},
|
||||
{
|
||||
"label": "访客",
|
||||
"name": "any",
|
||||
"status": "disabled",
|
||||
"permission": { "read": ["t1", "t2", "t3"] }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
{
|
||||
"name": "云服务库",
|
||||
"table": {
|
||||
"name": "service",
|
||||
"comment": "云服务表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "name": "id", "type": "ID" },
|
||||
{
|
||||
"name": "short_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "简称",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "服务名称",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "city",
|
||||
"type": "string",
|
||||
"length": 50,
|
||||
"comment": "城市",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "kind_id",
|
||||
"type": "bigInteger",
|
||||
"length": 200,
|
||||
"comment": "服务类型",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "manu_id",
|
||||
"type": "bigInteger",
|
||||
"length": 200,
|
||||
"comment": "所属厂商",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "registed_at",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "注册地",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "link",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "官网地址",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"name": "contact_name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "联系人",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "contact_mobile",
|
||||
"type": "string",
|
||||
"comment": "联系电话",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "fields",
|
||||
"type": "json",
|
||||
"comment": "JSON|服务领域(多选)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "price_options",
|
||||
"type": "json",
|
||||
"length": 500,
|
||||
"nullable": true,
|
||||
"comment": "订阅方式(多选)",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "industries",
|
||||
"type": "json",
|
||||
"comment": "JSON|行业覆盖(多选)",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "rank",
|
||||
"type": "integer",
|
||||
"default": 9999999,
|
||||
"comment": "查询排序"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {
|
||||
"manu": {
|
||||
"type": "hasOne",
|
||||
"model": "manu",
|
||||
"key": "id",
|
||||
"foreign": "manu_id",
|
||||
"query": { "select": ["id", "name", "short_name", "status"] }
|
||||
},
|
||||
"kind": {
|
||||
"type": "hasOne",
|
||||
"model": "kind",
|
||||
"key": "id",
|
||||
"foreign": "kind_id",
|
||||
"query": { "select": ["id", "name"] }
|
||||
}
|
||||
},
|
||||
"option": { "timestamps": true, "soft_deletes": true },
|
||||
"values": [
|
||||
{
|
||||
"name": "腾讯云主机CVM",
|
||||
"city": "北京",
|
||||
"short_name": "云主机",
|
||||
"kind_id": 3,
|
||||
"manu_id": 1,
|
||||
"industries": ["教育", "能源"],
|
||||
"price_options": ["按月订阅"]
|
||||
},
|
||||
{
|
||||
"name": "腾讯云磁盘",
|
||||
"city": "广州",
|
||||
"short_name": "云磁盘",
|
||||
"kind_id": 6,
|
||||
"manu_id": 1,
|
||||
"industries": ["政府", "能源"],
|
||||
"price_options": ["按月订阅"]
|
||||
},
|
||||
{
|
||||
"name": "阿里主机",
|
||||
"city": "上海",
|
||||
"short_name": "云主机",
|
||||
"kind_id": 3,
|
||||
"manu_id": 2,
|
||||
"industries": ["教育", "医疗"],
|
||||
"price_options": ["按月订阅"]
|
||||
},
|
||||
{
|
||||
"name": "UCloud云主机",
|
||||
"short_name": "云主机",
|
||||
"city": "上海",
|
||||
"kind_id": 3,
|
||||
"manu_id": 3,
|
||||
"industries": ["软件", "医疗"],
|
||||
"price_options": ["按月订阅"]
|
||||
}
|
||||
]
|
||||
}
|
||||