From ce78b2caee368623616cb8198f299d6e71973eec Mon Sep 17 00:00:00 2001
From: "meilin.huang" <954537473@qq.com>
Date: Wed, 27 Apr 2022 10:59:02 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=9C=BA=E5=99=A8?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E7=9C=8B&=E6=9C=BA=E5=99=A8?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AD=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
base/utils/jsonschemal_util.go | 26 -
base/utils/jsonschemal_util_test.go | 58 --
go.mod | 4 -
go.sum | 134 ++--
mayfly_go_web/package.json | 2 +-
mayfly_go_web/src/common/echarts/theme.json | 176 +++++
.../src/common/echarts/useEcharts.ts | 7 +
.../src/common/utils/authDirective.ts | 45 +-
.../src/components/chart/ActivePlate.vue | 64 --
.../src/components/chart/BaseChart.vue | 39 --
mayfly_go_web/src/components/chart/Card.vue | 43 --
.../src/components/chart/ChartBar.vue | 138 ----
.../src/components/chart/ChartContinuou.vue | 92 ---
.../src/components/chart/ChartFunnel.vue | 104 ---
.../src/components/chart/ChartGauge.vue | 89 ---
.../src/components/chart/ChartLine.vue | 121 ----
.../src/components/chart/ChartPie.vue | 111 ----
mayfly_go_web/src/components/chart/onoff.js | 37 --
mayfly_go_web/src/components/chart/theme.json | 490 --------------
mayfly_go_web/src/views/home/index.vue | 247 ++-----
mayfly_go_web/src/views/home/mock.ts | 93 ---
.../{Account.vue => AccountLogin.vue} | 2 +-
.../component/{mobile.vue => MobileLogin.vue} | 2 +-
mayfly_go_web/src/views/login/index.vue | 7 +-
mayfly_go_web/src/views/ops/db/DbEdit.vue | 2 +-
.../src/views/ops/machine/MachineEdit.vue | 2 +-
.../src/views/ops/machine/MachineList.vue | 126 +++-
.../src/views/ops/machine/MachineStats.vue | 322 ++++++++++
.../src/views/ops/machine/Monitor.vue | 208 ------
mayfly_go_web/src/views/ops/machine/api.ts | 2 +
.../src/views/ops/redis/RedisEdit.vue | 2 +-
.../src/views/system/role/RoleEdit.vue | 6 +-
mayfly_go_web/yarn.lock | 606 +++++++++++-------
server/devops/api/machine.go | 13 +-
server/devops/api/vo/vo.go | 1 +
server/devops/application/machine_app.go | 20 +-
server/devops/domain/entity/machine.go | 17 +-
.../infrastructure/machine/shell/stats.sh | 2 +-
server/devops/infrastructure/machine/stats.go | 242 ++-----
server/devops/router/machine.go | 7 +
server/mayfly-go.sql | 1 +
41 files changed, 1240 insertions(+), 2470 deletions(-)
delete mode 100644 base/utils/jsonschemal_util.go
delete mode 100644 base/utils/jsonschemal_util_test.go
create mode 100644 mayfly_go_web/src/common/echarts/theme.json
create mode 100644 mayfly_go_web/src/common/echarts/useEcharts.ts
delete mode 100644 mayfly_go_web/src/components/chart/ActivePlate.vue
delete mode 100644 mayfly_go_web/src/components/chart/BaseChart.vue
delete mode 100644 mayfly_go_web/src/components/chart/Card.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartBar.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartContinuou.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartFunnel.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartGauge.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartLine.vue
delete mode 100644 mayfly_go_web/src/components/chart/ChartPie.vue
delete mode 100644 mayfly_go_web/src/components/chart/onoff.js
delete mode 100644 mayfly_go_web/src/components/chart/theme.json
delete mode 100644 mayfly_go_web/src/views/home/mock.ts
rename mayfly_go_web/src/views/login/component/{Account.vue => AccountLogin.vue} (99%)
rename mayfly_go_web/src/views/login/component/{mobile.vue => MobileLogin.vue} (98%)
create mode 100644 mayfly_go_web/src/views/ops/machine/MachineStats.vue
delete mode 100755 mayfly_go_web/src/views/ops/machine/Monitor.vue
diff --git a/base/utils/jsonschemal_util.go b/base/utils/jsonschemal_util.go
deleted file mode 100644
index 6a7396f5..00000000
--- a/base/utils/jsonschemal_util.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package utils
-
-import (
- "errors"
- "strings"
-
- "github.com/xeipuuv/gojsonschema"
-)
-
-func ValidJsonString(schemal, json string) error {
- scheme, jsonLoader := gojsonschema.NewStringLoader(schemal), gojsonschema.NewStringLoader(json)
-
- result, err := gojsonschema.Validate(scheme, jsonLoader)
- if err != nil {
- return err
- }
- if result.Valid() {
- return nil
- }
- errs := make([]string, 0)
- for _, desc := range result.Errors() {
- errs = append(errs, desc.String())
- }
-
- return errors.New(strings.Join(errs, "|"))
-}
diff --git a/base/utils/jsonschemal_util_test.go b/base/utils/jsonschemal_util_test.go
deleted file mode 100644
index 22df2c25..00000000
--- a/base/utils/jsonschemal_util_test.go
+++ /dev/null
@@ -1,58 +0,0 @@
-package utils
-
-import (
- "fmt"
- "testing"
-
- "github.com/xeipuuv/gojsonschema"
-)
-
-func TestJsonSchemal(t *testing.T) {
- schema := `{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "title": "Product",
- "description": "A product from Acme's catalog",
- "type": "object",
- "properties": {
- "id": {
- "description": "The unique identifier for a product",
- "type": "integer"
- },
- "name": {
- "description": "Name of the product",
- "type": "string"
- },
- "price": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true
- }
- },
- "required": ["id", "name", "price"]
- }
- `
-
- json := `{"id": 1, "name": "test", "price": -21}`
-
- err := ValidJsonString(schema, json)
- fmt.Print(err)
-}
-
-func TestJs(t *testing.T) {
- schemaLoader := gojsonschema.NewStringLoader(`{"type": "object","properties":{"a":{"type":"object"}},"required":["a"]}`) // json格式
- documentLoader := gojsonschema.NewStringLoader(`{"a":"b"}`) // 待校验的json数据
-
- result, err := gojsonschema.Validate(schemaLoader, documentLoader)
- if err != nil {
- panic(err.Error())
- }
-
- if result.Valid() {
- fmt.Printf("The document is valid\n")
- } else {
- fmt.Printf("The document is not valid. see errors :\n")
- for _, desc := range result.Errors() {
- fmt.Printf("- %s\n", desc)
- }
- }
-}
diff --git a/go.mod b/go.mod
index 2a780721..bb193d8d 100644
--- a/go.mod
+++ b/go.mod
@@ -14,8 +14,6 @@ require (
// 定时任务
github.com/robfig/cron/v3 v3.0.1
github.com/sirupsen/logrus v1.8.1
- // jsonschemal校验
- github.com/xeipuuv/gojsonschema v1.2.0
// ssh
golang.org/x/crypto v0.0.0-20220314234724-5d542ad81a58
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
@@ -43,8 +41,6 @@ require (
github.com/onsi/ginkgo v1.16.5 // indirect
github.com/onsi/gomega v1.18.1 // indirect
github.com/ugorji/go/codec v1.2.7 // indirect
- github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
- github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
golang.org/x/image v0.0.0-20220302094943-723b81ca9867 // indirect
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 // indirect
golang.org/x/text v0.3.7 // indirect
diff --git a/go.sum b/go.sum
index d6a825df..b6214d48 100644
--- a/go.sum
+++ b/go.sum
@@ -1,3 +1,7 @@
+github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -8,20 +12,23 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
-github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA=
-github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
+github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs=
+github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U=
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
-github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
-github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=
+github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
+github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
-github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE=
+github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
+github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
+github.com/go-playground/validator/v10 v10.10.1 h1:uA0+amWMiglNZKZ9FJRKUAe9U3RX91eVn1JYXMWt7ig=
+github.com/go-playground/validator/v10 v10.10.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg=
github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
-github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
-github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
+github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
@@ -42,55 +49,66 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
+github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
-github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
-github.com/jinzhu/now v1.1.2 h1:eVKgfIdy9b6zbWBMgFpfDPoAMifwSZagU9HmEU6zgiI=
-github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
+github.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas=
+github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
-github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
+github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
+github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA=
-github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/mojocn/base64Captcha v1.3.4 h1:9+MZzjNSfBHniYOIpoP4xyDDPCXy14JIjsEFf89PlNw=
-github.com/mojocn/base64Captcha v1.3.4/go.mod h1:wAQCKEc5bDujxKRmbT6/vTnTt5CjStQ8bRfPWUuz/iY=
+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0=
+github.com/mojocn/base64Captcha v1.3.5/go.mod h1:/tTTXn4WTpX9CfrmipqRytCpJ27Uw3G6I7NcP2WwcmY=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
+github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
+github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs=
-github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
+github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
+github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg=
+github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
+github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
+github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -98,28 +116,26 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
-github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
+github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo=
+github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
-github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
-github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
+github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
+github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
-golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220314234724-5d542ad81a58 h1:L8CkJyVoa0/NslN3RUMLgasK5+KatNvyRGQ9QyCYAfc=
+golang.org/x/crypto v0.0.0-20220314234724-5d542ad81a58/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/image v0.0.0-20220302094943-723b81ca9867 h1:TcHcE0vrmgzNH1v3ppjcMGbhG5+9fMuvOmUYwNEF4q4=
+golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -127,8 +143,9 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -139,22 +156,28 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=
+golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
@@ -170,11 +193,14 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
@@ -187,8 +213,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gorm.io/driver/mysql v1.0.5 h1:WAAmvLK2rG0tCOqrf5XcLi2QUwugd4rcVJ/W3aoon9o=
-gorm.io/driver/mysql v1.0.5/go.mod h1:N1OIhHAIhx5SunkMGqWbGFVeh4yTNWKmMo1GOAsohLI=
-gorm.io/gorm v1.21.3/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
-gorm.io/gorm v1.21.11 h1:CxkXW6Cc+VIBlL8yJEHq+Co4RYXdSLiMKNvgoZPjLK4=
-gorm.io/gorm v1.21.11/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
+gorm.io/driver/mysql v1.3.2 h1:QJryWiqQ91EvZ0jZL48NOpdlPdMjdip1hQ8bTgo4H7I=
+gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U=
+gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
+gorm.io/gorm v1.23.2 h1:xmq9QRMWL8HTJyhAUBXy8FqIIQCYESeKfJL4DoGKiWQ=
+gorm.io/gorm v1.23.2/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json
index 1f00df27..551dd398 100644
--- a/mayfly_go_web/package.json
+++ b/mayfly_go_web/package.json
@@ -11,7 +11,7 @@
"codemirror": "^5.65.2",
"countup.js": "^2.0.7",
"cropperjs": "^1.5.11",
- "echarts": "^5.1.1",
+ "echarts": "^5.3.2",
"element-plus": "^2.1.10",
"@element-plus/icons-vue": "^1.1.3",
"jsonlint": "^1.6.3",
diff --git a/mayfly_go_web/src/common/echarts/theme.json b/mayfly_go_web/src/common/echarts/theme.json
new file mode 100644
index 00000000..a66adba7
--- /dev/null
+++ b/mayfly_go_web/src/common/echarts/theme.json
@@ -0,0 +1,176 @@
+{
+ "seriesCnt": "4",
+ "backgroundColor": "rgba(0,0,0,0)",
+ "titleColor": "#008acd",
+ "subtitleColor": "#aaaaaa",
+ "textColorShow": false,
+ "textColor": "#333",
+ "markTextColor": "#eeeeee",
+ "color": [
+ "#2ec7c9",
+ "#b6a2de",
+ "#5ab1ef",
+ "#ffb980",
+ "#d87a80",
+ "#8d98b3",
+ "#e5cf0d",
+ "#97b552",
+ "#95706d",
+ "#dc69aa",
+ "#07a2a4",
+ "#9a7fd1",
+ "#588dd5",
+ "#f5994e",
+ "#c05050",
+ "#59678c",
+ "#c9ab00",
+ "#7eb00a",
+ "#6f5553",
+ "#c14089"
+ ],
+ "borderColor": "#ccc",
+ "borderWidth": 0,
+ "visualMapColor": [
+ "#5ab1ef",
+ "#e0ffff"
+ ],
+ "legendTextColor": "#333333",
+ "kColor": "#d87a80",
+ "kColor0": "#2ec7c9",
+ "kBorderColor": "#d87a80",
+ "kBorderColor0": "#2ec7c9",
+ "kBorderWidth": 1,
+ "lineWidth": 2,
+ "symbolSize": 3,
+ "symbol": "emptyCircle",
+ "symbolBorderWidth": 1,
+ "lineSmooth": true,
+ "graphLineWidth": 1,
+ "graphLineColor": "#aaaaaa",
+ "mapLabelColor": "#d87a80",
+ "mapLabelColorE": "rgb(100,0,0)",
+ "mapBorderColor": "#eeeeee",
+ "mapBorderColorE": "#444",
+ "mapBorderWidth": 0.5,
+ "mapBorderWidthE": 1,
+ "mapAreaColor": "#dddddd",
+ "mapAreaColorE": "rgba(254,153,78,1)",
+ "axes": [
+ {
+ "type": "all",
+ "name": "通用坐标轴",
+ "axisLineShow": true,
+ "axisLineColor": "#eeeeee",
+ "axisTickShow": true,
+ "axisTickColor": "#eeeeee",
+ "axisLabelShow": true,
+ "axisLabelColor": "#eeeeee",
+ "splitLineShow": true,
+ "splitLineColor": [
+ "#aaaaaa"
+ ],
+ "splitAreaShow": false,
+ "splitAreaColor": [
+ "#eeeeee"
+ ]
+ },
+ {
+ "type": "category",
+ "name": "类目坐标轴",
+ "axisLineShow": true,
+ "axisLineColor": "#008acd",
+ "axisTickShow": true,
+ "axisTickColor": "#333",
+ "axisLabelShow": true,
+ "axisLabelColor": "#333",
+ "splitLineShow": false,
+ "splitLineColor": [
+ "#eee"
+ ],
+ "splitAreaShow": false,
+ "splitAreaColor": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ },
+ {
+ "type": "value",
+ "name": "数值坐标轴",
+ "axisLineShow": true,
+ "axisLineColor": "#008acd",
+ "axisTickShow": true,
+ "axisTickColor": "#333",
+ "axisLabelShow": true,
+ "axisLabelColor": "#333",
+ "splitLineShow": true,
+ "splitLineColor": [
+ "#eee"
+ ],
+ "splitAreaShow": true,
+ "splitAreaColor": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ },
+ {
+ "type": "log",
+ "name": "对数坐标轴",
+ "axisLineShow": true,
+ "axisLineColor": "#008acd",
+ "axisTickShow": true,
+ "axisTickColor": "#333",
+ "axisLabelShow": true,
+ "axisLabelColor": "#333",
+ "splitLineShow": true,
+ "splitLineColor": [
+ "#eee"
+ ],
+ "splitAreaShow": true,
+ "splitAreaColor": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ },
+ {
+ "type": "time",
+ "name": "时间坐标轴",
+ "axisLineShow": true,
+ "axisLineColor": "#008acd",
+ "axisTickShow": true,
+ "axisTickColor": "#333",
+ "axisLabelShow": true,
+ "axisLabelColor": "#333",
+ "splitLineShow": true,
+ "splitLineColor": [
+ "#eee"
+ ],
+ "splitAreaShow": false,
+ "splitAreaColor": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ }
+ ],
+ "axisSeperateSetting": true,
+ "toolboxColor": "#2ec7c9",
+ "toolboxEmphasisColor": "#18a4a6",
+ "tooltipAxisColor": "#008acd",
+ "tooltipAxisWidth": "1",
+ "timelineLineColor": "#008acd",
+ "timelineLineWidth": 1,
+ "timelineItemColor": "#008acd",
+ "timelineItemColorE": "#a9334c",
+ "timelineCheckColor": "#2ec7c9",
+ "timelineCheckBorderColor": "#2ec7c9",
+ "timelineItemBorderWidth": 1,
+ "timelineControlColor": "#008acd",
+ "timelineControlBorderColor": "#008acd",
+ "timelineControlBorderWidth": 0.5,
+ "timelineLabelColor": "#008acd",
+ "datazoomBackgroundColor": "rgba(47,69,84,0)",
+ "datazoomDataColor": "#efefff",
+ "datazoomFillColor": "rgba(182,162,222,0.2)",
+ "datazoomHandleColor": "#008acd",
+ "datazoomHandleWidth": "100",
+ "datazoomLabelColor": "#333333"
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/common/echarts/useEcharts.ts b/mayfly_go_web/src/common/echarts/useEcharts.ts
new file mode 100644
index 00000000..433f9ba3
--- /dev/null
+++ b/mayfly_go_web/src/common/echarts/useEcharts.ts
@@ -0,0 +1,7 @@
+import * as echarts from 'echarts'
+
+export default function(dom: any, theme: any = null, option: any) {
+ let chart = echarts.init(dom, theme);
+ chart.setOption(option);
+ return chart;
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/common/utils/authDirective.ts b/mayfly_go_web/src/common/utils/authDirective.ts
index 4e7a72f0..8fabe31a 100644
--- a/mayfly_go_web/src/common/utils/authDirective.ts
+++ b/mayfly_go_web/src/common/utils/authDirective.ts
@@ -1,32 +1,53 @@
import type { App } from 'vue';
-import { store } from '@/store/index.ts';
-import { judementSameArr } from '@/common/utils/arrayOperation.ts';
+import { auth, auths, authAll } from './authFunction'
// 用户权限指令
export function authDirective(app: App) {
// 单个权限验证(v-auth="xxx")
app.directive('auth', {
mounted(el, binding) {
- if (!store.state.userInfos.userInfos.permissions.some((v: any) => v === binding.value)) el.parentNode.removeChild(el);
+ if (!auth(binding.value)) {
+ parseNoAuth(el, binding);
+ };
},
});
// 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]")
app.directive('auths', {
mounted(el, binding) {
- let flag = false;
- store.state.userInfos.userInfos.permissions.map((val: any) => {
- binding.value.map((v: any) => {
- if (val === v) flag = true;
- });
- });
- if (!flag) el.parentNode.removeChild(el);
+ if (!auths(binding.value)) {
+ parseNoAuth(el, binding);
+ }
},
});
// 多个权限验证,全部满足则显示(v-auth-all="[xxx,xxx]")
app.directive('auth-all', {
mounted(el, binding) {
- const flag = judementSameArr(binding.value, store.state.userInfos.userInfos.permissions);
- if (!flag) el.parentNode.removeChild(el);
+ if (!authAll(binding.value)) {
+ parseNoAuth(el, binding);
+ };
},
});
}
+
+/**
+ * 处理没有权限场景
+ *
+ * @param el 元素
+ * @param binding 绑定至
+ */
+const parseNoAuth = (el: any, binding: any) => {
+ const { arg } = binding;
+ // 如果是禁用模式,则将元素禁用
+ if (arg == 'disabled') {
+ el.setAttribute('disabled', true);
+ el.classList.add('is-disabled');
+ el.addEventListener('click', disableClickFn, true);
+ } else {
+ // 移除该元素
+ el.parentNode.removeChild(el);
+ }
+}
+
+const disableClickFn = (event: any) => {
+ event && event.stopImmediatePropagation();
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ActivePlate.vue b/mayfly_go_web/src/components/chart/ActivePlate.vue
deleted file mode 100644
index b72e5c3d..00000000
--- a/mayfly_go_web/src/components/chart/ActivePlate.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
- -
-
{{item.count}}
- {{item.title}}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/BaseChart.vue b/mayfly_go_web/src/components/chart/BaseChart.vue
deleted file mode 100644
index 6f50604a..00000000
--- a/mayfly_go_web/src/components/chart/BaseChart.vue
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/Card.vue b/mayfly_go_web/src/components/chart/Card.vue
deleted file mode 100644
index ec03884b..00000000
--- a/mayfly_go_web/src/components/chart/Card.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- {{title}}
- {{desc}}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartBar.vue b/mayfly_go_web/src/components/chart/ChartBar.vue
deleted file mode 100644
index 4982001a..00000000
--- a/mayfly_go_web/src/components/chart/ChartBar.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartContinuou.vue b/mayfly_go_web/src/components/chart/ChartContinuou.vue
deleted file mode 100644
index 36d6f6b5..00000000
--- a/mayfly_go_web/src/components/chart/ChartContinuou.vue
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartFunnel.vue b/mayfly_go_web/src/components/chart/ChartFunnel.vue
deleted file mode 100644
index ce595717..00000000
--- a/mayfly_go_web/src/components/chart/ChartFunnel.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartGauge.vue b/mayfly_go_web/src/components/chart/ChartGauge.vue
deleted file mode 100644
index 044b75e6..00000000
--- a/mayfly_go_web/src/components/chart/ChartGauge.vue
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartLine.vue b/mayfly_go_web/src/components/chart/ChartLine.vue
deleted file mode 100644
index 5c70d122..00000000
--- a/mayfly_go_web/src/components/chart/ChartLine.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/ChartPie.vue b/mayfly_go_web/src/components/chart/ChartPie.vue
deleted file mode 100644
index d8db5d10..00000000
--- a/mayfly_go_web/src/components/chart/ChartPie.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/onoff.js b/mayfly_go_web/src/components/chart/onoff.js
deleted file mode 100644
index 105d1420..00000000
--- a/mayfly_go_web/src/components/chart/onoff.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @description 绑定事件 on(element, event, handler)
- */
-export const on = (function () {
- if (document.addEventListener != null) {
- return function (element, event, handler) {
- if (element && event && handler) {
- element.addEventListener(event, handler, false);
- }
- };
- } else {
- return function (element, event, handler) {
- if (element && event && handler) {
- element.attachEvent('on' + event, handler);
- }
- };
- }
- })();
-
- /**
- * @description 解绑事件 off(element, event, handler)
- */
- export const off = (function () {
- if (document.removeEventListener != null) {
- return function (element, event, handler) {
- if (element && event) {
- element.removeEventListener(event, handler, false);
- }
- };
- } else {
- return function (element, event, handler) {
- if (element && event) {
- element.detachEvent('on' + event, handler);
- }
- };
- }
- })();
\ No newline at end of file
diff --git a/mayfly_go_web/src/components/chart/theme.json b/mayfly_go_web/src/components/chart/theme.json
deleted file mode 100644
index e28f1087..00000000
--- a/mayfly_go_web/src/components/chart/theme.json
+++ /dev/null
@@ -1,490 +0,0 @@
-{
- "color": [
- "#2d8cf0",
- "#19be6b",
- "#ff9900",
- "#E46CBB",
- "#9A66E4",
- "#ed3f14"
- ],
- "backgroundColor": "rgba(0,0,0,0)",
- "textStyle": {},
- "title": {
- "textStyle": {
- "color": "#516b91"
- },
- "subtextStyle": {
- "color": "#93b7e3"
- }
- },
- "line": {
- "itemStyle": {
- "normal": {
- "borderWidth": "2"
- }
- },
- "lineStyle": {
- "normal": {
- "width": "2"
- }
- },
- "symbolSize": "6",
- "symbol": "emptyCircle",
- "smooth": true
- },
- "radar": {
- "itemStyle": {
- "normal": {
- "borderWidth": "2"
- }
- },
- "lineStyle": {
- "normal": {
- "width": "2"
- }
- },
- "symbolSize": "6",
- "symbol": "emptyCircle",
- "smooth": true
- },
- "bar": {
- "itemStyle": {
- "normal": {
- "barBorderWidth": 0,
- "barBorderColor": "#ccc"
- },
- "emphasis": {
- "barBorderWidth": 0,
- "barBorderColor": "#ccc"
- }
- }
- },
- "pie": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "scatter": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "boxplot": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "parallel": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "sankey": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "funnel": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "gauge": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- },
- "emphasis": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- }
- },
- "candlestick": {
- "itemStyle": {
- "normal": {
- "color": "#edafda",
- "color0": "transparent",
- "borderColor": "#d680bc",
- "borderColor0": "#8fd3e8",
- "borderWidth": "2"
- }
- }
- },
- "graph": {
- "itemStyle": {
- "normal": {
- "borderWidth": 0,
- "borderColor": "#ccc"
- }
- },
- "lineStyle": {
- "normal": {
- "width": 1,
- "color": "#aaa"
- }
- },
- "symbolSize": "6",
- "symbol": "emptyCircle",
- "smooth": true,
- "color": [
- "#2d8cf0",
- "#19be6b",
- "#f5ae4a",
- "#9189d5",
- "#56cae2",
- "#cbb0e3"
- ],
- "label": {
- "normal": {
- "textStyle": {
- "color": "#eee"
- }
- }
- }
- },
- "map": {
- "itemStyle": {
- "normal": {
- "areaColor": "#f3f3f3",
- "borderColor": "#516b91",
- "borderWidth": 0.5
- },
- "emphasis": {
- "areaColor": "rgba(165,231,240,1)",
- "borderColor": "#516b91",
- "borderWidth": 1
- }
- },
- "label": {
- "normal": {
- "textStyle": {
- "color": "#000"
- }
- },
- "emphasis": {
- "textStyle": {
- "color": "rgb(81,107,145)"
- }
- }
- }
- },
- "geo": {
- "itemStyle": {
- "normal": {
- "areaColor": "#f3f3f3",
- "borderColor": "#516b91",
- "borderWidth": 0.5
- },
- "emphasis": {
- "areaColor": "rgba(165,231,240,1)",
- "borderColor": "#516b91",
- "borderWidth": 1
- }
- },
- "label": {
- "normal": {
- "textStyle": {
- "color": "#000"
- }
- },
- "emphasis": {
- "textStyle": {
- "color": "rgb(81,107,145)"
- }
- }
- }
- },
- "categoryAxis": {
- "axisLine": {
- "show": true,
- "lineStyle": {
- "color": "#cccccc"
- }
- },
- "axisTick": {
- "show": false,
- "lineStyle": {
- "color": "#333"
- }
- },
- "axisLabel": {
- "show": true,
- "textStyle": {
- "color": "#999999"
- }
- },
- "splitLine": {
- "show": true,
- "lineStyle": {
- "color": [
- "#eeeeee"
- ]
- }
- },
- "splitArea": {
- "show": false,
- "areaStyle": {
- "color": [
- "rgba(250,250,250,0.05)",
- "rgba(200,200,200,0.02)"
- ]
- }
- }
- },
- "valueAxis": {
- "axisLine": {
- "show": true,
- "lineStyle": {
- "color": "#cccccc"
- }
- },
- "axisTick": {
- "show": false,
- "lineStyle": {
- "color": "#333"
- }
- },
- "axisLabel": {
- "show": true,
- "textStyle": {
- "color": "#999999"
- }
- },
- "splitLine": {
- "show": true,
- "lineStyle": {
- "color": [
- "#eeeeee"
- ]
- }
- },
- "splitArea": {
- "show": false,
- "areaStyle": {
- "color": [
- "rgba(250,250,250,0.05)",
- "rgba(200,200,200,0.02)"
- ]
- }
- }
- },
- "logAxis": {
- "axisLine": {
- "show": true,
- "lineStyle": {
- "color": "#cccccc"
- }
- },
- "axisTick": {
- "show": false,
- "lineStyle": {
- "color": "#333"
- }
- },
- "axisLabel": {
- "show": true,
- "textStyle": {
- "color": "#999999"
- }
- },
- "splitLine": {
- "show": true,
- "lineStyle": {
- "color": [
- "#eeeeee"
- ]
- }
- },
- "splitArea": {
- "show": false,
- "areaStyle": {
- "color": [
- "rgba(250,250,250,0.05)",
- "rgba(200,200,200,0.02)"
- ]
- }
- }
- },
- "timeAxis": {
- "axisLine": {
- "show": true,
- "lineStyle": {
- "color": "#cccccc"
- }
- },
- "axisTick": {
- "show": false,
- "lineStyle": {
- "color": "#333"
- }
- },
- "axisLabel": {
- "show": true,
- "textStyle": {
- "color": "#999999"
- }
- },
- "splitLine": {
- "show": true,
- "lineStyle": {
- "color": [
- "#eeeeee"
- ]
- }
- },
- "splitArea": {
- "show": false,
- "areaStyle": {
- "color": [
- "rgba(250,250,250,0.05)",
- "rgba(200,200,200,0.02)"
- ]
- }
- }
- },
- "toolbox": {
- "iconStyle": {
- "normal": {
- "borderColor": "#999"
- },
- "emphasis": {
- "borderColor": "#666"
- }
- }
- },
- "legend": {
- "textStyle": {
- "color": "#999999"
- }
- },
- "tooltip": {
- "axisPointer": {
- "lineStyle": {
- "color": "#ccc",
- "width": 1
- },
- "crossStyle": {
- "color": "#ccc",
- "width": 1
- }
- }
- },
- "timeline": {
- "lineStyle": {
- "color": "#8fd3e8",
- "width": 1
- },
- "itemStyle": {
- "normal": {
- "color": "#8fd3e8",
- "borderWidth": 1
- },
- "emphasis": {
- "color": "#8fd3e8"
- }
- },
- "controlStyle": {
- "normal": {
- "color": "#8fd3e8",
- "borderColor": "#8fd3e8",
- "borderWidth": 0.5
- },
- "emphasis": {
- "color": "#8fd3e8",
- "borderColor": "#8fd3e8",
- "borderWidth": 0.5
- }
- },
- "checkpointStyle": {
- "color": "#8fd3e8",
- "borderColor": "rgba(138,124,168,0.37)"
- },
- "label": {
- "normal": {
- "textStyle": {
- "color": "#8fd3e8"
- }
- },
- "emphasis": {
- "textStyle": {
- "color": "#8fd3e8"
- }
- }
- }
- },
- "visualMap": {
- "color": [
- "#516b91",
- "#59c4e6",
- "#a5e7f0"
- ]
- },
- "dataZoom": {
- "backgroundColor": "rgba(0,0,0,0)",
- "dataBackgroundColor": "rgba(255,255,255,0.3)",
- "fillerColor": "rgba(167,183,204,0.4)",
- "handleColor": "#a7b7cc",
- "handleSize": "100%",
- "textStyle": {
- "color": "#333"
- }
- },
- "markPoint": {
- "label": {
- "normal": {
- "textStyle": {
- "color": "#eee"
- }
- },
- "emphasis": {
- "textStyle": {
- "color": "#eee"
- }
- }
- }
- }
- }
\ No newline at end of file
diff --git a/mayfly_go_web/src/views/home/index.vue b/mayfly_go_web/src/views/home/index.vue
index ded294c9..fc6e11cb 100644
--- a/mayfly_go_web/src/views/home/index.vue
+++ b/mayfly_go_web/src/views/home/index.vue
@@ -2,7 +2,7 @@
-
+
@@ -14,81 +14,15 @@
-
@@ -99,35 +33,36 @@ import { useStore } from '@/store/index.ts';
import { CountUp } from 'countup.js';
import { formatAxis } from '@/common/utils/formatTime.ts';
import { indexApi } from './api';
-import { topCardItemList, environmentList, activitiesList } from './mock.ts';
+import { useRouter } from 'vue-router';
export default {
- name: 'Home',
+ name: 'HomePage',
setup() {
// const { proxy } = getCurrentInstance() as any;
+ const router = useRouter();
const store = useStore();
const state = reactive({
- topCardItemList,
- environmentList,
- activitiesList,
- tableData: {
- data: [
- {
- date: '2016-05-02',
- name: '1号实验室',
- address: '烟感2.1%OBS/M',
- },
- {
- date: '2016-05-04',
- name: '2号实验室',
- address: '温度30℃',
- },
- {
- date: '2016-05-01',
- name: '3号实验室',
- address: '湿度57%RH',
- },
- ],
- },
+ topCardItemList: [
+ {
+ title: '项目数',
+ id: 'projectNum',
+ color: '#FEBB50',
+ },
+ {
+ title: 'Linux机器数',
+ id: 'machineNum',
+ color: '#F95959',
+ },
+ {
+ title: '数据库总数',
+ id: 'dbNum',
+ color: '#8595F4',
+ },
+ {
+ title: 'redis总数',
+ id: 'redisNum',
+ color: '#1abc9c',
+ },
+ ],
});
// 当前时间提示语
@@ -137,7 +72,7 @@ export default {
// 初始化数字滚动
const initNumCountUp = async () => {
- const res: any = await indexApi.getIndexCount.request()
+ const res: any = await indexApi.getIndexCount.request();
nextTick(() => {
new CountUp('projectNum', res.projectNum).start();
new CountUp('machineNum', res.machineNum).start();
@@ -146,104 +81,31 @@ export default {
});
};
- // // 实验室使用情况
- // const initHomeLaboratory = () => {
- // const myChart = echarts.init(proxy.$refs.homeLaboratoryRef);
- // const option = {
- // grid: {
- // top: 50,
- // right: 20,
- // bottom: 30,
- // left: 30,
- // },
- // tooltip: {
- // trigger: 'axis',
- // },
- // legend: {
- // data: ['预购队列', '最新成交价'],
- // right: 13,
- // },
- // xAxis: {
- // data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],
- // },
- // yAxis: [
- // {
- // type: 'value',
- // name: '价格',
- // },
- // ],
- // series: [
- // {
- // name: '预购队列',
- // type: 'bar',
- // data: [5, 20, 36, 10, 10, 20],
- // },
- // {
- // name: '最新成交价',
- // type: 'line',
- // data: [15, 20, 16, 20, 30, 8],
- // },
- // ],
- // };
- // myChart.setOption(option);
- // window.addEventListener('resize', () => {
- // myChart.resize();
- // });
- // };
- // // 履约超时预警
- // const initHomeOvertime = () => {
- // const myChart = echarts.init(proxy.$refs.homeOvertimeRef);
- // const option = {
- // grid: {
- // top: 50,
- // right: 20,
- // bottom: 30,
- // left: 30,
- // },
- // tooltip: {
- // trigger: 'axis',
- // },
- // legend: {
- // data: ['订单数量', '超时数量', '在线数量', '预警数量'],
- // right: 13,
- // },
- // xAxis: {
- // data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
- // },
- // yAxis: [
- // {
- // type: 'value',
- // name: '数量',
- // },
- // ],
- // series: [
- // {
- // name: '订单数量',
- // type: 'bar',
- // data: [5, 20, 36, 10, 10, 20, 11, 13, 10, 9, 17, 19],
- // },
- // {
- // name: '超时数量',
- // type: 'bar',
- // data: [15, 12, 26, 15, 11, 16, 31, 13, 5, 16, 13, 15],
- // },
- // {
- // name: '在线数量',
- // type: 'line',
- // data: [15, 20, 16, 20, 30, 8, 16, 19, 12, 18, 19, 14],
- // },
- // {
- // name: '预警数量',
- // type: 'line',
- // data: [10, 10, 13, 12, 15, 18, 19, 10, 12, 15, 11, 17],
- // },
- // ],
- // };
- // myChart.setOption(option);
- // window.addEventListener('resize', () => {
- // myChart.resize();
- // });
- // };
+ const toPage = (item: any) => {
+ switch (item.id) {
+ case 'personal': {
+ router.push('/personal');
+ break;
+ }
+ case 'projectNum': {
+ router.push('/ops/projects');
+ break;
+ }
+ case 'machineNum': {
+ router.push('/ops/machines');
+ break;
+ }
+ case 'dbNum': {
+ router.push('/ops/dbms/dbs');
+ break;
+ }
+ case 'redisNum': {
+ router.push('/ops/redis/manage');
+ break;
+ }
+ }
+ };
+
// 页面加载时
onMounted(() => {
initNumCountUp();
@@ -255,9 +117,11 @@ export default {
const getUserInfos = computed(() => {
return store.state.userInfos.userInfos;
});
+
return {
getUserInfos,
currentTime,
+ toPage,
...toRefs(state),
};
},
@@ -273,6 +137,7 @@ export default {
background: gray;
border-radius: 4px;
transition: all ease 0.3s;
+ cursor: pointer;
&:hover {
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
transition: all ease 0.3s;
diff --git a/mayfly_go_web/src/views/home/mock.ts b/mayfly_go_web/src/views/home/mock.ts
deleted file mode 100644
index d8c45f71..00000000
--- a/mayfly_go_web/src/views/home/mock.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-// 最顶部 card
-export const topCardItemList = [
- {
- title: '项目数',
- id: 'projectNum',
- num: '123',
- tip: '通过人数',
- tipNum: '911',
- color: '#FEBB50',
- iconColor: '#FDC566',
- icon: 'el-icon-histogram',
- },
- {
- title: 'Linux机器数',
- id: 'machineNum',
- num: '123',
- tip: '在场人数',
- tipNum: '911',
- color: '#F95959',
- iconColor: '#F86C6B',
- icon: 'iconfont icon-jinridaiban',
- },
- {
- title: '数据库总数',
- id: "dbNum",
- num: '123',
- tip: '使用中',
- tipNum: '611',
- color: '#8595F4',
- iconColor: '#92A1F4',
- icon: 'iconfont icon-AIshiyanshi',
- },
- {
- title: 'redis总数',
- id: 'redisNum',
- num: '123',
- tip: '通过人数',
- tipNum: '911',
- color: '#1abc9c',
- iconColor: '#FDC566',
- icon: 'iconfont icon-shenqingkaiban',
- },
-];
-
-// 环境监测
-export const environmentList = [
- {
- icon: 'iconfont icon-yangan',
- label: '烟感',
- value: '2.1%OBS/M',
- iconColor: '#F72B3F',
- },
- {
- icon: 'iconfont icon-wendu',
- label: '温度',
- value: '30℃',
- iconColor: '#91BFF8',
- },
- {
- icon: 'iconfont icon-shidu',
- label: '湿度',
- value: '57%RH',
- iconColor: '#88D565',
- },
- {
- icon: 'iconfont icon-zaosheng',
- label: '噪声',
- value: '57DB',
- iconColor: '#FBD4A0',
- },
-];
-
-// 动态信息
-export const activitiesList = [
- {
- time1: '今天',
- time2: '12:20:30',
- title: '更名',
- label: '正式更名为 vue-next-admin',
- },
- {
- time1: '02-17',
- time2: '12:20:30',
- title: '页面',
- label: '完成对首页的开发',
- },
- {
- time1: '02-14',
- time2: '12:20:30',
- title: '页面',
- label: '新增个人中心',
- },
-];
diff --git a/mayfly_go_web/src/views/login/component/Account.vue b/mayfly_go_web/src/views/login/component/AccountLogin.vue
similarity index 99%
rename from mayfly_go_web/src/views/login/component/Account.vue
rename to mayfly_go_web/src/views/login/component/AccountLogin.vue
index 991a16bd..b17cdd7a 100644
--- a/mayfly_go_web/src/views/login/component/Account.vue
+++ b/mayfly_go_web/src/views/login/component/AccountLogin.vue
@@ -62,7 +62,7 @@ import { formatAxis } from '@/common/utils/formatTime.ts';
import openApi from '@/common/openApi';
import { letterAvatar } from '@/common/utils/string';
export default defineComponent({
- name: 'Account',
+ name: 'AccountLogin',
setup() {
const store = useStore();
const route = useRoute();
diff --git a/mayfly_go_web/src/views/login/component/mobile.vue b/mayfly_go_web/src/views/login/component/MobileLogin.vue
similarity index 98%
rename from mayfly_go_web/src/views/login/component/mobile.vue
rename to mayfly_go_web/src/views/login/component/MobileLogin.vue
index f105caf6..ff6285cb 100644
--- a/mayfly_go_web/src/views/login/component/mobile.vue
+++ b/mayfly_go_web/src/views/login/component/MobileLogin.vue
@@ -33,7 +33,7 @@
+
diff --git a/mayfly_go_web/src/views/ops/machine/Monitor.vue b/mayfly_go_web/src/views/ops/machine/Monitor.vue
deleted file mode 100755
index 086cd575..00000000
--- a/mayfly_go_web/src/views/ops/machine/Monitor.vue
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayfly_go_web/src/views/ops/machine/api.ts b/mayfly_go_web/src/views/ops/machine/api.ts
index 53792f45..2107d72e 100644
--- a/mayfly_go_web/src/views/ops/machine/api.ts
+++ b/mayfly_go_web/src/views/ops/machine/api.ts
@@ -11,6 +11,8 @@ export const machineApi = {
closeCli: Api.create("/machines/{id}/close-cli", 'delete'),
// 保存按钮
saveMachine: Api.create("/machines", 'post'),
+ // 调整状态
+ changeStatus: Api.create("/machines/{id}/{status}", 'put'),
// 删除机器
del: Api.create("/machines/{id}", 'delete'),
scripts: Api.create("/machines/{machineId}/scripts", 'get'),
diff --git a/mayfly_go_web/src/views/ops/redis/RedisEdit.vue b/mayfly_go_web/src/views/ops/redis/RedisEdit.vue
index 1859c9c5..b0b3edc1 100644
--- a/mayfly_go_web/src/views/ops/redis/RedisEdit.vue
+++ b/mayfly_go_web/src/views/ops/redis/RedisEdit.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/mayfly_go_web/src/views/system/role/RoleEdit.vue b/mayfly_go_web/src/views/system/role/RoleEdit.vue
index 0549ea52..9cebbc7a 100755
--- a/mayfly_go_web/src/views/system/role/RoleEdit.vue
+++ b/mayfly_go_web/src/views/system/role/RoleEdit.vue
@@ -1,6 +1,6 @@
-
+
@@ -41,7 +41,7 @@ export default defineComponent({
},
setup(props: any, { emit }) {
const state = reactive({
- _visible: false,
+ dvisible: false,
form: {
id: null,
name: '',
@@ -52,7 +52,7 @@ export default defineComponent({
});
watch(props, (newValue) => {
- state._visible = newValue.visible;
+ state.dvisible = newValue.visible;
if (newValue.data) {
state.form = { ...newValue.data };
} else {
diff --git a/mayfly_go_web/yarn.lock b/mayfly_go_web/yarn.lock
index 1a1f5265..a8b05e7d 100644
--- a/mayfly_go_web/yarn.lock
+++ b/mayfly_go_web/yarn.lock
@@ -7,15 +7,15 @@
resolved "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314"
integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==
-"@ctrl/tinycolor@^3.4.0":
- version "3.4.0"
- resolved "https://registry.nlark.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz#c3c5ae543c897caa9c2a68630bed355be5f9990f"
- integrity sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8=
+"@ctrl/tinycolor@^3.4.1":
+ version "3.4.1"
+ resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz#75b4c27948c81e88ccd3a8902047bcd797f38d32"
+ integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==
-"@element-plus/icons-vue@^0.2.4":
- version "0.2.4"
- resolved "https://registry.npmmirror.com/@element-plus/icons-vue/download/@element-plus/icons-vue-0.2.4.tgz#dadcf72f0cea53dc83b7b7db80e1418716d7b02c"
- integrity sha512-RsJNyL58rwxtsjeMy34o8txkL6UlME1stWsUlRpTac6UE9Bx9gdJvnDXbIKhOJqBLX17fBjmposdrn6VTqim2w==
+"@element-plus/icons-vue@^1.1.3", "@element-plus/icons-vue@^1.1.4":
+ version "1.1.4"
+ resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-1.1.4.tgz#5d2788ea356f1458068e6d400e724ca5f3d29aca"
+ integrity sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==
"@eslint/eslintrc@^1.0.5":
version "1.0.5"
@@ -32,6 +32,18 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@floating-ui/core@^0.6.2":
+ version "0.6.2"
+ resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz#f2813f0e5f3d5ed7af5029e1a082203dadf02b7d"
+ integrity sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==
+
+"@floating-ui/dom@^0.4.5":
+ version "0.4.5"
+ resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz#2e88d16646119cc67d44683f75ee99840475bbfa"
+ integrity sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==
+ dependencies:
+ "@floating-ui/core" "^0.6.2"
+
"@humanwhocodes/config-array@^0.9.2":
version "0.9.2"
resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914"
@@ -67,30 +79,28 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@popperjs/core@^2.10.2":
- version "2.11.2"
- resolved "https://registry.npmmirror.com/@popperjs/core/download/@popperjs/core-2.11.2.tgz#830beaec4b4091a9e9398ac50f865ddea52186b9"
- integrity sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==
-
-"@types/axios@^0.14.0":
- version "0.14.0"
- resolved "https://registry.npm.taobao.org/@types/axios/download/@types/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46"
- integrity sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=
- dependencies:
- axios "*"
-
-"@types/clipboard@^2.0.1":
- version "2.0.7"
- resolved "https://registry.nlark.com/@types/clipboard/download/@types/clipboard-2.0.7.tgz?cache=0&sync_timestamp=1621391992846&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fclipboard%2Fdownload%2F%40types%2Fclipboard-2.0.7.tgz#db578ceec578947be2d603b003667ebdd5f274e1"
- integrity sha1-21eM7sV4lHvi1gOwA2Z+vdXydOE=
- dependencies:
- clipboard "*"
+"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.6":
+ version "2.11.6"
+ resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.6.tgz#932711b897e7a67d940c024e0bd93931cb61338c"
+ integrity sha512-V8W+eJiInGq8roHR8xYR+lxojL022LyUI9E4FRav4+1Ih+875ONcLNK3XIs809fyxk1lNzrZO5OAy6xpvEafNw==
"@types/json-schema@^7.0.7":
version "7.0.9"
resolved "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637266073261&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0=
+"@types/lodash-es@^4.17.6":
+ version "4.17.6"
+ resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0"
+ integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==
+ dependencies:
+ "@types/lodash" "*"
+
+"@types/lodash@*", "@types/lodash@^4.14.182":
+ version "4.14.182"
+ resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2"
+ integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
+
"@types/lodash@^4.14.178":
version "4.14.178"
resolved "https://registry.npmmirror.com/@types/lodash/download/@types/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8"
@@ -196,6 +206,16 @@
estree-walker "^2.0.2"
source-map "^0.6.1"
+"@vue/compiler-core@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.33.tgz#e915d59cce85898f5c5cfebe4c09e539278c3d59"
+ integrity sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==
+ dependencies:
+ "@babel/parser" "^7.16.4"
+ "@vue/shared" "3.2.33"
+ estree-walker "^2.0.2"
+ source-map "^0.6.1"
+
"@vue/compiler-dom@3.2.26":
version "3.2.26"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.26.tgz#c7a7b55d50a7b7981dd44fc28211df1450482667"
@@ -204,7 +224,31 @@
"@vue/compiler-core" "3.2.26"
"@vue/shared" "3.2.26"
-"@vue/compiler-sfc@3.2.26", "@vue/compiler-sfc@^3.0.11":
+"@vue/compiler-dom@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz#6db84296f949f18e5d3e7fd5e80f943dbed7d5ec"
+ integrity sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==
+ dependencies:
+ "@vue/compiler-core" "3.2.33"
+ "@vue/shared" "3.2.33"
+
+"@vue/compiler-sfc@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz#7ce01dc947a8b76c099811dc6ca58494d4dc773d"
+ integrity sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==
+ dependencies:
+ "@babel/parser" "^7.16.4"
+ "@vue/compiler-core" "3.2.33"
+ "@vue/compiler-dom" "3.2.33"
+ "@vue/compiler-ssr" "3.2.33"
+ "@vue/reactivity-transform" "3.2.33"
+ "@vue/shared" "3.2.33"
+ estree-walker "^2.0.2"
+ magic-string "^0.25.7"
+ postcss "^8.1.10"
+ source-map "^0.6.1"
+
+"@vue/compiler-sfc@^3.0.11":
version "3.2.26"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.26.tgz#3ce76677e4aa58311655a3bea9eb1cb804d2273f"
integrity sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==
@@ -228,6 +272,14 @@
"@vue/compiler-dom" "3.2.26"
"@vue/shared" "3.2.26"
+"@vue/compiler-ssr@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz#3e820267e4eea48fde9519f006dedca3f5e42e71"
+ integrity sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==
+ dependencies:
+ "@vue/compiler-dom" "3.2.33"
+ "@vue/shared" "3.2.33"
+
"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.0.0-beta.18":
version "6.0.0-beta.20.1"
resolved "https://registry.npmmirror.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.20.1.tgz#5b499647e929c35baf2a66a399578f9aa4601142"
@@ -244,55 +296,77 @@
estree-walker "^2.0.2"
magic-string "^0.25.7"
-"@vue/reactivity@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/reactivity/download/@vue/reactivity-3.2.26.tgz#d529191e581521c3c12e29ef986d4c8a933a0f83"
- integrity sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==
+"@vue/reactivity-transform@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz#286063f44ca56150ae9b52f8346a26e5913fa699"
+ integrity sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==
dependencies:
- "@vue/shared" "3.2.26"
+ "@babel/parser" "^7.16.4"
+ "@vue/compiler-core" "3.2.33"
+ "@vue/shared" "3.2.33"
+ estree-walker "^2.0.2"
+ magic-string "^0.25.7"
-"@vue/runtime-core@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/runtime-core/download/@vue/runtime-core-3.2.26.tgz#5c59cc440ed7a39b6dbd4c02e2d21c8d1988f0de"
- integrity sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==
+"@vue/reactivity@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.33.tgz#c84eedb5225138dbfc2472864c151d3efbb4b673"
+ integrity sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==
dependencies:
- "@vue/reactivity" "3.2.26"
- "@vue/shared" "3.2.26"
+ "@vue/shared" "3.2.33"
-"@vue/runtime-dom@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.26.tgz#84d3ae2584488747717c2e072d5d9112c0d2e6c2"
- integrity sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==
+"@vue/runtime-core@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.33.tgz#2df8907c85c37c3419fbd1bdf1a2df097fa40df2"
+ integrity sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==
dependencies:
- "@vue/runtime-core" "3.2.26"
- "@vue/shared" "3.2.26"
+ "@vue/reactivity" "3.2.33"
+ "@vue/shared" "3.2.33"
+
+"@vue/runtime-dom@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz#123b8969247029ea0d9c1983676d4706a962d848"
+ integrity sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==
+ dependencies:
+ "@vue/runtime-core" "3.2.33"
+ "@vue/shared" "3.2.33"
csstype "^2.6.8"
-"@vue/server-renderer@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/server-renderer/download/@vue/server-renderer-3.2.26.tgz#f16a4b9fbcc917417b4cea70c99afce2701341cf"
- integrity sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==
+"@vue/server-renderer@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.33.tgz#4b45d6d2ae10ea4e3d2cf8e676804cf60f331979"
+ integrity sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==
dependencies:
- "@vue/compiler-ssr" "3.2.26"
- "@vue/shared" "3.2.26"
+ "@vue/compiler-ssr" "3.2.33"
+ "@vue/shared" "3.2.33"
"@vue/shared@3.2.26":
version "3.2.26"
resolved "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz#7acd1621783571b9a82eca1f041b4a0a983481d9"
integrity sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==
-"@vueuse/core@^7.3.0":
- version "7.5.3"
- resolved "https://registry.npmmirror.com/@vueuse/core/download/@vueuse/core-7.5.3.tgz#7e8ea430a293670f12e5052a5285cb4ef8e9c758"
- integrity sha512-D9j5ymHFMFRXQqCp0yZJkf/bvBGiz0MrKUa364p+L8dMyd5zyq2K1JmHyvoBd4xbTFRfmQ1h878u6YE5LCkDVQ==
+"@vue/shared@3.2.33":
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.33.tgz#69a8c99ceb37c1b031d5cc4aec2ff1dc77e1161e"
+ integrity sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==
+
+"@vueuse/core@^8.2.6":
+ version "8.3.1"
+ resolved "https://registry.npmmirror.com/@vueuse/core/-/core-8.3.1.tgz#7f2c5977cc0690a803f44c3f5c291536ad7880d1"
+ integrity sha512-WiXUgVyPG9elGx3G8UV8g+zqbEJ2hYacrPICogAxDdW6hnxxcUFdF7FtvDroJ/DxWmo2pg8XNNz07ybfnZyJbw==
dependencies:
- "@vueuse/shared" "7.5.3"
+ "@vueuse/metadata" "8.3.1"
+ "@vueuse/shared" "8.3.1"
vue-demi "*"
-"@vueuse/shared@7.5.3":
- version "7.5.3"
- resolved "https://registry.npmmirror.com/@vueuse/shared/download/@vueuse/shared-7.5.3.tgz#2a844f38e45b1002e14d8f0ab5b41221c4fb9b09"
- integrity sha512-BJ71cxHN5VByW1S58Gl85NFJaQu93F7Vs7K/MuAKsIIuHm9PBbkR5Vxkg9ko9cBdiKVt+FNoo13BhdbA+Vwycg==
+"@vueuse/metadata@8.3.1":
+ version "8.3.1"
+ resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.3.1.tgz#acc0ff9ad686c68dfc7b4869639c43e71ae2682b"
+ integrity sha512-1aZaFL44HzXXkfN6Q7KMDOXBFKTHDClHlOJBxtN8rTBXIIScoGOrJCpxWiQ4kuVg95MzG/pHrd3P4wd8poL9XQ==
+
+"@vueuse/shared@8.3.1":
+ version "8.3.1"
+ resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.3.1.tgz#a941ef6a0eaf483ecb0e88a062163d506c22cc4b"
+ integrity sha512-7HKLCcxp4dtONq6QSSoavblo9riYgqzw7jhqiC0/VUYMXKzqj1G/GznOzTmY8Wi8uKKT197JqjKQ1DKt2j/0+A==
dependencies:
vue-demi "*"
@@ -366,12 +440,12 @@ async-validator@^4.0.7:
resolved "https://registry.npmmirror.com/async-validator/download/async-validator-4.0.7.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-4.0.7.tgz#034a0fd2103a6b2ebf010da75183bec299247afe"
integrity sha1-A0oP0hA6ay6/AQ2nUYO+wpkkev4=
-axios@*, axios@^0.24.0:
- version "0.24.0"
- resolved "https://registry.npmmirror.com/axios/download/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
- integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
+axios@^0.26.1:
+ version "0.26.1"
+ resolved "https://registry.npmmirror.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
+ integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
dependencies:
- follow-redirects "^1.14.4"
+ follow-redirects "^1.14.8"
balanced-match@^1.0.0:
version "1.0.2"
@@ -435,19 +509,19 @@ chalk@~0.4.0:
optionalDependencies:
fsevents "~2.3.2"
-clipboard@*:
- version "2.0.8"
- resolved "https://registry.nlark.com/clipboard/download/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba"
- integrity sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=
+clipboard@^2.0.6:
+ version "2.0.10"
+ resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6"
+ integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g==
dependencies:
good-listener "^1.2.2"
select "^1.1.2"
tiny-emitter "^2.0.0"
-codemirror@^5.61.0:
- version "5.64.0"
- resolved "https://registry.npmmirror.com/codemirror/download/codemirror-5.64.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcodemirror%2Fdownload%2Fcodemirror-5.64.0.tgz#182eec65b62178e3cd1de8f9d88ab819cfe5f625"
- integrity sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg==
+codemirror@^5.65.2:
+ version "5.65.3"
+ resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.3.tgz#2d029930d5a293bc5fb96ceea64654803c0d4ac7"
+ integrity sha512-kCC0iwGZOVZXHEKW3NDTObvM7pTIyowjty4BUqeREROc/3I6bWbgZDA3fGDwlA+rbgRjvnRnfqs9SfXynel1AQ==
color-convert@^2.0.1:
version "2.0.1"
@@ -466,11 +540,6 @@ concat-map@0.0.1:
resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-core-js@^3.6.5:
- version "3.20.0"
- resolved "https://registry.npmmirror.com/core-js/download/core-js-3.20.0.tgz#1c5ac07986b8d15473ab192e45a2e115a4a95b79"
- integrity sha512-KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ==
-
countup.js@^2.0.7:
version "2.0.8"
resolved "https://registry.nlark.com/countup.js/download/countup.js-2.0.8.tgz#eca0c31c9db3f7769cba494d9315cd52dbaaf1b9"
@@ -495,10 +564,10 @@ csstype@^2.6.8:
resolved "https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz?cache=0&sync_timestamp=1637224514674&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa"
integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==
-dayjs@^1.10.7:
- version "1.10.7"
- resolved "https://registry.npmmirror.com/dayjs/download/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
- integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
+dayjs@^1.11.1:
+ version "1.11.1"
+ resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.1.tgz#90b33a3dda3417258d48ad2771b415def6545eb0"
+ integrity sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==
debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
version "4.3.3"
@@ -536,28 +605,34 @@ dotenv@^10.0.0:
resolved "https://registry.nlark.com/dotenv/download/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
integrity sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE=
-echarts@^5.1.1:
- version "5.2.2"
- resolved "https://registry.npmmirror.com/echarts/download/echarts-5.2.2.tgz#ec3c8b2a151cbba71ba3c2c7cf9b2f2047ce4370"
- integrity sha1-7DyLKhUcu6cbo8LHz5svIEfOQ3A=
+echarts@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.npmmirror.com/echarts/-/echarts-5.3.2.tgz#0a7b3be8c48a48b2e7cb1b82121df0c208d42d2c"
+ integrity sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==
dependencies:
tslib "2.3.0"
- zrender "5.2.1"
+ zrender "5.3.1"
-element-plus@^1.3.0-beta.2:
- version "1.3.0-beta.5"
- resolved "https://registry.npmmirror.com/element-plus/download/element-plus-1.3.0-beta.5.tgz#cb753d03da1df81c67bf59fa0b83fa127a853622"
- integrity sha512-su0sHN4ZkR5ISyP1McyiqY5wqrgZgKq0El0lSohjvjEWR3ODlgdmMfQolV0ZqTXKlO2mS16hO7nTFwX9PvZNTQ==
+element-plus@^2.1.10:
+ version "2.1.11"
+ resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.11.tgz#6c1be29f5d78ea78720e0dda519960fd0c7d8fde"
+ integrity sha512-s4X0I8s787tv+9UdekBC1g7v42Fj4bucPAmu03EjbgrGrV7BJvkoBGuK52lNfu4yC76bl6Uyjesd5Fu8CMakSw==
dependencies:
- "@ctrl/tinycolor" "^3.4.0"
- "@element-plus/icons-vue" "^0.2.4"
- "@popperjs/core" "^2.10.2"
- "@vueuse/core" "^7.3.0"
+ "@ctrl/tinycolor" "^3.4.1"
+ "@element-plus/icons-vue" "^1.1.4"
+ "@floating-ui/dom" "^0.4.5"
+ "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.6"
+ "@types/lodash" "^4.14.182"
+ "@types/lodash-es" "^4.17.6"
+ "@vueuse/core" "^8.2.6"
async-validator "^4.0.7"
- dayjs "^1.10.7"
+ dayjs "^1.11.1"
+ escape-html "^1.0.3"
lodash "^4.17.21"
+ lodash-es "^4.17.21"
+ lodash-unified "^1.0.2"
memoize-one "^6.0.0"
- normalize-wheel-es "^1.1.1"
+ normalize-wheel-es "^1.1.2"
enquirer@^2.3.5:
version "2.3.6"
@@ -566,113 +641,136 @@ enquirer@^2.3.5:
dependencies:
ansi-colors "^4.1.1"
-esbuild-android-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
- integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
+esbuild-android-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz#5b94a1306df31d55055f64a62ff6b763a47b7f64"
+ integrity sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==
-esbuild-darwin-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
- integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
+esbuild-android-arm64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz#78acc80773d16007de5219ccce544c036abd50b8"
+ integrity sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==
-esbuild-darwin-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
- integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
+esbuild-darwin-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz#e02b1291f629ebdc2aa46fabfacc9aa28ff6aa46"
+ integrity sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==
-esbuild-freebsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
- integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
+esbuild-darwin-arm64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz#01eb6650ec010b18c990e443a6abcca1d71290a9"
+ integrity sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==
-esbuild-freebsd-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
- integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
+esbuild-freebsd-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz#790b8786729d4aac7be17648f9ea8e0e16475b5e"
+ integrity sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==
-esbuild-linux-32@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
- integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
+esbuild-freebsd-arm64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz#b66340ab28c09c1098e6d9d8ff656db47d7211e6"
+ integrity sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==
-esbuild-linux-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
- integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
+esbuild-linux-32@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz#7927f950986fd39f0ff319e92839455912b67f70"
+ integrity sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==
-esbuild-linux-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
- integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
+esbuild-linux-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz#4893d07b229d9cfe34a2b3ce586399e73c3ac519"
+ integrity sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==
-esbuild-linux-arm@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
- integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
+esbuild-linux-arm64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz#8442402e37d0b8ae946ac616784d9c1a2041056a"
+ integrity sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==
-esbuild-linux-mips64le@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
- integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
+esbuild-linux-arm@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz#d5dbf32d38b7f79be0ec6b5fb2f9251fd9066986"
+ integrity sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==
-esbuild-linux-ppc64le@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
- integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
+esbuild-linux-mips64le@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz#95081e42f698bbe35d8ccee0e3a237594b337eb5"
+ integrity sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==
-esbuild-netbsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
- integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
+esbuild-linux-ppc64le@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz#dceb0a1b186f5df679618882a7990bd422089b47"
+ integrity sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==
-esbuild-openbsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
- integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
+esbuild-linux-riscv64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz#61fb8edb75f475f9208c4a93ab2bfab63821afd2"
+ integrity sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==
-esbuild-sunos-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
- integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
+esbuild-linux-s390x@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz#34c7126a4937406bf6a5e69100185fd702d12fe0"
+ integrity sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==
-esbuild-windows-32@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
- integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
+esbuild-netbsd-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz#322ea9937d9e529183ee281c7996b93eb38a5d95"
+ integrity sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==
-esbuild-windows-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
- integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
+esbuild-openbsd-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz#1ca29bb7a2bf09592dcc26afdb45108f08a2cdbd"
+ integrity sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==
-esbuild-windows-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
- integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
+esbuild-sunos-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz#c9446f7d8ebf45093e7bb0e7045506a88540019b"
+ integrity sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==
-esbuild@^0.13.12:
- version "0.13.15"
- resolved "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
- integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
+esbuild-windows-32@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz#f8e9b4602fd0ccbd48e5c8d117ec0ba4040f2ad1"
+ integrity sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==
+
+esbuild-windows-64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz#280f58e69f78535f470905ce3e43db1746518107"
+ integrity sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==
+
+esbuild-windows-arm64@0.14.38:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz#d97e9ac0f95a4c236d9173fa9f86c983d6a53f54"
+ integrity sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==
+
+esbuild@^0.14.27:
+ version "0.14.38"
+ resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.38.tgz#99526b778cd9f35532955e26e1709a16cca2fb30"
+ integrity sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==
optionalDependencies:
- esbuild-android-arm64 "0.13.15"
- esbuild-darwin-64 "0.13.15"
- esbuild-darwin-arm64 "0.13.15"
- esbuild-freebsd-64 "0.13.15"
- esbuild-freebsd-arm64 "0.13.15"
- esbuild-linux-32 "0.13.15"
- esbuild-linux-64 "0.13.15"
- esbuild-linux-arm "0.13.15"
- esbuild-linux-arm64 "0.13.15"
- esbuild-linux-mips64le "0.13.15"
- esbuild-linux-ppc64le "0.13.15"
- esbuild-netbsd-64 "0.13.15"
- esbuild-openbsd-64 "0.13.15"
- esbuild-sunos-64 "0.13.15"
- esbuild-windows-32 "0.13.15"
- esbuild-windows-64 "0.13.15"
- esbuild-windows-arm64 "0.13.15"
+ esbuild-android-64 "0.14.38"
+ esbuild-android-arm64 "0.14.38"
+ esbuild-darwin-64 "0.14.38"
+ esbuild-darwin-arm64 "0.14.38"
+ esbuild-freebsd-64 "0.14.38"
+ esbuild-freebsd-arm64 "0.14.38"
+ esbuild-linux-32 "0.14.38"
+ esbuild-linux-64 "0.14.38"
+ esbuild-linux-arm "0.14.38"
+ esbuild-linux-arm64 "0.14.38"
+ esbuild-linux-mips64le "0.14.38"
+ esbuild-linux-ppc64le "0.14.38"
+ esbuild-linux-riscv64 "0.14.38"
+ esbuild-linux-s390x "0.14.38"
+ esbuild-netbsd-64 "0.14.38"
+ esbuild-openbsd-64 "0.14.38"
+ esbuild-sunos-64 "0.14.38"
+ esbuild-windows-32 "0.14.38"
+ esbuild-windows-64 "0.14.38"
+ esbuild-windows-arm64 "0.14.38"
+
+escape-html@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
escape-string-regexp@^4.0.0:
version "4.0.0"
@@ -877,10 +975,10 @@ flatted@^3.1.0:
resolved "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
-follow-redirects@^1.14.4:
- version "1.14.6"
- resolved "https://registry.npmmirror.com/follow-redirects/download/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd"
- integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==
+follow-redirects@^1.14.8:
+ version "1.14.9"
+ resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
+ integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
fs.realpath@^1.0.0:
version "1.0.0"
@@ -1019,10 +1117,10 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-core-module@^2.2.0:
- version "2.8.0"
- resolved "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548"
- integrity sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=
+is-core-module@^2.8.1:
+ version "2.9.0"
+ resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
+ integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
dependencies:
has "^1.0.3"
@@ -1086,6 +1184,16 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+lodash-unified@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz#bb2694db3533781e5cce984af60cfaea318b83c1"
+ integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
@@ -1150,6 +1258,11 @@ nanoid@^3.1.30:
resolved "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362"
integrity sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=
+nanoid@^3.3.1:
+ version "3.3.3"
+ resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
+ integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -1173,10 +1286,10 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=
-normalize-wheel-es@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmmirror.com/normalize-wheel-es/download/normalize-wheel-es-1.1.1.tgz#a8096db6a56f94332d884fd8ebeda88f2fc79569"
- integrity sha1-qAlttqVvlDMtiE/Y6+2ojy/HlWk=
+normalize-wheel-es@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz#285e43676a62d687bf145e33452ea6be435162d0"
+ integrity sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==
nprogress@^0.2.0:
version "0.2.0"
@@ -1219,10 +1332,10 @@ path-key@^3.1.0:
resolved "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=
-path-parse@^1.0.6:
+path-parse@^1.0.7:
version "1.0.7"
- resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=
+ resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-type@^4.0.0:
version "4.0.0"
@@ -1239,7 +1352,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=
-postcss@^8.1.10, postcss@^8.4.5:
+postcss@^8.1.10:
version "8.4.5"
resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
@@ -1248,6 +1361,15 @@ postcss@^8.1.10, postcss@^8.4.5:
picocolors "^1.0.0"
source-map-js "^1.0.1"
+postcss@^8.4.12:
+ version "8.4.12"
+ resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905"
+ integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==
+ dependencies:
+ nanoid "^3.3.1"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -1290,13 +1412,14 @@ resolve-from@^4.0.0:
resolved "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=
-resolve@^1.20.0:
- version "1.20.0"
- resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
- integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=
+resolve@^1.22.0:
+ version "1.22.0"
+ resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
+ integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
dependencies:
- is-core-module "^2.2.0"
- path-parse "^1.0.6"
+ is-core-module "^2.8.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
reusify@^1.0.4:
version "1.0.4"
@@ -1385,6 +1508,11 @@ sortablejs@^1.13.0:
resolved "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz?cache=0&sync_timestamp=1636400753943&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf"
integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
+source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -1426,6 +1554,11 @@ supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -1494,18 +1627,25 @@ v8-compile-cache@^2.0.3:
resolved "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=
-vite@^2.7.4:
- version "2.7.12"
- resolved "https://registry.npmmirror.com/vite/download/vite-2.7.12.tgz#7784ab19e7ff98f6a192d2d7d877480a8c2b7e7d"
- integrity sha512-KvPYToRQWhRfBeVkyhkZ5hASuHQkqZUUdUcE3xyYtq5oYEPIJ0h9LWiWTO6v990glmSac2cEPeYeXzpX5Z6qKQ==
+vite@^2.8.6:
+ version "2.9.5"
+ resolved "https://registry.npmmirror.com/vite/-/vite-2.9.5.tgz#08ef37ac7a6d879c96f328b791732c9a00ea25ea"
+ integrity sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==
dependencies:
- esbuild "^0.13.12"
- postcss "^8.4.5"
- resolve "^1.20.0"
+ esbuild "^0.14.27"
+ postcss "^8.4.12"
+ resolve "^1.22.0"
rollup "^2.59.0"
optionalDependencies:
fsevents "~2.3.2"
+vue-clipboard3@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-1.0.1.tgz#39e31fbf41f11d3701b3372e38a7fb83b484796a"
+ integrity sha512-iJ2vrizowfA73W3pcxMAKhYSvfekJrQ3FhbveVe9esS1Vfu+xW3Fgc0UKE8N4Q6DyRtcAoNlef8txmD8tK8dIg==
+ dependencies:
+ clipboard "^2.0.6"
+
vue-demi@*:
version "0.12.1"
resolved "https://registry.npmmirror.com/vue-demi/download/vue-demi-0.12.1.tgz#f7e18efbecffd11ab069d1472d7a06e319b4174c"
@@ -1531,20 +1671,16 @@ vue-router@^4.0.12:
dependencies:
"@vue/devtools-api" "^6.0.0-beta.18"
-<<<<<<< HEAD
-vue@^3.0.5:
-=======
-vue@^3.2.20:
->>>>>>> master
- version "3.2.26"
- resolved "https://registry.npmmirror.com/vue/download/vue-3.2.26.tgz#5db575583ecae495c7caa5c12fd590dffcbb763e"
- integrity sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==
+vue@^3.2.30:
+ version "3.2.33"
+ resolved "https://registry.npmmirror.com/vue/-/vue-3.2.33.tgz#7867eb16a3293a28c4d190a837bc447878bd64c2"
+ integrity sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==
dependencies:
- "@vue/compiler-dom" "3.2.26"
- "@vue/compiler-sfc" "3.2.26"
- "@vue/runtime-dom" "3.2.26"
- "@vue/server-renderer" "3.2.26"
- "@vue/shared" "3.2.26"
+ "@vue/compiler-dom" "3.2.33"
+ "@vue/compiler-sfc" "3.2.33"
+ "@vue/runtime-dom" "3.2.33"
+ "@vue/server-renderer" "3.2.33"
+ "@vue/shared" "3.2.33"
vuex@^4.0.2:
version "4.0.2"
@@ -1575,19 +1711,19 @@ xterm-addon-fit@^0.5.0:
resolved "https://registry.npmmirror.com/xterm-addon-fit/download/xterm-addon-fit-0.5.0.tgz#2d51b983b786a97dcd6cde805e700c7f913bc596"
integrity sha1-LVG5g7eGqX3NbN6AXnAMf5E7xZY=
-xterm@^4.16.0:
- version "4.16.0"
- resolved "https://registry.npmmirror.com/xterm/download/xterm-4.16.0.tgz#af25223c72917438842121e1bcd1b60ffd7e8476"
- integrity sha512-nAbuigL9CYkI075mdfqpnB8cHZNKxENCj1CQ9Tm5gSvWkMtkanmRN2mkHGjSaET1/3+X9BqISFFo7Pd2mXVjiQ==
+xterm@^4.18.0:
+ version "4.18.0"
+ resolved "https://registry.npmmirror.com/xterm/-/xterm-4.18.0.tgz#a1f6ab2c330c3918fb094ae5f4c2562987398ea1"
+ integrity sha512-JQoc1S0dti6SQfI0bK1AZvGnAxH4MVw45ZPFSO6FHTInAiau3Ix77fSxNx3mX4eh9OL4AYa8+4C8f5UvnSfppQ==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=
-zrender@5.2.1:
- version "5.2.1"
- resolved "https://registry.nlark.com/zrender/download/zrender-5.2.1.tgz#5f4bbda915ba6d412b0b19dc2431beaad05417bb"
- integrity sha1-X0u9qRW6bUErCxncJDG+qtBUF7s=
+zrender@5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.1.tgz#fa8e63ac7e719cfd563831fe8c42a9756c5af384"
+ integrity sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==
dependencies:
tslib "2.3.0"
diff --git a/server/devops/api/machine.go b/server/devops/api/machine.go
index ec66f282..62894e6c 100644
--- a/server/devops/api/machine.go
+++ b/server/devops/api/machine.go
@@ -1,7 +1,6 @@
package api
import (
- "bytes"
"fmt"
"mayfly-go/base/biz"
"mayfly-go/base/ctx"
@@ -46,10 +45,8 @@ func (m *Machine) Machines(rc *ctx.ReqCtx) {
}
func (m *Machine) MachineStats(rc *ctx.ReqCtx) {
- writer := bytes.NewBufferString("")
stats := m.MachineApp.GetCli(GetMachineId(rc.GinCtx)).GetAllStats()
- machine.ShowStats(writer, stats)
- rc.ResData = writer.String()
+ rc.ResData = stats
}
func (m *Machine) SaveMachine(rc *ctx.ReqCtx) {
@@ -64,6 +61,14 @@ func (m *Machine) SaveMachine(rc *ctx.ReqCtx) {
m.MachineApp.Save(entity)
}
+func (m *Machine) ChangeStatus(rc *ctx.ReqCtx) {
+ g := rc.GinCtx
+ id := uint64(ginx.PathParamInt(g, "machineId"))
+ status := int8(ginx.PathParamInt(g, "status"))
+ rc.ReqParam = fmt.Sprintf("id: %d -- status: %d", id, status)
+ m.MachineApp.ChangeStatus(id, status)
+}
+
func (m *Machine) DeleteMachine(rc *ctx.ReqCtx) {
id := uint64(ginx.PathParamInt(rc.GinCtx, "machineId"))
rc.ReqParam = id
diff --git a/server/devops/api/vo/vo.go b/server/devops/api/vo/vo.go
index 17feb8d8..4e46d4df 100644
--- a/server/devops/api/vo/vo.go
+++ b/server/devops/api/vo/vo.go
@@ -22,6 +22,7 @@ type MachineVO struct {
Username *string `json:"username"`
Ip *string `json:"ip"`
Port *int `json:"port"`
+ Status *int8 `json:"status"`
CreateTime *time.Time `json:"createTime"`
Creator *string `json:"creator"`
CreatorId *int64 `json:"creatorId"`
diff --git a/server/devops/application/machine_app.go b/server/devops/application/machine_app.go
index d3b09ef0..fd61fc58 100644
--- a/server/devops/application/machine_app.go
+++ b/server/devops/application/machine_app.go
@@ -17,6 +17,9 @@ type Machine interface {
Save(entity *entity.Machine)
+ // 调整机器状态
+ ChangeStatus(id uint64, status int8)
+
Count(condition *entity.Machine) int64
Delete(id uint64)
@@ -63,10 +66,23 @@ func (m *machineAppImpl) Save(me *entity.Machine) {
m.machineRepo.UpdateById(me)
} else {
biz.IsTrue(err != nil, "该机器信息已存在")
+ // 新增机器,默认启用状态
+ me.Status = entity.MachineStatusEnable
m.machineRepo.Create(me)
}
}
+func (m *machineAppImpl) ChangeStatus(id uint64, status int8) {
+ if status == entity.MachineStatusDisable {
+ // 关闭连接
+ machine.DeleteCli(id)
+ }
+ machine := new(entity.Machine)
+ machine.Id = id
+ machine.Status = status
+ m.machineRepo.UpdateById(machine)
+}
+
// 根据条件获取机器信息
func (m *machineAppImpl) Delete(id uint64) {
// 关闭连接
@@ -100,7 +116,9 @@ func (m *machineAppImpl) GetById(id uint64, cols ...string) *entity.Machine {
func (m *machineAppImpl) GetCli(id uint64) *machine.Cli {
cli, err := machine.GetCli(id, func(machineId uint64) *entity.Machine {
- return m.GetById(machineId)
+ machine := m.GetById(machineId)
+ biz.IsTrue(machine.Status == entity.MachineStatusEnable, "该机器已被停用")
+ return machine
})
biz.ErrIsNilAppendErr(err, "获取客户端错误: %s")
return cli
diff --git a/server/devops/domain/entity/machine.go b/server/devops/domain/entity/machine.go
index 029fa1c3..f78c6d90 100644
--- a/server/devops/domain/entity/machine.go
+++ b/server/devops/domain/entity/machine.go
@@ -9,11 +9,14 @@ type Machine struct {
ProjectId uint64 `json:"projectId"`
ProjectName string `json:"projectName"`
Name string `json:"name"`
- // IP地址
- Ip string `json:"ip"`
- // 用户名
- Username string `json:"username"`
- Password string `json:"-"`
- // 端口号
- Port int `json:"port"`
+ Ip string `json:"ip"` // IP地址
+ Username string `json:"username"` // 用户名
+ Password string `json:"-"`
+ Port int `json:"port"` // 端口号
+ Status int8 `json:"status"` // 状态 1:启用;2:停用
}
+
+const (
+ MachineStatusEnable int8 = 1 // 启用状态
+ MachineStatusDisable int8 = -1 // 禁用状态
+)
diff --git a/server/devops/infrastructure/machine/shell/stats.sh b/server/devops/infrastructure/machine/shell/stats.sh
index 9aa2afdf..8d816dad 100644
--- a/server/devops/infrastructure/machine/shell/stats.sh
+++ b/server/devops/infrastructure/machine/shell/stats.sh
@@ -12,4 +12,4 @@ echo '-----'
echo '-----'
/bin/cat /proc/net/dev
echo '-----'
-cat /proc/stat
\ No newline at end of file
+top -b -n 1 | grep Cpu
\ No newline at end of file
diff --git a/server/devops/infrastructure/machine/stats.go b/server/devops/infrastructure/machine/stats.go
index d3e081d4..038ad214 100644
--- a/server/devops/infrastructure/machine/stats.go
+++ b/server/devops/infrastructure/machine/stats.go
@@ -3,8 +3,6 @@ package machine
import (
"bufio"
"fmt"
- "io"
- "sort"
"strconv"
"strings"
"time"
@@ -23,19 +21,6 @@ type NetIntfInfo struct {
Tx uint64
}
-type cpuRaw struct {
- User uint64 // time spent in user mode
- Nice uint64 // time spent in user mode with low priority (nice)
- System uint64 // time spent in system mode
- Idle uint64 // time spent in the idle task
- Iowait uint64 // time spent waiting for I/O to complete (since Linux 2.5.41)
- Irq uint64 // time spent servicing interrupts (since 2.6.0-test4)
- SoftIrq uint64 // time spent servicing softirqs (since 2.6.0-test4)
- Steal uint64 // time spent in other OSes when running in a virtualized environment
- Guest uint64 // time spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
- Total uint64 // total of all time fields
-}
-
type CPUInfo struct {
User float32
Nice float32
@@ -49,7 +34,7 @@ type CPUInfo struct {
}
type Stats struct {
- Uptime time.Duration
+ Uptime string
Hostname string
Load1 string
Load5 string
@@ -59,6 +44,7 @@ type Stats struct {
MemTotal uint64
MemFree uint64
MemBuffers uint64
+ MemAvailable uint64
MemCached uint64
SwapTotal uint64
SwapFree uint64
@@ -90,12 +76,32 @@ func getUptime(uptime string, stats *Stats) (err error) {
if err != nil {
return
}
- stats.Uptime = time.Duration(upsecs * 1e9)
+ stats.Uptime = fmtUptime(time.Duration(upsecs * 1e9))
}
-
return
}
+func fmtUptime(dur time.Duration) string {
+ dur = dur - (dur % time.Second)
+ var days int
+ for dur.Hours() > 24.0 {
+ days++
+ dur -= 24 * time.Hour
+ }
+ s1 := dur.String()
+ s2 := ""
+ if days > 0 {
+ s2 = fmt.Sprintf("%dd ", days)
+ }
+ for _, ch := range s1 {
+ s2 += string(ch)
+ if ch == 'h' || ch == 'm' {
+ s2 += " "
+ }
+ }
+ return s2
+}
+
func getHostname(hostname string, stats *Stats) (err error) {
stats.Hostname = strings.TrimSpace(hostname)
return
@@ -143,6 +149,8 @@ func getMemInfo(memInfo string, stats *Stats) (err error) {
stats.SwapTotal = val
case "SwapFree:":
stats.SwapFree = val
+ case "MemAvailable:":
+ stats.MemAvailable = val
}
}
}
@@ -248,190 +256,22 @@ func getInterfaceInfo(iInfo string, stats *Stats) (err error) {
return
}
-func parseCPUFields(fields []string, stat *cpuRaw) {
- numFields := len(fields)
- for i := 1; i < numFields; i++ {
- val, err := strconv.ParseUint(fields[i], 10, 64)
- if err != nil {
- continue
- }
-
- stat.Total += val
- switch i {
- case 1:
- stat.User = val
- case 2:
- stat.Nice = val
- case 3:
- stat.System = val
- case 4:
- stat.Idle = val
- case 5:
- stat.Iowait = val
- case 6:
- stat.Irq = val
- case 7:
- stat.SoftIrq = val
- case 8:
- stat.Steal = val
- case 9:
- stat.Guest = val
- }
- }
-}
-
-// the CPU stats that were fetched last time round
-var preCPU cpuRaw
-
func getCPU(cpuInfo string, stats *Stats) (err error) {
- var (
- nowCPU cpuRaw
- total float32
- )
+ // %Cpu(s): 6.1 us, 3.0 sy, 0.0 ni, 90.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
+ value := strings.Split(cpuInfo, ":")[1]
+ values := strings.Split(value, ",")
- scanner := bufio.NewScanner(strings.NewReader(cpuInfo))
- for scanner.Scan() {
- line := scanner.Text()
- fields := strings.Fields(line)
- if len(fields) > 0 && fields[0] == "cpu" { // changing here if want to get every cpu-core's stats
- parseCPUFields(fields, &nowCPU)
- break
- }
- }
- if preCPU.Total == 0 { // having no pre raw cpu data
- goto END
- }
+ us, _ := strconv.ParseFloat(strings.Split(strings.TrimSpace(values[0]), " ")[0], 32)
+ stats.CPU.User = float32(us)
- total = float32(nowCPU.Total - preCPU.Total)
- stats.CPU.User = float32(nowCPU.User-preCPU.User) / total * 100
- stats.CPU.Nice = float32(nowCPU.Nice-preCPU.Nice) / total * 100
- stats.CPU.System = float32(nowCPU.System-preCPU.System) / total * 100
- stats.CPU.Idle = float32(nowCPU.Idle-preCPU.Idle) / total * 100
- stats.CPU.Iowait = float32(nowCPU.Iowait-preCPU.Iowait) / total * 100
- stats.CPU.Irq = float32(nowCPU.Irq-preCPU.Irq) / total * 100
- stats.CPU.SoftIrq = float32(nowCPU.SoftIrq-preCPU.SoftIrq) / total * 100
- stats.CPU.Guest = float32(nowCPU.Guest-preCPU.Guest) / total * 100
-END:
- preCPU = nowCPU
- return
+ sy, _ := strconv.ParseFloat(strings.Split(strings.TrimSpace(values[1]), " ")[0], 32)
+ stats.CPU.System = float32(sy)
+
+ id, _ := strconv.ParseFloat(strings.Split(strings.TrimSpace(values[3]), " ")[0], 32)
+ stats.CPU.Idle = float32(id)
+
+ wa, _ := strconv.ParseFloat(strings.Split(strings.TrimSpace(values[4]), " ")[0], 32)
+ stats.CPU.Iowait = float32(wa)
+
+ return nil
}
-
-func fmtUptime(stats *Stats) string {
- dur := stats.Uptime
- dur = dur - (dur % time.Second)
- var days int
- for dur.Hours() > 24.0 {
- days++
- dur -= 24 * time.Hour
- }
- s1 := dur.String()
- s2 := ""
- if days > 0 {
- s2 = fmt.Sprintf("%dd ", days)
- }
- for _, ch := range s1 {
- s2 += string(ch)
- if ch == 'h' || ch == 'm' {
- s2 += " "
- }
- }
- return s2
-}
-
-func fmtBytes(val uint64) string {
- if val < 1024 {
- return fmt.Sprintf("%d bytes", val)
- } else if val < 1024*1024 {
- return fmt.Sprintf("%6.2f KiB", float64(val)/1024.0)
- } else if val < 1024*1024*1024 {
- return fmt.Sprintf("%6.2f MiB", float64(val)/1024.0/1024.0)
- } else {
- return fmt.Sprintf("%6.2f GiB", float64(val)/1024.0/1024.0/1024.0)
- }
-}
-
-func ShowStats(output io.Writer, stats *Stats) {
- used := stats.MemTotal - stats.MemFree - stats.MemBuffers - stats.MemCached
- fmt.Fprintf(output,
- `%s%s%s%s up %s%s%s
-Load:
- %s%s %s %s%s
-CPU:
- %s%.2f%s%% user, %s%.2f%s%% sys, %s%.2f%s%% nice, %s%.2f%s%% idle, %s%.2f%s%% iowait, %s%.2f%s%% hardirq, %s%.2f%s%% softirq, %s%.2f%s%% guest
-Processes:
- %s%s%s running of %s%s%s total
-Memory:
- free = %s%s%s
- used = %s%s%s
- buffers = %s%s%s
- cached = %s%s%s
- swap = %s%s%s free of %s%s%s
-`,
- escClear,
- escBrightWhite, stats.Hostname, escReset,
- escBrightWhite, fmtUptime(stats), escReset,
- escBrightWhite, stats.Load1, stats.Load5, stats.Load10, escReset,
- escBrightWhite, stats.CPU.User, escReset,
- escBrightWhite, stats.CPU.System, escReset,
- escBrightWhite, stats.CPU.Nice, escReset,
- escBrightWhite, stats.CPU.Idle, escReset,
- escBrightWhite, stats.CPU.Iowait, escReset,
- escBrightWhite, stats.CPU.Irq, escReset,
- escBrightWhite, stats.CPU.SoftIrq, escReset,
- escBrightWhite, stats.CPU.Guest, escReset,
- escBrightWhite, stats.RunningProcs, escReset,
- escBrightWhite, stats.TotalProcs, escReset,
- escBrightWhite, fmtBytes(stats.MemFree), escReset,
- escBrightWhite, fmtBytes(used), escReset,
- escBrightWhite, fmtBytes(stats.MemBuffers), escReset,
- escBrightWhite, fmtBytes(stats.MemCached), escReset,
- escBrightWhite, fmtBytes(stats.SwapFree), escReset,
- escBrightWhite, fmtBytes(stats.SwapTotal), escReset,
- )
- if len(stats.FSInfos) > 0 {
- fmt.Println("Filesystems:")
- for _, fs := range stats.FSInfos {
- fmt.Fprintf(output, " %s%8s%s: %s%s%s free of %s%s%s\n",
- escBrightWhite, fs.MountPoint, escReset,
- escBrightWhite, fmtBytes(fs.Free), escReset,
- escBrightWhite, fmtBytes(fs.Used+fs.Free), escReset,
- )
- }
- fmt.Println()
- }
- if len(stats.NetIntf) > 0 {
- fmt.Println("Network Interfaces:")
- keys := make([]string, 0, len(stats.NetIntf))
- for intf := range stats.NetIntf {
- keys = append(keys, intf)
- }
- sort.Strings(keys)
- for _, intf := range keys {
- info := stats.NetIntf[intf]
- fmt.Fprintf(output, " %s%s%s - %s%s%s",
- escBrightWhite, intf, escReset,
- escBrightWhite, info.IPv4, escReset,
- )
- if len(info.IPv6) > 0 {
- fmt.Fprintf(output, ", %s%s%s\n",
- escBrightWhite, info.IPv6, escReset,
- )
- } else {
- fmt.Fprintf(output, "\n")
- }
- fmt.Fprintf(output, " rx = %s%s%s, tx = %s%s%s\n",
- escBrightWhite, fmtBytes(info.Rx), escReset,
- escBrightWhite, fmtBytes(info.Tx), escReset,
- )
- fmt.Println()
- }
- fmt.Println()
- }
-}
-
-const (
- escClear = ""
- escRed = ""
- escReset = ""
- escBrightWhite = ""
-)
diff --git a/server/devops/router/machine.go b/server/devops/router/machine.go
index b5a4f9f8..ba754135 100644
--- a/server/devops/router/machine.go
+++ b/server/devops/router/machine.go
@@ -45,6 +45,13 @@ func InitMachineRouter(router *gin.RouterGroup) {
Handle(m.SaveMachine)
})
+ changeStatus := ctx.NewLogInfo("调整机器状态")
+ machines.PUT(":machineId/:status", func(c *gin.Context) {
+ ctx.NewReqCtxWithGin(c).
+ WithLog(changeStatus).
+ Handle(m.ChangeStatus)
+ })
+
delMachine := ctx.NewLogInfo("删除机器")
machines.DELETE(":machineId", func(c *gin.Context) {
ctx.NewReqCtxWithGin(c).
diff --git a/server/mayfly-go.sql b/server/mayfly-go.sql
index f3b6f37e..b4d37170 100644
--- a/server/mayfly-go.sql
+++ b/server/mayfly-go.sql
@@ -86,6 +86,7 @@ CREATE TABLE `t_machine` (
`port` int(12) NOT NULL,
`username` varchar(12) COLLATE utf8mb4_bin NOT NULL,
`password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
+ `status` tinyint(2) NOT NULL COMMENT '状态: 1:启用; -1:禁用',
`need_monitor` tinyint(2) DEFAULT NULL,
`create_time` datetime NOT NULL,
`creator` varchar(16) COLLATE utf8mb4_bin DEFAULT NULL,