修改eslint配置文件
This commit is contained in:
		
							
								
								
									
										174
									
								
								code/web/it-console/.eslintrc.cjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								code/web/it-console/.eslintrc.cjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,174 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-14 09:19:21
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /it-console/.eslintrc.cjs
 | 
			
		||||
 * @Description: eslint 配置文件
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
module.exports = {
 | 
			
		||||
    root: true,
 | 
			
		||||
    env: { //  需要在env中指定运行的环境,这些环境其实就是一组预定义的全局变量,让 ESLint 知道当前环境存在这些全局变量
 | 
			
		||||
        node: true,
 | 
			
		||||
        browser: true,
 | 
			
		||||
        es2021: true,
 | 
			
		||||
    },
 | 
			
		||||
    parser:"espree",
 | 
			
		||||
    parserOptions:{
 | 
			
		||||
        sourceType: "module",
 | 
			
		||||
        ecmaVersion: 2021,
 | 
			
		||||
    },
 | 
			
		||||
    extends:["eslint:recommended",],
 | 
			
		||||
    rules:{
 | 
			
		||||
        indent: ["warn", 4,],
 | 
			
		||||
        "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
        "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
        "no-unused-vars": "warn",
 | 
			
		||||
        semi: ["error", "always",], // 控制行尾部分号
 | 
			
		||||
        quotes: ["error", "double",],
 | 
			
		||||
        "comma-dangle": ["error", {
 | 
			
		||||
            arrays: "always",
 | 
			
		||||
            objects: "always",
 | 
			
		||||
            imports: "never",
 | 
			
		||||
            exports: "never",
 | 
			
		||||
            functions: "never",
 | 
			
		||||
        },], // 数组和对象键值对最后一个逗号
 | 
			
		||||
        "comma-style": ["error", "last",], //  逗号在行位
 | 
			
		||||
        "array-bracket-spacing": ["error", "never",],
 | 
			
		||||
        "no-undef-init": "error",
 | 
			
		||||
        "no-invalid-this": "error",
 | 
			
		||||
        "no-use-before-define": "error",
 | 
			
		||||
        "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
			
		||||
        "comma-spacing": ["error", { before: false, after: true, },],
 | 
			
		||||
        "brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
			
		||||
        "prefer-const": "warn",
 | 
			
		||||
        "space-before-function-paren": ["error", {
 | 
			
		||||
            anonymous: "always",
 | 
			
		||||
            named: "never",
 | 
			
		||||
            asyncArrow: "always",
 | 
			
		||||
        },],
 | 
			
		||||
    },
 | 
			
		||||
    overrides: [
 | 
			
		||||
        {
 | 
			
		||||
            files: ["*.vue",],
 | 
			
		||||
            parser: "vue-eslint-parser",
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 2021,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
                parser: { // <script>标签中的lang属性配置不同的parser
 | 
			
		||||
                    ts: "@typescript-eslint/parser",
 | 
			
		||||
                    js: "espree",
 | 
			
		||||
                    "<template>": "espree",
 | 
			
		||||
                },
 | 
			
		||||
            },
 | 
			
		||||
            plugins: ["eslint-plugin-vue",],
 | 
			
		||||
            extends: [
 | 
			
		||||
                "plugin:vue/vue3-essential",
 | 
			
		||||
                "plugin:vue/recommended",
 | 
			
		||||
                "eslint:recommended",
 | 
			
		||||
                "standard-with-typescript",
 | 
			
		||||
                "plugin:@typescript-eslint/eslint-recommended",
 | 
			
		||||
                "plugin:@typescript-eslint/recommended",
 | 
			
		||||
            ],
 | 
			
		||||
            rules: {
 | 
			
		||||
                indent: ["warn", 4,],
 | 
			
		||||
                // "space-in-parens": ["error", "always", { exceptions: ["empty",], },],
 | 
			
		||||
                "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
                "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
                "no-unused-vars": "warn",
 | 
			
		||||
                semi: ["error", "always",], // 控制行尾部分号
 | 
			
		||||
                quotes: ["error", "double",],
 | 
			
		||||
                "comma-dangle": ["error", {
 | 
			
		||||
                    arrays: "always",
 | 
			
		||||
                    objects: "always",
 | 
			
		||||
                    imports: "never",
 | 
			
		||||
                    exports: "never",
 | 
			
		||||
                    functions: "never",
 | 
			
		||||
                },], // 数组和对象键值对最后一个逗号
 | 
			
		||||
                "comma-style": ["error", "last",], //  逗号在行位
 | 
			
		||||
                "array-bracket-spacing": ["error", "never",],
 | 
			
		||||
                "no-undef-init": "error",
 | 
			
		||||
                "no-invalid-this": "error",
 | 
			
		||||
                "no-use-before-define": "error",
 | 
			
		||||
                "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
			
		||||
                "comma-spacing": ["error", { before: false, after: true, },],
 | 
			
		||||
                "brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
			
		||||
                "prefer-const": "warn",
 | 
			
		||||
                "space-before-function-paren": ["error", {
 | 
			
		||||
                    anonymous: "always",
 | 
			
		||||
                    named: "never",
 | 
			
		||||
                    asyncArrow: "always",
 | 
			
		||||
                },],
 | 
			
		||||
                // vue
 | 
			
		||||
                "vue/html-indent": ["error", 4,],
 | 
			
		||||
                // typescript
 | 
			
		||||
                "@typescript-eslint/indent": ["warn", 4,],
 | 
			
		||||
                "@typescript-eslint/no-extra-semi": "off",
 | 
			
		||||
                "@typescript-eslint/no-inferrable-types": "off",
 | 
			
		||||
                "@typescript-eslint/no-unused-vars": "warn",
 | 
			
		||||
                "@typescript-eslint/ban-ts-comment": "warn",
 | 
			
		||||
                "@typescript-eslint/member-delimiter-style": "off",
 | 
			
		||||
                "@typescript-eslint/semi": ["error", "always",], //  控制行尾部分号
 | 
			
		||||
                "@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
			
		||||
                "@typescript-eslint/comma-dangle": ["error", {
 | 
			
		||||
                    arrays: "always",
 | 
			
		||||
                    objects: "always",
 | 
			
		||||
                    imports: "never",
 | 
			
		||||
                    exports: "never",
 | 
			
		||||
                    functions: "never",
 | 
			
		||||
                },], // 数组和对象键值对最后一个逗号
 | 
			
		||||
                "@typescript-eslint/quotes": ["error", "double",],
 | 
			
		||||
                "@typescript-eslint/space-before-function-paren": "off",
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            files: ["*.ts",],
 | 
			
		||||
            parser: "@typescript-eslint/parser",
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                project: "./tsconfig.json",
 | 
			
		||||
            },
 | 
			
		||||
            plugins: ["@typescript-eslint",],
 | 
			
		||||
            extends: [
 | 
			
		||||
                "standard-with-typescript",
 | 
			
		||||
                "eslint:recommended",
 | 
			
		||||
                "plugin:@typescript-eslint/eslint-recommended",
 | 
			
		||||
                "plugin:@typescript-eslint/recommended",
 | 
			
		||||
            ],
 | 
			
		||||
            rules: {
 | 
			
		||||
                "space-in-parens": ["error", "always", { exceptions: ["empty",], },],
 | 
			
		||||
                "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
                "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
 | 
			
		||||
                "@typescript-eslint/indent": ["error", 4,],
 | 
			
		||||
                "@typescript-eslint/no-extra-semi": "off",
 | 
			
		||||
                "@typescript-eslint/no-inferrable-types": "off",
 | 
			
		||||
                "@typescript-eslint/no-unused-vars": "warn",
 | 
			
		||||
                "@typescript-eslint/ban-ts-comment": "warn",
 | 
			
		||||
                "@typescript-eslint/member-delimiter-style": "off",
 | 
			
		||||
                "@typescript-eslint/semi": ["error", "always",], // 控制行尾部分号
 | 
			
		||||
                "@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
 | 
			
		||||
                "@typescript-eslint/comma-dangle": ["error", {
 | 
			
		||||
                    arrays: "always",
 | 
			
		||||
                    objects: "always",
 | 
			
		||||
                    imports: "never",
 | 
			
		||||
                    exports: "never",
 | 
			
		||||
                    functions: "never",
 | 
			
		||||
                },], // 数组和对象键值对最后一个逗号
 | 
			
		||||
                "@typescript-eslint/quotes": ["error", "double",],
 | 
			
		||||
                "@typescript-eslint/space-before-function-paren": "off",
 | 
			
		||||
                "@typescript-eslint/strict-boolean-expressions": ["error", {
 | 
			
		||||
                    allowString: false,
 | 
			
		||||
                },],
 | 
			
		||||
                "comma-style": ["error", "last",], //  逗号在行位
 | 
			
		||||
                "array-bracket-spacing": ["error", "never",],
 | 
			
		||||
                "no-undef-init": "error",
 | 
			
		||||
                "no-invalid-this": "error",
 | 
			
		||||
                "no-use-before-define": "error",
 | 
			
		||||
                "no-shadow-restricted-names": "error", //  禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
			
		||||
                "prefer-const": "warn",
 | 
			
		||||
                "spaced-comment": "error",
 | 
			
		||||
                "space-before-function-paren": "off",
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    ],
 | 
			
		||||
};
 | 
			
		||||
@@ -1,44 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-12-14 15:12:46
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-14 23:10:53
 | 
			
		||||
 * @FilePath: /IT工具综合平台/.eslintrc.js
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
module.exports = {
 | 
			
		||||
  root: true,
 | 
			
		||||
  env: {
 | 
			
		||||
    node: true,
 | 
			
		||||
  },
 | 
			
		||||
  'extends': [
 | 
			
		||||
    'plugin:vue/vue3-essential',
 | 
			
		||||
    'eslint:recommended',
 | 
			
		||||
  ],
 | 
			
		||||
  parserOptions: {
 | 
			
		||||
    parser: '@babel/eslint-parser',
 | 
			
		||||
  },
 | 
			
		||||
  rules: {
 | 
			
		||||
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
 | 
			
		||||
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
 | 
			
		||||
    "no-unused-vars": "warn",
 | 
			
		||||
    "semi": ["error", "always",],//控制行尾部分号
 | 
			
		||||
    "comma-dangle": ["warn", {
 | 
			
		||||
      "arrays": "always",
 | 
			
		||||
      "objects": "always",
 | 
			
		||||
      "imports": "never",
 | 
			
		||||
      "exports": "never",
 | 
			
		||||
      "functions": "never",
 | 
			
		||||
    },],//数组和对象键值对最后一个逗号
 | 
			
		||||
    "comma-style": ["error", "last",], //逗号在行位
 | 
			
		||||
    "array-bracket-spacing": ["error", "never",],
 | 
			
		||||
    "no-undef-init": "error",
 | 
			
		||||
    "no-invalid-this": "error",
 | 
			
		||||
    "no-use-before-define": "error",
 | 
			
		||||
    "no-shadow-restricted-names": "error", //禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
 | 
			
		||||
    // "comma-spacing": ["error", { "before": false, "after": true, },],
 | 
			
		||||
    "brace-style": ["error", "allman", { "allowSingleLine": true, },],
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
@@ -1,5 +1,14 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-02-23 00:15:23
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /it-console/babel.config.js
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
module.exports = {
 | 
			
		||||
  presets: [
 | 
			
		||||
    '@vue/cli-plugin-babel/preset'
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
    presets: [
 | 
			
		||||
        "@vue/cli-plugin-babel/preset",
 | 
			
		||||
    ],
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								code/web/it-console/env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								code/web/it-console/env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-03 10:07:00
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/env.d.ts
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
interface ImportMetaEnv
 | 
			
		||||
{
 | 
			
		||||
    readonly VITE_APP_TITLE: string;
 | 
			
		||||
    readonly VITE_URL_VALIDATE_ACCOUNT: string;
 | 
			
		||||
    // 更多环境变量...
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface ImportMeta
 | 
			
		||||
{
 | 
			
		||||
    readonly env: ImportMetaEnv;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6856
									
								
								code/web/it-console/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6856
									
								
								code/web/it-console/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -24,7 +24,9 @@
 | 
			
		||||
        "vite": "^4.1.4",
 | 
			
		||||
        "vue": "^3.2.13",
 | 
			
		||||
        "vue-router": "^4.0.3",
 | 
			
		||||
        "vuex": "^4.0.0"
 | 
			
		||||
        "vuex": "^4.0.0",
 | 
			
		||||
        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
			
		||||
        "@typescript-eslint/parser": "^5.54.0"
 | 
			
		||||
    },
 | 
			
		||||
    "devDependencies": {
 | 
			
		||||
        "@babel/core": "^7.12.16",
 | 
			
		||||
@@ -39,8 +41,7 @@
 | 
			
		||||
        "@vue/cli-plugin-vuex": "~5.0.0",
 | 
			
		||||
        "@vue/cli-service": "~5.0.0",
 | 
			
		||||
        "@vue/compiler-sfc": "^3.2.26",
 | 
			
		||||
        "eslint": "^7.32.0",
 | 
			
		||||
        "eslint-plugin-vue": "^8.0.3",
 | 
			
		||||
        "eslint": "^8.35.0",
 | 
			
		||||
        "node-sass": "^8.0.0",
 | 
			
		||||
        "sass-loader": "^13.2.0",
 | 
			
		||||
        "vite": "^2.7.2",
 | 
			
		||||
@@ -48,6 +49,10 @@
 | 
			
		||||
        "vite-plugin-html": "3.2.0",
 | 
			
		||||
        "vue-cli-plugin-element-plus": "~0.0.13",
 | 
			
		||||
        "webpack": "^5.75.0",
 | 
			
		||||
        "webpack-cli": "^5.0.1"
 | 
			
		||||
        "webpack-cli": "^5.0.1",
 | 
			
		||||
        "eslint-config-recommended": "^4.1.0",
 | 
			
		||||
        "eslint-config-standard-with-typescript": "^34.0.0",
 | 
			
		||||
        "eslint-plugin-vue": "^9.9.0",
 | 
			
		||||
        "sass": "^1.58.3"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								code/web/it-console/sfc.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								code/web/it-console/sfc.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-04 17:21:37
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/sfc.d.ts
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								code/web/it-console/shims-vue.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								code/web/it-console/shims-vue.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-04 17:23:02
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/shims-vue.d.ts
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
declare module '*.vue' {
 | 
			
		||||
    import { ComponentOptions } from 'vue';
 | 
			
		||||
    const componentOptions: ComponentOptions;
 | 
			
		||||
    export default componentOptions;
 | 
			
		||||
}
 | 
			
		||||
@@ -2,33 +2,33 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-12-14 15:12:46
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-15 09:34:25
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/App.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:14:06
 | 
			
		||||
 * @FilePath: /it-console/src/App.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-config-provider :locale="this.locale">
 | 
			
		||||
    <router-view></router-view>
 | 
			
		||||
  </el-config-provider>
 | 
			
		||||
    <el-config-provider :locale="locale">
 | 
			
		||||
        <router-view />
 | 
			
		||||
    </el-config-provider>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
//引入语言组件
 | 
			
		||||
// 引入语言组件
 | 
			
		||||
import zhCn from "element-plus/lib/locale/lang/zh-cn";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "App",
 | 
			
		||||
  setup()
 | 
			
		||||
  {
 | 
			
		||||
    const locale = zhCn;
 | 
			
		||||
 | 
			
		||||
    return { locale, };
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    name: "App",
 | 
			
		||||
    components: {
 | 
			
		||||
    // HelloWorld,
 | 
			
		||||
  },
 | 
			
		||||
    },
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const locale = zhCn;
 | 
			
		||||
 | 
			
		||||
        return { locale, };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,24 +4,31 @@
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-06 09:26:48
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/layout/Index.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-container id="layout-container" v-loading="ui.ageVisible" element-loading-text="载入应用数据…">
 | 
			
		||||
    <el-header id="layout-header">
 | 
			
		||||
      <LayoutHeader />
 | 
			
		||||
    </el-header>
 | 
			
		||||
    <el-container id="layout-container-down">
 | 
			
		||||
      <el-aside :width="asideWidth" id="layout-aside">
 | 
			
		||||
        <LayoutAside />
 | 
			
		||||
      </el-aside>
 | 
			
		||||
      <el-main id="layout-main">
 | 
			
		||||
        <LayoutMain />
 | 
			
		||||
      </el-main>
 | 
			
		||||
    <el-container
 | 
			
		||||
        id="layout-container"
 | 
			
		||||
        v-loading="ui.ageVisible"
 | 
			
		||||
        element-loading-text="载入应用数据…"
 | 
			
		||||
    >
 | 
			
		||||
        <el-header id="layout-header">
 | 
			
		||||
            <LayoutHeader />
 | 
			
		||||
        </el-header>
 | 
			
		||||
        <el-container id="layout-container-down">
 | 
			
		||||
            <el-aside
 | 
			
		||||
                id="layout-aside"
 | 
			
		||||
                :width="asideWidth"
 | 
			
		||||
            >
 | 
			
		||||
                <LayoutAside />
 | 
			
		||||
            </el-aside>
 | 
			
		||||
            <el-main id="layout-main">
 | 
			
		||||
                <LayoutMain />
 | 
			
		||||
            </el-main>
 | 
			
		||||
        </el-container>
 | 
			
		||||
    </el-container>
 | 
			
		||||
  </el-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
@@ -33,50 +40,50 @@ import { onMounted, computed, reactive } from "vue";
 | 
			
		||||
// import { query_requirement_status } from "@/utils/api/requirement/requirement.js";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "layoutPage",
 | 
			
		||||
  setup()
 | 
			
		||||
  {
 | 
			
		||||
    const store = useStore();
 | 
			
		||||
 | 
			
		||||
    const ui = reactive(
 | 
			
		||||
      {
 | 
			
		||||
        pageVisible: true,
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    const asideWidth = computed(() =>
 | 
			
		||||
    name: "LayoutPage",
 | 
			
		||||
    components: {
 | 
			
		||||
        LayoutAside,
 | 
			
		||||
        LayoutHeader,
 | 
			
		||||
        LayoutMain,
 | 
			
		||||
    },
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
      const collapse = store.state.app.asideBarCollapse;
 | 
			
		||||
        const store = useStore();
 | 
			
		||||
 | 
			
		||||
      return collapse === true ? "65px" : "180px";
 | 
			
		||||
    });
 | 
			
		||||
        const ui = reactive(
 | 
			
		||||
            {
 | 
			
		||||
                pageVisible: true,
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
    onMounted(() =>
 | 
			
		||||
    {
 | 
			
		||||
      //加载数据
 | 
			
		||||
      // query_requirement_status()
 | 
			
		||||
      //   .then((response) =>
 | 
			
		||||
      //   {
 | 
			
		||||
      //     // debugger;
 | 
			
		||||
      //     const data = response.data;
 | 
			
		||||
      //     console.log(data);
 | 
			
		||||
      //   })
 | 
			
		||||
      //   .catch((error) =>
 | 
			
		||||
      //   {
 | 
			
		||||
      //     // debugger;
 | 
			
		||||
      //     console.log(error);
 | 
			
		||||
      //   });
 | 
			
		||||
    });
 | 
			
		||||
        const asideWidth = computed(() =>
 | 
			
		||||
        {
 | 
			
		||||
            const collapse = store.state.app.asideBarCollapse;
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
      ui,
 | 
			
		||||
      asideWidth,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    LayoutAside,
 | 
			
		||||
    LayoutHeader,
 | 
			
		||||
    LayoutMain,
 | 
			
		||||
  },
 | 
			
		||||
            return collapse === true ? "65px" : "180px";
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        onMounted(() =>
 | 
			
		||||
        {
 | 
			
		||||
            // 加载数据
 | 
			
		||||
            // query_requirement_status()
 | 
			
		||||
            //   .then((response) =>
 | 
			
		||||
            //   {
 | 
			
		||||
            //     // debugger;
 | 
			
		||||
            //     const data = response.data;
 | 
			
		||||
            //     console.log(data);
 | 
			
		||||
            //   })
 | 
			
		||||
            //   .catch((error) =>
 | 
			
		||||
            //   {
 | 
			
		||||
            //     // debugger;
 | 
			
		||||
            //     console.log(error);
 | 
			
		||||
            //   });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            ui,
 | 
			
		||||
            asideWidth,
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@@ -115,4 +122,4 @@ export default {
 | 
			
		||||
  /* flex-grow: 1; */
 | 
			
		||||
  /* overflow: overlay; */
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,39 +2,75 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-01-04 11:30:33
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-06 09:28:16
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/layout/components/Aside.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:18:41
 | 
			
		||||
 * @FilePath: /it-console/src/layout/components/Aside.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.  223142 2f4156
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    <el-scrollbar class="wrapper">
 | 
			
		||||
        <el-menu id="side-bar" router :default-active="currentPath" background-color="#2f4156" text-color="#fff"
 | 
			
		||||
            active-text-color="#ffd04b" :collapse="asideCollapse">
 | 
			
		||||
            <template v-for="route in routes" :key="route.path">
 | 
			
		||||
        <el-menu
 | 
			
		||||
            id="side-bar"
 | 
			
		||||
            router
 | 
			
		||||
            :default-active="currentPath"
 | 
			
		||||
            background-color="#2f4156"
 | 
			
		||||
            text-color="#fff"
 | 
			
		||||
            active-text-color="#ffd04b"
 | 
			
		||||
            :collapse="asideCollapse"
 | 
			
		||||
        >
 | 
			
		||||
            <template
 | 
			
		||||
                v-for="route in routes"
 | 
			
		||||
            >
 | 
			
		||||
                <template v-if="!route.hidden">
 | 
			
		||||
                    <template v-if="hasOnlyChild(route.children)">
 | 
			
		||||
                        <!-- 当只有一个子路由时,直接渲染子路由 -->
 | 
			
		||||
                        <el-menu-item :index="route.children[0].path" class="sidebar-submenu">
 | 
			
		||||
                            <component :is="route.children[0].meta.icon" class="icons">
 | 
			
		||||
                            </component>
 | 
			
		||||
                        <el-menu-item
 | 
			
		||||
                            :key="route.path"
 | 
			
		||||
                            :index="route.children[0].path"
 | 
			
		||||
                            class="sidebar-submenu"
 | 
			
		||||
                        >
 | 
			
		||||
                            <component
 | 
			
		||||
                                :is="route.children[0].meta.icon"
 | 
			
		||||
                                class="icons"
 | 
			
		||||
                            />
 | 
			
		||||
                            <!-- <el-icon v-html="route.children[0].meta && route.children[0].meta.icon"></el-icon> -->
 | 
			
		||||
                            <template #title>{{ route.children[0].meta && route.children[0].meta.title }}</template>
 | 
			
		||||
                            <template #title>
 | 
			
		||||
                                {{ route.children[0].meta && route.children[0].meta.title }}
 | 
			
		||||
                            </template>
 | 
			
		||||
                        </el-menu-item>
 | 
			
		||||
                    </template>
 | 
			
		||||
                    <template v-else>
 | 
			
		||||
                        <!-- 不是一个子路由时,有可能没有子路由,或者是多个子路由 -->
 | 
			
		||||
                        <el-sub-menu v-if="route.children && route.children.length" :index="route.path"
 | 
			
		||||
                            class="sidebar-submenu">
 | 
			
		||||
                        <el-sub-menu
 | 
			
		||||
                            v-if="route.children && route.children.length"
 | 
			
		||||
                            :key="route.path"
 | 
			
		||||
                            :index="route.path"
 | 
			
		||||
                            class="sidebar-submenu"
 | 
			
		||||
                        >
 | 
			
		||||
                            <template #title>
 | 
			
		||||
                                <component :is="route.meta.icon" class="icons"></component>
 | 
			
		||||
                                <component
 | 
			
		||||
                                    :is="route.meta.icon"
 | 
			
		||||
                                    class="icons"
 | 
			
		||||
                                />
 | 
			
		||||
                                <span>{{ route.meta && route.meta.title }}</span>
 | 
			
		||||
                            </template>
 | 
			
		||||
                            <template v-for="child in route.children" :key="child.path">
 | 
			
		||||
                                <el-menu-item v-if="!child.hidden" :index="child.path" class="sidebar-item">
 | 
			
		||||
                                    <component :is="child.meta.icon" class="icons"></component>
 | 
			
		||||
                                    <template #title>{{ child.meta && child.meta.title }}</template>
 | 
			
		||||
                            <template
 | 
			
		||||
                                v-for="child in route.children"
 | 
			
		||||
                            >
 | 
			
		||||
                                <el-menu-item
 | 
			
		||||
                                    v-if="!child.hidden"
 | 
			
		||||
                                    :key="child.path"
 | 
			
		||||
                                    :index="child.path"
 | 
			
		||||
                                    class="sidebar-item"
 | 
			
		||||
                                >
 | 
			
		||||
                                    <component
 | 
			
		||||
                                        :is="child.meta.icon"
 | 
			
		||||
                                        class="icons"
 | 
			
		||||
                                    />
 | 
			
		||||
                                    <template #title>
 | 
			
		||||
                                        {{ child.meta && child.meta.title }}
 | 
			
		||||
                                    </template>
 | 
			
		||||
                                </el-menu-item>
 | 
			
		||||
                            </template>
 | 
			
		||||
                        </el-sub-menu>
 | 
			
		||||
@@ -54,23 +90,23 @@ export default {
 | 
			
		||||
    name: "LayoutAside",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const router = useRouter();//路由
 | 
			
		||||
        const routes = router.getRoutes();//路由数组
 | 
			
		||||
        const router = useRouter();// 路由
 | 
			
		||||
        const routes = router.getRoutes();// 路由数组
 | 
			
		||||
        const store = useStore();
 | 
			
		||||
 | 
			
		||||
        //用于判断一个路由是否只有一项子路由
 | 
			
		||||
        // 用于判断一个路由是否只有一项子路由
 | 
			
		||||
        const hasOnlyChild = (children) =>
 | 
			
		||||
        {
 | 
			
		||||
            //防御验证
 | 
			
		||||
            // 防御验证
 | 
			
		||||
            if (!children)
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //剔除掉hidden的路由
 | 
			
		||||
            // 剔除掉hidden的路由
 | 
			
		||||
            const routes = children.filter((item) =>
 | 
			
		||||
            {
 | 
			
		||||
                return item.hidden ? false : true;
 | 
			
		||||
                return !item.hidden;
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            if (routes.length === 1)
 | 
			
		||||
@@ -81,16 +117,16 @@ export default {
 | 
			
		||||
            return false;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        //计算变量
 | 
			
		||||
        //获取当前的路由
 | 
			
		||||
        // 计算变量
 | 
			
		||||
        // 获取当前的路由
 | 
			
		||||
        const currentPath = computed(() =>
 | 
			
		||||
        {
 | 
			
		||||
            let path = useRoute().path;
 | 
			
		||||
            const path = useRoute().path;
 | 
			
		||||
 | 
			
		||||
            return path;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        //获取导航栏是否折叠的标志
 | 
			
		||||
        // 获取导航栏是否折叠的标志
 | 
			
		||||
        const asideCollapse = computed(() =>
 | 
			
		||||
        {
 | 
			
		||||
            return store.state.app.ui.asideBarCollapse;
 | 
			
		||||
@@ -163,4 +199,4 @@ export default {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    /* min-height: 400px; */
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,54 +4,57 @@
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-04 01:09:49
 | 
			
		||||
 * @FilePath: \IT工具综合平台\src\layout\components\Header.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app_banner no_select">
 | 
			
		||||
    <span class="company_name">CPIC</span>
 | 
			
		||||
    <div class="version_div">
 | 
			
		||||
      <div>测试版</div>
 | 
			
		||||
      <div>3.6.7 x64 Build 202208301257</div>
 | 
			
		||||
    <div class="app_banner no_select">
 | 
			
		||||
        <span class="company_name">CPIC</span>
 | 
			
		||||
        <div class="version_div">
 | 
			
		||||
            <div>测试版</div>
 | 
			
		||||
            <div>3.6.7 x64 Build 202208301257</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="buttons_div">
 | 
			
		||||
            <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
			
		||||
            <SwitchButton
 | 
			
		||||
                style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
 | 
			
		||||
                @click="logout"
 | 
			
		||||
            />
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="buttons_div">
 | 
			
		||||
      <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
			
		||||
      <SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
//import { ElMessage } from "element-plus";
 | 
			
		||||
// import { ElMessage } from "element-plus";
 | 
			
		||||
import { Logout } from "../../utils/api/info/account";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "AppBanner",
 | 
			
		||||
  data()
 | 
			
		||||
  {
 | 
			
		||||
    return {};
 | 
			
		||||
  },
 | 
			
		||||
  // created() {
 | 
			
		||||
  //   console.log("banner请求数据!");
 | 
			
		||||
  // },
 | 
			
		||||
  mounted()
 | 
			
		||||
  {
 | 
			
		||||
    //console.log("banner请求数据!");
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    logout()
 | 
			
		||||
    name: "AppBanner",
 | 
			
		||||
    data()
 | 
			
		||||
    {
 | 
			
		||||
      this.$confirm("是否退出系统?", "请确认", {
 | 
			
		||||
        confirmButtonText: "是",
 | 
			
		||||
        cancelButtonText: "否",
 | 
			
		||||
        type: "warning",
 | 
			
		||||
      }).then(() =>
 | 
			
		||||
      {
 | 
			
		||||
        Logout();
 | 
			
		||||
      });
 | 
			
		||||
        return {};
 | 
			
		||||
    },
 | 
			
		||||
    // created() {
 | 
			
		||||
    //   console.log("banner请求数据!");
 | 
			
		||||
    // },
 | 
			
		||||
    mounted()
 | 
			
		||||
    {
 | 
			
		||||
    // console.log("banner请求数据!");
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        logout()
 | 
			
		||||
        {
 | 
			
		||||
            this.$confirm("是否退出系统?", "请确认", {
 | 
			
		||||
                confirmButtonText: "是",
 | 
			
		||||
                cancelButtonText: "否",
 | 
			
		||||
                type: "warning",
 | 
			
		||||
            }).then(() =>
 | 
			
		||||
            {
 | 
			
		||||
                Logout();
 | 
			
		||||
            });
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
@@ -96,4 +99,4 @@ export default {
 | 
			
		||||
  padding-top: 5px;
 | 
			
		||||
  /* border: 1px solid salmon; */
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,24 +2,27 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-01-04 11:39:04
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-22 18:33:11
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/layout/components/Header.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:19:06
 | 
			
		||||
 * @FilePath: /it-console/src/layout/components/Header.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app_banner no_select">
 | 
			
		||||
    <span class="company_name">CPIC</span>
 | 
			
		||||
    <div class="version_div">
 | 
			
		||||
      <div>测试版</div>
 | 
			
		||||
      <div>3.6.7 x64 Build 202208301257</div>
 | 
			
		||||
    <div class="app_banner no_select">
 | 
			
		||||
        <span class="company_name">CPIC</span>
 | 
			
		||||
        <div class="version_div">
 | 
			
		||||
            <div>测试版</div>
 | 
			
		||||
            <div>3.6.7 x64 Build 202208301257</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="buttons_div">
 | 
			
		||||
            <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
			
		||||
            <SwitchButton
 | 
			
		||||
                style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
 | 
			
		||||
                @click="logout"
 | 
			
		||||
            />
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="buttons_div">
 | 
			
		||||
      <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
			
		||||
      <SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
@@ -27,23 +30,23 @@ import { ElMessageBox } from "element-plus";
 | 
			
		||||
import { Logout } from "../../utils/api/info/account";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "AppBanner",
 | 
			
		||||
  setup()
 | 
			
		||||
  {
 | 
			
		||||
    const logout = () =>
 | 
			
		||||
    name: "AppBanner",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
      ElMessageBox.confirm("是否退出系统?", "请确认", {
 | 
			
		||||
        confirmButtonText: "是",
 | 
			
		||||
        cancelButtonText: "否",
 | 
			
		||||
        type: "warning",
 | 
			
		||||
      }).then(() =>
 | 
			
		||||
      {
 | 
			
		||||
        Logout();
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
        const logout = () =>
 | 
			
		||||
        {
 | 
			
		||||
            ElMessageBox.confirm("是否退出系统?", "请确认", {
 | 
			
		||||
                confirmButtonText: "是",
 | 
			
		||||
                cancelButtonText: "否",
 | 
			
		||||
                type: "warning",
 | 
			
		||||
            }).then(() =>
 | 
			
		||||
            {
 | 
			
		||||
                Logout();
 | 
			
		||||
            });
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    return { logout, };
 | 
			
		||||
  },
 | 
			
		||||
        return { logout, };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
@@ -88,4 +91,4 @@ export default {
 | 
			
		||||
  padding-top: 5px;
 | 
			
		||||
  /* border: 1px solid salmon; */
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,11 +2,11 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-01-04 11:40:03
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-07 10:47:57
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/layout/components/Main.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:19:27
 | 
			
		||||
 * @FilePath: /it-console/src/layout/components/Main.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    <!-- <div class="main-content"> -->
 | 
			
		||||
@@ -33,4 +33,4 @@ export default {
 | 
			
		||||
.view-wrapper {
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,214 +2,214 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-12-14 15:12:46
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-21 13:09:15
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/router/index.js
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:20:10
 | 
			
		||||
 * @FilePath: /it-console/src/router/index.js
 | 
			
		||||
 * @Description: 定义应用路由配置
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
import { createRouter, createWebHashHistory } from 'vue-router';
 | 
			
		||||
import { createRouter, createWebHashHistory } from "vue-router";
 | 
			
		||||
 | 
			
		||||
const routes = [
 | 
			
		||||
  //框架路由
 | 
			
		||||
  {
 | 
			
		||||
    path: "/",
 | 
			
		||||
    name: "Root",
 | 
			
		||||
    redirect: "Login", //默认路由指向登录页面
 | 
			
		||||
    hidden: true,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: "/error-page",
 | 
			
		||||
    name: "ErrorPage",
 | 
			
		||||
    hidden: true,
 | 
			
		||||
    component: () => import("@/views/ErrorPage.vue"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: "/login",
 | 
			
		||||
    name: "Login",
 | 
			
		||||
    component: () => import("../views/account/Login.vue"),
 | 
			
		||||
    hidden: true,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: "/home",
 | 
			
		||||
    name: "Home",
 | 
			
		||||
    hidden: true,
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "控制台",
 | 
			
		||||
    //框架路由
 | 
			
		||||
    {
 | 
			
		||||
        path: "/",
 | 
			
		||||
        name: "Root",
 | 
			
		||||
        redirect: "Login", //默认路由指向登录页面
 | 
			
		||||
        hidden: true,
 | 
			
		||||
    },
 | 
			
		||||
    component: () => import("../layout/Index.vue"),
 | 
			
		||||
  },
 | 
			
		||||
  //侧边导航栏路由
 | 
			
		||||
  { //首页
 | 
			
		||||
    path: "/console",
 | 
			
		||||
    name: "Console",
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "总览",
 | 
			
		||||
      icon: "house",
 | 
			
		||||
    {
 | 
			
		||||
        path: "/error-page",
 | 
			
		||||
        name: "ErrorPage",
 | 
			
		||||
        hidden: true,
 | 
			
		||||
        component: () => import("@/views/ErrorPage.vue"),
 | 
			
		||||
    },
 | 
			
		||||
    component: () => import("../layout/Index.vue"),
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: "/desktop",
 | 
			
		||||
        name: "DeskTop",
 | 
			
		||||
    {
 | 
			
		||||
        path: "/login",
 | 
			
		||||
        name: "Login",
 | 
			
		||||
        component: () => import("../views/account/Login.vue"),
 | 
			
		||||
        hidden: true,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        path: "/home",
 | 
			
		||||
        name: "Home",
 | 
			
		||||
        hidden: true,
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "工作台",
 | 
			
		||||
          icon: "house",
 | 
			
		||||
            title: "控制台",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/overview/Desktop.vue"),
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
        component: () => import("../layout/Index.vue"),
 | 
			
		||||
    },
 | 
			
		||||
    //侧边导航栏路由
 | 
			
		||||
    { //首页
 | 
			
		||||
        path: "/console",
 | 
			
		||||
        name: "Console",
 | 
			
		||||
        meta: {
 | 
			
		||||
            title: "总览",
 | 
			
		||||
            icon: "house",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../layout/Index.vue"),
 | 
			
		||||
        children: [
 | 
			
		||||
            {
 | 
			
		||||
                path: "/desktop",
 | 
			
		||||
                name: "DeskTop",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "工作台",
 | 
			
		||||
                    icon: "house",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/overview/Desktop.vue"),
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
    //需求管理
 | 
			
		||||
    path: "/requirement",
 | 
			
		||||
    name: "Requirement",
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "需求管理",
 | 
			
		||||
      icon: "Document",
 | 
			
		||||
        path: "/requirement",
 | 
			
		||||
        name: "Requirement",
 | 
			
		||||
        meta: {
 | 
			
		||||
            title: "需求管理",
 | 
			
		||||
            icon: "Document",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../layout/Index.vue"),
 | 
			
		||||
        children: [
 | 
			
		||||
            {
 | 
			
		||||
                path: "/requirement-manager",
 | 
			
		||||
                name: "RequirementManager",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "需求管理",
 | 
			
		||||
                    icon: "Document",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/requirement/RequirementManager.vue"),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                path: "/requirement-editing",
 | 
			
		||||
                name: "RequirementEditing",
 | 
			
		||||
                hidden: true,
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "需求管理",
 | 
			
		||||
                    icon: "edit",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/requirement/RequirementEditing.vue"),
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    component: () => import("../layout/Index.vue"),
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: "/requirement-manager",
 | 
			
		||||
        name: "RequirementManager",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "需求管理",
 | 
			
		||||
          icon: "Document",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/requirement/RequirementManager.vue"),
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: "/requirement-editing",
 | 
			
		||||
        name: "RequirementEditing",
 | 
			
		||||
        hidden: true,
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "需求管理",
 | 
			
		||||
          icon: "edit",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/requirement/RequirementEditing.vue"),
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    {
 | 
			
		||||
    //信息查询
 | 
			
		||||
    path: "/query_info",
 | 
			
		||||
    name: "QueryInfo",
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "信息查询",
 | 
			
		||||
      icon: "search",
 | 
			
		||||
        path: "/query_info",
 | 
			
		||||
        name: "QueryInfo",
 | 
			
		||||
        meta: {
 | 
			
		||||
            title: "信息查询",
 | 
			
		||||
            icon: "search",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("@/layout/Index.vue"),
 | 
			
		||||
        children: [
 | 
			
		||||
            {
 | 
			
		||||
                path: "/query_stuff",
 | 
			
		||||
                name: "QueryStuff",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "人员信息",
 | 
			
		||||
                    icon: "user",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("@/views/info/StaffInfo.vue"),
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    component: () => import("@/layout/Index.vue"),
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: "/query_stuff",
 | 
			
		||||
        name: "QueryStuff",
 | 
			
		||||
    {//权限管理
 | 
			
		||||
        path: "/privilege",
 | 
			
		||||
        name: "Privilege",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "人员信息",
 | 
			
		||||
          icon: "user",
 | 
			
		||||
            title: "权限管理",
 | 
			
		||||
            icon: "User",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("@/views/info/StaffInfo.vue"),
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  {//权限管理
 | 
			
		||||
    path: "/privilege",
 | 
			
		||||
    name: "Privilege",
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "权限管理",
 | 
			
		||||
      icon: "User",
 | 
			
		||||
        children: [
 | 
			
		||||
            {
 | 
			
		||||
                path: "/user-manager",
 | 
			
		||||
                name: "UserManager",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "用户管理",
 | 
			
		||||
                    icon: "User",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/privilege/StaffInfo.vue"),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                path: "/privilege-manager",
 | 
			
		||||
                name: "PrivilegeManager",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "权限管理",
 | 
			
		||||
                    icon: "edit",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/privilege/PrivilegeManager.vue"),
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
        component: () => import("../layout/Index.vue"),
 | 
			
		||||
    },
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: "/user-manager",
 | 
			
		||||
        name: "UserManager",
 | 
			
		||||
    {
 | 
			
		||||
        path: "/network",
 | 
			
		||||
        name: "NetworkManager",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "用户管理",
 | 
			
		||||
          icon: "User",
 | 
			
		||||
            title: "网络管理",
 | 
			
		||||
            icon: "switch",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/privilege/StaffInfo.vue"),
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: "/privilege-manager",
 | 
			
		||||
        name: "PrivilegeManager",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "权限管理",
 | 
			
		||||
          icon: "edit",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/privilege/PrivilegeManager.vue"),
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
    component: () => import("../layout/Index.vue"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: "/network",
 | 
			
		||||
    name: "NetworkManager",
 | 
			
		||||
    meta: {
 | 
			
		||||
      title: "网络管理",
 | 
			
		||||
      icon: "switch",
 | 
			
		||||
        component: () => import("../layout/Index.vue"),
 | 
			
		||||
        children: [
 | 
			
		||||
            {
 | 
			
		||||
                path: "/network-point-manager",
 | 
			
		||||
                name: "NetworkPointManager",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "网络点管理",
 | 
			
		||||
                    icon: "Monitor",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/network/NetworkPoint/NetworkPoint.vue"),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                path: "/network-point-edit",
 | 
			
		||||
                name: "NetworkPointEdit",
 | 
			
		||||
                hidden: true,
 | 
			
		||||
                component: () => import("../views/network/NetworkPoint/EditNetworkPoint.vue"),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                path: "/switch-manager",
 | 
			
		||||
                name: "SwitchManager",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title: "交换机管理",
 | 
			
		||||
                    icon: "switch",
 | 
			
		||||
                },
 | 
			
		||||
                component: () => import("../views/network/switch/SwitchManager.vue"),
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    component: () => import("../layout/Index.vue"),
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: "/network-point-manager",
 | 
			
		||||
        name: "NetworkPointManager",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "网络点管理",
 | 
			
		||||
          icon: "Monitor",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/network/NetworkPoint/NetworkPoint.vue"),
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: "/network-point-edit",
 | 
			
		||||
        name: "NetworkPointEdit",
 | 
			
		||||
        hidden: true,
 | 
			
		||||
        component: () => import("../views/network/NetworkPoint/EditNetworkPoint.vue"),
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: "/switch-manager",
 | 
			
		||||
        name: "SwitchManager",
 | 
			
		||||
        meta: {
 | 
			
		||||
          title: "交换机管理",
 | 
			
		||||
          icon: "switch",
 | 
			
		||||
        },
 | 
			
		||||
        component: () => import("../views/network/switch/SwitchManager.vue"),
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const router = createRouter({
 | 
			
		||||
  history: createWebHashHistory(),
 | 
			
		||||
  routes,
 | 
			
		||||
    history: createWebHashHistory(),
 | 
			
		||||
    routes,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
//前置路由守卫
 | 
			
		||||
router.beforeEach((to) =>
 | 
			
		||||
{
 | 
			
		||||
  const token = window.localStorage.getItem("token");
 | 
			
		||||
    const token = window.localStorage.getItem("token");
 | 
			
		||||
 | 
			
		||||
  //先检查token
 | 
			
		||||
  if (!token)
 | 
			
		||||
  {
 | 
			
		||||
    //先检查token
 | 
			
		||||
    if (!token)
 | 
			
		||||
    {
 | 
			
		||||
    //如果token不存在,判断路由是否走向login,如果不是则指向login
 | 
			
		||||
    //走向login则不干预
 | 
			
		||||
    if (to.name !== "Login")
 | 
			
		||||
    {
 | 
			
		||||
      return {
 | 
			
		||||
        name: "Login",
 | 
			
		||||
      };
 | 
			
		||||
        if (to.name !== "Login")
 | 
			
		||||
        {
 | 
			
		||||
            return {
 | 
			
		||||
                name: "Login",
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //修改默认打开的页面,跳向工作台
 | 
			
		||||
  // if (to.name === "Home")
 | 
			
		||||
  // {
 | 
			
		||||
  //   console.log("跳向工作台");
 | 
			
		||||
    //修改默认打开的页面,跳向工作台
 | 
			
		||||
    // if (to.name === "Home")
 | 
			
		||||
    // {
 | 
			
		||||
    //   console.log("跳向工作台");
 | 
			
		||||
 | 
			
		||||
  //   return {
 | 
			
		||||
  //     name: "DeskTop",
 | 
			
		||||
  //   };
 | 
			
		||||
  // }
 | 
			
		||||
    //   return {
 | 
			
		||||
    //     name: "DeskTop",
 | 
			
		||||
    //   };
 | 
			
		||||
    // }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export default router;
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
const state = {
 | 
			
		||||
    status: {},//包含全部需求状态的数组
 | 
			
		||||
    status: {}, //包含全部需求状态的数组
 | 
			
		||||
    status_update_time: new Date(),
 | 
			
		||||
    ui: {
 | 
			
		||||
        selected_status: [], //已选择的需求状态
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
//常量
 | 
			
		||||
const REQUIREMRNT_UI = `requirement_ui`;
 | 
			
		||||
const REQUIREMRNT_UI = "requirement_ui";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 从localStorage中读取 REQUIREMRNT_UI 的值,并转换成对象。
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ import router from "@/router/index";
 | 
			
		||||
 * @param store 保存在vuex中需求相关的对象
 | 
			
		||||
 * @param {string} error_page_name 提示错误页面的路径
 | 
			
		||||
 *****************************************************/
 | 
			
		||||
function query_requirement_ui(requirement_store, error_page_name)
 | 
			
		||||
function queryRequirementUI(requirement_store, error_page_name)
 | 
			
		||||
{
 | 
			
		||||
    //发送请求
 | 
			
		||||
    instance.request(
 | 
			
		||||
@@ -48,4 +48,4 @@ function query_requirement_ui(requirement_store, error_page_name)
 | 
			
		||||
        });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export { query_requirement_ui };
 | 
			
		||||
export { queryRequirementUI };
 | 
			
		||||
@@ -5,52 +5,82 @@
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-07 10:46:48
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/views/account/Login.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div id="login">
 | 
			
		||||
    <div class="form-wrapper">
 | 
			
		||||
      <ul class="menu-tab">
 | 
			
		||||
        <li :class="{ 'current': ui.current_menu === item.type }" @click="onToggleMenu(item.type)"
 | 
			
		||||
          v-for="item in tab_menu" :key="item.type">{{ item.label }}
 | 
			
		||||
        </li>
 | 
			
		||||
      </ul>
 | 
			
		||||
      <!-- <el-form ref="form" :model="form"> -->
 | 
			
		||||
      <el-form ref="form">
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <label class="form-label">用户名</label>
 | 
			
		||||
          <el-input type="text" v-model.lazy.trim="loginForm.username"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <label class="form-label">密码</label>
 | 
			
		||||
          <el-input type="password" v-model.lazy.trim="loginForm.password"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item v-show="ui.current_menu === tab_menu[1].type">
 | 
			
		||||
          <label class="form-label">确认密码</label>
 | 
			
		||||
          <el-input type="password" disabled v-model.lazy.trim="loginForm.confirm_password"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <label class="form-label">验证码</label>
 | 
			
		||||
          <el-row :gutter="10">
 | 
			
		||||
            <el-col :span="14">
 | 
			
		||||
              <el-input type="text" disabled></el-input>
 | 
			
		||||
            </el-col>
 | 
			
		||||
            <el-col :span="10">
 | 
			
		||||
              <el-button type="danger" disabled class="el-button-block" @click="getValidateCode()">获取验证码</el-button>
 | 
			
		||||
            </el-col>
 | 
			
		||||
          </el-row>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <el-button type="primary" class="el-button-block" @click="login" :disabled="ui.submit_btn_disable"
 | 
			
		||||
            :loading="ui.submit_btn_loading">
 | 
			
		||||
            {{ ui.current_menu === "login" ? "登录" : "注册" }}
 | 
			
		||||
          </el-button>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-form>
 | 
			
		||||
    <div id="login">
 | 
			
		||||
        <div class="form-wrapper">
 | 
			
		||||
            <ul class="menu-tab">
 | 
			
		||||
                <li
 | 
			
		||||
                    v-for="item in tabMenu"
 | 
			
		||||
                    :key="item.type"
 | 
			
		||||
                    :class="{ 'current': ui.current_menu === item.type }"
 | 
			
		||||
                    @click="onToggleMenu(item.type)"
 | 
			
		||||
                >
 | 
			
		||||
                    {{ item.label }}
 | 
			
		||||
                </li>
 | 
			
		||||
            </ul>
 | 
			
		||||
            <!-- <el-form ref="form" :model="form"> -->
 | 
			
		||||
            <el-form ref="form">
 | 
			
		||||
                <el-form-item>
 | 
			
		||||
                    <label class="form-label">用户名</label>
 | 
			
		||||
                    <el-input
 | 
			
		||||
                        v-model.lazy.trim="loginForm.username"
 | 
			
		||||
                        type="text"
 | 
			
		||||
                    />
 | 
			
		||||
                </el-form-item>
 | 
			
		||||
                <el-form-item>
 | 
			
		||||
                    <label class="form-label">密码</label>
 | 
			
		||||
                    <el-input
 | 
			
		||||
                        v-model.lazy.trim="loginForm.password"
 | 
			
		||||
                        type="password"
 | 
			
		||||
                    />
 | 
			
		||||
                </el-form-item>
 | 
			
		||||
                <el-form-item v-show="ui.current_menu === tabMenu[1].type">
 | 
			
		||||
                    <label class="form-label">确认密码</label>
 | 
			
		||||
                    <el-input
 | 
			
		||||
                        v-model.lazy.trim="loginForm.confirm_password"
 | 
			
		||||
                        type="password"
 | 
			
		||||
                        disabled
 | 
			
		||||
                    />
 | 
			
		||||
                </el-form-item>
 | 
			
		||||
                <el-form-item>
 | 
			
		||||
                    <label class="form-label">验证码</label>
 | 
			
		||||
                    <el-row :gutter="10">
 | 
			
		||||
                        <el-col :span="14">
 | 
			
		||||
                            <el-input
 | 
			
		||||
                                type="text"
 | 
			
		||||
                                disabled
 | 
			
		||||
                            />
 | 
			
		||||
                        </el-col>
 | 
			
		||||
                        <el-col :span="10">
 | 
			
		||||
                            <el-button
 | 
			
		||||
                                type="danger"
 | 
			
		||||
                                disabled
 | 
			
		||||
                                class="el-button-block"
 | 
			
		||||
                                @click="getValidateCode()"
 | 
			
		||||
                            >
 | 
			
		||||
                                获取验证码
 | 
			
		||||
                            </el-button>
 | 
			
		||||
                        </el-col>
 | 
			
		||||
                    </el-row>
 | 
			
		||||
                </el-form-item>
 | 
			
		||||
                <el-form-item>
 | 
			
		||||
                    <el-button
 | 
			
		||||
                        type="primary"
 | 
			
		||||
                        class="el-button-block"
 | 
			
		||||
                        :disabled="ui.submit_btn_disable"
 | 
			
		||||
                        :loading="ui.submit_btn_loading"
 | 
			
		||||
                        @click="login"
 | 
			
		||||
                    >
 | 
			
		||||
                        {{ ui.current_menu === "login" ? "登录" : "注册" }}
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                </el-form-item>
 | 
			
		||||
            </el-form>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
@@ -60,168 +90,168 @@ import { useRouter } from "vue-router";
 | 
			
		||||
import { Login } from "@/utils/api/info/account";
 | 
			
		||||
import { ElMessage } from "element-plus";
 | 
			
		||||
 | 
			
		||||
//import router from "../../router/index";
 | 
			
		||||
// import router from "../../router/index";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "loginPage",
 | 
			
		||||
  setup()
 | 
			
		||||
  {
 | 
			
		||||
    const store = useStore();
 | 
			
		||||
    const router = useRouter();
 | 
			
		||||
 | 
			
		||||
    const loginForm = reactive({
 | 
			
		||||
      username: "",
 | 
			
		||||
      password: "",
 | 
			
		||||
      confirm_password: "",
 | 
			
		||||
      validateCode: "",
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    const tab_menu = reactive(
 | 
			
		||||
      [
 | 
			
		||||
        { type: "login", label: "登录", },
 | 
			
		||||
        { type: "regiester", label: "注册", },
 | 
			
		||||
      ]);
 | 
			
		||||
 | 
			
		||||
    const ui = reactive(
 | 
			
		||||
      {
 | 
			
		||||
        current_menu: "",
 | 
			
		||||
        staffInfo: null,
 | 
			
		||||
        submit_btn_disable: false,
 | 
			
		||||
        submit_btn_loading: false,
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    const onToggleMenu = (type) =>
 | 
			
		||||
    name: "LoginPage",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
      ui.current_menu = type;
 | 
			
		||||
      console.log(process.env.VUE_APP_API_URL_LOGIN);
 | 
			
		||||
    };
 | 
			
		||||
        const store = useStore();
 | 
			
		||||
        const router = useRouter();
 | 
			
		||||
 | 
			
		||||
    const getValidateCode = () =>
 | 
			
		||||
    {
 | 
			
		||||
      ElMessage({
 | 
			
		||||
        message: "测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字",
 | 
			
		||||
        center: true,
 | 
			
		||||
        type: "error",
 | 
			
		||||
      });
 | 
			
		||||
    };
 | 
			
		||||
        const loginForm = reactive({
 | 
			
		||||
            username: "",
 | 
			
		||||
            password: "",
 | 
			
		||||
            confirm_password: "",
 | 
			
		||||
            validateCode: "",
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    //将获取到的用户信息和token保存到vuex和localStorage
 | 
			
		||||
    const saveUserInfo = (userInfo) =>
 | 
			
		||||
    {
 | 
			
		||||
      console.log("保存用户信息");
 | 
			
		||||
      console.log("保存用户信息", store);
 | 
			
		||||
      //保存到vuex
 | 
			
		||||
      store.commit("app/SET_USERINFO", userInfo);
 | 
			
		||||
        const tabMenu = reactive(
 | 
			
		||||
            [
 | 
			
		||||
                { type: "login", label: "登录", },
 | 
			
		||||
                { type: "regiester", label: "注册", },
 | 
			
		||||
            ]);
 | 
			
		||||
 | 
			
		||||
      //保存到localStorage
 | 
			
		||||
      const token = userInfo.token;
 | 
			
		||||
      const userInfoJson = JSON.stringify(userInfo);
 | 
			
		||||
        const ui = reactive(
 | 
			
		||||
            {
 | 
			
		||||
                current_menu: "",
 | 
			
		||||
                staffInfo: null,
 | 
			
		||||
                submit_btn_disable: false,
 | 
			
		||||
                submit_btn_loading: false,
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
      window.localStorage.setItem("token", token);
 | 
			
		||||
      window.localStorage.setItem("user_info", userInfoJson);
 | 
			
		||||
    };
 | 
			
		||||
        const onToggleMenu = (type) =>
 | 
			
		||||
        {
 | 
			
		||||
            ui.current_menu = type;
 | 
			
		||||
            console.log(process.env.VUE_APP_API_URL_LOGIN);
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
        const getValidateCode = () =>
 | 
			
		||||
        {
 | 
			
		||||
            ElMessage({
 | 
			
		||||
                message: "测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字",
 | 
			
		||||
                center: true,
 | 
			
		||||
                type: "error",
 | 
			
		||||
            });
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // 将获取到的用户信息和token保存到vuex和localStorage
 | 
			
		||||
        const saveUserInfo = (userInfo) =>
 | 
			
		||||
        {
 | 
			
		||||
            console.log("保存用户信息");
 | 
			
		||||
            console.log("保存用户信息", store);
 | 
			
		||||
            // 保存到vuex
 | 
			
		||||
            store.commit("app/SET_USERINFO", userInfo);
 | 
			
		||||
 | 
			
		||||
            // 保存到localStorage
 | 
			
		||||
            const token = userInfo.token;
 | 
			
		||||
            const userInfoJson = JSON.stringify(userInfo);
 | 
			
		||||
 | 
			
		||||
            window.localStorage.setItem("token", token);
 | 
			
		||||
            window.localStorage.setItem("user_info", userInfoJson);
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
     * 登录
 | 
			
		||||
     */
 | 
			
		||||
    const login = () =>
 | 
			
		||||
    {
 | 
			
		||||
      if (loginForm.username.length === 0 || loginForm.password === 0)
 | 
			
		||||
      {
 | 
			
		||||
        ElMessage({
 | 
			
		||||
          message: "请填写您的P13账号和密码!",
 | 
			
		||||
          type: "error",
 | 
			
		||||
        const login = () =>
 | 
			
		||||
        {
 | 
			
		||||
            if (loginForm.username.length === 0 || loginForm.password === 0)
 | 
			
		||||
            {
 | 
			
		||||
                ElMessage({
 | 
			
		||||
                    message: "请填写您的P13账号和密码!",
 | 
			
		||||
                    type: "error",
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            ui.submit_btn_disable = true;
 | 
			
		||||
            ui.submit_btn_loading = true;
 | 
			
		||||
 | 
			
		||||
            const userInfo = {
 | 
			
		||||
                p13account: loginForm.username,
 | 
			
		||||
                password: loginForm.password,
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            Login(userInfo)
 | 
			
		||||
                .then((response) =>
 | 
			
		||||
                {
 | 
			
		||||
                    // 成功获取到返回值时的响应函数,要判断返回值的成功标志
 | 
			
		||||
                    // 验证成功,将获取到的token和用户信息保存到vuex和localStoreage
 | 
			
		||||
                    // 然后router.push,进行路由跳转到控制台
 | 
			
		||||
                    const data = response.data;
 | 
			
		||||
 | 
			
		||||
                    // 判断是否成功,显示提示信息
 | 
			
		||||
                    if (data.success === true)
 | 
			
		||||
                    {
 | 
			
		||||
                        ElMessage({
 | 
			
		||||
                            message: data.message,
 | 
			
		||||
                            type: "success",
 | 
			
		||||
                            center: true,
 | 
			
		||||
                        });
 | 
			
		||||
 | 
			
		||||
                        ui.staffInfo = data.staffInfo;
 | 
			
		||||
 | 
			
		||||
                        // 保存用户信息和token
 | 
			
		||||
                        saveUserInfo(data);
 | 
			
		||||
 | 
			
		||||
                        // 验证成功,跳转路由
 | 
			
		||||
                        router.push("/Desktop");
 | 
			
		||||
                    }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        // 验证失败
 | 
			
		||||
                        ElMessage({
 | 
			
		||||
                            message: data.message,
 | 
			
		||||
                            type: "error",
 | 
			
		||||
                            center: true,
 | 
			
		||||
                        });
 | 
			
		||||
 | 
			
		||||
                        ui.submit_btn_disable = false;
 | 
			
		||||
                        ui.submit_btn_loading = false;
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
                .catch((error) =>
 | 
			
		||||
                {
 | 
			
		||||
                    // 没有获取到响应数据
 | 
			
		||||
                    console.log(error);
 | 
			
		||||
 | 
			
		||||
                    ElMessage({
 | 
			
		||||
                        message: error.message,
 | 
			
		||||
                        type: "error",
 | 
			
		||||
                        center: true,
 | 
			
		||||
                    });
 | 
			
		||||
 | 
			
		||||
                    ui.submit_btn_disable = false;
 | 
			
		||||
                    ui.submit_btn_loading = false;
 | 
			
		||||
                });
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        onBeforeMount(() =>
 | 
			
		||||
        {
 | 
			
		||||
            // 初始化菜单选项
 | 
			
		||||
            ui.current_menu = tabMenu[0].type;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ui.submit_btn_disable = true;
 | 
			
		||||
      ui.submit_btn_loading = true;
 | 
			
		||||
 | 
			
		||||
      const userInfo = {
 | 
			
		||||
        p13account: loginForm.username,
 | 
			
		||||
        password: loginForm.password,
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      Login(userInfo)
 | 
			
		||||
        .then((response) =>
 | 
			
		||||
        onMounted(() =>
 | 
			
		||||
        {
 | 
			
		||||
          //成功获取到返回值时的响应函数,要判断返回值的成功标志
 | 
			
		||||
          //验证成功,将获取到的token和用户信息保存到vuex和localStoreage
 | 
			
		||||
          //然后router.push,进行路由跳转到控制台
 | 
			
		||||
          const data = response.data;
 | 
			
		||||
 | 
			
		||||
          //判断是否成功,显示提示信息
 | 
			
		||||
          if (data.success === true)
 | 
			
		||||
          {
 | 
			
		||||
            ElMessage({
 | 
			
		||||
              message: data.message,
 | 
			
		||||
              type: "success",
 | 
			
		||||
              center: true,
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            ui.staffInfo = data.staffInfo;
 | 
			
		||||
 | 
			
		||||
            //保存用户信息和token
 | 
			
		||||
            saveUserInfo(data);
 | 
			
		||||
 | 
			
		||||
            //验证成功,跳转路由
 | 
			
		||||
            router.push("/Desktop");
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
          {
 | 
			
		||||
            //验证失败
 | 
			
		||||
            ElMessage({
 | 
			
		||||
              message: data.message,
 | 
			
		||||
              type: "error",
 | 
			
		||||
              center: true,
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            ui.submit_btn_disable = false;
 | 
			
		||||
            ui.submit_btn_loading = false;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((error) =>
 | 
			
		||||
        {
 | 
			
		||||
          //没有获取到响应数据
 | 
			
		||||
          console.log(error);
 | 
			
		||||
 | 
			
		||||
          ElMessage({
 | 
			
		||||
            message: error.message,
 | 
			
		||||
            type: "error",
 | 
			
		||||
            center: true,
 | 
			
		||||
          });
 | 
			
		||||
 | 
			
		||||
          ui.submit_btn_disable = false;
 | 
			
		||||
          ui.submit_btn_loading = false;
 | 
			
		||||
            // 清理状态
 | 
			
		||||
            store.state.app.userInfo = null;
 | 
			
		||||
        });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    onBeforeMount(() =>
 | 
			
		||||
    {
 | 
			
		||||
      //初始化菜单选项
 | 
			
		||||
      ui.current_menu = tab_menu[0].type;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    onMounted(() =>
 | 
			
		||||
    {
 | 
			
		||||
      //清理状态
 | 
			
		||||
      store.state.app.userInfo = null;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
      //数据
 | 
			
		||||
      ui,
 | 
			
		||||
      loginForm,
 | 
			
		||||
      tab_menu,
 | 
			
		||||
      //方法
 | 
			
		||||
      onToggleMenu,
 | 
			
		||||
      saveUserInfo,
 | 
			
		||||
      login,
 | 
			
		||||
      getValidateCode,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
        return {
 | 
			
		||||
            // 数据
 | 
			
		||||
            ui,
 | 
			
		||||
            loginForm,
 | 
			
		||||
            tabMenu,
 | 
			
		||||
            // 方法
 | 
			
		||||
            onToggleMenu,
 | 
			
		||||
            saveUserInfo,
 | 
			
		||||
            login,
 | 
			
		||||
            getValidateCode,
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@@ -292,4 +322,4 @@ export default {
 | 
			
		||||
.el-button-block {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,21 @@
 | 
			
		||||
<!--
 | 
			
		||||
 *           佛曰:  
 | 
			
		||||
 *                   写字楼里写字间,写字间里程序员;  
 | 
			
		||||
 *                   程序人员写程序,又拿程序换酒钱。  
 | 
			
		||||
 *                   酒醒只在网上坐,酒醉还来网下眠;  
 | 
			
		||||
 *                   酒醉酒醒日复日,网上网下年复年。  
 | 
			
		||||
 *                   但愿老死电脑间,不愿鞠躬老板前;  
 | 
			
		||||
 *                   奔驰宝马贵者趣,公交自行程序员。  
 | 
			
		||||
 *                   别人笑我忒疯癫,我笑自己命太贱;  
 | 
			
		||||
 *                   不见满街漂亮妹,哪个归得程序员? 
 | 
			
		||||
 *           佛曰:
 | 
			
		||||
 *                   写字楼里写字间,写字间里程序员;
 | 
			
		||||
 *                   程序人员写程序,又拿程序换酒钱。
 | 
			
		||||
 *                   酒醒只在网上坐,酒醉还来网下眠;
 | 
			
		||||
 *                   酒醉酒醒日复日,网上网下年复年。
 | 
			
		||||
 *                   但愿老死电脑间,不愿鞠躬老板前;
 | 
			
		||||
 *                   奔驰宝马贵者趣,公交自行程序员。
 | 
			
		||||
 *                   别人笑我忒疯癫,我笑自己命太贱;
 | 
			
		||||
 *                   不见满街漂亮妹,哪个归得程序员?
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-02-21 11:03:15
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-24 11:09:40
 | 
			
		||||
 * @LastEditTime: 2023-03-21 23:22:57
 | 
			
		||||
 * @FilePath: /it-console/src/views/info/StaffInfo.vue
 | 
			
		||||
 * @Description:<
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="view_wrapper">
 | 
			
		||||
@@ -25,19 +25,19 @@
 | 
			
		||||
                    <span>姓名</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="4">
 | 
			
		||||
                    <el-input v-model.trim.lazy="query_param.stuffName"></el-input>
 | 
			
		||||
                    <el-input v-model.trim.lazy="queryParam.stuffName" />
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="2">
 | 
			
		||||
                    <span>工号</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="4">
 | 
			
		||||
                    <el-input v-model.trim.lazy="query_param.stuffCode"></el-input>
 | 
			
		||||
                    <el-input v-model.trim.lazy="queryParam.stuffCode" />
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="2">
 | 
			
		||||
                    <span>P13账号</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="4">
 | 
			
		||||
                    <el-input v-model.trim.lazy="query_param.p13UID"></el-input>
 | 
			
		||||
                    <el-input v-model.trim.lazy="queryParam.p13UID" />
 | 
			
		||||
                </el-col>
 | 
			
		||||
            </el-row>
 | 
			
		||||
            <el-row :gutter="10">
 | 
			
		||||
@@ -45,18 +45,25 @@
 | 
			
		||||
                    <span>部门</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="4">
 | 
			
		||||
                    <el-input v-model.trim.lazy="query_param.departmentName"></el-input>
 | 
			
		||||
                    <el-input v-model.trim.lazy="queryParam.departmentName" />
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="2">
 | 
			
		||||
                    <span>部门代码</span>
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="4">
 | 
			
		||||
                    <el-input v-model.trim.lazy="query_param.departmentCode"></el-input>
 | 
			
		||||
                    <el-input v-model.trim.lazy="queryParam.departmentCode" />
 | 
			
		||||
                </el-col>
 | 
			
		||||
                <el-col :span="6">
 | 
			
		||||
                    <div class="toolbutton-wrapper">
 | 
			
		||||
                        <el-button type="primary" icon="search">查询</el-button>
 | 
			
		||||
                        <el-button icon="Refresh">重置</el-button>
 | 
			
		||||
                        <el-button
 | 
			
		||||
                            type="primary"
 | 
			
		||||
                            icon="search"
 | 
			
		||||
                        >
 | 
			
		||||
                            查询
 | 
			
		||||
                        </el-button>
 | 
			
		||||
                        <el-button icon="Refresh">
 | 
			
		||||
                            重置
 | 
			
		||||
                        </el-button>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
            </el-row>
 | 
			
		||||
@@ -71,7 +78,7 @@ export default {
 | 
			
		||||
    name: "StuffInfo",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const query_param = reactive(
 | 
			
		||||
        const queryParam = reactive(
 | 
			
		||||
            {
 | 
			
		||||
                stuffName: "",
 | 
			
		||||
                stuffCode: "",
 | 
			
		||||
@@ -82,7 +89,7 @@ export default {
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            query_param,
 | 
			
		||||
            queryParam,
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
@@ -114,4 +121,4 @@ export default {
 | 
			
		||||
    justify-content: right;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,25 +4,25 @@
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-02-06 08:32:09
 | 
			
		||||
 * @FilePath: /IT工具综合平台/src/views/requirement/RequirementEditing.vue
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    需求编辑页面
 | 
			
		||||
    <div>需求编辑页面</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { onBeforeMount, onBeforeUpdate } from 'vue';
 | 
			
		||||
import { useRoute } from 'vue-router';
 | 
			
		||||
import { onBeforeMount, onBeforeUpdate } from "vue";
 | 
			
		||||
import { useRoute } from "vue-router";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    name: "requirement-editing",
 | 
			
		||||
    name: "RequirementEditing",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const route = useRoute();
 | 
			
		||||
 | 
			
		||||
        //生命周期
 | 
			
		||||
        // 生命周期
 | 
			
		||||
        onBeforeMount(() =>
 | 
			
		||||
        {
 | 
			
		||||
            console.log("接收的参数:", route.query);
 | 
			
		||||
@@ -40,4 +40,4 @@ export default {
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										47
									
								
								code/web/it-console/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								code/web/it-console/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-01 23:38:12
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/tsconfig.json
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
{
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "forceConsistentCasingInFileNames": true,
 | 
			
		||||
        "useDefineForClassFields": true,
 | 
			
		||||
        "target": "ESNext",
 | 
			
		||||
        "module": "CommonJS",
 | 
			
		||||
        "moduleResolution": "node",
 | 
			
		||||
        "strict": true,
 | 
			
		||||
        "jsx": "preserve",
 | 
			
		||||
        "sourceMap": true,
 | 
			
		||||
        "resolveJsonModule": true,
 | 
			
		||||
        "esModuleInterop": false,
 | 
			
		||||
        "baseUrl": "./", // paths 路径解析起点
 | 
			
		||||
        "paths": { // 别名路径设置
 | 
			
		||||
            "@/*": [
 | 
			
		||||
                "src/*"
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
        "lib": [
 | 
			
		||||
            "ESNext",
 | 
			
		||||
            "DOM"
 | 
			
		||||
        ],
 | 
			
		||||
        "types": [
 | 
			
		||||
            "vite/client"
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "include": [
 | 
			
		||||
        "src/**/*.ts",
 | 
			
		||||
        "src/**/*.tsx",
 | 
			
		||||
        "src/**/*.vue",
 | 
			
		||||
        "*.d.ts",
 | 
			
		||||
        "src/router/index.js",
 | 
			
		||||
        "src/router/index.js",
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": [
 | 
			
		||||
        "./node_modules",
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user