refactor: code review

This commit is contained in:
meilin.huang
2023-10-20 21:31:46 +08:00
parent 45d2449221
commit 10f6b03fb5
15 changed files with 270 additions and 209 deletions

View File

@@ -11,10 +11,10 @@
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.1.0", "@element-plus/icons-vue": "^2.1.0",
"asciinema-player": "^3.6.2", "asciinema-player": "^3.6.2",
"axios": "^1.5.0", "axios": "^1.5.1",
"countup.js": "^2.7.0", "countup.js": "^2.7.0",
"cropperjs": "^1.5.11", "cropperjs": "^1.5.11",
"echarts": "^5.4.0", "echarts": "^5.4.3",
"element-plus": "^2.4.1", "element-plus": "^2.4.1",
"jsencrypt": "^3.3.1", "jsencrypt": "^3.3.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
@@ -29,7 +29,7 @@
"sortablejs": "^1.15.0", "sortablejs": "^1.15.0",
"sql-formatter": "^12.1.2", "sql-formatter": "^12.1.2",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"vue": "^3.3.4", "vue": "^3.3.5",
"vue-clipboard3": "^1.0.1", "vue-clipboard3": "^1.0.1",
"vue-router": "^4.2.5", "vue-router": "^4.2.5",
"xterm": "^5.3.0", "xterm": "^5.3.0",
@@ -48,11 +48,11 @@
"@vue/compiler-sfc": "^3.3.4", "@vue/compiler-sfc": "^3.3.4",
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
"eslint": "^8.35.0", "eslint": "^8.35.0",
"eslint-plugin-vue": "^8.2.0", "eslint-plugin-vue": "^9.17.0",
"prettier": "^2.3.0", "prettier": "^3.0.3",
"sass": "^1.69.0", "sass": "^1.69.0",
"typescript": "^5.0.2", "typescript": "^5.0.2",
"vite": "^4.4.11", "vite": "^4.5.0",
"vue-eslint-parser": "^9.3.1" "vue-eslint-parser": "^9.3.1"
}, },
"browserslist": [ "browserslist": [

View File

@@ -37,7 +37,7 @@ class SysSocket {
if (!token) { if (!token) {
return null; return null;
} }
console.log('init system ws');
const sysMsgUrl = `${Config.baseWsUrl}/sysmsg?${joinClientParams()}`; const sysMsgUrl = `${Config.baseWsUrl}/sysmsg?${joinClientParams()}`;
this.socket = SocketBuilder.builder(sysMsgUrl) this.socket = SocketBuilder.builder(sysMsgUrl)
.message((event: { data: string }) => { .message((event: { data: string }) => {
@@ -78,6 +78,7 @@ class SysSocket {
* @param handlerFunc 消息处理函数 * @param handlerFunc 消息处理函数
*/ */
registerMsgHandler(category: any, handlerFunc: any) { registerMsgHandler(category: any, handlerFunc: any) {
this.init();
if (this.categoryHandlers.has(category)) { if (this.categoryHandlers.has(category)) {
console.log(`${category}该类别消息处理器已存在...`); console.log(`${category}该类别消息处理器已存在...`);
return; return;

View File

@@ -2,7 +2,7 @@
<div> <div>
<el-dialog :destroy-on-close="true" title="待执行SQL" v-model="dialogVisible" :show-close="false" width="600px" @close="cancel"> <el-dialog :destroy-on-close="true" title="待执行SQL" v-model="dialogVisible" :show-close="false" width="600px" @close="cancel">
<monaco-editor height="300px" class="codesql" language="sql" v-model="sqlValue" /> <monaco-editor height="300px" class="codesql" language="sql" v-model="sqlValue" />
<el-input ref="remarkInputRef" v-model="remark" placeholder="请输入执行备注" class="mt5" /> <el-input @keyup.enter="runSql" ref="remarkInputRef" v-model="remark" placeholder="请输入执行备注" class="mt5" />
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>

View File

@@ -87,7 +87,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { nextTick, watch, onMounted, reactive, toRefs, ref, Ref } from 'vue'; import { h, nextTick, watch, onMounted, reactive, toRefs, ref, Ref } from 'vue';
import { getToken } from '@/common/utils/storage'; import { getToken } from '@/common/utils/storage';
import { isTrue, notBlank } from '@/common/assert'; import { isTrue, notBlank } from '@/common/assert';
import { format as sqlFormatter } from 'sql-formatter'; import { format as sqlFormatter } from 'sql-formatter';
@@ -105,7 +105,6 @@ import { dbApi } from '../../api';
import MonacoEditor from '@/components/monaco/MonacoEditor.vue'; import MonacoEditor from '@/components/monaco/MonacoEditor.vue';
import { joinClientParams } from '@/common/request'; import { joinClientParams } from '@/common/request';
import { createVNode } from 'vue';
import { buildProgressProps } from '@/components/progress-notify/progress-notify'; import { buildProgressProps } from '@/components/progress-notify/progress-notify';
import ProgressNotify from '@/components/progress-notify/progress-notify.vue'; import ProgressNotify from '@/components/progress-notify/progress-notify.vue';
import { ElNotification } from 'element-plus'; import { ElNotification } from 'element-plus';
@@ -508,11 +507,10 @@ const beforeUpload = (file: File) => {
progress.props.progress.title = content.title; progress.props.progress.title = content.title;
progress.props.progress.executedStatements = content.executedStatements; progress.props.progress.executedStatements = content.executedStatements;
if (!sqlExecNotifyMap.has(id)) { if (!sqlExecNotifyMap.has(id)) {
const vNodeMessage = createVNode(ProgressNotify, progress.props, null);
progress.notification = ElNotification({ progress.notification = ElNotification({
duration: 0, duration: 0,
title: message.title, title: message.title,
message: vNodeMessage, message: h(ProgressNotify, progress.props),
type: syssocket.getMsgType(message.type), type: syssocket.getMsgType(message.type),
showClose: false, showClose: false,
}); });

View File

@@ -7,6 +7,11 @@
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8"
integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==
"@babel/parser@^7.23.0":
version "7.23.0"
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
"@babel/runtime@^7.21.0": "@babel/runtime@^7.21.0":
version "7.21.5" version "7.21.5"
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200"
@@ -202,7 +207,7 @@
resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz" resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz"
integrity sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U= integrity sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=
"@jridgewell/sourcemap-codec@^1.4.13": "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.15":
version "1.4.15" version "1.4.15"
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@@ -385,6 +390,16 @@
estree-walker "^2.0.2" estree-walker "^2.0.2"
source-map-js "^1.0.2" source-map-js "^1.0.2"
"@vue/compiler-core@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.5.tgz#6e723b95217bbd0478a6004c4943f48c9f32d705"
integrity sha512-S8Ma+eICI40Y4UotR+iKR729Bma+wERn/xLc+Jz203s5WIW1Sx3qoiONqXGg3Q4vBMa+QHDncULya19ZSJuhog==
dependencies:
"@babel/parser" "^7.23.0"
"@vue/shared" "3.3.5"
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-dom@3.3.4": "@vue/compiler-dom@3.3.4":
version "3.3.4" version "3.3.4"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151"
@@ -393,7 +408,31 @@
"@vue/compiler-core" "3.3.4" "@vue/compiler-core" "3.3.4"
"@vue/shared" "3.3.4" "@vue/shared" "3.3.4"
"@vue/compiler-sfc@3.3.4", "@vue/compiler-sfc@^3.3.4": "@vue/compiler-dom@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.5.tgz#abaa5f9969c79656521608e5fc1b51d3cbca7a00"
integrity sha512-dxt6QntN9T/NtnV6Pz+/nmcoo3ULnsYCnRpvEyY73wbk1tzzx7dnwngUN1cXkyGNu9c3UE7llhq/5T54lKwyhQ==
dependencies:
"@vue/compiler-core" "3.3.5"
"@vue/shared" "3.3.5"
"@vue/compiler-sfc@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.5.tgz#432c3ad3722336cacb99ac2552ea1e0ffd235989"
integrity sha512-M6ys4iReSbrF4NTcMCnJiBioCpzXjfkfXwkdziknRyps+pG0DkwpDfQT7zQ0q91/rCR/Ejz64b5H6C4HBhX41w==
dependencies:
"@babel/parser" "^7.23.0"
"@vue/compiler-core" "3.3.5"
"@vue/compiler-dom" "3.3.5"
"@vue/compiler-ssr" "3.3.5"
"@vue/reactivity-transform" "3.3.5"
"@vue/shared" "3.3.5"
estree-walker "^2.0.2"
magic-string "^0.30.5"
postcss "^8.4.31"
source-map-js "^1.0.2"
"@vue/compiler-sfc@^3.3.4":
version "3.3.4" version "3.3.4"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df"
integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
@@ -417,6 +456,14 @@
"@vue/compiler-dom" "3.3.4" "@vue/compiler-dom" "3.3.4"
"@vue/shared" "3.3.4" "@vue/shared" "3.3.4"
"@vue/compiler-ssr@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.5.tgz#2eb79dc6cd9e2ee40bd1fb32e00d181f5a4a8e1a"
integrity sha512-v7p2XuEpOcgjd6c49NqOnq3UTJOv5Uo9tirOyGnEadwxTov2O1J3/TUt4SgAAnwA+9gcUyH5c3lIOFsBe+UIyw==
dependencies:
"@vue/compiler-dom" "3.3.5"
"@vue/shared" "3.3.5"
"@vue/devtools-api@^6.5.0": "@vue/devtools-api@^6.5.0":
version "6.5.0" version "6.5.0"
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07"
@@ -433,43 +480,59 @@
estree-walker "^2.0.2" estree-walker "^2.0.2"
magic-string "^0.30.0" magic-string "^0.30.0"
"@vue/reactivity@3.3.4": "@vue/reactivity-transform@3.3.5":
version "3.3.4" version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.5.tgz#eaaab18a5c5187da2affbe1d2b27756e269c24e8"
integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== integrity sha512-OhpBD1H32pIapRzqy31hWwTFLf9STP+0uk5bVOQWXACTa2Rt/RPhvX4zixbPgMGo6iP+S+tFpZzUdcG8AASn8A==
dependencies: dependencies:
"@vue/shared" "3.3.4" "@babel/parser" "^7.23.0"
"@vue/compiler-core" "3.3.5"
"@vue/shared" "3.3.5"
estree-walker "^2.0.2"
magic-string "^0.30.5"
"@vue/runtime-core@3.3.4": "@vue/reactivity@3.3.5":
version "3.3.4" version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.5.tgz#a75038ba78ecf85199eb81ab72752b5db01215c7"
integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== integrity sha512-P7OBfPjsbV5lDCwZQDtWFqPh3uAP3Q6bRqYVgsYr6ki7jiaiHGSLmeaevUi+Nkev8nhublUpApnWevNiACN3sw==
dependencies: dependencies:
"@vue/reactivity" "3.3.4" "@vue/shared" "3.3.5"
"@vue/shared" "3.3.4"
"@vue/runtime-dom@3.3.4": "@vue/runtime-core@3.3.5":
version "3.3.4" version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.5.tgz#0081c9f48369a42c407f915bb5bb620d74c7ebec"
integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== integrity sha512-kxAW3fTzwzZQqiHV1SndTtLMlNfJ/bsvcYku6NDuPzTeG6sMOAIXvuz6N5NUox+P7sNCInESbSOrPMMvtWx3vA==
dependencies: dependencies:
"@vue/runtime-core" "3.3.4" "@vue/reactivity" "3.3.5"
"@vue/shared" "3.3.4" "@vue/shared" "3.3.5"
csstype "^3.1.1"
"@vue/server-renderer@3.3.4": "@vue/runtime-dom@3.3.5":
version "3.3.4" version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.5.tgz#b832e6bef9442b79157b546b3fcc4a8958908b34"
integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== integrity sha512-seYSeHmBNlTrR0eFyQFocEBtzljNlKzC2JfdebfBqoEmikyNYzLWTouv71DignLFXEXZKWNTqCIs4d7dk5Q3Ng==
dependencies: dependencies:
"@vue/compiler-ssr" "3.3.4" "@vue/runtime-core" "3.3.5"
"@vue/shared" "3.3.4" "@vue/shared" "3.3.5"
csstype "^3.1.2"
"@vue/server-renderer@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.5.tgz#fee4236791dc8c3faeb2cfa273eb54f4572f302f"
integrity sha512-7VIZkohYn8GAnNT9chrm0vDpHJ6mWPL+TmUBKtDWcWxYcq33YJP/VHCPQN5TazkxXCtv3c1KfXAMZowX4giLoQ==
dependencies:
"@vue/compiler-ssr" "3.3.5"
"@vue/shared" "3.3.5"
"@vue/shared@3.3.4": "@vue/shared@3.3.4":
version "3.3.4" version "3.3.4"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
"@vue/shared@3.3.5":
version "3.3.5"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.5.tgz#da717d8ce807d9d337f55ebcfb6cad7bf51e9a76"
integrity sha512-oNJN1rCtkqm1cIxU1BuZVEVRWIp4DhaxXucEzzZ/iDKHP71ZxhkBPNK+URySiECH6aiOZzC60PS2bd6JFznvNA==
"@vueuse/core@^9.1.0": "@vueuse/core@^9.1.0":
version "9.2.0" version "9.2.0"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.2.0.tgz" resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.2.0.tgz"
@@ -492,16 +555,11 @@
dependencies: dependencies:
vue-demi "*" vue-demi "*"
acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: acorn-jsx@^5.3.2:
version "5.3.2" version "5.3.2"
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.7.0:
version "8.7.0"
resolved "https://registry.npmmirror.com/acorn/download/acorn-8.7.0.tgz"
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
acorn@^8.8.0: acorn@^8.8.0:
version "8.8.2" version "8.8.2"
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
@@ -570,10 +628,10 @@ asynckit@^0.4.0:
resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz" resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.5.0: axios@^1.5.1:
version "1.5.0" version "1.5.1"
resolved "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" resolved "https://registry.npmmirror.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f"
integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==
dependencies: dependencies:
follow-redirects "^1.15.0" follow-redirects "^1.15.0"
form-data "^4.0.0" form-data "^4.0.0"
@@ -589,6 +647,11 @@ binary-extensions@^2.0.0:
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
brace-expansion@^1.1.7: brace-expansion@^1.1.7:
version "1.1.11" version "1.1.11"
resolved "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz" resolved "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz"
@@ -689,12 +752,17 @@ cross-spawn@^7.0.2:
shebang-command "^2.0.0" shebang-command "^2.0.0"
which "^2.0.1" which "^2.0.1"
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
csstype@^3.1.0: csstype@^3.1.0:
version "3.1.1" version "3.1.1"
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.1.tgz" resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.1.tgz"
integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
csstype@^3.1.1: csstype@^3.1.2:
version "3.1.2" version "3.1.2"
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
@@ -765,13 +833,13 @@ dt-sql-parser@^4.0.0-beta.3.2:
"@types/antlr4" "4.7.0" "@types/antlr4" "4.7.0"
antlr4 "4.7.2" antlr4 "4.7.2"
echarts@^5.4.0: echarts@^5.4.3:
version "5.4.0" version "5.4.3"
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.4.0.tgz#a9a8e5367293a397408d3bf3e2638b869249ce04" resolved "https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz#f5522ef24419164903eedcfd2b506c6fc91fb20c"
integrity sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w== integrity sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==
dependencies: dependencies:
tslib "2.3.0" tslib "2.3.0"
zrender "5.4.0" zrender "5.4.4"
element-plus@^2.4.1: element-plus@^2.4.1:
version "2.4.1" version "2.4.1"
@@ -832,23 +900,18 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz" resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz"
integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ= integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=
eslint-plugin-vue@^8.2.0: eslint-plugin-vue@^9.17.0:
version "8.3.0" version "9.17.0"
resolved "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-8.3.0.tgz" resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz#4501547373f246547083482838b4c8f4b28e5932"
integrity sha512-IIuLHw4vQxGlHcoP2dG6t/2OVdQf2qoyAzEGAxreU1afZOHGA7y3TWq8I+r3ZA6Wjs6xpeUWGHlT31QGr9Rb5g== integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==
dependencies: dependencies:
eslint-utils "^3.0.0" "@eslint-community/eslint-utils" "^4.4.0"
natural-compare "^1.4.0" natural-compare "^1.4.0"
semver "^7.3.5" nth-check "^2.1.1"
vue-eslint-parser "^8.0.1" postcss-selector-parser "^6.0.13"
semver "^7.5.4"
eslint-scope@^6.0.0: vue-eslint-parser "^9.3.1"
version "6.0.0" xml-name-validator "^4.0.0"
resolved "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-6.0.0.tgz"
integrity sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg=
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-scope@^7.1.1: eslint-scope@^7.1.1:
version "7.1.1" version "7.1.1"
@@ -870,11 +933,6 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378510206&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz" resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378510206&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz"
integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM= integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=
eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-3.1.0.tgz"
integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
eslint-visitor-keys@^3.3.0: eslint-visitor-keys@^3.3.0:
version "3.3.0" version "3.3.0"
resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
@@ -936,15 +994,6 @@ eslint@^8.35.0:
strip-json-comments "^3.1.0" strip-json-comments "^3.1.0"
text-table "^0.2.0" text-table "^0.2.0"
espree@^9.0.0:
version "9.3.0"
resolved "https://registry.npmmirror.com/espree/download/espree-9.3.0.tgz"
integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==
dependencies:
acorn "^8.7.0"
acorn-jsx "^5.3.1"
eslint-visitor-keys "^3.1.0"
espree@^9.3.1: espree@^9.3.1:
version "9.5.1" version "9.5.1"
resolved "https://registry.npmmirror.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" resolved "https://registry.npmmirror.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4"
@@ -1309,6 +1358,13 @@ magic-string@^0.30.0:
dependencies: dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13" "@jridgewell/sourcemap-codec" "^1.4.13"
magic-string@^0.30.5:
version "0.30.5"
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9"
integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
memoize-one@^6.0.0: memoize-one@^6.0.0:
version "6.0.0" version "6.0.0"
resolved "https://registry.npmmirror.com/memoize-one/download/memoize-one-6.0.0.tgz?cache=0&sync_timestamp=1634697208428&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmemoize-one%2Fdownload%2Fmemoize-one-6.0.0.tgz" resolved "https://registry.npmmirror.com/memoize-one/download/memoize-one-6.0.0.tgz?cache=0&sync_timestamp=1634697208428&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmemoize-one%2Fdownload%2Fmemoize-one-6.0.0.tgz"
@@ -1427,6 +1483,13 @@ nprogress@^0.2.0:
resolved "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz" resolved "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz"
integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E=
nth-check@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
boolbase "^1.0.0"
once@^1.3.0: once@^1.3.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.nlark.com/once/download/once-1.4.0.tgz" resolved "https://registry.nlark.com/once/download/once-1.4.0.tgz"
@@ -1510,6 +1573,14 @@ pinia@^2.1.7:
"@vue/devtools-api" "^6.5.0" "@vue/devtools-api" "^6.5.0"
vue-demi ">=0.14.5" vue-demi ">=0.14.5"
postcss-selector-parser@^6.0.13:
version "6.0.13"
resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
dependencies:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
postcss@^8.1.10: postcss@^8.1.10:
version "8.4.5" version "8.4.5"
resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz" resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz"
@@ -1528,15 +1599,24 @@ postcss@^8.4.27:
picocolors "^1.0.0" picocolors "^1.0.0"
source-map-js "^1.0.2" source-map-js "^1.0.2"
postcss@^8.4.31:
version "8.4.31"
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
dependencies:
nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
prelude-ls@^1.2.1: prelude-ls@^1.2.1:
version "1.2.1" version "1.2.1"
resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz" resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz"
integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y= integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=
prettier@^2.3.0: prettier@^3.0.3:
version "2.5.1" version "3.0.3"
resolved "https://registry.npmmirror.com/prettier/download/prettier-2.5.1.tgz" resolved "https://registry.npmmirror.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==
proxy-from-env@^1.1.0: proxy-from-env@^1.1.0:
version "1.1.0" version "1.1.0"
@@ -1643,13 +1723,6 @@ select@^1.1.2:
resolved "https://registry.nlark.com/select/download/select-1.1.2.tgz" resolved "https://registry.nlark.com/select/download/select-1.1.2.tgz"
integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
semver@^7.3.5:
version "7.3.5"
resolved "https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz"
integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=
dependencies:
lru-cache "^6.0.0"
semver@^7.3.6: semver@^7.3.6:
version "7.5.0" version "7.5.0"
resolved "https://registry.npmmirror.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" resolved "https://registry.npmmirror.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0"
@@ -1781,15 +1854,20 @@ uri-js@^4.2.2:
dependencies: dependencies:
punycode "^2.1.0" punycode "^2.1.0"
util-deprecate@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
uuid@^9.0.1: uuid@^9.0.1:
version "9.0.1" version "9.0.1"
resolved "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" resolved "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
vite@^4.4.11: vite@^4.5.0:
version "4.4.11" version "4.5.0"
resolved "https://registry.npmmirror.com/vite/-/vite-4.4.11.tgz#babdb055b08c69cfc4c468072a2e6c9ca62102b0" resolved "https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26"
integrity sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A== integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==
dependencies: dependencies:
esbuild "^0.18.10" esbuild "^0.18.10"
postcss "^8.4.27" postcss "^8.4.27"
@@ -1814,19 +1892,6 @@ vue-demi@>=0.14.5:
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz#676d0463d1a1266d5ab5cba932e043d8f5f2fbd9" resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz#676d0463d1a1266d5ab5cba932e043d8f5f2fbd9"
integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA== integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==
vue-eslint-parser@^8.0.1:
version "8.0.1"
resolved "https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz"
integrity sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM=
dependencies:
debug "^4.3.2"
eslint-scope "^6.0.0"
eslint-visitor-keys "^3.0.0"
espree "^9.0.0"
esquery "^1.4.0"
lodash "^4.17.21"
semver "^7.3.5"
vue-eslint-parser@^9.3.1: vue-eslint-parser@^9.3.1:
version "9.3.1" version "9.3.1"
resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182"
@@ -1847,16 +1912,16 @@ vue-router@^4.2.5:
dependencies: dependencies:
"@vue/devtools-api" "^6.5.0" "@vue/devtools-api" "^6.5.0"
vue@^3.3.4: vue@^3.3.5:
version "3.3.4" version "3.3.5"
resolved "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" resolved "https://registry.npmmirror.com/vue/-/vue-3.3.5.tgz#571ec76a83b77766c80bc12a2d35be34a2a7403b"
integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== integrity sha512-xYpLEGb25yYU1ul9ZhCcavNZ4YW6PS7YTDdDAd0yc/3w69Tra2BwY4EpKguKddfD56QApXQ17XHq+fJJwEP+UQ==
dependencies: dependencies:
"@vue/compiler-dom" "3.3.4" "@vue/compiler-dom" "3.3.5"
"@vue/compiler-sfc" "3.3.4" "@vue/compiler-sfc" "3.3.5"
"@vue/runtime-dom" "3.3.4" "@vue/runtime-dom" "3.3.5"
"@vue/server-renderer" "3.3.4" "@vue/server-renderer" "3.3.5"
"@vue/shared" "3.3.4" "@vue/shared" "3.3.5"
which@^2.0.1: which@^2.0.1:
version "2.0.2" version "2.0.2"
@@ -1875,6 +1940,11 @@ wrappy@1:
resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz" resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
xml-name-validator@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
xterm-addon-fit@^0.8.0: xterm-addon-fit@^0.8.0:
version "0.8.0" version "0.8.0"
resolved "https://registry.npmmirror.com/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz#48ca99015385141918f955ca7819e85f3691d35f" resolved "https://registry.npmmirror.com/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz#48ca99015385141918f955ca7819e85f3691d35f"
@@ -1905,9 +1975,9 @@ yocto-queue@^0.1.0:
resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zrender@5.4.0: zrender@5.4.4:
version "5.4.0" version "5.4.4"
resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.0.tgz#d4f76e527b2e3bbd7add2bdaf27a16af85785576" resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz#8854f1d95ecc82cf8912f5a11f86657cb8c9e261"
integrity sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA== integrity sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==
dependencies: dependencies:
tslib "2.3.0" tslib "2.3.0"

View File

@@ -16,6 +16,7 @@ import (
"mayfly-go/pkg/logx" "mayfly-go/pkg/logx"
"mayfly-go/pkg/model" "mayfly-go/pkg/model"
"mayfly-go/pkg/req" "mayfly-go/pkg/req"
"mayfly-go/pkg/utils/anyx"
"mayfly-go/pkg/utils/collx" "mayfly-go/pkg/utils/collx"
"mayfly-go/pkg/utils/stringx" "mayfly-go/pkg/utils/stringx"
"mayfly-go/pkg/ws" "mayfly-go/pkg/ws"
@@ -181,14 +182,11 @@ func (d *Db) ExecSqlFile(rc *req.Ctx) {
rc.ReqParam = fmt.Sprintf("filename: %s -> %s", filename, dbConn.Info.GetLogDesc()) rc.ReqParam = fmt.Sprintf("filename: %s -> %s", filename, dbConn.Info.GetLogDesc())
defer func() { defer func() {
var errInfo string if err := recover(); err != nil {
switch t := recover().(type) { errInfo := anyx.ToString(err)
case error: if len(errInfo) > 300 {
errInfo = t.Error() errInfo = errInfo[:300] + "..."
case string: }
errInfo = t
}
if len(errInfo) > 0 {
d.MsgApp.CreateAndSend(rc.LoginAccount, msgdto.ErrSysMsg("sql脚本执行失败", fmt.Sprintf("[%s][%s]执行失败: [%s]", filename, dbConn.Info.GetLogDesc(), errInfo)).WithClientId(clientId)) d.MsgApp.CreateAndSend(rc.LoginAccount, msgdto.ErrSysMsg("sql脚本执行失败", fmt.Sprintf("[%s][%s]执行失败: [%s]", filename, dbConn.Info.GetLogDesc(), errInfo)).WithClientId(clientId))
} }
}() }()
@@ -302,15 +300,10 @@ func (d *Db) DumpSql(rc *req.Ctx) {
if len(dbNames) == 1 && len(tablesStr) > 0 { if len(dbNames) == 1 && len(tablesStr) > 0 {
tables = strings.Split(tablesStr, ",") tables = strings.Split(tablesStr, ",")
} }
writer := newGzipWriter(g.Writer) writer := newGzipWriter(g.Writer)
defer func() { defer func() {
var msg string msg := anyx.ToString(recover())
if err := recover(); err != nil {
switch t := err.(type) {
case error:
msg = t.Error()
}
}
if len(msg) > 0 { if len(msg) > 0 {
msg = "数据库导出失败: " + msg msg = "数据库导出失败: " + msg
writer.WriteString(msg) writer.WriteString(msg)
@@ -318,6 +311,7 @@ func (d *Db) DumpSql(rc *req.Ctx) {
} }
writer.Close() writer.Close()
}() }()
for _, dbName := range dbNames { for _, dbName := range dbNames {
d.dumpDb(writer, dbId, dbName, tables, needStruct, needData) d.dumpDb(writer, dbId, dbName, tables, needStruct, needData)
} }
@@ -373,7 +367,7 @@ func (d *Db) dumpDb(writer *gzipWriter, dbId uint64, dbName string, tables []str
strValue = dbConn.Info.Type.QuoteLiteral(strValue) strValue = dbConn.Info.Type.QuoteLiteral(strValue)
values = append(values, strValue) values = append(values, strValue)
} else { } else {
values = append(values, stringx.AnyToStr(value)) values = append(values, anyx.ToString(value))
} }
} }
writer.WriteString(fmt.Sprintf(insertSql, quotedTable, strings.Join(values, ", "))) writer.WriteString(fmt.Sprintf(insertSql, quotedTable, strings.Join(values, ", ")))

View File

@@ -15,6 +15,7 @@ import (
"mayfly-go/pkg/ginx" "mayfly-go/pkg/ginx"
"mayfly-go/pkg/logx" "mayfly-go/pkg/logx"
"mayfly-go/pkg/req" "mayfly-go/pkg/req"
"mayfly-go/pkg/utils/anyx"
"mayfly-go/pkg/utils/collx" "mayfly-go/pkg/utils/collx"
"mayfly-go/pkg/utils/timex" "mayfly-go/pkg/utils/timex"
"mime/multipart" "mime/multipart"
@@ -182,12 +183,9 @@ func (m *MachineFile) UploadFile(rc *req.Ctx) {
la := rc.LoginAccount la := rc.LoginAccount
defer func() { defer func() {
if err := recover(); err != nil { if anyx.ToString(recover()) != "" {
logx.Errorf("文件上传失败: %s", err) logx.Errorf("文件上传失败: %s", err)
switch t := err.(type) { m.MsgApp.CreateAndSend(la, msgdto.ErrSysMsg("文件上传失败", fmt.Sprintf("执行文件上传失败:\n<-e : %s", err)))
case biz.BizError:
m.MsgApp.CreateAndSend(la, msgdto.ErrSysMsg("文件上传失败", fmt.Sprintf("执行文件上传失败:\n<-e errCode: %d, errMsg: %s", t.Code(), t.Error())))
}
} }
}() }()

View File

@@ -1,6 +1,6 @@
package dto package dto
import "mayfly-go/pkg/utils/stringx" import "mayfly-go/pkg/utils/anyx"
// ************** 系统消息 ************** // ************** 系统消息 **************
@@ -29,7 +29,7 @@ func (sm *SysMsg) WithCategory(category string) *SysMsg {
} }
func (sm *SysMsg) WithMsg(msg any) *SysMsg { func (sm *SysMsg) WithMsg(msg any) *SysMsg {
sm.Msg = stringx.AnyToStr(msg) sm.Msg = anyx.ToString(msg)
return sm return sm
} }
@@ -40,15 +40,15 @@ func (sm *SysMsg) WithClientId(clientId string) *SysMsg {
// 普通消息 // 普通消息
func InfoSysMsg(title string, msg any) *SysMsg { func InfoSysMsg(title string, msg any) *SysMsg {
return &SysMsg{Type: InfoSysMsgType, Title: title, Msg: stringx.AnyToStr(msg)} return &SysMsg{Type: InfoSysMsgType, Title: title, Msg: anyx.ToString(msg)}
} }
// 成功消息 // 成功消息
func SuccessSysMsg(title string, msg any) *SysMsg { func SuccessSysMsg(title string, msg any) *SysMsg {
return &SysMsg{Type: SuccessSysMsgType, Title: title, Msg: stringx.AnyToStr(msg)} return &SysMsg{Type: SuccessSysMsgType, Title: title, Msg: anyx.ToString(msg)}
} }
// 错误消息 // 错误消息
func ErrSysMsg(title string, msg any) *SysMsg { func ErrSysMsg(title string, msg any) *SysMsg {
return &SysMsg{Type: ErrorSysMsgType, Title: title, Msg: stringx.AnyToStr(msg)} return &SysMsg{Type: ErrorSysMsgType, Title: title, Msg: anyx.ToString(msg)}
} }

View File

@@ -4,6 +4,7 @@ import (
"mayfly-go/pkg/biz" "mayfly-go/pkg/biz"
"mayfly-go/pkg/logx" "mayfly-go/pkg/logx"
"mayfly-go/pkg/req" "mayfly-go/pkg/req"
"mayfly-go/pkg/utils/anyx"
"mayfly-go/pkg/ws" "mayfly-go/pkg/ws"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -18,9 +19,10 @@ func (s *System) ConnectWs(g *gin.Context) {
wsConn, err := ws.Upgrader.Upgrade(g.Writer, g.Request, nil) wsConn, err := ws.Upgrader.Upgrade(g.Writer, g.Request, nil)
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
logx.ErrorTrace("websocket连接失败: ", err.(error)) errInfo := anyx.ToString(err)
logx.Error("websocket连接失败: ", errInfo)
if wsConn != nil { if wsConn != nil {
wsConn.WriteMessage(websocket.TextMessage, []byte(err.(error).Error())) wsConn.WriteMessage(websocket.TextMessage, []byte(errInfo))
wsConn.Close() wsConn.Close()
} }
} }
@@ -32,9 +34,8 @@ func (s *System) ConnectWs(g *gin.Context) {
// 权限校验 // 权限校验
rc := req.NewCtxWithGin(g) rc := req.NewCtxWithGin(g)
if err = req.PermissionHandler(rc); err != nil { err = req.PermissionHandler(rc)
panic("sys ws连接没有权限") biz.ErrIsNil(err, "sys websocket没有权限连接")
}
// 登录账号信息 // 登录账号信息
la := rc.LoginAccount la := rc.LoginAccount

View File

@@ -9,7 +9,6 @@ import (
"mayfly-go/pkg/logx" "mayfly-go/pkg/logx"
"mayfly-go/pkg/utils/anyx" "mayfly-go/pkg/utils/anyx"
"mayfly-go/pkg/utils/collx" "mayfly-go/pkg/utils/collx"
"mayfly-go/pkg/utils/stringx"
"mime/multipart" "mime/multipart"
"net/http" "net/http"
"os" "os"
@@ -64,7 +63,7 @@ func (r *RequestWrapper) GetByQuery(queryMap collx.M) *ResponseWrapper {
if params != "" { if params != "" {
params += "&" params += "&"
} }
params += k + "=" + stringx.AnyToStr(v) params += k + "=" + anyx.ToString(v)
} }
r.url += "?" + params r.url += "?" + params
return r.Get() return r.Get()

View File

@@ -6,7 +6,6 @@ import (
"mayfly-go/pkg/logx" "mayfly-go/pkg/logx"
"mayfly-go/pkg/utils/anyx" "mayfly-go/pkg/utils/anyx"
"mayfly-go/pkg/utils/runtimex" "mayfly-go/pkg/utils/runtimex"
"mayfly-go/pkg/utils/stringx"
) )
type SaveLogFunc func(*Ctx) type SaveLogFunc func(*Ctx)
@@ -105,12 +104,12 @@ func getLogMsg(rc *Ctx) string {
logInfo := rc.Conf.logInfo logInfo := rc.Conf.logInfo
msg := logInfo.Description + fmt.Sprintf(" ->%dms", rc.timed) msg := logInfo.Description + fmt.Sprintf(" ->%dms", rc.timed)
if !anyx.IsBlank(rc.ReqParam) { if !anyx.IsBlank(rc.ReqParam) {
msg = msg + fmt.Sprintf("\n--> %s", stringx.AnyToStr(rc.ReqParam)) msg = msg + fmt.Sprintf("\n--> %s", anyx.ToString(rc.ReqParam))
} }
// 返回结果不为空,则记录返回结果 // 返回结果不为空,则记录返回结果
if logInfo.LogResp && !anyx.IsBlank(rc.ResData) { if logInfo.LogResp && !anyx.IsBlank(rc.ResData) {
msg = msg + fmt.Sprintf("\n<-- %s", stringx.AnyToStr(rc.ResData)) msg = msg + fmt.Sprintf("\n<-- %s", anyx.ToString(rc.ResData))
} }
return msg return msg
} }
@@ -118,7 +117,7 @@ func getLogMsg(rc *Ctx) string {
func getErrMsg(rc *Ctx, err any) string { func getErrMsg(rc *Ctx, err any) string {
msg := rc.Conf.logInfo.Description + fmt.Sprintf(" ->%dms", rc.timed) msg := rc.Conf.logInfo.Description + fmt.Sprintf(" ->%dms", rc.timed)
if !anyx.IsBlank(rc.ReqParam) { if !anyx.IsBlank(rc.ReqParam) {
msg = msg + fmt.Sprintf("\n--> %s", stringx.AnyToStr(rc.ReqParam)) msg = msg + fmt.Sprintf("\n--> %s", anyx.ToString(rc.ReqParam))
} }
nFrames := DefaultLogFrames nFrames := DefaultLogFrames

View File

@@ -8,7 +8,7 @@ import (
"mayfly-go/pkg/config" "mayfly-go/pkg/config"
"mayfly-go/pkg/model" "mayfly-go/pkg/model"
"mayfly-go/pkg/rediscli" "mayfly-go/pkg/rediscli"
"mayfly-go/pkg/utils/stringx" "mayfly-go/pkg/utils/anyx"
"time" "time"
) )
@@ -135,7 +135,7 @@ type RedisPermissionCodeRegistry struct {
} }
func (r *RedisPermissionCodeRegistry) SaveCodes(userId uint64, codes []string) { func (r *RedisPermissionCodeRegistry) SaveCodes(userId uint64, codes []string) {
rediscli.Set(fmt.Sprintf("mayfly:%v:codes", userId), stringx.AnyToStr(codes), time.Minute*time.Duration(config.Conf.Jwt.ExpireTime)) rediscli.Set(fmt.Sprintf("mayfly:%v:codes", userId), anyx.ToString(codes), time.Minute*time.Duration(config.Conf.Jwt.ExpireTime))
} }
func (r *RedisPermissionCodeRegistry) HasCode(userId uint64, code string) bool { func (r *RedisPermissionCodeRegistry) HasCode(userId uint64, code string) bool {

View File

@@ -1,6 +1,7 @@
package anyx package anyx
import ( import (
"encoding/json"
"reflect" "reflect"
"strconv" "strconv"
) )
@@ -75,3 +76,47 @@ func IsBlank(value any) bool {
} }
return reflect.DeepEqual(rValue.Interface(), reflect.Zero(rValue.Type()).Interface()) return reflect.DeepEqual(rValue.Interface(), reflect.Zero(rValue.Type()).Interface())
} }
// any to string
func ToString(value any) string {
// interface 转 string
if value == nil {
return ""
}
switch it := value.(type) {
case string:
return it
case error:
return it.Error()
case float64:
return strconv.FormatFloat(it, 'f', -1, 64)
case float32:
return strconv.FormatFloat(float64(it), 'f', -1, 64)
case int:
return strconv.Itoa(it)
case uint:
return strconv.Itoa(int(it))
case int8:
return strconv.Itoa(int(it))
case uint8:
return strconv.Itoa(int(it))
case int16:
return strconv.Itoa(int(it))
case uint16:
return strconv.Itoa(int(it))
case int32:
return strconv.Itoa(int(it))
case uint32:
return strconv.Itoa(int(it))
case int64:
return strconv.FormatInt(it, 10)
case uint64:
return strconv.FormatUint(it, 10)
case []byte:
return string(value.([]byte))
default:
newValue, _ := json.Marshal(value)
return string(newValue)
}
}

View File

@@ -1,6 +1,6 @@
package collx package collx
import "mayfly-go/pkg/utils/stringx" import "mayfly-go/pkg/utils/anyx"
// M is a shortcut for map[string]any // M is a shortcut for map[string]any
type M map[string]any type M map[string]any
@@ -12,7 +12,7 @@ func Kvs(elements ...any) M {
myMap := make(map[string]any) myMap := make(map[string]any)
for i := 0; i < len(elements); i += 2 { for i := 0; i < len(elements); i += 2 {
key := stringx.AnyToStr(elements[i]) key := anyx.ToString(elements[i])
if i+1 < len(elements) { if i+1 < len(elements) {
value := elements[i+1] value := elements[i+1]
myMap[key] = value myMap[key] = value

View File

@@ -2,8 +2,6 @@ package stringx
import ( import (
"bytes" "bytes"
"encoding/json"
"strconv"
"strings" "strings"
"text/template" "text/template"
) )
@@ -117,45 +115,3 @@ func ReverStrTemplate(temp, str string, res map[string]any) {
ReverStrTemplate(next, Trim(SubString(str, UnicodeIndex(str, value)+Len(value), Len(str))), res) ReverStrTemplate(next, Trim(SubString(str, UnicodeIndex(str, value)+Len(value), Len(str))), res)
} }
} }
func AnyToStr(value any) string {
// interface 转 string
var key string
if value == nil {
return key
}
switch it := value.(type) {
case string:
return it
case float64:
return strconv.FormatFloat(it, 'f', -1, 64)
case float32:
return strconv.FormatFloat(float64(it), 'f', -1, 64)
case int:
return strconv.Itoa(it)
case uint:
return strconv.Itoa(int(it))
case int8:
return strconv.Itoa(int(it))
case uint8:
return strconv.Itoa(int(it))
case int16:
return strconv.Itoa(int(it))
case uint16:
return strconv.Itoa(int(it))
case int32:
return strconv.Itoa(int(it))
case uint32:
return strconv.Itoa(int(it))
case int64:
return strconv.FormatInt(it, 10)
case uint64:
return strconv.FormatUint(it, 10)
case []byte:
return string(value.([]byte))
default:
newValue, _ := json.Marshal(value)
return string(newValue)
}
}