@dayan_hjm 2 年 前
コミット
544728050a
共有100 個のファイルを変更した11375 個の追加0 個の削除を含む
  1. 14 0
      .babelrc.json
  2. 36 0
      .editorconfig
  3. 5 0
      .eslintignore
  4. 57 0
      .eslintrc.json
  5. 34 0
      .gitignore
  6. 10 0
      .prettierignore
  7. 4 0
      .prettierrc.json
  8. 59 0
      ReadMe.md
  9. 122 0
      config/webpack.common.js
  10. 157 0
      config/webpack.dev.js
  11. 23 0
      config/webpack.dll.conf.js
  12. 149 0
      config/webpack.prod.js
  13. 24 0
      mock/index.js
  14. 38 0
      mock/test.js
  15. 40 0
      mock/warn.js
  16. 122 0
      package.json
  17. 5 0
      postcss.config.js
  18. BIN
      public/404.png
  19. 1 0
      public/baseUrlConfig.js
  20. BIN
      public/bg_home.png
  21. BIN
      public/bi_img_nodata.png
  22. 4 0
      public/defineComponent.json
  23. BIN
      public/dict_img_nodata.png
  24. BIN
      public/favicon.ico
  25. BIN
      public/favicon2.ico
  26. BIN
      public/img_index_banner@2x.png
  27. BIN
      public/img_meineirong.png
  28. BIN
      public/img_zhutu_login.png
  29. 182 0
      public/index.html
  30. BIN
      public/test_bg.png
  31. 74 0
      public/transfer.html
  32. 53 0
      src/App/index.jsx
  33. 1298 0
      src/App/index.less
  34. 103 0
      src/apis/client.js
  35. 133 0
      src/apis/clush.js
  36. 38 0
      src/apis/common.js
  37. 112 0
      src/apis/dict.js
  38. 38 0
      src/apis/dymSql.js
  39. 65 0
      src/apis/enter.js
  40. 116 0
      src/apis/kbs.js
  41. 26 0
      src/apis/label.js
  42. 83 0
      src/apis/login.js
  43. 11 0
      src/apis/menu.js
  44. 105 0
      src/apis/operation.js
  45. 19 0
      src/apis/outer.js
  46. 144 0
      src/apis/personal.js
  47. 53 0
      src/apis/portray.js
  48. 92 0
      src/apis/sass.js
  49. 41 0
      src/apis/sheet.js
  50. 824 0
      src/apis/system.js
  51. 13 0
      src/apis/test.js
  52. 228 0
      src/apis/work.js
  53. 5 0
      src/assets/css/common.css
  54. 534 0
      src/assets/css/iconfont.css
  55. 746 0
      src/assets/css/styleTemplate.less
  56. BIN
      src/assets/fonts/DIN-Black.otf
  57. BIN
      src/assets/fonts/PingFangSCRegular.ttf
  58. 539 0
      src/assets/iconfont/demo.css
  59. 3178 0
      src/assets/iconfont/demo_index.html
  60. 535 0
      src/assets/iconfont/iconfont.css
  61. 1 0
      src/assets/iconfont/iconfont.js
  62. 919 0
      src/assets/iconfont/iconfont.json
  63. BIN
      src/assets/iconfont/iconfont.ttf
  64. BIN
      src/assets/iconfont/iconfont.woff
  65. BIN
      src/assets/iconfont/iconfont.woff2
  66. BIN
      src/assets/images/female.png
  67. BIN
      src/assets/images/icon-client.png
  68. BIN
      src/assets/images/img_bg_1366_03@3x.png
  69. 137 0
      src/assets/images/img_user_defaut.svg
  70. BIN
      src/assets/images/male.png
  71. BIN
      src/assets/images/nian.png
  72. BIN
      src/assets/images/purple.png
  73. BIN
      src/assets/images/ri.png
  74. 1 0
      src/assets/images/singlePortray/icon_bieshu.svg
  75. 1 0
      src/assets/images/singlePortray/icon_bieshu_active.svg
  76. 1 0
      src/assets/images/singlePortray/icon_changzu.svg
  77. 1 0
      src/assets/images/singlePortray/icon_changzu_active.svg
  78. 1 0
      src/assets/images/singlePortray/icon_chewei.svg
  79. 1 0
      src/assets/images/singlePortray/icon_chewei_active.svg
  80. 1 0
      src/assets/images/singlePortray/icon_dianpu.svg
  81. 1 0
      src/assets/images/singlePortray/icon_dianpu_active.svg
  82. 1 0
      src/assets/images/singlePortray/icon_dichan.svg
  83. 1 0
      src/assets/images/singlePortray/icon_dichan_active.svg
  84. 1 0
      src/assets/images/singlePortray/icon_gaojiazhi.svg
  85. 1 0
      src/assets/images/singlePortray/icon_gaojiazhi_active.svg
  86. 1 0
      src/assets/images/singlePortray/icon_gongjian.svg
  87. 1 0
      src/assets/images/singlePortray/icon_gongjian_active.svg
  88. 1 0
      src/assets/images/singlePortray/icon_gongyu.svg
  89. 1 0
      src/assets/images/singlePortray/icon_gongyu_active.svg
  90. 1 0
      src/assets/images/singlePortray/icon_qianfei.svg
  91. 1 0
      src/assets/images/singlePortray/icon_qianfei_active.svg
  92. 1 0
      src/assets/images/singlePortray/icon_wuye.svg
  93. 1 0
      src/assets/images/singlePortray/icon_wuye_active.svg
  94. 1 0
      src/assets/images/singlePortray/icon_xiezilou.svg
  95. 1 0
      src/assets/images/singlePortray/icon_xiezilou_active.svg
  96. 1 0
      src/assets/images/singlePortray/icon_yanglao.svg
  97. 1 0
      src/assets/images/singlePortray/icon_yanglao_active.svg
  98. 1 0
      src/assets/images/singlePortray/icon_zhuzai.svg
  99. 1 0
      src/assets/images/singlePortray/icon_zhuzai_active.svg
  100. 0 0
      src/assets/images/yue.png

+ 14 - 0
.babelrc.json

@@ -0,0 +1,14 @@
1
+{
2
+  "presets": [
3
+    "@babel/preset-react"
4
+  ],
5
+  "plugins": [
6
+    "@babel/plugin-syntax-dynamic-import",
7
+    [
8
+      "@babel/plugin-proposal-decorators",
9
+      {
10
+        "legacy": true
11
+      }
12
+    ]
13
+  ]
14
+}

+ 36 - 0
.editorconfig

@@ -0,0 +1,36 @@
1
+# EditorConfig is awesome: https://EditorConfig.org
2
+
3
+# top-most EditorConfig file
4
+root = true
5
+
6
+# Unix-style newlines with a newline ending every file
7
+[*]
8
+end_of_line = lf
9
+insert_final_newline = true
10
+indent_size = 2
11
+
12
+# Matches multiple files with brace expansion notation
13
+# Set default charset
14
+[*.{js,py}]
15
+charset = utf-8
16
+indent_style = space
17
+indent_size = 2
18
+
19
+# 4 space indentation
20
+[*.py]
21
+indent_style = space
22
+indent_size = 2
23
+
24
+# Tab indentation (no size specified)
25
+[Makefile]
26
+indent_style = tab
27
+
28
+# Indentation override for all JS under lib directory
29
+[lib/**.js]
30
+indent_style = space
31
+indent_size = 2
32
+
33
+# Matches the exact files either package.json or .travis.yml
34
+[{package.json,.travis.yml}]
35
+indent_style = space
36
+indent_size = 2

+ 5 - 0
.eslintignore

@@ -0,0 +1,5 @@
1
+node_modules/
2
+.*
3
+.*/
4
+package.json
5
+package-lock.json

+ 57 - 0
.eslintrc.json

@@ -0,0 +1,57 @@
1
+{
2
+  "env": {
3
+    "browser": true,
4
+    "es2021": true
5
+  },
6
+  "extends": [
7
+    "eslint:recommended",
8
+    "plugin:react/recommended",
9
+    "plugin:@typescript-eslint/recommended",
10
+    "prettier"
11
+  ],
12
+  "parser": "@typescript-eslint/parser",
13
+  "parserOptions": {
14
+    "ecmaFeatures": {
15
+      "jsx": true
16
+    },
17
+    "ecmaVersion": 12,
18
+    "sourceType": "module"
19
+  },
20
+  "plugins": ["react", "@typescript-eslint"],
21
+
22
+  "rules": /* 校验规则 */ {
23
+    "semi": /* 结尾分号 */ ["error", "always"], // [错误级别: off|0 关闭;warn|1 警告(不退出);error|2 错误(退出);]
24
+    // "quotes": /* 引号方式 */ ["error", "double"],
25
+    "curly": [1, "all"],
26
+    "no-eval": [2],
27
+    "eqeqeq": [2, "always"],
28
+    "react/prop-types": 0, //防止在react组件定义中缺少props验证
29
+    "no-unused-expressions": [1, { "allowTernary": true }],
30
+    "jsx-quotes": [2, "prefer-double"],
31
+    // "indent": [2, 2,{"SwitchCase":1}],
32
+    "indent": [2, 2, { "ignoredNodes": ["ConditionalExpression"],"SwitchCase":1 }],
33
+    "block-spacing": [2, "always"],
34
+    "keyword-spacing": /* 关键字前后空格 */ [
35
+      2,
36
+      { "before": true, "after": true }
37
+    ],
38
+    "space-infix-ops": /* 操作符前后空格 */ "error",
39
+    "@typescript-eslint/explicit-module-boundary-types": "off",
40
+    "@typescript-eslint/no-var-requires": 0,
41
+    "react/display-name": 0
42
+  },
43
+  "settings": {
44
+    "react": {
45
+      "createClass": "createReactClass",
46
+      "pragma": "React",
47
+      "fragment": "Fragment",
48
+      "version": "detect",
49
+      "flowVersion": "0.53"
50
+    }
51
+  },
52
+  "globals": {
53
+    "process": true,
54
+    "module": true,
55
+    "require": true
56
+  }
57
+}

+ 34 - 0
.gitignore

@@ -0,0 +1,34 @@
1
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+# dependencies
4
+/node_modules
5
+/.pnp
6
+.pnp.js
7
+
8
+# testing
9
+/coverage
10
+
11
+# production
12
+/build
13
+/dist
14
+dist.*
15
+build.*
16
+package-lock.json
17
+*.zip
18
+
19
+# misc
20
+.DS_Store
21
+.env.local
22
+.env.development.local
23
+.env.test.local
24
+.env.production.local
25
+
26
+npm-debug.log*
27
+yarn-debug.log*
28
+yarn-error.log*
29
+
30
+# others
31
+.vscode
32
+.eslintcache
33
+.git
34
+.idea

+ 10 - 0
.prettierignore

@@ -0,0 +1,10 @@
1
+# Ignore artifacts:
2
+build
3
+coverage
4
+node_modules
5
+public
6
+*.html
7
+config
8
+mock
9
+.husky
10
+.vscode

+ 4 - 0
.prettierrc.json

@@ -0,0 +1,4 @@
1
+{
2
+  "tabWidth": 2,
3
+  "overrides": []
4
+}

+ 59 - 0
ReadMe.md

@@ -0,0 +1,59 @@
1
+2023/5/19:
2
+1.项目开发前需要提前安装node.js 和yarn
3
+
4
+# 新一代前端框架
5
+
6
+基于 webpack4 + ES6 + react17 + react-router-dom5 + antd + mobx
7
+
8
+## 使用方法:
9
+
10
+    安装模块:yarn install
11
+    开发模式:npm run dev
12
+    打包命令:npm run yunxi-dev (生产环境)
13
+
14
+## 项目构建结构
15
+
16
+1、package.json 项目配置文件
17
+2、webpack.common.js 打包构建基础配置文件
18
+3、webpack.dev.js 开发模式项目配置文件
19
+4、webpack.prod.js 生产模式项目配置文件
20
+5、webpack.dll.conf.js 单独打包第三方库
21
+
22
+## 代码文件
23
+
24
+config 项目配置文件夹
25
+public 项目大型图片和入口 index 文件夹
26
+src/APP 项目入口文件,配置全局 css 与入口 index
27
+src/asset 项目静态文件夹
28
+src/components 项目组件文件夹(此项目特有组件)
29
+src/pages 项目开发业务代码夹
30
+src/router 项目路由配置
31
+src/store 项目 mobx store
32
+src/themes 项目主题文件夹
33
+src/utils 项目工具类文件夹
34
+src/widget 项目封装的组件(可复用的组件)
35
+src/index.js 项目打包入口文件
36
+
37
+## 页面结构
38
+
39
+一个页面由三个文件结构组成:
40
+style.less 样式文件
41
+api.js 接口文件
42
+view.jsx 页面文件
43
+
44
+## 菜单路由配置
45
+
46
+src\router\router.js 配置菜单路由
47
+src\pages\indexed\component\top 顶部导航栏配置
48
+
49
+## 仓库分支
50
+
51
+master 生产环境分支
52
+feature/... 其他分支为开发分支
53
+
54
+## 项目打包
55
+非集群环境
56
+  测试:npm run yunxi-test(如报错则按顺序执行 1.npm run build-dll 2.npm run build-test)
57
+  生产:npm run yunxi-dev
58
+集群环境
59
+  npm run yunxi-dev-new

+ 122 - 0
config/webpack.common.js

@@ -0,0 +1,122 @@
1
+/* eslint-disable @typescript-eslint/no-var-requires */
2
+/* eslint-disable no-undef */
3
+/* 动态打包(dynamically bundle)
4
+所有依赖项(创建所谓的依赖图(dependency graph)) */
5
+const path = require("path");
6
+const ProgressBarPlugin = require('progress-bar-webpack-plugin');
7
+const HtmlWebpackPlugin = require("html-webpack-plugin");
8
+const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
9
+
10
+
11
+const plugins = [
12
+  //编译进度条
13
+  new ProgressBarPlugin(),
14
+  new MonacoWebpackPlugin({
15
+    'vs/nls': { availableLanguages: { '*': 'zh-cn' } },
16
+    languages: ['sql', 'javascript']
17
+  }),
18
+  new HtmlWebpackPlugin({
19
+    title: "统一数据门户",
20
+    filename: "transfer.html",
21
+    stylefile: path.resolve(__dirname, "../src/assets/css/common.css"),
22
+    template: path.resolve(__dirname, "../public/index.html"),
23
+    meta: {
24
+      charset: "utf-8",
25
+    },
26
+    rootEl: "<div id='app'></div>",
27
+    favicon: path.resolve(__dirname,"../public/favicon.ico"),
28
+    globalApi: path.resolve(__dirname,"../public/baseUrlConfig.js"),
29
+    publicPath: './'
30
+  }),
31
+  new HtmlWebpackPlugin({
32
+    filename: "index.html",
33
+    template: path.resolve(__dirname, "../public/transfer.html"),
34
+    inject: false
35
+  }),
36
+];
37
+
38
+module.exports = {
39
+  entry: [path.resolve(__dirname, "../src/index.js")],
40
+  output: {
41
+    filename: 'static/js/[name].[hash].js',
42
+    chunkFilename: `static/js/[name].[chunkhash:8].js`,
43
+    // filename: '[name].js',
44
+    // chunkFilename: `[name].[chunkhash:8].js`,
45
+    path: path.join(__dirname, '../dist'),
46
+  },
47
+  plugins,
48
+  resolve: {
49
+    alias: {
50
+      "@assets": path.resolve(__dirname, "../src/assets/"),
51
+      "@mock": path.resolve(__dirname, "../src/mock/"),
52
+      "@pages": path.resolve(__dirname, "../src/pages/"),
53
+      "@store": path.resolve(__dirname, "../src/store/"),
54
+      "@components": path.resolve(__dirname, "../src/components/"),
55
+      "@router": path.resolve(__dirname, "../src/router/"),
56
+      "@apis": path.resolve(__dirname, "../src/apis/"),
57
+      "@utils": path.resolve(__dirname, "../src/utils/"),
58
+      "@config": path.resolve(__dirname, '../src/config'),
59
+      "@themes": path.join(__dirname, '../src/themes'),
60
+      "@widget": path.join(__dirname, '../src/widget'),
61
+    },
62
+    modules: [path.join(__dirname, 'src'), 'node_modules'],
63
+    extensions: [".js", ".jsx", '.less', '.css']
64
+  },
65
+  module: {
66
+    rules: /* 使用规则 */[
67
+      // images
68
+      {
69
+        test: /* 匹配文件 */ /\.jpg|\.jpeg|\.png|\.svg|\.ico/,
70
+        include: [path.resolve(__dirname, "../src"), path.resolve(__dirname, "../public")],
71
+        use: /* 使用loader */[{
72
+          loader: "url-loader",
73
+          options: /* 加载器相关的配置项 */ {
74
+            name: 'static/[name].[ext]',
75
+            limit: /* <=limit的图片转换成base64 */ 8196,
76
+            mimetype: "image/jpg|image/png|image/ico",
77
+            fallback: 'file-loader',
78
+            publicPath: '../../' //采用根路径
79
+          },
80
+        },
81
+        ],
82
+      },
83
+      {
84
+        test: /* 匹配文件 */ /\.svg/,
85
+        include: [path.resolve(__dirname, "../src")],
86
+        use: /* 使用loader */[{
87
+          loader: "file-loader",
88
+          options: /* 加载器相关的配置项 */ {
89
+            name: 'static/[name].[ext]',
90
+            publicPath: '../../' //采用根路径
91
+          },
92
+        },
93
+        ],
94
+      },
95
+      {
96
+        test: /\.(woff|woff2|ttf|eot)$/,
97
+        // loader: 'file-loader?name=[name].[hash].[ext]'
98
+        use: [{
99
+          loader: 'file-loader',
100
+          options: {
101
+            name: 'static/css/[name].[hash].[ext]',
102
+            publicPath: '../../'
103
+          },
104
+        }],
105
+      },
106
+      
107
+      // babel
108
+      {
109
+        test: /\.jsx?$/,
110
+        exclude: /(node_modules|bower_components)/,
111
+        use: {
112
+          loader: "babel-loader",
113
+          options: {
114
+            presets: ["@babel/preset-env", "@babel/preset-react"],
115
+            plugins: ["@babel/plugin-transform-runtime"],
116
+          },
117
+        },
118
+      },
119
+    ],
120
+  }
121
+
122
+};

+ 157 - 0
config/webpack.dev.js

@@ -0,0 +1,157 @@
1
+/* eslint-disable @typescript-eslint/no-var-requires */
2
+/* eslint-disable no-undef */
3
+const { merge } = require("webpack-merge");
4
+const common = require("./webpack.common.js");
5
+const path = require("path");
6
+const lessToJs = require('less-vars-to-js');
7
+const fs = require('fs');
8
+const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
9
+
10
+//转换 less 变量,用于主题
11
+const baseLess = lessToJs(fs.readFileSync(path.join(__dirname, '../src/themes/themes.less'), 'utf8'));
12
+let themers = {};
13
+Object.keys(baseLess).map((k, i) => {
14
+  let key = String(k).replace(/@/g, "");
15
+  themers[key] = String(baseLess[k]);
16
+});
17
+const lessVars = Object.assign(themers, { "@CDN_BASE": "" });
18
+const lessExclude = /(node_modules)|(App)/;
19
+
20
+module.exports = merge(common, {
21
+  mode: "development",
22
+  devtool: "inline-source-map",
23
+  module: {
24
+    rules: [
25
+      {
26
+        test: /\.less$/,
27
+        exclude: lessExclude,
28
+        use: [
29
+          "style-loader",
30
+          {
31
+            loader: "css-loader",
32
+            options: {
33
+              importLoaders: 1,
34
+              modules: {
35
+                localIdentName: "[local]___[hash:base64:5]"
36
+              }
37
+            },
38
+          },
39
+          {
40
+            loader: "less-loader",
41
+            options: {
42
+              modifyVars: lessVars,
43
+              javascriptEnabled: true
44
+            }
45
+          }
46
+        ],
47
+      },
48
+      {
49
+        test: /\.less$/,
50
+        include: lessExclude,
51
+        use: [
52
+          "style-loader", "css-loader",
53
+          {
54
+            loader: "less-loader",
55
+            options: {
56
+              modifyVars: lessVars,
57
+              javascriptEnabled: true
58
+            }
59
+          }
60
+        ],
61
+      },
62
+      {
63
+        test: /\.css$/,
64
+        use: [
65
+          'style-loader',
66
+          'css-loader',
67
+        ],
68
+        exclude: /(node_modules)/
69
+      },
70
+      // style
71
+      {
72
+        test: /\.css$/,
73
+        use: ['style-loader', 'css-loader'],
74
+        exclude: /(src)/
75
+      },
76
+      {
77
+        test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
78
+        loader: "file-loader"
79
+      },
80
+      {
81
+        test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
82
+        use: ['url-loader?limit=10000&mimetype=images/svg+xml']
83
+      },
84
+      {
85
+        test: /\.(less|css)$/,
86
+        use: ['style-loader', 'css-loader'],
87
+        include: [
88
+          path.resolve(__dirname, './node_modules/monaco-editor/'),
89
+          path.resolve(__dirname, './node_modules/bravo-editor/'),
90
+        ]
91
+      },
92
+      // {
93
+      //   test: /\.contribution$/,
94
+      //   include: [
95
+      //     path.resolve(__dirname, './node_modules/monaco-editor/'),
96
+      //     path.resolve(__dirname, './node_modules/bravo-editor/'),
97
+      //   ],
98
+      //   use: {
99
+      //     loader: "babel-loader",
100
+      //     options: {
101
+      //       presets: ["@babel/preset-env", "@babel/preset-react"],
102
+      //       plugins: ["@babel/plugin-transform-runtime"],
103
+      //     },
104
+      //   },
105
+      // },
106
+      // {
107
+      //   test: /\.contribution.js$/,
108
+      //   include: [
109
+      //     path.resolve(__dirname, './node_modules/monaco-editor/'),
110
+      //     path.resolve(__dirname, './node_modules/bravo-editor/'),
111
+      //   ],
112
+      //   use: {
113
+      //     loader: "babel-loader",
114
+      //     options: {
115
+      //       presets: ["@babel/preset-env", "@babel/preset-react"],
116
+      //       plugins: ["@babel/plugin-transform-runtime"],
117
+      //     },
118
+      //   },
119
+      // },
120
+    ],
121
+  },
122
+  plugins: [
123
+    new MonacoWebpackPlugin()
124
+  ],
125
+  devServer: {
126
+    // historyApiFallback: true, //不跳转
127
+    // noInfo: true,
128
+    // inline: true, // 实时刷新
129
+    // contentBase: join(__dirname, "../dist"),
130
+    compress: true,
131
+    port: 9003,
132
+    host: "0.0.0.0",
133
+    hot: true,
134
+    proxy: {
135
+      "/api": {
136
+        // target: "http://47.96.100.195:9081"
137
+        // target: "http://dataportal-test.agile.com.cn:8081"
138
+        target: "http://14.29.205.92:9081",
139
+        // target:"http://dataportal.dtyunxi.cn/demo",
140
+        changeOrigin:true,
141
+
142
+      },
143
+      "/mock":{
144
+        target: "http://172.24.81.106:9999",
145
+        pathRewrite: { '^/mock': '/api' },
146
+      }
147
+    },
148
+    // lazy: true,
149
+    // filename: "print.js",
150
+    // historyApiFallback: /* 对指定url重定向 */ {
151
+    //   rewrites: [
152
+    //     { from: /^\/$/, to: "/index.html" },
153
+    //     { from: /^\/subpage/, to: "/index.html" },
154
+    //   ],
155
+    // },
156
+  },
157
+});

+ 23 - 0
config/webpack.dll.conf.js

@@ -0,0 +1,23 @@
1
+const path = require("path"),
2
+  fs = require('fs'),
3
+  webpack = require("webpack");
4
+
5
+const vendors = ['react', 'echarts', 'react-dom', 'mobx', 'mobx-react', 'react-router', 'react-router-dom', 'moment', 'lodash', 'axios'];
6
+
7
+module.exports = {
8
+  entry: {
9
+    vendor: vendors
10
+  },
11
+  output: {
12
+    path: path.join(__dirname, "../dist"),
13
+    filename: "Dll.js",
14
+    library: "[name]_[hash]"
15
+  },
16
+  plugins: [
17
+    new webpack.DllPlugin({
18
+      path: path.join(__dirname, "../dist", "manifest.json"),
19
+      name: "[name]_[hash]",
20
+      context: __dirname
21
+    })
22
+  ]
23
+};

+ 149 - 0
config/webpack.prod.js

@@ -0,0 +1,149 @@
1
+/* eslint-disable no-undef */
2
+const webpack = require('webpack');
3
+const { merge } = require("webpack-merge");
4
+const path = require("path");
5
+const common = require("./webpack.common.js");
6
+const CompressionPlugin = require("compression-webpack-plugin");
7
+const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); // js压缩插件
8
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
9
+const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
10
+// const DllReferencePlugin = require('webpack/lib/DllReferencePlugin');
11
+const fs = require('fs');
12
+const lessToJs = require('less-vars-to-js');
13
+const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
14
+const CopyWebpackPlugin = require('copy-webpack-plugin')
15
+//转换 less 变量,用于主题
16
+const baseLess = lessToJs(fs.readFileSync(path.join(__dirname, '../src/themes/themes.less'), 'utf8'));
17
+let themers = {};
18
+Object.keys(baseLess).map((k, i) => {
19
+  let key = String(k).replace(/@/g, "");
20
+  themers[key] = String(baseLess[k]);
21
+});
22
+const lessVars = Object.assign(themers, { "@CDN_BASE": "" });
23
+const lessExclude = /(node_modules)|(App)/;
24
+
25
+module.exports = merge(common, {
26
+  mode: "production",
27
+  module: {
28
+    rules: [
29
+      {
30
+        test: /\.less$/,
31
+        exclude: lessExclude,
32
+        use: [
33
+          MiniCssExtractPlugin.loader,
34
+          {
35
+            loader: "css-loader",
36
+            options: {
37
+              importLoaders: 1,
38
+              modules: {
39
+                localIdentName: "[local]___[hash:base64:5]"
40
+              }
41
+            },
42
+          },
43
+          {
44
+            loader: "less-loader",
45
+            options: {
46
+              modifyVars: lessVars,
47
+              javascriptEnabled: true
48
+            }
49
+          }
50
+        ],
51
+      },
52
+      {
53
+        test: /\.less$/,
54
+        include: lessExclude,
55
+        use: [
56
+          MiniCssExtractPlugin.loader,
57
+          "css-loader",
58
+          {
59
+            loader: "less-loader",
60
+            options: {
61
+              modifyVars: lessVars,
62
+              javascriptEnabled: true
63
+            }
64
+          }
65
+        ],
66
+      },
67
+      {
68
+        test: /\.css$/,
69
+        use: [
70
+          MiniCssExtractPlugin.loader,
71
+          'css-loader',
72
+        ],
73
+        exclude: /(node_modules)/
74
+      },
75
+      // style
76
+      {
77
+        test: /\.css$/,
78
+        use: [
79
+          MiniCssExtractPlugin.loader,
80
+          'css-loader'],
81
+        exclude: /(src)/
82
+      },
83
+      {
84
+        test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
85
+        loader: "file-loader"
86
+      },
87
+      {
88
+        test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
89
+        use: ['url-loader?limit=10000&mimetype=images/svg+xml']
90
+      },
91
+      {
92
+        test: /\.(less|css)$/,
93
+        use: ['style-loader', 'css-loader'],
94
+        include: [
95
+          path.resolve(__dirname, './node_modules/monaco-editor/'),
96
+          path.resolve(__dirname, './node_modules/bravo-editor/'),
97
+        ]
98
+      },
99
+    ]
100
+  },
101
+  optimization: {
102
+    minimizer: [
103
+      new UglifyJsPlugin({
104
+        cache: true,
105
+        parallel: true,
106
+        sourceMap: true // set to true if you want JS source maps
107
+      }),
108
+      new OptimizeCSSAssetsPlugin({})
109
+    ]
110
+  },
111
+  plugins: [
112
+    new MiniCssExtractPlugin({
113
+      filename: "static/css/[name].[contenthash].css",
114
+      chunkFilename: "static/css/[id].[contenthash].css",
115
+      ignoreOrder: true
116
+    }),
117
+    // gzip压缩插件
118
+    new CompressionPlugin({
119
+      filename: '[path].gz[query]', //目标资源名称。[file] 会被替换成原资源。[path] 会被替换成原资源路径,[query] 替换成原查询字符串
120
+      algorithm: 'gzip',//算法
121
+      test: new RegExp(
122
+        '\\.(js|css)$'    //压缩 js 与 css
123
+      ),
124
+      threshold: 10240,//只处理比这个值大的资源。按字节计算
125
+      minRatio: 0.8//只有压缩率比这个值小的资源才会被处理
126
+    }),
127
+    new webpack.DllReferencePlugin({
128
+      manifest: require(path.resolve(__dirname, '../dist/manifest.json')),
129
+    }),
130
+    new webpack.DefinePlugin({
131
+      'process.env.APP_ENV': JSON.stringify(process.env.APP_ENV),
132
+      'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
133
+      
134
+    }),
135
+    new CopyWebpackPlugin([
136
+      { 
137
+        from: path.resolve(__dirname, '../src/assets/js/privateConfig.js'), 
138
+        to:path.resolve(__dirname, '../dist/static/privateConfig.js'),
139
+        // to: '../dist/static/privateConfig.js' 
140
+      },
141
+      { 
142
+        from: path.resolve(__dirname, '../src/assets/js/crypto-js.js'), 
143
+        to:path.resolve(__dirname, '../dist/static/crypto-js.js'),
144
+        // to: '../dist/static/crypto-js.js' 
145
+      },
146
+    ]),
147
+    new MonacoWebpackPlugin()
148
+  ],
149
+});

+ 24 - 0
mock/index.js

@@ -0,0 +1,24 @@
1
+
2
+const { serverStart } = require("express-mock-server");
3
+
4
+var sources = [
5
+  require("./test.js"),
6
+  require('./warn.js')
7
+];
8
+ 
9
+// this is default configuration
10
+var opt_serverConfig = {
11
+  port: 9999,
12
+  controlApiUrl: ""
13
+};
14
+ 
15
+/**
16
+ *  Return strated Server instance
17
+     function can be called are 
18
+        start
19
+        close
20
+ *  @param {Array} sources 
21
+ *  @param {?Object} opt_serverConfig 
22
+ *  @return {Server} 
23
+ */
24
+serverStart(sources,opt_serverConfig);

+ 38 - 0
mock/test.js

@@ -0,0 +1,38 @@
1
+const path = "/api/test";
2
+const method = "GET";
3
+
4
+const respData = {
5
+  data: [
6
+    {
7
+      name: "Mon",
8
+      value: 50,
9
+    },
10
+    {
11
+      name: "Tus",
12
+      value: 70,
13
+    },
14
+    {
15
+      name: "Web",
16
+      value: 20,
17
+    },
18
+    {
19
+      name: "Thr",
20
+      value: 150,
21
+    },
22
+  ],
23
+  resultCode: "0",
24
+  resultMsg: "string",
25
+};
26
+
27
+module.exports = [
28
+  {
29
+    request: {
30
+      method,
31
+      path,
32
+    },
33
+    response: {
34
+      statusCode: 200,
35
+      body: JSON.stringify(respData),
36
+    },
37
+  },
38
+];

+ 40 - 0
mock/warn.js

@@ -0,0 +1,40 @@
1
+const path = "/api/warn";
2
+const method = "GET";
3
+
4
+const respData = {
5
+  data: [
6
+    {
7
+      id:'1',
8
+      userName: "xingqiao",
9
+      departmentName: "数据部",
10
+      role:"开发"
11
+    },
12
+    {
13
+      id:'2',
14
+      userName: "ltt",
15
+      departmentName: "数据部",
16
+      role:"开发"
17
+    },
18
+    {
19
+      id:'3',
20
+      userName: "tt",
21
+      departmentName: "数据部",
22
+      role:"产品"
23
+    }
24
+  ],
25
+  resultCode: "0",
26
+  resultMsg: "string",
27
+};
28
+
29
+module.exports = [
30
+  {
31
+    request: {
32
+      method,
33
+      path,
34
+    },
35
+    response: {
36
+      statusCode: 200,
37
+      body: JSON.stringify(respData),
38
+    },
39
+  },
40
+];

+ 122 - 0
package.json

@@ -0,0 +1,122 @@
1
+{
2
+  "name": "webpack-research",
3
+  "sideEffects": false,
4
+  "version": "1.0.0",
5
+  "description": "",
6
+  "scripts": {
7
+    "test": "echo \"Error: no test specified\" && exit 1",
8
+    "build-dll": "webpack -p --progress --config ./config/webpack.dll.conf.js",
9
+    "build-new": "cross-env NODE_ENV=production APP_ENV=prod_new webpack --mode production --config ./config/webpack.prod.js",
10
+    "build": "cross-env NODE_ENV=production APP_ENV=prod webpack --mode production --config ./config/webpack.prod.js",
11
+    "build-dacs": "cross-env NODE_ENV=production APP_ENV=dacs webpack --mode production --config ./config/webpack.prod.js",
12
+    "build-test": "cross-env APP_ENV=test webpack --mode production --config ./config/webpack.prod.js",
13
+    "yunxi-dev": "npm run clean && npm run build-dll && npm run build",
14
+    "yunxi-dev-new": "npm run clean && npm run build-dll && npm run build-new",
15
+    "yunxi-test": "npm run clean && npm run build-dll && npm run build-test",
16
+    "yunxi-dacs": "npm run clean && npm run build-dll && npm run build-dacs",
17
+    "start": "http-server ./dist --port 9100",
18
+    "clean": "rimraf ./dist & rimraf ./dist.zip",
19
+    "watch": "webpack --watch --config ./config/webpack.prod.js",
20
+    "dev": "cross-env NODE_ENV=prod_new APP_ENV=prod_new webpack-dev-server --config ./config/webpack.dev.js",
21
+    "mock": "nodemon ./mock/index.js"
22
+  },
23
+  "author": "",
24
+  "license": "ISC",
25
+  "dependencies": {
26
+    "@ant-design/compatible": "^1.1.0",
27
+    "@ant-design/icons": "^4.7.0",
28
+    "@ant-design/pro-layout": "^6.27.2",
29
+    "@ant-design/pro-table": "2.56.8",
30
+    "@ant-design/pro-form": "1.48.1",
31
+    "@babel/core": "^7.13.14",
32
+    "@babel/plugin-proposal-decorators": "^7.14.5",
33
+    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
34
+    "@babel/plugin-transform-runtime": "^7.13.10",
35
+    "@babel/preset-env": "^7.13.12",
36
+    "@babel/preset-react": "^7.13.13",
37
+    "@typescript-eslint/eslint-plugin": "^4.22.0",
38
+    "@typescript-eslint/parser": "^4.22.0",
39
+    "antd": "^4.18.3",
40
+    "antd-img-crop": "^4.0.2",
41
+    "awesome-typescript-loader": "^5.2.1",
42
+    "axios": "^0.21.1",
43
+    "babel-loader": "^8.2.2",
44
+    "babel-polyfill": "^6.26.0",
45
+    "bravo-editor": "1.3.11",
46
+    "clean-webpack-plugin": "^4.0.0-alpha.0",
47
+    "clipboard-react": "^1.0.0",
48
+    "compression-webpack-plugin": "5.0.0",
49
+    "copy-webpack-plugin": "^5.0.0",
50
+    "cross-env": "^7.0.3",
51
+    "crypto-js": "^4.0.0",
52
+    "css-loader": "^3.6.0",
53
+    "echarts": "^5.0.2",
54
+    "echarts-for-react": "^3.0.1",
55
+    "echarts-wordcloud": "2.0.0",
56
+    "es6-symbol": "^3.1.3",
57
+    "eslint": "^7.25.0",
58
+    "eslint-config-prettier": "^8.3.0",
59
+    "eslint-plugin-react": "^7.23.2",
60
+    "express-mock-server": "^3.2.0",
61
+    "extract-text-webpack-plugin": "^4.0.0-beta.0",
62
+    "file-loader": "^6.2.0",
63
+    "happypack": "^5.0.1",
64
+    "html-webpack-plugin": "^4.2.2",
65
+    "http-server": "^0.12.3",
66
+    "husky": "^6.0.0",
67
+    "js-cookie": "^3.0.1",
68
+    "less": "^4.1.1",
69
+    "less-loader": "5.0.0",
70
+    "less-vars-to-js": "^1.3.0",
71
+    "lint-staged": "^10.5.4",
72
+    "loadable-components": "^2.2.3",
73
+    "lodash": "^4.17.21",
74
+    "mini-css-extract-plugin": "0.5.0",
75
+    "mobx": "^6.1.7",
76
+    "mobx-react": "^7.1.0",
77
+    "mobx-react-devtools": "^6.1.1",
78
+    "mockjs": "^1.1.0",
79
+    "monaco-editor-webpack-plugin": "1.7.0",
80
+    "node-xlsx": "^0.16.1",
81
+    "optimize-css-assets-webpack-plugin": "^6.0.1",
82
+    "postcss": "^8.4.16",
83
+    "prettier": "2.2.1",
84
+    "pro-components": "^0.0.2",
85
+    "progress-bar-webpack-plugin": "^2.1.0",
86
+    "react": "^17.0.2",
87
+    "react-dnd": "^14.0.5",
88
+    "react-dnd-html5-backend": "^14.1.0",
89
+    "react-dom": "^17.0.2",
90
+    "react-draggable-tags": "^1.0.6",
91
+    "react-highlight-words": "0.9.0",
92
+    "react-monaco-editor": "0.17.1",
93
+    "react-router": "^5.2.0",
94
+    "react-router-cache-route": "^1.12.11",
95
+    "react-router-dom": "^5.2.0",
96
+    "react-simple-verify": "^1.0.9",
97
+    "react-virtualized-auto-sizer": "^1.0.7",
98
+    "react-window": "^1.8.8",
99
+    "rimraf": "^3.0.2",
100
+    "sql-formatter": "2.3.3",
101
+    "style-loader": "^2.0.0",
102
+    "ts-import-plugin": "^1.6.7",
103
+    "tslint-config-prettier": "^1.18.0",
104
+    "typescript": "^4.2.4",
105
+    "uglifyjs-webpack-plugin": "^2.2.0",
106
+    "url-loader": "^4.1.1",
107
+    "webpack": "~4.36.0",
108
+    "webpack-dev-server": "~3.11.2",
109
+    "webpack-merge": "~5.7.3",
110
+    "webpack-parallel-uglify-plugin": "^2.0.0",
111
+    "wordcloud": "1.2.0"
112
+  },
113
+  "devDependencies": {
114
+    "webpack-cli": "^3.3.9"
115
+  },
116
+  "lint-staged": {
117
+    "*.{js,md,scss,.css}": [
118
+      "prettier --write"
119
+    ],
120
+    "*.{js,jsx}": "eslint --cache --fix"
121
+  }
122
+}

+ 5 - 0
postcss.config.js

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+  plugins: {
3
+    "postcss-cssnext": {},
4
+  },
5
+};

BIN
public/404.png


+ 1 - 0
public/baseUrlConfig.js

@@ -0,0 +1 @@
1
+window.baseUrlConfig = /* 编辑接口API地址路径 */ "//" + window.location.host;

BIN
public/bg_home.png


BIN
public/bi_img_nodata.png


+ 4 - 0
public/defineComponent.json

@@ -0,0 +1,4 @@
1
+{
2
+  "TestA": "TestA模块描述",
3
+  "TestB": "TestB模块描述"
4
+}

BIN
public/dict_img_nodata.png


BIN
public/favicon.ico


BIN
public/favicon2.ico


BIN
public/img_index_banner@2x.png


BIN
public/img_meineirong.png


BIN
public/img_zhutu_login.png


+ 182 - 0
public/index.html

@@ -0,0 +1,182 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+  <meta charset="utf-8" />
6
+  <title><%= htmlWebpackPlugin.options.title %></title>
7
+  <style>
8
+    .page-loading-warp {
9
+      padding: 98px;
10
+      display: flex;
11
+      justify-content: center;
12
+      align-items: center;
13
+    }
14
+
15
+    .ant-spin {
16
+      -webkit-box-sizing: border-box;
17
+      box-sizing: border-box;
18
+      margin: 0;
19
+      padding: 0;
20
+      color: rgba(0, 0, 0, 0.65);
21
+      font-size: 14px;
22
+      font-variant: tabular-nums;
23
+      line-height: 1.5;
24
+      list-style: none;
25
+      -webkit-font-feature-settings: 'tnum';
26
+      font-feature-settings: 'tnum';
27
+      position: absolute;
28
+      display: none;
29
+      color: #3255FA;
30
+      text-align: center;
31
+      vertical-align: middle;
32
+      opacity: 0;
33
+      -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
34
+      transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
35
+      transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
36
+      transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86),
37
+        -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
38
+    }
39
+
40
+    .ant-spin-spinning {
41
+      position: static;
42
+      display: inline-block;
43
+      opacity: 1;
44
+    }
45
+
46
+    .ant-spin-dot {
47
+      position: relative;
48
+      display: inline-block;
49
+      font-size: 20px;
50
+      width: 20px;
51
+      height: 20px;
52
+    }
53
+
54
+    .ant-spin-dot-item {
55
+      position: absolute;
56
+      display: block;
57
+      width: 9px;
58
+      height: 9px;
59
+      background-color: #3255FA;
60
+      border-radius: 100%;
61
+      -webkit-transform: scale(0.75);
62
+      -ms-transform: scale(0.75);
63
+      transform: scale(0.75);
64
+      -webkit-transform-origin: 50% 50%;
65
+      -ms-transform-origin: 50% 50%;
66
+      transform-origin: 50% 50%;
67
+      opacity: 0.3;
68
+      -webkit-animation: antSpinMove 1s infinite linear alternate;
69
+      animation: antSpinMove 1s infinite linear alternate;
70
+    }
71
+
72
+    .ant-spin-dot-item:nth-child(1) {
73
+      top: 0;
74
+      left: 0;
75
+    }
76
+
77
+    .ant-spin-dot-item:nth-child(2) {
78
+      top: 0;
79
+      right: 0;
80
+      -webkit-animation-delay: 0.4s;
81
+      animation-delay: 0.4s;
82
+    }
83
+
84
+    .ant-spin-dot-item:nth-child(3) {
85
+      right: 0;
86
+      bottom: 0;
87
+      -webkit-animation-delay: 0.8s;
88
+      animation-delay: 0.8s;
89
+    }
90
+
91
+    .ant-spin-dot-item:nth-child(4) {
92
+      bottom: 0;
93
+      left: 0;
94
+      -webkit-animation-delay: 1.2s;
95
+      animation-delay: 1.2s;
96
+    }
97
+
98
+    .ant-spin-dot-spin {
99
+      -webkit-transform: rotate(45deg);
100
+      -ms-transform: rotate(45deg);
101
+      transform: rotate(45deg);
102
+      -webkit-animation: antRotate 1.2s infinite linear;
103
+      animation: antRotate 1.2s infinite linear;
104
+    }
105
+
106
+    .ant-spin-lg .ant-spin-dot {
107
+      font-size: 32px;
108
+      width: 32px;
109
+      height: 32px;
110
+    }
111
+
112
+    .ant-spin-lg .ant-spin-dot i {
113
+      width: 14px;
114
+      height: 14px;
115
+    }
116
+
117
+    @media all and (-ms-high-contrast: none),
118
+    (-ms-high-contrast: active) {
119
+      .ant-spin-blur {
120
+        background: #fff;
121
+        opacity: 0.5;
122
+      }
123
+    }
124
+
125
+    @-webkit-keyframes antSpinMove {
126
+      to {
127
+        opacity: 1;
128
+      }
129
+    }
130
+
131
+    @keyframes antSpinMove {
132
+      to {
133
+        opacity: 1;
134
+      }
135
+    }
136
+
137
+    @-webkit-keyframes antRotate {
138
+      to {
139
+        -webkit-transform: rotate(405deg);
140
+        transform: rotate(405deg);
141
+      }
142
+    }
143
+
144
+    @keyframes antRotate {
145
+      to {
146
+        -webkit-transform: rotate(405deg);
147
+        transform: rotate(405deg);
148
+      }
149
+    }
150
+
151
+  </style>
152
+  <script>
153
+    // 加载HTML图
154
+    var _LoadingHtml =
155
+      '<div id="loadingDiv" style="display: flex;justify-content: center;flex-direction: column;align-items: center;position:fixed;left: 0;top: 0;right: 0;bottom: 0;z-index: 99999;background: #f5f5f5;"><div class="page-loading-warp"><div class="ant-spin ant-spin-lg ant-spin-spinning"> <span class="ant-spin-dot ant-spin-dot-spin"><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i></span></div></div></div>';
156
+
157
+    // 呈现loading效果
158
+    document.write(_LoadingHtml);
159
+
160
+    // 监听加载状态改变
161
+    document.onreadystatechange = completeLoading;
162
+
163
+    // 加载状态为complete时移除loading效果
164
+    function completeLoading() {
165
+      if (document.readyState == "complete") {
166
+        var loadingMask = document.getElementById('loadingDiv');
167
+        loadingMask.parentNode.removeChild(loadingMask);
168
+      }
169
+    }
170
+
171
+  </script>
172
+  <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script> -->
173
+  <script type="text/javascript" src="<%=htmlWebpackPlugin.options.publicPath%>static/privateConfig.js"></script>
174
+  <script type="text/javascript" src="../src/assets/js/crypto-js.js"></script>
175
+  <script type="text/javascript" src="<%=htmlWebpackPlugin.options.publicPath%>static/crypto-js.js"></script>
176
+</head>
177
+
178
+<body>
179
+  <%= htmlWebpackPlugin.options.rootEl %>
180
+</body>
181
+
182
+</html>

BIN
public/test_bg.png


+ 74 - 0
public/transfer.html

@@ -0,0 +1,74 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+<head>
4
+  <meta charset="UTF-8">
5
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+  <title>Document</title>
8
+  <script>
9
+    var ticket = getQueryString("ticket") || "";
10
+    var ssoEmpId = getQueryString("ssoEmpId") || "";
11
+    var url = location.protocol + "//" + location.host + 
12
+    location.pathname.replace(/[/]$/,'/transfer.html') + '?ticket=' + getQueryString("ticket") +
13
+    '&ssoEmpId=' + ssoEmpId
14
+
15
+    function openUrl(url) {
16
+      var llq = myBrowser();
17
+      if (llq === "IE") {
18
+        //谷歌打开链接
19
+        try {
20
+          var urlcode = url.replace(/&/g, "^&");
21
+          var objShell = new ActiveXObject("WScript.Shell");
22
+          objShell.Run("cmd.exe /c start chrome " + urlcode, 0, true);
23
+          window.close()
24
+        } catch (e) {
25
+          alert("检测到系统尚未安装chrome浏览器,请在IT桌面助手安装后打开链接");
26
+        }
27
+      } else {
28
+        location.href = url
29
+      }
30
+    }
31
+
32
+    function myBrowser() {
33
+      var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
34
+      var isOpera = userAgent.indexOf("Opera") > -1;
35
+      if (isOpera) {
36
+        return "Opera";
37
+      } //判断是否Opera浏览器
38
+      if (userAgent.indexOf("Firefox") > -1) {
39
+        return "FF";
40
+      } //判断是否Firefox浏览器
41
+      if (userAgent.indexOf("Chrome") > -1) {
42
+        return "Chrome";
43
+      }
44
+      if (userAgent.indexOf("Safari") > -1) {
45
+        return "Safari";
46
+      } //判断是否Safari浏览器
47
+      if (
48
+        (userAgent.indexOf("compatible") > -1 &&
49
+          userAgent.indexOf("MSIE") > -1 &&
50
+          !isOpera) ||
51
+        userAgent.toLowerCase().indexOf("trident") > -1
52
+      ) {
53
+        return "IE";
54
+      } //判断是否IE浏览器
55
+    }
56
+
57
+    function getQueryString(name) {
58
+      var search = window.location.search.slice(1);
59
+      var res = search.match(new RegExp(name + "=(.*?)(&|$)"));
60
+      return res ? res[1] : "";
61
+    }
62
+
63
+    if (ticket) {
64
+      openUrl(url);
65
+    }else{
66
+      location.href = url
67
+    }
68
+  </script>
69
+</head>
70
+<body>
71
+  
72
+</body>
73
+
74
+</html>

+ 53 - 0
src/App/index.jsx

@@ -0,0 +1,53 @@
1
+import React, { useEffect } from "react";
2
+import { ConfigProvider } from "antd";
3
+import zhCN from "antd/lib/locale/zh_CN";
4
+import Router from "../router/router";
5
+import { configure } from "mobx";
6
+import { observer } from "mobx-react";
7
+// import styles from "./index.less";
8
+import $store from "@store/";
9
+import { setWaterMark,timestampToTime } from "@utils/util";
10
+
11
+/**获取部门层级树 */
12
+// const getDeptTree = async () => {
13
+//   try {
14
+//     const result = await getOrgTree();
15
+//     if (+result.resultCode === 0) {
16
+//       const data = result.data;
17
+//       changeDept(data);
18
+//       // $store.app.setDepts(data || []);
19
+//       // sessionStorage.setItem('depts',JSON.stringify(data || []));
20
+//     }
21
+//   } catch (error) {
22
+//     console.log(error);
23
+//   }
24
+// };
25
+/**转换部门数据 */
26
+// const changeDept = (data) => {
27
+//   data.map((item) => {
28
+//     item["value"] = item.outerOrgId;
29
+//     item["title"] = item.orgName;
30
+//     item["children"] = item.sysOrganizationEntityVOS;
31
+//     item["disabled"] = item.orgType === "department" ? false : true;
32
+//     changeDept(item.sysOrganizationEntityVOS);
33
+//   });
34
+// };
35
+export default observer(function App() {
36
+  useEffect(() => {
37
+    $store.app.setMarkSrc(
38
+      setWaterMark({
39
+        toDataURL: true,
40
+        waterMarkText: [localStorage.getItem("account") || sessionStorage.getItem("userName"),timestampToTime()],
41
+      })
42
+    );
43
+
44
+    // getAllRoleData();
45
+  }, []);
46
+  return (
47
+    <ConfigProvider componentSize="middle" locale={zhCN}>
48
+      {/* <div className="app"> */}
49
+      <Router></Router>
50
+      {/* </div> */}
51
+    </ConfigProvider>
52
+  );
53
+});

File diff suppressed because it is too large
+ 1298 - 0
src/App/index.less


+ 103 - 0
src/apis/client.js

@@ -0,0 +1,103 @@
1
+
2
+import request from "@utils/request";
3
+
4
+// 近一年客户量趋势 0全部 1地产 2物业 3教育
5
+export function getTrendYearData(params) {
6
+  return request({
7
+    url: `/api/other/biz/trendData/getTrendYearData`,
8
+    method: "GET",
9
+    data:params
10
+  });
11
+}
12
+
13
+// 各产业集团交叉客户数
14
+export function getCrossCustomerStatus(params) {
15
+  return request({
16
+    url: `/api/other/biz/adsCuDepartDf/getCrossCustomerStatus`,
17
+    method: "POST",
18
+    data:params
19
+  });
20
+}
21
+
22
+
23
+// 客户特征分布 0全部 1地产 2物业 3教育
24
+export function getCustomerFeatureList(params) {
25
+  return request({
26
+    url: `/api/other/biz/customer/feature/getCustomerFeatureList`,
27
+    method: "GET",
28
+    data:params
29
+  });
30
+}
31
+
32
+
33
+// 客户籍贯分布 0全部 1地产 2物业 3教育
34
+export function getCustomerNativePlaceList(params) {
35
+  return request({
36
+    url: `/api/other/biz/customer/native/place/df/getCustomerNativePlaceList`,
37
+    method: "GET",
38
+    data:params
39
+  });
40
+}
41
+
42
+// 购房分布等级分布
43
+export function getCustomerBuyPurposeList(params) {
44
+  return request({
45
+    url: `/api/other/biz/customer/buy/purpose/getCustomerBuyPurposeList`,
46
+    method: "POST",
47
+    data:params
48
+  });
49
+}
50
+
51
+// 购房意向等级分布
52
+export function getIntentionRankList(params) {
53
+  return request({
54
+    url: `/api/other/biz/customer/intention/rank/getIntentionRankList`,
55
+    method: "GET",
56
+    data:params
57
+  });
58
+}
59
+
60
+// 物业工单状态分布
61
+export function getCustomerServiceStatusList(params) {
62
+  return request({
63
+    url: `/api/ads/cu/service/status/df/getCustomerServiceStatusList`,
64
+    method: "GET",
65
+    data:params
66
+  });
67
+}
68
+
69
+
70
+// 物业工单汇总
71
+export function getCustomerServiceInfoList(params) {
72
+  return request({
73
+    url: `/api/other/biz/customer/service/info/getCustomerServiceInfoList`,
74
+    method: "GET",
75
+    data:params
76
+  });
77
+}
78
+
79
+
80
+// 家长工作职位分布
81
+export function getCustomerIndustryList(params) {
82
+  return request({
83
+    url: `/api/other/biz/ads/customer/industry/df/getCustomerIndustryList`,
84
+    method: "GET",
85
+    data:params
86
+  });
87
+}
88
+
89
+// 家长文化程度分布
90
+export function getCustomerEducateLevelList(params) {
91
+  return request({
92
+    url: `/api/other/biz/customer/educate/level/getCustomerEducateLevelList`,
93
+    method: "GET",
94
+    data:params
95
+  });
96
+}
97
+
98
+
99
+
100
+
101
+
102
+
103
+

+ 133 - 0
src/apis/clush.js

@@ -0,0 +1,133 @@
1
+import request from "@utils/request";
2
+
3
+export function ajax_queryCusType(params) {
4
+  return request({
5
+    url: "/ls-data-application/v1/label/category/organization/list",
6
+    method: "GET",
7
+    data: params,
8
+  });
9
+}
10
+
11
+// 圈选客户创建分群
12
+export function previewClusterCst(params) {
13
+  return request({
14
+    url: "/api/tagcenter/previewClusterCst",
15
+    method: "POST",
16
+    data: params,
17
+  });
18
+}
19
+
20
+// 提数申请--项目名称列表(树状结构)
21
+export function projectnamelist(params) {
22
+  return request({
23
+    url: "/ls-data-application/v1/label/category/label/projectnamelist",
24
+    method: "GET",
25
+    data: params,
26
+  });
27
+}
28
+
29
+// 审批人
30
+export function approver(params = {}) {
31
+  return request({
32
+    url: `/ls-data-application/v1/label/category/label/approver`,
33
+    method: "get",
34
+    data: params,
35
+  });
36
+}
37
+
38
+// 提数申请-提交提数申请给bpm(BPM审批接口正在协调沟通)
39
+export function createApplyData(params = {}) {
40
+  return request({
41
+    url: `/ls-data-application/v1/label/category/label/createApplyData`,
42
+    method: "POST",
43
+    data: params,
44
+  });
45
+}
46
+
47
+// 刷新该分群信息(可以让这个分群立马跑)
48
+export function queryClusterDetail(params = {}) {
49
+  return request({
50
+    url: `/api/tagcenter/queryClusterDetail`,
51
+    method: "get",
52
+    data: {
53
+      clusterId: params.id,
54
+    },
55
+  });
56
+}
57
+
58
+// label/cancleRecord/{recordId}
59
+// 自助提数-取消提数申请(使用逻辑删除:使dr = 1 )
60
+
61
+export function cancleRecord(params = {}) {
62
+  return request({
63
+    url: `/ls-data-application/v1/label/category/label/cancleRecord/${
64
+      params.id || ""
65
+    }`,
66
+    method: "get",
67
+    data: params,
68
+  });
69
+}
70
+export function queryCusScope(params = {}) {
71
+  return request({
72
+    url: `/ls-data-application/v1/label/category/label/queryCusScope`,
73
+    method: "get",
74
+    data: params,
75
+  });
76
+}
77
+export function datauserange(params = {}) {
78
+  return request({
79
+    url: `/ls-data-application/v1/label/category/label/datauserange`,
80
+    method: "get",
81
+    data: params,
82
+  });
83
+}
84
+
85
+// 数据拉取
86
+export function queryClusterUserList(params) {
87
+  return request({
88
+    url: "/api/tagcenter/queryClusterUserList",
89
+    method: "GET",
90
+    data: params,
91
+  });
92
+}
93
+
94
+// 客户集群数据 客户分页查询
95
+export function queryClusterCustomerPage(params) {
96
+  return request({
97
+    url: "/api/other/biz/customerClusterData/queryClusterCustomerPage",
98
+    method: "POST",
99
+    data: params,
100
+  });
101
+}
102
+
103
+// 标签集群任务分页
104
+export function getTagClusterTaskPage(params) {
105
+  return request({
106
+    url: "/api/biz/tag/cluster/info/getTagClusterTaskPage",
107
+    method: "POST",
108
+    data: params,
109
+  });
110
+}
111
+
112
+// 导出excel客户集群数据
113
+export function downloadClusterCustomer(params) {
114
+  return request({
115
+    url: "/api/other/biz/customerClusterData/downloadClusterCustomer",
116
+    method: "GET",
117
+    data: params,
118
+    headers: {
119
+      "Content-Type": "application/octet-stream;charset=UTF-8",
120
+    },
121
+    responseType: "blob",
122
+  });
123
+}
124
+
125
+// 客户范围
126
+
127
+export function getProjectListTree(params) {
128
+  return request({
129
+    url: "/api/other/biz/project/detail/getProjectListTree",
130
+    method: "GET",
131
+    data: params,
132
+  });
133
+}

+ 38 - 0
src/apis/common.js

@@ -0,0 +1,38 @@
1
+import request from '@utils/request'
2
+
3
+export function getUnionId(params) {
4
+  return request({
5
+    url: `/api/view/page/getUniqueId`,
6
+    method: "GET",
7
+  });
8
+}
9
+
10
+export function switchPage(params) {
11
+  return request({
12
+    url: `/api/view/page/switchPage`,
13
+    method: "POST",
14
+    data: params
15
+  });
16
+}
17
+
18
+// 员工登陆 (单体模式)
19
+export function yajuleLogin(params) {
20
+  return request({
21
+    url: `/api/base/yajuleLogin`,
22
+    method: "GET",
23
+    data: params
24
+  });
25
+}
26
+
27
+// 获取报表访问toekn
28
+export function getSheetToken(params) {
29
+  return request({
30
+    url: `/api/v1/analysis/report/permission/generate/token`,
31
+    method: "POST",
32
+    data: params
33
+  });
34
+}
35
+
36
+
37
+
38
+

+ 112 - 0
src/apis/dict.js

@@ -0,0 +1,112 @@
1
+import request from "@utils/request";
2
+// 获取字典
3
+export function getAllDict(params) {
4
+  return request({
5
+    url: `/api/sys/dict/getAllDict`,
6
+    method: "GET",
7
+  });
8
+}
9
+
10
+//新增字典
11
+export function addDict(params) {
12
+  return request({
13
+    url: `/api/sys/dict/addDict`,
14
+    method: "POST",
15
+    data: params,
16
+    headers: {
17
+      "Content-type": "application/json",
18
+    },
19
+  });
20
+}
21
+
22
+// 删除字典
23
+export function deleteSysDict(params) {
24
+  return request({
25
+    url: `/api/sys/dict/deleteSysDict/${params.dictId}`,
26
+    method: "DELETE",
27
+    headers: {
28
+      "Content-type": "application/json",
29
+    },
30
+  });
31
+}
32
+
33
+// 更新系统字典api
34
+export function updateSysDictParam(params) {
35
+  return request({
36
+    url: `/api/sys/dict/updateSysDictParam`,
37
+    method: "POST",
38
+    headers: {
39
+      "Content-type": "application/json",
40
+    },
41
+    data: params,
42
+  });
43
+}
44
+
45
+// 详细
46
+// 新增系统字典数据api
47
+export function addDictValue(params) {
48
+  return request({
49
+    url: `/api/sys/dict/value/addDictValue`,
50
+    method: "POST",
51
+    headers: {
52
+      "Content-type": "application/json",
53
+    },
54
+    data: params,
55
+  });
56
+}
57
+
58
+// 删除字典值
59
+export function deleteSysDictValue(params) {
60
+  return request({
61
+    url: `/api/sys/dict/value/deleteSysDictValue/${params.dictValueId}`,
62
+    method: "DELETE",
63
+    headers: {
64
+      "Content-type": "application/json",
65
+    },
66
+  });
67
+}
68
+
69
+// 根据字典id获取字典数据
70
+export function getValueByDictId(params) {
71
+  return request({
72
+    url: `/api/sys/dict/value/getValueByDictId/${params.dictId}`,
73
+    method: "GET",
74
+  });
75
+}
76
+
77
+// 更新系统字典值api
78
+export function updateSysDictValueParam(params) {
79
+  return request({
80
+    url: `/api/sys/dict/value/updateSysDictValueParam`,
81
+    method: "POST",
82
+    headers: {
83
+      "Content-type": "application/json",
84
+    },
85
+    data: params,
86
+  });
87
+}
88
+
89
+// 根据字典id获取字典数据
90
+export async function getValueByDictCode(params) {
91
+  return request({
92
+    url: `/api/sys/dict/value/getValueByDictCode/${params.dictCode}`,
93
+    method: "GET",
94
+  });
95
+}
96
+
97
+export async function getDmpAccessUrl(params) {
98
+  return request({
99
+    url: `/api/sys/sso/getDmpAccessUrl`,
100
+    method: "GET",
101
+    data: params,
102
+  });
103
+}
104
+
105
+// 根据字典id获取字典数据
106
+export async function getFineReportType(params) {
107
+  return request({
108
+    url: `/api/other/fineReport/getFineReportType`,
109
+    method: "GET",
110
+    data: params,
111
+  });
112
+}

+ 38 - 0
src/apis/dymSql.js

@@ -0,0 +1,38 @@
1
+import request from '@utils/request'
2
+
3
+// 新增业务配置sql
4
+export async function addConfigSql(params) {
5
+  return request({
6
+    url: `/api/sys/dynamic/sql/config/addConfigSql`,
7
+    method: "POST",
8
+    data: params,
9
+  });
10
+}
11
+
12
+// 删除业务配置sql
13
+export async function deleteConfigSql(params) {
14
+  return request({
15
+    url: `/api/sys/dynamic/sql/config/deleteConfigSql/${params.sqlId}`,
16
+    method: "DELETE",
17
+    headers: {
18
+      "Content-type": "application/json",
19
+    },
20
+  });
21
+}
22
+
23
+// 获取所有的业务配置sql
24
+export async function getAllConfigSql(params) {
25
+  return request({
26
+    url: `/api/sys/dynamic/sql/config/getAllConfigSql`,
27
+    method: "GET",
28
+  });
29
+}
30
+
31
+// 更新系统字典api
32
+export async function updateConfigSqlParam(params) {
33
+  return request({
34
+    url: `/api/sys/dynamic/sql/config/updateConfigSqlParam`,
35
+    method: "POST",
36
+    data: params,
37
+  });
38
+}

+ 65 - 0
src/apis/enter.js

@@ -0,0 +1,65 @@
1
+import { switchPage, getUnionId } from "@apis/common.js";
2
+export function saveMenu(currentMenuData = {}) {
3
+  let token;
4
+  let sortTimeToken = localStorage.getItem("sortTimeToken");
5
+  if (sortTimeToken) {
6
+    token = sortTimeToken;
7
+    sessionStorage.setItem("token", sortTimeToken);
8
+    localStorage.setItem("token", sortTimeToken);
9
+    localStorage.removeItem("sortTimeToken");
10
+    sessionStorage.setItem("isSuper", false);
11
+  } else {
12
+    token = sessionStorage.getItem("token");
13
+  }
14
+  let key = currentMenuData.resourceUrl;
15
+  // sessionStorage.setItem("nodeData", JSON.stringify(relationship[key] || {}));
16
+  if (token) {
17
+    if (!sessionStorage.getItem("unionId")) {
18
+      getUnionId().then((data) => {
19
+        if (+data.resultCode === 0) {
20
+          sessionStorage.setItem("unionId", data.data);
21
+          // 设置跳转当前页的 resourceid
22
+          sessionStorage.setItem("curNodeId", "1347063757044404225");
23
+          switchPage({
24
+            // pageId: relationship[key].pageId,
25
+            modelName: currentMenuData.resourceName,
26
+            pageName: currentMenuData.resourceName,
27
+            pageUrl: key,
28
+            resourceId: sessionStorage.getItem("curNodeId"),
29
+            visitId: sessionStorage.getItem("unionId"),
30
+          })
31
+            .then((_) => {
32
+              // next();
33
+              // resolve();
34
+            })
35
+            .catch((_) => {
36
+              // replace("/?needRedirect=1");
37
+              // reject();
38
+            });
39
+          // 配置存进缓存,方便模块调取
40
+        }
41
+      });
42
+    } else {
43
+      switchPage({
44
+        // pageId: relationship[key].pageId,
45
+        modelName: currentMenuData.resourceName,
46
+        pageName: currentMenuData.resourceName,
47
+        pageUrl: key,
48
+        resourceId: sessionStorage.getItem("curNodeId"),
49
+        visitId: sessionStorage.getItem("unionId"),
50
+      })
51
+        .then((_) => {
52
+          // next();
53
+          // resolve();
54
+        })
55
+        .catch((_) => {
56
+          // replace("/?needRedirect=1");
57
+          // reject();
58
+        });
59
+      // 配置存进缓存,方便模块调取
60
+    }
61
+  } else {
62
+    // replace("/?neeFdRedirect=1");
63
+    // reject();
64
+  }
65
+}

+ 116 - 0
src/apis/kbs.js

@@ -0,0 +1,116 @@
1
+import request from "@utils/request";
2
+// 获取知识库
3
+export function getAllDict(params) {
4
+  return request({
5
+    url: `/api/sys/knowledge/base/getKnowledgeBasePage`,
6
+    method: "post",
7
+    data:{
8
+      pageNum:1,
9
+      pageSize:9999
10
+    }
11
+  });
12
+}
13
+
14
+//新增知识库
15
+export function addDict(params) {
16
+  return request({
17
+    url: `/api/sys/knowledge/base/insertSysKnowledgeBaseEntity`,
18
+    method: "POST",
19
+    data: params,
20
+    headers: {
21
+      "Content-type": "application/json",
22
+    },
23
+  });
24
+}
25
+
26
+// 删除知识库
27
+export function deleteSysDict(params) {
28
+  return request({
29
+    url: `/api/sys/knowledge/base/deleteById/${params.knowledgeId}`,
30
+    method: "DELETE",
31
+    headers: {
32
+      "Content-type": "application/json",
33
+    },
34
+  });
35
+}
36
+
37
+// 更新系统知识库api
38
+export function updateSysDictParam(params) {
39
+  return request({
40
+    url: `/api/sys/knowledge/base/updateSysKnowledgeBaseEntity`,
41
+    method: "POST",
42
+    headers: {
43
+      "Content-type": "application/json",
44
+    },
45
+    data: params,
46
+  });
47
+}
48
+
49
+// 详细
50
+// 新增系统知识库数据api
51
+export function addDictValue(params) {
52
+  return request({
53
+    url: `/api/sys/dict/value/addDictValue`,
54
+    method: "POST",
55
+    headers: {
56
+      "Content-type": "application/json",
57
+    },
58
+    data: params,
59
+  });
60
+}
61
+
62
+// 删除知识库值
63
+export function deleteSysDictValue(params) {
64
+  return request({
65
+    url: `/api/sys/dict/value/deleteSysDictValue/${params.dictValueId}`,
66
+    method: "DELETE",
67
+    headers: {
68
+      "Content-type": "application/json",
69
+    },
70
+  });
71
+}
72
+
73
+// 根据知识库id获取知识库数据
74
+export function getValueByDictId(params) {
75
+  return request({
76
+    url: `/api/sys/dict/value/getValueByDictId/${params.dictId}`,
77
+    method: "GET",
78
+  });
79
+}
80
+
81
+// 更新系统知识库值api
82
+export function updateSysDictValueParam(params) {
83
+  return request({
84
+    url: `/api/sys/dict/value/updateSysDictValueParam`,
85
+    method: "POST",
86
+    headers: {
87
+      "Content-type": "application/json",
88
+    },
89
+    data: params,
90
+  });
91
+}
92
+
93
+// 根据知识库id获取知识库数据
94
+export async function getValueByDictCode(params) {
95
+  return request({
96
+    url: `/api/sys/dict/value/getValueByDictCode/${params.dictCode}`,
97
+    method: "GET",
98
+  });
99
+}
100
+
101
+export async function getDmpAccessUrl(params) {
102
+  return request({
103
+    url: `/api/sys/sso/getDmpAccessUrl`,
104
+    method: "GET",
105
+    data: params,
106
+  });
107
+}
108
+
109
+// 根据知识库id获取知识库数据
110
+export async function getFineReportType(params) {
111
+  return request({
112
+    url: `/api/other/fineReport/getFineReportType`,
113
+    method: "GET",
114
+    data: params,
115
+  });
116
+}

+ 26 - 0
src/apis/label.js

@@ -0,0 +1,26 @@
1
+import request from "@utils/request";
2
+//查询1级标签和2级标签
3
+export function getLtLevel3Labels(params) {
4
+  return request({
5
+    url: "/api/tagcenter/category/onetwo",
6
+    method: "GET",
7
+    data: params,
8
+  });
9
+}
10
+// 根据2级标签的tagId集合来获取3级标签的
11
+export function getLevel3Labels(params) {
12
+  return request({
13
+    url: "/api/tagcenter/category/three",
14
+    method: "GET",
15
+    data: params,
16
+  });
17
+}
18
+
19
+// 圈选客户创建分群
20
+export function previewClusterCst(params) {
21
+  return request({
22
+    url: "/ls-data-application/v1/label/previewClusterCst",
23
+    method: "GET",
24
+    data: params,
25
+  });
26
+}

+ 83 - 0
src/apis/login.js

@@ -0,0 +1,83 @@
1
+import request from "@utils/request";
2
+
3
+// 登录
4
+export function login(params) {
5
+  return request({
6
+    url: `/api/base/login`,
7
+    method: "POST",
8
+    data: params,
9
+  });
10
+}
11
+
12
+//  初始化root账号
13
+export function sysInitRoot(params) {
14
+  return request({
15
+    url: `/api/base/sysInitRoot`,
16
+    method: "POST",
17
+    data: params,
18
+  });
19
+}
20
+
21
+// 业态列表
22
+export function getSassList(params) {
23
+  return request({
24
+    url: `/api/base/getSassList`,
25
+    method: "GET",
26
+    data: params,
27
+  });
28
+}
29
+// 判断是否系统管理员
30
+export function judgeRootUser(params) {
31
+  return request({
32
+    url: `/api/base/isRootUser`,
33
+    method: "GET",
34
+    data: params,
35
+  });
36
+}
37
+
38
+export function getUnionId(params) {
39
+  return request({
40
+    url: `/api/view/page/getUniqueId`,
41
+    method: "GET",
42
+    headers: {
43
+      "Content-type": "application/json",
44
+    },
45
+  });
46
+}
47
+
48
+// 超级登录
49
+
50
+export function superManagerlogin(params) {
51
+  return request({
52
+    url: `/api/base/superManagerlogin`,
53
+    method: "POST",
54
+    data: params,
55
+  });
56
+}
57
+
58
+// 判断业态模式
59
+export function isSassMode(params) {
60
+  return request({
61
+    url: `/api/base/isSassMode`,
62
+    method: "GET",
63
+  });
64
+}
65
+
66
+
67
+export function singleLogin(params) {
68
+  return request({
69
+    url: `/api/base/singleLogin`,
70
+    method: "POST",
71
+    data: params,
72
+  });
73
+}
74
+
75
+export function ssoLogin(params) {
76
+  return request({
77
+    url: `/api/sys/sso/login`,
78
+    method: "GET",
79
+    data: params,
80
+  });
81
+}
82
+
83
+

+ 11 - 0
src/apis/menu.js

@@ -0,0 +1,11 @@
1
+import request from '@utils/request';
2
+
3
+
4
+// 获取当前角色菜单
5
+export function getUserResourceTree(params) {
6
+  return request({
7
+    url: `/api/sys/resource/getUserResourceTree`,
8
+    method: "GET",
9
+    data: params,
10
+  });
11
+}

+ 105 - 0
src/apis/operation.js

@@ -0,0 +1,105 @@
1
+// 运维管理apis
2
+import request from '@utils/request'
3
+
4
+// let relationship = JSON.parse(sessionStorage.getItem("nodeData") || {});
5
+
6
+// new
7
+//
8
+//
9
+// 本月人数人均
10
+export function getVisitCountAvgByMonth(params) {
11
+  return request({
12
+    url: `/api/data/account/role/relation/getVisitCountAvgByMonth`,
13
+    method: "GET"
14
+  });
15
+}
16
+
17
+// 本月访问人数统计
18
+export function getVisitCountByMonth(params) {
19
+  return request({
20
+    url: `/api/data/account/role/relation/getVisitCountByMonth`,
21
+    method: "GET"
22
+  });
23
+}
24
+
25
+// 本年访问人数统计
26
+export function getVisitCountByYear(params) {
27
+  return request({
28
+    url: `/api/data/account/role/relation/getVisitCountByYear`,
29
+    method: "GET"
30
+  });
31
+}
32
+
33
+// 功能访问盘行帮
34
+export function getVisitCountModelByMonth(params) {
35
+  return request({
36
+    url: `/api/data/account/role/relation/getVisitCountModelByMonth`,
37
+    method: "POST",
38
+    data: params
39
+  });
40
+}
41
+// 人员访问盘行帮
42
+export function getVisitCountAccountByMonth(params) {
43
+  return request({
44
+    url: `/api/data/account/role/relation/getVisitCountAccountByMonth`,
45
+    method: "POST",
46
+    data: params
47
+  });
48
+}
49
+// 人员访问日志分页
50
+export function getVisitLog(params) {
51
+  return request({
52
+    url: `/api/data/account/role/relation/getVisitLog`,
53
+    method: "POST",
54
+    data: params,
55
+  });
56
+}
57
+
58
+// 获取所有账号类型
59
+export function getAccountTypePage(params) {
60
+  return request({
61
+    url: `/api/sys/account/getAccountTypePage`,
62
+    method: "POST",
63
+    data: params
64
+  });
65
+}
66
+
67
+// 获取访问木块
68
+export function getMenuList(params) {
69
+  return request({
70
+    url: `/api/sys/resource/getResourceTree`,
71
+    method: "GET"
72
+  });
73
+}
74
+
75
+export function getAllDict(params) {
76
+  return request({
77
+    url: `/api/sys/dict/getAllDict`,
78
+    method: "GET"
79
+  });
80
+}
81
+
82
+
83
+export function getLoginCount(params) {
84
+  return request({
85
+    url: `/api/data/account/role/relation/getLoginCount`,
86
+    method: "GET"
87
+  });
88
+}
89
+
90
+//联动移动端菜单
91
+export function getMobileList(params) {
92
+  return request({
93
+    url: `/api/sys/mobile/resource/getMobileResourceTree`,
94
+    method: "GET"
95
+  });
96
+}
97
+
98
+// 分页查询权限变更记录
99
+export function getPermission(params) {
100
+  return request({
101
+    url: `/api/sys/permission/log/getPermissionLogByPage`,
102
+    method: "POST",
103
+    data:params
104
+  });
105
+}

+ 19 - 0
src/apis/outer.js

@@ -0,0 +1,19 @@
1
+import request from "@utils/request";
2
+
3
+// 获取当前用户帆软token
4
+export function getFineBiToken(params) {
5
+  return request({
6
+    url: `/api/finebi/getFineBiToken`,
7
+    method: "GET",
8
+    data: params,
9
+  });
10
+}
11
+
12
+// 获取帆软连接前缀
13
+
14
+export function getPreFineBiUrl(type) {
15
+  return request({
16
+    url: `/api/finebi/getPreFineBiUrl?menuType=${type}`,
17
+    method: "GET",
18
+  });
19
+}

+ 144 - 0
src/apis/personal.js

@@ -0,0 +1,144 @@
1
+//个人中心api
2
+import request from "@utils/request";
3
+
4
+/**
5
+ *获取 当前用户的个人信息
6
+ * @export
7
+ * @param {*} accountId 用户ID
8
+ * @return {*}
9
+ */
10
+export function getAccountTypePage(accountId) {
11
+  return request({
12
+    url: `/api/sys/account/getAccountInfoByAccountId/${accountId}`,
13
+    method: "GET",
14
+  });
15
+}
16
+
17
+export function getAccountTotalUnReadAndDealMsgInfo() {
18
+  return request({
19
+    url: `/api/sys/account/message/getAccountTotalUnReadAndDealMsgInfo`,
20
+    method: "GET",
21
+  });
22
+}
23
+
24
+export function getBaselistAll() {
25
+  return request({
26
+    url: `/api/sys/knowledge/base/listAll`,
27
+    method: "GET",
28
+  });
29
+}
30
+
31
+
32
+
33
+
34
+//消息通知 api
35
+
36
+/**
37
+ *获取 分页获取用户消息列表
38
+ * @export
39
+ * @param {*} accountId 用户ID
40
+ * @return {*}
41
+ */
42
+export function getAccountMsgPage(params) {
43
+  return request({
44
+    url: "/api/sys/account/message/getAccountMsgPage",
45
+    method: "POST",
46
+    data: params,
47
+  });
48
+}
49
+
50
+/**
51
+ * 获取 用户未读消息总数
52
+ * @export
53
+ * @param {*} accountId 用户ID
54
+ * @return {*}
55
+ */
56
+export function getUnReadMessageNum(accountId) {
57
+  return request({
58
+    url: `/api/sys/account/message/getUnReadMessageNum/${localStorage.getItem("accountId") || sessionStorage.getItem("accountId")}`,
59
+    method: "GET",
60
+    // data: params,
61
+  });
62
+}
63
+
64
+/**
65
+ * 设置 用户已读消息 (全部已读 && 标为已读)
66
+ * @export
67
+ * @param {*} accountId 用户ID
68
+ * @param {*} messageIds 选择已读的消息id
69
+ * @return {*}
70
+ */
71
+export function setReadStatus(params) {
72
+  return request({
73
+    url: "/api/sys/account/message/setAccountMessageReadStatus",
74
+    method: "POST",
75
+    data: params,
76
+  });
77
+}
78
+
79
+/**
80
+ * 上传用户头像
81
+ * @export
82
+ * @param {*} multipartFile 图片链接
83
+ * @return {*}
84
+ */
85
+export function uploadUserPic(params) {
86
+  return request({
87
+    url: "/api/sys/account/uploadAccountPic",
88
+    method: "POST",
89
+    headers: {
90
+      "Content-Type": "multipart/form-data",
91
+    },
92
+    data: params,
93
+  });
94
+}
95
+
96
+/**
97
+ * 设置消息待办已办 (问题反馈-已处理)
98
+ * @export
99
+ * @param {*} messageId  消息ID
100
+ * @return {*}
101
+ */
102
+export function setMessageWasDeal(messageId) {
103
+  return request({
104
+    url: `/api/sys/account/message/setMessageWasDeal/${messageId}`,
105
+    method: "GET",
106
+  });
107
+}
108
+
109
+/**
110
+ * 根据id查询定制 菜单资源描述
111
+ * @params resourceId 报表ID
112
+ * @returns
113
+ */
114
+export function getMenuDesc(params) {
115
+  return request({
116
+    url: `/api/sys/resouce/info/selectById/${params.resourceId}`,
117
+    method: "GET",
118
+  });
119
+}
120
+
121
+/**
122
+ * 根据resourceId查询系统资源
123
+ * @params resourceId 报表ID
124
+ * @returns
125
+ */
126
+export function getReportInfo(params) {
127
+  return request({
128
+    url: `/api/sys/resource/getSysResouce/${params.resourceId}`,
129
+    method: "GET",
130
+  });
131
+}
132
+/**
133
+ * 根据resourceId查询用户的菜单信息(消息通知弹框-通过接口字段hasPermission判断是否点击去看看权限)
134
+ * @params resourceId 报表ID
135
+ * @returns
136
+ */
137
+export function getAccountResourceVoByResourceId(params) {
138
+  return request({
139
+    url: `/api/sys/resource/getAccountResourceVoByResourceId/${params.resourceId}`,
140
+    method: "GET",
141
+  });
142
+}
143
+
144
+

+ 53 - 0
src/apis/portray.js

@@ -0,0 +1,53 @@
1
+import request from "@utils/request";
2
+
3
+// 个人标签
4
+export async function getPersonalLabel(params) {
5
+  return request({
6
+    url: "/api/tagcenter/label",
7
+    method: "GET",
8
+    data: params
9
+  });
10
+}
11
+
12
+// 根据客户信息 查询 客户
13
+export async function queryCustomer(params) {
14
+  return request({
15
+    url: "/api/other/biz/CustomerToSjmhDf/queryCustomer",
16
+    method: "POST",
17
+    data: params
18
+  });
19
+}
20
+
21
+// 查询客户 轨迹下拉月份
22
+export async function getCustomerActionTrailMonthList(params) {
23
+  return request({
24
+    url: "/api/other/biz/CustomerActionTrailDf/getCustomerActionTrailMonthList",
25
+    method: "GET",
26
+    data: params
27
+  });
28
+}
29
+
30
+// 根据客户行为轨迹
31
+export async function queryCustomerByClient(params) {
32
+  return request({
33
+    url: "/api/other/biz/CustomerActionTrailDf/queryCustomer",
34
+    method: "POST",
35
+    data: params
36
+  });
37
+}
38
+
39
+// 查询客户社交关系
40
+export async function getCustomerRelation(params) {
41
+  return request({
42
+    url: "/api/other/biz/customerRelationDf/getCustomerRelation",
43
+    method: "GET",
44
+    data: params
45
+  });
46
+}
47
+
48
+
49
+
50
+
51
+
52
+
53
+

+ 92 - 0
src/apis/sass.js

@@ -0,0 +1,92 @@
1
+import request from "@utils/request";
2
+
3
+//新增sass业态管理员
4
+export async function addSassDomainManager(params) {
5
+  return request({
6
+    url: `/api/sys/domain/sass/addSassDomainManager`,
7
+    method: "POST",
8
+    data: params,
9
+    headers: {
10
+      "Content-type": "application/json",
11
+    },
12
+  });
13
+}
14
+
15
+// 删除sass管理权限
16
+export async function deleteSassManagerRelation(params) {
17
+  return request({
18
+    url: `/api/sys/domain/sass/deleteSassManagerRelation/${params.relationId}`,
19
+    method: "DELETE",
20
+    headers: {
21
+      "Content-type": "application/json",
22
+    },
23
+  });
24
+}
25
+
26
+// 获取sass树
27
+export async function getSassList(params) {
28
+  return request({
29
+    url: `/api/sys/resource/getSassList`,
30
+    method: "GET",
31
+  });
32
+}
33
+
34
+// 获取sass管理员
35
+export async function getSassManagers(params) {
36
+  return request({
37
+    url: `/api/sys/domain/sass/getSassManagers/${params.sassId}`,
38
+    method: "GET",
39
+  });
40
+}
41
+
42
+// 获取所有sass业态 (树结构)
43
+export async function getSassTree(params) {
44
+  return request({
45
+    url: `/api/sys/domain/sass/getSassTree`,
46
+    method: "GET",
47
+  });
48
+}
49
+
50
+// 切换sass业态
51
+export async function switchSass(params) {
52
+  return request({
53
+    url: `/api/sys/domain/sass/switchSass/${params.sassId}`,
54
+    method: "GET",
55
+  });
56
+}
57
+
58
+
59
+// 获取账号列表
60
+export async function getAccountTypePage(params) {
61
+  return request({
62
+    url: `/api/sys/account/getAccountTypePage`,
63
+    method: "POST",
64
+    data: params,
65
+  });
66
+}
67
+
68
+
69
+// 新增sass业务
70
+export async function addSassDomainRange(params) {
71
+  return request({
72
+    url: `/api/sys/domain/sass/addSassDomainRange`,
73
+    method: "POST",
74
+    data: params,
75
+    headers: {
76
+      "Content-type": "application/json"
77
+    }
78
+  });
79
+}
80
+
81
+
82
+// 更新sass业态
83
+export async function updateSassDomain(params) {
84
+  return request({
85
+    url: `/api/sys/domain/sass/updateSassDomain`,
86
+    method: "POST",
87
+    data: params,
88
+    headers: {
89
+      "Content-type": "application/json"
90
+    }
91
+  });
92
+}

+ 41 - 0
src/apis/sheet.js

@@ -0,0 +1,41 @@
1
+/*
2
+  报表绑定 api
3
+*/
4
+
5
+import request from "@utils/request";
6
+
7
+// 新增账户关联报表用户
8
+export function addReportRelationUser(params) {
9
+  return request({
10
+    url: `/api/data/report/relation/user/addReportRelationUser`,
11
+    method: "POST",
12
+    data: params,
13
+  });
14
+}
15
+
16
+// 获取登陆用户 关联报表账号
17
+export function getReportRelationUserList(params) {
18
+  return request({
19
+    url: `/api/data/report/relation/user/getReportRelationUserList`,
20
+    method: "POST",
21
+    data: params,
22
+  });
23
+}
24
+
25
+// 更新账户关联报表用户
26
+export function updateReportRelationUser(params) {
27
+  return request({
28
+    url: `/api/data/report/relation/user/updateReportRelationUser`,
29
+    method: "POST",
30
+    data: params,
31
+  });
32
+}
33
+
34
+// 删除账户关联报表用户F
35
+export function deleteReportRelationUser(params) {
36
+  return request({
37
+    url: `/api/data/report/relation/user/deleteReportRelationUser/${params.userRelationId}`,
38
+    method: "DELETE",
39
+
40
+  });
41
+}

+ 824 - 0
src/apis/system.js

@@ -0,0 +1,824 @@
1
+import request from "@utils/request";
2
+// 获取所有账号类型
3
+export function getAccountTypes(params) {
4
+  return request({
5
+    url: `/api/sys/account/getAllAccountType`,
6
+    method: "GET",
7
+  });
8
+}
9
+
10
+// 启用停用账号
11
+export function setAccountStatus(params) {
12
+  return request({
13
+    url: `/api/sys/account/switchAccountStatus/${params.accountId}`,
14
+    method: "GET",
15
+  });
16
+}
17
+
18
+// 管理员修改用户密码
19
+export function changePassword(params) {
20
+  return request({
21
+    url: `/api/sys/account/changePassword`,
22
+    method: "POST",
23
+    data: params,
24
+  });
25
+}
26
+
27
+// 个人修改自己密码
28
+export function changePersonPassword(params) {
29
+  return request({
30
+    url: `/api/sys/account/changePersonPassword`,
31
+    method: "POST",
32
+    data: params,
33
+  });
34
+}
35
+
36
+//删除
37
+export function deleteMenu(params) {
38
+  return request({
39
+    url: `/api/sys/resource/deleteResource/${params.resourceId}`,
40
+    method: "DELETE",
41
+  });
42
+}
43
+
44
+// 获取当前菜单信息
45
+export function searchMenu(params) {
46
+  return request({
47
+    url: `/api/sys/resource/getSysResouce/${params.resourceId}`,
48
+    method: "GET",
49
+  });
50
+}
51
+
52
+//保存权限
53
+export function saveRrivilegeReqDto(params) {
54
+  return request({
55
+    url: `role/saveRrivilegeReqDto`,
56
+    method: "POST",
57
+    data: params,
58
+  });
59
+}
60
+
61
+// 查询角色对应的资源
62
+export function getRoleResources(params) {
63
+  return request({
64
+    url: `/api/sys/role/resource/relation/getRoleResources`,
65
+    method: "GET",
66
+    data: params,
67
+    headers: {
68
+      visitId: "1",
69
+      pageId: "213",
70
+      pageName: "1",
71
+      modelName: "11",
72
+    },
73
+  });
74
+}
75
+
76
+// 查询角色对应的资源(树结构)
77
+export function getRoleResourcesTree(params) {
78
+  return request({
79
+    url: `/api/sys/role/resource/relation/getRoleResourcesTree`,
80
+    method: "GET",
81
+    data: params,
82
+    headers: {
83
+      visitId: "1",
84
+      pageId: "213",
85
+      pageName: "1",
86
+      modelName: "11",
87
+    },
88
+  });
89
+}
90
+// 建立角色和系统资源 关联关系
91
+export function createRoleResourceRelation(params) {
92
+  return request({
93
+    url: `/api/sys/role/resource/relation/createRoleResourceRelation`,
94
+    method: "POST",
95
+    data: params,
96
+  });
97
+}
98
+// 全资源熟
99
+export function getMenuList(params) {
100
+  return request({
101
+    // url: `user/queryUserAccessList?userId=${localStorage.getItem('userId')}`,
102
+    url: `/api/sys/resource/getResourceTree`,
103
+    method: "GET",
104
+  });
105
+}
106
+
107
+/*
108
+ 菜单管理
109
+*/
110
+
111
+// 下移菜单
112
+export function downResouce(params) {
113
+  return request({
114
+    url: `/api/sys/resource/downResouce/${params.resourceId}`,
115
+    method: "GET",
116
+    data: params,
117
+  });
118
+}
119
+
120
+// 上移菜单
121
+export function upResouce(params) {
122
+  return request({
123
+    url: `/api/sys/resource/upResouce/${params.resourceId}`,
124
+    method: "GET",
125
+    data: params,
126
+  });
127
+}
128
+
129
+//新建
130
+export function addMenu(params) {
131
+  return request({
132
+    url: `/api/sys/resource/insertResource`,
133
+    method: "POST",
134
+    data: params,
135
+  });
136
+}
137
+
138
+// 修改
139
+export function updateMenu(params) {
140
+  return request({
141
+    url: `/api/sys/resource/updateResource`,
142
+    method: "POST",
143
+    data: params,
144
+  });
145
+}
146
+
147
+// 根据账号id查询相关信息
148
+
149
+export function getAccountInfoByAccountId(params) {
150
+  return request({
151
+    url: `/api/sys/account/getAccountInfoByAccountId/${params.accountId}`,
152
+    method: "GET",
153
+  });
154
+}
155
+
156
+/*
157
+ 角色
158
+ */
159
+// 定义接口
160
+export function getRole(params) {
161
+  return request({
162
+    url: `/api/sys/role/getAllRolesVo`,
163
+    method: "GET",
164
+    data: params,
165
+  });
166
+}
167
+
168
+export function getRolePage(params) {
169
+  return request({
170
+    url: `/api/sys/role/getRolesPage`,
171
+    method: "POST",
172
+    data: params,
173
+  });
174
+}
175
+
176
+export function queryAllPermission(params) {
177
+  return request({
178
+    url: "resource/list",
179
+    method: "GET",
180
+    data: params,
181
+  });
182
+}
183
+export function getEditRoleById(params) {
184
+  return request({
185
+    url: `role/queryResouceByRoleId`,
186
+    method: "GET",
187
+    data: params,
188
+  });
189
+}
190
+export function updateSysRoleParam(params) {
191
+  return request({
192
+    url: "/api/sys/role/updateSysRoleParam",
193
+    method: "POST",
194
+    data: params,
195
+  });
196
+}
197
+export function addSysRole(params) {
198
+  return request({
199
+    url: "/api/sys/role/addSysRole",
200
+    method: "POST",
201
+    data: params,
202
+  });
203
+}
204
+
205
+export function deleRole(params) {
206
+  return request({
207
+    url: `/api/sys/role/deleteSysRole/${params.roleId}`,
208
+    method: "delete",
209
+  });
210
+}
211
+
212
+export async function createAccountResourceRelation(params) {
213
+  return request({
214
+    url: `/api/sys/account/role/relation/createAccountResourceRelation`,
215
+    method: "POST",
216
+    data: params,
217
+  });
218
+}
219
+
220
+// 查询当前用户的账号信息
221
+export function getCurrentUserAccountInfo() {
222
+  return request({
223
+    url: "/api/sys/account/getCurrentUserAccountInfo",
224
+    method: "GET",
225
+  });
226
+}
227
+
228
+// 删除业态权限
229
+export function deleteSassRight(params) {
230
+  return request({
231
+    url: `/api/sys/account/deleteSassRight/${params.accountId}`,
232
+    method: "GET",
233
+  });
234
+}
235
+
236
+// 设置业态权限
237
+export function setSassRight(params) {
238
+  return request({
239
+    url: `/api/sys/account/setSassRight/${params.accountId}`,
240
+    method: "GET",
241
+  });
242
+}
243
+
244
+// 组织架构数
245
+// export function getOrgTree() {
246
+//   return request({
247
+//     url: `/api/sys/organization/getOrgTree`,
248
+//     method: "GET",
249
+//   });
250
+// }
251
+/**用户管理api */
252
+
253
+//获取所有部门接口
254
+export function getAllDepartment() {
255
+  return request({
256
+    url: "/api/sys/organization/getAllDepartment",
257
+    method: "GET",
258
+  });
259
+}
260
+//获取所有系统角色接口 (多选)
261
+export function getAllRolesVo() {
262
+  return request({
263
+    url: "/api/sys/role/getAllRolesVo?roleType=",
264
+    method: "GET",
265
+  });
266
+}
267
+
268
+//分页查询员工信息
269
+export function getAccountTypePage(params) {
270
+  return request({
271
+    url: "/api/sys/account/getAccountTypePage",
272
+    method: "POST",
273
+    data: params,
274
+  });
275
+}
276
+
277
+//返回未同步员工
278
+export function getDisableAccount(employeeName) {
279
+  return request({
280
+    url: `/api/sys/employee/getDisableAccount?employeeName=${employeeName}`,
281
+    method: "GET",
282
+  });
283
+}
284
+
285
+//判断账号是否存在
286
+export function getCheckAccountExists(employeeName) {
287
+  return request({
288
+    url: `/api/sys/account/checkAccountExists?account=${employeeName}`,
289
+    method: "GET",
290
+  });
291
+}
292
+
293
+//返回未同步员工 新
294
+export function getDisableAccountNew(employeeName) {
295
+  return request({
296
+    url: `/api/sys/employee/getUnCreateCbdOaAccount?employeeName=${employeeName}`,
297
+    method: "GET",
298
+  });
299
+}
300
+
301
+//添加内部员工
302
+export function batchInsertInnerEmployeeAccount(params) {
303
+  return request({
304
+    url: "/api/sys/account/batchInsertInnerEmployeeAccount",
305
+    method: "POST",
306
+    data: params,
307
+  });
308
+}
309
+
310
+//添加内部员工 新
311
+export function addInnerEmployeeAccount(params) {
312
+  return request({
313
+    url: "/api/sys/account/addInnerEmployeeAccount",
314
+    method: "POST",
315
+    data: params,
316
+  });
317
+}
318
+
319
+
320
+//获取所有移动端菜单 (树结构)
321
+export function getMobileResourceTree() {
322
+  return request({
323
+    url: "/api/sys/resource/getMobileResourceTree",
324
+    method: "GET",
325
+  });
326
+}
327
+
328
+// 获取角色对应的移动资源列表
329
+export function getRoleMobileResources(roleId) {
330
+  return request({
331
+    url: `/api/sys/role/resource/relation/getRoleMobileResources?roleId=${roleId}`,
332
+    method: "GET",
333
+  });
334
+}
335
+
336
+//增加外部成员接口
337
+export function addEmployeeAccount(params) {
338
+  return request({
339
+    url: "/api/sys/account/addEmployeeAccount",
340
+    method: "POST",
341
+    data: params,
342
+  });
343
+}
344
+
345
+//增加外部成员接口 新
346
+export function addEmployeeAccountNew(params) {
347
+  return request({
348
+    url: "/api/sys/account/addInnerEmployeeAccount",
349
+    method: "POST",
350
+    data: params,
351
+  });
352
+}
353
+
354
+//修改用户信息
355
+export function updateEmployeeInfo(params) {
356
+  return request({
357
+    url: "/api/sys/employee/updateEmployeeInfo",
358
+    method: "POST",
359
+    data: params,
360
+  });
361
+}
362
+
363
+//设置超管接口
364
+export function setSuperRootUser(params) {
365
+  return request({
366
+    url: `/api/sys/account/setSuperRootUser?accountId=${params.accountId}&isSuper=${params.superRootAccount}`,
367
+    method: "GET",
368
+  });
369
+}
370
+
371
+//获取所有直接子级组织
372
+export function getOrgTree(orgId) {
373
+  return request({
374
+    // url: `/api/sys/organization/getOrgTree`,
375
+    url: `/api/sys/organization/getSonOrganizations`,
376
+    method: "GET",
377
+    data: orgId ? { orgId } : {},
378
+  });
379
+}
380
+
381
+//获取所有直接子级组织
382
+export function getOrgTree2(orgId) {
383
+  return request({
384
+    url: `/api/sys/organization/getOrgTree`,
385
+    method: "GET",
386
+    data: orgId ? { orgId } : {},
387
+  });
388
+}
389
+
390
+//获取所有子级数据权限
391
+export function getSonDataResource(params) {
392
+  return request({
393
+    url: `/api/data/resource/getSonDataResource`,
394
+    method: "GET",
395
+    data: params,
396
+  });
397
+}
398
+
399
+//获取所有子级数据权限 新
400
+export function getSonDataResourceNew(params) {
401
+  return request({
402
+    url: `/api/data/resource/getAdbDataResourceTree?permissionType=${params}`,
403
+    method: "GET",
404
+  });
405
+}
406
+
407
+//批量分配数据权限
408
+export function batchInsertAccountAndDataResource(params) {
409
+  return request({
410
+    url: "/api/data/resource/batchInsertAccountAndDataResource",
411
+    method: "POST",
412
+    data: params,
413
+  });
414
+}
415
+
416
+//权限信息导出
417
+export function downloadUserPower(params) {
418
+  return request({
419
+    url: "/api/sys/account/downloadUserPower",
420
+    method: "POST",
421
+    data: params,
422
+    responseType: "blob",
423
+  });
424
+}
425
+
426
+//用户数据权限
427
+export function getFineBiPowerList(accountId) {
428
+  return request({
429
+    url: `/api/finebipower/getFineBiPowerList?accountId=${accountId}`,
430
+    method: "GET",
431
+  });
432
+}
433
+
434
+//获取用户拥有的数据权限
435
+export function getDataResourceByAccount(params) {
436
+  return request({
437
+    url: "/api/data/resource/getDataResourceByAccount",
438
+    method: "get",
439
+    data: params,
440
+  });
441
+}
442
+
443
+//获取用户拥有的根区域(营运中心)权限列表2023-06-08新增
444
+export function getRootAreaDataResourceByAccount(params) {
445
+  return request({
446
+    url: `/api/data/resource/getRootAreaDataResourceByAccount?accountId=${params}`,
447
+    method: "get",
448
+  });
449
+}
450
+
451
+//获取用户拥有的区域(省份/城市/门店)权限列表2023-06-08新增
452
+export function getSonAreaDataResourceByAccount(params) {
453
+  return request({
454
+    url: `/api/data/resource/getSonAreaDataResourceByAccount?accountId=${params.accountId}&dataResourceType=${params.dataResourceType}`,
455
+    method: "get",
456
+  });
457
+}
458
+
459
+//获取用户拥有的数据权限 新
460
+export function getDataResourceByAccountNew(params) {
461
+  return request({
462
+    url: "/api/data/resource/getAdbDataResourceByAccount",
463
+    method: "get",
464
+    data: params,
465
+  });
466
+}
467
+
468
+//获取大区
469
+export function getDataResourceByAccountNew0() {
470
+  return request({
471
+    url: "/api/data/resource/getRootAreaDataResource",
472
+    method: "get",
473
+  });
474
+}
475
+
476
+//根据大区获取省份数据
477
+export function getDataResourceByAccountNew1(params) {
478
+  return request({
479
+    url: "/api/data/resource/getSonAreaDataResource",
480
+    method: "post",
481
+    data: params,
482
+  });
483
+}
484
+
485
+
486
+//根据省份获取城市数据
487
+export function getDataResourceByAccountNew2(params) {
488
+  return request({
489
+    url: "/api/data/resource/getSonAreaDataResource",
490
+    method: "post",
491
+    data: params,
492
+  });
493
+}
494
+
495
+//获取未加载的报表
496
+export function getDataResourceByAccountNew8() {
497
+  return request({
498
+    // url: "/api/data/resource/queryCallYongIndexRet",
499
+    url:"api/data/resource/queryErrorDataSets",
500
+    method: "get",
501
+    // data: {
502
+    //   account:localStorage.getItem("account")
503
+    // },
504
+  });
505
+}
506
+
507
+//重新加载
508
+export function getDataResourceByAccountNew9(params) {
509
+  return request({
510
+    url: `/api/data/resource/freshDataSetColumnFilter?dataSetPath=${params}`,
511
+    method: "post",
512
+    // data: params,
513
+  });
514
+}
515
+
516
+
517
+//根据城市获取门店数据
518
+export function getDataResourceByAccountNew3(params) {
519
+  return request({
520
+    url: "/api/data/resource/getSonAreaDataResource",
521
+    method: "post",
522
+    data: params,
523
+  });
524
+}
525
+
526
+//获取用户拥有的数据权限分页
527
+export function getDataResourcePageByAccount(params) {
528
+  return request({
529
+    url: "/api/data/resource/getDataResourcePageByAccount",
530
+    method: "get",
531
+    data: params,
532
+  });
533
+}
534
+
535
+// 角色权限数,
536
+export function getRoleMobileResourcesTree(roleId) {
537
+  return request({
538
+    url: `/api/sys/role/resource/relation/getRoleMobileResourcesTree?roleId=${roleId}`,
539
+    method: "get",
540
+  });
541
+}
542
+
543
+//获取角色下的成员
544
+export function getRoleNumber(params) {
545
+  return request({
546
+    url: "/api/sys/account/role/relation/getRoleNumber",
547
+    method: "POST",
548
+    data: params,
549
+  });
550
+}
551
+//批量分配角色成员
552
+export function batchInsertRoleNumbers(params) {
553
+  return request({
554
+    url: "/api/sys/account/role/relation/batchInsertRoleNumbers",
555
+    method: "POST",
556
+    data: params,
557
+  });
558
+}
559
+//模糊搜索用户(pc菜单管理-报表上线通知)
560
+export function getAccountInfoByName(params) {
561
+  return request({
562
+    url: "/api/sys/account/getAccountInfoByName",
563
+    method: "GET",
564
+    data: params,
565
+  });
566
+}
567
+
568
+// 分页获取消息任务列表
569
+export function getMessagePushJobPageVos(params) {
570
+  return request({
571
+    url: "/api/qw/message/push/job/getMessagePushJobPageVos",
572
+    method: "POST",
573
+    data: params,
574
+  });
575
+}
576
+
577
+//中止企微消息推送任务
578
+export function stopQwMessageJobById(jobId) {
579
+  return request({
580
+    url: `/api/qw/message/push/job/stopQwMessageJobById/${jobId}`,
581
+    method: "POST",
582
+    // data: params,
583
+  });
584
+}
585
+
586
+// 系统公告分页
587
+export function getAccountMsgPage(params) {
588
+  return request({
589
+    url: "/api/sys/update/msg/getSysUpdateMsgPageVo",
590
+    method: "POST",
591
+    data: params,
592
+  });
593
+}
594
+// 数据填报完后对当前填报数据进行预览
595
+export function preViewFillInData(params,data) {
596
+  return request({
597
+    url: `/api/biz/table/config/preViewFillInData/${params}?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
598
+    method: "post",
599
+  });
600
+}
601
+// 对文件上传记录的数据进行预览
602
+export function preRecordViewFillInData(params,data) {
603
+  return request({
604
+    url: `/api/biz/table/config/preRecordViewFillInData/${params}?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
605
+    method: "post",
606
+  });
607
+}
608
+// 获取所有的填报权限配置
609
+export function getAllTableConfigs(params) {
610
+  return request({
611
+    url: "/api/biz/table/config/getAllTableConfigs",
612
+    method: "get",
613
+  });
614
+}
615
+// 添加系统公告
616
+export function sendSystemUpdateMsg(params) {
617
+  return request({
618
+    url: "/api/sys/account/message/sendSystemUpdateMsg",
619
+    method: "POST",
620
+    data: params,
621
+  });
622
+}
623
+// 修改系统公告
624
+export function updateSysUpdateMsgEntity(params) {
625
+  return request({
626
+    url: "/api/sys/update/msg/updateSysUpdateMsgEntity",
627
+    method: "POST",
628
+    data: params,
629
+  });
630
+}
631
+// 2022-10-31新增:查询当前用户某个菜单模块(一级菜单)的模块公告信息
632
+export function listUserModuleBulletins(params) {
633
+  return request({
634
+    url: `/api/sys/account/message/listUserModuleBulletins/${params}`,
635
+    method: "POST",
636
+    data: params,
637
+  });
638
+}
639
+// 2023-9-8新增:查询当前用户某个菜单模块(一级菜单)的模块公告信息 - 新
640
+export function listUserModuleBulletinsNew(params) {
641
+  return request({
642
+    url: `/api/sys/update/msg/getSysUpdateMsgPageVo`,
643
+    method: "POST",
644
+    data: params,
645
+  });
646
+}
647
+
648
+// 2023-10-9新增:分页获取系统上线消息-携带用户信息 2023-10-08号新增 请求参数:sysUpdateMsgFuncType必传
649
+export function listUserModuleBulletinsNew2(params) {
650
+  return request({
651
+    url: `/api/sys/update/msg/getSysUpdateMsgPageVoWithUser`,
652
+    method: "POST",
653
+    data: params,
654
+  });
655
+}
656
+
657
+// 当前用户关闭 线上通知类型的 系统公告消息 2023-10-08号新增
658
+export function closeUpdateMsg(params) {
659
+  return request({
660
+    url: `/api/sys/update/msg/closeUpdateMsg`,
661
+    method: "POST",
662
+    data: params,
663
+  });
664
+}
665
+
666
+// PC端钉钉单点登录本系统
667
+export function getAccountByCodeForMobile(code,authCode) {
668
+  if(!authCode){authCode = escape(' ')}
669
+  if(!code){code = escape(' ')}
670
+  return request({
671
+    url: `/api/mobile/getAccountByCodeForMobile/${code}/${authCode}`,
672
+    method: "GET",
673
+  });
674
+}
675
+
676
+//获取企微消息所有发送人列表
677
+export function getQwMessageSendAccountList(params) {
678
+  return request({
679
+    url: "/api/qw/message/push/job/getQwMessageSendAccountList",
680
+    method: "GET",
681
+    data: params,
682
+  });
683
+}
684
+
685
+//企微消息任务重新推送
686
+export function reSendQwMessageByJobId(jobId) {
687
+  return request({
688
+    url: `/api/qw/message/push/job/reSendQwMessageByJobId/${jobId}`,
689
+    method: "GET",
690
+  });
691
+}
692
+
693
+//单次推送-详情
694
+export function getQwMessagePushJobAccountByType(params) {
695
+  return request({
696
+    url: `/api/qw/message/account/relation/getQwMessagePushJobAccountByType`,
697
+    method: "POST",
698
+    data: params,
699
+  });
700
+}
701
+
702
+//定时推送 (如下部分api)
703
+// 调度任务信息详情分页
704
+export function getAllScheduledTaskInfo(params) {
705
+  return request({
706
+    url: `/api/scheduled/task/info/getAllScheduledTaskInfo`,
707
+    method: "POST",
708
+    data: params,
709
+  });
710
+}
711
+
712
+//更新一条调度任务信息详情
713
+export function updateScheduledTaskInfoEntity(params) {
714
+  return request({
715
+    url: `/api/scheduled/task/info/updateScheduledTaskInfoEntity`,
716
+    method: "POST",
717
+    data: params,
718
+  });
719
+}
720
+
721
+//调度推送记录分页查询
722
+export function getTaskRecordPage(params) {
723
+  return request({
724
+    url: `/api/scheduled/task/record/getTaskRecordPage`,
725
+    method: "POST",
726
+    data: params,
727
+  });
728
+}
729
+
730
+//点击人数记录
731
+export function getTaskRecordClickerInfo(params) {
732
+  return request({
733
+    url: `/api/scheduled/task/record/getTaskRecordClickerInfo/${params.taskRecordId}`,
734
+    method: "POST",
735
+    data: params,
736
+  });
737
+}
738
+
739
+//调度推送记录详情(接收人数分页)
740
+export function getTaskRecordReceiverInfo(params) {
741
+  return request({
742
+    url: `/api/scheduled/task/record/getTaskRecordReceiverInfo`,
743
+    method: "POST",
744
+    data: params,
745
+  });
746
+}
747
+
748
+//调度任务手动触发
749
+export function executeScheduledTask(params) {
750
+  return request({
751
+    url: `/api/scheduled/task/info/executeScheduledTask`,
752
+    method: "POST",
753
+    data: params,
754
+  });
755
+}
756
+
757
+//批量插入调度任务人工确认配置
758
+export function insertArtificialDuty(params, scheduledTaskId) {
759
+  return request({
760
+    url: `/api/scheduled/task/confirmer/insertBatchScheduledTaskConfirmerEntity/${scheduledTaskId}`,
761
+    method: "POST",
762
+    data: params,
763
+  });
764
+}
765
+
766
+// 根据任务id获取调度任务确认人列表
767
+export function getScheduledTaskConfirmerByTaskId(params) {
768
+  return request({
769
+    url: `/api/scheduled/task/confirmer/getScheduledTaskConfirmerByTaskId`,
770
+    method: "GET",
771
+    data: params,
772
+  });
773
+}
774
+
775
+//根据调度任务id获取推送对象(管理人员分页)
776
+export function getManagePageList(params) {
777
+  return request({
778
+    url: `/api/scheduled/task/receiver/getScheduledTaskReceiveByScheduledTaskId`,
779
+    method: "POST",
780
+    data: params,
781
+  });
782
+}
783
+
784
+// 根据调度任务id获取推送对象列表(不分页,用户和角色列表)(定时推送-推送对象-管理人员-管理)-穿梭框发送对象
785
+export function getManageRightTransfer(params) {
786
+  return request({
787
+    url: `/api/scheduled/task/receiver/getScheduledTaskReceiveListByScheduledTaskId`,
788
+    method: "GET",
789
+    data: params,
790
+  });
791
+}
792
+
793
+//根据调度任务id获取推送对象(管理人员分页)(定时推送-推送对象-管理人员-管理)-穿梭框保存
794
+export function saveManageTransfer(params, scheduledTaskId) {
795
+  return request({
796
+    url: `/api/scheduled/task/receiver/saveScheduledTaskReceiver/${scheduledTaskId}`,
797
+    method: "POST",
798
+    data: params,
799
+  });
800
+}
801
+// 根据字典id获取字典数据
802
+export function getValueByDictCode(params) {
803
+  return request({
804
+    url: `/api/sys/dict/value/getValueByDictCode/${params.dictCode}`,
805
+    method: "GET",
806
+  });
807
+}
808
+
809
+// 报表全览-获取报表全览的 默认菜单列表信息
810
+export function getManageRightTransferList() {
811
+  return request({
812
+    url: `/api/sys/resource/getReportOverView`,
813
+    method: "GET",
814
+  });
815
+}
816
+
817
+// 修改用户默认移动端跳转链接api
818
+export function setDefaultMobileUrl(params) {
819
+  return request({
820
+    url: `/api/sys/account/setDefaultMobileUrl/${params.id}?defaultMobileUrl=${params.defaultMobileUrl}`,
821
+    method: "post",
822
+  });
823
+}
824
+

+ 13 - 0
src/apis/test.js

@@ -0,0 +1,13 @@
1
+import request from "@utils/request.js";
2
+
3
+// 近一年客户量趋势 0全部 1地产 2物业 3教育
4
+/**
5
+ * @returns {function}
6
+ */
7
+export function getSeriesData(params) {
8
+  return request({
9
+    url: `/api/test`,
10
+    method: "GET",
11
+    data: params,
12
+  });
13
+}

+ 228 - 0
src/apis/work.js

@@ -0,0 +1,228 @@
1
+import request from "@utils/request";
2
+
3
+// 获取用户常用报表
4
+export function getAccountComresources() {
5
+  return request({
6
+    url: `/api/sys/comresource/account/relation/getGrobalComresources`,
7
+    method: "GET",
8
+  });
9
+}
10
+
11
+// 获取用户常用报表 新
12
+export function getAccountComresourcesNew() {
13
+  return request({
14
+    url: `/api/sys/comresource/account/relation/getGrobalComresources`,
15
+    method: "GET",
16
+  });
17
+}
18
+
19
+// 获取用户常用报表 新
20
+export function deleteById(relationId) {
21
+  return request({
22
+    url: `/api/sys/comresource/account/relation/deleteById/${relationId}`,
23
+    method: "delete",
24
+  });
25
+}
26
+
27
+
28
+export function getUnionId() {
29
+  return request({
30
+    url: `/api/view/page/getUniqueId`,
31
+    method: "GET",
32
+    headers: {
33
+      "Content-type": "application/json",
34
+    },
35
+  });
36
+}
37
+
38
+
39
+/**
40
+ * 新增常用报表
41
+ * @param {*} params   {
42
+  "resourceId": 1430523760486899713,
43
+  "sortNo": 3
44
+} 
45
+ * @returns 
46
+ */
47
+export function insertSysComresourceAccountRelationEntity(params) {
48
+  return request({
49
+    url: `/api/sys/comresource/account/relation/insertSysComresourceAccountRelationEntity`,
50
+    method: "POST",
51
+    data: params,
52
+  });
53
+}
54
+/**
55
+ * 新增常用报表 新
56
+} 
57
+ * @returns 
58
+ */
59
+export function insertSysComresourceAccountRelationEntityNew(params) {
60
+  return request({
61
+    url: `/api/sys/comresource/account/relation/insertSysComresourceGrobalRelationEntity`,
62
+    method: "POST",
63
+    data: params,
64
+  });
65
+}
66
+
67
+/**
68
+ * 配置用户常用报表
69
+ * @param {*} params   {
70
+    "accountId": 1429100127482679393, (用户id 前端保存的, 参考移动端)
71
+    "entityVOS": [
72
+      {
73
+        "resourceId": 1430520929776295938, (报表id)
74
+        "sortNo": 2 (序号)
75
+      }
76
+    ]
77
+  }
78
+ * @returns 
79
+ */
80
+export function batchSetAccountComresources(params) {
81
+  return request({
82
+    url: `/api/sys/comresource/account/relation/batchSetGlobalComresources`,
83
+    method: "POST",
84
+    data: params,
85
+  });
86
+}
87
+
88
+// 获取用户有权限的报表中心和驾驶舱结构树(添加常用报表下拉树)
89
+export function getLoginUserFineResourceTree() {
90
+  return request({
91
+    url: `/api/sys/account/resource/relation/getAccountFineReportResource`,
92
+    method: "GET",
93
+  });
94
+}
95
+
96
+/**
97
+ * 获取最近浏览报表
98
+ * @param {*} resourceId 从原型图中可以看出该入参有两个选择一个是报表中心,一个是驾驶舱
99
+这个两个菜单的id写死在代码中
100
+ * @returns 
101
+ */
102
+export function getRecentBrowseByResourceId(resourceId) {
103
+  return request({
104
+    url: `/api/sys/api/log/getRecentBrowseByResourceId/${resourceId}`,
105
+    method: "GET",
106
+  });
107
+}
108
+
109
+/**
110
+ * 获取用户关注的报表
111
+ * @param {*} resourceId 报表中心或驾驶舱的id
112
+ * @param {*} searchResourceName 支持模糊查询,为空查全部
113
+ * @returns
114
+ */
115
+ export function getAccountCareResource(resourceId, searchResourceName) {
116
+  return request({
117
+    url: `/api/sys/careresource/account/relation/getAccountCareResource?resourceId=${resourceId}&searchResourceName=${searchResourceName}`,
118
+    method: "GET",
119
+  });
120
+}
121
+
122
+/**
123
+ * 获取用户所有关注的报表
124
+ */
125
+ export function getAccountAllCareResource() {
126
+  return request({
127
+    url: `/api/sys/careresource/account/relation/getAccountAllCareResource`,
128
+    method: "GET",
129
+  });
130
+}
131
+
132
+/**
133
+ * 用户关注或取关报表
134
+ * @param {*} isCare  true:关注 , false :取关
135
+ * @param {*} resourceId  关注或取关的报表id
136
+ * @returns
137
+ */
138
+export function careOrCancelResource(isCare, resourceId) {
139
+  return request({
140
+    url: `/api/sys/careresource/account/relation/careOrCancelResource?isCare=${isCare}&resourceId=${resourceId}`,
141
+    method: "GET",
142
+  });
143
+}
144
+
145
+/**
146
+ * 报表全览左侧目录树
147
+ * @param {*} resourceId 报表中心或驾驶舱的id
148
+ * @returns
149
+ */
150
+export function getAllCategoryTree(resourceId) {
151
+  return request({
152
+    url: `/api/sys/resource/getAllCategoryTree?resourceId=${resourceId}`,
153
+    method: "GET",
154
+  });
155
+}
156
+
157
+/**
158
+ * 报表全览右侧
159
+ * @param {*} params   {
160
+  "accountId": 0, (用户id 登录接口有返回)
161
+  "fineResourceName": "string", (支持模糊查询,不传查全部)
162
+  "hasPermission": true, (true:有权限 ,false:无权限 ,null:全部)
163
+  "resourceId": 0, (左侧树中的菜单id)
164
+  "topResourceId": 0 (报表中心或驾驶舱的id )
165
+}
166
+ * @returns 
167
+ */
168
+export function getResourcesLinearList(params) {
169
+  return request({
170
+    url: `/api/sys/resource/getResourcesLinearList`,
171
+    method: "POST",
172
+    data: params,
173
+  });
174
+}
175
+
176
+/**
177
+ * 获取用户基本信息接口
178
+ * @param {*} accountId  用户id
179
+ * @returns
180
+ */
181
+export function getAccountInfo(accountId) {
182
+  return request({
183
+    url: `/api/sys/account/getAccountInfoByAccountId/${accountId}`,
184
+    method: "GET",
185
+  });
186
+}
187
+
188
+/**
189
+ * 设置消息待办已办
190
+ * @param {*} {
191
+  "accountId": 0,  (消息拥有者id)
192
+  "messageIds": [
193
+    0
194
+  ]   (选择已读的消息id)
195
+}
196
+ * @returns
197
+ */
198
+export function setAccountMessageReadStatus(params) {
199
+  return request({
200
+    url: `/api/sys/account/message/setAccountMessageReadStatus`,
201
+    method: "POST",
202
+    data: params,
203
+  });
204
+}
205
+
206
+/**
207
+ * 获取socket id
208
+ * @params resourceId 报表ID
209
+ * @returns
210
+ */
211
+export function registerDataMsgSocket() {
212
+  return request({
213
+    url: `/api/websocket/dataMessage/registerDataMsgSocket`,
214
+    method: "GET",
215
+  });
216
+}
217
+
218
+/**
219
+ * 根据resourceId查询系统资源
220
+ * @params resourceId 报表ID
221
+ * @returns
222
+ */
223
+export function getReportInfo(params) {
224
+  return request({
225
+    url: `/api/sys/resource/getSysResouce/${params.resourceId}`,
226
+    method: "GET",
227
+  });
228
+}

+ 5 - 0
src/assets/css/common.css

@@ -0,0 +1,5 @@
1
+
2
+/* 公共 css */
3
+#app{
4
+  height: inherit;
5
+}

+ 534 - 0
src/assets/css/iconfont.css

@@ -0,0 +1,534 @@
1
+@font-face {
2
+  font-family: "iconfont"; /* Project id 2734881 */
3
+  src: url('//at.alicdn.com/t/font_2734881_w19s7wvvr5k.woff2?t=1634633142729') format('woff2'),
4
+       url('//at.alicdn.com/t/font_2734881_w19s7wvvr5k.woff?t=1634633142729') format('woff'),
5
+       url('//at.alicdn.com/t/font_2734881_w19s7wvvr5k.ttf?t=1634633142729') format('truetype');
6
+}
7
+
8
+.iconfont {
9
+  font-family: "iconfont" !important;
10
+  font-size: 16px;
11
+  font-style: normal;
12
+  -webkit-font-smoothing: antialiased;
13
+  -moz-osx-font-smoothing: grayscale;
14
+}
15
+
16
+.a-user-line2x:before {
17
+  content: "\e7a1";
18
+}
19
+
20
+.a-lock-line2x:before {
21
+  content: "\e7a2";
22
+}
23
+
24
+.a-logout-circle-r-line2x:before {
25
+  content: "\e7a4";
26
+}
27
+
28
+.a-settings-line2x:before {
29
+  content: "\e7a0";
30
+}
31
+
32
+.ic_upload:before {
33
+  content: "\e615";
34
+}
35
+
36
+.ic_add:before {
37
+  content: "\e618";
38
+}
39
+
40
+.verticalleft:before {
41
+  content: "\e851";
42
+}
43
+
44
+.right:before {
45
+  content: "\e852";
46
+}
47
+
48
+.left:before {
49
+  content: "\e853";
50
+}
51
+
52
+.up:before {
53
+  content: "\e854";
54
+}
55
+
56
+.down:before {
57
+  content: "\e855";
58
+}
59
+
60
+.doubleright:before {
61
+  content: "\e859";
62
+}
63
+
64
+.arrowup:before {
65
+  content: "\e85b";
66
+}
67
+
68
+.arrowleft:before {
69
+  content: "\e85c";
70
+}
71
+
72
+.arrowdown:before {
73
+  content: "\e85d";
74
+}
75
+
76
+.upload:before {
77
+  content: "\e85e";
78
+}
79
+
80
+.colum-height:before {
81
+  content: "\e85f";
82
+}
83
+
84
+.vertical-align-botto:before {
85
+  content: "\e860";
86
+}
87
+
88
+.icon_login_id:before {
89
+  content: "\e65a";
90
+}
91
+
92
+.icon_login_mima:before {
93
+  content: "\e660";
94
+}
95
+
96
+.plus-circle-copy-copy:before {
97
+  content: "\e95c";
98
+}
99
+
100
+.check-circle:before {
101
+  content: "\e78b";
102
+}
103
+
104
+.compass:before {
105
+  content: "\e78c";
106
+}
107
+
108
+.close-circle:before {
109
+  content: "\e790";
110
+}
111
+
112
+.frown:before {
113
+  content: "\e793";
114
+}
115
+
116
+.left-circle:before {
117
+  content: "\e794";
118
+}
119
+
120
+.down-circle:before {
121
+  content: "\e797";
122
+}
123
+
124
+.minus-circle:before {
125
+  content: "\e798";
126
+}
127
+
128
+.meh:before {
129
+  content: "\e799";
130
+}
131
+
132
+.plus-circle:before {
133
+  content: "\e79a";
134
+}
135
+
136
+.timeout:before {
137
+  content: "\e79b";
138
+}
139
+
140
+.warning-circle:before {
141
+  content: "\e79c";
142
+}
143
+
144
+.sync:before {
145
+  content: "\e79d";
146
+}
147
+
148
+.piechart:before {
149
+  content: "\e79f";
150
+}
151
+
152
+.edit-square:before {
153
+  content: "\e7a3";
154
+}
155
+
156
+.control:before {
157
+  content: "\e7ad";
158
+}
159
+
160
+.project:before {
161
+  content: "\e7b3";
162
+}
163
+
164
+.filter:before {
165
+  content: "\e800";
166
+}
167
+
168
+.funnelplot:before {
169
+  content: "\e801";
170
+}
171
+
172
+.medicinebox:before {
173
+  content: "\e809";
174
+}
175
+
176
+.shop:before {
177
+  content: "\e80a";
178
+}
179
+
180
+.shopping:before {
181
+  content: "\e80c";
182
+}
183
+
184
+.folder:before {
185
+  content: "\e80d";
186
+}
187
+
188
+.folder-open:before {
189
+  content: "\e80e";
190
+}
191
+
192
+.folder-add:before {
193
+  content: "\e80f";
194
+}
195
+
196
+.carryout:before {
197
+  content: "\e813";
198
+}
199
+
200
+.scan:before {
201
+  content: "\e816";
202
+}
203
+
204
+.cloud-upload:before {
205
+  content: "\e824";
206
+}
207
+
208
+.cloud-download:before {
209
+  content: "\e826";
210
+}
211
+
212
+.fullscreen-exit:before {
213
+  content: "\e857";
214
+}
215
+
216
+.totop:before {
217
+  content: "\e862";
218
+}
219
+
220
+.crown:before {
221
+  content: "\e88d";
222
+}
223
+
224
+.check-circle-fill:before {
225
+  content: "\e894";
226
+}
227
+
228
+.left-circle-fill:before {
229
+  content: "\e895";
230
+}
231
+
232
+.down-circle-fill:before {
233
+  content: "\e896";
234
+}
235
+
236
+.minus-circle-fill:before {
237
+  content: "\e897";
238
+}
239
+
240
+.close-circle-fill:before {
241
+  content: "\e898";
242
+}
243
+
244
+.info-circle-fill:before {
245
+  content: "\e899";
246
+}
247
+
248
+.up-circle-fill:before {
249
+  content: "\e89a";
250
+}
251
+
252
+.right-circle-fill:before {
253
+  content: "\e89b";
254
+}
255
+
256
+.plus-circle-fill:before {
257
+  content: "\e89c";
258
+}
259
+
260
+.question-circle-fill:before {
261
+  content: "\e89d";
262
+}
263
+
264
+.EURO-circle-fill:before {
265
+  content: "\e89e";
266
+}
267
+
268
+.warning-circle-fill:before {
269
+  content: "\e8a9";
270
+}
271
+
272
+.time-circle-fill:before {
273
+  content: "\e8aa";
274
+}
275
+
276
+.heart-fill:before {
277
+  content: "\e8ad";
278
+}
279
+
280
+.piechart-circle-fil:before {
281
+  content: "\e8ae";
282
+}
283
+
284
+.check-square-fill:before {
285
+  content: "\e8b1";
286
+}
287
+
288
+.down-square-fill:before {
289
+  content: "\e8b2";
290
+}
291
+
292
+.minus-square-fill:before {
293
+  content: "\e8b3";
294
+}
295
+
296
+.close-square-fill:before {
297
+  content: "\e8b4";
298
+}
299
+
300
+.left-square-fill:before {
301
+  content: "\e8b6";
302
+}
303
+
304
+.play-square-fill:before {
305
+  content: "\e8b7";
306
+}
307
+
308
+.up-square-fill:before {
309
+  content: "\e8b8";
310
+}
311
+
312
+.right-square-fill:before {
313
+  content: "\e8b9";
314
+}
315
+
316
+.plus-square-fill:before {
317
+  content: "\e8ba";
318
+}
319
+
320
+.accountbook-fill:before {
321
+  content: "\e8bb";
322
+}
323
+
324
+.carryout-fill:before {
325
+  content: "\e8bc";
326
+}
327
+
328
+.calendar-fill:before {
329
+  content: "\e8bd";
330
+}
331
+
332
+.calculator-fill:before {
333
+  content: "\e8be";
334
+}
335
+
336
+.interation-fill:before {
337
+  content: "\e8bf";
338
+}
339
+
340
+.project-fill:before {
341
+  content: "\e8c0";
342
+}
343
+
344
+.detail-fill:before {
345
+  content: "\e8c1";
346
+}
347
+
348
+.control-fill:before {
349
+  content: "\e8c4";
350
+}
351
+
352
+.file-exclamation-fil:before {
353
+  content: "\e8cf";
354
+}
355
+
356
+.snippets-fill:before {
357
+  content: "\e8dd";
358
+}
359
+
360
+.batchfolding-fill:before {
361
+  content: "\e8de";
362
+}
363
+
364
+.reconciliation-fill:before {
365
+  content: "\e8df";
366
+}
367
+
368
+.folder-open-fill:before {
369
+  content: "\e8e2";
370
+}
371
+
372
+.image-fill:before {
373
+  content: "\e8e7";
374
+}
375
+
376
+.idcard-fill:before {
377
+  content: "\e8e8";
378
+}
379
+
380
+.creditcard-fill:before {
381
+  content: "\e8e9";
382
+}
383
+
384
+.clear:before {
385
+  content: "\e948";
386
+}
387
+
388
+.ic_project:before {
389
+  content: "\e610";
390
+}
391
+
392
+.plus-circle-copy-copy-copy:before {
393
+  content: "\e95d";
394
+}
395
+
396
+.icon_arrowdown:before {
397
+  content: "\e75e";
398
+}
399
+
400
+.icon_delete:before {
401
+  content: "\e760";
402
+}
403
+
404
+.icon_left2:before {
405
+  content: "\e763";
406
+}
407
+
408
+.icon_right2:before {
409
+  content: "\e764";
410
+}
411
+
412
+.icon_qingchu:before {
413
+  content: "\e767";
414
+}
415
+
416
+.icon_shouye:before {
417
+  content: "\e768";
418
+}
419
+
420
+.icon_quanxianguanli:before {
421
+  content: "\e76b";
422
+}
423
+
424
+.icon_jiaoyiguanli:before {
425
+  content: "\e76f";
426
+}
427
+
428
+.icon_search:before {
429
+  content: "\e79e";
430
+}
431
+
432
+.a-Icon_Outline_delet2x:before {
433
+  content: "\e788";
434
+}
435
+
436
+.a-Icon_Star_halfselected2x:before {
437
+  content: "\e787";
438
+}
439
+
440
+.a-Icon_Outline_left32x:before {
441
+  content: "\e786";
442
+}
443
+
444
+.a-Icon_Outline_Star_halfselectedbeifen2x:before {
445
+  content: "\e785";
446
+}
447
+
448
+.a-Icon_Outline_question12x:before {
449
+  content: "\e789";
450
+}
451
+
452
+.a-icon_chart2x:before {
453
+  content: "\e78a";
454
+}
455
+
456
+.a-Icon_Outline_noeyes2x:before {
457
+  content: "\e78d";
458
+}
459
+
460
+.a-2x:before {
461
+  content: "\e78e";
462
+}
463
+
464
+.a-iconadd-line22x:before {
465
+  content: "\e78f";
466
+}
467
+
468
+.a-Icon_Outline_eyes2x:before {
469
+  content: "\e791";
470
+}
471
+
472
+.a-Icon_Outline_edit2x:before {
473
+  content: "\e792";
474
+}
475
+
476
+.a-Icon_Outline_switch2x:before {
477
+  content: "\e795";
478
+}
479
+
480
+.a-Icon_Outline_message2x:before {
481
+  content: "\e796";
482
+}
483
+
484
+.draft-line:before {
485
+  content: "\e784";
486
+}
487
+
488
+.a-arechart2x:before {
489
+  content: "\e783";
490
+}
491
+
492
+.a-zhinenggongdan2x:before {
493
+  content: "\e77c";
494
+}
495
+
496
+.a-ren2x:before {
497
+  content: "\e77e";
498
+}
499
+
500
+.a-folder-user-fill2x:before {
501
+  content: "\e778";
502
+}
503
+
504
+.a-file-text-line2x:before {
505
+  content: "\e779";
506
+}
507
+
508
+.a-menufold2x:before {
509
+  content: "\e77a";
510
+}
511
+
512
+.a-bianzu182x:before {
513
+  content: "\e77b";
514
+}
515
+
516
+.a-menunomel2x:before {
517
+  content: "\e77d";
518
+}
519
+
520
+.a-switch2x:before {
521
+  content: "\e77f";
522
+}
523
+
524
+.a-close2x:before {
525
+  content: "\e780";
526
+}
527
+
528
+.a-right2x:before {
529
+  content: "\e781";
530
+}
531
+
532
+.a-piechart2x:before {
533
+  content: "\e782";
534
+}

+ 746 - 0
src/assets/css/styleTemplate.less

@@ -0,0 +1,746 @@
1
+/*
2
+ * @Author: dayan_hjm 茶百道主题样式
3
+ * @Date: 2022-10-27 10:56:37 
4
+ * @Last Modified by: dayan_hjm
5
+ * @Last Modified time: 2023-09-12 17:46:02
6
+ */
7
+
8
+@import url("../../themes/themes.less");
9
+
10
+:global {
11
+  #app {
12
+    height: inherit;
13
+  }
14
+  .hidetip {
15
+    display: none;
16
+  }
17
+  .ant-pro-table{
18
+    padding-bottom: 40px;
19
+  }
20
+  .ant-pro-table-list-toolbar-container{
21
+    padding: 0px 0 5px;
22
+  }
23
+  .disabledBtn,.disabledBtn:hover{
24
+    color:#b0b0b0!important
25
+  }
26
+  #form1222 .ant-col-19{
27
+    max-width: 100%;
28
+    margin-left: 80px;
29
+  }
30
+
31
+  // 表格内设置自动ellipsis省略显示
32
+  .tableTd_ellipsis {
33
+    max-width: 300px;
34
+    line-height: 24px;
35
+    height: 24px;
36
+    white-space: nowrap;
37
+    /* 规定文本是否折行 */
38
+    overflow: hidden;
39
+    /* 规定超出内容宽度的元素隐藏 */
40
+    text-overflow: ellipsis;
41
+
42
+    span {
43
+      max-width: 100%;
44
+      display: inline-block;
45
+      white-space: nowrap;
46
+      overflow: hidden;
47
+      text-overflow: ellipsis;
48
+    }
49
+  }
50
+
51
+  a {
52
+    color: @dy-active;
53
+    cursor: pointer;
54
+  }
55
+
56
+  .ant-tabs-content-holder{
57
+    padding: 10px;
58
+  }
59
+  .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
60
+    color: @dy-all-themes;
61
+    text-shadow: 0 0 0.25px currentcolor;
62
+}
63
+
64
+
65
+  //左侧导航栏 start----------------
66
+  .ant-menu-item.ant-menu-item-active.click_active:hover,
67
+  .ant-menu-item-active,
68
+  .ant-menu-submenu-open,
69
+  .ant-menu-submenu-active {
70
+    background: @dy-all-themes  !important;
71
+  }
72
+
73
+  .tsddd {
74
+    padding: 20px 16px 16px 16px;
75
+    background: #fff;
76
+  }
77
+
78
+  .normal_menu,
79
+  .ant-tabs-ink-bar,
80
+  .click_active {
81
+    background: @dy-all-themes  !important;
82
+  }
83
+
84
+  .ant-menu.ant-menu-root.ant-menu-inline.ant-menu-dark {
85
+    background-color: @dy-all-themes  !important;
86
+
87
+    .click_active {
88
+      background: @dy-all-active!important;
89
+      border-left: 3px solid @dy-all-active-hover;
90
+
91
+      .text_over {
92
+        color: rgba(255, 255, 255, 1) !important;
93
+      }
94
+    }
95
+
96
+    .normal_menu {
97
+      background-color: @dy-all-themes;
98
+    }
99
+  }
100
+
101
+  .log {
102
+    background: #fff;
103
+  }
104
+
105
+  .left_menu_search {
106
+    background: @dy-all-themes;
107
+  }
108
+
109
+  //左侧导航栏 end----------------
110
+
111
+  //tab栏 start----------------
112
+  .body_box {
113
+    margin-top: 56px !important;
114
+    background: #fff;
115
+
116
+    .navigator {
117
+      background-color: @dy-all-themes;
118
+      height: 40px;
119
+      line-height: 31px;
120
+      align-items: flex-end;
121
+
122
+      .close_icon {
123
+        margin-top: 2px;
124
+      }
125
+
126
+      .cust_tag_static {
127
+        height: 30px;
128
+      }
129
+
130
+      .cust_tag_actived {
131
+        line-height: 42px;
132
+      }
133
+    }
134
+  }
135
+
136
+  //tab栏 end----------------
137
+
138
+  //系统悬浮公告 start----------------
139
+  .modelMsg {
140
+    z-index: 99;
141
+    color: #000;
142
+    position: absolute;
143
+    top: 100px;
144
+    left: calc(50% - 300px);
145
+    width: 200px;
146
+    text-align: center;
147
+    background: #e7e7e7;
148
+    border-radius: 10px;
149
+    height: 30px;
150
+    line-height: 40px;
151
+    width: 604px;
152
+    height: 40px;
153
+    background: #FDEEDA;
154
+    border-radius: 2px;
155
+    animation: modelMsgShow 1s infinite;
156
+    -webkit-animation: modelMsgShow 1s infinite;
157
+
158
+    >p {
159
+      display: flex;
160
+      align-items: center;
161
+      justify-content: left;
162
+      padding: 0 10px;
163
+
164
+      .ok_f {
165
+        color: rgba(0, 0, 0, 0.65);
166
+        width: calc(100% - 70px);
167
+        text-align: left;
168
+        margin-left: 8px;
169
+        font-size: 13px;
170
+        overflow: hidden;
171
+        text-overflow: ellipsis;
172
+        white-space: nowrap;
173
+      }
174
+
175
+      .ok_t {
176
+        font-size: 14px;
177
+        color: #FAAD14;
178
+        cursor: pointer;
179
+      }
180
+    }
181
+  }
182
+
183
+
184
+  @keyframes modelMsgShow {
185
+    from {
186
+      background-color: red;
187
+    }
188
+
189
+    to {
190
+      background-color: blue;
191
+    }
192
+  }
193
+
194
+  /*Safari 和 Chrome:*/
195
+  @-webkit-keyframes modelMsgShow {
196
+    from {
197
+      background-color: red;
198
+    }
199
+
200
+    to {
201
+      background-color: blue;
202
+    }
203
+  }
204
+
205
+  //系统悬浮公告 end----------------
206
+
207
+
208
+  .buildStard {
209
+    margin-right: 5px;
210
+    color: #ffbc3b;
211
+    margin-top: 2px;
212
+  }
213
+
214
+
215
+  //上方导航栏
216
+  .tips_pop .yjyd_but {
217
+    width: 50%;
218
+    display: inline-block;
219
+    border: 1px solid #ececec;
220
+  }
221
+
222
+  #app .top {
223
+    height: 56px;
224
+    background: @dy-bg;
225
+    box-shadow: 0px 1px 5px #e0e0e0;
226
+
227
+    .controler .ant-dropdown-link {
228
+      color: @dy-font;
229
+    }
230
+
231
+    .contact {
232
+      border-right: 1px solid #cacaca;
233
+      width: 33px;
234
+    }
235
+
236
+    .ant-dropdown-trigger {
237
+      min-width: 70px;
238
+      margin-top: -5px;
239
+      margin-left: 10px;
240
+    }
241
+
242
+    .menu li {
243
+      color: @dy-font;
244
+      font-size: 12px;
245
+      width: auto;
246
+      line-height: 38px;
247
+      padding-right: 24px;
248
+    }
249
+
250
+    .menu li:hover {
251
+      color: @dy-active;
252
+      opacity: 0.9;
253
+    }
254
+
255
+    .menu li {
256
+      span {
257
+        opacity: 0.65;
258
+      }
259
+
260
+      .actived {
261
+        color: @dy-active;
262
+        box-shadow: 0 -2px 0 0 @dy-active inset;
263
+        font-weight: 700;
264
+        opacity: 1;
265
+        height: 41px;
266
+        margin-top: -10px;
267
+      }
268
+
269
+    }
270
+
271
+    .logo {
272
+      padding-left: 10px;
273
+      cursor: pointer;
274
+
275
+      img {
276
+        height: 42px;
277
+      }
278
+    }
279
+  }
280
+
281
+  //首页背景
282
+  .homePage .bottom_body {
283
+    background-image: linear-gradient(to top, #F8FCFE, #F8FCFE, #F8FCFE);
284
+    // background: url(../imgs/login/bg@2x.png) no-repeat 0 -47px / 100% 109% #1c45b4;
285
+  }
286
+
287
+  .bottom_body {
288
+    background: #fff;
289
+
290
+    .home {
291
+      padding: 16px;
292
+      display: flex;
293
+      align-items: flex-start;
294
+      justify-content: space-between;
295
+      background: unset;
296
+
297
+      .leftContent {
298
+        width: 320px;
299
+        height: 100%;
300
+        z-index: 9;
301
+
302
+        .topMsg {
303
+          width: 100%;
304
+          height: 284px;
305
+          background: #FFFFFF;
306
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
307
+          border-radius: 26px;
308
+          padding: 16px;
309
+
310
+          .hello {
311
+            font-weight: 600;
312
+            font-size: 20px;
313
+            color: @dy-active;
314
+            line-height: 28px;
315
+            display: block;
316
+            padding: 11px 0;
317
+          }
318
+
319
+          .xFont {
320
+            height: 20px;
321
+            font-family: PingFangSC-Regular;
322
+            font-weight: 400;
323
+            font-size: 16px;
324
+            color: rgba(0, 0, 0, 0.45);
325
+            line-height: 20px;
326
+          }
327
+
328
+          .msglist {
329
+            padding: 16px 0;
330
+
331
+            li {
332
+              width: 100%;
333
+              height: 42px;
334
+              background: #F8F8F8;
335
+              border-radius: 28px;
336
+              display: flex;
337
+              margin-bottom: 15px;
338
+              text-align: center;
339
+              font-weight: 400;
340
+              font-size: 14px;
341
+              color: #333;
342
+              line-height: 42px;
343
+              align-items: center;
344
+              justify-content: left;
345
+              padding-left: 30px;
346
+
347
+              img {
348
+                margin-right: 5px;
349
+              }
350
+            }
351
+          }
352
+        }
353
+
354
+
355
+        .bottomContent {
356
+          width: 100%;
357
+          height: calc(100% - 300px);
358
+          background: #FFFFFF;
359
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
360
+          border-radius: 26px;
361
+          margin-top: 16px;
362
+          //min-height: 432px;
363
+        }
364
+      }
365
+
366
+      .listIconFont {
367
+        width: 100%;
368
+        height: 36px;
369
+        display: flex;
370
+        text-align: center;
371
+        font-weight: 400;
372
+        font-size: 14px;
373
+        color: #333;
374
+        line-height: 36px;
375
+        align-items: center;
376
+        justify-content: left;
377
+        cursor: pointer;
378
+
379
+        img {
380
+          margin-right: 5px;
381
+        }
382
+      }
383
+
384
+      .bigDivPd {
385
+        padding: 16px;
386
+      }
387
+
388
+      .titleDiv {
389
+        width: 100%;
390
+        display: flex;
391
+        align-items: center;
392
+        justify-content: space-between;
393
+        font-weight: 600;
394
+        font-size: 16px;
395
+        color: #333333;
396
+        line-height: 24px;
397
+        margin-bottom: 15px;
398
+
399
+        a {
400
+          font-size: 14px;
401
+          color: rgba(0, 0, 0, 0.45);
402
+          text-align: right;
403
+          line-height: 22px;
404
+          font-weight: 400;
405
+        }
406
+      }
407
+
408
+      .kbs_c {
409
+        height: calc(100% - 40px);
410
+        overflow-y: scroll;
411
+      }
412
+
413
+      .kbs_c::-webkit-scrollbar {
414
+        display: none;
415
+        scrollbar-width: none;
416
+        -ms-overflow-style: none;
417
+      }
418
+
419
+      .kbs_c:hover::-webkit-scrollbar {
420
+        display: unset;
421
+        scrollbar-width: unset;
422
+        -ms-overflow-style: unset;
423
+      }
424
+
425
+
426
+      .rightContent {
427
+        width: 320px;
428
+        height: 100%;
429
+        z-index: 9;
430
+
431
+        .topMsg {
432
+          width: 100%;
433
+          height: 284px;
434
+          background: #FFFFFF;
435
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
436
+          border-radius: 26px;
437
+          padding: 16px;
438
+
439
+          .icon_c {
440
+            width: 100%;
441
+            display: flex;
442
+            align-items: flex-start;
443
+            justify-content: unset !important;
444
+            flex-wrap: wrap;
445
+            height: calc(100% - 40px);
446
+            overflow-y: scroll;
447
+
448
+            .icon_p {
449
+              width: 33%;
450
+              display: flex;
451
+              align-items: center;
452
+              justify-content: center;
453
+              flex-wrap: wrap;
454
+              padding: 2px 0;
455
+              cursor: pointer;
456
+              position: relative;
457
+              >i {
458
+                display: flex;
459
+                width: 54px;
460
+                height: 54px;
461
+                background: @dy-active;
462
+                color: #fff;
463
+                border-radius: 50%;
464
+                text-align: center;
465
+                justify-content: center;
466
+                line-height: 50px;
467
+                font-size: 23px;
468
+                font-style: normal;
469
+                font-weight: 700;
470
+              }
471
+
472
+              >span {
473
+                display: flex;
474
+                width: 100%;
475
+                justify-content: center;
476
+                margin-top: 5px;
477
+              }
478
+              .delectt{
479
+                display: none;
480
+                position: absolute;
481
+                background: #ff3737;
482
+                width: 20px;
483
+                height: 20px;
484
+                border-radius: 50%;
485
+                line-height: 13px;
486
+                font-size: 28px;
487
+                top: 0;
488
+                right: 14px;
489
+                color: #fff;
490
+              }
491
+            }
492
+            .icon_p:hover{
493
+              .delectt{
494
+                display: block;
495
+              }
496
+            }
497
+          }
498
+
499
+          .icon_c::-webkit-scrollbar {
500
+            display: none;
501
+            scrollbar-width: none;
502
+            -ms-overflow-style: none;
503
+          }
504
+
505
+          .icon_c:hover::-webkit-scrollbar {
506
+            display: unset;
507
+            scrollbar-width: unset;
508
+            -ms-overflow-style: unset;
509
+          }
510
+        }
511
+
512
+        .bottomContent {
513
+          width: 100%;
514
+          height: calc(100% - 300px);
515
+          background: #FFFFFF;
516
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
517
+          border-radius: 26px;
518
+          margin-top: 16px;
519
+          //min-height: 432px;
520
+        }
521
+      }
522
+
523
+
524
+      .centerCon {
525
+        width: calc(100% - 672px);
526
+        height: 100%;
527
+
528
+        .centerContent {
529
+          width: 100%;
530
+          height: 56px;
531
+          background: #FFFFFF;
532
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
533
+          border-radius: 28px;
534
+          display: flex;
535
+          align-items: center;
536
+          justify-content: space-between;
537
+          padding: 16px 24px;
538
+
539
+          .inform {
540
+            font-size: 18px;
541
+            color: #1B45B4;
542
+            font-weight: 700;
543
+            margin-right: 24px;
544
+            font-style: italic;
545
+          }
546
+
547
+          .ant-carousel {
548
+            width: 100%;
549
+
550
+            .slick-dots-bottom {
551
+              bottom: -10px;
552
+            }
553
+
554
+            .slick-dots li button {
555
+              height: 2px;
556
+              background: #e4e3e3;
557
+              border-radius: 10px;
558
+            }
559
+
560
+            .slick-dots li.slick-active button {
561
+              background: @dy-active;
562
+            }
563
+          }
564
+
565
+          .inform_d {
566
+            width: calc(100% - 65px);
567
+            display: flex;
568
+            justify-content: space-between;
569
+
570
+            .inform_d_d {
571
+              display: flex !important;
572
+              justify-content: space-between;
573
+              color: rgba(0, 0, 0, 0.6);
574
+            }
575
+          }
576
+        }
577
+
578
+        .center_bg {
579
+          width: 84%;
580
+          margin-left: 8%;
581
+          height: calc(100% - 56px);
582
+          background: url(../imgs/login/bg_s@2x.png) no-repeat 0 center / 100% auto;
583
+        }
584
+      }
585
+
586
+    }
587
+  }
588
+
589
+  .bq {
590
+    width: 100%;
591
+    height: 103px;
592
+    /* opacity: 0.5; */
593
+    font-family: PingFangSC-Regular;
594
+    font-weight: 400;
595
+    font-size: 12px;
596
+    color: #FFFFFF;
597
+    text-align: center;
598
+    line-height: 170px;
599
+    bottom: 0px;
600
+    left: 0;
601
+    z-index: 0;
602
+    position: absolute;
603
+    background: url(../imgs/login/home_line@2x.png) no-repeat 0 0 / 100% 100%;
604
+  }
605
+
606
+  .area_top_title {
607
+    display: flex;
608
+    align-items: center;
609
+    font-size: 16px;
610
+    font-weight: 700;
611
+    font-family: "微软雅黑";
612
+    margin-bottom: 10px;
613
+    color: #1b45b4;
614
+
615
+    >p {
616
+      font-size: 12px;
617
+      margin-left: 10px;
618
+      font-weight: normal;
619
+      color: #666;
620
+    }
621
+  }
622
+
623
+  .lables {
624
+    display: flex;
625
+    align-items: center;
626
+    margin-top: 30px;
627
+
628
+    >p {
629
+      width: 88px;
630
+    }
631
+  }
632
+  .tanhao{
633
+    border: 2px solid #fdcd60;
634
+    border-radius: 50%;
635
+    display: block;
636
+    width: 24px;
637
+    height: 24px;
638
+    text-align: center;
639
+    line-height: 18px;
640
+    color: #fdcd60;
641
+    font-weight: 700;
642
+    font-size: 21px;
643
+    margin-left: 10px;
644
+    cursor: pointer;
645
+  }
646
+  .lables2{
647
+    flex-wrap: wrap;
648
+    >.ant-select-show-search:first-child{
649
+      width: 85%;
650
+      margin-left: 0%;
651
+    }
652
+  }
653
+
654
+  //table
655
+  .module_line,
656
+  .module_search {
657
+    padding-bottom: 10px;
658
+  }
659
+
660
+  .space {
661
+    margin-bottom: 10px;
662
+  }
663
+
664
+  .module_body {
665
+    padding-top: 10px;
666
+  }
667
+
668
+  .ant-table-wrapper {
669
+    margin-top: 6px;
670
+  }
671
+
672
+
673
+
674
+  //按钮
675
+  .ant-btn-primary,
676
+  .ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon,
677
+  .ant-checkbox-checked .ant-checkbox-inner,
678
+  .ant-checkbox-indeterminate .ant-checkbox-inner::after,
679
+  .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after,
680
+  .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner,
681
+  .ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after {
682
+    border-color: @dy-active  !important;
683
+    background: @dy-active  !important;
684
+  }
685
+
686
+  .ant-checkbox-checked .ant-checkbox-inner::after, .ant-select-tree-checkbox-inner::after{
687
+    border-color:#f5f5f5 !important
688
+  }
689
+
690
+  .ant-steps-item-finish .ant-steps-item-icon,
691
+  .ant-pagination-item-active {
692
+    border-color: @dy-active  !important;
693
+  }
694
+
695
+  a:hover,
696
+  .ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon,
697
+  .more {
698
+    color: @dy-all-active-hover  !important;
699
+  }
700
+
701
+  .sys_account___aWmgk .col_blue,
702
+  .ant-pagination-item-active a,
703
+  .themeColor,
704
+  .col_blue span {
705
+    color: @dy-active  !important;
706
+  }
707
+
708
+  .module_title::before {
709
+    background-color: @dy-all-little;
710
+    width: 2px;
711
+    height: 15px;
712
+    margin-top: 6px;
713
+  }
714
+
715
+  .ant-btn {
716
+    border-radius: 3px;
717
+  }
718
+
719
+  .ant-btn:hover,
720
+  .ant-btn:focus {
721
+    border-color: @dy-all-active-hover  !important;
722
+    color: @dy-all-active-hover  !important;
723
+  }
724
+  .ant-btn-danger:focus,  .ant-btn-danger:hover{
725
+    color: #fff!important;
726
+    border-color: #ff4d4f!important;
727
+    background: #ff4d4f!important;
728
+  }
729
+
730
+  .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner,
731
+  .ant-select:not(.ant-select-disabled):hover .ant-select-selector {
732
+    border-color: @dy-all-active-hover  !important;
733
+    box-shadow: 0 0 0 2px rgba(7, 45, 151, 0.2) !important;
734
+  }
735
+
736
+  .ant-btn-primary:hover,
737
+  .ant-btn-primary:focus {
738
+    border-color: @dy-active  !important;
739
+    background: @dy-active  !important;
740
+    color: #fff !important;
741
+  }
742
+
743
+  .ant-btn-primary {
744
+    color: #fff !important;
745
+  }
746
+}

BIN
src/assets/fonts/DIN-Black.otf


BIN
src/assets/fonts/PingFangSCRegular.ttf


+ 539 - 0
src/assets/iconfont/demo.css

@@ -0,0 +1,539 @@
1
+/* Logo 字体 */
2
+@font-face {
3
+  font-family: "iconfont logo";
4
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
5
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
6
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
7
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
8
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
9
+}
10
+
11
+.logo {
12
+  font-family: "iconfont logo";
13
+  font-size: 160px;
14
+  font-style: normal;
15
+  -webkit-font-smoothing: antialiased;
16
+  -moz-osx-font-smoothing: grayscale;
17
+}
18
+
19
+/* tabs */
20
+.nav-tabs {
21
+  position: relative;
22
+}
23
+
24
+.nav-tabs .nav-more {
25
+  position: absolute;
26
+  right: 0;
27
+  bottom: 0;
28
+  height: 42px;
29
+  line-height: 42px;
30
+  color: #666;
31
+}
32
+
33
+#tabs {
34
+  border-bottom: 1px solid #eee;
35
+}
36
+
37
+#tabs li {
38
+  cursor: pointer;
39
+  width: 100px;
40
+  height: 40px;
41
+  line-height: 40px;
42
+  text-align: center;
43
+  font-size: 16px;
44
+  border-bottom: 2px solid transparent;
45
+  position: relative;
46
+  z-index: 1;
47
+  margin-bottom: -1px;
48
+  color: #666;
49
+}
50
+
51
+
52
+#tabs .active {
53
+  border-bottom-color: #f00;
54
+  color: #222;
55
+}
56
+
57
+.tab-container .content {
58
+  display: none;
59
+}
60
+
61
+/* 页面布局 */
62
+.main {
63
+  padding: 30px 100px;
64
+  width: 960px;
65
+  margin: 0 auto;
66
+}
67
+
68
+.main .logo {
69
+  color: #333;
70
+  text-align: left;
71
+  margin-bottom: 30px;
72
+  line-height: 1;
73
+  height: 110px;
74
+  margin-top: -50px;
75
+  overflow: hidden;
76
+  *zoom: 1;
77
+}
78
+
79
+.main .logo a {
80
+  font-size: 160px;
81
+  color: #333;
82
+}
83
+
84
+.helps {
85
+  margin-top: 40px;
86
+}
87
+
88
+.helps pre {
89
+  padding: 20px;
90
+  margin: 10px 0;
91
+  border: solid 1px #e7e1cd;
92
+  background-color: #fffdef;
93
+  overflow: auto;
94
+}
95
+
96
+.icon_lists {
97
+  width: 100% !important;
98
+  overflow: hidden;
99
+  *zoom: 1;
100
+}
101
+
102
+.icon_lists li {
103
+  width: 100px;
104
+  margin-bottom: 10px;
105
+  margin-right: 20px;
106
+  text-align: center;
107
+  list-style: none !important;
108
+  cursor: default;
109
+}
110
+
111
+.icon_lists li .code-name {
112
+  line-height: 1.2;
113
+}
114
+
115
+.icon_lists .icon {
116
+  display: block;
117
+  height: 100px;
118
+  line-height: 100px;
119
+  font-size: 42px;
120
+  margin: 10px auto;
121
+  color: #333;
122
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
123
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
124
+  transition: font-size 0.25s linear, width 0.25s linear;
125
+}
126
+
127
+.icon_lists .icon:hover {
128
+  font-size: 100px;
129
+}
130
+
131
+.icon_lists .svg-icon {
132
+  /* 通过设置 font-size 来改变图标大小 */
133
+  width: 1em;
134
+  /* 图标和文字相邻时,垂直对齐 */
135
+  vertical-align: -0.15em;
136
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
137
+  fill: currentColor;
138
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
139
+      normalize.css 中也包含这行 */
140
+  overflow: hidden;
141
+}
142
+
143
+.icon_lists li .name,
144
+.icon_lists li .code-name {
145
+  color: #666;
146
+}
147
+
148
+/* markdown 样式 */
149
+.markdown {
150
+  color: #666;
151
+  font-size: 14px;
152
+  line-height: 1.8;
153
+}
154
+
155
+.highlight {
156
+  line-height: 1.5;
157
+}
158
+
159
+.markdown img {
160
+  vertical-align: middle;
161
+  max-width: 100%;
162
+}
163
+
164
+.markdown h1 {
165
+  color: #404040;
166
+  font-weight: 500;
167
+  line-height: 40px;
168
+  margin-bottom: 24px;
169
+}
170
+
171
+.markdown h2,
172
+.markdown h3,
173
+.markdown h4,
174
+.markdown h5,
175
+.markdown h6 {
176
+  color: #404040;
177
+  margin: 1.6em 0 0.6em 0;
178
+  font-weight: 500;
179
+  clear: both;
180
+}
181
+
182
+.markdown h1 {
183
+  font-size: 28px;
184
+}
185
+
186
+.markdown h2 {
187
+  font-size: 22px;
188
+}
189
+
190
+.markdown h3 {
191
+  font-size: 16px;
192
+}
193
+
194
+.markdown h4 {
195
+  font-size: 14px;
196
+}
197
+
198
+.markdown h5 {
199
+  font-size: 12px;
200
+}
201
+
202
+.markdown h6 {
203
+  font-size: 12px;
204
+}
205
+
206
+.markdown hr {
207
+  height: 1px;
208
+  border: 0;
209
+  background: #e9e9e9;
210
+  margin: 16px 0;
211
+  clear: both;
212
+}
213
+
214
+.markdown p {
215
+  margin: 1em 0;
216
+}
217
+
218
+.markdown>p,
219
+.markdown>blockquote,
220
+.markdown>.highlight,
221
+.markdown>ol,
222
+.markdown>ul {
223
+  width: 80%;
224
+}
225
+
226
+.markdown ul>li {
227
+  list-style: circle;
228
+}
229
+
230
+.markdown>ul li,
231
+.markdown blockquote ul>li {
232
+  margin-left: 20px;
233
+  padding-left: 4px;
234
+}
235
+
236
+.markdown>ul li p,
237
+.markdown>ol li p {
238
+  margin: 0.6em 0;
239
+}
240
+
241
+.markdown ol>li {
242
+  list-style: decimal;
243
+}
244
+
245
+.markdown>ol li,
246
+.markdown blockquote ol>li {
247
+  margin-left: 20px;
248
+  padding-left: 4px;
249
+}
250
+
251
+.markdown code {
252
+  margin: 0 3px;
253
+  padding: 0 5px;
254
+  background: #eee;
255
+  border-radius: 3px;
256
+}
257
+
258
+.markdown strong,
259
+.markdown b {
260
+  font-weight: 600;
261
+}
262
+
263
+.markdown>table {
264
+  border-collapse: collapse;
265
+  border-spacing: 0px;
266
+  empty-cells: show;
267
+  border: 1px solid #e9e9e9;
268
+  width: 95%;
269
+  margin-bottom: 24px;
270
+}
271
+
272
+.markdown>table th {
273
+  white-space: nowrap;
274
+  color: #333;
275
+  font-weight: 600;
276
+}
277
+
278
+.markdown>table th,
279
+.markdown>table td {
280
+  border: 1px solid #e9e9e9;
281
+  padding: 8px 16px;
282
+  text-align: left;
283
+}
284
+
285
+.markdown>table th {
286
+  background: #F7F7F7;
287
+}
288
+
289
+.markdown blockquote {
290
+  font-size: 90%;
291
+  color: #999;
292
+  border-left: 4px solid #e9e9e9;
293
+  padding-left: 0.8em;
294
+  margin: 1em 0;
295
+}
296
+
297
+.markdown blockquote p {
298
+  margin: 0;
299
+}
300
+
301
+.markdown .anchor {
302
+  opacity: 0;
303
+  transition: opacity 0.3s ease;
304
+  margin-left: 8px;
305
+}
306
+
307
+.markdown .waiting {
308
+  color: #ccc;
309
+}
310
+
311
+.markdown h1:hover .anchor,
312
+.markdown h2:hover .anchor,
313
+.markdown h3:hover .anchor,
314
+.markdown h4:hover .anchor,
315
+.markdown h5:hover .anchor,
316
+.markdown h6:hover .anchor {
317
+  opacity: 1;
318
+  display: inline-block;
319
+}
320
+
321
+.markdown>br,
322
+.markdown>p>br {
323
+  clear: both;
324
+}
325
+
326
+
327
+.hljs {
328
+  display: block;
329
+  background: white;
330
+  padding: 0.5em;
331
+  color: #333333;
332
+  overflow-x: auto;
333
+}
334
+
335
+.hljs-comment,
336
+.hljs-meta {
337
+  color: #969896;
338
+}
339
+
340
+.hljs-string,
341
+.hljs-variable,
342
+.hljs-template-variable,
343
+.hljs-strong,
344
+.hljs-emphasis,
345
+.hljs-quote {
346
+  color: #df5000;
347
+}
348
+
349
+.hljs-keyword,
350
+.hljs-selector-tag,
351
+.hljs-type {
352
+  color: #a71d5d;
353
+}
354
+
355
+.hljs-literal,
356
+.hljs-symbol,
357
+.hljs-bullet,
358
+.hljs-attribute {
359
+  color: #0086b3;
360
+}
361
+
362
+.hljs-section,
363
+.hljs-name {
364
+  color: #63a35c;
365
+}
366
+
367
+.hljs-tag {
368
+  color: #333333;
369
+}
370
+
371
+.hljs-title,
372
+.hljs-attr,
373
+.hljs-selector-id,
374
+.hljs-selector-class,
375
+.hljs-selector-attr,
376
+.hljs-selector-pseudo {
377
+  color: #795da3;
378
+}
379
+
380
+.hljs-addition {
381
+  color: #55a532;
382
+  background-color: #eaffea;
383
+}
384
+
385
+.hljs-deletion {
386
+  color: #bd2c00;
387
+  background-color: #ffecec;
388
+}
389
+
390
+.hljs-link {
391
+  text-decoration: underline;
392
+}
393
+
394
+/* 代码高亮 */
395
+/* PrismJS 1.15.0
396
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
397
+/**
398
+ * prism.js default theme for JavaScript, CSS and HTML
399
+ * Based on dabblet (http://dabblet.com)
400
+ * @author Lea Verou
401
+ */
402
+code[class*="language-"],
403
+pre[class*="language-"] {
404
+  color: black;
405
+  background: none;
406
+  text-shadow: 0 1px white;
407
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
408
+  text-align: left;
409
+  white-space: pre;
410
+  word-spacing: normal;
411
+  word-break: normal;
412
+  word-wrap: normal;
413
+  line-height: 1.5;
414
+
415
+  -moz-tab-size: 4;
416
+  -o-tab-size: 4;
417
+  tab-size: 4;
418
+
419
+  -webkit-hyphens: none;
420
+  -moz-hyphens: none;
421
+  -ms-hyphens: none;
422
+  hyphens: none;
423
+}
424
+
425
+pre[class*="language-"]::-moz-selection,
426
+pre[class*="language-"] ::-moz-selection,
427
+code[class*="language-"]::-moz-selection,
428
+code[class*="language-"] ::-moz-selection {
429
+  text-shadow: none;
430
+  background: #b3d4fc;
431
+}
432
+
433
+pre[class*="language-"]::selection,
434
+pre[class*="language-"] ::selection,
435
+code[class*="language-"]::selection,
436
+code[class*="language-"] ::selection {
437
+  text-shadow: none;
438
+  background: #b3d4fc;
439
+}
440
+
441
+@media print {
442
+
443
+  code[class*="language-"],
444
+  pre[class*="language-"] {
445
+    text-shadow: none;
446
+  }
447
+}
448
+
449
+/* Code blocks */
450
+pre[class*="language-"] {
451
+  padding: 1em;
452
+  margin: .5em 0;
453
+  overflow: auto;
454
+}
455
+
456
+:not(pre)>code[class*="language-"],
457
+pre[class*="language-"] {
458
+  background: #f5f2f0;
459
+}
460
+
461
+/* Inline code */
462
+:not(pre)>code[class*="language-"] {
463
+  padding: .1em;
464
+  border-radius: .3em;
465
+  white-space: normal;
466
+}
467
+
468
+.token.comment,
469
+.token.prolog,
470
+.token.doctype,
471
+.token.cdata {
472
+  color: slategray;
473
+}
474
+
475
+.token.punctuation {
476
+  color: #999;
477
+}
478
+
479
+.namespace {
480
+  opacity: .7;
481
+}
482
+
483
+.token.property,
484
+.token.tag,
485
+.token.boolean,
486
+.token.number,
487
+.token.constant,
488
+.token.symbol,
489
+.token.deleted {
490
+  color: #905;
491
+}
492
+
493
+.token.selector,
494
+.token.attr-name,
495
+.token.string,
496
+.token.char,
497
+.token.builtin,
498
+.token.inserted {
499
+  color: #690;
500
+}
501
+
502
+.token.operator,
503
+.token.entity,
504
+.token.url,
505
+.language-css .token.string,
506
+.style .token.string {
507
+  color: #9a6e3a;
508
+  background: hsla(0, 0%, 100%, .5);
509
+}
510
+
511
+.token.atrule,
512
+.token.attr-value,
513
+.token.keyword {
514
+  color: #07a;
515
+}
516
+
517
+.token.function,
518
+.token.class-name {
519
+  color: #DD4A68;
520
+}
521
+
522
+.token.regex,
523
+.token.important,
524
+.token.variable {
525
+  color: #e90;
526
+}
527
+
528
+.token.important,
529
+.token.bold {
530
+  font-weight: bold;
531
+}
532
+
533
+.token.italic {
534
+  font-style: italic;
535
+}
536
+
537
+.token.entity {
538
+  cursor: help;
539
+}

File diff suppressed because it is too large
+ 3178 - 0
src/assets/iconfont/demo_index.html


+ 535 - 0
src/assets/iconfont/iconfont.css

@@ -0,0 +1,535 @@
1
+@font-face {
2
+  font-family: "iconfont"; /* Project id 2734881 */
3
+  src: url('iconfont.woff2?t=1634718478230') format('woff2'),
4
+       url('iconfont.woff?t=1634718478230') format('woff'),
5
+       url('iconfont.ttf?t=1634718478230') format('truetype');
6
+}
7
+
8
+.iconfont {
9
+  font-family: "iconfont" !important;
10
+  font-size: 16px;
11
+  font-style: normal;
12
+  -webkit-font-smoothing: antialiased;
13
+  -moz-osx-font-smoothing: grayscale;
14
+}
15
+
16
+.a-user-line2x:before {
17
+  content: "\e7a1";
18
+}
19
+
20
+.a-lock-line2x:before {
21
+  content: "\e7a2";
22
+}
23
+
24
+.a-logout-circle-r-line2x:before {
25
+  content: "\e7a4";
26
+}
27
+
28
+.a-settings-line2x:before {
29
+  content: "\e7a0";
30
+}
31
+
32
+.ic_upload:before {
33
+  content: "\e615";
34
+}
35
+
36
+.ic_add:before {
37
+  content: "\e618";
38
+}
39
+
40
+.verticalleft:before {
41
+  content: "\e851";
42
+}
43
+
44
+.right:before {
45
+  content: "\e852";
46
+}
47
+
48
+.left:before {
49
+  content: "\e853";
50
+}
51
+
52
+.up:before {
53
+  content: "\e854";
54
+}
55
+
56
+.down:before {
57
+  content: "\e855";
58
+}
59
+
60
+.doubleright:before {
61
+  content: "\e859";
62
+}
63
+
64
+.arrowup:before {
65
+  content: "\e85b";
66
+}
67
+
68
+.arrowleft:before {
69
+  content: "\e85c";
70
+}
71
+
72
+.arrowdown:before {
73
+  content: "\e85d";
74
+}
75
+
76
+.upload:before {
77
+  content: "\e85e";
78
+}
79
+
80
+.colum-height:before {
81
+  content: "\e85f";
82
+}
83
+
84
+.vertical-align-botto:before {
85
+  content: "\e860";
86
+}
87
+
88
+.icon_login_id:before {
89
+  content: "\e65a";
90
+}
91
+
92
+.icon_login_mima:before {
93
+  content: "\e660";
94
+}
95
+
96
+.plus-circle-copy-copy:before {
97
+  content: "\e95c";
98
+}
99
+
100
+.check-circle:before {
101
+  content: "\e78b";
102
+}
103
+
104
+.compass:before {
105
+  content: "\e78c";
106
+}
107
+
108
+.close-circle:before {
109
+  content: "\e790";
110
+}
111
+
112
+.frown:before {
113
+  content: "\e793";
114
+}
115
+
116
+.left-circle:before {
117
+  content: "\e794";
118
+}
119
+
120
+.down-circle:before {
121
+  content: "\e797";
122
+}
123
+
124
+.minus-circle:before {
125
+  content: "\e798";
126
+}
127
+
128
+.meh:before {
129
+  content: "\e799";
130
+}
131
+
132
+.plus-circle:before {
133
+  content: "\e79a";
134
+}
135
+
136
+.timeout:before {
137
+  content: "\e79b";
138
+}
139
+
140
+.warning-circle:before {
141
+  content: "\e79c";
142
+}
143
+
144
+.sync:before {
145
+  content: "\e79d";
146
+}
147
+
148
+.piechart:before {
149
+  content: "\e79f";
150
+}
151
+
152
+.edit-square:before {
153
+  content: "\e7a3";
154
+}
155
+
156
+.control:before {
157
+  content: "\e7ad";
158
+}
159
+
160
+.project:before {
161
+  content: "\e7b3";
162
+}
163
+
164
+.filter:before {
165
+  content: "\e800";
166
+}
167
+
168
+.funnelplot:before {
169
+  content: "\e801";
170
+}
171
+
172
+.medicinebox:before {
173
+  content: "\e809";
174
+}
175
+
176
+.shop:before {
177
+  content: "\e80a";
178
+}
179
+
180
+.shopping:before {
181
+  content: "\e80c";
182
+}
183
+
184
+.folder:before {
185
+  content: "\e80d";
186
+}
187
+
188
+.folder-open:before {
189
+  content: "\e80e";
190
+}
191
+
192
+.folder-add:before {
193
+  content: "\e80f";
194
+}
195
+
196
+.carryout:before {
197
+  content: "\e813";
198
+}
199
+
200
+.scan:before {
201
+  content: "\e816";
202
+}
203
+
204
+.cloud-upload:before {
205
+  content: "\e824";
206
+}
207
+
208
+.cloud-download:before {
209
+  content: "\e826";
210
+}
211
+
212
+.fullscreen-exit:before {
213
+  content: "\e857";
214
+}
215
+
216
+.totop:before {
217
+  content: "\e862";
218
+}
219
+
220
+.crown:before {
221
+  content: "\e88d";
222
+}
223
+
224
+.check-circle-fill:before {
225
+  content: "\e894";
226
+}
227
+
228
+.left-circle-fill:before {
229
+  content: "\e895";
230
+}
231
+
232
+.down-circle-fill:before {
233
+  content: "\e896";
234
+}
235
+
236
+.minus-circle-fill:before {
237
+  content: "\e897";
238
+}
239
+
240
+.close-circle-fill:before {
241
+  content: "\e898";
242
+}
243
+
244
+.info-circle-fill:before {
245
+  content: "\e899";
246
+}
247
+
248
+.up-circle-fill:before {
249
+  content: "\e89a";
250
+}
251
+
252
+.right-circle-fill:before {
253
+  content: "\e89b";
254
+}
255
+
256
+.plus-circle-fill:before {
257
+  content: "\e89c";
258
+}
259
+
260
+.question-circle-fill:before {
261
+  content: "\e89d";
262
+}
263
+
264
+.EURO-circle-fill:before {
265
+  content: "\e89e";
266
+}
267
+
268
+.warning-circle-fill:before {
269
+  content: "\e8a9";
270
+}
271
+
272
+.time-circle-fill:before {
273
+  content: "\e8aa";
274
+}
275
+
276
+.heart-fill:before {
277
+  content: "\e8ad";
278
+}
279
+
280
+.piechart-circle-fil:before {
281
+  content: "\e8ae";
282
+}
283
+
284
+.check-square-fill:before {
285
+  content: "\e8b1";
286
+}
287
+
288
+.down-square-fill:before {
289
+  content: "\e8b2";
290
+}
291
+
292
+.minus-square-fill:before {
293
+  content: "\e8b3";
294
+}
295
+
296
+.close-square-fill:before {
297
+  content: "\e8b4";
298
+}
299
+
300
+.left-square-fill:before {
301
+  content: "\e8b6";
302
+}
303
+
304
+.play-square-fill:before {
305
+  content: "\e8b7";
306
+}
307
+
308
+.up-square-fill:before {
309
+  content: "\e8b8";
310
+}
311
+
312
+.right-square-fill:before {
313
+  content: "\e8b9";
314
+}
315
+
316
+.plus-square-fill:before {
317
+  content: "\e8ba";
318
+}
319
+
320
+.accountbook-fill:before {
321
+  content: "\e8bb";
322
+}
323
+
324
+.carryout-fill:before {
325
+  content: "\e8bc";
326
+}
327
+
328
+.calendar-fill:before {
329
+  content: "\e8bd";
330
+}
331
+
332
+.calculator-fill:before {
333
+  content: "\e8be";
334
+}
335
+
336
+.interation-fill:before {
337
+  content: "\e8bf";
338
+}
339
+
340
+.project-fill:before {
341
+  content: "\e8c0";
342
+}
343
+
344
+.detail-fill:before {
345
+  content: "\e8c1";
346
+}
347
+
348
+.control-fill:before {
349
+  content: "\e8c4";
350
+}
351
+
352
+.file-exclamation-fil:before {
353
+  content: "\e8cf";
354
+}
355
+
356
+.snippets-fill:before {
357
+  content: "\e8dd";
358
+}
359
+
360
+.batchfolding-fill:before {
361
+  content: "\e8de";
362
+}
363
+
364
+.reconciliation-fill:before {
365
+  content: "\e8df";
366
+}
367
+
368
+.folder-open-fill:before {
369
+  content: "\e8e2";
370
+}
371
+
372
+.image-fill:before {
373
+  content: "\e8e7";
374
+}
375
+
376
+.idcard-fill:before {
377
+  content: "\e8e8";
378
+}
379
+
380
+.creditcard-fill:before {
381
+  content: "\e8e9";
382
+}
383
+
384
+.clear:before {
385
+  content: "\e948";
386
+}
387
+
388
+.ic_project:before {
389
+  content: "\e610";
390
+}
391
+
392
+.plus-circle-copy-copy-copy:before {
393
+  content: "\e95d";
394
+}
395
+
396
+.icon_arrowdown:before {
397
+  content: "\e75e";
398
+}
399
+
400
+.icon_delete:before {
401
+  content: "\e760";
402
+}
403
+
404
+.icon_left2:before {
405
+  content: "\e763";
406
+}
407
+
408
+.icon_right2:before {
409
+  content: "\e764";
410
+}
411
+
412
+.icon_qingchu:before {
413
+  content: "\e767";
414
+}
415
+
416
+.icon_shouye:before {
417
+  content: "\e768";
418
+}
419
+
420
+.icon_quanxianguanli:before {
421
+  content: "\e76b";
422
+}
423
+
424
+.icon_jiaoyiguanli:before {
425
+  content: "\e76f";
426
+}
427
+
428
+.icon_search:before {
429
+  content: "\e79e";
430
+}
431
+
432
+.a-Icon_Outline_delet2x:before {
433
+  content: "\e788";
434
+}
435
+
436
+.a-Icon_Star_halfselected2x:before {
437
+  content: "\e787";
438
+}
439
+
440
+.a-Icon_Outline_left32x:before {
441
+  content: "\e786";
442
+}
443
+
444
+.a-Icon_Outline_Star_halfselectedbeifen2x:before {
445
+  content: "\e785";
446
+}
447
+
448
+.a-Icon_Outline_question12x:before {
449
+  content: "\e789";
450
+}
451
+
452
+.a-icon_chart2x:before {
453
+  content: "\e78a";
454
+}
455
+
456
+.a-Icon_Outline_noeyes2x:before {
457
+  content: "\e78d";
458
+}
459
+
460
+.a-2x:before {
461
+  content: "\e78e";
462
+}
463
+
464
+.a-iconadd-line22x:before {
465
+  content: "\e78f";
466
+}
467
+
468
+.a-Icon_Outline_eyes2x:before {
469
+  content: "\e791";
470
+}
471
+
472
+.a-Icon_Outline_edit2x:before {
473
+  content: "\e792";
474
+}
475
+
476
+.a-Icon_Outline_switch2x:before {
477
+  content: "\e795";
478
+}
479
+
480
+.a-Icon_Outline_message2x:before {
481
+  content: "\e796";
482
+}
483
+
484
+.draft-line:before {
485
+  content: "\e784";
486
+}
487
+
488
+.a-arechart2x:before {
489
+  content: "\e783";
490
+}
491
+
492
+.a-zhinenggongdan2x:before {
493
+  content: "\e77c";
494
+}
495
+
496
+.a-ren2x:before {
497
+  content: "\e77e";
498
+}
499
+
500
+.a-folder-user-fill2x:before {
501
+  content: "\e778";
502
+}
503
+
504
+.a-file-text-line2x:before {
505
+  content: "\e779";
506
+}
507
+
508
+.a-menufold2x:before {
509
+  content: "\e77a";
510
+}
511
+
512
+.a-bianzu182x:before {
513
+  content: "\e77b";
514
+}
515
+
516
+.a-menunomel2x:before {
517
+  content: "\e77d";
518
+}
519
+
520
+.a-switch2x:before {
521
+  content: "\e77f";
522
+}
523
+
524
+.a-close2x:before {
525
+  content: "\e780";
526
+}
527
+
528
+.a-right2x:before {
529
+  content: "\e781";
530
+}
531
+
532
+.a-piechart2x:before {
533
+  content: "\e782";
534
+}
535
+

File diff suppressed because it is too large
+ 1 - 0
src/assets/iconfont/iconfont.js


+ 919 - 0
src/assets/iconfont/iconfont.json

@@ -0,0 +1,919 @@
1
+{
2
+  "id": "2734881",
3
+  "name": "数据中台 后台",
4
+  "font_family": "iconfont",
5
+  "css_prefix_text": "",
6
+  "description": "",
7
+  "glyphs": [
8
+    {
9
+      "icon_id": "25049985",
10
+      "name": "user-line@2x",
11
+      "font_class": "a-user-line2x",
12
+      "unicode": "e7a1",
13
+      "unicode_decimal": 59297
14
+    },
15
+    {
16
+      "icon_id": "25049986",
17
+      "name": "lock-line@2x",
18
+      "font_class": "a-lock-line2x",
19
+      "unicode": "e7a2",
20
+      "unicode_decimal": 59298
21
+    },
22
+    {
23
+      "icon_id": "25049987",
24
+      "name": "logout-circle-r-line@2x",
25
+      "font_class": "a-logout-circle-r-line2x",
26
+      "unicode": "e7a4",
27
+      "unicode_decimal": 59300
28
+    },
29
+    {
30
+      "icon_id": "24638275",
31
+      "name": "settings-line@2x",
32
+      "font_class": "a-settings-line2x",
33
+      "unicode": "e7a0",
34
+      "unicode_decimal": 59296
35
+    },
36
+    {
37
+      "icon_id": "4734169",
38
+      "name": "上传",
39
+      "font_class": "ic_upload",
40
+      "unicode": "e615",
41
+      "unicode_decimal": 58901
42
+    },
43
+    {
44
+      "icon_id": "4734173",
45
+      "name": "添加",
46
+      "font_class": "ic_add",
47
+      "unicode": "e618",
48
+      "unicode_decimal": 58904
49
+    },
50
+    {
51
+      "icon_id": "4767010",
52
+      "name": "vertical left",
53
+      "font_class": "verticalleft",
54
+      "unicode": "e851",
55
+      "unicode_decimal": 59473
56
+    },
57
+    {
58
+      "icon_id": "4767011",
59
+      "name": "right",
60
+      "font_class": "right",
61
+      "unicode": "e852",
62
+      "unicode_decimal": 59474
63
+    },
64
+    {
65
+      "icon_id": "4767012",
66
+      "name": "left",
67
+      "font_class": "left",
68
+      "unicode": "e853",
69
+      "unicode_decimal": 59475
70
+    },
71
+    {
72
+      "icon_id": "4767013",
73
+      "name": "up",
74
+      "font_class": "up",
75
+      "unicode": "e854",
76
+      "unicode_decimal": 59476
77
+    },
78
+    {
79
+      "icon_id": "4767014",
80
+      "name": "down",
81
+      "font_class": "down",
82
+      "unicode": "e855",
83
+      "unicode_decimal": 59477
84
+    },
85
+    {
86
+      "icon_id": "4767019",
87
+      "name": "double right",
88
+      "font_class": "doubleright",
89
+      "unicode": "e859",
90
+      "unicode_decimal": 59481
91
+    },
92
+    {
93
+      "icon_id": "4767021",
94
+      "name": "arrowup",
95
+      "font_class": "arrowup",
96
+      "unicode": "e85b",
97
+      "unicode_decimal": 59483
98
+    },
99
+    {
100
+      "icon_id": "4767022",
101
+      "name": "arrowleft",
102
+      "font_class": "arrowleft",
103
+      "unicode": "e85c",
104
+      "unicode_decimal": 59484
105
+    },
106
+    {
107
+      "icon_id": "4767023",
108
+      "name": "arrowdown",
109
+      "font_class": "arrowdown",
110
+      "unicode": "e85d",
111
+      "unicode_decimal": 59485
112
+    },
113
+    {
114
+      "icon_id": "4767025",
115
+      "name": "upload",
116
+      "font_class": "upload",
117
+      "unicode": "e85e",
118
+      "unicode_decimal": 59486
119
+    },
120
+    {
121
+      "icon_id": "4767026",
122
+      "name": "colum-height",
123
+      "font_class": "colum-height",
124
+      "unicode": "e85f",
125
+      "unicode_decimal": 59487
126
+    },
127
+    {
128
+      "icon_id": "4767027",
129
+      "name": "vertical-align-botto",
130
+      "font_class": "vertical-align-botto",
131
+      "unicode": "e860",
132
+      "unicode_decimal": 59488
133
+    },
134
+    {
135
+      "icon_id": "5392964",
136
+      "name": "icon_login_id",
137
+      "font_class": "icon_login_id",
138
+      "unicode": "e65a",
139
+      "unicode_decimal": 58970
140
+    },
141
+    {
142
+      "icon_id": "5392968",
143
+      "name": "icon_login_mima",
144
+      "font_class": "icon_login_mima",
145
+      "unicode": "e660",
146
+      "unicode_decimal": 58976
147
+    },
148
+    {
149
+      "icon_id": "16626435",
150
+      "name": "plus-circle",
151
+      "font_class": "plus-circle-copy-copy",
152
+      "unicode": "e95c",
153
+      "unicode_decimal": 59740
154
+    },
155
+    {
156
+      "icon_id": "4765721",
157
+      "name": "check-circle",
158
+      "font_class": "check-circle",
159
+      "unicode": "e78b",
160
+      "unicode_decimal": 59275
161
+    },
162
+    {
163
+      "icon_id": "4765724",
164
+      "name": "compass",
165
+      "font_class": "compass",
166
+      "unicode": "e78c",
167
+      "unicode_decimal": 59276
168
+    },
169
+    {
170
+      "icon_id": "4765725",
171
+      "name": "close-circle",
172
+      "font_class": "close-circle",
173
+      "unicode": "e790",
174
+      "unicode_decimal": 59280
175
+    },
176
+    {
177
+      "icon_id": "4765726",
178
+      "name": "frown",
179
+      "font_class": "frown",
180
+      "unicode": "e793",
181
+      "unicode_decimal": 59283
182
+    },
183
+    {
184
+      "icon_id": "4765728",
185
+      "name": "left-circle",
186
+      "font_class": "left-circle",
187
+      "unicode": "e794",
188
+      "unicode_decimal": 59284
189
+    },
190
+    {
191
+      "icon_id": "4765729",
192
+      "name": "down-circle",
193
+      "font_class": "down-circle",
194
+      "unicode": "e797",
195
+      "unicode_decimal": 59287
196
+    },
197
+    {
198
+      "icon_id": "4765732",
199
+      "name": "minus-circle",
200
+      "font_class": "minus-circle",
201
+      "unicode": "e798",
202
+      "unicode_decimal": 59288
203
+    },
204
+    {
205
+      "icon_id": "4765733",
206
+      "name": "meh",
207
+      "font_class": "meh",
208
+      "unicode": "e799",
209
+      "unicode_decimal": 59289
210
+    },
211
+    {
212
+      "icon_id": "4765734",
213
+      "name": "plus-circle",
214
+      "font_class": "plus-circle",
215
+      "unicode": "e79a",
216
+      "unicode_decimal": 59290
217
+    },
218
+    {
219
+      "icon_id": "4765742",
220
+      "name": "time out",
221
+      "font_class": "timeout",
222
+      "unicode": "e79b",
223
+      "unicode_decimal": 59291
224
+    },
225
+    {
226
+      "icon_id": "4765746",
227
+      "name": "warning-circle",
228
+      "font_class": "warning-circle",
229
+      "unicode": "e79c",
230
+      "unicode_decimal": 59292
231
+    },
232
+    {
233
+      "icon_id": "4765811",
234
+      "name": "sync",
235
+      "font_class": "sync",
236
+      "unicode": "e79d",
237
+      "unicode_decimal": 59293
238
+    },
239
+    {
240
+      "icon_id": "4765890",
241
+      "name": "pie chart",
242
+      "font_class": "piechart",
243
+      "unicode": "e79f",
244
+      "unicode_decimal": 59295
245
+    },
246
+    {
247
+      "icon_id": "4765957",
248
+      "name": "edit-square",
249
+      "font_class": "edit-square",
250
+      "unicode": "e7a3",
251
+      "unicode_decimal": 59299
252
+    },
253
+    {
254
+      "icon_id": "4765969",
255
+      "name": "control",
256
+      "font_class": "control",
257
+      "unicode": "e7ad",
258
+      "unicode_decimal": 59309
259
+    },
260
+    {
261
+      "icon_id": "4765975",
262
+      "name": "project",
263
+      "font_class": "project",
264
+      "unicode": "e7b3",
265
+      "unicode_decimal": 59315
266
+    },
267
+    {
268
+      "icon_id": "4766688",
269
+      "name": "filter",
270
+      "font_class": "filter",
271
+      "unicode": "e800",
272
+      "unicode_decimal": 59392
273
+    },
274
+    {
275
+      "icon_id": "4766689",
276
+      "name": "funnel plot",
277
+      "font_class": "funnelplot",
278
+      "unicode": "e801",
279
+      "unicode_decimal": 59393
280
+    },
281
+    {
282
+      "icon_id": "4766774",
283
+      "name": "medicinebox",
284
+      "font_class": "medicinebox",
285
+      "unicode": "e809",
286
+      "unicode_decimal": 59401
287
+    },
288
+    {
289
+      "icon_id": "4766775",
290
+      "name": "shop",
291
+      "font_class": "shop",
292
+      "unicode": "e80a",
293
+      "unicode_decimal": 59402
294
+    },
295
+    {
296
+      "icon_id": "4766779",
297
+      "name": "shopping",
298
+      "font_class": "shopping",
299
+      "unicode": "e80c",
300
+      "unicode_decimal": 59404
301
+    },
302
+    {
303
+      "icon_id": "4766846",
304
+      "name": "folder",
305
+      "font_class": "folder",
306
+      "unicode": "e80d",
307
+      "unicode_decimal": 59405
308
+    },
309
+    {
310
+      "icon_id": "4766847",
311
+      "name": "folder-open",
312
+      "font_class": "folder-open",
313
+      "unicode": "e80e",
314
+      "unicode_decimal": 59406
315
+    },
316
+    {
317
+      "icon_id": "4766848",
318
+      "name": "folder-add",
319
+      "font_class": "folder-add",
320
+      "unicode": "e80f",
321
+      "unicode_decimal": 59407
322
+    },
323
+    {
324
+      "icon_id": "4766856",
325
+      "name": "carry out",
326
+      "font_class": "carryout",
327
+      "unicode": "e813",
328
+      "unicode_decimal": 59411
329
+    },
330
+    {
331
+      "icon_id": "4766861",
332
+      "name": "scan",
333
+      "font_class": "scan",
334
+      "unicode": "e816",
335
+      "unicode_decimal": 59414
336
+    },
337
+    {
338
+      "icon_id": "4766901",
339
+      "name": "cloud-upload",
340
+      "font_class": "cloud-upload",
341
+      "unicode": "e824",
342
+      "unicode_decimal": 59428
343
+    },
344
+    {
345
+      "icon_id": "4766903",
346
+      "name": "cloud-download",
347
+      "font_class": "cloud-download",
348
+      "unicode": "e826",
349
+      "unicode_decimal": 59430
350
+    },
351
+    {
352
+      "icon_id": "4767016",
353
+      "name": "fullscreen-exit",
354
+      "font_class": "fullscreen-exit",
355
+      "unicode": "e857",
356
+      "unicode_decimal": 59479
357
+    },
358
+    {
359
+      "icon_id": "4767029",
360
+      "name": "totop",
361
+      "font_class": "totop",
362
+      "unicode": "e862",
363
+      "unicode_decimal": 59490
364
+    },
365
+    {
366
+      "icon_id": "4936455",
367
+      "name": "crown",
368
+      "font_class": "crown",
369
+      "unicode": "e88d",
370
+      "unicode_decimal": 59533
371
+    },
372
+    {
373
+      "icon_id": "4936478",
374
+      "name": "check-circle-fill",
375
+      "font_class": "check-circle-fill",
376
+      "unicode": "e894",
377
+      "unicode_decimal": 59540
378
+    },
379
+    {
380
+      "icon_id": "4936479",
381
+      "name": "left-circle-fill",
382
+      "font_class": "left-circle-fill",
383
+      "unicode": "e895",
384
+      "unicode_decimal": 59541
385
+    },
386
+    {
387
+      "icon_id": "4936480",
388
+      "name": "down-circle-fill",
389
+      "font_class": "down-circle-fill",
390
+      "unicode": "e896",
391
+      "unicode_decimal": 59542
392
+    },
393
+    {
394
+      "icon_id": "4936481",
395
+      "name": "minus-circle-fill",
396
+      "font_class": "minus-circle-fill",
397
+      "unicode": "e897",
398
+      "unicode_decimal": 59543
399
+    },
400
+    {
401
+      "icon_id": "4936482",
402
+      "name": "close-circle-fill",
403
+      "font_class": "close-circle-fill",
404
+      "unicode": "e898",
405
+      "unicode_decimal": 59544
406
+    },
407
+    {
408
+      "icon_id": "4936483",
409
+      "name": "info-circle-fill",
410
+      "font_class": "info-circle-fill",
411
+      "unicode": "e899",
412
+      "unicode_decimal": 59545
413
+    },
414
+    {
415
+      "icon_id": "4936484",
416
+      "name": "up-circle-fill",
417
+      "font_class": "up-circle-fill",
418
+      "unicode": "e89a",
419
+      "unicode_decimal": 59546
420
+    },
421
+    {
422
+      "icon_id": "4936485",
423
+      "name": "right-circle-fill",
424
+      "font_class": "right-circle-fill",
425
+      "unicode": "e89b",
426
+      "unicode_decimal": 59547
427
+    },
428
+    {
429
+      "icon_id": "4936486",
430
+      "name": "plus-circle-fill",
431
+      "font_class": "plus-circle-fill",
432
+      "unicode": "e89c",
433
+      "unicode_decimal": 59548
434
+    },
435
+    {
436
+      "icon_id": "4936487",
437
+      "name": "question-circle-fill",
438
+      "font_class": "question-circle-fill",
439
+      "unicode": "e89d",
440
+      "unicode_decimal": 59549
441
+    },
442
+    {
443
+      "icon_id": "4936499",
444
+      "name": "EURO-circle-fill",
445
+      "font_class": "EURO-circle-fill",
446
+      "unicode": "e89e",
447
+      "unicode_decimal": 59550
448
+    },
449
+    {
450
+      "icon_id": "4936511",
451
+      "name": "warning-circle-fill",
452
+      "font_class": "warning-circle-fill",
453
+      "unicode": "e8a9",
454
+      "unicode_decimal": 59561
455
+    },
456
+    {
457
+      "icon_id": "4936512",
458
+      "name": "time-circle-fill",
459
+      "font_class": "time-circle-fill",
460
+      "unicode": "e8aa",
461
+      "unicode_decimal": 59562
462
+    },
463
+    {
464
+      "icon_id": "4936519",
465
+      "name": "heart-fill",
466
+      "font_class": "heart-fill",
467
+      "unicode": "e8ad",
468
+      "unicode_decimal": 59565
469
+    },
470
+    {
471
+      "icon_id": "4936520",
472
+      "name": "pie chart-circle-fil",
473
+      "font_class": "piechart-circle-fil",
474
+      "unicode": "e8ae",
475
+      "unicode_decimal": 59566
476
+    },
477
+    {
478
+      "icon_id": "4936529",
479
+      "name": "check-square-fill",
480
+      "font_class": "check-square-fill",
481
+      "unicode": "e8b1",
482
+      "unicode_decimal": 59569
483
+    },
484
+    {
485
+      "icon_id": "4936530",
486
+      "name": "down-square-fill",
487
+      "font_class": "down-square-fill",
488
+      "unicode": "e8b2",
489
+      "unicode_decimal": 59570
490
+    },
491
+    {
492
+      "icon_id": "4936531",
493
+      "name": "minus-square-fill",
494
+      "font_class": "minus-square-fill",
495
+      "unicode": "e8b3",
496
+      "unicode_decimal": 59571
497
+    },
498
+    {
499
+      "icon_id": "4936532",
500
+      "name": "close-square-fill",
501
+      "font_class": "close-square-fill",
502
+      "unicode": "e8b4",
503
+      "unicode_decimal": 59572
504
+    },
505
+    {
506
+      "icon_id": "4936534",
507
+      "name": "left-square-fill",
508
+      "font_class": "left-square-fill",
509
+      "unicode": "e8b6",
510
+      "unicode_decimal": 59574
511
+    },
512
+    {
513
+      "icon_id": "4936535",
514
+      "name": "play-square-fill",
515
+      "font_class": "play-square-fill",
516
+      "unicode": "e8b7",
517
+      "unicode_decimal": 59575
518
+    },
519
+    {
520
+      "icon_id": "4936536",
521
+      "name": "up-square-fill",
522
+      "font_class": "up-square-fill",
523
+      "unicode": "e8b8",
524
+      "unicode_decimal": 59576
525
+    },
526
+    {
527
+      "icon_id": "4936537",
528
+      "name": "right-square-fill",
529
+      "font_class": "right-square-fill",
530
+      "unicode": "e8b9",
531
+      "unicode_decimal": 59577
532
+    },
533
+    {
534
+      "icon_id": "4936538",
535
+      "name": "plus-square-fill",
536
+      "font_class": "plus-square-fill",
537
+      "unicode": "e8ba",
538
+      "unicode_decimal": 59578
539
+    },
540
+    {
541
+      "icon_id": "4936542",
542
+      "name": "account book-fill",
543
+      "font_class": "accountbook-fill",
544
+      "unicode": "e8bb",
545
+      "unicode_decimal": 59579
546
+    },
547
+    {
548
+      "icon_id": "4936543",
549
+      "name": "carry out-fill",
550
+      "font_class": "carryout-fill",
551
+      "unicode": "e8bc",
552
+      "unicode_decimal": 59580
553
+    },
554
+    {
555
+      "icon_id": "4936544",
556
+      "name": "calendar-fill",
557
+      "font_class": "calendar-fill",
558
+      "unicode": "e8bd",
559
+      "unicode_decimal": 59581
560
+    },
561
+    {
562
+      "icon_id": "4936545",
563
+      "name": "calculator-fill",
564
+      "font_class": "calculator-fill",
565
+      "unicode": "e8be",
566
+      "unicode_decimal": 59582
567
+    },
568
+    {
569
+      "icon_id": "4936546",
570
+      "name": "interation-fill",
571
+      "font_class": "interation-fill",
572
+      "unicode": "e8bf",
573
+      "unicode_decimal": 59583
574
+    },
575
+    {
576
+      "icon_id": "4936550",
577
+      "name": "project-fill",
578
+      "font_class": "project-fill",
579
+      "unicode": "e8c0",
580
+      "unicode_decimal": 59584
581
+    },
582
+    {
583
+      "icon_id": "4936571",
584
+      "name": "detail-fill",
585
+      "font_class": "detail-fill",
586
+      "unicode": "e8c1",
587
+      "unicode_decimal": 59585
588
+    },
589
+    {
590
+      "icon_id": "4936577",
591
+      "name": "control-fill",
592
+      "font_class": "control-fill",
593
+      "unicode": "e8c4",
594
+      "unicode_decimal": 59588
595
+    },
596
+    {
597
+      "icon_id": "4936602",
598
+      "name": "file-exclamation-fil",
599
+      "font_class": "file-exclamation-fil",
600
+      "unicode": "e8cf",
601
+      "unicode_decimal": 59599
602
+    },
603
+    {
604
+      "icon_id": "4936619",
605
+      "name": "snippets-fill",
606
+      "font_class": "snippets-fill",
607
+      "unicode": "e8dd",
608
+      "unicode_decimal": 59613
609
+    },
610
+    {
611
+      "icon_id": "4936620",
612
+      "name": "batch folding-fill",
613
+      "font_class": "batchfolding-fill",
614
+      "unicode": "e8de",
615
+      "unicode_decimal": 59614
616
+    },
617
+    {
618
+      "icon_id": "4936621",
619
+      "name": "reconciliation-fill",
620
+      "font_class": "reconciliation-fill",
621
+      "unicode": "e8df",
622
+      "unicode_decimal": 59615
623
+    },
624
+    {
625
+      "icon_id": "4936624",
626
+      "name": "folder-open-fill",
627
+      "font_class": "folder-open-fill",
628
+      "unicode": "e8e2",
629
+      "unicode_decimal": 59618
630
+    },
631
+    {
632
+      "icon_id": "4936630",
633
+      "name": "image-fill",
634
+      "font_class": "image-fill",
635
+      "unicode": "e8e7",
636
+      "unicode_decimal": 59623
637
+    },
638
+    {
639
+      "icon_id": "4936631",
640
+      "name": "id card-fill",
641
+      "font_class": "idcard-fill",
642
+      "unicode": "e8e8",
643
+      "unicode_decimal": 59624
644
+    },
645
+    {
646
+      "icon_id": "4936633",
647
+      "name": "credit card-fill",
648
+      "font_class": "creditcard-fill",
649
+      "unicode": "e8e9",
650
+      "unicode_decimal": 59625
651
+    },
652
+    {
653
+      "icon_id": "8094805",
654
+      "name": "clear",
655
+      "font_class": "clear",
656
+      "unicode": "e948",
657
+      "unicode_decimal": 59720
658
+    },
659
+    {
660
+      "icon_id": "4734156",
661
+      "name": "项目,房产,写字楼",
662
+      "font_class": "ic_project",
663
+      "unicode": "e610",
664
+      "unicode_decimal": 58896
665
+    },
666
+    {
667
+      "icon_id": "16728193",
668
+      "name": "plus-circle",
669
+      "font_class": "plus-circle-copy-copy-copy",
670
+      "unicode": "e95d",
671
+      "unicode_decimal": 59741
672
+    },
673
+    {
674
+      "icon_id": "17442109",
675
+      "name": "icon_arrowdown",
676
+      "font_class": "icon_arrowdown",
677
+      "unicode": "e75e",
678
+      "unicode_decimal": 59230
679
+    },
680
+    {
681
+      "icon_id": "17442118",
682
+      "name": "icon_delete",
683
+      "font_class": "icon_delete",
684
+      "unicode": "e760",
685
+      "unicode_decimal": 59232
686
+    },
687
+    {
688
+      "icon_id": "17442139",
689
+      "name": "icon_left2",
690
+      "font_class": "icon_left2",
691
+      "unicode": "e763",
692
+      "unicode_decimal": 59235
693
+    },
694
+    {
695
+      "icon_id": "17442150",
696
+      "name": "icon_right2",
697
+      "font_class": "icon_right2",
698
+      "unicode": "e764",
699
+      "unicode_decimal": 59236
700
+    },
701
+    {
702
+      "icon_id": "17451682",
703
+      "name": "icon_qingchu",
704
+      "font_class": "icon_qingchu",
705
+      "unicode": "e767",
706
+      "unicode_decimal": 59239
707
+    },
708
+    {
709
+      "icon_id": "17453712",
710
+      "name": "icon_首页",
711
+      "font_class": "icon_shouye",
712
+      "unicode": "e768",
713
+      "unicode_decimal": 59240
714
+    },
715
+    {
716
+      "icon_id": "17453720",
717
+      "name": "icon_权限管理",
718
+      "font_class": "icon_quanxianguanli",
719
+      "unicode": "e76b",
720
+      "unicode_decimal": 59243
721
+    },
722
+    {
723
+      "icon_id": "17453766",
724
+      "name": "icon_交易管理",
725
+      "font_class": "icon_jiaoyiguanli",
726
+      "unicode": "e76f",
727
+      "unicode_decimal": 59247
728
+    },
729
+    {
730
+      "icon_id": "17633151",
731
+      "name": "icon_search",
732
+      "font_class": "icon_search",
733
+      "unicode": "e79e",
734
+      "unicode_decimal": 59294
735
+    },
736
+    {
737
+      "icon_id": "24637938",
738
+      "name": "Icon_Outline_delet@2x",
739
+      "font_class": "a-Icon_Outline_delet2x",
740
+      "unicode": "e788",
741
+      "unicode_decimal": 59272
742
+    },
743
+    {
744
+      "icon_id": "24637800",
745
+      "name": "Icon_Star_half+selected@2x",
746
+      "font_class": "a-Icon_Star_halfselected2x",
747
+      "unicode": "e787",
748
+      "unicode_decimal": 59271
749
+    },
750
+    {
751
+      "icon_id": "24637745",
752
+      "name": "Icon_Outline_left3@2x",
753
+      "font_class": "a-Icon_Outline_left32x",
754
+      "unicode": "e786",
755
+      "unicode_decimal": 59270
756
+    },
757
+    {
758
+      "icon_id": "24637583",
759
+      "name": "Icon_Outline_Star_half+selected备份@2x",
760
+      "font_class": "a-Icon_Outline_Star_halfselectedbeifen2x",
761
+      "unicode": "e785",
762
+      "unicode_decimal": 59269
763
+    },
764
+    {
765
+      "icon_id": "24637587",
766
+      "name": "Icon_Outline_question1@2x",
767
+      "font_class": "a-Icon_Outline_question12x",
768
+      "unicode": "e789",
769
+      "unicode_decimal": 59273
770
+    },
771
+    {
772
+      "icon_id": "24637588",
773
+      "name": "icon_chart@2x",
774
+      "font_class": "a-icon_chart2x",
775
+      "unicode": "e78a",
776
+      "unicode_decimal": 59274
777
+    },
778
+    {
779
+      "icon_id": "24637591",
780
+      "name": "Icon_Outline_noeyes@2x",
781
+      "font_class": "a-Icon_Outline_noeyes2x",
782
+      "unicode": "e78d",
783
+      "unicode_decimal": 59277
784
+    },
785
+    {
786
+      "icon_id": "24637592",
787
+      "name": "@2x",
788
+      "font_class": "a-2x",
789
+      "unicode": "e78e",
790
+      "unicode_decimal": 59278
791
+    },
792
+    {
793
+      "icon_id": "24637593",
794
+      "name": "icon——add-line (2)@2x",
795
+      "font_class": "a-iconadd-line22x",
796
+      "unicode": "e78f",
797
+      "unicode_decimal": 59279
798
+    },
799
+    {
800
+      "icon_id": "24637595",
801
+      "name": "Icon_Outline_eyes@2x",
802
+      "font_class": "a-Icon_Outline_eyes2x",
803
+      "unicode": "e791",
804
+      "unicode_decimal": 59281
805
+    },
806
+    {
807
+      "icon_id": "24637596",
808
+      "name": "Icon_Outline_edit@2x",
809
+      "font_class": "a-Icon_Outline_edit2x",
810
+      "unicode": "e792",
811
+      "unicode_decimal": 59282
812
+    },
813
+    {
814
+      "icon_id": "24637599",
815
+      "name": "Icon_Outline_switch@2x",
816
+      "font_class": "a-Icon_Outline_switch2x",
817
+      "unicode": "e795",
818
+      "unicode_decimal": 59285
819
+    },
820
+    {
821
+      "icon_id": "24637600",
822
+      "name": "Icon_Outline_message@2x",
823
+      "font_class": "a-Icon_Outline_message2x",
824
+      "unicode": "e796",
825
+      "unicode_decimal": 59286
826
+    },
827
+    {
828
+      "icon_id": "23927576",
829
+      "name": "draft-line",
830
+      "font_class": "draft-line",
831
+      "unicode": "e784",
832
+      "unicode_decimal": 59268
833
+    },
834
+    {
835
+      "icon_id": "23582524",
836
+      "name": "arechart@2x",
837
+      "font_class": "a-arechart2x",
838
+      "unicode": "e783",
839
+      "unicode_decimal": 59267
840
+    },
841
+    {
842
+      "icon_id": "23582421",
843
+      "name": "智能工单@2x",
844
+      "font_class": "a-zhinenggongdan2x",
845
+      "unicode": "e77c",
846
+      "unicode_decimal": 59260
847
+    },
848
+    {
849
+      "icon_id": "23582422",
850
+      "name": "人@2x",
851
+      "font_class": "a-ren2x",
852
+      "unicode": "e77e",
853
+      "unicode_decimal": 59262
854
+    },
855
+    {
856
+      "icon_id": "23582358",
857
+      "name": "folder-user-fill@2x",
858
+      "font_class": "a-folder-user-fill2x",
859
+      "unicode": "e778",
860
+      "unicode_decimal": 59256
861
+    },
862
+    {
863
+      "icon_id": "23582359",
864
+      "name": "file-text-line@2x",
865
+      "font_class": "a-file-text-line2x",
866
+      "unicode": "e779",
867
+      "unicode_decimal": 59257
868
+    },
869
+    {
870
+      "icon_id": "23582360",
871
+      "name": "menufold@2x",
872
+      "font_class": "a-menufold2x",
873
+      "unicode": "e77a",
874
+      "unicode_decimal": 59258
875
+    },
876
+    {
877
+      "icon_id": "23582361",
878
+      "name": "编组 18@2x",
879
+      "font_class": "a-bianzu182x",
880
+      "unicode": "e77b",
881
+      "unicode_decimal": 59259
882
+    },
883
+    {
884
+      "icon_id": "23582363",
885
+      "name": "menunomel@2x",
886
+      "font_class": "a-menunomel2x",
887
+      "unicode": "e77d",
888
+      "unicode_decimal": 59261
889
+    },
890
+    {
891
+      "icon_id": "23582365",
892
+      "name": "switch@2x",
893
+      "font_class": "a-switch2x",
894
+      "unicode": "e77f",
895
+      "unicode_decimal": 59263
896
+    },
897
+    {
898
+      "icon_id": "23582366",
899
+      "name": "close@2x",
900
+      "font_class": "a-close2x",
901
+      "unicode": "e780",
902
+      "unicode_decimal": 59264
903
+    },
904
+    {
905
+      "icon_id": "23582367",
906
+      "name": "right@2x",
907
+      "font_class": "a-right2x",
908
+      "unicode": "e781",
909
+      "unicode_decimal": 59265
910
+    },
911
+    {
912
+      "icon_id": "23582368",
913
+      "name": "piechart@2x",
914
+      "font_class": "a-piechart2x",
915
+      "unicode": "e782",
916
+      "unicode_decimal": 59266
917
+    }
918
+  ]
919
+}

BIN
src/assets/iconfont/iconfont.ttf


BIN
src/assets/iconfont/iconfont.woff


BIN
src/assets/iconfont/iconfont.woff2


BIN
src/assets/images/female.png


BIN
src/assets/images/icon-client.png


BIN
src/assets/images/img_bg_1366_03@3x.png


+ 137 - 0
src/assets/images/img_user_defaut.svg

@@ -0,0 +1,137 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
3
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+	 viewBox="0 0 96 96" style="enable-background:new 0 0 96 96;" xml:space="preserve">
5
+<style type="text/css">
6
+	.st0{fill:#FFFFFF;}
7
+	.st1{fill:url(#SVGID_1_);}
8
+	.st2{filter:url(#Adobe_OpacityMaskFilter);}
9
+	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
10
+	.st4{mask:url(#mask-3_1_);}
11
+	.st5{opacity:0.8;fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;enable-background:new    ;}
12
+	.st6{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);}
13
+	.st7{fill:#085041;}
14
+	.st8{filter:url(#filter-12);}
15
+	.st9{fill-rule:evenodd;clip-rule:evenodd;}
16
+	.st10{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_3_);}
17
+	.st11{filter:url(#filter-15);}
18
+	.st12{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_4_);}
19
+	.st13{fill-rule:evenodd;clip-rule:evenodd;fill:#E9E9E9;}
20
+	.st14{opacity:0.5;fill-rule:evenodd;clip-rule:evenodd;fill:#085041;enable-background:new    ;}
21
+</style>
22
+<filter  filterUnits="objectBoundingBox" height="164.6%" id="filter-15" width="176.7%" x="-38.4%" y="-25.8%">
23
+	<feOffset  dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
24
+	<feGaussianBlur  in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="1.5"></feGaussianBlur>
25
+	
26
+		<feColorMatrix  in="shadowBlurOuter1" type="matrix" values="0 0 0 0 0.031372549   0 0 0 0 0.31372549   0 0 0 0 0.254901961  0 0 0 0.15 0">
27
+		</feColorMatrix>
28
+</filter>
29
+<filter  filterUnits="objectBoundingBox" height="164.9%" id="filter-12" width="179.3%" x="-39.6%" y="-25.9%">
30
+	<feOffset  dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
31
+	<feGaussianBlur  in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="1.5"></feGaussianBlur>
32
+	
33
+		<feColorMatrix  in="shadowBlurOuter1" type="matrix" values="0 0 0 0 0.031372549   0 0 0 0 0.31372549   0 0 0 0 0.254901961  0 0 0 0.15 0">
34
+		</feColorMatrix>
35
+</filter>
36
+<g id="页面-1">
37
+	<g id="画板" transform="translate(-160.000000, -1577.000000)">
38
+		<g id="img_user_defaut" transform="translate(160.000000, 1577.000000)">
39
+			<g id="Mask">
40
+				<g>
41
+					<circle class="st0" cx="48" cy="48" r="48"/>
42
+				</g>
43
+				<g>
44
+					
45
+						<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-445.8021" y1="544.3021" x2="-445.8021" y2="543.3021" gradientTransform="matrix(96 0 0 -96 42845 52253)">
46
+						<stop  offset="0" style="stop-color:#52A392"/>
47
+						<stop  offset="1" style="stop-color:#085041"/>
48
+					</linearGradient>
49
+					<circle class="st1" cx="48" cy="48" r="48"/>
50
+				</g>
51
+			</g>
52
+			<defs>
53
+				<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="9.9" y="16.9" width="75.7" height="84.9">
54
+					<feColorMatrix  type="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"/>
55
+				</filter>
56
+			</defs>
57
+			<mask maskUnits="userSpaceOnUse" x="9.9" y="16.9" width="75.7" height="84.9" id="mask-3_1_">
58
+				<g class="st2">
59
+					<circle id="path-2_1_" class="st3" cx="48" cy="48" r="48"/>
60
+				</g>
61
+			</mask>
62
+			<g id="分组-36" class="st4">
63
+				<g transform="translate(9.882353, 16.235294)">
64
+					<path id="椭圆形-copy-9" class="st5" d="M51.9,35.1c-4.2-1.1-3-3.8-1.9-7.1c1.1-3.2,3.4-5.4,5.5-4.7
65
+						c2.1,0.7,3.4,2.9,2.3,5.8C56.6,31.9,56.1,36.2,51.9,35.1z"/>
66
+					<path class="st5" d="M23.3,35.1c4.2-1.1,3-3.8,1.9-7.1c-1.1-3.2-3.4-5.4-5.5-4.7c-2.1,0.7-3.6,2.9-2.3,5.8S19.1,36.2,23.3,35.1
67
+						z"/>
68
+					<g id="路径-11-copy">
69
+						<g>
70
+							<path id="path-5" class="st3" d="M29.7,44.3v6l-3.1,2.5c-1.8,1.5-4,2.6-6.3,3.1l-5.6,1.4C9,58.7,4.5,63.1,3.1,68.7L0,80.5
71
+								l0,0h75.7l-3.8-12.3c-1.6-5.3-5.9-9.4-11.2-10.8l-5.4-1.4c-2.2-0.6-4.2-1.6-5.9-3L46,50.3l0,0l0-5.9L29.7,44.3z"/>
72
+						</g>
73
+						<g>
74
+							
75
+								<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-454.4272" y1="520.312" x2="-454.4272" y2="519.2" gradientTransform="matrix(75.7332 0 0 -36.2169 34453.0742 18888.3516)">
76
+								<stop  offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
77
+								<stop  offset="1" style="stop-color:#085041;stop-opacity:0.5"/>
78
+							</linearGradient>
79
+							<path class="st6" d="M29.7,44.3v6l-3.1,2.5c-1.8,1.5-4,2.6-6.3,3.1l-5.6,1.4C9,58.7,4.5,63.1,3.1,68.7L0,80.5l0,0h75.7
80
+								l-3.8-12.3c-1.6-5.3-5.9-9.4-11.2-10.8l-5.4-1.4c-2.2-0.6-4.2-1.6-5.9-3L46,50.3l0,0l0-5.9L29.7,44.3z"/>
81
+						</g>
82
+					</g>
83
+					<g id="Group-22" transform="translate(32.117647, 58.341176)">
84
+						<g>
85
+							<polygon class="st7" points="8.5,2.5 12.1,27.2 0,27.2 3.4,2.5 6,0.3 							"/>
86
+						</g>
87
+						<g id="Combined-Shape">
88
+							<path class="st0" d="M2.7,7.4L4.1,2C4.7,1.4,5.3,0.9,6,0.3c1,0.6,1.9,1.3,2.4,1.9L9.9,12L2.7,7.4z"/>
89
+						</g>
90
+					</g>
91
+					<g id="矩形">
92
+						<g class="st8">
93
+							<polygon id="path-11_1_" class="st9" points="38.2,58.7 46.1,50.3 50.8,53.9 41.3,65.7 							"/>
94
+						</g>
95
+						<g>
96
+							<polygon class="st3" points="38.2,58.7 46.1,50.3 50.8,53.9 41.3,65.7 							"/>
97
+						</g>
98
+						<g>
99
+							
100
+								<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-424.4357" y1="502.7987" x2="-425.0264" y2="503.7627" gradientTransform="matrix(12.6121 0 0 -15.4194 5399.8423 7814.2368)">
101
+								<stop  offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
102
+								<stop  offset="1" style="stop-color:#085041;stop-opacity:0.5"/>
103
+							</linearGradient>
104
+							<polygon class="st10" points="38.2,58.7 46.1,50.3 50.8,53.9 41.3,65.7 							"/>
105
+						</g>
106
+					</g>
107
+					<g transform="translate(31.644599, 58.005446) scale(-1, 1) translate(-31.644599, -58.005446) ">
108
+						<g class="st11">
109
+							<polygon id="path-14_1_" class="st9" points="25.1,58.7 33.6,50.3 38.2,53.8 28.4,65.7 							"/>
110
+						</g>
111
+						<g>
112
+							<polygon class="st3" points="25.1,58.7 33.6,50.3 38.2,53.8 28.4,65.7 							"/>
113
+						</g>
114
+						<g>
115
+							
116
+								<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="558.0754" y1="502.9041" x2="557.4498" y2="503.868" gradientTransform="matrix(-13.0324 0 0 -15.4826 7307.3159 7847.8516)">
117
+								<stop  offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
118
+								<stop  offset="1" style="stop-color:#085041;stop-opacity:0.5"/>
119
+							</linearGradient>
120
+							<polygon class="st12" points="25.1,58.7 33.6,50.3 38.2,53.8 28.4,65.7 							"/>
121
+						</g>
122
+					</g>
123
+					<path id="合并形状" class="st13" d="M49.8,5.4c0.8,0.7,1.6,1.6,2.2,2.5c1.4,2,2.3,4,2.9,6.2c-6.9,0.5-11.6-1.4-14.3-5.8
124
+						l0,0l1-1.4l6.5-1.4L49.8,5.4z"/>
125
+					<polygon id="路径-12-copy" class="st14" points="29.6,50.2 38.2,58.7 46.1,50.3 46.1,42.4 29.6,42.4 					"/>
126
+					<path id="椭圆形-copy-10" class="st3" d="M37.8,47.7c8.7,0,18-11.6,18-24.3c0-6.3-0.7-10.8-3.9-15.6
127
+						c-3.2-4.7-9.6-7.2-14.4-7.2c-5.5,0-11.7,3.5-14.9,8.8c-2.3,3.9-3,8-3,13.3C19.7,35.5,29.1,47.7,37.8,47.7z"/>
128
+					<path class="st14" d="M49.8,5.4c0.8,0.7,1.6,1.6,2.2,2.5c1.4,2,2.3,4,2.9,6.2c-6.9,0.5-11.6-1.4-14.3-5.8l0,0l1-1.4l6.5-1.4
129
+						L49.8,5.4z"/>
130
+					<path id="路径-10-copy" class="st3" d="M36.6,0.9c2.6-0.2,3.3-0.5,9.3,0.7s7.6-0.3,8.1-0.9s3.1,5.7-1.4,8.1s-11.3,1-12.5,0.7
131
+						C39.5,9.5,36.1,9,34.8,6C34.4,4.9,34,1.1,36.6,0.9z"/>
132
+				</g>
133
+			</g>
134
+		</g>
135
+	</g>
136
+</g>
137
+</svg>

BIN
src/assets/images/male.png


BIN
src/assets/images/nian.png


BIN
src/assets/images/purple.png


BIN
src/assets/images/ri.png


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_bieshu.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_bieshu_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_changzu.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_changzu_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_chewei.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_chewei_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_dianpu.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_dianpu_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_dichan.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_dichan_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gaojiazhi.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gaojiazhi_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gongjian.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gongjian_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gongyu.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_gongyu_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_qianfei.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_qianfei_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_wuye.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_wuye_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_xiezilou.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_xiezilou_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_yanglao.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_yanglao_active.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_zhuzai.svg


File diff suppressed because it is too large
+ 1 - 0
src/assets/images/singlePortray/icon_zhuzai_active.svg


+ 0 - 0
src/assets/images/yue.png


Some files were not shown because too many files changed in this diff