Ver Código Fonte

代码提交

miaofuhao 2 semanas atrás
commit
cf1040f849
100 arquivos alterados com 1831 adições e 0 exclusões
  1. 15 0
      .editorconfig
  2. 9 0
      .env.development
  3. 15 0
      .env.production
  4. 19 0
      .env.staging
  5. 22 0
      .env.zzprod
  6. 15 0
      .eslintignore
  7. 76 0
      .eslintrc.js
  8. 24 0
      .gitignore
  9. 4 0
      .husky/commit-msg
  10. 4 0
      .husky/pre-commit
  11. 9 0
      .prettierignore
  12. BIN
      11271h5dist.zip
  13. BIN
      12021h5dist.zip
  14. BIN
      12022h5dist.zip
  15. BIN
      12101h5dist.zip
  16. 0 0
      2.0.0.txt
  17. 22 0
      README.md
  18. 0 0
      absolute/path/to/file.js
  19. 28 0
      bash.exe.stackdump
  20. 12 0
      bin/build.bat
  21. 12 0
      bin/demo.js
  22. 12 0
      bin/package.bat
  23. 12 0
      bin/run-web.bat
  24. 0 0
      ceshi.txt
  25. 262 0
      html/ie.html
  26. 212 0
      index.html
  27. 465 0
      nginx.conf
  28. 117 0
      package.json
  29. 6 0
      postcss.config.js
  30. 11 0
      prettier.config.js
  31. 55 0
      project-remark.md
  32. 262 0
      project-remark1.md
  33. BIN
      public/favicon-1.ico
  34. 1 0
      public/tinymce/langs/ar.js
  35. 1 0
      public/tinymce/langs/az.js
  36. 1 0
      public/tinymce/langs/be.js
  37. 1 0
      public/tinymce/langs/bg_BG.js
  38. 1 0
      public/tinymce/langs/bn_BD.js
  39. 1 0
      public/tinymce/langs/ca.js
  40. 1 0
      public/tinymce/langs/cs.js
  41. 1 0
      public/tinymce/langs/cy.js
  42. 1 0
      public/tinymce/langs/da.js
  43. 1 0
      public/tinymce/langs/de.js
  44. 1 0
      public/tinymce/langs/dv.js
  45. 1 0
      public/tinymce/langs/el.js
  46. 1 0
      public/tinymce/langs/eo.js
  47. 1 0
      public/tinymce/langs/es.js
  48. 1 0
      public/tinymce/langs/es_MX.js
  49. 1 0
      public/tinymce/langs/et.js
  50. 1 0
      public/tinymce/langs/eu.js
  51. 1 0
      public/tinymce/langs/fa.js
  52. 1 0
      public/tinymce/langs/fi.js
  53. 1 0
      public/tinymce/langs/fr_FR.js
  54. 1 0
      public/tinymce/langs/ga.js
  55. 1 0
      public/tinymce/langs/gl.js
  56. 1 0
      public/tinymce/langs/he_IL.js
  57. 1 0
      public/tinymce/langs/hi.js
  58. 1 0
      public/tinymce/langs/hr.js
  59. 1 0
      public/tinymce/langs/hu_HU.js
  60. 1 0
      public/tinymce/langs/hy.js
  61. 1 0
      public/tinymce/langs/id.js
  62. 1 0
      public/tinymce/langs/is_IS.js
  63. 1 0
      public/tinymce/langs/it.js
  64. 1 0
      public/tinymce/langs/ja.js
  65. 1 0
      public/tinymce/langs/ka_GE.js
  66. 1 0
      public/tinymce/langs/kab.js
  67. 1 0
      public/tinymce/langs/kk.js
  68. 1 0
      public/tinymce/langs/ko_KR.js
  69. 1 0
      public/tinymce/langs/ku.js
  70. 1 0
      public/tinymce/langs/lt.js
  71. 1 0
      public/tinymce/langs/lv.js
  72. 1 0
      public/tinymce/langs/nb_NO.js
  73. 1 0
      public/tinymce/langs/ne.js
  74. 1 0
      public/tinymce/langs/nl.js
  75. 1 0
      public/tinymce/langs/nl_BE.js
  76. 1 0
      public/tinymce/langs/oc.js
  77. 1 0
      public/tinymce/langs/pl.js
  78. 1 0
      public/tinymce/langs/pt_BR.js
  79. 1 0
      public/tinymce/langs/ro.js
  80. 1 0
      public/tinymce/langs/ru.js
  81. 1 0
      public/tinymce/langs/sk.js
  82. 1 0
      public/tinymce/langs/sl_SI.js
  83. 1 0
      public/tinymce/langs/sq.js
  84. 1 0
      public/tinymce/langs/sr.js
  85. 1 0
      public/tinymce/langs/sv_SE.js
  86. 1 0
      public/tinymce/langs/ta.js
  87. 1 0
      public/tinymce/langs/tg.js
  88. 1 0
      public/tinymce/langs/th_TH.js
  89. 1 0
      public/tinymce/langs/tr.js
  90. 1 0
      public/tinymce/langs/ug.js
  91. 1 0
      public/tinymce/langs/uk.js
  92. 1 0
      public/tinymce/langs/uz.js
  93. 1 0
      public/tinymce/langs/vi.js
  94. 1 0
      public/tinymce/langs/zh-Hans.js
  95. 1 0
      public/tinymce/langs/zh-Hant.js
  96. 1 0
      public/tinymce/langs/zh_HK.js
  97. 1 0
      public/tinymce/langs/zh_MO.js
  98. 1 0
      public/tinymce/langs/zh_SG.js
  99. 66 0
      public/tinymce/skins/content/dark/content.css
  100. 0 0
      public/tinymce/skins/content/dark/content.js

+ 15 - 0
.editorconfig

@@ -0,0 +1,15 @@
1
+# http://editorconfig.org
2
+
3
+root = true
4
+
5
+[*] # 表示所有文件适用
6
+charset = utf-8 # 设置文件字符集为 utf-8
7
+indent_style = space # 缩进风格(tab | space)
8
+indent_size = 2 # 缩进大小
9
+end_of_line = lf # 控制换行类型(lf | cr | crlf)
10
+trim_trailing_whitespace = true # 去除行首的任意空白字符
11
+insert_final_newline = true # 始终在文件末尾插入一个新行
12
+
13
+[*.md] # 表示仅 md 文件适用以下规则
14
+max_line_length = off
15
+trim_trailing_whitespace = false

+ 9 - 0
.env.development

@@ -0,0 +1,9 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 蓝天燃气智慧话务系统
3
+
4
+# 开发环境配置
5
+VITE_APP_ENV = 'development'
6
+# VITE_APP_BASE_API = 'http://39.164.159.226:8160/'  # 接口地址
7
+VITE_APP_BASE_API = 'http://192.168.1.15:8160/'  # 接口地址
8
+VITE_APP_CHAT_WS = 'ws://192.168.1.170:8160/ws'
9
+

+ 15 - 0
.env.production

@@ -0,0 +1,15 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 智能客服系统
3
+
4
+# 生产环境配置
5
+VITE_APP_ENV = 'production'
6
+
7
+# 若依管理系统/生产环境
8
+VITE_APP_ENV = 'development'
9
+# VITE_APP_BASE_API = 'http://wx.ltrqkf.cn/'  # 接口地址   http://192.168.16.58:8160/
10
+# VITE_APP_CHAT_WS = 'ws://wx.ltrqkf.cn/ws'
11
+VITE_APP_BASE_API = 'https://kf.lt-mall.com/prod-api/'  # 接口地址   http://192.168.16.58:8160/ 
12
+VITE_APP_CHAT_WS = 'wss://kf.lt-mall.com/prod-api/ws'
13
+
14
+
15
+

+ 19 - 0
.env.staging

@@ -0,0 +1,19 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 智能客服系统
3
+
4
+# 生产环境配置
5
+VITE_APP_ENV = 'staging'
6
+
7
+# 若依管理系统/生产环境
8
+VITE_APP_BASE_API = 'http://192.168.1.15:8320/'
9
+
10
+VITE_APP_BASE_WS = 'ws://192.168.1.19:9000/ws'
11
+
12
+VITE_APP_PHONE_TYPE = 'PHONE'
13
+VITE_APP_CALL_TYPE = 'VIOCE'
14
+VITE_APP_SIP_URL = 'ws://192.168.1.19:5066'
15
+VITE_APP_SIP_IP = '192.168.1.19'
16
+VITE_APP_SIP_PASSWORD = '1234'
17
+VITE_APP_SIP_CONTACT_URL = "@192.168.1.19;transport=ws"
18
+# 是否在打包时开启压缩,支持 gzip 和 brotli
19
+VITE_BUILD_COMPRESS = gzip

+ 22 - 0
.env.zzprod

@@ -0,0 +1,22 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 智能客服系统
3
+
4
+# 生产环境配置
5
+VITE_APP_ENV = 'zzprod'
6
+
7
+# 若依管理系统/生产环境
8
+VITE_APP_BASE_API = 'http://1.194.161.64:8120/'
9
+VITE_APP_BASE_WS = 'ws://1.194.161.64:9000/ws'
10
+
11
+VITE_APP_PHONE_TYPE = 'PHONE'
12
+VITE_APP_CALL_TYPE = 'VIOCE'
13
+VITE_APP_SIP_URL = 'ws://1.194.161.64:5066'
14
+VITE_APP_SIP_IP = '1.194.161.64'
15
+VITE_APP_SIP_PASSWORD = '1234'
16
+VITE_APP_SIP_CONTACT_URL = "@1.194.161.64;transport=ws"
17
+
18
+# AI相关功能开启或关闭
19
+VITE_APP_AI_ASR = true
20
+VITE_APP_AI_SEARCH = true
21
+VITE_APP_AI_API = 'http://222.213.23.249:3000/api/chat/completions'
22
+VITE_APP_AI_API_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ5YjBkZTIxLTNhZDQtNGJjNC05OTNkLTFhN2I2NDk1ZmU5ZCJ9.7PHjU1Pgg7-UPlLdbUm5pGGINkwxmKta96jlDXPCKu8'

+ 15 - 0
.eslintignore

@@ -0,0 +1,15 @@
1
+
2
+*.sh
3
+node_modules
4
+*.md
5
+*.woff
6
+*.ttf
7
+.vscode
8
+.idea
9
+dist
10
+/public
11
+/docs
12
+.husky
13
+.local
14
+/bin
15
+Dockerfile

+ 76 - 0
.eslintrc.js

@@ -0,0 +1,76 @@
1
+module.exports = {
2
+  root: true,
3
+  env: {
4
+    browser: true,
5
+    node: true,
6
+    es6: true,
7
+  },
8
+  parser: 'vue-eslint-parser',
9
+  parserOptions: {
10
+    parser: '@typescript-eslint/parser',
11
+    ecmaVersion: 2020,
12
+    sourceType: 'module',
13
+    jsxPragma: 'React',
14
+    ecmaFeatures: {
15
+      jsx: true,
16
+    },
17
+  },
18
+  extends: [
19
+    'plugin:vue/vue3-recommended',
20
+    'plugin:@typescript-eslint/recommended',
21
+    'plugin:prettier/recommended',
22
+  ],
23
+  rules: {
24
+    'vue/script-setup-uses-vars': 'error',
25
+    '@typescript-eslint/ban-ts-ignore': 'off',
26
+    '@typescript-eslint/explicit-function-return-type': 'off',
27
+    '@typescript-eslint/no-explicit-any': 'off',
28
+    '@typescript-eslint/no-var-requires': 'off',
29
+    '@typescript-eslint/no-empty-function': 'off',
30
+    'vue/custom-event-name-casing': 'off',
31
+    'no-use-before-define': 'off',
32
+    '@typescript-eslint/no-use-before-define': 'off',
33
+    '@typescript-eslint/ban-ts-comment': 'off',
34
+    '@typescript-eslint/ban-types': 'off',
35
+    '@typescript-eslint/no-non-null-assertion': 'off',
36
+    '@typescript-eslint/explicit-module-boundary-types': 'off',
37
+    '@typescript-eslint/no-unused-vars': [
38
+      'error',
39
+      {
40
+        argsIgnorePattern: '^_',
41
+        varsIgnorePattern: '^_',
42
+      },
43
+    ],
44
+    'no-unused-vars': [
45
+      'error',
46
+      {
47
+        argsIgnorePattern: '^_',
48
+        varsIgnorePattern: '^_',
49
+      },
50
+    ],
51
+    'space-before-function-paren': 'off',
52
+
53
+    'vue/attributes-order': 'off',
54
+    'vue/one-component-per-file': 'off',
55
+    'vue/html-closing-bracket-newline': 'off',
56
+    'vue/max-attributes-per-line': 'off',
57
+    'vue/multiline-html-element-content-newline': 'off',
58
+    'vue/singleline-html-element-content-newline': 'off',
59
+    'vue/attribute-hyphenation': 'off',
60
+    'vue/require-default-prop': 'off',
61
+    'vue/require-explicit-emits': 'off',
62
+    'vue/html-self-closing': [
63
+      'error',
64
+      {
65
+        html: {
66
+          void: 'always',
67
+          normal: 'never',
68
+          component: 'always',
69
+        },
70
+        svg: 'always',
71
+        math: 'always',
72
+      },
73
+    ],
74
+    'vue/multi-word-component-names': 'off',
75
+  },
76
+};

+ 24 - 0
.gitignore

@@ -0,0 +1,24 @@
1
+.DS_Store
2
+node_modules/
3
+dist/
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+**/*.log
8
+
9
+tests/**/coverage/
10
+tests/e2e/reports
11
+selenium-debug.log
12
+
13
+# Editor directories and files
14
+.idea
15
+.vscode
16
+.history/
17
+*.suo
18
+*.ntvs*
19
+*.njsproj
20
+*.sln
21
+*.local
22
+
23
+package-lock.json
24
+yarn.lock

+ 4 - 0
.husky/commit-msg

@@ -0,0 +1,4 @@
1
+#!/bin/sh
2
+. "$(dirname "$0")/_/husky.sh"
3
+
4
+npx --no-install commitlint --edit 

+ 4 - 0
.husky/pre-commit

@@ -0,0 +1,4 @@
1
+#!/bin/sh
2
+. "$(dirname "$0")/_/husky.sh"
3
+
4
+npm run lint

+ 9 - 0
.prettierignore

@@ -0,0 +1,9 @@
1
+/dist/*
2
+.local
3
+.output.js
4
+/node_modules/**
5
+
6
+**/*.svg
7
+**/*.sh
8
+
9
+/public/*

BIN
11271h5dist.zip


BIN
12021h5dist.zip


BIN
12022h5dist.zip


BIN
12101h5dist.zip


+ 0 - 0
2.0.0.txt


+ 22 - 0
README.md

@@ -0,0 +1,22 @@
1
+
2
+<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">12356心理援助热线</h1>
3
+
4
+## 前端运行
5
+
6
+```bash
7
+# 克隆项目
8
+git clone http://localhost:3000/jiayi/base-callcenter-web.git
9
+
10
+# 进入项目目录
11
+cd base-callcenter-web/
12
+
13
+# 安装依赖
14
+yarn --registry=https://registry.npmmirror.com
15
+
16
+# 启动服务
17
+yarn dev --port 81
18
+
19
+# 构建测试环境 yarn build:stage
20
+# 构建生产环境 yarn build:prod
21
+# 前端访问地址 http://localhost:80
22
+```

+ 0 - 0
absolute/path/to/file.js


+ 28 - 0
bash.exe.stackdump

@@ -0,0 +1,28 @@
1
+Stack trace:
2
+Frame         Function      Args
3
+0007FFFF9A00  00021006118E (00021028DEE8, 000210272B3E, 0007FFFF9A00, 0007FFFF8900) msys-2.0.dll+0x2118E
4
+0007FFFF9A00  0002100469BA (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x69BA
5
+0007FFFF9A00  0002100469F2 (00021028DF99, 0007FFFF98B8, 0007FFFF9A00, 000000000000) msys-2.0.dll+0x69F2
6
+0007FFFF9A00  00021006A41E (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2A41E
7
+0007FFFF9A00  00021006A545 (0007FFFF9A10, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2A545
8
+0001004F94B7  00021006B9A5 (0007FFFF9A10, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2B9A5
9
+End of stack trace
10
+Loaded modules:
11
+000100400000 bash.exe
12
+7FFDD3550000 ntdll.dll
13
+7FFDD2C80000 KERNEL32.DLL
14
+7FFDCF8E0000 KERNELBASE.dll
15
+7FFDD1320000 USER32.dll
16
+7FFDD0660000 win32u.dll
17
+7FFDD34F0000 GDI32.dll
18
+7FFDCF620000 gdi32full.dll
19
+7FFDD05C0000 msvcp_win.dll
20
+7FFDCF7E0000 ucrtbase.dll
21
+000210040000 msys-2.0.dll
22
+7FFDD2DA0000 advapi32.dll
23
+7FFDD0850000 msvcrt.dll
24
+7FFDD0780000 sechost.dll
25
+7FFDD1660000 RPCRT4.dll
26
+7FFDCEE90000 CRYPTBASE.DLL
27
+7FFDCFB80000 bcryptPrimitives.dll
28
+7FFDD0820000 IMM32.DLL

+ 12 - 0
bin/build.bat

@@ -0,0 +1,12 @@
1
+@echo off
2
+echo.
3
+echo [信息] 打包Web工程,生成dist文件。
4
+echo.
5
+
6
+%~d0
7
+cd %~dp0
8
+
9
+cd ..
10
+yarn build:prod
11
+
12
+pause

+ 12 - 0
bin/demo.js

@@ -0,0 +1,12 @@
1
+const express = require('express') //npm下载并引入express模块 npm -express -D
2
+
3
+const app = express()
4
+app.use(express.static('../dist')) // ../dist 为vue打包后dist文件夹的路径
5
+app.listen(8082, function (err) {
6
+  //8080 想要监听项目的端口号
7
+  if (err) {
8
+    console.log(err)
9
+  } else {
10
+    console.log('项目启动成功')
11
+  }
12
+})

+ 12 - 0
bin/package.bat

@@ -0,0 +1,12 @@
1
+@echo off
2
+echo.
3
+echo [信息] 安装Web工程,生成node_modules文件。
4
+echo.
5
+
6
+%~d0
7
+cd %~dp0
8
+
9
+cd ..
10
+yarn --registry=https://registry.npmmirror.com
11
+
12
+pause

+ 12 - 0
bin/run-web.bat

@@ -0,0 +1,12 @@
1
+@echo off
2
+echo.
3
+echo [信息] 使用 Vite 命令运行 Web 工程。
4
+echo.
5
+
6
+%~d0
7
+cd %~dp0
8
+
9
+cd ..
10
+yarn dev
11
+
12
+pause

+ 0 - 0
ceshi.txt


Diferenças do arquivo suprimidas por serem muito extensas
+ 262 - 0
html/ie.html


+ 212 - 0
index.html

@@ -0,0 +1,212 @@
1
+<!DOCTYPE html>
2
+<html>
3
+  <head>
4
+    <meta charset="utf-8" />
5
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
+    <meta name="renderer" content="webkit" />
7
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
8
+    <!-- <link rel="icon" href="/favicon.ico" /> -->
9
+    <title>蓝天燃气智慧话务系统</title>
10
+    <!--[if lt IE 11 ]><script>
11
+        window.location.href = '/html/ie.html'
12
+      </script><!
13
+    [endif]-->
14
+    <style>
15
+      html,
16
+      body,
17
+      #app {
18
+        height: 100%;
19
+        margin: 0px;
20
+        padding: 0px;
21
+      }
22
+
23
+      .chromeframe {
24
+        margin: 0.2em 0;
25
+        background: #ccc;
26
+        color: #000;
27
+        padding: 0.2em 0;
28
+      }
29
+
30
+      #loader-wrapper {
31
+        position: fixed;
32
+        top: 0;
33
+        left: 0;
34
+        width: 100%;
35
+        height: 100%;
36
+        z-index: 999999;
37
+      }
38
+
39
+      #loader {
40
+        display: block;
41
+        position: relative;
42
+        left: 50%;
43
+        top: 50%;
44
+        width: 150px;
45
+        height: 150px;
46
+        margin: -75px 0 0 -75px;
47
+        border-radius: 50%;
48
+        border: 3px solid transparent;
49
+        border-top-color: #fff;
50
+        -webkit-animation: spin 2s linear infinite;
51
+        -ms-animation: spin 2s linear infinite;
52
+        -moz-animation: spin 2s linear infinite;
53
+        -o-animation: spin 2s linear infinite;
54
+        animation: spin 2s linear infinite;
55
+        z-index: 1001;
56
+      }
57
+
58
+      #loader:before {
59
+        content: '';
60
+        position: absolute;
61
+        top: 5px;
62
+        left: 5px;
63
+        right: 5px;
64
+        bottom: 5px;
65
+        border-radius: 50%;
66
+        border: 3px solid transparent;
67
+        border-top-color: #fff;
68
+        -webkit-animation: spin 3s linear infinite;
69
+        -moz-animation: spin 3s linear infinite;
70
+        -o-animation: spin 3s linear infinite;
71
+        -ms-animation: spin 3s linear infinite;
72
+        animation: spin 3s linear infinite;
73
+      }
74
+
75
+      #loader:after {
76
+        content: '';
77
+        position: absolute;
78
+        top: 15px;
79
+        left: 15px;
80
+        right: 15px;
81
+        bottom: 15px;
82
+        border-radius: 50%;
83
+        border: 3px solid transparent;
84
+        border-top-color: #fff;
85
+        -moz-animation: spin 1.5s linear infinite;
86
+        -o-animation: spin 1.5s linear infinite;
87
+        -ms-animation: spin 1.5s linear infinite;
88
+        -webkit-animation: spin 1.5s linear infinite;
89
+        animation: spin 1.5s linear infinite;
90
+      }
91
+
92
+      @-webkit-keyframes spin {
93
+        0% {
94
+          -webkit-transform: rotate(0deg);
95
+          -ms-transform: rotate(0deg);
96
+          transform: rotate(0deg);
97
+        }
98
+
99
+        100% {
100
+          -webkit-transform: rotate(360deg);
101
+          -ms-transform: rotate(360deg);
102
+          transform: rotate(360deg);
103
+        }
104
+      }
105
+
106
+      @keyframes spin {
107
+        0% {
108
+          -webkit-transform: rotate(0deg);
109
+          -ms-transform: rotate(0deg);
110
+          transform: rotate(0deg);
111
+        }
112
+
113
+        100% {
114
+          -webkit-transform: rotate(360deg);
115
+          -ms-transform: rotate(360deg);
116
+          transform: rotate(360deg);
117
+        }
118
+      }
119
+
120
+      #loader-wrapper .loader-section {
121
+        position: fixed;
122
+        top: 0;
123
+        width: 51%;
124
+        height: 100%;
125
+        background: #7171c6;
126
+        z-index: 1000;
127
+        -webkit-transform: translateX(0);
128
+        -ms-transform: translateX(0);
129
+        transform: translateX(0);
130
+      }
131
+
132
+      #loader-wrapper .loader-section.section-left {
133
+        left: 0;
134
+      }
135
+
136
+      #loader-wrapper .loader-section.section-right {
137
+        right: 0;
138
+      }
139
+
140
+      .loaded #loader-wrapper .loader-section.section-left {
141
+        -webkit-transform: translateX(-100%);
142
+        -ms-transform: translateX(-100%);
143
+        transform: translateX(-100%);
144
+        -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
145
+        transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
146
+      }
147
+
148
+      .loaded #loader-wrapper .loader-section.section-right {
149
+        -webkit-transform: translateX(100%);
150
+        -ms-transform: translateX(100%);
151
+        transform: translateX(100%);
152
+        -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
153
+        transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
154
+      }
155
+
156
+      .loaded #loader {
157
+        opacity: 0;
158
+        -webkit-transition: all 0.3s ease-out;
159
+        transition: all 0.3s ease-out;
160
+      }
161
+
162
+      .loaded #loader-wrapper {
163
+        visibility: hidden;
164
+        -webkit-transform: translateY(-100%);
165
+        -ms-transform: translateY(-100%);
166
+        transform: translateY(-100%);
167
+        -webkit-transition: all 0.3s 1s ease-out;
168
+        transition: all 0.3s 1s ease-out;
169
+      }
170
+
171
+      .no-js #loader-wrapper {
172
+        display: none;
173
+      }
174
+
175
+      .no-js h1 {
176
+        color: #222222;
177
+      }
178
+
179
+      #loader-wrapper .load_title {
180
+        font-family: 'Open Sans';
181
+        color: #fff;
182
+        font-size: 19px;
183
+        width: 100%;
184
+        text-align: center;
185
+        z-index: 9999999999999;
186
+        position: absolute;
187
+        top: 60%;
188
+        opacity: 1;
189
+        line-height: 30px;
190
+      }
191
+
192
+      #loader-wrapper .load_title span {
193
+        font-weight: normal;
194
+        font-style: italic;
195
+        font-size: 13px;
196
+        color: #fff;
197
+        opacity: 0.5;
198
+      }
199
+    </style>
200
+  </head>
201
+
202
+  <body>
203
+    <div id="app">
204
+      <div id="loader-wrapper">
205
+        <div id="loader"></div>
206
+        <div class="loader-section section-left"></div>
207
+        <div class="loader-section section-right"></div>
208
+      </div>
209
+    </div>
210
+    <script type="module" src="/src/main.js"></script>
211
+  </body>
212
+</html>

+ 465 - 0
nginx.conf

@@ -0,0 +1,465 @@
1
+user www-data;
2
+worker_processes auto;
3
+pid /run/nginx.pid;
4
+include /etc/nginx/modules-enabled/*.conf;
5
+
6
+events {
7
+	worker_connections 768;
8
+	# multi_accept on;
9
+}
10
+
11
+http {
12
+
13
+	##
14
+	# Basic Settings
15
+	##
16
+
17
+	sendfile on;
18
+	tcp_nopush on;
19
+	tcp_nodelay on;
20
+	keepalive_timeout 65;
21
+	types_hash_max_size 2048;
22
+	# server_tokens off;
23
+
24
+	# server_names_hash_bucket_size 64;
25
+	# server_name_in_redirect off;
26
+
27
+	include /etc/nginx/mime.types;
28
+	default_type application/octet-stream;
29
+
30
+	##
31
+	# SSL Settings
32
+	##
33
+
34
+	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
35
+	ssl_prefer_server_ciphers on;
36
+
37
+	##
38
+	# Logging Settings
39
+	##
40
+
41
+	access_log /var/log/nginx/access.log;
42
+	error_log /var/log/nginx/error.log;
43
+
44
+	##
45
+	# Gzip Settings
46
+	##
47
+
48
+	gzip on;
49
+	server {
50
+		listen       8081;
51
+			server_name  12.34.56.78;
52
+
53
+		location / {
54
+			root   /home/nuoyi/dist;
55
+			try_files $uri $uri/ /index.html;
56
+			index  index.html index.htm;
57
+			}
58
+			
59
+		location /prod-api/{
60
+			proxy_set_header Host $http_host;
61
+			proxy_set_header X-Real-IP $remote_addr;
62
+			proxy_set_header REMOTE-HOST $remote_addr;
63
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
64
+			proxy_pass http://localhost:8080/;
65
+		}
66
+		
67
+		error_page   500 502 503 504  /50x.html;
68
+			location = /50x.html {
69
+				root   html;
70
+			}
71
+	}
72
+	server {
73
+		listen       8111;
74
+			server_name  12.34.56.78;
75
+	
76
+		location / { 
77
+			root   /home/website/zxdt/web;
78
+			try_files $uri $uri/ /index.html;
79
+			index  index.html index.htm;
80
+			}
81
+			
82
+		location /wav/{
83
+			proxy_set_header Host $http_host;
84
+			proxy_set_header X-Real-IP $remote_addr;
85
+			proxy_set_header REMOTE-HOST $remote_addr;
86
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
87
+			proxy_pass http://192.168.1.10:9000/;
88
+		}
89
+		
90
+		error_page   500 502 503 504  /50x.html;
91
+			location = /50x.html {
92
+				root   html;
93
+			}
94
+	}
95
+	server {
96
+		listen       8011;
97
+			server_name  12.34.56.78;
98
+	
99
+		location / { 
100
+			root   /home/website/zxkf/UI;
101
+			try_files $uri $uri/ /index.html;
102
+			index  index.html index.htm;
103
+			}
104
+			
105
+		location /wav/{
106
+			proxy_set_header Host $http_host;
107
+			proxy_set_header X-Real-IP $remote_addr;
108
+			proxy_set_header REMOTE-HOST $remote_addr;
109
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
110
+			proxy_pass http://192.168.1.10:9000/;
111
+		}
112
+		
113
+		error_page   500 502 503 504  /50x.html;
114
+			location = /50x.html {
115
+				root   html;
116
+			}
117
+	}
118
+	server {
119
+		listen       9001;
120
+			server_name  12.34.56.78;
121
+	
122
+		location / {
123
+			root   /home/nuoyi/distFlow;
124
+			try_files $uri $uri/ /index.html;
125
+			index  index.html index.htm;
126
+			}
127
+			
128
+		location /prod-api/{
129
+			proxy_set_header Host $http_host;
130
+			proxy_set_header X-Real-IP $remote_addr;
131
+			proxy_set_header REMOTE-HOST $remote_addr;
132
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
133
+			proxy_pass http://localhost:8080/;
134
+		}
135
+		
136
+		error_page   500 502 503 504  /50x.html;
137
+			location = /50x.html {
138
+				root   html;
139
+			}
140
+	}
141
+	
142
+	server {
143
+		listen       8091;
144
+			server_name  localhost;
145
+	
146
+		location / {
147
+			root   /home/website/ktgmes/UI/dist;
148
+			try_files $uri $uri/ /index.html;
149
+			index  index.html index.htm;
150
+			}
151
+			
152
+		location /prod-api/{
153
+			proxy_set_header Host $http_host;
154
+			proxy_set_header X-Real-IP $remote_addr;
155
+			proxy_set_header REMOTE-HOST $remote_addr;
156
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
157
+			proxy_pass http://localhost:8090/;
158
+		}
159
+		
160
+		error_page   500 502 503 504  /50x.html;
161
+			location = /50x.html {
162
+				root   html;
163
+			}
164
+	}
165
+	
166
+	server {
167
+		listen       8071;
168
+			server_name  localhost;
169
+	
170
+		location / {
171
+			root   /home/website/km/UI/dist;
172
+			try_files $uri $uri/ /index.html;
173
+			index  index.html index.htm;
174
+			}
175
+			
176
+		location /prod-api/{
177
+			proxy_set_header Host $http_host;
178
+			proxy_set_header X-Real-IP $remote_addr;
179
+			proxy_set_header REMOTE-HOST $remote_addr;
180
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
181
+			proxy_pass http://localhost:8070/;
182
+		}
183
+		
184
+		error_page   500 502 503 504  /50x.html;
185
+			location = /50x.html {
186
+				root   html;
187
+			}
188
+	}
189
+
190
+	server {
191
+		listen       8061;
192
+			server_name  localhost;
193
+	
194
+		location / {
195
+			root   /home/website/kfyy/UI;
196
+			try_files $uri $uri/ /index.html;
197
+			index  index.html index.htm;
198
+			}
199
+			
200
+		location /prod-api/{
201
+			proxy_set_header Host $http_host;
202
+			proxy_set_header X-Real-IP $remote_addr;
203
+			proxy_set_header REMOTE-HOST $remote_addr;
204
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
205
+			proxy_pass http://localhost:8060/;
206
+		}
207
+		
208
+		error_page   500 502 503 504  /50x.html;
209
+			location = /50x.html {
210
+				root   html;
211
+			}
212
+	}
213
+	
214
+	
215
+	server {
216
+		listen       8084;
217
+			server_name  localhost;
218
+	
219
+		location / {
220
+			root   /home/website/dataroom/UI;
221
+			try_files $uri $uri/ /index.html;
222
+			index  index.html index.htm;
223
+			}
224
+			
225
+		location /prod-api/{
226
+			proxy_set_header Host $http_host;
227
+			proxy_set_header X-Real-IP $remote_addr;
228
+			proxy_set_header REMOTE-HOST $remote_addr;
229
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
230
+			proxy_pass http://localhost:8083/;
231
+		}
232
+		
233
+		error_page   500 502 503 504  /50x.html;
234
+			location = /50x.html {
235
+				root   html;
236
+			}
237
+	}
238
+	
239
+	server {
240
+		listen       8021;
241
+			server_name  localhost;
242
+	
243
+		location / {
244
+			root   /home/website/xingyun/UI;
245
+			try_files $uri $uri/ /index.html;
246
+			index  index.html index.htm;
247
+			}
248
+			
249
+		location /prod-api/{
250
+			proxy_set_header Host $http_host;
251
+			proxy_set_header X-Real-IP $remote_addr;
252
+			proxy_set_header REMOTE-HOST $remote_addr;
253
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
254
+			proxy_pass http://localhost:8070/;
255
+		}
256
+		
257
+		error_page   500 502 503 504  /50x.html;
258
+			location = /50x.html {
259
+				root   html;
260
+			}
261
+	}
262
+	
263
+	server {
264
+		listen       8261;
265
+			server_name  localhost;
266
+	
267
+		location / {
268
+			root   /home/website/olderp/UI;
269
+			try_files $uri $uri/ /index.html;
270
+			index  index.html index.htm;
271
+			}
272
+			
273
+		location /prod-api/{
274
+			proxy_set_header Host $http_host;
275
+			proxy_set_header X-Real-IP $remote_addr;
276
+			proxy_set_header REMOTE-HOST $remote_addr;
277
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
278
+			proxy_pass http://localhost:8070/;
279
+		}
280
+		
281
+		error_page   500 502 503 504  /50x.html;
282
+			location = /50x.html {
283
+				root   html;
284
+			}
285
+	}
286
+	
287
+	server {
288
+		listen       8801;
289
+			server_name  localhost;
290
+	
291
+		location / {
292
+			root   /home/website/ylsf/UI;
293
+			try_files $uri $uri/ /index.html;
294
+			index  index.html index.htm;
295
+			}
296
+			
297
+		location /prod-api/{
298
+			proxy_set_header Host $http_host;
299
+			proxy_set_header X-Real-IP $remote_addr;
300
+			proxy_set_header REMOTE-HOST $remote_addr;
301
+			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
302
+			proxy_pass http://localhost:8070/;
303
+		}
304
+		
305
+		error_page   500 502 503 504  /50x.html;
306
+			location = /50x.html {
307
+				root   html;
308
+			}
309
+	}
310
+
311
+
312
+
313
+        server {
314
+                listen       8811;
315
+                        server_name  localhost;
316
+
317
+                location / {
318
+                        root   /home/website/xlrx/zhengzhou/web;
319
+                        try_files $uri $uri/ /index.html;
320
+                        index  index.html index.htm;
321
+                        }
322
+
323
+                location /prod-api/{
324
+                        proxy_set_header Host $http_host;
325
+                        proxy_set_header X-Real-IP $remote_addr;
326
+                        proxy_set_header REMOTE-HOST $remote_addr;
327
+                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
328
+                        proxy_pass http://localhost:8070/;
329
+                }
330
+
331
+                error_page   500 502 503 504  /50x.html;
332
+                        location = /50x.html {
333
+                                root   html;
334
+                        }
335
+        }
336
+
337
+
338
+ server {
339
+                listen       8821;
340
+                        server_name  localhost;
341
+
342
+                location / {
343
+                        root   /home/website/xlrx/xinxiang/web;
344
+                        try_files $uri $uri/ /index.html;
345
+                        index  index.html index.htm;
346
+                        }
347
+
348
+                location /prod-api/{
349
+                        proxy_set_header Host $http_host;
350
+                        proxy_set_header X-Real-IP $remote_addr;
351
+                        proxy_set_header REMOTE-HOST $remote_addr;
352
+                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
353
+                        proxy_pass http://localhost:8070/;
354
+                }
355
+
356
+                error_page   500 502 503 504  /50x.html;
357
+                        location = /50x.html {
358
+                                root   html;
359
+                        }
360
+        }
361
+	 server {
362
+                listen       8151;
363
+                        server_name  localhost;
364
+
365
+                location / {
366
+                        root   /home/website/zhiNengZhiJian;
367
+                        try_files $uri $uri/ /index.html;
368
+                        index  index.html index.htm;
369
+                        }
370
+
371
+                location /prod-api/{
372
+                        proxy_set_header Host $http_host;
373
+                        proxy_set_header X-Real-IP $remote_addr;
374
+                        proxy_set_header REMOTE-HOST $remote_addr;
375
+                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
376
+                        proxy_pass http://localhost:8070/;
377
+                }
378
+
379
+                error_page   500 502 503 504  /50x.html;
380
+                        location = /50x.html {
381
+                                root   html;
382
+                        }
383
+        }
384
+	server {
385
+                listen       8221;
386
+                        server_name  localhost;
387
+
388
+                location / {
389
+                        root   /home/website/huojia;
390
+                        try_files $uri $uri/ /index.html;
391
+                        index  index.html index.htm;
392
+                        }
393
+
394
+                location /prod-api/{
395
+                        proxy_set_header Host $http_host;
396
+                        proxy_set_header X-Real-IP $remote_addr;
397
+                        proxy_set_header REMOTE-HOST $remote_addr;
398
+                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
399
+                        proxy_pass http://localhost:8070/;
400
+                }
401
+
402
+                error_page   500 502 503 504  /50x.html;
403
+                        location = /50x.html {
404
+                                root   html;
405
+                        }
406
+        }
407
+	server {
408
+	            listen       8321;
409
+	                    server_name  localhost;
410
+	
411
+	            location / {
412
+	                    root   /home/website/hjzxall/web;
413
+	                    try_files $uri $uri/ /index.html;
414
+	                    index  index.html index.htm;
415
+	                    }
416
+	
417
+	            location /prod-api/{
418
+	                    proxy_set_header Host $http_host;
419
+	                    proxy_set_header X-Real-IP $remote_addr;
420
+	                    proxy_set_header REMOTE-HOST $remote_addr;
421
+	                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
422
+	                    proxy_pass http://localhost:8070/;
423
+	            }
424
+	
425
+	            error_page   500 502 503 504  /50x.html;
426
+	                    location = /50x.html {
427
+	                            root   html;
428
+	                    }
429
+	    }
430
+	# gzip_vary on;
431
+	# gzip_proxied any;
432
+	# gzip_comp_level 6;
433
+	# gzip_buffers 16 8k;
434
+	# gzip_http_version 1.1;
435
+	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
436
+
437
+	##
438
+	# Virtual Host Configs
439
+	##
440
+
441
+	include /etc/nginx/conf.d/*.conf;
442
+	include /etc/nginx/sites-enabled/*;
443
+}
444
+
445
+
446
+#mail {
447
+#	# See sample authentication script at:
448
+#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
449
+# 
450
+#	# auth_http localhost/auth.php;
451
+#	# pop3_capabilities "TOP" "USER";
452
+#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
453
+# 
454
+#	server {
455
+#		listen     localhost:110;
456
+#		protocol   pop3;
457
+#		proxy      on;
458
+#	}
459
+# 
460
+#	server {
461
+#		listen     localhost:143;
462
+#		protocol   imap;
463
+#		proxy      on;
464
+#	}
465
+#}

+ 117 - 0
package.json

@@ -0,0 +1,117 @@
1
+{
2
+  "name": "jiayi",
3
+  "version": "1.0.0",
4
+  "description": "在线客服管理系统",
5
+  "author": "加一",
6
+  "license": "MIT",
7
+  "scripts": {
8
+    "dev": "vite",
9
+    "css": "npx tailwindcss -i ./src/style.css -o ./src/assets/style.css --watch",
10
+    "build:prod": "vite build",
11
+    "build:bayuan": "vite build --mode zzprod",
12
+    "build:stage": "vite build --mode staging",
13
+    "build:dev": "vite build --mode development",
14
+    "prettier": "prettier --write .",
15
+    "preview": "vite preview",
16
+    "prepare": "cd .. && husky install superjsonweb/.husky"
17
+  },
18
+  "repository": {
19
+    "type": "git",
20
+    "url": "https://gitee.com/y_project/RuoYi-Vue.git"
21
+  },
22
+  "dependencies": {
23
+    "@antv/x6": "^2.18.1",
24
+    "@antv/x6-plugin-dnd": "^2.1.1",
25
+    "@antv/x6-plugin-history": "^2.2.4",
26
+    "@antv/x6-plugin-minimap": "^2.0.7",
27
+    "@antv/x6-plugin-scroller": "^2.0.10",
28
+    "@antv/x6-plugin-selection": "^2.2.2",
29
+    "@antv/x6-vue-shape": "^2.1.2",
30
+    "@bpmn-io/properties-panel": "^3.3.1",
31
+    "@efox/emp-vuett": "^1.0.0",
32
+    "@element-plus/icons": "^0.0.11",
33
+    "@element-plus/icons-vue": "2.0.10",
34
+    "@form-create/designer": "^3.1.3",
35
+    "@form-create/element-ui": "^3.1.22",
36
+    "@infectoone/vue-ganttastic": "^2.3.2",
37
+    "@logicflow/core": "^1.2.18",
38
+    "@logicflow/extension": "^1.2.19",
39
+    "@microsoft/fetch-event-source": "^2.0.1",
40
+    "@tinymce/tinymce-vue": "^5.1.1",
41
+    "@traptitech/markdown-it-katex": "^3.6.0",
42
+    "@types/markdown-it": "^14.1.2",
43
+    "@vueup/vue-quill": "1.1.0",
44
+    "@vueuse/core": "9.5.0",
45
+    "aplayer": "^1.10.1",
46
+    "axios": "0.27.2",
47
+    "better-scroll": "^2.5.1",
48
+    "bpmn-js": "^13.2.2",
49
+    "bpmn-js-task-resize": "^1.2.0",
50
+    "bpmn-js-token-simulation": "^0.10.0",
51
+    "camunda-bpmn-moddle": "^7.0.1",
52
+    "codemirror": "^5.60.0",
53
+    "codemirror-editor-vue3": "^2.0.6",
54
+    "core-js": "^3.6.5",
55
+    "crypto-js": "^4.2.0",
56
+    "dayjs": "^1.11.13",
57
+    "default-passive-events": "^2.0.0",
58
+    "diagram-js-minimap": "^2.1.1",
59
+    "echarts": "^5.4.3",
60
+    "element-plus": "^2.7.0",
61
+    "eslint": "^8.56.0",
62
+    "file-saver": "2.0.5",
63
+    "fingerprintjs2": "^2.1.4",
64
+    "form-making": "^1.2.11",
65
+    "fuse.js": "6.6.2",
66
+    "gantt-chart-vue3": "^1.0.3",
67
+    "gantt-elastic": "^1.0.12",
68
+    "gantt-elastic-header": "^0.1.11",
69
+    "getmac": "^6.4.0",
70
+    "highcharts": "^12.3.0",
71
+    "highcharts-gantt": "^0.1.7",
72
+    "highlight.js": "^10.5.0",
73
+    "install": "^0.13.0",
74
+    "js-cookie": "3.0.1",
75
+    "jsencrypt": "3.3.1",
76
+    "jsonlint-mod": "^1.7.6",
77
+    "jssip": "^3.10.1",
78
+    "jssipmiao": "^1.0.1",
79
+    "markdown-it": "^14.1.0",
80
+    "miaojssip": "^1.0.3",
81
+    "min-dash": "^3.5.2",
82
+    "moment": "^2.29.4",
83
+    "npm": "^11.6.2",
84
+    "nprogress": "0.2.0",
85
+    "pinia": "2.0.22",
86
+    "qrcode": "^1.5.3",
87
+    "qrcodejs2": "^0.0.2",
88
+    "qrcodejs2-fix": "^0.0.1",
89
+    "sortablejs": "^1.15.6",
90
+    "tailwindcss": "3.4.17",
91
+    "tinymce": "^6.8.2",
92
+    "vue": "3.2.45",
93
+    "vue-cropper": "1.0.3",
94
+    "vue-ganttastic": "^0.9.34",
95
+    "vue-json-pretty": "^2.4.0",
96
+    "vue-router": "4.1.4",
97
+    "yarn": "^1.22.22"
98
+  },
99
+  "devDependencies": {
100
+    "@vitejs/plugin-vue": "3.1.0",
101
+    "@vue/compiler-sfc": "3.2.45",
102
+    "autoprefixer": "^10.4.20",
103
+    "eslint-config-prettier": "^8.8.0",
104
+    "eslint-plugin-prettier": "^4.2.1",
105
+    "husky": "^8.0.0",
106
+    "lodash": "^4.17.21",
107
+    "postcss": "^8.5.3",
108
+    "prettier": "^2.8.8",
109
+    "sass": "1.56.1",
110
+    "tailwindcss": "^3.4.17",
111
+    "unplugin-auto-import": "0.11.4",
112
+    "vite": "3.2.3",
113
+    "vite-plugin-compression": "0.5.1",
114
+    "vite-plugin-svg-icons": "2.0.1",
115
+    "vite-plugin-vue-setup-extend": "0.4.0"
116
+  }
117
+}

+ 6 - 0
postcss.config.js

@@ -0,0 +1,6 @@
1
+module.exports = {
2
+  plugins: {
3
+    tailwindcss: {},
4
+    autoprefixer: {},
5
+  },
6
+}

+ 11 - 0
prettier.config.js

@@ -0,0 +1,11 @@
1
+module.exports = {
2
+    printWidth: 100,
3
+    semi: true,
4
+    vueIndentScriptAndStyle: true,
5
+    singleQuote: true,
6
+    trailingComma: 'all',
7
+    proseWrap: 'never',
8
+    htmlWhitespaceSensitivity: 'strict',
9
+    endOfLine: 'auto',
10
+  };
11
+  

+ 55 - 0
project-remark.md

@@ -0,0 +1,55 @@
1
+
2
+
3
+### 2.3 目录规范-src
4
+
5
+- api
6
+  - system
7
+    - user.js
8
+  - >...一个菜单一个文件夹
9
+  - common.js
10
+  - layout.js
11
+  - >...公共api与首页api
12
+- assets
13
+  - image
14
+  - style
15
+  - mp3
16
+  - >...一种种类,一个文件夹
17
+- base-ui
18
+  - card
19
+  - from
20
+  - table
21
+  - echarts
22
+  - >...再最基础的组件封装的可供多个页面调用的组件,可在此基础上封装成项目所用组件
23
+- components
24
+  - page-content 此组件是展示的列表部分,实在base-ui目录下的table组件的基础上封装的
25
+  - nav-menu页面的公共组件
26
+  - >...此文件夹放页面的公共组件
27
+- directive
28
+- hooks
29
+- modules
30
+- package自定义流程组件目录
31
+- plugins
32
+- router
33
+- store
34
+- utils
35
+- views
36
+  - >...项目公用组件统一放到components文件夹里
37
+  - system
38
+    - cpns为当前菜单公用的组件
39
+    - post
40
+      - config
41
+        - content.config.js
42
+        - modal.config.js
43
+        - search.config.js
44
+      - index.vue
45
+  - >...一个菜单一个目录
46
+    - >... 子菜单目录
47
+      - >...配置文件目录
48
+        - >...列表js
49
+        - >...添加修改js
50
+        - >...搜索js
51
+      - >...子菜单页面
52
+  
53
+  文件目录按照菜单进行划分
54
+
55
+

+ 262 - 0
project-remark1.md

@@ -0,0 +1,262 @@
1
+>微信公众号排版工具。问题或建议,请公众号留言。**[程序员翻身](#jump_8)**
2
+
3
+建议使用 **Chrome** 浏览器,体验最佳效果。
4
+
5
+使用微信公众号编辑器有一个十分头疼的问题:粘贴出来的代码,格式错乱,空间小还带行号,而且特别丑。Markdown.com.cn编辑器能够解决这个问题。
6
+
7
+Markdown是一种轻量级的「标记语言」。
8
+
9
+请阅读下方文本熟悉工具使用方法,本文可直接拷贝到微信中预览。
10
+
11
+## 1 Markdown.com.cn 简介
12
+
13
+- 支持自定义样式的 Markdown 编辑器
14
+- 支持微信公众号、知乎和稀土掘金
15
+- 点击右上方对应图标,一键复制到各平台
16
+
17
+## 2 Markdown语法教程
18
+
19
+### 2.1 标题
20
+
21
+不同数量的`#`可以完成不同的标题,如下:
22
+
23
+# 一级标题
24
+
25
+## 二级标题
26
+
27
+### 三级标题
28
+
29
+### 2.2 字体
30
+
31
+粗体、斜体、粗体和斜体,删除线,需要在文字前后加不同的标记符号。如下:
32
+
33
+**这个是粗体**
34
+
35
+*这个是斜体*
36
+
37
+***这个是粗体加斜体***
38
+
39
+~这里想用删除线~~
40
+
41
+注:如果想给字体换颜色、字体或者居中显示,需要使用内嵌HTML来实现。
42
+
43
+### 2.3 无序列表
44
+
45
+无序列表的使用,在符号`-`后加空格使用。如下:
46
+
47
+- 无序列表 1
48
+- 无序列表 2
49
+- 无序列表 3
50
+
51
+如果要控制列表的层级,则需要在符号`-`前使用空格。如下:
52
+
53
+- 无序列表 1
54
+- 无序列表 2
55
+  - 无序列表 2.1
56
+  - 无序列表 2.2
57
+
58
+**由于微信原因,最多支持到二级列表**。
59
+
60
+### 2.4 有序列表
61
+
62
+有序列表的使用,在数字及符号`.`后加空格后输入内容,如下:
63
+
64
+1. 有序列表 1
65
+2. 有序列表 2
66
+3. 有序列表 3
67
+
68
+### 2.5 引用
69
+
70
+引用的格式是在符号`>`后面书写文字。如下:
71
+
72
+> 读一本好书,就是在和高尚的人谈话。 ——歌德
73
+
74
+> 雇用制度对工人不利,但工人根本无力摆脱这个制度。 ——阮一峰
75
+
76
+### 2.7 链接
77
+
78
+微信公众号仅支持公众号文章链接,即域名为`https://mp.weixin.qq.com/`的合法链接。使用方法如下所示:
79
+
80
+对于该论述,欢迎读者查阅之前发过的文章,[你是《未来世界的幸存者》么?](https://mp.weixin.qq.com/s/s5IhxV2ooX3JN_X416nidA)
81
+<a id="jump_8"></a>
82
+### 2.8 图片
83
+
84
+插入图片,格式如下:
85
+
86
+![这里写图片描述](https://www.nginx.cn/wp-content/uploads/2020/03/qrcode_for_gh_82cf87d482f0_258.jpg)
87
+
88
+支持 jpg、png、gif、svg 等图片格式,**其中 svg 文件仅可在微信公众平台中使用**,svg 文件示例如下:
89
+
90
+![](https://markdown.com.cn/images/i-am-svg.svg)
91
+
92
+支持图片**拖拽和截图粘贴**到编辑器中。
93
+
94
+注:支持图片 ***拖拽和截图粘贴*** 到编辑器中,仅支持 https 的图片,图片粘贴到微信时会自动上传微信服务器。
95
+
96
+### 2.9 分割线
97
+
98
+可以在一行中用三个以上的减号来建立一个分隔线,同时需要在分隔线的上面空一行。如下:
99
+
100
+---
101
+
102
+### 2.10 表格
103
+
104
+可以使用冒号来定义表格的对齐方式,如下:
105
+
106
+| 姓名       | 年龄  |         工作 |
107
+| :--------- | :---: | -----------: |
108
+| 小可爱     |  18   |     吃可爱多 |
109
+| 小小勇敢   |  20   |   爬棵勇敢树 |
110
+| 小小小机智 |  22   | 看一本机智书 |
111
+
112
+
113
+
114
+## 3. 特殊语法
115
+
116
+### 3.1 脚注
117
+
118
+> 支持平台:微信公众号、知乎。
119
+
120
+脚注与链接的区别如下所示:
121
+
122
+```markdown
123
+链接:[文字](链接)
124
+脚注:[文字](脚注解释 "脚注名字")
125
+```
126
+
127
+有人认为在[大前端时代](https://en.wikipedia.org/wiki/Front-end_web_development "Front-end web development")的背景下,移动端开发(Android、IOS)将逐步退出历史舞台。
128
+
129
+[全栈工程师](是指掌握多种技能,并能利用多种技能独立完成产品的人。 "什么是全栈工程师")在业务开发流程中起到了至关重要的作用。
130
+
131
+脚注内容请拉到最下面观看。
132
+
133
+### 3.2 代码块
134
+
135
+> 支持平台:微信代码主题仅支持微信公众号!其他主题无限制。
136
+
137
+如果在一个行内需要引用代码,只要用反引号引起来就好,如下:
138
+
139
+Use the `printf()` function.
140
+
141
+在需要高亮的代码块的前一行及后一行使用三个反引号,同时**第一行反引号后面表示代码块所使用的语言**,如下:
142
+
143
+```java
144
+// FileName: HelloWorld.java
145
+public class HelloWorld {
146
+  // Java 入口程序,程序从此入口
147
+  public static void main(String[] args) {
148
+    System.out.println("Hello,World!"); // 向控制台打印一条语句
149
+  }
150
+}
151
+```
152
+
153
+支持以下语言种类:
154
+
155
+```
156
+bash
157
+clojure,cpp,cs,css
158
+dart,dockerfile, diff
159
+erlang
160
+go,gradle,groovy
161
+haskell
162
+java,javascript,json,julia
163
+kotlin
164
+lisp,lua
165
+makefile,markdown,matlab
166
+objectivec
167
+perl,php,python
168
+r,ruby,rust
169
+scala,shell,sql,swift
170
+tex,typescript
171
+verilog,vhdl
172
+xml
173
+yaml
174
+```
175
+
176
+如果想要更换代码高亮样式,可在上方**代码主题**中挑选。
177
+
178
+其中**微信代码主题与微信官方一致**,有以下注意事项:
179
+
180
+- 带行号且不换行,代码大小与官方一致
181
+- 需要在代码块处标志语言,否则无法高亮
182
+- 粘贴到公众号后,用鼠标点代码块内外一次,完成高亮
183
+
184
+diff 不能同时和其他语言的高亮同时显示,且需要调整代码主题为微信代码主题以外的代码主题才能看到 diff 效果,使用效果如下:
185
+
186
+```diff
187
++ 新增项
188
+- 删除项
189
+```
190
+
191
+**其他主题不带行号,可自定义是否换行,代码大小与当前编辑器一致**
192
+
193
+### 3.3 数学公式
194
+
195
+> 支持平台:微信公众号、知乎。
196
+
197
+行内公式使用方法,比如这个化学公式:$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$
198
+
199
+块公式使用方法如下:
200
+
201
+$$H(D_2) = -\left(\frac{2}{4}\log_2 \frac{2}{4} + \frac{2}{4}\log_2 \frac{2}{4}\right) = 1$$
202
+
203
+矩阵:
204
+
205
+$$
206
+  \begin{pmatrix}
207
+  1 & a_1 & a_1^2 & \cdots & a_1^n \\
208
+  1 & a_2 & a_2^2 & \cdots & a_2^n \\
209
+  \vdots & \vdots & \vdots & \ddots & \vdots \\
210
+  1 & a_m & a_m^2 & \cdots & a_m^n \\
211
+  \end{pmatrix}
212
+$$
213
+
214
+公式由于微信不支持,目前的解决方案是转成 svg 放到微信中,无需调整,矢量不失真。
215
+
216
+目前测试如果公式量过大,在 Chrome 下会存在粘贴后无响应,但是在 Firefox 中始终能够成功。
217
+
218
+### 3.4 TOC
219
+
220
+> 支持平台:微信公众号、知乎。
221
+
222
+TOC 全称为 Table of Content,列出全部标题。
223
+
224
+[TOC]
225
+
226
+由于微信只支持到二级列表,本工具仅支持二级标题和三级标题的显示。
227
+
228
+### 3.5 注音符号
229
+
230
+> 支持平台:微信公众号。
231
+
232
+支持注音符号,用法如下:
233
+
234
+Markdown Nice 这么好用,简直是{喜大普奔|hē hē hē hē}呀!
235
+
236
+### 3.6 横屏滑动幻灯片
237
+
238
+> 支持平台:微信公众号。
239
+
240
+通过`<![](url),![](url)>`这种语法设置横屏滑动滑动片,具体用法如下:
241
+
242
+<![蓝1](https://markdown.com.cn/images/blue.jpg),![绿2](https://markdown.com.cn/images/green.jpg),![红3](https://markdown.com.cn.jpg)>
243
+
244
+## 4 其他语法
245
+
246
+### 4.1 HTML
247
+
248
+支持原生 HTML 语法,请写内联样式,如下:
249
+
250
+<span style="display:block;text-align:right;color:orangered;">橙色居右</span>
251
+<span style="display:block;text-align:center;color:orangered;">橙色居中</span>
252
+
253
+### 4.2 UML
254
+
255
+不支持,推荐使用开源工具`https://draw.io/`制作后再导入图片
256
+
257
+
258
+## 5 致谢
259
+
260
+* 歌词经理 [wechat-fromat](https://github.com/lyricat/wechat-format "灵感来源")
261
+* 颜家大少 [MD2All](http://md.aclickall.com/ "MdA2All")
262
+

BIN
public/favicon-1.ico


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ar.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/az.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/be.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/bg_BG.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/bn_BD.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ca.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/cs.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/cy.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/da.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/de.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/dv.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/el.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/eo.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/es.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/es_MX.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/et.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/eu.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/fa.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/fi.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/fr_FR.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ga.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/gl.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/he_IL.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/hi.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/hr.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/hu_HU.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/hy.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/id.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/is_IS.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/it.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ja.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ka_GE.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/kab.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/kk.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ko_KR.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ku.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/lt.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/lv.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/nb_NO.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ne.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/nl.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/nl_BE.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/oc.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/pl.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/pt_BR.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ro.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ru.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/sk.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/sl_SI.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/sq.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/sr.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/sv_SE.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ta.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/tg.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/th_TH.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/tr.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/ug.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/uk.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/uz.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/vi.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/zh-Hans.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/zh-Hant.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/zh_HK.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/zh_MO.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 0
public/tinymce/langs/zh_SG.js


+ 66 - 0
public/tinymce/skins/content/dark/content.css

@@ -0,0 +1,66 @@
1
+body {
2
+  background-color: #222f3e;
3
+  color: #fff;
4
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
5
+  line-height: 1.4;
6
+  margin: 1rem;
7
+}
8
+a {
9
+  color: #4099ff;
10
+}
11
+table {
12
+  border-collapse: collapse;
13
+}
14
+/* Apply a default padding if legacy cellpadding attribute is missing */
15
+table:not([cellpadding]) th,
16
+table:not([cellpadding]) td {
17
+  padding: 0.4rem;
18
+}
19
+/* Set default table styles if a table has a positive border attribute
20
+   and no inline css */
21
+table[border]:not([border="0"]):not([style*="border-width"]) th,
22
+table[border]:not([border="0"]):not([style*="border-width"]) td {
23
+  border-width: 1px;
24
+}
25
+/* Set default table styles if a table has a positive border attribute
26
+   and no inline css */
27
+table[border]:not([border="0"]):not([style*="border-style"]) th,
28
+table[border]:not([border="0"]):not([style*="border-style"]) td {
29
+  border-style: solid;
30
+}
31
+/* Set default table styles if a table has a positive border attribute
32
+   and no inline css */
33
+table[border]:not([border="0"]):not([style*="border-color"]) th,
34
+table[border]:not([border="0"]):not([style*="border-color"]) td {
35
+  border-color: #6d737b;
36
+}
37
+figure {
38
+  display: table;
39
+  margin: 1rem auto;
40
+}
41
+figure figcaption {
42
+  color: #8a8f97;
43
+  display: block;
44
+  margin-top: 0.25rem;
45
+  text-align: center;
46
+}
47
+hr {
48
+  border-color: #6d737b;
49
+  border-style: solid;
50
+  border-width: 1px 0 0 0;
51
+}
52
+code {
53
+  background-color: #6d737b;
54
+  border-radius: 3px;
55
+  padding: 0.1rem 0.2rem;
56
+}
57
+.mce-content-body:not([dir=rtl]) blockquote {
58
+  border-left: 2px solid #6d737b;
59
+  margin-left: 1.5rem;
60
+  padding-left: 1rem;
61
+}
62
+.mce-content-body[dir=rtl] blockquote {
63
+  border-right: 2px solid #6d737b;
64
+  margin-right: 1.5rem;
65
+  padding-right: 1rem;
66
+}

+ 0 - 0
public/tinymce/skins/content/dark/content.js


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff