!159 eslint升级v9版本
* update: eslint升级v9版本 & 更新一些不符合校验规则的代码
¶Ô±ÈÐÂÎļþ |
| | |
| | | import globals from 'globals'; |
| | | import pluginJs from '@eslint/js'; |
| | | import tseslint from 'typescript-eslint'; |
| | | import pluginVue from 'eslint-plugin-vue'; |
| | | import { readFile } from 'node:fs/promises'; |
| | | import prettier from 'eslint-plugin-prettier'; |
| | | |
| | | /** |
| | | * https://blog.csdn.net/sayUonly/article/details/123482912 |
| | | * èªå¨å¯¼å
¥çé
ç½® |
| | | */ |
| | | const autoImportFile = new URL('./.eslintrc-auto-import.json', import.meta.url); |
| | | const autoImportGlobals = JSON.parse(await readFile(autoImportFile, 'utf8')); |
| | | |
| | | /** @type {import('eslint').Linter.Config[]} */ |
| | | export default [ |
| | | { |
| | | /** |
| | | * ä¸éè¦.eslintignoreæä»¶ èæ¯å¨è¿éé
ç½® |
| | | */ |
| | | ignores: [ |
| | | '*.sh', |
| | | 'node_modules', |
| | | '*.md', |
| | | '*.woff', |
| | | '*.ttf', |
| | | '.vscode', |
| | | '.idea', |
| | | 'dist', |
| | | '/public', |
| | | '/docs', |
| | | '.husky', |
| | | '.local', |
| | | '/bin', |
| | | '.eslintrc.cjs', |
| | | 'prettier.config.js', |
| | | 'src/assets', |
| | | 'tailwind.config.js' |
| | | ] |
| | | }, |
| | | { files: ['**/*.{js,mjs,cjs,ts,vue}'] }, |
| | | { |
| | | languageOptions: { |
| | | globals: globals.browser |
| | | } |
| | | }, |
| | | pluginJs.configs.recommended, |
| | | ...tseslint.configs.recommended, |
| | | ...pluginVue.configs['flat/essential'], |
| | | { |
| | | files: ['**/*.vue'], |
| | | languageOptions: { |
| | | parserOptions: { |
| | | parser: tseslint.parser |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | languageOptions: { |
| | | globals: { |
| | | // èªå¨å¯¼å
¥çé
ç½® undef |
| | | ...autoImportGlobals.globals, |
| | | DialogOption: 'readonly', |
| | | LayoutSetting: 'readonly' |
| | | } |
| | | }, |
| | | plugins: { prettier }, |
| | | rules: { |
| | | '@typescript-eslint/no-empty-function': 'off', |
| | | '@typescript-eslint/no-explicit-any': 'off', |
| | | '@typescript-eslint/no-unused-vars': 'off', |
| | | '@typescript-eslint/no-this-alias': 'off', |
| | | |
| | | // vue |
| | | 'vue/multi-word-component-names': 'off', |
| | | 'vue/valid-define-props': 'off', |
| | | 'vue/no-v-model-argument': 'off', |
| | | 'prefer-rest-params': 'off', |
| | | // prettier |
| | | 'prettier/prettier': 'error', |
| | | // å
许使ç¨ç©ºObjectç±»å {} |
| | | '@typescript-eslint/no-empty-object-type': 'off', |
| | | '@typescript-eslint/no-unused-expressions': 'off' |
| | | } |
| | | } |
| | | ]; |
| | |
| | | { |
| | | "$schema": "https://json.schemastore.org/tsconfig", |
| | | "name": "ruoyi-vue-plus", |
| | | "version": "5.2.3", |
| | | "description": "RuoYi-Vue-Pluså¤ç§æ·ç®¡çç³»ç»", |
| | |
| | | "build:prod": "vite build --mode production", |
| | | "build:dev": "vite build --mode development", |
| | | "preview": "vite preview", |
| | | "lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ", |
| | | "lint:eslint": "eslint", |
| | | "lint:eslint:fix": "eslint --fix", |
| | | "prettier": "prettier --write ." |
| | | }, |
| | | "repository": { |
| | |
| | | "file-saver": "2.0.5", |
| | | "fuse.js": "7.0.0", |
| | | "highlight.js": "11.9.0", |
| | | "image-conversion": "^2.1.1", |
| | | "image-conversion": "2.1.1", |
| | | "js-cookie": "3.0.5", |
| | | "jsencrypt": "3.3.2", |
| | | "nprogress": "0.2.0", |
| | |
| | | "vxe-table": "4.5.22" |
| | | }, |
| | | "devDependencies": { |
| | | "@eslint/js": "9.15.0", |
| | | "@iconify/json": "2.2.276", |
| | | "@intlify/unplugin-vue-i18n": "3.0.1", |
| | | "@types/crypto-js": "4.2.2", |
| | |
| | | "@types/js-cookie": "3.0.6", |
| | | "@types/node": "18.18.2", |
| | | "@types/nprogress": "0.2.3", |
| | | "@typescript-eslint/eslint-plugin": "7.18.0", |
| | | "@typescript-eslint/parser": "7.18.0", |
| | | "@unocss/preset-attributify": "0.64.1", |
| | | "@unocss/preset-icons": "0.64.1", |
| | | "@unocss/preset-uno": "0.64.1", |
| | | "@vitejs/plugin-vue": "5.0.4", |
| | | "@vue/compiler-sfc": "3.4.23", |
| | | "autoprefixer": "10.4.18", |
| | | "eslint": "8.57.0", |
| | | "eslint-config-prettier": "9.1.0", |
| | | "eslint-define-config": "2.1.0", |
| | | "eslint-plugin-import": "2.31.0", |
| | | "eslint-plugin-node": "11.1.0", |
| | | "eslint-plugin-prettier": "5.2.1", |
| | | "eslint-plugin-promise": "7.2.0", |
| | | "eslint": "9.15.0", |
| | | "eslint-plugin-prettier": "^5.2.1", |
| | | "eslint-plugin-vue": "9.31.0", |
| | | "fast-glob": "3.3.2", |
| | | "globals": "15.12.0", |
| | | "postcss": "8.4.36", |
| | | "prettier": "3.2.5", |
| | | "sass": "1.72.0", |
| | | "typescript": "5.7.2", |
| | | "typescript-eslint": "8.16.0", |
| | | "unocss": "0.64.1", |
| | | "unplugin-auto-import": "0.17.5", |
| | | "unplugin-icons": "0.18.5", |
| | |
| | | "vite-plugin-compression": "0.5.1", |
| | | "vite-plugin-svg-icons": "2.0.1", |
| | | "vitest": "1.5.0", |
| | | "vue-eslint-parser": "9.4.2", |
| | | "vue-tsc": "2.0.13" |
| | | } |
| | | } |
| | |
| | | state.isShowSearch = false; |
| | | }; |
| | | // èåæç´¢æ°æ®è¿æ»¤ |
| | | const menuSearch = (queryString: string, cb: Function) => { |
| | | const menuSearch = (queryString: string, cb: (options: any[]) => void) => { |
| | | let options = state.menuList.filter((item) => { |
| | | return item.title.indexOf(queryString) > -1; |
| | | }); |
| | |
| | | router.addRoute(route); // å¨ææ·»å å¯è®¿é®è·¯ç±è¡¨ |
| | | } |
| | | }); |
| | | // @ts-ignore |
| | | // @ts-expect-error hackæ¹æ³ ç¡®ä¿addRoutes已宿 |
| | | next({ path: to.path, replace: true, params: to.params, query: to.query, hash: to.hash, name: to.name as string }); // hackæ¹æ³ ç¡®ä¿addRoutes已宿 |
| | | } |
| | | } else { |
| | |
| | | password: [ |
| | | { required: true, trigger: 'blur', message: '请è¾å
¥æ¨çå¯ç ' }, |
| | | { min: 5, max: 20, message: 'ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´', trigger: 'blur' }, |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\\ |', trigger: 'blur' } |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\ |', trigger: 'blur' } |
| | | ], |
| | | confirmPassword: [ |
| | | { required: true, trigger: 'blur', message: 'è¯·åæ¬¡è¾å
¥æ¨çå¯ç ' }, |
| | |
| | | message: 'ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´', |
| | | trigger: 'blur' |
| | | }, |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\\ |', trigger: 'blur' } |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\ |', trigger: 'blur' } |
| | | ], |
| | | email: [ |
| | | { |
| | |
| | | inputErrorMessage: 'ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´', |
| | | inputValidator: (value) => { |
| | | if (/<|>|"|'|\||\\/.test(value)) { |
| | | return 'ä¸è½å
å«éæ³å符ï¼< > " \' \\\ |'; |
| | | return 'ä¸è½å
å«éæ³å符ï¼< > " \' \\ |'; |
| | | } |
| | | } |
| | | }) |
| | |
| | | message: 'é¿åº¦å¨ 6 å° 20 个å符', |
| | | trigger: 'blur' |
| | | }, |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\\ |', trigger: 'blur' } |
| | | { pattern: /^[^<>"'|\\]+$/, message: 'ä¸è½å
å«éæ³å符ï¼< > " \' \\ |', trigger: 'blur' } |
| | | ], |
| | | confirmPassword: [ |
| | | { required: true, message: '确认å¯ç ä¸è½ä¸ºç©º', trigger: 'blur' }, |
| | |
| | | |
| | | /** æ¥è¯¢åæ°å表 */ |
| | | const show = (dataName: string) => { |
| | | getDataNames().then(res => { |
| | | getDataNames().then((res) => { |
| | | if (res.code == 200) { |
| | | dataNameList.value = res.data; |
| | | if (dataName) { |