Browse Source

:space_invader:feat: "shell"

Ritchie 1 year ago
parent
commit
2ee36057ac
100 changed files with 22959 additions and 1350 deletions
  1. 1 0
      .env.production
  2. 5 0
      .gitattributes
  3. 25 17
      .gitignore
  4. 0 3
      .vscode/extensions.json
  5. 32 12
      README.md
  6. 5 0
      babel.config.js
  7. 0 15
      components.d.ts
  8. 0 1
      env.d.ts
  9. 0 13
      index.html
  10. 6 0
      newbee-v3-server.js
  11. 71 21
      package.json
  12. 0 1217
      pnpm-lock.yaml
  13. 45 0
      public/echarts.min.js
  14. BIN
      public/favicon.ico
  15. 24 0
      public/fontIcon.css
  16. BIN
      public/fontIcon/fontIcon.eot
  17. 50 0
      public/fontIcon/fontIcon.svg
  18. BIN
      public/fontIcon/fontIcon.ttf
  19. BIN
      public/fontIcon/fontIcon.woff
  20. 23 0
      public/index.html
  21. 1 0
      public/tinymce/langs/zh-Hans.js
  22. 462 0
      public/tinymce/langs/zh_CN.js
  23. 66 0
      public/tinymce/skins/content/dark/content.css
  24. 1 0
      public/tinymce/skins/content/dark/content.min.css
  25. 61 0
      public/tinymce/skins/content/default/content.css
  26. 1 0
      public/tinymce/skins/content/default/content.min.css
  27. 66 0
      public/tinymce/skins/content/document/content.css
  28. 1 0
      public/tinymce/skins/content/document/content.min.css
  29. 66 0
      public/tinymce/skins/content/tinymce-5-dark/content.css
  30. 1 0
      public/tinymce/skins/content/tinymce-5-dark/content.min.css
  31. 61 0
      public/tinymce/skins/content/tinymce-5/content.css
  32. 1 0
      public/tinymce/skins/content/tinymce-5/content.min.css
  33. 62 0
      public/tinymce/skins/content/writer/content.css
  34. 1 0
      public/tinymce/skins/content/writer/content.min.css
  35. 766 0
      public/tinymce/skins/ui/oxide-dark/content.css
  36. 779 0
      public/tinymce/skins/ui/oxide-dark/content.inline.css
  37. 1 0
      public/tinymce/skins/ui/oxide-dark/content.inline.min.css
  38. 1 0
      public/tinymce/skins/ui/oxide-dark/content.min.css
  39. 3762 0
      public/tinymce/skins/ui/oxide-dark/skin.css
  40. 1 0
      public/tinymce/skins/ui/oxide-dark/skin.min.css
  41. 30 0
      public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css
  42. 1 0
      public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css
  43. 785 0
      public/tinymce/skins/ui/oxide/content.css
  44. 779 0
      public/tinymce/skins/ui/oxide/content.inline.css
  45. 1 0
      public/tinymce/skins/ui/oxide/content.inline.min.css
  46. 1 0
      public/tinymce/skins/ui/oxide/content.min.css
  47. 3759 0
      public/tinymce/skins/ui/oxide/skin.css
  48. 1 0
      public/tinymce/skins/ui/oxide/skin.min.css
  49. 30 0
      public/tinymce/skins/ui/oxide/skin.shadowdom.css
  50. 1 0
      public/tinymce/skins/ui/oxide/skin.shadowdom.min.css
  51. 766 0
      public/tinymce/skins/ui/tinymce-5-dark/content.css
  52. 779 0
      public/tinymce/skins/ui/tinymce-5-dark/content.inline.css
  53. 1 0
      public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css
  54. 1 0
      public/tinymce/skins/ui/tinymce-5-dark/content.min.css
  55. 3853 0
      public/tinymce/skins/ui/tinymce-5-dark/skin.css
  56. 1 0
      public/tinymce/skins/ui/tinymce-5-dark/skin.min.css
  57. 30 0
      public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css
  58. 1 0
      public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css
  59. 785 0
      public/tinymce/skins/ui/tinymce-5/content.css
  60. 779 0
      public/tinymce/skins/ui/tinymce-5/content.inline.css
  61. 1 0
      public/tinymce/skins/ui/tinymce-5/content.inline.min.css
  62. 1 0
      public/tinymce/skins/ui/tinymce-5/content.min.css
  63. 3853 0
      public/tinymce/skins/ui/tinymce-5/skin.css
  64. 1 0
      public/tinymce/skins/ui/tinymce-5/skin.min.css
  65. 30 0
      public/tinymce/skins/ui/tinymce-5/skin.shadowdom.css
  66. 1 0
      public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css
  67. 240 16
      src/App.vue
  68. BIN
      src/assets/accountOperation/accountAuthority.png
  69. BIN
      src/assets/accountOperation/labelMan.png
  70. BIN
      src/assets/accountOperation/merchantManage.png
  71. BIN
      src/assets/accountOperation/retailIcon.png
  72. BIN
      src/assets/accountOperation/right.png
  73. BIN
      src/assets/accountOperation/withIcon.png
  74. BIN
      src/assets/accountPer/addicon.png
  75. BIN
      src/assets/accountPer/icon.png
  76. BIN
      src/assets/accountPer/listIcon.png
  77. BIN
      src/assets/accountPer/sxIcon.png
  78. BIN
      src/assets/advertManage/closeIcon.png
  79. BIN
      src/assets/advertManage/icon.png
  80. BIN
      src/assets/advertManage/pushIcon.png
  81. BIN
      src/assets/advertManage/ruleIcon.png
  82. BIN
      src/assets/alarmHistory/icon.png
  83. 0 35
      src/assets/css/navbottom.css
  84. BIN
      src/assets/delete.png
  85. BIN
      src/assets/device/add.png
  86. BIN
      src/assets/device/advanced.png
  87. BIN
      src/assets/device/alarm.png
  88. BIN
      src/assets/device/alarmClock_Add.png
  89. BIN
      src/assets/device/baseMssage.png
  90. BIN
      src/assets/device/currency1.png
  91. BIN
      src/assets/device/currency2.png
  92. BIN
      src/assets/device/debug.png
  93. BIN
      src/assets/device/deviceSelect.png
  94. BIN
      src/assets/device/diyFlowers/S01.png
  95. BIN
      src/assets/device/diyFlowers/S02.png
  96. BIN
      src/assets/device/diyFlowers/S03.png
  97. BIN
      src/assets/device/diyFlowers/S04.png
  98. BIN
      src/assets/device/diyFlowers/S05.png
  99. BIN
      src/assets/device/diyFlowers/S06.png
  100. 0 0
      src/assets/device/diyFlowers/S07.png

+ 1 - 0
.env.production

@@ -0,0 +1 @@
+BASE_API=http://112.74.63.148:49011

+ 5 - 0
.gitattributes

@@ -0,0 +1,5 @@
+*.js linguist-language=vue
+
+*.css linguist-language=vue
+
+*.html linguist-language=vue

+ 25 - 17
.gitignore

@@ -1,30 +1,38 @@
-# Logs
-logs
-*.log
+.DS_Store
+node_modules
+/shenze
+shenze.zip
+package-lock.json
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
 npm-debug.log*
 yarn-debug.log*
 yarn-error.log*
 pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-.DS_Store
-dist
-dist-ssr
-coverage
-*.local
-
-/cypress/videos/
-/cypress/screenshots/
 
 # Editor directories and files
-.vscode/*
-!.vscode/extensions.json
 .idea
+.vscode
 *.suo
 *.ntvs*
 *.njsproj
 *.sln
 *.sw?
 
-*.tsbuildinfo
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/

+ 0 - 3
.vscode/extensions.json

@@ -1,3 +0,0 @@
-{
-  "recommendations": ["Vue.volar"]
-}

+ 32 - 12
README.md

@@ -1,15 +1,13 @@
 # stock-front
 
-This template should help get you started developing with Vue 3 in Vite.
+Sunzee company internal stock trading system front-end project
 
 ## Project stack
 
 - Vue 3.4
-- Node.js >= 18
-- pnpm
-- TypeScript
-- Pinia
-- Vant 4 按需引入组件样式
+- Node.js >= 18.x
+- Vite 5.x
+- Vant 4.x
 
 ## Recommended IDE
 
@@ -17,21 +15,43 @@ This template should help get you started developing with Vue 3 in Vite.
 
 ## 命名规范
 
-- PascalCase(帕斯卡命名式)
-- kebab-case(短横线连接式)
+- 项目名:kebab-case(短横线连接式)
+- Vue组件:PascalCase(帕斯卡命名式)
+- 引用组件:kebab-case
+- 目录名:全小写复数形式,eg.docs, assets, compontents, mixins, utils, views, store, plugins
+- 变量:camelCase(驼峰命名法),eg.myVariable
+- 常量:全大写下划线分隔,eg.MY_CONSTANT
+- js:kebab-case
+
+## 其他
+
+- 采用绝对路径的形式引用,如src/或者@/
+
+## 主题配色
+
+- 股票交易
+- 红 #FF3456 rgba(255, 52, 86, 1)
+- 蓝 #39a6fe rgba(252, 104, 94, 1)
+
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
 
 ```sh
-pnpm install
+npm install
 ```
 
 ### Compile and Hot-Reload for Development
 
 ```sh
-pnpm dev
+npm run dev
 ```
 
-### Type-Check, Compile and Minify for Production
+### Compile and Minify for Production
 
 ```sh
-pnpm build
+npm run build
 ```

+ 5 - 0
babel.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}

+ 0 - 15
components.d.ts

@@ -1,15 +0,0 @@
-/* eslint-disable */
-/* prettier-ignore */
-// @ts-nocheck
-// Generated by unplugin-vue-components
-// Read more: https://github.com/vuejs/core/pull/3399
-export {}
-
-declare module 'vue' {
-  export interface GlobalComponents {
-    RouterLink: typeof import('vue-router')['RouterLink']
-    RouterView: typeof import('vue-router')['RouterView']
-    VanButton: typeof import('vant/es')['Button']
-    VanIcon: typeof import('vant/es')['Icon']
-  }
-}

+ 0 - 1
env.d.ts

@@ -1 +0,0 @@
-/// <reference types="vite/client" />

+ 0 - 13
index.html

@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8">
-    <link rel="icon" href="/favicon.ico">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Vite App</title>
-  </head>
-  <body>
-    <div id="app"></div>
-    <script type="module" src="/src/main.ts"></script>
-  </body>
-</html>

+ 6 - 0
newbee-v3-server.js

@@ -0,0 +1,6 @@
+var server = require('pushstate-server');
+
+server.start({
+  port: 5008,
+  directory: './portal'
+});

+ 71 - 21
package.json

@@ -1,31 +1,81 @@
 {
-  "name": "stock-front",
-  "version": "0.0.0",
+  "name": "sunzee-stock-front",
+  "version": "0.1.0",
   "private": true,
-  "type": "module",
   "scripts": {
-    "dev": "vite",
-    "build": "run-p type-check \"build-only {@}\" --",
-    "preview": "vite preview",
-    "build-only": "vite build",
-    "type-check": "vue-tsc --build --force"
+    "start": "vue-cli-service serve",
+    "dev": "vue-cli-service serve --port 4200",
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build --mode production",
+    "buildDev": "vue-cli-service build --mode development",
+    "lint": "vue-cli-service lint"
   },
   "dependencies": {
-    "pinia": "^2.1.7",
+    "@amap/amap-jsapi-loader": "^1.0.1",
+    "@tinymce/tinymce-vue": "^4.0.7",
+    "@vant/area-data": "^1.5.0",
+    "@vant/compat": "^1.0.0",
+    "@vant/touch-emulator": "^1.4.0",
+    "axios": "^0.20.0",
+    "better-scroll": "^2.3.0",
+    "big.js": "^6.2.1",
+    "compressorjs": "^1.2.1",
+    "core-js": "^3.6.5",
+    "crypto-js": "^4.1.1",
+    "dayjs": "^1.11.7",
+    "js-base64": "^3.7.5",
+    "js-md5": "^0.7.3",
+    "lib-flexible": "^0.3.2",
+    "moment": "^2.29.4",
+    "pushstate-server": "^3.1.0",
+    "qrcode-terminal": "^0.12.0",
+    "qs": "^6.11.0",
+    "tinymce": "^6.7.2",
     "vant": "^4.8.5",
     "vue": "^3.4.21",
-    "vue-router": "^4.3.0"
+    "vue-i18n": "^9.1.10",
+    "vue-router": "^4.3.0",
+    "vue2-verify": "^1.1.5",
+    "vuex": "^4.1.0",
+    "wx-js-sdk-1.6.0": "^1.0.4"
   },
   "devDependencies": {
-    "@tsconfig/node20": "^20.1.2",
-    "@types/node": "^20.11.25",
-    "@vant/auto-import-resolver": "^1.0.2",
-    "@vitejs/plugin-vue": "^5.0.4",
-    "@vue/tsconfig": "^0.5.1",
-    "npm-run-all2": "^6.1.2",
-    "typescript": "~5.4.0",
-    "unplugin-vue-components": "^0.26.0",
-    "vite": "^5.1.5",
-    "vue-tsc": "^2.0.6"
-  }
+    "@vue/cli-plugin-babel": "~4.5.0",
+    "@vue/cli-plugin-eslint": "~4.5.0",
+    "@vue/cli-service": "^4.5.19",
+    "@vue/compiler-sfc": "^3.0.0",
+    "babel-eslint": "^10.1.0",
+    "babel-plugin-import": "^1.13.1",
+    "eslint": "^6.7.2",
+    "eslint-plugin-vue": "^7.0.0-0",
+    "less": "^3.12.2",
+    "less-loader": "^7.0.2",
+    "postcss-pxtorem": "^5.1.1",
+    "vue-loader-v16": "^16.0.0-beta.5.4"
+  },
+  "eslintConfig": {
+    "root": true,
+    "env": {
+      "node": true
+    },
+    "extends": [
+      "plugin:vue/vue3-essential",
+      "eslint:recommended"
+    ],
+    "parserOptions": {
+      "parser": "babel-eslint"
+    },
+    "rules": {
+      "no-irregular-whitespace": "off",
+      "no-mixed-spaces-and-tabs": 0
+    },
+    "globals": {
+      "WeixinJSBridge": false
+    }
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not dead"
+  ]
 }

File diff suppressed because it is too large
+ 0 - 1217
pnpm-lock.yaml


File diff suppressed because it is too large
+ 45 - 0
public/echarts.min.js


BIN
public/favicon.ico


File diff suppressed because it is too large
+ 24 - 0
public/fontIcon.css


BIN
public/fontIcon/fontIcon.eot


File diff suppressed because it is too large
+ 50 - 0
public/fontIcon/fontIcon.svg


BIN
public/fontIcon/fontIcon.ttf


BIN
public/fontIcon/fontIcon.woff


+ 23 - 0
public/index.html

@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+    <title>Sunzee</title>
+    <link rel="stylesheet" href="./fontIcon.css">
+    <script type="text/javascript" src="./echarts.min.js"></script>
+    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
+</head>
+
+<body>
+<noscript>
+    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
+        Please enable it to continue.</strong>
+</noscript>
+<div id="app"></div>
+</body>
+
+</html>

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/langs/zh-Hans.js


+ 462 - 0
public/tinymce/langs/zh_CN.js

@@ -0,0 +1,462 @@
+tinymce.addI18n('zh_CN',{
+	"Redo": "\u91cd\u505a",
+	"Undo": "\u64a4\u9500",
+	"Cut": "\u526a\u5207",
+	"Copy": "\u590d\u5236",
+	"Paste": "\u7c98\u8d34",
+	"Select all": "\u5168\u9009",
+	"New document": "\u65b0\u6587\u4ef6",
+	"Ok": "\u786e\u5b9a",
+	"Cancel": "\u53d6\u6d88",
+	"Visual aids": "\u7f51\u683c\u7ebf",
+	"Bold": "\u7c97\u4f53",
+	"Italic": "\u659c\u4f53",
+	"Underline": "\u4e0b\u5212\u7ebf",
+	"Strikethrough": "\u5220\u9664\u7ebf",
+	"Superscript": "\u4e0a\u6807",
+	"Subscript": "\u4e0b\u6807",
+	"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
+	"Align left": "\u5de6\u8fb9\u5bf9\u9f50",
+	"Align center": "\u4e2d\u95f4\u5bf9\u9f50",
+	"Align right": "\u53f3\u8fb9\u5bf9\u9f50",
+	"Justify": "\u4e24\u7aef\u5bf9\u9f50",
+	"Bullet list": "\u9879\u76ee\u7b26\u53f7",
+	"Numbered list": "\u7f16\u53f7\u5217\u8868",
+	"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
+	"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
+	"Close": "\u5173\u95ed",
+	"Formats": "\u683c\u5f0f",
+	"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002",
+	"Headers": "\u6807\u9898",
+	"Header 1": "\u6807\u98981",
+	"Header 2": "\u6807\u98982",
+	"Header 3": "\u6807\u98983",
+	"Header 4": "\u6807\u98984",
+	"Header 5": "\u6807\u98985",
+	"Header 6": "\u6807\u98986",
+	"Headings": "\u6807\u9898",
+	"Heading 1": "\u6807\u98981",
+	"Heading 2": "\u6807\u98982",
+	"Heading 3": "\u6807\u98983",
+	"Heading 4": "\u6807\u98984",
+	"Heading 5": "\u6807\u98985",
+	"Heading 6": "\u6807\u98986",
+	"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684",
+	"Div": "Div",
+	"Pre": "Pre",
+	"Code": "\u4ee3\u7801",
+	"Paragraph": "\u6bb5\u843d",
+	"Blockquote": "\u5f15\u6587\u533a\u5757",
+	"Inline": "\u6587\u672c",
+	"Blocks": "\u57fa\u5757",
+	"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
+	"Fonts": "\u5b57\u4f53",
+	"Font Sizes": "\u5b57\u53f7",
+	"Class": "\u7c7b\u578b",
+	"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf",
+	"OR": "\u6216",
+	"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64",
+	"Upload": "\u4e0a\u4f20",
+	"Block": "\u5757",
+	"Align": "\u5bf9\u9f50",
+	"Default": "\u9ed8\u8ba4",
+	"Circle": "\u7a7a\u5fc3\u5706",
+	"Disc": "\u5b9e\u5fc3\u5706",
+	"Square": "\u65b9\u5757",
+	"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
+	"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
+	"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
+	"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
+	"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
+	"Anchor...": "\u951a\u70b9...",
+	"Name": "\u540d\u79f0",
+	"Id": "\u6807\u8bc6\u7b26",
+	"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002",
+	"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
+	"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
+	"Special character...": "\u7279\u6b8a\u5b57\u7b26...",
+	"Source code": "\u6e90\u4ee3\u7801",
+	"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
+	"Language": "\u8bed\u8a00",
+	"Code sample...": "\u793a\u4f8b\u4ee3\u7801...",
+	"Color Picker": "\u9009\u8272\u5668",
+	"R": "R",
+	"G": "G",
+	"B": "B",
+	"Left to right": "\u4ece\u5de6\u5230\u53f3",
+	"Right to left": "\u4ece\u53f3\u5230\u5de6",
+	"Emoticons": "\u8868\u60c5",
+	"Emoticons...": "\u8868\u60c5\u7b26\u53f7...",
+	"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027",
+	"Title": "\u6807\u9898",
+	"Keywords": "\u5173\u952e\u8bcd",
+	"Description": "\u63cf\u8ff0",
+	"Robots": "\u673a\u5668\u4eba",
+	"Author": "\u4f5c\u8005",
+	"Encoding": "\u7f16\u7801",
+	"Fullscreen": "\u5168\u5c4f",
+	"Action": "\u64cd\u4f5c",
+	"Shortcut": "\u5feb\u6377\u952e",
+	"Help": "\u5e2e\u52a9",
+	"Address": "\u5730\u5740",
+	"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f",
+	"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f",
+	"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84",
+	"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355",
+	"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+	"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+	"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+	"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):",
+	"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a",
+	"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
+	"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}",
+	"Plugins": "\u63d2\u4ef6",
+	"Handy Shortcuts": "\u5feb\u6377\u952e",
+	"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
+	"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
+	"Alternative description": "\u66ff\u4ee3\u63cf\u8ff0",
+	"Accessibility": "\u8f85\u52a9\u529f\u80fd",
+	"Image is decorative": "\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684",
+	"Source": "\u5730\u5740",
+	"Dimensions": "\u5927\u5c0f",
+	"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
+	"General": "\u666e\u901a",
+	"Advanced": "\u9ad8\u7ea7",
+	"Style": "\u6837\u5f0f",
+	"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
+	"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
+	"Border": "\u8fb9\u6846",
+	"Insert image": "\u63d2\u5165\u56fe\u7247",
+	"Image...": "\u56fe\u7247...",
+	"Image list": "\u56fe\u7247\u5217\u8868",
+	"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
+	"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
+	"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
+	"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
+	"Edit image": "\u7f16\u8f91\u56fe\u7247",
+	"Image options": "\u56fe\u7247\u9009\u9879",
+	"Zoom in": "\u653e\u5927",
+	"Zoom out": "\u7f29\u5c0f",
+	"Crop": "\u88c1\u526a",
+	"Resize": "\u8c03\u6574\u5927\u5c0f",
+	"Orientation": "\u65b9\u5411",
+	"Brightness": "\u4eae\u5ea6",
+	"Sharpen": "\u9510\u5316",
+	"Contrast": "\u5bf9\u6bd4\u5ea6",
+	"Color levels": "\u989c\u8272\u5c42\u6b21",
+	"Gamma": "\u4f3d\u9a6c\u503c",
+	"Invert": "\u53cd\u8f6c",
+	"Apply": "\u5e94\u7528",
+	"Back": "\u540e\u9000",
+	"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
+	"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
+	"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
+	"Text to display": "\u663e\u793a\u6587\u5b57",
+	"Url": "\u5730\u5740",
+	"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...",
+	"Current window": "\u5f53\u524d\u7a97\u53e3",
+	"None": "\u65e0",
+	"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
+	"Open link": "\u6253\u5f00\u94fe\u63a5",
+	"Remove link": "\u5220\u9664\u94fe\u63a5",
+	"Anchors": "\u951a\u70b9",
+	"Link...": "\u94fe\u63a5...",
+	"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
+	"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
+	"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f",
+	"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:\/\/ \u524d\u7f00\u5417\uff1f",
+	"Link list": "\u94fe\u63a5\u5217\u8868",
+	"Insert video": "\u63d2\u5165\u89c6\u9891",
+	"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
+	"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
+	"Alternative source": "\u955c\u50cf",
+	"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740",
+	"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)",
+	"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
+	"Embed": "\u5185\u5d4c",
+	"Media...": "\u591a\u5a92\u4f53...",
+	"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
+	"Page break": "\u5206\u9875\u7b26",
+	"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
+	"Preview": "\u9884\u89c8",
+	"Print...": "\u6253\u5370...",
+	"Save": "\u4fdd\u5b58",
+	"Find": "\u67e5\u627e",
+	"Replace with": "\u66ff\u6362\u4e3a",
+	"Replace": "\u66ff\u6362",
+	"Replace all": "\u5168\u90e8\u66ff\u6362",
+	"Previous": "\u4e0a\u4e00\u4e2a",
+	"Next": "\u4e0b\u4e00\u4e2a",
+	"Find and Replace": "\u67e5\u627e\u548c\u66ff\u6362",
+	"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...",
+	"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
+	"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
+	"Find whole words only": "\u5168\u5b57\u5339\u914d",
+	"Find in selection": "\u5728\u9009\u533a\u4e2d\u67e5\u627e",
+	"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
+	"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00",
+	"No misspellings found.": "\u6ca1\u6709\u53d1\u73b0\u62fc\u5199\u9519\u8bef",
+	"Ignore": "\u5ffd\u7565",
+	"Ignore all": "\u5168\u90e8\u5ffd\u7565",
+	"Finish": "\u5b8c\u6210",
+	"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
+	"Insert table": "\u63d2\u5165\u8868\u683c",
+	"Table properties": "\u8868\u683c\u5c5e\u6027",
+	"Delete table": "\u5220\u9664\u8868\u683c",
+	"Cell": "\u5355\u5143\u683c",
+	"Row": "\u884c",
+	"Column": "\u5217",
+	"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
+	"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
+	"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
+	"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
+	"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
+	"Delete row": "\u5220\u9664\u884c",
+	"Row properties": "\u884c\u5c5e\u6027",
+	"Cut row": "\u526a\u5207\u884c",
+	"Copy row": "\u590d\u5236\u884c",
+	"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
+	"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
+	"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
+	"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
+	"Delete column": "\u5220\u9664\u5217",
+	"Cols": "\u5217",
+	"Rows": "\u884c",
+	"Width": "\u5bbd",
+	"Height": "\u9ad8",
+	"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
+	"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
+	"Caption": "\u6807\u9898",
+	"Show caption": "\u663e\u793a\u6807\u9898",
+	"Left": "\u5de6\u5bf9\u9f50",
+	"Center": "\u5c45\u4e2d",
+	"Right": "\u53f3\u5bf9\u9f50",
+	"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
+	"Scope": "\u8303\u56f4",
+	"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
+	"H Align": "\u6c34\u5e73\u5bf9\u9f50",
+	"V Align": "\u5782\u76f4\u5bf9\u9f50",
+	"Top": "\u9876\u90e8\u5bf9\u9f50",
+	"Middle": "\u5782\u76f4\u5c45\u4e2d",
+	"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
+	"Header cell": "\u8868\u5934\u5355\u5143\u683c",
+	"Row group": "\u884c\u7ec4",
+	"Column group": "\u5217\u7ec4",
+	"Row type": "\u884c\u7c7b\u578b",
+	"Header": "\u8868\u5934",
+	"Body": "\u8868\u4f53",
+	"Footer": "\u8868\u5c3e",
+	"Border color": "\u8fb9\u6846\u989c\u8272",
+	"Insert template...": "\u63d2\u5165\u6a21\u677f...",
+	"Templates": "\u6a21\u677f",
+	"Template": "\u6a21\u677f",
+	"Text color": "\u6587\u5b57\u989c\u8272",
+	"Background color": "\u80cc\u666f\u8272",
+	"Custom...": "\u81ea\u5b9a\u4e49...",
+	"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
+	"No color": "\u65e0",
+	"Remove color": "\u79fb\u9664\u989c\u8272",
+	"Table of Contents": "\u5185\u5bb9\u5217\u8868",
+	"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
+	"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
+	"Word count": "\u5b57\u6570",
+	"Count": "\u8ba1\u6570",
+	"Document": "\u6587\u6863",
+	"Selection": "\u9009\u62e9",
+	"Words": "\u5355\u8bcd",
+	"Words: {0}": "\u5b57\u6570\uff1a{0}",
+	"{0} words": "{0} \u5b57",
+	"File": "\u6587\u4ef6",
+	"Edit": "\u7f16\u8f91",
+	"Insert": "\u63d2\u5165",
+	"View": "\u89c6\u56fe",
+	"Format": "\u683c\u5f0f",
+	"Table": "\u8868\u683c",
+	"Tools": "\u5de5\u5177",
+	"Powered by {0}": "\u7531{0}\u9a71\u52a8",
+	"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
+	"Image title": "\u56fe\u7247\u6807\u9898",
+	"Border width": "\u8fb9\u6846\u5bbd\u5ea6",
+	"Border style": "\u8fb9\u6846\u6837\u5f0f",
+	"Error": "\u9519\u8bef",
+	"Warn": "\u8b66\u544a",
+	"Valid": "\u6709\u6548",
+	"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846",
+	"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002",
+	"System Font": "\u7cfb\u7edf\u5b57\u4f53",
+	"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}",
+	"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}",
+	"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}",
+	"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}",
+	"example": "\u793a\u4f8b",
+	"Search": "\u641c\u7d22",
+	"All": "\u5168\u90e8",
+	"Currency": "\u8d27\u5e01",
+	"Text": "\u6587\u5b57",
+	"Quotations": "\u5f15\u7528",
+	"Mathematical": "\u6570\u5b66",
+	"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145",
+	"Symbols": "\u7b26\u53f7",
+	"Arrows": "\u7bad\u5934",
+	"User Defined": "\u81ea\u5b9a\u4e49",
+	"dollar sign": "\u7f8e\u5143\u7b26\u53f7",
+	"currency sign": "\u8d27\u5e01\u7b26\u53f7",
+	"euro-currency sign": "\u6b27\u5143\u7b26\u53f7",
+	"colon sign": "\u5192\u53f7",
+	"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7",
+	"french franc sign": "\u6cd5\u90ce\u7b26\u53f7",
+	"lira sign": "\u91cc\u62c9\u7b26\u53f7",
+	"mill sign": "\u5bc6\u5c14\u7b26\u53f7",
+	"naira sign": "\u5948\u62c9\u7b26\u53f7",
+	"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7",
+	"rupee sign": "\u5362\u6bd4\u7b26\u53f7",
+	"won sign": "\u97e9\u5143\u7b26\u53f7",
+	"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7",
+	"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7",
+	"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7",
+	"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7",
+	"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7",
+	"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7",
+	"peso sign": "\u6bd4\u7d22\u7b26\u53f7",
+	"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7",
+	"austral sign": "\u6fb3\u5143\u7b26\u53f7",
+	"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7",
+	"cedi sign": "\u585e\u5730\u7b26\u53f7",
+	"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7",
+	"spesmilo sign": "spesmilo\u7b26\u53f7",
+	"tenge sign": "\u575a\u6208\u7b26\u53f7",
+	"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4",
+	"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9",
+	"nordic mark sign": "\u5317\u6b27\u9a6c\u514b",
+	"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7",
+	"ruble sign": "\u5362\u5e03\u7b26\u53f7",
+	"yen character": "\u65e5\u5143\u5b57\u6837",
+	"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837",
+	"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09",
+	"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09",
+	"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...",
+	"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7",
+	"People": "\u4eba\u7c7b",
+	"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136",
+	"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1",
+	"Activity": "\u6d3b\u52a8",
+	"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9",
+	"Objects": "\u7269\u4ef6",
+	"Flags": "\u65d7\u5e1c",
+	"Characters": "\u5b57\u7b26",
+	"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)",
+	"{0} characters": "{0} \u4e2a\u5b57\u7b26",
+	"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002",
+	"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002",
+	"Update": "\u66f4\u65b0",
+	"Color swatch": "\u989c\u8272\u6837\u672c",
+	"Turquoise": "\u9752\u7eff\u8272",
+	"Green": "\u7eff\u8272",
+	"Blue": "\u84dd\u8272",
+	"Purple": "\u7d2b\u8272",
+	"Navy Blue": "\u6d77\u519b\u84dd",
+	"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272",
+	"Dark Green": "\u6df1\u7eff\u8272",
+	"Medium Blue": "\u4e2d\u84dd\u8272",
+	"Medium Purple": "\u4e2d\u7d2b\u8272",
+	"Midnight Blue": "\u6df1\u84dd\u8272",
+	"Yellow": "\u9ec4\u8272",
+	"Orange": "\u6a59\u8272",
+	"Red": "\u7ea2\u8272",
+	"Light Gray": "\u6d45\u7070\u8272",
+	"Gray": "\u7070\u8272",
+	"Dark Yellow": "\u6697\u9ec4\u8272",
+	"Dark Orange": "\u6df1\u6a59\u8272",
+	"Dark Red": "\u6df1\u7ea2\u8272",
+	"Medium Gray": "\u4e2d\u7070\u8272",
+	"Dark Gray": "\u6df1\u7070\u8272",
+	"Light Green": "\u6d45\u7eff\u8272",
+	"Light Yellow": "\u6d45\u9ec4\u8272",
+	"Light Red": "\u6d45\u7ea2\u8272",
+	"Light Purple": "\u6d45\u7d2b\u8272",
+	"Light Blue": "\u6d45\u84dd\u8272",
+	"Dark Purple": "\u6df1\u7d2b\u8272",
+	"Dark Blue": "\u6df1\u84dd\u8272",
+	"Black": "\u9ed1\u8272",
+	"White": "\u767d\u8272",
+	"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f",
+	"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846",
+	"history": "\u5386\u53f2",
+	"styles": "\u6837\u5f0f",
+	"formatting": "\u683c\u5f0f\u5316",
+	"alignment": "\u5bf9\u9f50",
+	"indentation": "\u7f29\u8fdb",
+	"Font": "\u5b57\u4f53",
+	"Size": "\u5b57\u53f7",
+	"More...": "\u66f4\u591a...",
+	"Select...": "\u9009\u62e9...",
+	"Preferences": "\u9996\u9009\u9879",
+	"Yes": "\u662f",
+	"No": "\u5426",
+	"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15",
+	"Version": "\u7248\u672c",
+	"Code view": "\u4ee3\u7801\u89c6\u56fe",
+	"Open popup menu for split buttons": "\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae",
+	"List Properties": "\u5217\u8868\u5c5e\u6027",
+	"List properties...": "\u6807\u9898\u5b57\u4f53\u5c5e\u6027",
+	"Start list at number": "\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868",
+	"Line height": "\u884c\u9ad8",
+	"comments": "\u5907\u6ce8",
+	"Format Painter": "\u683c\u5f0f\u5237",
+	"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6",
+	"Capitalization": "\u5927\u5199",
+	"lowercase": "\u5c0f\u5199",
+	"UPPERCASE": "\u5927\u5199",
+	"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199",
+	"permanent pen": "\u8bb0\u53f7\u7b14",
+	"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027",
+	"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...",
+	"case change": "\u6848\u4f8b\u66f4\u6539",
+	"page embed": "\u9875\u9762\u5d4c\u5165",
+	"Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...",
+	"Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f",
+	"Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8868",
+	"Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8868",
+	"Sort": "\u6392\u5e8f",
+	"Order": "\u6392\u5e8f",
+	"Sort by": "\u6392\u5e8f\u65b9\u5f0f",
+	"Ascending": "\u5347\u5e8f",
+	"Descending": "\u964d\u5e8f",
+	"Column {0}": "\u5217{0}",
+	"Row {0}": "\u884c{0}",
+	"Spellcheck...": "\u62fc\u5199\u68c0\u67e5...",
+	"Misspelled word": "\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd",
+	"Suggestions": "\u5efa\u8bae",
+	"Change": "\u66f4\u6539",
+	"Finding word suggestions": "\u67e5\u627e\u5355\u8bcd\u5efa\u8bae",
+	"Success": "\u6210\u529f",
+	"Repair": "\u4fee\u590d",
+	"Issue {0} of {1}": "\u5171\u8ba1{1}\u95ee\u9898{0}",
+	"Images must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u6216\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0",
+	"Images must have an alternative text description. Decorative images are not allowed.": "\u56fe\u50cf\u5fc5\u987b\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0\u3002\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u56fe\u50cf\u3002",
+	"Or provide alternative text:": "\u6216\u63d0\u4f9b\u5907\u9009\u6587\u672c\uff1a",
+	"Make image decorative:": "\u4f7f\u56fe\u50cf\u88c5\u9970\uff1a",
+	"ID attribute must be unique": "ID \u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684",
+	"Make ID unique": "\u4f7f ID \u72ec\u4e00\u65e0\u4e8c",
+	"Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6",
+	"Remove this ID": "\u5220\u9664\u6b64 ID",
+	"Remove all IDs": "\u6e05\u9664\u5168\u90e8IDs",
+	"Checklist": "\u6e05\u5355",
+	"Anchor": "\u951a\u70b9",
+	"Special character": "\u7279\u6b8a\u7b26\u53f7",
+	"Code sample": "\u4ee3\u7801\u793a\u4f8b",
+	"Color": "\u989c\u8272",
+	"Document properties": "\u6587\u6863\u5c5e\u6027",
+	"Image description": "\u56fe\u7247\u63cf\u8ff0",
+	"Image": "\u56fe\u7247",
+	"Insert link": "\u63d2\u5165\u94fe\u63a5",
+	"Target": "\u6253\u5f00\u65b9\u5f0f",
+	"Link": "\u94fe\u63a5",
+	"Poster": "\u5c01\u9762",
+	"Media": "\u5a92\u4f53",
+	"Print": "\u6253\u5370",
+	"Prev": "\u4e0a\u4e00\u4e2a",
+	"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
+	"Whole words": "\u5168\u5b57\u5339\u914d",
+	"Insert template": "\u63d2\u5165\u6a21\u677f"
+});

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

@@ -0,0 +1,66 @@
+body {
+  background-color: #222f3e;
+  color: #fff;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  line-height: 1.4;
+  margin: 1rem;
+}
+a {
+  color: #4099ff;
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #6d737b;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #8a8f97;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #6d737b;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #6d737b;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #6d737b;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #6d737b;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/dark/content.min.css


+ 61 - 0
public/tinymce/skins/content/default/content.css

@@ -0,0 +1,61 @@
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  line-height: 1.4;
+  margin: 1rem;
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #ccc;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #999;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #ccc;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #e8e8e8;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #ccc;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #ccc;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/default/content.min.css


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

@@ -0,0 +1,66 @@
+@media screen {
+  html {
+    background: #f4f4f4;
+    min-height: 100%;
+  }
+}
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+}
+@media screen {
+  body {
+    background-color: #fff;
+    box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
+    box-sizing: border-box;
+    margin: 1rem auto 0;
+    max-width: 820px;
+    min-height: calc(100vh - 1rem);
+    padding: 4rem 6rem 6rem 6rem;
+  }
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #ccc;
+}
+figure figcaption {
+  color: #999;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #ccc;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #ccc;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #ccc;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/document/content.min.css


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

@@ -0,0 +1,66 @@
+body {
+  background-color: #2f3742;
+  color: #dfe0e4;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  line-height: 1.4;
+  margin: 1rem;
+}
+a {
+  color: #4099ff;
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #6d737b;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #8a8f97;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #6d737b;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #6d737b;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #6d737b;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #6d737b;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/tinymce-5-dark/content.min.css


+ 61 - 0
public/tinymce/skins/content/tinymce-5/content.css

@@ -0,0 +1,61 @@
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  line-height: 1.4;
+  margin: 1rem;
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #ccc;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #999;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #ccc;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #e8e8e8;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #ccc;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #ccc;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/tinymce-5/content.min.css


+ 62 - 0
public/tinymce/skins/content/writer/content.css

@@ -0,0 +1,62 @@
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  line-height: 1.4;
+  margin: 1rem auto;
+  max-width: 900px;
+}
+table {
+  border-collapse: collapse;
+}
+/* Apply a default padding if legacy cellpadding attribute is missing */
+table:not([cellpadding]) th,
+table:not([cellpadding]) td {
+  padding: 0.4rem;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-width"]) th,
+table[border]:not([border="0"]):not([style*="border-width"]) td {
+  border-width: 1px;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-style"]) th,
+table[border]:not([border="0"]):not([style*="border-style"]) td {
+  border-style: solid;
+}
+/* Set default table styles if a table has a positive border attribute
+   and no inline css */
+table[border]:not([border="0"]):not([style*="border-color"]) th,
+table[border]:not([border="0"]):not([style*="border-color"]) td {
+  border-color: #ccc;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #999;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #ccc;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #e8e8e8;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #ccc;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #ccc;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/content/writer/content.min.css


File diff suppressed because it is too large
+ 766 - 0
public/tinymce/skins/ui/oxide-dark/content.css


File diff suppressed because it is too large
+ 779 - 0
public/tinymce/skins/ui/oxide-dark/content.inline.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide-dark/content.inline.min.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide-dark/content.min.css


File diff suppressed because it is too large
+ 3762 - 0
public/tinymce/skins/ui/oxide-dark/skin.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide-dark/skin.min.css


+ 30 - 0
public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css

@@ -0,0 +1,30 @@
+body.tox-dialog__disable-scroll {
+  overflow: hidden;
+}
+.tox-fullscreen {
+  border: 0;
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  overscroll-behavior: none;
+  padding: 0;
+  touch-action: pinch-zoom;
+  width: 100%;
+}
+.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
+  display: none;
+}
+.tox.tox-tinymce.tox-fullscreen,
+.tox-shadowhost.tox-fullscreen {
+  left: 0;
+  position: fixed;
+  top: 0;
+  z-index: 1200;
+}
+.tox.tox-tinymce.tox-fullscreen {
+  background-color: transparent;
+}
+.tox-fullscreen .tox.tox-tinymce-aux,
+.tox-fullscreen ~ .tox.tox-tinymce-aux {
+  z-index: 1201;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css


File diff suppressed because it is too large
+ 785 - 0
public/tinymce/skins/ui/oxide/content.css


File diff suppressed because it is too large
+ 779 - 0
public/tinymce/skins/ui/oxide/content.inline.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide/content.inline.min.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide/content.min.css


File diff suppressed because it is too large
+ 3759 - 0
public/tinymce/skins/ui/oxide/skin.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide/skin.min.css


+ 30 - 0
public/tinymce/skins/ui/oxide/skin.shadowdom.css

@@ -0,0 +1,30 @@
+body.tox-dialog__disable-scroll {
+  overflow: hidden;
+}
+.tox-fullscreen {
+  border: 0;
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  overscroll-behavior: none;
+  padding: 0;
+  touch-action: pinch-zoom;
+  width: 100%;
+}
+.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
+  display: none;
+}
+.tox.tox-tinymce.tox-fullscreen,
+.tox-shadowhost.tox-fullscreen {
+  left: 0;
+  position: fixed;
+  top: 0;
+  z-index: 1200;
+}
+.tox.tox-tinymce.tox-fullscreen {
+  background-color: transparent;
+}
+.tox-fullscreen .tox.tox-tinymce-aux,
+.tox-fullscreen ~ .tox.tox-tinymce-aux {
+  z-index: 1201;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/oxide/skin.shadowdom.min.css


File diff suppressed because it is too large
+ 766 - 0
public/tinymce/skins/ui/tinymce-5-dark/content.css


File diff suppressed because it is too large
+ 779 - 0
public/tinymce/skins/ui/tinymce-5-dark/content.inline.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5-dark/content.min.css


File diff suppressed because it is too large
+ 3853 - 0
public/tinymce/skins/ui/tinymce-5-dark/skin.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5-dark/skin.min.css


+ 30 - 0
public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css

@@ -0,0 +1,30 @@
+body.tox-dialog__disable-scroll {
+  overflow: hidden;
+}
+.tox-fullscreen {
+  border: 0;
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  overscroll-behavior: none;
+  padding: 0;
+  touch-action: pinch-zoom;
+  width: 100%;
+}
+.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
+  display: none;
+}
+.tox.tox-tinymce.tox-fullscreen,
+.tox-shadowhost.tox-fullscreen {
+  left: 0;
+  position: fixed;
+  top: 0;
+  z-index: 1200;
+}
+.tox.tox-tinymce.tox-fullscreen {
+  background-color: transparent;
+}
+.tox-fullscreen .tox.tox-tinymce-aux,
+.tox-fullscreen ~ .tox.tox-tinymce-aux {
+  z-index: 1201;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css


File diff suppressed because it is too large
+ 785 - 0
public/tinymce/skins/ui/tinymce-5/content.css


File diff suppressed because it is too large
+ 779 - 0
public/tinymce/skins/ui/tinymce-5/content.inline.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5/content.inline.min.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5/content.min.css


File diff suppressed because it is too large
+ 3853 - 0
public/tinymce/skins/ui/tinymce-5/skin.css


File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5/skin.min.css


+ 30 - 0
public/tinymce/skins/ui/tinymce-5/skin.shadowdom.css

@@ -0,0 +1,30 @@
+body.tox-dialog__disable-scroll {
+  overflow: hidden;
+}
+.tox-fullscreen {
+  border: 0;
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  overscroll-behavior: none;
+  padding: 0;
+  touch-action: pinch-zoom;
+  width: 100%;
+}
+.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
+  display: none;
+}
+.tox.tox-tinymce.tox-fullscreen,
+.tox-shadowhost.tox-fullscreen {
+  left: 0;
+  position: fixed;
+  top: 0;
+  z-index: 1200;
+}
+.tox.tox-tinymce.tox-fullscreen {
+  background-color: transparent;
+}
+.tox-fullscreen .tox.tox-tinymce-aux,
+.tox-fullscreen ~ .tox.tox-tinymce-aux {
+  z-index: 1201;
+}

File diff suppressed because it is too large
+ 1 - 0
public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css


+ 240 - 16
src/App.vue

@@ -1,21 +1,245 @@
-<script setup lang="ts">
-import { ref } from 'vue'
-import Navbottom from './views/Navbottom.vue';
+<template>
+  <div id="app">
+    <router-view class="router-view" v-slot="{ Component }">
+      <transition :name="transitionName">
+        <!-- 缓存组件,但是进入编辑页面就会有问题 -->
+        <!-- <keep-alive include="trading,tradingSet,role"><component :is="Component" /></keep-alive> -->
+        <component :is="Component" v-if="!$route.meta.keepAlive" />
+      </transition>
+      <keep-alive>
+        <component :is="Component" v-if="$route.meta.keepAlive" />
+      </keep-alive>
+    </router-view>
+    <nav-bar v-if="tabType"></nav-bar>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs } from "vue";
+import { useRouter } from "vue-router";
+import { getLocal } from "@/common/js/utils";
+import navBar from "@/components/NavBar";
+import { ref } from "vue";
 
-const abc = ref('入口文件App.vue')
+export default {
+  setup() {
+    const router = useRouter();
+    const state = reactive({
+      transitionName: "slide-left",
+    });
+    const tabType = ref(true);
+    router.beforeEach((to, from, next) => {
+      const token = getLocal("token");
+      // token为空跳转登陆页面
+      if (!token && to.path !== "/login") {
+        // next(`/login?redirect=${to.fullPath}`)
+      }
+      if (to.meta.index > from.meta.index) {
+        state.transitionName = "slide-left"; // 向左滑动
+      } else if (to.meta.index < from.meta.index) {
+        // 由次级到主级
+        state.transitionName = "slide-right";
+      } else {
+        state.transitionName = ""; // 同级无过渡效果
+      }
+      next();
+    });
+    router.afterEach(()=>{
+      let currentRouteName = router.currentRoute.value.name;
+      if (currentRouteName === 'home' || currentRouteName === 'trading' || currentRouteName === 'position' || currentRouteName === 'user') {
+        tabType.value = true;
+      } else { 
+        tabType.value = false;
+      }
+    })
+    
 
+    return { 
+      ...toRefs(state),
+      tabType,
+    };
+  },
+  components: { navBar }
+};
 </script>
 
-<template>
-  <div>
-    {{ abc }}
-    <van-button type="primary" >按钮</van-button>
-    <template>
-      <van-button type="primary" />看不见这个按钮
-    </template>
-    <router-view></router-view>
-    <Navbottom/>
-  </div>
-</template>
+<style lang="less">
+// 宽度动态
+// width: -moz-calc(100% - 70px);
+// width: -webkit-calc(100% - 70px);
+// width: calc(100% - 70px);
+/* 导入全局样式 */
+@import "./common/style/global.less";
+
+// 改变vant的全局样式
+:root {
+  --van-blue: #FF3456 !important;
+  --vangreen: #FF3456 !important;
+  --van-field-label-color: #404d74 !important;
+}
+
+.cust_vantBorder {
+  .van-cell {
+    display: flex;
+    align-items: center;
+  }
+
+  //  .van-field__value {
+  //   border: 1px solid #b9bad0;
+  //   border-radius: 2px;
+  //   height: 38px;
+  //   line-height: 38px;
+  //   padding-left: 6px;
+  // }
+  .van-field__body {
+    border: 1px solid #dddde8;
+    border-radius: 2px;
+    height: 38px;
+    line-height: 38px;
+    padding-left: 6px;
+  }
+}
+
+// 下边框线条
+.kBordBott {
+  border-bottom: 1px solid #fafafd;
+}
+
+html,
+body,
+#app,
+div,
+span,
+// p {
+//   color: #404d74 !important;
+// }
+p {
+  // color: #333333;
+  font-family: "Arial", sans-serif;
+}
+
+html {
+  height: 100%;
+  // overflow: hidden;
+}
+
+body {
+  height: 100%;
+  // overflow-x: hidden;
+  overflow: auto;
+}
+
+#app {
+  height: 100%;
+  font-family: "Avenir", Helvetica, Arial, sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  // text-align: center;
+  color: #2c3e50;
+}
+
+.router-view {
+  width: 100%;
+  height: auto;
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  margin: 0 auto;
+  -webkit-overflow-scrolling: touch;
+}
+
+.slide-right-enter-active,
+.slide-right-leave-active,
+.slide-left-enter-active,
+.slide-left-leave-active {
+  height: 100%;
+  will-change: transform;
+  transition: all 500ms;
+  position: absolute;
+  backface-visibility: hidden;
+}
+
+.slide-right-enter {
+  opacity: 0;
+  transform: translate3d(-100%, 0, 0);
+}
+
+.slide-right-leave-active {
+  opacity: 0;
+  transform: translate3d(100%, 0, 0);
+}
+
+.slide-left-enter {
+  opacity: 0;
+  transform: translate3d(100%, 0, 0);
+}
+
+.slide-left-leave-active {
+  opacity: 0;
+  transform: translate3d(-100%, 0, 0);
+}
+
+.van-badge--fixed {
+  z-index: 1000;
+}
+
+/* 滚动条样式 */
+::-webkit-scrollbar {
+  /* 1 */
+  width: 8px;
+  height: 8px;
+  background: linear-gradient(to right,
+      transparent 3px,
+      #565656 4px,
+      transparent 6px),
+    linear-gradient(to bottom, transparent 3px, #565656 4px, transparent 6px);
+}
+
+::-webkit-scrollbar-button {
+  /* 2 */
+  width: 8px;
+  height: 8px;
+  border-radius: 2px;
+  background-color: #0667a0;
+}
+
+::-webkit-scrollbar-button:hover {
+  background-color: #29a7f0;
+  cursor: pointer;
+}
+
+::-webkit-scrollbar-thumb {
+  /* 5 */
+  background-color: #d2d2d2;
+  border-radius: 2px;
+}
+
+::-webkit-scrollbar-corner {
+  /* 6 */
+  width: 8px;
+  height: 8px;
+  border-radius: 50%;
+  background-color: #565656;
+}
+
+::-webkit-scrollbar {
+  &-thumb {
+    border-radius: 10px;
+    background-color: #d2d2d2;
+
+    &:hover {
+      background-color: #bfbfbf;
+      // background: #A7A7A7;
+    }
+  }
+
+  &-button {
+    display: none;
+  }
 
-<style scoped></style>
+  &-track {
+    background: #eee;
+    border-radius: 10px;
+  }
+}
+</style>

BIN
src/assets/accountOperation/accountAuthority.png


BIN
src/assets/accountOperation/labelMan.png


BIN
src/assets/accountOperation/merchantManage.png


BIN
src/assets/accountOperation/retailIcon.png


BIN
src/assets/accountOperation/right.png


BIN
src/assets/accountOperation/withIcon.png


BIN
src/assets/accountPer/addicon.png


BIN
src/assets/accountPer/icon.png


BIN
src/assets/accountPer/listIcon.png


BIN
src/assets/accountPer/sxIcon.png


BIN
src/assets/advertManage/closeIcon.png


BIN
src/assets/advertManage/icon.png


BIN
src/assets/advertManage/pushIcon.png


BIN
src/assets/advertManage/ruleIcon.png


BIN
src/assets/alarmHistory/icon.png


+ 0 - 35
src/assets/css/navbottom.css

@@ -1,35 +0,0 @@
-/**
-    底部导航
-*/
-.footer {
-  height: 60px;
-}
-.footer-seat {
-  position: fixed;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-  height: 60px;
-  border-top: 1px solid #eee;
-}
-.footer-list {
-  max-width: 1080px;
-  height: 60px;
-  margin: auto;
-}
-.footer-list ul {
-  display: flex;
-  justify-content: space-around;
-  align-items: center;
-  height: 100%;
-  text-align: center;
-  font-size: 17px;
-}
-.footer-list ul p {
-  margin-top: 0px;
-  margin-bottom: 10px;
-}
-.footer-list ul i {
-  font-size: 28px;
-  margin-top: 9px;
-}

BIN
src/assets/delete.png


BIN
src/assets/device/add.png


BIN
src/assets/device/advanced.png


BIN
src/assets/device/alarm.png


BIN
src/assets/device/alarmClock_Add.png


BIN
src/assets/device/baseMssage.png


BIN
src/assets/device/currency1.png


BIN
src/assets/device/currency2.png


BIN
src/assets/device/debug.png


BIN
src/assets/device/deviceSelect.png


BIN
src/assets/device/diyFlowers/S01.png


BIN
src/assets/device/diyFlowers/S02.png


BIN
src/assets/device/diyFlowers/S03.png


BIN
src/assets/device/diyFlowers/S04.png


BIN
src/assets/device/diyFlowers/S05.png


BIN
src/assets/device/diyFlowers/S06.png


+ 0 - 0
src/assets/device/diyFlowers/S07.png


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