From 0188a41a630935accaf577c257affadbd9dc5b7a Mon Sep 17 00:00:00 2001 From: zuohuaijun Date: Sun, 4 Aug 2024 00:55:52 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Web/eslint.config.mjs | 125 +++++++++++++++++++++ Web/package.json | 4 +- Web/src/layout/navBars/topBar/settings.vue | 5 +- Web/src/views/mqttx/index.vue | 2 +- 4 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 Web/eslint.config.mjs diff --git a/Web/eslint.config.mjs b/Web/eslint.config.mjs new file mode 100644 index 00000000..162b8531 --- /dev/null +++ b/Web/eslint.config.mjs @@ -0,0 +1,125 @@ +import vue from 'eslint-plugin-vue'; +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import globals from 'globals'; +import parser from 'vue-eslint-parser'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: [ + '**/*.sh', + '**/node_modules', + '**/lib', + '**/*.md', + '**/*.scss', + '**/*.woff', + '**/*.ttf', + '**/.vscode', + '**/.idea', + '**/dist', + '**/mock', + '**/public', + '**/bin', + '**/build', + '**/config', + '**/index.html', + 'src/assets', + ], + }, + ...compat.extends('plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'), + { + plugins: { + vue, + '@typescript-eslint': typescriptEslint, + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + + parser: parser, + ecmaVersion: 12, + sourceType: 'module', + + parserOptions: { + parser: '@typescript-eslint/parser', + }, + }, + + rules: { + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-redeclare': 'off', + '@typescript-eslint/no-non-null-asserted-optional-chain': 'off', + '@typescript-eslint/no-unused-vars': 'warn', + 'vue/no-unused-vars': 'off', + 'vue/no-mutating-props': 'warn', + 'vue/custom-event-name-casing': 'off', + 'vue/attributes-order': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/valid-v-else': 'warn', + 'vue/no-deprecated-filter': 'warn', + 'vue/html-self-closing': 'off', + 'vue/no-multiple-template-root': 'off', + 'vue/require-default-prop': 'off', + 'vue/no-v-model-argument': 'off', + 'vue/no-arrow-functions-in-watch': 'off', + 'vue/no-template-key': 'off', + 'vue/no-v-for-template-key': 'warn', + 'vue/no-v-html': 'off', + 'vue/comment-directive': 'off', + 'vue/no-parsing-error': 'off', + 'vue/no-deprecated-v-on-native-modifier': 'off', + 'vue/multi-word-component-names': 'off', + 'no-constant-binary-expression': 'warn', + 'no-useless-escape': 'off', + 'no-sparse-arrays': 'off', + 'no-prototype-builtins': 'off', + 'no-constant-condition': 'off', + 'no-use-before-define': 'off', + 'no-restricted-globals': 'off', + 'no-restricted-syntax': 'off', + 'generator-star-spacing': 'off', + 'no-unreachable': 'off', + 'no-multiple-template-root': 'off', + 'no-unused-vars': 'off', + 'no-v-model-argument': 'off', + 'no-case-declarations': 'off', + 'no-console': 'off', + 'no-redeclare': 'off', + }, + }, + { + files: ['**/*.ts', '**/*.tsx', '**/*.vue'], + + rules: { + 'no-undef': 'off', + }, + }, +]; diff --git a/Web/package.json b/Web/package.json index 3182cd18..d86673fe 100644 --- a/Web/package.json +++ b/Web/package.json @@ -9,7 +9,8 @@ "scripts": { "dev": "vite", "build": "node --max-old-space-size=8192 ./node_modules/vite/bin/vite build", - "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/", + "lint-fix": "eslint --fix src/", + "format": "prettier --write .", "build-api": "cd api_build/ && build.bat" }, "dependencies": { @@ -90,6 +91,7 @@ "code-inspector-plugin": "^0.15.2", "eslint": "^9.8.0", "eslint-plugin-vue": "^9.27.0", + "globals": "^15.8.0", "less": "^4.2.0", "prettier": "^3.3.3", "rollup-plugin-visualizer": "^5.12.0", diff --git a/Web/src/layout/navBars/topBar/settings.vue b/Web/src/layout/navBars/topBar/settings.vue index b7c5c9f3..7ea981d0 100644 --- a/Web/src/layout/navBars/topBar/settings.vue +++ b/Web/src/layout/navBars/topBar/settings.vue @@ -492,7 +492,7 @@ const cliChineseColor = (e: any) => { }; // 获取布局配置信息 -const getThemeConfig = computed(() => { +const updateThemeConfig = () => { if (!themeConfig.value.columnsMenuWidth) { themeConfig.value.columnsMenuWidth = 70; } @@ -502,6 +502,9 @@ const getThemeConfig = computed(() => { if (!themeConfig.value.columnsLogoHeight) { themeConfig.value.columnsLogoHeight = 50; } +}; +const getThemeConfig = computed(() => { + updateThemeConfig(); return themeConfig.value; }); // 1、全局主题 diff --git a/Web/src/views/mqttx/index.vue b/Web/src/views/mqttx/index.vue index 4bdb115d..b3da55e6 100644 --- a/Web/src/views/mqttx/index.vue +++ b/Web/src/views/mqttx/index.vue @@ -131,7 +131,7 @@ + -->