فهرست منبع

:rocket: 贵彩商城平台端

Twelve615 1 سال پیش
کامیت
632cad1756
100فایلهای تغییر یافته به همراه6811 افزوده شده و 0 حذف شده
  1. 14 0
      .editorconfig
  2. 16 0
      .env.development
  3. 7 0
      .env.production
  4. 6 0
      .env.staging
  5. 7 0
      .eslintignore
  6. 396 0
      .eslintrc.js
  7. 23 0
      .gitignore
  8. 22 0
      .prettierignore
  9. 35 0
      .prettierrc.js
  10. 5 0
      .travis.yml
  11. 21 0
      LICENSE
  12. 18 0
      README.ZBKJ.md
  13. 295 0
      README.md
  14. 10 0
      babel.config.js
  15. 35 0
      build/index.js
  16. 24 0
      jest.config.js
  17. 9 0
      jsconfig.json
  18. 117 0
      package.json
  19. 26 0
      plop-templates/component/index.hbs
  20. 55 0
      plop-templates/component/prompt.js
  21. 16 0
      plop-templates/store/index.hbs
  22. 62 0
      plop-templates/store/prompt.js
  23. 9 0
      plop-templates/utils.js
  24. 26 0
      plop-templates/view/index.hbs
  25. 55 0
      plop-templates/view/prompt.js
  26. 9 0
      plopfile.js
  27. 5 0
      postcss.config.js
  28. BIN
      public/favicon.ico
  29. BIN
      public/favicon.png
  30. 23 0
      public/index.html
  31. 38 0
      public/preview.html
  32. 230 0
      public/static/tinymce4.7.5/langs/zh_CN.js
  33. 138 0
      public/static/tinymce4.7.5/plugins/codesample/css/prism.css
  34. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif
  35. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif
  36. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif
  37. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif
  38. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif
  39. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif
  40. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif
  41. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif
  42. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif
  43. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif
  44. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif
  45. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif
  46. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif
  47. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif
  48. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif
  49. BIN
      public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif
  50. 154 0
      public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css
  51. 0 0
      public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css
  52. 0 0
      public/static/tinymce4.7.5/skins/lightgray/content.min.css
  53. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff
  54. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot
  55. 27 0
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg
  56. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf
  57. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff
  58. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot
  59. 131 0
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg
  60. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf
  61. BIN
      public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff
  62. BIN
      public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif
  63. BIN
      public/static/tinymce4.7.5/skins/lightgray/img/loader.gif
  64. BIN
      public/static/tinymce4.7.5/skins/lightgray/img/object.gif
  65. BIN
      public/static/tinymce4.7.5/skins/lightgray/img/trans.gif
  66. 0 0
      public/static/tinymce4.7.5/skins/lightgray/skin.min.css
  67. 0 0
      public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map
  68. 1 0
      public/static/tinymce4.7.5/tinymce.min.js
  69. 12 0
      src/App.vue
  70. 168 0
      src/api/article.js
  71. 24 0
      src/api/authInformation.js
  72. 111 0
      src/api/categoryApi.js
  73. 47 0
      src/api/configTabApi.js
  74. 78 0
      src/api/dashboard.js
  75. 167 0
      src/api/depart.js
  76. 67 0
      src/api/distribution.js
  77. 168 0
      src/api/finance.js
  78. 173 0
      src/api/logistics.js
  79. 404 0
      src/api/marketing.js
  80. 349 0
      src/api/merchant.js
  81. 317 0
      src/api/order.js
  82. 467 0
      src/api/product.js
  83. 108 0
      src/api/role.js
  84. 24 0
      src/api/roleApi.js
  85. 86 0
      src/api/schedule.js
  86. 207 0
      src/api/sms.js
  87. 22 0
      src/api/system.js
  88. 121 0
      src/api/systemConfig.js
  89. 139 0
      src/api/systemFormConfig.js
  90. 132 0
      src/api/systemGroup.js
  91. 57 0
      src/api/systemGroupData.js
  92. 78 0
      src/api/systemSetting.js
  93. 183 0
      src/api/systemadmin.js
  94. 468 0
      src/api/user.js
  95. 191 0
      src/api/videoChannel.js
  96. 378 0
      src/api/wxApi.js
  97. BIN
      src/assets/401_images/401.gif
  98. BIN
      src/assets/404_images/404.png
  99. BIN
      src/assets/404_images/404_cloud.png
  100. BIN
      src/assets/custom-theme/fonts/element-icons.ttf

+ 14 - 0
.editorconfig

@@ -0,0 +1,14 @@
+# https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false

+ 16 - 0
.env.development

@@ -0,0 +1,16 @@
+# just a flag
+ENV = 'development'
+
+# base api
+# VUE_APP_BASE_API = '/dev-api'
+# VUE_APP_BASE_API = 'http://120.79.86.50:8011/guicai'
+VUE_APP_BASE_API = 'http://127.0.0.1:8011/guicai'
+
+# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
+# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
+# It only does one thing by converting all import() to require().
+# This configuration can significantly increase the speed of hot updates,
+# when you have a large number of pages.
+# Detail:  https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
+
+VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 7 - 0
.env.production

@@ -0,0 +1,7 @@
+# just a flag
+ENV = 'production'
+
+# base api
+# VUE_APP_BASE_API = '/prod-api'
+VUE_APP_BASE_API = 'http://120.79.86.50:8011'
+

+ 6 - 0
.env.staging

@@ -0,0 +1,6 @@
+ENV = 'production'
+
+# base api
+# VUE_APP_BASE_API = '/prod-api'
+VUE_APP_BASE_API = 'http://120.79.86.50:8011'
+

+ 7 - 0
.eslintignore

@@ -0,0 +1,7 @@
+build/*.js
+src/assets
+public
+dist
+src/components/FormGenerator
+src/directive
+src/

+ 396 - 0
.eslintrc.js

@@ -0,0 +1,396 @@
+module.exports = {
+  root: true,
+  parserOptions: {
+    parser: 'babel-eslint',
+    sourceType: 'module'
+  },
+  env: {
+    browser: true,
+    node: true,
+    es6: true,
+  },
+  extends: ['plugin:vue/recommended', 'eslint:recommended'],
+
+  // add your custom rules here
+  //it is base on https://github.com/vuejs/eslint-config-vue
+  rules: {
+    "vue/max-attributes-per-line": [2, {
+      "singleline": 10,
+      "multiline": {
+        "max": 1,
+        "allowFirstLine": false
+      }
+    }],
+    "vue/singleline-html-element-content-newline": "off",
+    "vue/multiline-html-element-content-newline":"off",
+    "vue/name-property-casing": ["error", "PascalCase"],
+    "vue/no-v-html": "off",
+    'accessor-pairs': 2,
+    'arrow-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'block-spacing': [2, 'always'],
+    'brace-style': [2, '1tbs', {
+      'allowSingleLine': true
+    }],
+    'camelcase': [0, {
+      'properties': 'always'
+    }],
+    'comma-dangle': [2, 'never'],
+    'comma-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'comma-style': [2, 'last'],
+    'constructor-super': 2,
+    'curly': [2, 'multi-line'],
+    'dot-location': [2, 'property'],
+    'eol-last': 2,
+    'eqeqeq': ["error", "always", {"null": "ignore"}],
+    'generator-star-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'handle-callback-err': [2, '^(err|error)$'],
+    'indent': [2, 2, {
+      'SwitchCase': 1
+    }],
+    'jsx-quotes': [2, 'prefer-single'],
+    'key-spacing': [2, {
+      'beforeColon': false,
+      'afterColon': true
+    }],
+    'keyword-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'new-cap': [2, {
+      'newIsCap': true,
+      'capIsNew': false
+    }],
+    'new-parens': 2,
+    'no-array-constructor': 2,
+    'no-caller': 2,
+    'no-console': 'off',
+    'no-class-assign': 2,
+    'no-cond-assign': 2,
+    'no-const-assign': 2,
+    'no-control-regex': 0,
+    'no-delete-var': 2,
+    'no-dupe-args': 2,
+    'no-dupe-class-members': 2,
+    'no-dupe-keys': 2,
+    'no-duplicate-case': 2,
+    'no-empty-character-class': 2,
+    'no-empty-pattern': 2,
+    'no-eval': 2,
+    'no-ex-assign': 2,
+    'no-extend-native': 2,
+    'no-extra-bind': 2,
+    'no-extra-boolean-cast': 2,
+    'no-extra-parens': [2, 'functions'],
+    'no-fallthrough': 2,
+    'no-floating-decimal': 2,
+    'no-func-assign': 2,
+    'no-implied-eval': 2,
+    'no-inner-declarations': [2, 'functions'],
+    'no-invalid-regexp': 2,
+    'no-irregular-whitespace': 2,
+    'no-iterator': 2,
+    'no-label-var': 2,
+    'no-labels': [2, {
+      'allowLoop': false,
+      'allowSwitch': false
+    }],
+    'no-lone-blocks': 2,
+    'no-mixed-spaces-and-tabs': 2,
+    'no-multi-spaces': 2,
+    'no-multi-str': 2,
+    'no-multiple-empty-lines': [2, {
+      'max': 1
+    }],
+    'no-native-reassign': 2,
+    'no-negated-in-lhs': 2,
+    'no-new-object': 2,
+    'no-new-require': 2,
+    'no-new-symbol': 2,
+    'no-new-wrappers': 2,
+    'no-obj-calls': 2,
+    'no-octal': 2,
+    'no-octal-escape': 2,
+    'no-path-concat': 2,
+    'no-proto': 2,
+    'no-redeclare': 2,
+    'no-regex-spaces': 2,
+    'no-return-assign': [2, 'except-parens'],
+    'no-self-assign': 2,
+    'no-self-compare': 2,
+    'no-sequences': 2,
+    'no-shadow-restricted-names': 2,
+    'no-spaced-func': 2,
+    'no-sparse-arrays': 2,
+    'no-this-before-super': 2,
+    'no-throw-literal': 2,
+    'no-trailing-spaces': 2,
+    'no-undef': 2,
+    'no-undef-init': 2,
+    'no-unexpected-multiline': 2,
+    'no-unmodified-loop-condition': 2,
+    'no-unneeded-ternary': [2, {
+      'defaultAssignment': false
+    }],
+    'no-unreachable': 2,
+    'no-unsafe-finally': 2,
+    'no-unused-vars': [2, {
+      'vars': 'all',
+      'args': 'none'
+    }],
+    'no-useless-call': 2,
+    'no-useless-computed-key': 2,
+    'no-useless-constructor': 2,
+    'no-useless-escape': 0,
+    'no-whitespace-before-property': 2,
+    'no-with': 2,
+    'one-var': [2, {
+      'initialized': 'never'
+    }],
+    'operator-linebreak': [2, 'after', {
+      'overrides': {
+        '?': 'before',
+        ':': 'before'
+      }
+    }],
+    'padded-blocks': [2, 'never'],
+    'quotes': [2, 'single', {
+      'avoidEscape': true,
+      'allowTemplateLiterals': true
+    }],
+    'semi': [2, 'never'],
+    'semi-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'space-before-blocks': [2, 'always'],
+    'space-before-function-paren': [2, 'never'],
+    'space-in-parens': [2, 'never'],
+    'space-infix-ops': 2,
+    'space-unary-ops': [2, {
+      'words': true,
+      'nonwords': false
+    }],
+    'spaced-comment': [2, 'always', {
+      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
+    }],
+    'template-curly-spacing': [2, 'never'],
+    'use-isnan': 2,
+    'valid-typeof': 2,
+    'wrap-iife': [2, 'any'],
+    'yield-star-spacing': [2, 'both'],
+    'yoda': [2, 'never'],
+    'prefer-const': 2,
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+    'object-curly-spacing': [2, 'always', {
+      objectsInObjects: false
+    }],
+    'array-bracket-spacing': [2, 'never']
+  }
+}
+module.exports = {
+  root: true,
+  parserOptions: {
+    parser: 'babel-eslint',
+    sourceType: 'module'
+  },
+  env: {
+    browser: true,
+    node: true,
+    es6: true,
+  },
+  extends: ['plugin:vue/recommended', 'eslint:recommended'],
+
+  // add your custom rules here
+  //it is base on https://github.com/vuejs/eslint-config-vue
+  rules: {
+    "vue/max-attributes-per-line": [2, {
+      "singleline": 10,
+      "multiline": {
+        "max": 1,
+        "allowFirstLine": false
+      }
+    }],
+    "vue/singleline-html-element-content-newline": "off",
+    "vue/multiline-html-element-content-newline":"off",
+    "vue/name-property-casing": ["error", "PascalCase"],
+    "vue/no-v-html": "off",
+    'accessor-pairs': 2,
+    'arrow-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'block-spacing': [2, 'always'],
+    'brace-style': [2, '1tbs', {
+      'allowSingleLine': true
+    }],
+    'camelcase': [0, {
+      'properties': 'always'
+    }],
+    'comma-dangle': [2, 'never'],
+    'comma-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'comma-style': [2, 'last'],
+    'constructor-super': 2,
+    'curly': [2, 'multi-line'],
+    'dot-location': [2, 'property'],
+    'eol-last': 2,
+    'eqeqeq': ["error", "always", {"null": "ignore"}],
+    'generator-star-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'handle-callback-err': [2, '^(err|error)$'],
+    'indent': [2, 2, {
+      'SwitchCase': 1
+    }],
+    'jsx-quotes': [2, 'prefer-single'],
+    'key-spacing': [2, {
+      'beforeColon': false,
+      'afterColon': true
+    }],
+    'keyword-spacing': [2, {
+      'before': true,
+      'after': true
+    }],
+    'new-cap': [2, {
+      'newIsCap': true,
+      'capIsNew': false
+    }],
+    'new-parens': 2,
+    'no-array-constructor': 2,
+    'no-caller': 2,
+    'no-console': 'off',
+    'no-class-assign': 2,
+    'no-cond-assign': 2,
+    'no-const-assign': 2,
+    'no-control-regex': 0,
+    'no-delete-var': 2,
+    'no-dupe-args': 2,
+    'no-dupe-class-members': 2,
+    'no-dupe-keys': 2,
+    'no-duplicate-case': 2,
+    'no-empty-character-class': 2,
+    'no-empty-pattern': 2,
+    'no-eval': 2,
+    'no-ex-assign': 2,
+    'no-extend-native': 2,
+    'no-extra-bind': 2,
+    'no-extra-boolean-cast': 2,
+    'no-extra-parens': [2, 'functions'],
+    'no-fallthrough': 2,
+    'no-floating-decimal': 2,
+    'no-func-assign': 2,
+    'no-implied-eval': 2,
+    'no-inner-declarations': [2, 'functions'],
+    'no-invalid-regexp': 2,
+    'no-irregular-whitespace': 2,
+    'no-iterator': 2,
+    'no-label-var': 2,
+    'no-labels': [2, {
+      'allowLoop': false,
+      'allowSwitch': false
+    }],
+    'no-lone-blocks': 2,
+    'no-mixed-spaces-and-tabs': 2,
+    'no-multi-spaces': 2,
+    'no-multi-str': 2,
+    'no-multiple-empty-lines': [2, {
+      'max': 1
+    }],
+    'no-native-reassign': 2,
+    'no-negated-in-lhs': 2,
+    'no-new-object': 2,
+    'no-new-require': 2,
+    'no-new-symbol': 2,
+    'no-new-wrappers': 2,
+    'no-obj-calls': 2,
+    'no-octal': 2,
+    'no-octal-escape': 2,
+    'no-path-concat': 2,
+    'no-proto': 2,
+    'no-redeclare': 2,
+    'no-regex-spaces': 2,
+    'no-return-assign': [2, 'except-parens'],
+    'no-self-assign': 2,
+    'no-self-compare': 2,
+    'no-sequences': 2,
+    'no-shadow-restricted-names': 2,
+    'no-spaced-func': 2,
+    'no-sparse-arrays': 2,
+    'no-this-before-super': 2,
+    'no-throw-literal': 2,
+    'no-trailing-spaces': 2,
+    'no-undef': 2,
+    'no-undef-init': 2,
+    'no-unexpected-multiline': 2,
+    'no-unmodified-loop-condition': 2,
+    'no-unneeded-ternary': [2, {
+      'defaultAssignment': false
+    }],
+    'no-unreachable': 2,
+    'no-unsafe-finally': 2,
+    'no-unused-vars': [2, {
+      'vars': 'all',
+      'args': 'none'
+    }],
+    'no-useless-call': 2,
+    'no-useless-computed-key': 2,
+    'no-useless-constructor': 2,
+    'no-useless-escape': 0,
+    'no-whitespace-before-property': 2,
+    'no-with': 2,
+    'one-var': [2, {
+      'initialized': 'never'
+    }],
+    'operator-linebreak': [2, 'after', {
+      'overrides': {
+        '?': 'before',
+        ':': 'before'
+      }
+    }],
+    'padded-blocks': [2, 'never'],
+    'quotes': [2, 'single', {
+      'avoidEscape': true,
+      'allowTemplateLiterals': true
+    }],
+    'semi': [2, 'never'],
+    'semi-spacing': [2, {
+      'before': false,
+      'after': true
+    }],
+    'space-before-blocks': [2, 'always'],
+    'space-before-function-paren': [2, 'never'],
+    'space-in-parens': [2, 'never'],
+    'space-infix-ops': 2,
+    'space-unary-ops': [2, {
+      'words': true,
+      'nonwords': false
+    }],
+    'spaced-comment': [2, 'always', {
+      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
+    }],
+    'template-curly-spacing': [2, 'never'],
+    'use-isnan': 2,
+    'valid-typeof': 2,
+    'wrap-iife': [2, 'any'],
+    'yield-star-spacing': [2, 'both'],
+    'yoda': [2, 'never'],
+    'prefer-const': 2,
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+    'object-curly-spacing': [2, 'always', {
+      objectsInObjects: false
+    }],
+    'array-bracket-spacing': [2, 'never']
+  }
+}

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+yarn.lock

+ 22 - 0
.prettierignore

@@ -0,0 +1,22 @@
+.DS_Store
+node_modules/
+dist/
+public/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+**/*.log
+
+tests/**/coverage/
+tests/e2e/reports
+selenium-debug.log
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+*.md

+ 35 - 0
.prettierrc.js

@@ -0,0 +1,35 @@
+module.exports = {
+  // 一行最多 120 字符
+  printWidth: 120,
+  // 使用 2 个空格缩进
+  tabWidth: 2,
+  // 不使用 tab 缩进,而使用空格
+  useTabs: false,
+  // 行尾需要有分号
+  semi: true,
+  // 使用单引号代替双引号
+  singleQuote: true,
+  // 对象的 key 仅在必要时用引号
+  quoteProps: 'as-needed',
+  // jsx 不使用单引号,而使用双引号
+  jsxSingleQuote: false,
+  // 末尾使用逗号
+  trailingComma: 'all',
+  // 大括号内的首尾需要空格 { foo: bar }
+  bracketSpacing: true,
+  // 箭头函数,只有一个参数的时候,也需要括号
+  arrowParens: 'always',
+  // 每个文件格式化的范围是文件的全部内容
+  rangeStart: 0,
+  rangeEnd: Infinity,
+  // 不需要写文件开头的 @prettier
+  requirePragma: false,
+  // 不需要自动在文件开头插入 @prettier
+  insertPragma: false,
+  // 使用默认的折行标准
+  proseWrap: 'preserve',
+  // 根据显示样式决定 html 要不要折行
+  htmlWhitespaceSensitivity: 'css',
+  // 换行符使用 lf
+  endOfLine: 'lf',
+};

+ 5 - 0
.travis.yml

@@ -0,0 +1,5 @@
+language: node_js
+node_js: 10
+script: npm run test
+notifications:
+  email: false

+ 21 - 0
LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-present PanJiaChen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 18 - 0
README.ZBKJ.md

@@ -0,0 +1,18 @@
+公用组件
+无限极分类组件 src/components/Category
+使用范围:菜单,文章等各种分类配置数据
+
+表单生成组件
+https://github.com/JakHuang/form-generator
+
+json渲染表单以及是否需要编辑数据回填的功能以下为例
+示例:src/views/maintain/devconfig/combineEdit.vue
+
+
+<parser v-if="formConf.fields.length > 0" :isEdit="isCreate === 1" :form-conf="formConf" :formEditData="editData" @submit="handlerSubmit" />
+注意:设置单选按钮的值时需要带上单引号,要不渲染待编辑数据时不会自动选中
+
+提示:如果不需要每次刷新页面都弹出二维码,请在src/layout/index.vue中注释或者删除15行代码。
+```
+<div class="open-image" @click="clear" v-if="openImage"><img src="@/assets/imgs/pc1.png" alt=""></div>
+```

+ 295 - 0
README.md

@@ -0,0 +1,295 @@
+#  Admin
+## 开发规范
+统一使用ES6 语法
+方法注释
+/*
+* th => 表头
+* data => 数据
+* fileName => 文件名
+* fileType => 文件类型
+* sheetName => sheet页名
+*/
+export default function toExcel ({ th, data, fileName, fileType, sheetName }) 
+行注释 //
+
+### 命名
+
+页面目录 文件夹命名格式骆驼式命名法,例如:用户列表 userList 
+例如:商品模块
+store 商品
+    ├─ store 商品管理
+        ├─index.vue 首页
+        ├─ creatStore  新建商品
+            ├─ index.vue
+        ├─ sort 商品分类
+            ├─ index.vue
+        ├─storeAttr 商品规格
+            ├─ index.vue
+        ├─storeComment 商品评论
+            ├─ index.vue    
+
+页面命名、组建、文件夹 命名格式小驼峰命名法,例如:用户列表 userList
+
+类名函数命名 大驼峰式 例如:addUser
+变量命名 小驼峰式 例如:user 或者 userInfo
+常量 采用全大些下划线命名 例如:VUE_APP_API_URl
+
+### 文件管理规范
+views 页面模块必须件文件夹区分
+api 接口一个模块一个文件
+组建 一个组建一个文件夹
+plugins 插件一个插件一个文件夹
+vuex 路由状态管理,一个模块在modules 中建一个文件夹
+router 一个模块一个模块在modules 中建一个文件夹
+style 样式尽量采用iView自带组建,common.less 系统通用样式不要轻易动
+自定义通用样式 style.less,每次添加必须加注释,页面独立样式在在页面内写,后缀less 格式
+组建样式 styles 中添加文件夹 composents 对应components 目录新建样式文件
+utils 自定义工具js 独立命名,一般不用新建文件夹
+
+## 模块命名
+~~~
+├─ login 登录
+├─ dashboard 首页
+├─ store 商品管理
+├─ order 系统订单管理
+├─ distribution 分销
+├─ user 用户管理
+├─ content 内容管理
+├─ appSetting 各个应用模块功能管理公众号、小程序、支付宝、百度小程序、今日头条小程序 
+├─ marketing 营销管理 优惠劵 积分 秒杀
+├─ sms 设置 短信设置
+├─ systemSetting 设置 管理员权限 系统设置 物流设置
+├─ maintain 维护 配置分类 组合数据 表单配置
+├─ error-page 错误页
+
+~~~
+## 目录结构
+主要目录结构及说明:
+~~~
+├── public                         # 静态资源
+│   ├── favicon.ico                # favicon图标
+│   └── index.html                 # html 模板
+├── src                            # 源代码
+│   ├── api                        # 所有请求
+│   │    └──user.js                # 有关登录/用户的接口
+│   │    └──article.js             # 有关内容的接口
+│   │    └──categoryApi.js         # 有关配置的接口 
+│   │    └──configTabApi.js        # 有关配置分类的接口
+│   │    └──dashboard.js           # 有关控制台的接口
+│   │    └──distribution.js        # 有关分销的接口
+│   │    └──logistics.js           # 有关城市数据、物流配置的接口
+│   │    └──marketing.js           # 有关优惠券、签到配置的接口
+│   │    └──order.js               # 有关订单的接口
+│   │    └──role.js                # 有关权限的接口
+│   │    └──roleApi.js             # 有关菜单的接口
+│   │    └──schedule.js            # 有关定时任务的接口
+│   │    └──sms.js                 # 有关短信的接口
+│   │    └──product.js             # 有关商品的接口
+│   │    └──system.js              # 有关协议的接口
+│   │    └──systemadmin.js         # 有关管理员的接口
+│   │    └──systemConfig.js        # 有关系统配置的接口
+│   │    └──systemFormConfig.js    # 有关表单配置的接口
+│   │    └──systemGroup.js         # 有关组合数据的接口
+│   │    └──systemSetting.js       # 有关上传文件的接口
+│   │    └──user.js                # 有关用户的接口
+│   │    └──videoChannel.js        # 有关视频号的接口
+│   │    └──wxApi.js               # 有关微信的接口
+│   ├── assets                 # 图片、svg 等静态资源
+│   ├── components            # 公共组件
+│   │    └──articleList       # 文章列表
+│   │    └──base              # 公共组件
+│   │    └──Breadcrumb        # 头部标题标签
+│   │    └──cards             # 统计小方块
+│   │    └──echartsNew        # 统计图
+│   │    └──Category          # 商品分类、文字分类 
+│   │    └──FormGenerator     # 表单配置
+│   │    └──goodsList         # 商品列表
+│   │    └──Hamburger         # 导航收缩组件
+│   │    └──HeaderSearch      # 导航搜索组件
+│   │    └──linkaddress       # 页面设计移动端页面路由
+│   │    └──merchantName      # 商户名称搜索组件
+│   │    └──OrderDetail       # 订单详情
+│   │    └──RightPanel        # 右侧设置按钮,设置导航相关
+│   │    └──Screenfull        # 全屏
+│   │    └──SvgIcon           # svg图标 
+│   │    └──Tinymce           # 富文本编辑器
+│   │    └──TopNav            # 顶部一级导航
+│   │    └──ThemePicker       # 右侧设置按钮,设置组题颜色
+│   │    └──Upload            # 上传文件组件
+│   │    └──UploadExcel       # 下载Excel
+│   │    └──userList          # 用户列表
+│   ├── layouts               # 导航布局
+│   │    ├──index             # 主页面
+│   │    ├──components        # 导航组件
+│   │        └──copyright     # 脚部版权信息
+│   │        └──Settings      # 右边小按钮,设置导航等
+│   │        └──Sidebar       # 侧边导航
+│   │        └──TagsView      # tab标签页导航
+│   │        └──Navbar        # 头部导航
+│   │        └──AppMain       # 导航路由
+│   │        └──index.js      # 组件引用
+│   │    └──mixins            # 自适应大小
+│   ├── libs                  # 公共js方法
+│   │    └──settingMer        # 配置请求地址
+│   │    └──dialog            # 移动端吐丝弹窗
+│   │    └──index.js          # 配置全局使用插件
+│   │    └──modal-icon.js           # 图标库插件
+│   │    └──modal-parserFrom.js     # 自定义表单弹窗插件
+│   │    └──modal-sure.js           # 确定弹窗插件
+│   │    └──timeOptions.js          # 当前时间日期选择器特有的选项
+│   │    └──wechat.js               # 微信相关
+│   │    └──yearOptions.js          # 当前年份选择器特有的选项
+│   ├── views                 # 所有页面
+│   │    └──login                    # 登录
+│   │         └──index               # 登录
+│   │    └──dashboard                # 首页
+│   │    └──product                  # 商品
+│   │         └──index               # 添加列表
+│   │         └──info                # 商品详情
+│   │         └──brand               # 品牌列表
+│   │         └──category            # 商品分类
+│   │         └──guarantee           # 保障服务
+│   │         └──comment             # 商品评论
+│   │    └──order                    # 订单管理
+│   │         └──index               # 订单列表
+│   │         └──refund              # 退款单
+│   │    └──marketing                # 营销
+│   │         └──integral            # 积分
+│   │         └──sign                # 签到
+│   │    └──systemSetting            # 设置
+│   │         └──administratorAuthority     # 管理权限
+│   │              └──adminList      # 管理员列表
+│   │              └──identityManager# 身份管理
+│   │              └──permissionRules# 权限规则
+│   │         └──agreement           # 协议管理
+│   │         └──setting             # 平台设置
+│   │         └──design              # 页面设置
+│   │         └──notification        # 消息通知
+│   │    └──application              # 应用 小程序 公众号设置
+│   │    └──content                  # 内容
+│   │         └──article             # 文章管理
+│   │         └──articleclass        # 文章分类
+│   │    └──datas                    # 统计数据
+│   │    └──user                     # 用户
+│   │         └──list                # 用户列表
+│   │         └──level               # 用户等级
+│   │         └──label               # 用户标签
+│   │    └──videoChannel             # 视频号管理
+│   │         └──draftList           # 待审核列表
+│   │         └──apply               # 申请接入
+│   │         └──videoList           # 商品列表
+│   │         └──weChatcategoryAndBrand # 微信商品类目
+│   │    └──distribution             # 分销设置
+│   │    └──maintain                 # 维护
+│   │         └──devconfig           # 组合数据
+│   │         └──formConfig          # 表单配置
+│   │         └──logistics           # 物流设置
+│   │         └──picture             # 素材管理
+│   │         └──user                # 个人中心
+│   │         └──schedule            # 定时任务管理
+│   │         └──sensitiveList       # 敏感日志操作
+│   │    └──merchant                 # 商户管理
+│   │         └──application         # 商户入驻申请
+│   │         └──classify            # 商户分类
+│   │         └──list                # 商户列表
+│   │         └──system              # 商户菜单管理
+│   │         └──type                # 店铺类型
+│   │    └──financial                # 财务
+│   │         └──capitalFlow         # 资金流水
+│   │         └──closingSetting      # 商户结算设置
+│   │         └──statement           # 账单管理
+│   │         └──merchantClosing     # 商户结算
+│   │         └──userClosing         # 用户结算
+│   │    └──onePass                  # 一号通管理
+│   │         └──smsConfig           # 一号通列表
+│   │         └──smsPay              # 套餐购买
+│   │         └──smsTemplate         # 短信模板
+│   │    └──error-page               # 错误页
+│   │         └──404                 # 错误页404
+│   │         └──403                 # 错误页403
+│   ├── filters                      # 过滤器
+│   ├── router                       # 路由配置
+│   │    └──modules                  # 页面路由模块
+│   │         └──content.js          # 有关内容 文章
+│   │         └──user.js             # 有关用户
+│   │         └──application.js      # 有关应用
+│   │         └──marketing.js        # 有关积分、签到
+│   │         └──onePass.js          # 有关一号通
+│   │         └──distribution.js     # 有关分销
+│   │         └──order.js            # 有关订单
+│   │         └──finance.js          # 有关财务
+│   │         └──product.js          # 有关商品
+│   │         └──maintain.js         # 有关维护
+│   │         └──operation.js        # 有关设置
+│   │         └──videoChannel.js     # 有关视频号
+│   │    └──index.js                 # 路由的汇总
+│   ├── store                        # Vuex 状态管理
+│   ├── utils                        # 全局公用方法
+│   │    └──auth.js                  # Cookies管理
+│   │    └──request.js               # 请求封装
+│   │    └──settingMer.js            # 请求地址配置
+│   │    └──ZBKJIutil.js             # 公共函数工具
+│   │    └──validate.js              # 公共教校验工具
+│   │    └──parsing.js               # 通用js方法封装工具
+│   │    └──constants.js             # 全局静态变量工具
+│   │    └──clipboard.js             # 粘贴复制工具
+│   │    └──permission.js            # 权限判断
+│   ├── styles                       # 样式管理
+│   ├── permission.js                # 路由拦截
+│   ├── main.js                      # 入口文件 加载组件 初始化等
+│   └── App.vue                      # 入口页面
+├── tests                      # 测试
+├── .env.xxx                   # 环境变量配置
+├── .eslintrc.js               # eslint 配置项
+├── .babelrc                   # babel-loader 配置
+├── .travis.yml                # 自动化CI配置
+├── vue.config.js              # vue-cli 配置
+├── postcss.config.js          # postcss 配置
+└── package.json               # package.json
+
+
+~~~
+## 开发
+
+```bash
+
+
+# 进入项目目录
+cd ##
+
+# 安装依赖
+npm install
+
+# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
+npm install --registry=https://registry.npm.taobao.org
+
+# 启动服务
+npm run dev
+```
+
+浏览器访问 http://localhost:9527
+
+## 发布
+
+```bash
+# 构建测试环境
+npm run build:stage
+
+# 构建生产环境
+npm run build:prod
+```
+
+## 其它
+
+```bash
+# 预览发布环境效果
+npm run preview
+
+# 预览发布环境效果 + 静态资源分析
+npm run preview -- --report
+
+# 代码格式检查并自动修复
+npm run prettier
+```
+
+

+ 10 - 0
babel.config.js

@@ -0,0 +1,10 @@
+module.exports = {
+  presets: [
+    ['@vue/app',
+      {
+        'useBuiltIns': 'entry',
+        polyfills: ['es6.promise', 'es6.symbol']
+      }
+    ]
+  ]
+}

+ 35 - 0
build/index.js

@@ -0,0 +1,35 @@
+const { run } = require('runjs')
+const chalk = require('chalk')
+const config = require('../vue.config.js')
+const rawArgv = process.argv.slice(2)
+const args = rawArgv.join(' ')
+
+if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
+  const report = rawArgv.includes('--report')
+
+  run(`vue-cli-service build ${args}`)
+
+  const port = 9526
+  const publicPath = config.publicPath
+
+  var connect = require('connect')
+  var serveStatic = require('serve-static')
+  const app = connect()
+
+  app.use(
+    publicPath,
+    serveStatic('./dist', {
+      index: ['index.html', '/']
+    })
+  )
+
+  app.listen(port, function () {
+    console.log(chalk.green(`> Preview at  http://localhost:${port}${publicPath}`))
+    if (report) {
+      console.log(chalk.green(`> Report at  http://localhost:${port}${publicPath}report.html`))
+    }
+
+  })
+} else {
+  run(`vue-cli-service build ${args}`)
+}

+ 24 - 0
jest.config.js

@@ -0,0 +1,24 @@
+module.exports = {
+  moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
+  transform: {
+    '^.+\\.vue$': 'vue-jest',
+    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
+      'jest-transform-stub',
+    '^.+\\.jsx?$': 'babel-jest'
+  },
+  moduleNameMapper: {
+    '^@/(.*)$': '<rootDir>/src/$1'
+  },
+  snapshotSerializers: ['jest-serializer-vue'],
+  testMatch: [
+    '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
+  ],
+  collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
+  coverageDirectory: '<rootDir>/tests/unit/coverage',
+  // 'collectCoverage': true,
+  'coverageReporters': [
+    'lcov',
+    'text-summary'
+  ],
+  testURL: 'http://localhost/'
+}

+ 9 - 0
jsconfig.json

@@ -0,0 +1,9 @@
+{ 
+  "compilerOptions": {
+    "baseUrl": "./",
+    "paths": {
+        "@/*": ["src/*"]
+    }
+  },
+  "exclude": ["node_modules", "dist"]
+}

+ 117 - 0
package.json

@@ -0,0 +1,117 @@
+{
+  "name": "webpc-admin",
+  "version": "4.2.1",
+  "description": "",
+  "author": "",
+  "license": "MIT",
+  "scripts": {
+    "dev": "vue-cli-service serve --open",
+    "build:prod": "vue-cli-service build",
+    "build:stage": "vue-cli-service build --mode staging",
+    "preview": "node build/index.js --preview",
+    "prettier:comment": "自动格式化当前目录下的所有文件",
+    "prettier": "prettier --write .",
+    "lint": "eslint --fix --ext .js,.vue src",
+    "test:unit": "jest --clearCache && vue-cli-service test:unit",
+    "test:ci": "npm run lint && npm run test:unit",
+    "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
+    "new": "plop"
+  },
+  "husky": {
+    "hooks": {
+      "pre-commit": "lint-staged"
+    }
+  },
+  "lint-staged": {
+    "src/**/*.{js,vue}": [
+      "eslint --fix",
+      "git add"
+    ]
+  },
+  "keywords": [
+    " Java"
+  ],
+  "repository": {
+    "type": "gitee",
+    "url": ""
+  },
+  "bugs": {
+    "url": ""
+  },
+  "dependencies": {
+    "@babel/parser": "^7.9.6",
+    "@riophae/vue-treeselect": "0.4.0",
+    "async-validator": "^1.11.2",
+    "axios": "^0.24.0",
+    "babel-polyfill": "^6.26.0",
+    "clipboard": "^2.0.4",
+    "core-js": "^2.6.11",
+    "crypto-js": "^4.1.1",
+    "echarts": "4.2.1",
+    "element-ui": "2.15.6",
+    "file-saver": "2.0.1",
+    "fuse.js": "3.4.4",
+    "js-cookie": "2.2.0",
+    "jsonlint": "1.6.3",
+    "jszip": "3.2.1",
+    "mpvue-calendar": "^2.3.7",
+    "normalize.css": "7.0.0",
+    "nprogress": "0.2.0",
+    "path-to-regexp": "2.4.0",
+    "qrcodejs2": "^0.0.2",
+    "sass": "1.26.2",
+    "sass-loader": "^7.2.0",
+    "screenfull": "4.2.0",
+    "script-loader": "0.7.2",
+    "throttle-debounce": "^2.1.0",
+    "vconsole": "^3.3.2",
+    "vue": "2.6.10",
+    "vue-awesome-swiper": "^3.1.3",
+    "vue-cropper": "^0.5.8",
+    "vue-echarts": "^4.0.3",
+    "vue-router": "3.0.2",
+    "vue-ydui": "^1.2.6",
+    "vuedraggable": "^2.20.0",
+    "vuex": "3.1.0",
+    "wechat-jssdk": "^5.0.4",
+    "xlsx": "0.14.1"
+  },
+  "devDependencies": {
+    "@babel/core": "7.0.0",
+    "@babel/register": "7.0.0",
+    "@vue/cli-plugin-babel": "3.5.3",
+    "@vue/cli-plugin-eslint": "^3.9.1",
+    "@vue/cli-plugin-unit-jest": "3.5.3",
+    "@vue/cli-service": "3.5.3",
+    "@vue/test-utils": "1.0.0-beta.29",
+    "babel-core": "7.0.0-bridge.0",
+    "babel-jest": "23.6.0",
+    "chalk": "2.4.2",
+    "chokidar": "^3.1.1",
+    "connect": "3.6.6",
+    "eslint": "5.15.3",
+    "eslint-plugin-vue": "5.2.2",
+    "prettier": "^2.5.1",
+    "html-webpack-plugin": "3.2.0",
+    "husky": "1.3.1",
+    "lint-staged": "8.1.5",
+    "mockjs": "1.0.1-beta3",
+    "plop": "2.3.0",
+    "runjs": "^4.3.2",
+    "script-loader": "^0.7.2",
+    "script-ext-html-webpack-plugin": "2.1.3",
+    "serve-static": "^1.13.2",
+    "svg-sprite-loader": "4.1.3",
+    "svgo": "1.2.0",
+    "vue-lazyload": "^1.3.3",
+    "vue-template-compiler": "2.6.10"
+  },
+  "engines": {
+    "node": ">=8.9",
+    "npm": ">= 3.0.0"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
+}

+ 26 - 0
plop-templates/component/index.hbs

@@ -0,0 +1,26 @@
+{{#if template}}
+<template>
+  <div />
+</template>
+{{/if}}
+
+{{#if script}}
+<script>
+export default {
+  name: '{{ properCase name }}',
+  props: {},
+  data() {
+    return {}
+  },
+  created() {},
+  mounted() {},
+  methods: {}
+}
+</script>
+{{/if}}
+
+{{#if style}}
+<style lang="scss" scoped>
+
+</style>
+{{/if}}

+ 55 - 0
plop-templates/component/prompt.js

@@ -0,0 +1,55 @@
+const { notEmpty } = require('../utils.js')
+
+module.exports = {
+  description: 'generate vue component',
+  prompts: [{
+    type: 'input',
+    name: 'name',
+    message: 'component name please',
+    validate: notEmpty('name')
+  },
+  {
+    type: 'checkbox',
+    name: 'blocks',
+    message: 'Blocks:',
+    choices: [{
+      name: '<wxTemplate>',
+      value: 'template',
+      checked: true
+    },
+    {
+      name: '<script>',
+      value: 'script',
+      checked: true
+    },
+    {
+      name: 'style',
+      value: 'style',
+      checked: true
+    }
+    ],
+    validate(value) {
+      if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
+        return 'Components require at least a <script> or <wxTemplate> tag.'
+      }
+      return true
+    }
+  }
+  ],
+  actions: data => {
+    const name = '{{properCase name}}'
+    const actions = [{
+      type: 'add',
+      path: `src/components/${name}/index.vue`,
+      templateFile: 'plop-templates/component/index.hbs',
+      data: {
+        name: name,
+        template: data.blocks.includes('template'),
+        script: data.blocks.includes('script'),
+        style: data.blocks.includes('style')
+      }
+    }]
+
+    return actions
+  }
+}

+ 16 - 0
plop-templates/store/index.hbs

@@ -0,0 +1,16 @@
+{{#if state}}
+const state = {}
+{{/if}}
+
+{{#if mutations}}
+const mutations = {}
+{{/if}}
+
+{{#if actions}}
+const actions = {}
+{{/if}}
+
+export default {
+  namespaced: true,
+  {{options}}
+}

+ 62 - 0
plop-templates/store/prompt.js

@@ -0,0 +1,62 @@
+const { notEmpty } = require('../utils.js')
+
+module.exports = {
+  description: 'generate store',
+  prompts: [{
+    type: 'input',
+    name: 'name',
+    message: 'store name please',
+    validate: notEmpty('name')
+  },
+  {
+    type: 'checkbox',
+    name: 'blocks',
+    message: 'Blocks:',
+    choices: [{
+      name: 'state',
+      value: 'state',
+      checked: true
+    },
+    {
+      name: 'mutations',
+      value: 'mutations',
+      checked: true
+    },
+    {
+      name: 'actions',
+      value: 'actions',
+      checked: true
+    }
+    ],
+    validate(value) {
+      if (!value.includes('state') || !value.includes('mutations')) {
+        return 'store require at least state and mutations'
+      }
+      return true
+    }
+  }
+  ],
+  actions(data) {
+    const name = '{{name}}'
+    const { blocks } = data
+    const options = ['state', 'mutations']
+    const joinFlag = `,
+  `
+    if (blocks.length === 3) {
+      options.push('actions')
+    }
+
+    const actions = [{
+      type: 'add',
+      path: `src/store/modules/${name}.js`,
+      templateFile: 'plop-templates/store/index.hbs',
+      data: {
+        options: options.join(joinFlag),
+        state: blocks.includes('state'),
+        mutations: blocks.includes('mutations'),
+        actions: blocks.includes('actions')
+      }
+    }]
+    return actions
+  }
+}

+ 9 - 0
plop-templates/utils.js

@@ -0,0 +1,9 @@
+exports.notEmpty = name => {
+  return v => {
+    if (!v || v.trim === '') {
+      return `${name} is required`
+    } else {
+      return true
+    }
+  }
+}

+ 26 - 0
plop-templates/view/index.hbs

@@ -0,0 +1,26 @@
+{{#if template}}
+<template>
+  <div />
+</template>
+{{/if}}
+
+{{#if script}}
+<script>
+export default {
+  name: '{{ properCase name }}',
+  props: {},
+  data() {
+    return {}
+  },
+  created() {},
+  mounted() {},
+  methods: {}
+}
+</script>
+{{/if}}
+
+{{#if style}}
+<style lang="scss" scoped>
+
+</style>
+{{/if}}

+ 55 - 0
plop-templates/view/prompt.js

@@ -0,0 +1,55 @@
+const { notEmpty } = require('../utils.js')
+
+module.exports = {
+  description: 'generate a view',
+  prompts: [{
+    type: 'input',
+    name: 'name',
+    message: 'view name please',
+    validate: notEmpty('name')
+  },
+  {
+    type: 'checkbox',
+    name: 'blocks',
+    message: 'Blocks:',
+    choices: [{
+      name: '<wxTemplate>',
+      value: 'template',
+      checked: true
+    },
+    {
+      name: '<script>',
+      value: 'script',
+      checked: true
+    },
+    {
+      name: 'style',
+      value: 'style',
+      checked: true
+    }
+    ],
+    validate(value) {
+      if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
+        return 'View require at least a <script> or <wxTemplate> tag.'
+      }
+      return true
+    }
+  }
+  ],
+  actions: data => {
+    const name = '{{name}}'
+    const actions = [{
+      type: 'add',
+      path: `src/views/${name}/index.vue`,
+      templateFile: 'plop-templates/view/index.hbs',
+      data: {
+        name: name,
+        template: data.blocks.includes('template'),
+        script: data.blocks.includes('script'),
+        style: data.blocks.includes('style')
+      }
+    }]
+
+    return actions
+  }
+}

+ 9 - 0
plopfile.js

@@ -0,0 +1,9 @@
+const viewGenerator = require('./plop-templates/view/prompt')
+const componentGenerator = require('./plop-templates/component/prompt')
+const storeGenerator = require('./plop-templates/store/prompt.js')
+
+module.exports = function(plop) {
+  plop.setGenerator('view', viewGenerator)
+  plop.setGenerator('component', componentGenerator)
+  plop.setGenerator('store', storeGenerator)
+}

+ 5 - 0
postcss.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  plugins: {
+    autoprefixer: {}
+  }
+}

BIN
public/favicon.ico


BIN
public/favicon.png


+ 23 - 0
public/index.html

@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="renderer" content="webkit">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+    <meta name="author" content="" />
+    <meta name="copyright" content="" />
+    <link rel="icon" href="<%= BASE_URL %>favicon.png">
+    <title><%= webpackConfig.name %></title>
+  </head>
+  <body>
+    <script src="<%= BASE_URL %>static/tinymce4.7.5/tinymce.min.js"></script>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+    <div class="pre-loader" id="pre-loader">
+      <div class="inner one"></div>
+      <div class="inner two"></div>
+      <div class="inner three"></div>
+    </div>
+  </body>
+</html>

+ 38 - 0
public/preview.html

@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="zh">
+  <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>form-generator-preview</title>
+    <link href="https://cdn.bootcss.com/element-ui/2.12.0/theme-chalk/index.css" rel="stylesheet">
+    <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
+    <script src="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js"></script>
+    <!-- <script src="https://cdn.bootcss.com/axios/0.19.0/axios.min.js"></script> -->
+    <script src="https://cdn.bootcss.com/element-ui/2.12.0/index.js"></script>
+    <style>
+      body{
+        margin: 0;
+        padding: 0;
+        overflow-x: hidden;
+        -moz-osx-font-smoothing: grayscale;
+        -webkit-font-smoothing: antialiased;
+        text-rendering: optimizeLegibility;
+        height: calc(100vh - 33px);
+        padding: 12px;
+        box-sizing: border-box;
+        font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
+      }
+      input, textarea{
+        font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
+      }
+    </style>
+  </head>
+  <body>
+    <noscript>
+      <strong>抱歉,javascript被禁用,请开启后重试。</strong>
+    </noscript>
+    <div id="previewApp"></div>
+  </body>
+</html>

+ 230 - 0
public/static/tinymce4.7.5/langs/zh_CN.js

@@ -0,0 +1,230 @@
+tinymce.addI18n('zh_CN',{
+"Cut": "\u526a\u5207",
+"Heading 5": "\u6807\u98985",
+"Header 2": "\u6807\u98982",
+"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\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002",
+"Heading 4": "\u6807\u98984",
+"Div": "Div\u533a\u5757",
+"Heading 2": "\u6807\u98982",
+"Paste": "\u7c98\u8d34",
+"Close": "\u5173\u95ed",
+"Font Family": "\u5b57\u4f53",
+"Pre": "\u9884\u683c\u5f0f\u6587\u672c",
+"Align right": "\u53f3\u5bf9\u9f50",
+"New document": "\u65b0\u6587\u6863",
+"Blockquote": "\u5f15\u7528",
+"Numbered list": "\u7f16\u53f7\u5217\u8868",
+"Heading 1": "\u6807\u98981",
+"Headings": "\u6807\u9898",
+"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
+"Formats": "\u683c\u5f0f",
+"Headers": "\u6807\u9898",
+"Select all": "\u5168\u9009",
+"Header 3": "\u6807\u98983",
+"Blocks": "\u533a\u5757",
+"Undo": "\u64a4\u6d88",
+"Strikethrough": "\u5220\u9664\u7ebf",
+"Bullet list": "\u9879\u76ee\u7b26\u53f7",
+"Header 1": "\u6807\u98981",
+"Superscript": "\u4e0a\u6807",
+"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
+"Font Sizes": "\u5b57\u53f7",
+"Subscript": "\u4e0b\u6807",
+"Header 6": "\u6807\u98986",
+"Redo": "\u91cd\u590d",
+"Paragraph": "\u6bb5\u843d",
+"Ok": "\u786e\u5b9a",
+"Bold": "\u7c97\u4f53",
+"Code": "\u4ee3\u7801",
+"Italic": "\u659c\u4f53",
+"Align center": "\u5c45\u4e2d",
+"Header 5": "\u6807\u98985",
+"Heading 6": "\u6807\u98986",
+"Heading 3": "\u6807\u98983",
+"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
+"Header 4": "\u6807\u98984",
+"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",
+"Underline": "\u4e0b\u5212\u7ebf",
+"Cancel": "\u53d6\u6d88",
+"Justify": "\u4e24\u7aef\u5bf9\u9f50",
+"Inline": "\u6587\u672c",
+"Copy": "\u590d\u5236",
+"Align left": "\u5de6\u5bf9\u9f50",
+"Visual aids": "\u7f51\u683c\u7ebf",
+"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
+"Square": "\u65b9\u5757",
+"Default": "\u9ed8\u8ba4",
+"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
+"Circle": "\u7a7a\u5fc3\u5706",
+"Disc": "\u5b9e\u5fc3\u5706",
+"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
+"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"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",
+"Name": "\u540d\u79f0",
+"Anchor": "\u951a\u70b9",
+"Id": "\u6807\u8bc6\u7b26",
+"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\u7b26\u53f7",
+"Source code": "\u6e90\u4ee3\u7801",
+"Language": "\u8bed\u8a00",
+"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
+"B": "B",
+"R": "R",
+"G": "G",
+"Color": "\u989c\u8272",
+"Right to left": "\u4ece\u53f3\u5230\u5de6",
+"Left to right": "\u4ece\u5de6\u5230\u53f3",
+"Emoticons": "\u8868\u60c5",
+"Robots": "\u673a\u5668\u4eba",
+"Document properties": "\u6587\u6863\u5c5e\u6027",
+"Title": "\u6807\u9898",
+"Keywords": "\u5173\u952e\u8bcd",
+"Encoding": "\u7f16\u7801",
+"Description": "\u63cf\u8ff0",
+"Author": "\u4f5c\u8005",
+"Fullscreen": "\u5168\u5c4f",
+"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
+"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
+"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
+"General": "\u666e\u901a",
+"Advanced": "\u9ad8\u7ea7",
+"Source": "\u5730\u5740",
+"Border": "\u8fb9\u6846",
+"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
+"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
+"Image description": "\u56fe\u7247\u63cf\u8ff0",
+"Style": "\u6837\u5f0f",
+"Dimensions": "\u5927\u5c0f",
+"Insert image": "\u63d2\u5165\u56fe\u7247",
+"Image": "\u56fe\u7247",
+"Zoom in": "\u653e\u5927",
+"Contrast": "\u5bf9\u6bd4\u5ea6",
+"Back": "\u540e\u9000",
+"Gamma": "\u4f3d\u9a6c\u503c",
+"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
+"Resize": "\u8c03\u6574\u5927\u5c0f",
+"Sharpen": "\u9510\u5316",
+"Zoom out": "\u7f29\u5c0f",
+"Image options": "\u56fe\u7247\u9009\u9879",
+"Apply": "\u5e94\u7528",
+"Brightness": "\u4eae\u5ea6",
+"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
+"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
+"Edit image": "\u7f16\u8f91\u56fe\u7247",
+"Color levels": "\u989c\u8272\u5c42\u6b21",
+"Crop": "\u88c1\u526a",
+"Orientation": "\u65b9\u5411",
+"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
+"Invert": "\u53cd\u8f6c",
+"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
+"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
+"Remove link": "\u5220\u9664\u94fe\u63a5",
+"Url": "\u5730\u5740",
+"Text to display": "\u663e\u793a\u6587\u5b57",
+"Anchors": "\u951a\u70b9",
+"Insert link": "\u63d2\u5165\u94fe\u63a5",
+"Link": "\u94fe\u63a5",
+"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
+"None": "\u65e0",
+"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",
+"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
+"Target": "\u6253\u5f00\u65b9\u5f0f",
+"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",
+"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
+"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
+"Media": "\u5a92\u4f53",
+"Alternative source": "\u955c\u50cf",
+"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
+"Insert video": "\u63d2\u5165\u89c6\u9891",
+"Poster": "\u5c01\u9762",
+"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
+"Embed": "\u5185\u5d4c",
+"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",
+"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
+"Replace": "\u66ff\u6362",
+"Next": "\u4e0b\u4e00\u4e2a",
+"Whole words": "\u5168\u5b57\u5339\u914d",
+"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
+"Replace with": "\u66ff\u6362\u4e3a",
+"Find": "\u67e5\u627e",
+"Replace all": "\u5168\u90e8\u66ff\u6362",
+"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
+"Prev": "\u4e0a\u4e00\u4e2a",
+"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
+"Finish": "\u5b8c\u6210",
+"Ignore all": "\u5168\u90e8\u5ffd\u7565",
+"Ignore": "\u5ffd\u7565",
+"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
+"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
+"Rows": "\u884c",
+"Height": "\u9ad8",
+"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
+"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
+"Border color": "\u8fb9\u6846\u989c\u8272",
+"Column group": "\u5217\u7ec4",
+"Row": "\u884c",
+"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
+"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
+"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
+"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
+"Row type": "\u884c\u7c7b\u578b",
+"Insert table": "\u63d2\u5165\u8868\u683c",
+"Body": "\u8868\u4f53",
+"Caption": "\u6807\u9898",
+"Footer": "\u8868\u5c3e",
+"Delete row": "\u5220\u9664\u884c",
+"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
+"Scope": "\u8303\u56f4",
+"Delete table": "\u5220\u9664\u8868\u683c",
+"H Align": "\u6c34\u5e73\u5bf9\u9f50",
+"Top": "\u9876\u90e8\u5bf9\u9f50",
+"Header cell": "\u8868\u5934\u5355\u5143\u683c",
+"Column": "\u5217",
+"Row group": "\u884c\u7ec4",
+"Cell": "\u5355\u5143\u683c",
+"Middle": "\u5782\u76f4\u5c45\u4e2d",
+"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
+"Copy row": "\u590d\u5236\u884c",
+"Row properties": "\u884c\u5c5e\u6027",
+"Table properties": "\u8868\u683c\u5c5e\u6027",
+"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
+"V Align": "\u5782\u76f4\u5bf9\u9f50",
+"Header": "\u8868\u5934",
+"Right": "\u53f3\u5bf9\u9f50",
+"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
+"Cols": "\u5217",
+"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
+"Width": "\u5bbd",
+"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
+"Left": "\u5de6\u5bf9\u9f50",
+"Cut row": "\u526a\u5207\u884c",
+"Delete column": "\u5220\u9664\u5217",
+"Center": "\u5c45\u4e2d",
+"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
+"Insert template": "\u63d2\u5165\u6a21\u677f",
+"Templates": "\u6a21\u677f",
+"Background color": "\u80cc\u666f\u8272",
+"Custom...": "\u81ea\u5b9a\u4e49...",
+"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
+"No color": "\u65e0",
+"Text color": "\u6587\u5b57\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",
+"Words: {0}": "\u5b57\u6570\uff1a{0}",
+"Insert": "\u63d2\u5165",
+"File": "\u6587\u4ef6",
+"Edit": "\u7f16\u8f91",
+"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",
+"Tools": "\u5de5\u5177",
+"View": "\u89c6\u56fe",
+"Table": "\u8868\u683c",
+"Format": "\u683c\u5f0f"
+});

+ 138 - 0
public/static/tinymce4.7.5/plugins/codesample/css/prism.css

@@ -0,0 +1,138 @@
+/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+  color: black;
+  text-shadow: 0 1px white;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  direction: ltr;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+@media print {
+  code[class*="language-"],
+  pre[class*="language-"] {
+    text-shadow: none;
+  }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+  background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: slategray;
+}
+
+.token.punctuation {
+  color: #999;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+  color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+  color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+  color: #a67f59;
+  background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+  color: #07a;
+}
+
+.token.function {
+  color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+  color: #e90;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}
+

BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif


BIN
public/static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif


+ 154 - 0
public/static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css

@@ -0,0 +1,154 @@
+.mce-visualblocks p {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h1 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h2 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h3 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h4 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h5 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks h6 {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks div:not([data-mce-bogus]) {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks section {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks article {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks blockquote {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks address {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks pre {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin-left: 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks figure {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks hgroup {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks aside {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks figcaption {
+  border: 1px dashed #BBB;
+}
+
+.mce-visualblocks ul {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks ol {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
+  background-repeat: no-repeat;
+}
+
+.mce-visualblocks dl {
+  padding-top: 10px;
+  border: 1px dashed #BBB;
+  margin: 0 0 1em 3px;
+  background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
+  background-repeat: no-repeat;
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
public/static/tinymce4.7.5/skins/lightgray/content.inline.min.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
public/static/tinymce4.7.5/skins/lightgray/content.min.css


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 27 - 0
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot


+ 131 - 0
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg

@@ -0,0 +1,131 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe000;" glyph-name="save" d="M896 960h-896v-1024h1024v896l-128 128zM512 832h128v-256h-128v256zM896 64h-768v768h64v-320h576v320h74.978l53.022-53.018v-714.982z" />
+<glyph unicode="&#xe001;" glyph-name="newdocument" d="M903.432 760.57l-142.864 142.862c-31.112 31.112-92.568 56.568-136.568 56.568h-480c-44 0-80-36-80-80v-864c0-44 36-80 80-80h736c44 0 80 36 80 80v608c0 44-25.456 105.458-56.568 136.57zM858.178 715.314c3.13-3.13 6.25-6.974 9.28-11.314h-163.458v163.456c4.34-3.030 8.184-6.15 11.314-9.28l142.864-142.862zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16h480c4.832 0 10.254-0.61 16-1.704v-254.296h254.296c1.094-5.746 1.704-11.166 1.704-16v-608z" />
+<glyph unicode="&#xe002;" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" />
+<glyph unicode="&#xe003;" glyph-name="alignleft" d="M0 896h1024v-128h-1024zM0 704h640v-128h-640zM0 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe004;" glyph-name="aligncenter" d="M0 896h1024v-128h-1024zM192 704h640v-128h-640zM192 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe005;" glyph-name="alignright" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe006;" glyph-name="alignjustify" d="M0 896h1024v-128h-1024zM0 704h1024v-128h-1024zM0 512h1024v-128h-1024zM0 320h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe007;" glyph-name="cut" d="M890.774 250.846c-45.654 45.556-103.728 69.072-157.946 69.072h-29.112l-63.904 64.008 255.62 256.038c63.904 64.010 63.904 192.028 0 256.038l-383.43-384.056-383.432 384.054c-63.904-64.008-63.904-192.028 0-256.038l255.622-256.034-63.906-64.008h-29.114c-54.22 0-112.292-23.518-157.948-69.076-81.622-81.442-92.65-202.484-24.63-270.35 29.97-29.902 70.288-44.494 112.996-44.494 54.216 0 112.29 23.514 157.946 69.072 53.584 53.464 76.742 124 67.084 185.348l65.384 65.488 65.376-65.488c-9.656-61.348 13.506-131.882 67.084-185.348 45.662-45.558 103.732-69.072 157.948-69.072 42.708 0 83.024 14.592 112.994 44.496 68.020 67.866 56.988 188.908-24.632 270.35zM353.024 114.462c-7.698-17.882-19.010-34.346-33.626-48.926-14.636-14.604-31.172-25.918-49.148-33.624-16.132-6.916-32.96-10.568-48.662-10.568-15.146 0-36.612 3.402-52.862 19.612-16.136 16.104-19.52 37.318-19.52 52.288 0 15.542 3.642 32.21 10.526 48.212 7.7 17.884 19.014 34.346 33.626 48.926 14.634 14.606 31.172 25.914 49.15 33.624 16.134 6.914 32.96 10.568 48.664 10.568 15.146 0 36.612-3.4 52.858-19.614 16.134-16.098 19.522-37.316 19.522-52.284 0.002-15.542-3.638-32.216-10.528-48.214zM512.004 293.404c-49.914 0-90.376 40.532-90.376 90.526 0 49.992 40.462 90.52 90.376 90.52s90.372-40.528 90.372-90.52c0-49.998-40.46-90.526-90.372-90.526zM855.272 40.958c-16.248-16.208-37.712-19.612-52.86-19.612-15.704 0-32.53 3.652-48.666 10.568-17.972 7.706-34.508 19.020-49.142 33.624-14.614 14.58-25.926 31.042-33.626 48.926-6.886 15.998-10.526 32.672-10.526 48.212 0 14.966 3.384 36.188 19.52 52.286 16.246 16.208 37.712 19.614 52.86 19.614 15.7 0 32.53-3.654 48.66-10.568 17.978-7.708 34.516-19.018 49.15-33.624 14.61-14.58 25.924-31.042 33.626-48.926 6.884-15.998 10.526-32.67 10.526-48.212-0.002-14.97-3.39-36.186-19.522-52.288z" />
+<glyph unicode="&#xe008;" glyph-name="paste" d="M832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h448l192 192v512h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM832 26.51v101.49h101.49l-101.49-101.49zM960 192h-192v-192h-320v576h512v-384z" />
+<glyph unicode="&#xe009;" glyph-name="searchreplace" d="M64 960h384v-64h-384zM576 960h384v-64h-384zM952 640h-56v256h-256v-256h-256v256h-256v-256h-56c-39.6 0-72-32.4-72-72v-560c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v376h128v-376c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v560c0 39.6-32.4 72-72 72zM348 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM924 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32z" />
+<glyph unicode="&#xe00a;" glyph-name="bullist" d="M384 896h640v-128h-640v128zM384 512h640v-128h-640v128zM384 128h640v-128h-640v128zM0 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 64c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128z" />
+<glyph unicode="&#xe00b;" glyph-name="numlist" d="M384 128h640v-128h-640zM384 512h640v-128h-640zM384 896h640v-128h-640zM192 960v-256h-64v192h-64v64zM128 434v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM256 256v-320h-192v64h128v64h-128v64h128v64h-128v64z" />
+<glyph unicode="&#xe00c;" glyph-name="indent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM0 256v384l256-192z" />
+<glyph unicode="&#xe00d;" glyph-name="outdent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM256 640v-384l-256 192z" />
+<glyph unicode="&#xe00e;" glyph-name="blockquote" d="M225 512c123.712 0 224-100.29 224-224 0-123.712-100.288-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.634-11.636-22.252-24.016-31.83-37.020 11.438 1.8 23.16 2.746 35.104 2.746zM801 512c123.71 0 224-100.29 224-224 0-123.712-100.29-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.636-11.636-22.254-24.016-31.832-37.020 11.44 1.8 23.16 2.746 35.106 2.746z" />
+<glyph unicode="&#xe00f;" glyph-name="undo" d="M761.862-64c113.726 206.032 132.888 520.306-313.862 509.824v-253.824l-384 384 384 384v-248.372c534.962 13.942 594.57-472.214 313.862-775.628z" />
+<glyph unicode="&#xe010;" glyph-name="redo" d="M576 711.628v248.372l384-384-384-384v253.824c-446.75 10.482-427.588-303.792-313.86-509.824-280.712 303.414-221.1 789.57 313.86 775.628z" />
+<glyph unicode="&#xe011;" glyph-name="link" d="M320 256c17.6-17.6 47.274-16.726 65.942 1.942l316.118 316.116c18.668 18.668 19.54 48.342 1.94 65.942s-47.274 16.726-65.942-1.942l-316.116-316.116c-18.668-18.668-19.542-48.342-1.942-65.942zM476.888 284.888c4.56-9.050 6.99-19.16 6.99-29.696 0-17.616-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.382 99.382c-12.248 12.248-18.992 28.694-18.992 46.308s6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994 10.536 0 20.644-2.43 29.696-6.99l65.338 65.338c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-60.67-60.67-60.67-159.948 0-220.618l99.382-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c55.82 55.82 60.238 144.298 13.344 205.344l-65.34-65.34zM978.498 815.116l-99.382 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994s34.060-6.746 46.308-18.994l99.382-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c60.67 60.666 60.67 159.944 0 220.614z" />
+<glyph unicode="&#xe012;" glyph-name="unlink" d="M476.888 284.886c4.56-9.048 6.99-19.158 6.99-29.696 0-17.616-6.744-34.058-18.992-46.308l-163.38-163.38c-12.248-12.248-28.696-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.38 99.38c-12.248 12.25-18.992 28.696-18.992 46.308s6.744 34.060 18.992 46.308l163.38 163.382c12.248 12.246 28.696 18.992 46.308 18.992 10.538 0 20.644-2.43 29.696-6.988l65.338 65.336c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.38-163.382c-60.67-60.67-60.67-159.95 0-220.618l99.38-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.38 163.38c55.82 55.82 60.238 144.298 13.344 205.346l-65.34-65.338zM978.496 815.116l-99.38 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.97-15.166-110.306-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.246 12.248 28.694 18.994 46.306 18.994 17.616 0 34.060-6.746 46.308-18.994l99.38-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.38-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.504l163.38 163.38c60.672 60.666 60.672 159.944 0 220.614zM233.368 681.376l-191.994 191.994 45.256 45.256 191.994-191.994zM384 960h64v-192h-64zM0 576h192v-64h-192zM790.632 214.624l191.996-191.996-45.256-45.256-191.996 191.996zM576 128h64v-192h-64zM832 384h192v-64h-192z" />
+<glyph unicode="&#xe013;" glyph-name="anchor" d="M192 960v-1024l320 320 320-320v1024h-640zM768 90.51l-256 256-256-256v805.49h512v-805.49z" />
+<glyph unicode="&#xe014;" glyph-name="image" d="M0 832v-832h1024v832h-1024zM960 64h-896v704h896v-704zM704 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM896 128h-768l192 512 256-320 128 96z" />
+<glyph unicode="&#xe015;" glyph-name="media" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
+<glyph unicode="&#xe016;" glyph-name="help" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
+<glyph unicode="&#xe017;" glyph-name="code" d="M320 704l-256-256 256-256h128l-256 256 256 256zM704 704h-128l256-256-256-256h128l256 256z" />
+<glyph unicode="&#xe018;" glyph-name="inserttime" d="M512 768c-212.076 0-384-171.922-384-384s171.922-384 384-384c212.074 0 384 171.922 384 384s-171.926 384-384 384zM715.644 180.354c-54.392-54.396-126.716-84.354-203.644-84.354s-149.25 29.958-203.646 84.354c-54.396 54.394-84.354 126.718-84.354 203.646s29.958 149.25 84.354 203.646c54.396 54.396 126.718 84.354 203.646 84.354s149.252-29.958 203.642-84.354c54.402-54.396 84.358-126.718 84.358-203.646s-29.958-149.252-84.356-203.646zM325.93 756.138l-42.94 85.878c-98.874-49.536-179.47-130.132-229.006-229.008l85.876-42.94c40.248 80.336 105.732 145.822 186.070 186.070zM884.134 570.070l85.878 42.938c-49.532 98.876-130.126 179.472-229.004 229.008l-42.944-85.878c80.338-40.248 145.824-105.732 186.070-186.068zM512 576h-64v-192c0-10.11 4.7-19.11 12.022-24.972l-0.012-0.016 160-128 39.976 49.976-147.986 118.39v176.622z" />
+<glyph unicode="&#xe019;" glyph-name="preview" d="M512 640c-209.368 0-395.244-100.556-512-256 116.756-155.446 302.632-256 512-256s395.244 100.554 512 256c-116.756 155.444-302.632 256-512 256zM448 512c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM773.616 254.704c-39.648-20.258-81.652-35.862-124.846-46.376-44.488-10.836-90.502-16.328-136.77-16.328-46.266 0-92.282 5.492-136.768 16.324-43.194 10.518-85.198 26.122-124.846 46.376-63.020 32.202-120.222 76.41-167.64 129.298 47.418 52.888 104.62 97.1 167.64 129.298 32.336 16.522 66.242 29.946 101.082 40.040-19.888-30.242-31.468-66.434-31.468-105.336 0-106.040 85.962-192 192-192s192 85.96 192 192c0 38.902-11.582 75.094-31.466 105.34 34.838-10.096 68.744-23.52 101.082-40.042 63.022-32.198 120.218-76.408 167.638-129.298-47.42-52.886-104.618-97.1-167.638-129.296zM860.918 716.278c-108.72 55.554-226.112 83.722-348.918 83.722s-240.198-28.168-348.918-83.722c-58.772-30.032-113.732-67.904-163.082-112.076v-109.206c55.338 58.566 120.694 107.754 192.194 144.29 99.62 50.904 207.218 76.714 319.806 76.714s220.186-25.81 319.804-76.716c71.502-36.536 136.858-85.724 192.196-144.29v109.206c-49.35 44.174-104.308 82.046-163.082 112.078z" />
+<glyph unicode="&#xe01a;" glyph-name="forecolor" d="M322.018 128l57.6 192h264.764l57.6-192h113.632l-191.996 640h-223.236l-192-640h113.636zM475.618 640h72.764l57.6-192h-187.964l57.6 192z" />
+<glyph unicode="&#xe01b;" glyph-name="table" d="M0 896v-896h1024v896h-1024zM384 320v192h256v-192h-256zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe01c;" glyph-name="hr" d="M0 512h1024v-128h-1024z" />
+<glyph unicode="&#xe01d;" glyph-name="removeformat" d="M0 64h576v-128h-576zM192 960h704v-128h-704zM277.388 128l204.688 784.164 123.85-32.328-196.25-751.836zM929.774-64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774z" />
+<glyph unicode="&#xe01e;" glyph-name="sub" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xe01f;" glyph-name="sup" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xe020;" glyph-name="charmap" d="M704 64h256l64 128v-256h-384v214.214c131.112 56.484 224 197.162 224 361.786 0 214.432-157.598 382.266-352 382.266-194.406 0-352-167.832-352-382.266 0-164.624 92.886-305.302 224-361.786v-214.214h-384v256l64-128h256v32.59c-187.63 66.46-320 227.402-320 415.41 0 247.424 229.23 448 512 448s512-200.576 512-448c0-188.008-132.37-348.95-320-415.41v-32.59z" />
+<glyph unicode="&#xe021;" glyph-name="emoticons" d="M512 960c-282.77 0-512-229.228-512-512 0-282.77 229.228-512 512-512 282.77 0 512 229.23 512 512 0 282.772-229.23 512-512 512zM512 16c-238.586 0-432 193.412-432 432 0 238.586 193.414 432 432 432 238.59 0 432-193.414 432-432 0-238.588-193.41-432-432-432zM384 640c0-35.346-28.654-64-64-64s-64 28.654-64 64 28.654 64 64 64 64-28.654 64-64zM768 640c0-35.346-28.652-64-64-64s-64 28.654-64 64 28.652 64 64 64 64-28.654 64-64zM512 308c141.074 0 262.688 57.532 318.462 123.192-20.872-171.22-156.288-303.192-318.462-303.192-162.118 0-297.498 132.026-318.444 303.168 55.786-65.646 177.386-123.168 318.444-123.168z" />
+<glyph unicode="&#xe022;" glyph-name="print" d="M256 896h512v-128h-512zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM704 64h-384v320h384v-320zM974.4 608c0-25.626-20.774-46.4-46.398-46.4-25.626 0-46.402 20.774-46.402 46.4s20.776 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" />
+<glyph unicode="&#xe023;" glyph-name="fullscreen" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
+<glyph unicode="&#xe024;" glyph-name="spellchecker" d="M128 704h128v-192h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192zM128 896h128v-128h-128v128zM960 896v64h-192c-35.202 0-64-28.8-64-64v-320c0-35.2 28.798-64 64-64h192v64h-192v320h192zM640 800v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64zM576 576h-128v128h128v-128zM576 768h-128v128h128v-128zM832 384l-416-448-224 288 82 70 142-148 352 302z" />
+<glyph unicode="&#xe025;" glyph-name="nonbreaking" d="M448 384h-192v128h192v192h128v-192h192v-128h-192v-192h-128zM1024 320v-384h-1024v384h128v-256h768v256z" />
+<glyph unicode="&#xe026;" glyph-name="template" d="M384 768h128v-64h-128zM576 768h128v-64h-128zM896 768v-256h-192v64h128v128h-64v64zM320 576h128v-64h-128zM512 576h128v-64h-128zM192 704v-128h64v-64h-128v256h192v-64zM384 384h128v-64h-128zM576 384h128v-64h-128zM896 384v-256h-192v64h128v128h-64v64zM320 192h128v-64h-128zM512 192h128v-64h-128zM192 320v-128h64v-64h-128v256h192v-64zM960 896h-896v-896h896v896zM1024 960v0-1024h-1024v1024h1024z" />
+<glyph unicode="&#xe027;" glyph-name="pagebreak" d="M0 448h128v-64h-128zM192 448h192v-64h-192zM448 448h128v-64h-128zM640 448h192v-64h-192zM896 448h128v-64h-128zM880 960l16-448h-768l16 448h32l16-384h640l16 384zM144-64l-16 384h768l-16-384h-32l-16 320h-640l-16-320z" />
+<glyph unicode="&#xe028;" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" />
+<glyph unicode="&#xe02a;" glyph-name="bold" d="M707.88 475.348c37.498 44.542 60.12 102.008 60.12 164.652 0 141.16-114.842 256-256 256h-320v-896h384c141.158 0 256 114.842 256 256 0 92.956-49.798 174.496-124.12 219.348zM384 768h101.5c55.968 0 101.5-57.42 101.5-128s-45.532-128-101.5-128h-101.5v256zM543 128h-159v256h159c58.45 0 106-57.42 106-128s-47.55-128-106-128z" />
+<glyph unicode="&#xe02b;" glyph-name="italic" d="M896 896v-64h-128l-320-768h128v-64h-448v64h128l320 768h-128v64z" />
+<glyph unicode="&#xe02c;" glyph-name="underline" d="M704 896h128v-416c0-159.058-143.268-288-320-288-176.73 0-320 128.942-320 288v416h128v-416c0-40.166 18.238-78.704 51.354-108.506 36.896-33.204 86.846-51.494 140.646-51.494s103.75 18.29 140.646 51.494c33.116 29.802 51.354 68.34 51.354 108.506v416zM192 128h640v-128h-640z" />
+<glyph unicode="&#xe02d;" glyph-name="strikethrough" d="M731.42 442.964c63.92-47.938 100.58-116.086 100.58-186.964s-36.66-139.026-100.58-186.964c-59.358-44.518-137.284-69.036-219.42-69.036-82.138 0-160.062 24.518-219.42 69.036-63.92 47.938-100.58 116.086-100.58 186.964h128c0-69.382 87.926-128 192-128s192 58.618 192 128c0 69.382-87.926 128-192 128-82.138 0-160.062 24.518-219.42 69.036-63.92 47.94-100.58 116.086-100.58 186.964s36.66 139.024 100.58 186.964c59.358 44.518 137.282 69.036 219.42 69.036 82.136 0 160.062-24.518 219.42-69.036 63.92-47.94 100.58-116.086 100.58-186.964h-128c0 69.382-87.926 128-192 128s-192-58.618-192-128c0-69.382 87.926-128 192-128 82.136 0 160.062-24.518 219.42-69.036zM0 448h1024v-64h-1024z" />
+<glyph unicode="&#xe02e;" glyph-name="visualchars" d="M384 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224z" />
+<glyph unicode="&#xe02f;" glyph-name="ltr" d="M448 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM64 512l256-224-256-224z" />
+<glyph unicode="&#xe030;" glyph-name="rtl" d="M256 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM960 64l-256 224 256 224z" />
+<glyph unicode="&#xe031;" glyph-name="copy" d="M832 704h-192v64l-192 192h-448v-768h384v-256h640v576l-192 192zM832 613.49l101.49-101.49h-101.49v101.49zM448 869.49l101.49-101.49h-101.49v101.49zM64 896h320v-192h192v-448h-512v640zM960 0h-512v192h192v448h128v-192h192v-448z" />
+<glyph unicode="&#xe032;" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" />
+<glyph unicode="&#xe033;" glyph-name="checkbox" d="M128 416l288-288 480 480-128 128-352-352-160 160z" />
+<glyph unicode="&#xe034;" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM904.34 256h74.86l44.8 448h-1024l64-640h484.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM1002.996 46.25l-198.496 174.692c17.454 28.92 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l174.692-198.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM640 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" />
+<glyph unicode="&#xe035;" glyph-name="pastetext" d="M512 448v-128h32l32 64h64v-256h-48v-64h224v64h-48v256h64l32-64h32v128zM832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h640v704h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM960 0h-512v576h512v-576z" />
+<glyph unicode="&#xe600;" glyph-name="gamma" d="M483.2 320l-147.2 336c-9.6 25.6-19.2 44.8-25.6 54.4s-16 12.8-25.6 12.8c-16 0-25.6-3.2-28.8-3.2v70.4c9.6 6.4 25.6 6.4 38.4 9.6 32 0 57.6-6.4 73.6-22.4 6.4-6.4 12.8-16 19.2-25.6 6.4-12.8 12.8-25.6 16-41.6l121.6-291.2 150.4 371.2h92.8l-198.4-470.4v-224h-86.4v224zM0 960v-1024h1024v1024h-1024zM960 0h-896v896h896v-896z" />
+<glyph unicode="&#xe601;" glyph-name="orientation" d="M627.2 80h-579.2v396.8h579.2v-396.8zM553.6 406.4h-435.2v-256h435.2v256zM259.2 732.8c176 176 457.6 176 633.6 0s176-457.6 0-633.6c-121.6-121.6-297.6-160-454.4-108.8 121.6-28.8 262.4 9.6 361.6 108.8 150.4 150.4 160 384 22.4 521.6-121.6 121.6-320 128-470.4 19.2l86.4-86.4-294.4-22.4 22.4 294.4 92.8-92.8z" />
+<glyph unicode="&#xe602;" glyph-name="invert" d="M892.8-22.4l-89.6 89.6c-70.4-80-172.8-131.2-288-131.2-208 0-380.8 166.4-384 377.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4v0c0 0 0 0 0 3.2 0 0 0 3.2 0 3.2 3.2 105.6 48 211.2 105.6 304l-192 192 44.8 44.8 182.4-182.4c0 0 0 0 0 0l569.6-569.6c0 0 0 0 0 0l99.2-99.2-48-44.8zM896 326.4c0 0 0 0 0 0 0 3.2 0 6.4 0 6.4-9.6 316.8-384 627.2-384 627.2s-108.8-89.6-208-220.8l70.4-70.4c6.4 9.6 16 22.4 22.4 32 41.6 51.2 83.2 96 115.2 128v0c32-32 73.6-76.8 115.2-128 108.8-137.6 169.6-265.6 172.8-371.2 0 0 0-3.2 0-3.2v0 0c0-3.2 0-3.2 0-6.4s0-3.2 0-3.2v0 0c0-22.4-3.2-41.6-9.6-64l76.8-76.8c16 41.6 28.8 89.6 28.8 137.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4z" />
+<glyph unicode="&#xe603;" glyph-name="codesample" d="M199.995 578.002v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-100.518 0-182.003-81.485-182.003-182.003v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-100.515 81.485-182.003 182.003-182.003h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 50.931-20.928 96.966-54.646 130.002 33.716 33.036 54.646 79.072 54.646 130.002zM824.005 578.002v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c100.515 0 182.003-81.485 182.003-182.003v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-100.515-81.488-182.003-182.003-182.003h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 50.931 20.928 96.966 54.646 130.002-33.716 33.036-54.646 79.072-54.646 130.002zM616.002 603.285c0-57.439-46.562-104.002-104.002-104.002s-104.002 46.562-104.002 104.002c0 57.439 46.562 104.002 104.002 104.002s104.002-46.562 104.002-104.002zM512 448.717c-57.439 0-104.002-46.562-104.002-104.002 0-55.845 26-100.115 105.752-103.88-23.719-33.417-59.441-46.612-105.752-50.944v-61.751c0 0 208.003-18.144 208.003 216.577-0.202 57.441-46.56 104.004-104.002 104.004z" />
+<glyph unicode="&#xe604;" glyph-name="tablerowprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe605;" glyph-name="tablecellprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe606;" glyph-name="table2" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-896v192h896v-192z" />
+<glyph unicode="&#xe607;" glyph-name="tablemergecells" d="M0 896v-896h1024v896h-1024zM384 64v448h576v-448h-576zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192z" />
+<glyph unicode="&#xe608;" glyph-name="tableinsertcolbefore" d="M320 188.8v182.4h-182.4v89.6h182.4v182.4h86.4v-182.4h185.6v-89.6h-185.6v-182.4zM0 896v-896h1024v896h-1024zM640 64h-576v704h576v-704zM960 64h-256v192h256v-192zM960 320h-256v192h256v-192zM960 576h-256v192h256v-192z" />
+<glyph unicode="&#xe609;" glyph-name="tableinsertcolafter" d="M704 643.2v-182.4h182.4v-89.6h-182.4v-182.4h-86.4v182.4h-185.6v89.6h185.6v182.4zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v704h576v-704z" />
+<glyph unicode="&#xe60a;" glyph-name="tableinsertrowbefore" d="M691.2 508.8h-144v-144h-70.4v144h-144v67.2h144v144h70.4v-144h144zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM640 64h-256v192h256v-192zM960 64h-256v192h256v-192zM960 316.8h-896v451.2h896v-451.2z" />
+<glyph unicode="&#xe60b;" glyph-name="tableinsertrowafter" d="M332.8 323.2h144v144h70.4v-144h144v-67.2h-144v-144h-70.4v144h-144zM0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM64 768h256v-192h-256v192zM960 64h-896v451.2h896v-451.2zM960 576h-256v192h256v-192z" />
+<glyph unicode="&#xe60d;" glyph-name="tablesplitcells" d="M0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v448h576v-448zM960 576h-256v192h256v-192zM864 156.8l-60.8-60.8-131.2 131.2-131.2-131.2-60.8 60.8 131.2 131.2-131.2 131.2 60.8 60.8 131.2-131.2 131.2 131.2 60.8-60.8-131.2-131.2z" />
+<glyph unicode="&#xe60e;" glyph-name="tabledelete" d="M0 896h1024v-896h-1024v896zM60.8 768v-704h899.2v704h-899.2zM809.6 211.2l-96-96-204.8 204.8-204.8-204.8-96 96 204.8 204.8-204.8 204.8 96 96 204.8-204.8 204.8 204.8 96-96-204.8-204.8z" />
+<glyph unicode="&#xe62a;" glyph-name="tableleftheader" d="M0 896v-832h1024v832h-1024zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM640 640h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-256v192h256v-192z" />
+<glyph unicode="&#xe62b;" glyph-name="tabletopheader" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192z" />
+<glyph unicode="&#xe800;" glyph-name="tabledeleterow" d="M886.4 572.8l-156.8-156.8 160-160-76.8-76.8-160 160-156.8-156.8-76.8 73.6 160 160-163.2 163.2 76.8 76.8 163.2-163.2 156.8 156.8 73.6-76.8zM0 896v-896h1024v896h-1024zM960 576h-22.4l-64-64h86.4v-192h-89.6l64-64h25.6v-192h-896v192h310.4l64 64h-374.4v192h371.2l-64 64h-307.2v192h896v-192z" />
+<glyph unicode="&#xe801;" glyph-name="tabledeletecol" d="M320 499.2l64-64v-12.8l-64-64v140.8zM640 422.4l64-64v137.6l-64-64v-9.6zM1024 896v-896h-1024v896h1024zM960 768h-256v-51.2l-12.8 12.8-51.2-51.2v89.6h-256v-89.6l-51.2 51.2-12.8-12.8v51.2h-256v-704h256v118.4l35.2-35.2 28.8 28.8v-115.2h256v115.2l48-48 16 16v-83.2h256v707.2zM672 662.4l-156.8-156.8-163.2 163.2-76.8-76.8 163.2-163.2-156.8-156.8 76.8-76.8 156.8 156.8 160-160 76.8 76.8-160 160 156.8 156.8-76.8 76.8z" />
+<glyph unicode="&#xe900;" glyph-name="a11y" d="M960 704v64l-448-128-448 128v-64l320-128v-256l-128-448h64l192 448 192-448h64l-128 448v256zM416 800q0 40 28 68t68 28 68-28 28-68-28-68-68-28-68 28-28 68z" />
+<glyph unicode="&#xe901;" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM0 512h128v-128h-128v128zM192 512h832v-128h-832v128zM0 128h128v-128h-128v128zM192 128h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM192 320h128v-128h-128v128zM384 320h640v-128h-640v128z" />
+<glyph unicode="&#xe902;" glyph-name="fill" d="M521.6 915.2l-67.2-67.2-86.4 86.4-86.4-86.4 86.4-86.4-368-368 432-432 518.4 518.4-428.8 435.2zM435.2 134.4l-262.4 262.4 35.2 35.2 576 51.2-348.8-348.8zM953.6 409.6c-6.4-6.4-16-16-28.8-32-28.8-32-41.6-64-41.6-89.6v0 0 0 0 0 0 0c0-16 6.4-35.2 22.4-48 12.8-12.8 32-22.4 48-22.4s35.2 6.4 48 22.4 22.4 32 22.4 48v0 0 0 0 0 0 0c0 25.6-12.8 54.4-41.6 89.6-9.6 16-22.4 25.6-28.8 32v0z" />
+<glyph unicode="&#xe903;" glyph-name="borderwidth" d="M0 265.6h1024v-128h-1024v128zM0 32h1024v-64h-1024v64zM0 566.4h1024v-192h-1024v192zM0 928h1024v-256h-1024v256z" />
+<glyph unicode="&#xe904;" glyph-name="line" d="M739.2 627.2l-502.4-502.4h-185.6v185.6l502.4 502.4 185.6-185.6zM803.2 688l-185.6 185.6 67.2 67.2c22.4 22.4 54.4 22.4 76.8 0l108.8-108.8c22.4-22.4 22.4-54.4 0-76.8l-67.2-67.2zM41.6 48h940.8v-112h-940.8v112z" />
+<glyph unicode="&#xe905;" glyph-name="count" d="M0 480h1024v-64h-1024v64zM304 912v-339.2h-67.2v272h-67.2v67.2zM444.8 694.4v-54.4h134.4v-67.2h-201.6v153.6l134.4 64v54.4h-134.4v67.2h201.6v-153.6zM854.4 912v-339.2h-204.8v67.2h137.6v67.2h-137.6v70.4h137.6v67.2h-137.6v67.2zM115.2 166.4c3.2 57.6 38.4 83.2 108.8 83.2 38.4 0 67.2-9.6 86.4-25.6s25.6-35.2 25.6-70.4v-112c0-25.6 0-28.8 9.6-41.6h-73.6c-3.2 9.6-3.2 9.6-6.4 19.2-22.4-19.2-41.6-25.6-70.4-25.6-54.4 0-89.6 32-89.6 76.8s28.8 70.4 99.2 80l38.4 6.4c16 3.2 22.4 6.4 22.4 16 0 12.8-12.8 22.4-38.4 22.4s-41.6-9.6-44.8-28.8h-67.2zM262.4 115.2c-6.4-3.2-12.8-6.4-25.6-6.4l-25.6-6.4c-25.6-6.4-38.4-16-38.4-28.8 0-16 12.8-25.6 35.2-25.6s41.6 9.6 54.4 32v35.2zM390.4 336h73.6v-112c22.4 16 41.6 22.4 67.2 22.4 64 0 105.6-51.2 105.6-124.8 0-76.8-44.8-134.4-108.8-134.4-32 0-48 9.6-67.2 35.2v-28.8h-70.4v342.4zM460.8 121.6c0-41.6 22.4-70.4 51.2-70.4s51.2 28.8 51.2 70.4c0 44.8-19.2 70.4-51.2 70.4-28.8 0-51.2-28.8-51.2-70.4zM851.2 153.6c-3.2 22.4-19.2 35.2-44.8 35.2-32 0-51.2-25.6-51.2-70.4 0-48 19.2-73.6 51.2-73.6 25.6 0 41.6 12.8 44.8 41.6l70.4-3.2c-9.6-60.8-54.4-96-118.4-96-73.6 0-121.6 51.2-121.6 128 0 80 48 131.2 124.8 131.2 64 0 108.8-35.2 112-96h-67.2z" />
+<glyph unicode="&#xe906;" glyph-name="reload" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" />
+<glyph unicode="&#xe907;" glyph-name="translate" d="M553.6 304l-118.4 118.4c80 89.6 137.6 195.2 172.8 304h137.6v92.8h-326.4v92.8h-92.8v-92.8h-326.4v-92.8h518.4c-32-89.6-80-176-147.2-249.6-44.8 48-80 99.2-108.8 156.8h-92.8c35.2-76.8 80-147.2 137.6-211.2l-236.8-233.6 67.2-67.2 233.6 233.6 144-144c3.2 0 38.4 92.8 38.4 92.8zM816 540.8h-92.8l-208-560h92.8l51.2 140.8h220.8l51.2-140.8h92.8l-208 560zM691.2 214.4l76.8 201.6 76.8-201.6h-153.6z" />
+<glyph unicode="&#xe908;" glyph-name="drag" d="M576 896h128v-128h-128v128zM576 640h128v-128h-128v128zM320 640h128v-128h-128v128zM576 384h128v-128h-128v128zM320 384h128v-128h-128v128zM320 128h128v-128h-128v128zM576 128h128v-128h-128v128zM320 896h128v-128h-128v128z" />
+<glyph unicode="&#xe90b;" glyph-name="home" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" />
+<glyph unicode="&#xe911;" glyph-name="books" d="M576.234 670.73l242.712 81.432 203.584-606.784-242.712-81.432zM0 64h256v704h-256v-704zM64 640h128v-64h-128v64zM320 64h256v704h-256v-704zM384 640h128v-64h-128v64z" />
+<glyph unicode="&#xe914;" glyph-name="upload" d="M839.432 760.57c27.492-27.492 50.554-78.672 55.552-120.57h-318.984v318.984c41.898-4.998 93.076-28.060 120.568-55.552l142.864-142.862zM512 576v384h-368c-44 0-80-36-80-80v-864c0-44 36-80 80-80h672c44 0 80 36 80 80v560h-384zM576 192v-192h-192v192h-160l256 256 256-256h-160z" />
+<glyph unicode="&#xe915;" glyph-name="editimage" d="M768 416v-352h-640v640h352l128 128h-512c-52.8 0-96-43.2-96-96v-704c0-52.8 43.2-96 96-96h704c52.798 0 96 43.2 96 96v512l-128-128zM864 960l-608-608v-160h160l608 608c0 96-64 160-160 160zM416 320l-48 48 480 480 48-48-480-480z" />
+<glyph unicode="&#xe91c;" glyph-name="bubble" d="M928 896h-832c-52.8 0-96-43.2-96-96v-512c0-52.8 43.2-96 96-96h160v-256l307.2 256h364.8c52.8 0 96 43.2 96 96v512c0 52.8-43.2 96-96 96zM896 320h-379.142l-196.858-174.714v174.714h-192v448h768v-448z" />
+<glyph unicode="&#xe91d;" glyph-name="user" d="M622.826 257.264c-22.11 3.518-22.614 64.314-22.614 64.314s64.968 64.316 79.128 150.802c38.090 0 61.618 91.946 23.522 124.296 1.59 34.054 48.96 267.324-190.862 267.324s-192.45-233.27-190.864-267.324c-38.094-32.35-14.57-124.296 23.522-124.296 14.158-86.486 79.128-150.802 79.128-150.802s-0.504-60.796-22.614-64.314c-71.22-11.332-337.172-128.634-337.172-257.264h896c0 128.63-265.952 245.932-337.174 257.264z" />
+<glyph unicode="&#xe926;" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" />
+<glyph unicode="&#xe927;" glyph-name="unlock" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" />
+<glyph unicode="&#xe928;" glyph-name="settings" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" />
+<glyph unicode="&#xe92a;" glyph-name="remove2" d="M192-64h640l64 704h-768zM640 832v128h-256v-128h-320v-192l64 64h768l64-64v192h-320zM576 832h-128v64h128v-64z" />
+<glyph unicode="&#xe92d;" glyph-name="menu" d="M384 896h256v-256h-256zM384 576h256v-256h-256zM384 256h256v-256h-256z" />
+<glyph unicode="&#xe930;" glyph-name="warning" d="M1009.956 44.24l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648s-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.302 0 96.792 48.708 63.302 108.24zM512 64c-35.346 0-64 28.654-64 64 0 35.348 28.654 64 64 64 35.348 0 64-28.652 64-64 0-35.346-28.652-64-64-64zM556 256h-88l-20 256c0 35.346 28.654 64 64 64s64-28.654 64-64l-20-256z" />
+<glyph unicode="&#xe931;" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
+<glyph unicode="&#xe932;" glyph-name="pluscircle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM768 384h-192v-192h-128v192h-192v128h192v192h128v-192h192z" />
+<glyph unicode="&#xe933;" glyph-name="info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM448 768h128v-128h-128v128zM640 128h-256v64h64v256h-64v64h192v-320h64v-64z" />
+<glyph unicode="&#xe934;" glyph-name="notice" d="M1024 224l-288 736h-448l-288-288v-448l288-288h448l288 288v448l-288 288zM576 128h-128v128h128v-128zM576 384h-128v384h128v-384z" />
+<glyph unicode="&#xe935;" glyph-name="drop" d="M864.626 486.838c-65.754 183.44-205.11 348.15-352.626 473.162-147.516-125.012-286.87-289.722-352.626-473.162-40.664-113.436-44.682-236.562 12.584-345.4 65.846-125.14 198.632-205.438 340.042-205.438s274.196 80.298 340.040 205.44c57.27 108.838 53.25 231.962 12.586 345.398zM738.764 201.044c-43.802-83.252-132.812-137.044-226.764-137.044-55.12 0-108.524 18.536-152.112 50.652 13.242-1.724 26.632-2.652 40.112-2.652 117.426 0 228.668 67.214 283.402 171.242 44.878 85.292 40.978 173.848 23.882 244.338 14.558-28.15 26.906-56.198 36.848-83.932 22.606-63.062 40.024-156.34-5.368-242.604z" />
+<glyph unicode="&#xe939;" glyph-name="minus" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" />
+<glyph unicode="&#xe93a;" glyph-name="plus" d="M992 576h-352v352c0 17.672-14.328 32-32 32h-192c-17.672 0-32-14.328-32-32v-352h-352c-17.672 0-32-14.328-32-32v-192c0-17.672 14.328-32 32-32h352v-352c0-17.672 14.328-32 32-32h192c17.672 0 32 14.328 32 32v352h352c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32z" />
+<glyph unicode="&#xe93b;" glyph-name="arrowup" d="M0 320l192-192 320 320 320-320 192 192-511.998 512z" />
+<glyph unicode="&#xe93c;" glyph-name="arrowright" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" />
+<glyph unicode="&#xe93d;" glyph-name="arrowdown" d="M1024 576l-192 192-320-320-320 320-192-192 512-511.998z" />
+<glyph unicode="&#xe93f;" glyph-name="arrowup2" d="M768 320l-256 256-256-256z" />
+<glyph unicode="&#xe940;" glyph-name="arrowdown2" d="M256 576l256-256 256 256z" />
+<glyph unicode="&#xe941;" glyph-name="menu2" d="M256 704l256-256 256 256zM255.996 384.004l256-256 256 256z" />
+<glyph unicode="&#xe961;" glyph-name="newtab" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" />
+<glyph unicode="&#xeaa8;" glyph-name="rotateleft" d="M607.998 831.986c-212.070 0-383.986-171.916-383.986-383.986h-191.994l246.848-246.848 246.848 246.848h-191.994c0 151.478 122.798 274.276 274.276 274.276 151.48 0 274.276-122.798 274.276-274.276 0-151.48-122.796-274.276-274.276-274.276v-109.71c212.070 0 383.986 171.916 383.986 383.986s-171.916 383.986-383.986 383.986z" />
+<glyph unicode="&#xeaa9;" glyph-name="rotateright" d="M416.002 831.986c212.070 0 383.986-171.916 383.986-383.986h191.994l-246.848-246.848-246.848 246.848h191.994c0 151.478-122.798 274.276-274.276 274.276-151.48 0-274.276-122.798-274.276-274.276 0-151.48 122.796-274.276 274.276-274.276v-109.71c-212.070 0-383.986 171.916-383.986 383.986s171.916 383.986 383.986 383.986z" />
+<glyph unicode="&#xeaaa;" glyph-name="flipv" d="M0 576h1024v384zM1024 0v384h-1024z" />
+<glyph unicode="&#xeaac;" glyph-name="fliph" d="M576 960v-1024h384zM0-64h384v1024z" />
+<glyph unicode="&#xeb35;" glyph-name="zoomin" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" />
+<glyph unicode="&#xeb36;" glyph-name="zoomout" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" />
+<glyph unicode="&#xeba7;" glyph-name="sharpen" d="M768 832h-512l-256-256 512-576 512 576-256 256zM512 181.334v2.666h-2.37l-14.222 16h16.592v16h-30.814l-14.222 16h45.036v16h-59.258l-14.222 16h73.48v16h-87.704l-14.222 16h101.926v16h-116.148l-14.222 16h130.37v16h-144.592l-14.222 16h158.814v16h-173.038l-14.222 16h187.26v16h-201.482l-14.222 16h215.704v16h-229.926l-14.222 16h244.148v16h-258.372l-14.222 16h272.594v16h-286.816l-14.222 16h301.038v16h-315.26l-14.222 16h329.482v16h-343.706l-7.344 8.262 139.072 139.072h211.978v-3.334h215.314l16-16h-231.314v-16h247.314l16-16h-263.314v-16h279.314l16-16h-295.314v-16h311.314l16-16h-327.314v-16h343.312l7.738-7.738-351.050-394.928z" />
+<glyph unicode="&#xec6a;" glyph-name="options" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" />
+<glyph unicode="&#xeccc;" glyph-name="sun" d="M512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.348 0-64 28.654-64 64s28.652 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.258c24.992-24.99 24.992-65.516 0-90.508-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.99-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.518 24.992 90.508 0 24.994-24.994 24.994-65.52 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0s-24.994 65.518 0 90.508l45.256 45.258zM512 704c-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 141.384-114.616 256-256 256zM512 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
+<glyph unicode="&#xeccd;" glyph-name="moon" d="M715.812 895.52c-60.25 34.784-124.618 55.904-189.572 64.48 122.936-160.082 144.768-384.762 37.574-570.42-107.2-185.67-312.688-279.112-512.788-252.68 39.898-51.958 90.376-97.146 150.628-131.934 245.908-141.974 560.37-57.72 702.344 188.198 141.988 245.924 57.732 560.372-188.186 702.356z" />
+<glyph unicode="&#xecd4;" glyph-name="contrast" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM128 448c0 212.078 171.922 384 384 384v-768c-212.078 0-384 171.922-384 384z" />
+<glyph unicode="&#xed6a;" glyph-name="remove22" d="M893.254 738.746l-90.508 90.508-290.746-290.744-290.746 290.744-90.508-90.506 290.746-290.748-290.746-290.746 90.508-90.508 290.746 290.746 290.746-290.746 90.508 90.51-290.744 290.744z" />
+<glyph unicode="&#xedc0;" glyph-name="arrowleft" d="M672-64l192 192-320 320 320 320-192 192-512-512z" />
+<glyph unicode="&#xedf9;" glyph-name="resize2" d="M0 896v-384c0-35.346 28.654-64 64-64s64 28.654 64 64v229.488l677.488-677.488h-229.488c-35.346 0-64-28.652-64-64 0-35.346 28.654-64 64-64h384c35.346 0 64 28.654 64 64v384c0 35.348-28.654 64-64 64s-64-28.652-64-64v-229.488l-677.488 677.488h229.488c35.346 0 64 28.654 64 64s-28.652 64-64 64h-384c-35.346 0-64-28.654-64-64z" />
+<glyph unicode="&#xee78;" glyph-name="crop" d="M832 704l192 192-64 64-192-192h-448v192h-128v-192h-192v-128h192v-512h512v-192h128v192h192v128h-192v448zM320 640h320l-320-320v320zM384 256l320 320v-320h-320z" />
+</font></defs></svg>

BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf


BIN
public/static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff


BIN
public/static/tinymce4.7.5/skins/lightgray/img/anchor.gif


BIN
public/static/tinymce4.7.5/skins/lightgray/img/loader.gif


BIN
public/static/tinymce4.7.5/skins/lightgray/img/object.gif


BIN
public/static/tinymce4.7.5/skins/lightgray/img/trans.gif


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
public/static/tinymce4.7.5/skins/lightgray/skin.min.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
public/static/tinymce4.7.5/skins/lightgray/skin.min.css.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
public/static/tinymce4.7.5/tinymce.min.js


+ 12 - 0
src/App.vue

@@ -0,0 +1,12 @@
+<template>
+  <div id="app">
+    <router-view />
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'App',
+};
+</script>

+ 168 - 0
src/api/article.js

@@ -0,0 +1,168 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 删除文章
+ * @param id
+ * @constructor
+ */
+export function DelArticle(id) {
+  return request({
+    url: `/admin/platform/article/delete/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 文章详情
+ * @param id
+ * @constructor
+ */
+export function InfoArticle(id) {
+  return request({
+    url: `/admin/platform/article/info/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 文章列表
+ * @param pram
+ * @constructor
+ */
+export function ListArticle(pram) {
+  const data = {
+    author: pram.author,
+    cid: pram.cid,
+    page: pram.page,
+    limit: pram.limit,
+    title: pram.title,
+  };
+  return request({
+    url: '/admin/platform/article/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * 新增文章
+ * @param pram
+ * @constructor
+ */
+export function AddArticle(pram) {
+  const data = {
+    author: pram.author,
+    cid: pram.cid,
+    content: pram.content,
+    cover: pram.cover,
+    isBanner: pram.isBanner,
+    isHot: pram.isHot,
+    sort: pram.sort,
+    synopsis: pram.synopsis,
+    title: pram.title,
+    url: pram.url,
+  };
+  return request({
+    url: '/admin/platform/article/save',
+    method: 'post',
+    data: data,
+  });
+}
+
+/**
+ * 更新文章
+ * @param pram
+ * @constructor
+ */
+export function UpdateArticle(pram) {
+  const data = {
+    author: pram.author,
+    cid: pram.cid,
+    content: pram.content,
+    cover: pram.cover,
+    isBanner: pram.isBanner,
+    isHot: pram.isHot,
+    sort: pram.sort,
+    synopsis: pram.synopsis,
+    title: pram.title,
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/article/update',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 新增文章分类
+ * @param data
+ * @constructor
+ */
+export function articleCategoryAddApi(data) {
+  return request({
+    url: '/admin/platform/article/category/add',
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 删除文章分类
+ * @param data
+ * @constructor
+ */
+export function articleCategoryDelApi(row) {
+  return request({
+    url: `admin/platform/article/category/delete/${row.id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 文章分类分页列表
+ * @constructor
+ */
+export function articleCategoryListApi() {
+  return request({
+    url: `admin/platform/article/category/list`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 修改文章分类
+ * @param data
+ * @constructor
+ */
+export function articleCategoryUpdateApi(data) {
+  return request({
+    url: `admin/platform/article/category/update`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 文章开关
+ * @param data
+ */
+export function articleSwitchApi(id) {
+  return request({
+    url: `/admin/platform/article/switch/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 文章分类开关
+ * @param data
+ */
+export function articleCategorySwitchApi(id) {
+  return request({
+    url: `/admin/platform/article/category/switch/${id}`,
+    method: 'POST',
+  });
+}

+ 24 - 0
src/api/authInformation.js

@@ -0,0 +1,24 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 获取版权信息
+ */
+export function copyrightInfoApi() {
+  return request({
+    url: '/admin/platform/copyright/get/info',
+    method: 'get',
+  });
+}
+
+/**
+ * 保存版权信息
+ */
+export function saveCrmebCopyRight(data) {
+  return request({
+    url: '/admin/platform/copyright/update/company/info',
+    method: 'post',
+    data,
+  });
+}

+ 111 - 0
src/api/categoryApi.js

@@ -0,0 +1,111 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 新增分类
+ * @param pram
+ */
+export function addCategroy(pram) {
+  const data = {
+    extra: pram.extra,
+    name: pram.name,
+    pid: pram.pid,
+    sort: pram.sort,
+    status: pram.status,
+    type: pram.type,
+    url: pram.url,
+  };
+  return request({
+    url: '/admin/platform/category/save',
+    method: 'POST',
+    data: data,
+  });
+}
+
+/**
+ * 分类详情
+ * @param pram
+ */
+export function infoCategroy(id) {
+  return request({
+    url: `/admin/platform/category/info/${id}`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 删除分类
+ * @param pram
+ */
+export function deleteCategroy(id) {
+  return request({
+    url: `/admin/platform/category/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 分类数据tree数据
+ * @param pram
+ */
+export function treeCategroy(pram) {
+  const data = {
+    type: pram.type,
+    status: pram.status,
+    name: pram.name,
+  };
+  return request({
+    url: '/admin/platform/category/list/tree',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * 更新分类
+ * @param pram
+ */
+export function updateCategroy(pram) {
+  const data = {
+    extra: pram.extra,
+    name: pram.name,
+    pid: pram.pid,
+    sort: pram.sort,
+    status: pram.status,
+    type: pram.type,
+    url: pram.url,
+    id: pram.id,
+  };
+  return request({
+    url: `/admin/platform/category/update/${pram.id}`,
+    method: 'POST',
+    data: data,
+  });
+}
+
+/**
+ * 根据id集合查询对应分类列表
+ * @param pram
+ */
+export function categroyByIds(pram) {
+  const data = {
+    ids: pram.ids,
+  };
+  return request({
+    url: '/admin/platform/category/list/ids',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * 修改 显示关闭状态
+ * @param pram
+ */
+export function categroyUpdateStatus(id) {
+  return request({
+    url: `/admin/platform/category/updateStatus/${id}`,
+    method: 'post',
+  });
+}

+ 47 - 0
src/api/configTabApi.js

@@ -0,0 +1,47 @@
+ 
+
+import request from '@/utils/request';
+
+// 配置分类管理
+// 注意暂时没用到,使用无限极分类实现
+
+export function configTabDelete(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: 'admin/system/config/tab/delete',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function configTabInfo(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: 'admin/system/config/tab/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function configTabList(pram) {
+  const data = {
+    id: pram.id,
+    engTitle: pram.engTitle,
+    icon: pram.icon,
+    info: pram.info,
+    title: pram.title,
+    parameter: pram.parameter,
+    status: pram.status,
+    page: pram.page,
+    limit: pram.limit,
+  };
+  return request({
+    url: 'admin/system/config/tab/list',
+    method: 'POST',
+    params: data,
+  });
+}

+ 78 - 0
src/api/dashboard.js

@@ -0,0 +1,78 @@
+ 
+
+import request from '@/utils/request';
+
+// 首页数据概览
+export function viewModelApi() {
+  return request({
+    url: '/admin/platform/statistics/home/index',
+    method: 'GET',
+  });
+}
+
+// 用户曲线图
+export function chartUserApi() {
+  return request({
+    url: '/admin/statistics/home/chart/user',
+    method: 'get',
+  });
+}
+
+// 用户购买统计
+export function chartBuyApi() {
+  return request({
+    url: '/admin/statistics/home/chart/user/buy',
+    method: 'get',
+  });
+}
+
+// 订单量趋势 30天
+export function chartOrder30Api() {
+  return request({
+    url: '/admin/statistics/home/chart/order',
+    method: 'get',
+  });
+}
+
+// 订单量趋势 月
+export function chartOrderMonthApi() {
+  return request({
+    url: '/admin/statistics/home/chart/order/month',
+    method: 'get',
+  });
+}
+
+// 订单量趋势 周
+export function chartOrderWeekApi() {
+  return request({
+    url: '/admin/statistics/home/chart/order/week',
+    method: 'get',
+  });
+}
+
+// 订单量趋势 年
+export function chartOrderYearApi() {
+  return request({
+    url: '/admin/statistics/home/chart/order/year',
+    method: 'get',
+  });
+}
+
+// 首页经营数据
+export function businessData() {
+  return request({
+    url: '/admin/platform/statistics/home/operating/data',
+    method: 'get',
+  });
+}
+
+/**
+ * 用户渠道数据
+ * @param pram
+ */
+export function userChannelData() {
+  return request({
+    url: `/admin/platform/statistics/home/channel`,
+    method: 'GET',
+  });
+}

+ 167 - 0
src/api/depart.js

@@ -0,0 +1,167 @@
+
+import request from '@/utils/request';
+
+/**
+ * 组织机构分页列表
+ */
+ export function organization(params) {
+  return request({
+    url: `/admin/platform/userenterprise/organization`,
+    method: 'GET',
+    params
+  });
+}
+
+/* 
+* 部门分页列表
+*/
+export function otganizatonDepartmentList(params) {
+  return request({
+    url: '/admin/platform/userenterprise/otganizatonDepartmentList',
+    method: 'GET',
+    params
+  })
+}
+
+/* 
+* 用户分页列表
+*/
+export function otganizatonDepartmentUserList(params) {
+  return request({
+    url: '/admin/platform/userenterprise/otganizatonDepartmentUserList',
+    method: 'GET',
+    params
+  })
+}
+
+/* 
+* 新增企业
+*/
+export function organizationSave(data) {
+  return request({
+    url: '/admin/platform/userenterprise/organizationSave',
+    method: 'POST',
+    data
+  })
+}
+
+
+/* 
+* 新增部门
+*/
+export function departmentSave(params) {
+  return request({
+    url: '/admin/platform/userenterprise/departmentSave',
+    method: 'POST',
+    params
+  })
+}
+
+/* 
+* 新增用户
+*/
+export function userSave(params) {
+  return request({
+    url: '/admin/platform/userenterprise/userSave',
+    method: 'POST',
+    params
+  })
+}
+
+/* 
+* 删除部门
+*/
+export function departmentDelete(params) {
+  return request({
+    url: '/admin/platform/userenterprise/departmentDelete',
+    method: 'POST',
+    params
+  })
+}
+
+/* 
+* 删除用户
+*/
+export function userDelete(params) {
+  return request({
+    url: '/admin/platform/userenterprise/userDelete',
+    method: 'POST',
+    params
+  })
+}
+
+/* 
+* 删除企业
+*/
+export function organizationDelete(params) {
+  return request({
+    url: '/admin/platform/userenterprise/organizationDelete',
+    method: 'POST',
+    params
+  })
+}
+
+/* 
+* 查询企业列表
+*/
+export function otganizatonList() {
+  return request({
+    url: '/admin/platform/userenterprise/otganizatonList',
+    method: 'GET'
+  })
+}
+
+/* 
+* 配置是否查看全部订单
+*/
+export function isAllOrders(params) {
+  return request({
+    url: '/admin/platform/userenterprise/isAllOrders',
+    method: 'GET',
+    params
+  })
+}
+
+/* 
+* 台端组织机构编辑
+*/
+export function organizationEdit(data) {
+  return request({
+    url: '/admin/platform/userenterprise/organizationEdit',
+    method: 'POST',
+    data
+  })
+}
+
+/* 
+* 平台端组织机构编辑-部门
+*/
+export function organizationDepartEdit(data) {
+  return request({
+    url: '/admin/platform/userenterprise/organizationDepartEdit',
+    method: 'POST',
+    data
+  })
+}
+
+/* 
+* 台端组织机构编辑用户
+*/
+export function organizationUserEdit(data) {
+  return request({
+    url: '/admin/platform/userenterprise/organizationUserEdit',
+    method: 'POST',
+    data
+  })
+}
+
+/* 
+* 台端组织机构编辑用户
+*/
+export function enterpriseEdit(data) {
+  return request({
+    url: '/admin/platform/userenterprise/enterpriseEdit',
+    method: 'POST',
+    data
+  })
+}

+ 67 - 0
src/api/distribution.js

@@ -0,0 +1,67 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * @description 分销设置 -- 详情
+ */
+export function configApi() {
+  return request({
+    url: '/admin/platform/retail/store/config/get',
+    method: 'get',
+  });
+}
+
+/**
+ * @description 分销设置 -- 表单提交
+ */
+export function configUpdateApi(data) {
+  return request({
+    url: '/admin/platform/retail/store/config/save',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 分销员 -- 列表
+ */
+export function promoterListApi(params) {
+  return request({
+    url: '/admin/platform/retail/store/people/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 根据条件获取下级推广用户列表
+ */
+export function spreadListApi(params) {
+  return request({
+    url: '/admin/platform/retail/store/sub/user/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 推广人订单 -- 列表
+ */
+export function spreadOrderListApi(params) {
+  return request({
+    url: '/admin/platform/retail/store/promotion/order/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 推广人 -- 清除上级推广人
+ */
+export function spreadClearApi(id) {
+  return request({
+    url: `/admin/platform/retail/store/clean/spread/${id}`,
+    method: 'get',
+  });
+}

+ 168 - 0
src/api/finance.js

@@ -0,0 +1,168 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 商户结算分页列表
+ * @param params
+ */
+export function merchantClosingListApi(params) {
+  return request({
+    url: '/admin/platform/finance/merchant/closing/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商户结算备注
+ * @param params
+ */
+export function merClosingRemarkApi(data) {
+  return request({
+    url: '/admin/platform/finance/merchant/closing/remark',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户结算记录详情
+ * @param params
+ */
+export function merClosingDetailApi(closingNo) {
+  return request({
+    url: `admin/platform/finance/merchant/closing/detail/${closingNo}`,
+    method: 'get',
+  });
+}
+
+/**
+ * @description 商户结算到账凭证
+ */
+export function transferProofApi(data) {
+  return request({
+    url: `admin/platform/finance/merchant/closing/proof`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * @description商户结算申请审核
+ */
+export function closingAuditApi(data) {
+  return request({
+    url: `admin/platform/finance/merchant/closing/audit`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * @获取商户结算设置
+ */
+export function closingConfigApi(data) {
+  return request({
+    url: `admin/platform/finance/merchant/closing/config`,
+    method: 'get',
+  });
+}
+
+/**
+ * @编辑商户结算设置
+ */
+export function closingEditApi(data) {
+  return request({
+    url: `admin/platform/finance/merchant/closing/config/edit`,
+    method: 'post',
+    data,
+  });
+}
+/**
+ * 用户结算备注
+ * @param params
+ */
+export function userClosingRemarkApi(data) {
+  return request({
+    url: '/admin/platform/finance/user/closing/remark',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 用户结算申请审核
+ * @param params
+ */
+export function userClosingAuditApi(data) {
+  return request({
+    url: `/admin/platform/finance/user/closing/audit`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 用户结算分页列表
+ * @param params
+ */
+export function userClosingListApi(params) {
+  return request({
+    url: `/admin/platform/finance/user/closing/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 用户结算到账凭证
+ * @param params
+ */
+export function userClosingProofApi(data) {
+  return request({
+    url: `/admin/platform/finance/user/closing/proof`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * @description 账单管理 日帐单管理分页列表
+ */
+export function dayStatementApi(params) {
+  return request({
+    url: `admin/platform/finance/daily/statement/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 账单管理 月帐单管理分页列表
+ */
+export function monthStatementApi(params) {
+  return request({
+    url: `admin/platform/finance/month/statement/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 资金流水 -- 列表
+ */
+export function capitalFlowLstApi(params) {
+  return request({
+    url: `admin/platform/finance/funds/flow`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 资金流水 -- 导出
+ */
+export function capitalFlowExportApi(data) {
+  return request.get(`financial_record/export`, data);
+}

+ 173 - 0
src/api/logistics.js

@@ -0,0 +1,173 @@
+ 
+
+import request from '@/utils/request';
+
+// 城市列表
+export function cityList(data) {
+  return request({
+    url: '/admin/system/city/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 城市列表
+export function cityListTree() {
+  return request({
+    url: '/admin/system/city/list/tree',
+    method: 'get',
+  });
+}
+
+// 城市修改状态
+export function updateStatus(data) {
+  return request({
+    url: '/admin/system/city/update/status',
+    method: 'post',
+    params: { ...data },
+  });
+}
+
+// 城市修改
+export function cityUpdate(data) {
+  return request({
+    url: '/admin/system/city/update',
+    method: 'post',
+    params: { ...data },
+  });
+}
+
+// 城市详情
+export function cityInfo(data) {
+  return request({
+    url: '/admin/system/city/info',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 物流公司列表
+export function expressList(data) {
+  return request({
+    url: '/admin/platform/express/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 同步物流公司
+export function expressSyncApi() {
+  return request({
+    url: '/admin/platform/express/sync/express',
+    method: 'post',
+  });
+}
+
+// 物流公司修改状态
+export function expressUpdateShow(data) {
+  return request({
+    url: '/admin/platform/express/update/show',
+    method: 'post',
+    data,
+  });
+}
+
+// 物流公司 编辑
+export function expressUpdate(data) {
+  return request({
+    url: '/admin/platform/express/update',
+    method: 'post',
+    data,
+  });
+}
+
+// 新增物流公司
+export function expressSave(data) {
+  return request({
+    url: '/admin/express/save',
+    method: 'post',
+    params: { ...data },
+  });
+}
+
+// 删除物流公司
+export function expressDelete(data) {
+  return request({
+    url: '/admin/express/delete',
+    method: 'GET',
+    params: { ...data },
+  });
+}
+
+// 物流运费模板列表
+export function shippingTemplatesList(data) {
+  return request({
+    url: '/admin/express/shipping/templates/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 物流运费模板详情
+export function templateDetailApi(data) {
+  return request({
+    url: '/admin/express/shipping/templates/info',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 物流运费模板包邮
+export function shippingFree(data) {
+  return request({
+    url: '/admin/express/shipping/free/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 物流运费模板不包邮
+export function shippingRegion(data) {
+  return request({
+    url: 'admin/express/shipping/region/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 物流运费模板新增
+export function shippingSave(data) {
+  return request({
+    url: 'admin/express/shipping/templates/save',
+    method: 'post',
+    data: data,
+  });
+}
+
+// 物流运费模板更新
+export function shippingUpdate(data, id) {
+  return request({
+    url: 'admin/express/shipping/templates/update',
+    method: 'post',
+    data: data,
+    params: { ...id },
+  });
+}
+
+// 物流运费模板删除
+export function shippingDetete(data) {
+  return request({
+    url: 'admin/express/shipping/templates/delete',
+    method: 'get',
+    params: data,
+  });
+}
+
+// 物流公司详情
+export function expressInfo(data) {
+  return request({
+    url: 'admin/platform/express/info',
+    method: 'get',
+    params: { ...data },
+  });
+}

+ 404 - 0
src/api/marketing.js

@@ -0,0 +1,404 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 优惠券 列表
+ * @param pram
+ */
+export function marketingListApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 用户管理 优惠券列表
+ * @param pram
+ */
+export function marketingSendApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/send/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 优惠券 详情
+ * @param pram
+ */
+export function couponInfoApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/info',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 优惠券 发送
+ * @param pram
+ */
+export function couponUserApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/user/receive',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 优惠券 发送
+ * @param pram
+ */
+export function couponSaveApi(data) {
+  return request({
+    url: '/admin/marketing/coupon/save',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 优惠券 修改状态
+ * @param pram
+ */
+export function couponIssueStatusApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/update/status',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 优惠券 删除
+ * @param pram
+ */
+export function couponDeleteApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/delete',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 会员领取记录 列表
+ * @param pram
+ */
+export function couponUserListApi(params) {
+  return request({
+    url: '/admin/marketing/coupon/user/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 积分日志 列表
+ * @param pram
+ */
+export function integralListApi(params, data) {
+  return request({
+    url: '/admin/platform/integral/list',
+    method: 'get',
+    params,
+    data,
+  });
+}
+
+/**
+ * 签到 基础签到配置
+ */
+export function signBaseConfigApi(data) {
+  return request({
+    url: `/admin/platform/sign/edit/base/config`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 签到 新增连续签到配置
+ */
+export function signAddConfigApi(data) {
+  return request({
+    url: `/admin/platform/sign/add/config`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 签到 编辑连续签到配置
+ */
+export function signeEditConfigApi(data) {
+  return request({
+    url: `/admin/platform/sign/edit/award/config`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 签到 删除连续签到配置
+ */
+export function signeDelConfigApi(id) {
+  return request({
+    url: `/admin/platform/sign/delete/config/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 签到 获取签到配置
+ */
+export function signeGetConfigApi() {
+  return request({
+    url: `/admin/platform/sign/get/config`,
+    method: 'get',
+  });
+}
+
+/**
+ * 签到 用户签到记录分页列表
+ */
+export function signeRecordListApi() {
+  return request({
+    url: `/admin/platform/sign/user/record/list`,
+    method: 'get',
+  });
+}
+
+/**
+ * 秒杀 秒杀时段列表
+ */
+export function seckillIntervalListApi(params) {
+  return request({
+    url: `/admin/platform/seckill/time/interval/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 秒杀 新增秒杀时段
+ */
+export function seckillIntervalAddApi(data) {
+  return request({
+    url: `/admin/platform/seckill/time/interval/add`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 秒杀 编辑秒杀时段
+ */
+export function seckillIntervalUpdateApi(data) {
+  return request({
+    url: `/admin/platform/seckill/time/interval/update`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 秒杀 删除秒杀时段
+ */
+export function seckillIntervalDeleteApi(id) {
+  return request({
+    url: `admin/platform/seckill/time/interval/delete/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 秒杀 秒杀时段开关
+ */
+export function seckillIntervalSwitcheApi(id) {
+  return request({
+    url: `admin/platform/seckill/time/interval/switch/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 秒杀 新增秒杀活动
+ */
+export function seckillActivityAddApi(data) {
+  return request({
+    url: `/admin/platform/seckill/activity/add`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 秒杀 秒杀活动详情
+ */
+export function seckillActivityDetailApi(id) {
+  return request({
+    url: `/admin/platform/seckill/activity/detail/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 秒杀 秒杀活动分页列表
+ */
+export function seckillActivityListApi(params) {
+  return request({
+    url: `/admin/platform/seckill/activity/page`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 秒杀 删除秒杀活动
+ */
+export function seckillAtivityDelApi(id) {
+  return request({
+    url: `/admin/platform/seckill/activity/delete/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 秒杀 编辑秒杀活动
+ */
+export function seckillAtivityUpdateApi(data) {
+  return request({
+    url: `/admin/platform/seckill/activity/update`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 秒杀 秒杀活动开关
+ */
+export function seckillAtivitySwitchApi(id) {
+  return request({
+    url: `/admin/platform/seckill/activity/switch/${id}`,
+    method: 'POST',
+  });
+}
+
+/**
+ * 秒杀 秒杀商品列表
+ */
+export function seckillProListApi(params) {
+  return request({
+    url: `/admin/platform/seckill/product/page`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 秒杀 秒杀商品删除
+ */
+export function seckillProDelApi(data) {
+  return request({
+    url: `/admin/platform/seckill/product/delete`,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 秒杀 秒杀商品设置活动价
+ */
+export function seckillProSetPriceApi(data) {
+  return request({
+    url: `/admin/platform/seckill/product/set/price`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 秒杀 秒杀商品下架
+ */
+export function seckillProDownApi(data) {
+  return request({
+    url: `/admin/platform/seckill/product/down`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 秒杀 秒杀商品审核
+ */
+export function seckillProAuditApi(data) {
+  return request({
+    url: `/admin/platform/seckill/product/audit`,
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 氛围图 -- 选择商品列表 氛围图、活动边框公用同一接口,type传值判断
+ */
+export function selectProductList(data) {
+  return request.get(`marketing/spu/lst`, data);
+}
+/**
+ * @description 氛围图 -- 创建氛围图
+ */
+export function createAtuosphere(data) {
+  return request.post(`admin/platform/activitystyle/save`, data);
+}
+/**
+ * @description 氛围图 -- 编辑氛围图
+ */
+export function atuosphereUpdateApi(data) {
+  return request.post(`admin/platform/activitystyle/update`, data);
+}
+/**
+ * @description 活动样式
+ */
+export function atuosphereList(params) {
+  return request({
+    url: `/admin/platform/activitystyle/list`,
+    method: 'get',
+    params,
+  });
+}
+/**
+ * @description 活动样式
+ */
+export function atmosphereStatusApi(data) {
+  return request({
+    url: `/admin/platform/activitystyle/status`,
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 活动样式
+ */
+export function atmosphereDelete(params) {
+  return request({
+    url: `/admin/platform/activitystyle/delete`,
+    method: 'get',
+    params,
+  });
+}
+/**
+ * @description 秒杀商品添加
+ */
+export function seckillProAdd(data) {
+  return request({
+    url: `/admin/platform/seckill/product/add`,
+    method: 'POST',
+    data,
+  });
+}

+ 349 - 0
src/api/merchant.js

@@ -0,0 +1,349 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 商户分类 列表
+ */
+export function merchantCategoryListApi(params) {
+  return request({
+    url: '/admin/platform/merchant/category/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商户分类 全部列表
+ */
+export function merchantCategoryAllListApi() {
+  return request({
+    url: '/admin/platform/merchant/category/all/list',
+    method: 'get',
+  });
+}
+
+/**
+ * 商户分类 添加
+ */
+export function merchantCategoryAddApi(data) {
+  return request({
+    url: '/admin/platform/merchant/category/add',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户分类 编辑
+ */
+export function merchantCategoryUpdateApi(data) {
+  return request({
+    url: '/admin/platform/merchant/category/update',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户分类 删除
+ */
+export function merchantCategoryDeleteApi(id) {
+  return request({
+    url: `/admin/platform/merchant/category/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 店铺类型 列表
+ */
+export function merchantTypeListApi(params) {
+  return request({
+    url: '/admin/platform/merchant/type/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 店铺类型 全部列表
+ */
+export function merchantTypeAllListApi() {
+  return request({
+    url: '/admin/platform/merchant/type/all/list',
+    method: 'get',
+  });
+}
+
+/**
+ * 店铺类型 添加
+ */
+export function merchantTypeAddApi(data) {
+  return request({
+    url: '/admin/platform/merchant/type/add',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 店铺类型 编辑
+ */
+export function merchantTypeUpdateApi(data) {
+  return request({
+    url: '/admin/platform/merchant/type/update',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 店铺类型 删除
+ */
+export function merchantTypeDeleteApi(id) {
+  return request({
+    url: `/admin/platform/merchant/type/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户 列表
+ */
+export function merchantListApi(params) {
+  return request({
+    url: '/admin/platform/merchant/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商户 添加
+ */
+export function merchantAddApi(data) {
+  return request({
+    url: '/admin/platform/merchant/add',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户 编辑
+ */
+export function merchantUpdateApi(data) {
+  return request({
+    url: '/admin/platform/merchant/update',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户 关闭
+ */
+export function merchantCloseApi(id) {
+  return request({
+    url: `/admin/platform/merchant/close/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户 详情
+ */
+export function merchantDetailApi(id) {
+  return request({
+    url: `/admin/platform/merchant/detail/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 商户 开启
+ */
+export function merchantOpenApi(id) {
+  return request({
+    url: `/admin/platform/merchant/open/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户 推荐开关
+ */
+export function merchantSwitchApi(id) {
+  return request({
+    url: `/admin/platform/merchant/recommend/switch/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户 修改复制商品数量
+ */
+export function merchantCopyNumApi(data) {
+  return request({
+    url: `/admin/platform/merchant/update/copy/product/num`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户 修改商户手机号
+ */
+export function merchantupdatePhoneApi(data) {
+  return request({
+    url: `/admin/platform/merchant/update/phone`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户 权限规则菜单列表
+ * @param pram
+ */
+export function menuMerListApi(params) {
+  const data = {
+    menuType: params.menuType, //菜单类型:M-目录,C-菜单,A-按钮
+    name: params.name, //菜单名称
+  };
+  return request({
+    url: `/admin/platform/merchant/menu/list`,
+    method: 'get',
+    params: data,
+  });
+}
+
+/**
+ * 商户 权限规则新增菜单
+ * @param data
+ */
+export function menuMerAdd(data) {
+  let systemMenuRequest = data;
+  return request({
+    url: `/admin/platform/merchant/menu/add`,
+    method: 'post',
+    data: systemMenuRequest,
+  });
+}
+
+/**
+ * 商户 权限规则删除菜单
+ * @param data
+ */
+export function menuMerDelete(id) {
+  return request({
+    url: `/admin/platform/merchant/menu/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户 权限规则菜单详情
+ * @param data
+ */
+export function menuMerInfo(id) {
+  return request({
+    url: `/admin/platform/merchant/menu/info/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 商户 权限规则菜单修改
+ * @param data
+ */
+export function menuMerUpdate(data) {
+  let systemMenuRequest = data;
+  return request({
+    url: `/admin/platform/merchant/menu/update`,
+    method: 'post',
+    data: systemMenuRequest,
+  });
+}
+
+/**
+ * 权限规则修改菜单显示状态
+ * @param data
+ */
+export function menuMerUpdateShowStatus(params) {
+  return request({
+    url: `/admin/platform/merchant/menu/update/show/${params.id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商户入驻分页列表
+ * @param data
+ */
+export function merApplyListApi(params) {
+  return request({
+    url: `/admin/platform/merchant/apply/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商户入驻审核
+ * @param data
+ */
+export function merApplyAuditApi(data) {
+  return request({
+    url: `/admin/platform/merchant/apply/audit`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户入驻备注
+ * @param data
+ */
+export function merApplyRemarkApi(data) {
+  return request({
+    url: `/admin/platform/merchant/apply/remark`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商户分页列表表头数量
+ * @param data
+ */
+export function merHeaderNumApi(params) {
+  return request({
+    url: `/admin/platform/merchant/list/header/num`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 重置商户密码
+ * @param data
+ */
+export function merRsetPasswordApi(id) {
+  return request({
+    url: `/admin/platform/merchant/reset/password/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 可用分类商户列表
+ * @param data
+ */
+export function merCategoryListApi() {
+  return request({
+    url: `/admin/platform/merchant/use/category/list`,
+    method: 'get',
+  });
+}

+ 317 - 0
src/api/order.js

@@ -0,0 +1,317 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 订单 列表
+ * @param prams
+ */
+export function orderListApi(params) {
+  return request({
+    url: '/admin/platform/order/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 列表 获取各状态数量
+ * @param params
+ */
+export function orderStatusNumApi(params) {
+  return request({
+    url: '/admin/platform/order/status/num',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 列表 数据统计
+ * @param params
+ */
+export function orderListDataApi(params) {
+  return request({
+    url: '/admin/store/order/list/data',
+    method: 'get',
+    params,
+  });
+}
+/**
+ * 订单 删除
+ * @param params
+ */
+export function orderDeleteApi(params) {
+  return request({
+    url: '/admin/store/order/delete',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 编辑
+ * @param prams
+ */
+export function orderUpdateApi(data, params) {
+  return request({
+    url: '/admin/store/order/update',
+    method: 'post',
+    data,
+    params,
+  });
+}
+
+/**
+ * 订单 记录
+ * @param prams
+ */
+export function orderLogApi(params) {
+  return request({
+    url: '/admin/store/order/status/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 详情
+ * @param prams
+ */
+export function orderDetailApi(params) {
+  return request({
+    url: '/admin/platform/order/info',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 备注
+ * @param prams
+ */
+export function orderMarkApi(params) {
+  return request({
+    url: '/admin/store/order/mark',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 订单 发货
+ * @param prams
+ */
+export function orderSendApi(data) {
+  return request({
+    url: '/admin/store/order/send',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 订单 拒绝退款
+ * @param prams
+ */
+export function orderRefuseApi(params) {
+  return request({
+    url: '/admin/store/order/refund/refuse',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 立即退款
+ * @param prams
+ */
+export function orderRefundApi(params) {
+  return request({
+    url: '/admin/store/order/refund',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 订单 核销订单
+ * @param prams
+ */
+export function writeUpdateApi(vCode) {
+  return request({
+    url: `/admin/store/order/writeUpdate/${vCode}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 订单 核销码查询待核销订单
+ * @param prams
+ */
+export function writeConfirmApi(vCode) {
+  return request({
+    url: `/admin/store/order/writeConfirm/${vCode}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 订单 统计 头部数据
+ */
+export function orderStatisticsApi() {
+  return request({
+    url: `/admin/store/order/statistics`,
+    method: 'get',
+  });
+}
+
+/**
+ * 核销订单 月列表数据
+ */
+export function statisticsDataApi(params) {
+  return request({
+    url: `/admin/store/order/statisticsData`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 一键改价
+ */
+export function updatePriceApi(data) {
+  return request({
+    url: `admin/store/order/update/price`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ *订单统计详情
+ */
+export function orderTimeApi(params) {
+  return request({
+    url: `/admin/store/order/time`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ *面单默认配置信息
+ */
+export function sheetInfoApi() {
+  return request({
+    url: `/admin/store/order/sheet/info`,
+    method: 'get',
+  });
+}
+
+/**
+ *平台端订单物流详情
+ */
+export function getLogisticsInfoApi(params) {
+  return request({
+    url: `/admin/platform/order/getLogisticsInfo`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ *视频号物流公司
+ */
+export function companyGetListApi() {
+  return request({
+    url: `/admin/pay/component/delivery/company/get/list`,
+    method: 'get',
+  });
+}
+
+/**
+ *视频号物流公司
+ */
+export function videoSendApi(data) {
+  return request({
+    url: `/admin/store/order/video/send`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ *打印小票
+ */
+export function orderPrint(id) {
+  return request({
+    url: `/admin/yly/print/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ *退款列表
+ */
+export function refundListApi(params) {
+  return request({
+    url: `/admin/platform/refund/order/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ *退款详情
+ */
+export function refundDetailApi(refundOrderNo) {
+  return request({
+    url: `/admin/platform/refund/order/detail/${refundOrderNo}`,
+    method: 'get',
+  });
+}
+
+/**
+ *平台备注退款订单
+ */
+export function refundMarkApi(data) {
+  return request({
+    url: `/admin/platform/refund/order/mark`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ *获取退款订单各状态数量
+ */
+export function refundStatusNumApi(params) {
+  return request({
+    url: `/admin/platform/refund/order/status/num`,
+    method: 'GET',
+    params,
+  });
+}
+
+/**
+ * 获取订单发货单列表
+ * @param orderNo 订单号
+ */
+export function orderInvoiceListApi(orderNo) {
+  return request({
+    url: `/admin/platform/order/${orderNo}/invoice/list`,
+    method: 'get',
+  });
+}
+
+/**
+ * 平台端退款订单详情
+ * @param refundOrderNo 订单号
+ */
+export function refundOrderDetailApi(refundOrderNo) {
+  return request({
+    url: `/admin/platform/refund/order/detail/${refundOrderNo}`,
+    method: 'get',
+  });
+}

+ 467 - 0
src/api/product.js

@@ -0,0 +1,467 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 商品详情
+ * @param pram
+ */
+export function productDetailApi(id) {
+  return request({
+    url: `/admin/platform/product/info/${id}`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 删除商品
+ * @param pram
+ */
+export function productDeleteApi(id, type) {
+  return request({
+    url: `/admin/store/product/delete/${id}`,
+    method: 'get',
+    params: { type: type },
+  });
+}
+
+/**
+ * 商品列表 表头数量
+ */
+export function productHeadersApi() {
+  return request({
+    url: '/admin/platform/product/tabs/headers',
+    method: 'GET',
+  });
+}
+
+/**
+ * 商品列表
+ * @param pram
+ */
+export function productLstApi(params) {
+  return request({
+    url: '/admin/platform/product/list',
+    method: 'GET',
+    params,
+  });
+}
+
+/**
+ * 商品审核
+ * @param pram
+ */
+export function productAuditApi(data) {
+  return request({
+    url: `/admin/platform/product/audit`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 修改虚拟销量
+ * @param pram
+ */
+export function onChangeSalesApi(data) {
+  return request({
+    url: `/admin/platform/product/virtual/sales`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商品分类 分类缓存树
+ * @param pram
+ */
+export function productCategoryApi() {
+  return request({
+    url: '/admin/platform/product/category/cache/tree',
+    method: 'GET',
+  });
+}
+/**
+ * 商品分类 列表
+ * @param pram
+ */
+export function productCategoryListApi(params) {
+  return request({
+    url: '/admin/platform/product/category/list',
+    method: 'GET',
+    params,
+  });
+}
+/**
+ * 商品分类 新增
+ * @param pram
+ */
+export function productCategoryAddApi(data) {
+  return request({
+    url: '/admin/platform/product/category/add',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * 商品分类 编辑
+ * @param pram
+ */
+export function productCategoryUpdateApi(data) {
+  return request({
+    url: '/admin/platform/product/category/update',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * 商品分类 删除
+ * @param pram
+ */
+export function productCategoryDeleteApi(id) {
+  return request({
+    url: `/admin/platform/product/category/delete/${id}`,
+    method: 'post',
+  });
+}
+/**
+ * 商品分类 修改分类显示状态
+ * @param pram
+ */
+export function productCategoryShowApi(id) {
+  return request({
+    url: `/admin/platform/product/category/update/show/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 商品上架
+ * @param pram
+ */
+export function putOnShellApi(id) {
+  return request({
+    url: `/admin/store/product/putOnShell/${id}`,
+    method: 'GET',
+  });
+}
+/**
+ * 商品强制下架
+ * @param pram
+ */
+export function offShellApi(data) {
+  return request({
+    url: `/admin/platform/product/force/down`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商品评论 列表
+ * @param pram
+ */
+export function replyListApi(params) {
+  return request({
+    url: '/admin/platform/product/reply/list',
+    method: 'GET',
+    params,
+  });
+}
+/**
+ * 商品评论 新增
+ * @param pram
+ */
+export function replyCreatApi(data) {
+  return request({
+    url: '/admin/store/product/reply/save',
+    method: 'POST',
+    data,
+  });
+}
+/**
+ * 商品评论 编辑
+ * @param pram
+ */
+export function replyEditApi(data) {
+  return request({
+    url: '/admin/store/product/reply/update',
+    method: 'POST',
+    data,
+  });
+}
+/**
+ * 商品评论 详情
+ * @param pram
+ */
+export function replyInfoApi(id) {
+  return request({
+    url: `/admin/store/product/reply/info/${id}`,
+    method: 'GET',
+  });
+}
+/**
+ * 商品评论 删除
+ * @param pram
+ */
+export function replyDeleteApi(id) {
+  return request({
+    url: `/admin/platform/product/reply/delete/${id}`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 商品评论 导出
+ * @param pram
+ */
+export function productExportApi(params) {
+  return request({
+    url: `/admin/export/excel/product`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商品复制 99Api
+ * @param pram
+ */
+export function importProductApi(params) {
+  return request({
+    url: `/admin/store/product/importProduct`,
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 商品复制 一号通
+ * @param pram
+ */
+export function copyProductApi(data) {
+  return request({
+    url: `/admin/store/product/copy/product`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 恢复
+ * @param pram
+ */
+export function restoreApi(id) {
+  return request({
+    url: `/admin/store/product/restore/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 商品列表 导出
+ * @param pram
+ */
+export function productExcelApi(params) {
+  return request({
+    url: `/admin/export/excel/product`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 商品列表 获取复制商品配置
+ * @param pram
+ */
+export function copyConfigApi() {
+  return request({
+    url: `/admin/store/product/copy/config`,
+    method: 'post',
+  });
+}
+
+/**
+ * 订单数据 导出
+ * @param pram
+ */
+export function orderExcelApi(params) {
+  return request({
+    url: `/admin/export/excel/order`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 品牌 列表
+ * @param pram
+ */
+export function brandListApi(params) {
+  return request({
+    url: `/admin/platform/product/brand/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 品牌缓存列表(全部)
+ * @param pram
+ */
+export function brandListAllApi() {
+  return request({
+    url: `/admin/platform/product/brand/cache/list`,
+    method: 'get',
+  });
+}
+
+/**
+ * 品牌 新增
+ * @param pram
+ */
+export function brandAddApi(data) {
+  return request({
+    url: `/admin/platform/product/brand/add`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 品牌 编辑
+ * @param pram
+ */
+export function brandUpdateApi(data) {
+  return request({
+    url: `/admin/platform/product/brand/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 品牌 删除
+ * @param pram
+ */
+export function brandDeleteApi(id) {
+  return request({
+    url: `/admin/platform/product/brand/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 品牌 修改品牌显示状态
+ * @param pram
+ */
+export function brandShowApi(id) {
+  return request({
+    url: `/admin/platform/product/brand/update/show/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 保障服务 列表
+ * @param pram
+ */
+export function guaranteeListApi(params) {
+  return request({
+    url: `/admin/platform/product/guarantee/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 保障服务 新增
+ * @param pram
+ */
+export function guaranteeAddApi(data) {
+  return request({
+    url: `/admin/platform/product/guarantee/add`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 保障服务 编辑
+ * @param pram
+ */
+export function guaranteeUpdateApi(data) {
+  return request({
+    url: `/admin/platform/product/guarantee/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 保障服务 删除
+ * @param pram
+ */
+export function guaranteeDeleteApi(id) {
+  return request({
+    url: `/admin/platform/product/guarantee/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 保障服务 修改品牌显示状态
+ * @param pram
+ */
+export function guaranteeShowApi(id) {
+  return request({
+    url: `/admin/platform/product/guarantee/update/show/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 修改商品
+ * @param pram
+ */
+export function updateProductApi(data) {
+  return request({
+    url: `/admin/platform/product/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 商品可用优惠券列表
+ * @param pram
+ */
+export function productCouponListApi() {
+  return request({
+    url: '/admin/platform/coupon/product/usable/list',
+    method: 'get',
+  });
+}
+
+/**
+ * 商品搜索分页列表(活动)
+ * @param pram
+ */
+export function productActivityListApi(params) {
+  return request({
+    url: '/admin/platform/product/activity/search/page',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 根据商品id集合查询商品列表
+ * @param pram
+ */
+export function productListbyidsApi(ids) {
+  return request({
+    url: `/admin/platform/product/listbyids/${ids}`,
+    method: 'get',
+  });
+}

+ 108 - 0
src/api/role.js

@@ -0,0 +1,108 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 新增
+ * @param
+ */
+export function addRole(pram) {
+  const data = {
+    level: pram.level,
+    roleName: pram.roleName,
+    status: pram.status,
+    rules: pram.rules,
+  };
+  // data.rules = pram.rules.join(',')
+  return request({
+    url: '/admin/platform/role/save',
+    method: 'POST',
+    data: data,
+  });
+}
+
+/**
+ * 删除
+ * @param
+ */
+export function delRole(id) {
+  return request({
+    url: `admin/platform/role/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 详情
+ * @param
+ */
+export function getInfo(pram) {
+  return request({
+    url: `/admin/platform/role/info/${pram}`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 分页列表
+ * @param
+ */
+export function getRoleList(pram) {
+  const data = {
+    createTime: pram.createTime,
+    updateTime: pram.updateTime,
+    level: pram.level,
+    page: pram.page,
+    limit: pram.limit,
+    roleName: pram.roleName,
+    rules: pram.rules,
+    status: pram.status,
+  };
+  return request({
+    url: '/admin/platform/role/list',
+    method: 'get',
+    params: data,
+  });
+}
+
+/**
+ * 修改
+ * @param
+ */
+export function updateRole(pram) {
+  const data = {
+    id: pram.id,
+    roleName: pram.roleName,
+    rules: pram.rules,
+    status: pram.status,
+  };
+  return request({
+    url: '/admin/platform/role/update',
+    method: 'post',
+    params: { id: pram.id },
+    data: data,
+  });
+}
+
+/**
+ * 修改身份状态
+ * @param
+ */
+export function updateRoleStatus(data) {
+  return request({
+    url: '/admin/platform/role/updateStatus',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 缓存菜单
+ * @param
+ */
+export function menuCacheList(pram) {
+  return request({
+    url: '/admin/platform/menu/cache/tree',
+    method: 'get',
+  });
+}

+ 24 - 0
src/api/roleApi.js

@@ -0,0 +1,24 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 角色详情
+ */
+export function getRoleById(pram) {
+  return request({
+    url: `/admin/system/role/info/${pram.roles}`,
+    method: 'GET',
+  });
+}
+
+/**
+ * 菜单
+ * @param pram
+ */
+export function menuListApi() {
+  return request({
+    url: '/admin/platform/getMenus',
+    method: 'GET',
+  });
+}

+ 86 - 0
src/api/schedule.js

@@ -0,0 +1,86 @@
+ 
+
+import request from '@/utils/request';
+
+// 定时任务列表
+export function jobList() {
+  return request({
+    url: '/admin/platform/schedule/job/list',
+    method: 'get',
+  });
+}
+
+// 定时任务日志分页列表
+export function jobLogList(data) {
+  return request({
+    url: '/admin/platform/schedule/job/log/list',
+    method: 'get',
+    params: { ...data },
+  });
+}
+
+// 添加定时任务
+export function scheduleJobAdd(pram) {
+  const data = {
+    jobId: pram.jobId,
+    beanName: pram.beanName,
+    cronExpression: pram.cronExpression,
+    methodName: pram.methodName,
+    params: pram.params,
+    remark: pram.remark,
+  };
+  return request({
+    url: '/admin/platform/schedule/job/add',
+    method: 'post',
+    data: data,
+  });
+}
+
+// 删除定时任务
+export function scheduleJobDelete(id) {
+  return request({
+    url: `/admin/platform/schedule/job/delete/${id}`,
+    method: 'post',
+  });
+}
+
+// 启动定时任务
+export function scheduleJobStart(id) {
+  return request({
+    url: `/admin/platform/schedule/job/start/${id}`,
+    method: 'post',
+  });
+}
+
+// 暂停定时任务
+export function scheduleJobSuspend(id) {
+  return request({
+    url: `/admin/platform/schedule/job/suspend/${id}`,
+    method: 'post',
+  });
+}
+
+// 立即执行定时任务(一次)暂停定时任务
+export function scheduleJobTrig(id) {
+  return request({
+    url: `admin/platform/schedule/job/trig/${id}`,
+    method: 'post',
+  });
+}
+
+// 定时任务编辑
+export function scheduleJobUpdate(pram) {
+  const data = {
+    jobId: pram.jobId,
+    beanName: pram.beanName,
+    cronExpression: pram.cronExpression,
+    methodName: pram.methodName,
+    params: pram.params,
+    remark: pram.remark,
+  };
+  return request({
+    url: '/admin/platform/schedule/job/update',
+    method: 'post',
+    data: { ...data },
+  });
+}

+ 207 - 0
src/api/sms.js

@@ -0,0 +1,207 @@
+ 
+
+import request from '@/utils/request';
+/**
+ * @description 短信发送记录 -- 列表
+ */
+export function smsLstApi(params) {
+  return request({
+    url: '/admin/platform/one/pass/user/record',
+    method: 'get',
+    params,
+  });
+}
+/**
+ * @description 短信账户 -- 登录
+ */
+export function configApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/login',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 短信账户 -- 获取验证码
+ */
+export function captchaApi(data) {
+  return request({
+    url: `/admin/platform/one/pass/sendUserCode`,
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 短信账户 -- 注册
+ */
+export function registerApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/register',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 短信账户 -- 是否登录
+ */
+export function isLoginApi() {
+  return request({
+    url: '/admin/platform/one/pass/isLogin',
+    method: 'get',
+  });
+}
+/**
+ * @description 短信账户 -- 退出登录
+ */
+export function logoutApi() {
+  return request({
+    url: '/admin/platform/one/pass/logout',
+    method: 'post',
+  });
+}
+/**
+ * @description 短信账户 -- 剩余条数
+ */
+export function smsNumberApi() {
+  return request({
+    url: '/admin/sms/logout',
+    method: 'get',
+  });
+}
+/**
+ * @description 短信模板 -- 列表
+ */
+export function smsTempLstApi(params) {
+  return request({
+    url: '/admin/platform/one/pass/sms/temps',
+    method: 'get',
+    params,
+  });
+}
+/**
+ * @description 短信购买 -- 支付套餐
+ */
+export function smsPriceApi(params) {
+  return request({
+    url: '/admin/platform/one/pass/meal/list',
+    method: 'get',
+    params,
+  });
+}
+/**
+ * @description 短信购买 -- 支付码
+ */
+export function payCodeApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/meal/code',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 短信模板 -- 添加表单
+ */
+export function tempCreateApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/sms/temp/apply',
+    method: 'post',
+    data,
+  });
+}
+/**
+ * @description 短信 -- 用户信息
+ */
+export function smsInfoApi() {
+  return request({
+    url: '/admin/platform/one/pass/info',
+    method: 'get',
+  });
+}
+
+/**
+ * @description 短信 -- 短信提醒开关保存
+ */
+export function smsSaveApi(params) {
+  return request({
+    url: '/admin/sms/config/save',
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * @description 短信 -- 修改密码
+ */
+export function updatePasswordApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/update/password',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 短信 -- 修改手机号
+ */
+export function updateHoneApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/update/phone',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 一号通 -- 服务开通
+ */
+export function serviceOpenApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/service/open',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 一号通 -- 电子面单模板
+ */
+export function exportTempApi(params) {
+  return request({
+    url: '/admin/express/template',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 全部物流公司
+ */
+export function expressAllApi(params) {
+  return request({
+    url: 'admin/express/all',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 修改签名
+ */
+export function smsSignApi(data) {
+  return request({
+    url: '/admin/platform/one/pass/sms/modify/sign',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 修改手机号验证账号密码
+ */
+export function phoneValidatorApi(data) {
+  return request({
+    url: 'admin/platform/one/pass/update/phone/validator',
+    method: 'post',
+    data,
+  });
+}

+ 22 - 0
src/api/system.js

@@ -0,0 +1,22 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * @description 协议管理-- 详情
+ */
+export function agreementInfoApi(data) {
+  return request.get(`admin/platform/agreement/${data}`);
+}
+
+/**
+ * @description 协议管理-- 保存
+ */
+export function agreementSaveApi(save, data) {
+  // return request.post(`admin/platform/agreement/${save}`, data);
+  return request({
+    url: `admin/platform/agreement/${save}`,
+    method: 'POST',
+    data,
+  });
+}

+ 121 - 0
src/api/systemConfig.js

@@ -0,0 +1,121 @@
+ 
+
+import request from '@/utils/request';
+
+export function configCheckUnique(pram) {
+  const data = {
+    name: pram.name,
+  };
+  return request({
+    url: '/admin/platform/system/config/check',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function configInfo(pram) {
+  const data = {
+    formId: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/config/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function configSaveForm(pram) {
+  return request({
+    url: '/admin/platform/system/config/save/form',
+    method: 'POST',
+    data: pram,
+  });
+}
+
+export function configUpdate(pram) {
+  const data = {
+    id: pram.id,
+    systemConfigRequest: pram.systemConfigRequest,
+  };
+  return request({
+    url: '/admin/platform/system/config/update',
+    method: 'POST',
+    params: data,
+  });
+}
+
+export function configSaveUniq(pram) {
+  const data = {
+    key: pram.key,
+    value: pram.value,
+  };
+  return request({
+    url: '/admin/platform/system/config/saveuniq',
+    method: 'POST',
+    params: data,
+  });
+}
+
+export function configGetUniq(pram) {
+  const data = {
+    key: pram.key,
+  };
+  return request({
+    url: '/admin/platform/system/config/getuniq',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * 获取积分配置
+ */
+export function integralGetConfigApi() {
+  return request({
+    url: '/admin/platform/integral/get/config',
+    method: 'GET',
+  });
+}
+
+/**
+ * 编辑积分配置
+ */
+export function integralSetConfigApi(data) {
+  return request({
+    url: '/admin/platform/integral/set/config',
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 获取移动端域名
+ */
+export function frontDomainApi() {
+  return request({
+    url: '/publicly/config/get/front/domain',
+    method: 'get',
+  });
+}
+
+/**
+ * 获取积分商城图片
+ */
+ export function picConfigInfo() {
+  return request({
+    url: '/admin/platform/userenterprise/picConfigInfo',
+    method: 'get',
+  });
+}
+
+
+/**
+ * 设置积分商城图片
+ */
+ export function saveForm(data) {
+  return request({
+    url: '/admin/platform/userenterprise/save/form',
+    method: 'post',
+    data
+  });
+}

+ 139 - 0
src/api/systemFormConfig.js

@@ -0,0 +1,139 @@
+ 
+
+import request from '@/utils/request';
+
+export function getFormConfigInfo(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/form/temp/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function getFormConfigList(pram) {
+  const data = {
+    keywords: pram.keywords,
+    page: pram.page,
+    limit: pram.limit,
+  };
+  return request({
+    url: '/admin/platform/system/form/temp/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function getFormConfigSave(pram) {
+  const data = {
+    content: pram.content,
+    info: pram.info,
+    name: pram.name,
+  };
+  return request({
+    url: '/admin/platform/system/form/temp/save',
+    method: 'POST',
+    data: data,
+  });
+}
+
+export function getFormConfigEdit(pram) {
+  const params = { id: pram.id };
+  const data = {
+    content: pram.content,
+    info: pram.info,
+    name: pram.name,
+  };
+  return request({
+    url: '/admin/platform/system/form/temp/update',
+    method: 'POST',
+    params: params,
+    data: data,
+  });
+}
+
+/**
+ * 系统通知列表
+ * @param pram
+ */
+export function notificationListApi(pram) {
+  const data = {
+    sendType: pram.sendType,
+    //发送类型(1:通知会员,2:通知平台)
+  };
+  return request({
+    url: '/admin/platform/notification/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * 小程序订阅模板开关
+ * @param pram
+ */
+export function notificationRoutine(id) {
+  return request({
+    url: `/admin/platform/notification/routine/switch/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 公众号模板开关
+ * @param pram
+ */
+export function notificationWechat(id) {
+  return request({
+    url: `/admin/platform/notification/wechat/switch/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 发送短信开关
+ * @param pram
+ */
+export function notificationSms(id) {
+  return request({
+    url: `/admin/platform/notification/sms/switch/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 通知详情
+ * @param pram
+ */
+export function notificationDetail(param) {
+  let data = {
+    detailType: param.type,
+    id: param.id,
+  };
+  return request({
+    url: `/admin/platform/notification/detail`,
+    method: 'get',
+    params: data,
+  });
+}
+
+//admin/system/notification/detail
+/**
+ * 修改通知
+ * @param pram
+ */
+export function notificationUpdate(param) {
+  let data = {
+    detailType: param.type,
+    id: param.id,
+    status: param.status,
+    tempId: param.tempId,
+  };
+  return request({
+    url: `/admin/platform/notification/update`,
+    method: 'post',
+    data,
+  });
+}

+ 132 - 0
src/api/systemGroup.js

@@ -0,0 +1,132 @@
+ 
+
+import request from '@/utils/request';
+
+export function groupDelete(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/group/delete',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupInfo(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/group/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupList(pram) {
+  const data = {
+    keywords: pram.keywords,
+    page: pram.page,
+    limit: pram.limit,
+  };
+  return request({
+    url: '/admin/platform/system/group/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupDataList(pram) {
+  const data = {
+    gid: pram.gid,
+    keywords: pram.keywords,
+    page: pram.page,
+    limit: pram.limit,
+  };
+  return request({
+    url: '/admin/platform/system/group/data/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupSave(pram) {
+  const data = {
+    formId: pram.formId,
+    info: pram.info,
+    name: pram.name,
+  };
+  return request({
+    url: '/admin/platform/system/group/save',
+    method: 'POST',
+    params: data,
+  });
+}
+
+export function groupEdit(pram) {
+  const data = {
+    formId: pram.formId,
+    info: pram.info,
+    name: pram.name,
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/group/update',
+    method: 'POST',
+    params: data,
+  });
+}
+
+/**
+ * @description 页面设计 获取数据
+ */
+export function designListApi() {
+  return request.get(`/admin/platform/page/layout/index`);
+}
+
+/**
+ * @description 页面设计商品Tab 获取数据
+ */
+export function goodDesignList(pram) {
+  const data = {
+    gid: pram.gid,
+  };
+  return request({
+    url: '/admin/platform/system/group/data/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+/**
+ * @description 页面设计 保存
+ */
+export function SaveDataApi(data, url) {
+  return request({
+    url: url,
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * @description 获取配置
+ */
+export function getDataApi(data) {
+  return request({
+    url: '/admin/platform/page/layout/category/config',
+    method: 'GET',
+    data,
+  });
+}
+
+/**
+ * @description 页面底部导航
+ */
+export function getBottomNavigationApi() {
+  return request({
+    url: '/admin/platform/page/layout/bottom/navigation/get',
+    method: 'GET',
+  });
+}

+ 57 - 0
src/api/systemGroupData.js

@@ -0,0 +1,57 @@
+ 
+
+import request from '@/utils/request';
+
+export function groupDataDelete(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/group/data/delete',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupDataInfo(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/system/group/data/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupDataList(pram) {
+  const data = {
+    gid: pram.gid,
+    keywords: pram.keywords,
+    status: pram.status, // 1=开启 2=关闭
+    page: pram.page,
+    limit: pram.limit,
+  };
+  return request({
+    url: '/admin/platform/system/group/data/list',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function groupDataSave(pram) {
+  return request({
+    url: '/admin/platform/system/group/data/save',
+    method: 'POST',
+    data: pram,
+  });
+}
+
+export function groupDataEdit(pram, id) {
+  return request({
+    url: '/admin/platform/system/group/data/update',
+    method: 'POST',
+    data: pram,
+    params: { id: id },
+  });
+}

+ 78 - 0
src/api/systemSetting.js

@@ -0,0 +1,78 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 文件上传
+ * @param data
+ */
+export function fileFileApi(data, params) {
+  return request({
+    url: '/admin/platform/upload/file',
+    method: 'POST',
+    params,
+    data,
+  });
+}
+
+/**
+ * 图片上传
+ * @param data
+ */
+export function fileImageApi(data, params) {
+  return request({
+    url: '/admin/platform/upload/image',
+    method: 'POST',
+    params,
+    data,
+  });
+}
+
+/**
+ * 图片列表
+ * @param data
+ */
+export function fileListApi(params) {
+  return request({
+    url: '/admin/platform/attachment/list',
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 图片列表 删除图片
+ * @param data
+ */
+export function fileDeleteApi(id) {
+  return request({
+    url: `/admin/platform/attachment/delete`,
+    method: 'post',
+    data: { ids: id },
+  });
+}
+
+/**
+ * 图片列表 移動分類
+ * @param data
+ */
+export function attachmentMoveApi(data) {
+  return request({
+    url: `/admin/platform/attachment/move`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 微信开放平台上传素材
+ * @param data
+ */
+export function wechatUploadApi(data, params) {
+  return request({
+    url: `/admin/platform/wechat/open/media/upload`,
+    method: 'post',
+    data,
+    params,
+  });
+}

+ 183 - 0
src/api/systemadmin.js

@@ -0,0 +1,183 @@
+ 
+
+import request from '@/utils/request';
+
+export function adminDel(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/admin/delete',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function adminInfo(pram) {
+  const data = {
+    id: pram.id,
+  };
+  return request({
+    url: '/admin/platform/admin/info',
+    method: 'GET',
+    params: data,
+  });
+}
+
+export function adminList(params) {
+  return request({
+    url: '/admin/platform/admin/list',
+    method: 'GET',
+    params,
+  });
+}
+
+export function adminAdd(pram) {
+  const data = {
+    account: pram.account,
+    level: pram.level,
+    pwd: pram.pwd,
+    realName: pram.realName,
+    roles: pram.roles.join(','),
+    status: pram.status,
+    phone: pram.phone,
+  };
+  return request({
+    url: '/admin/platform/admin/save',
+    method: 'POST',
+    data: data,
+  });
+}
+
+export function adminUpdate(pram) {
+  const data = {
+    account: pram.account,
+    phone: pram.phone,
+    pwd: pram.pwd,
+    roles: pram.roles,
+    realName: pram.realName,
+    status: pram.status,
+    id: pram.id,
+    isDel: pram.isDel,
+  };
+  return request({
+    url: '/admin/platform/admin/update',
+    method: 'POST',
+    data,
+  });
+}
+
+/**
+ * 修改状态
+ * @param pram
+ */
+export function updateStatusApi(params) {
+  return request({
+    url: `/admin/platform/admin/updateStatus`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 权限规则菜单列表
+ * @param pram
+ */
+export function menuListApi(params) {
+  const data = {
+    menuType: params.menuType, //菜单类型:M-目录,C-菜单,A-按钮
+    name: params.name, //菜单名称
+  };
+  return request({
+    url: `/admin/platform/menu/list`,
+    method: 'get',
+    params: data,
+  });
+}
+
+/**
+ * 权限规则新增菜单
+ * @param data
+ */
+export function menuAdd(data) {
+  let systemMenuRequest = data;
+  return request({
+    url: `/admin/platform/menu/add`,
+    method: 'post',
+    data: systemMenuRequest,
+  });
+}
+
+/**
+ * 权限规则删除菜单
+ * @param data
+ */
+export function menuDelete(id) {
+  return request({
+    url: `/admin/platform/menu/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 权限规则菜单详情
+ * @param data
+ */
+export function menuInfo(id) {
+  return request({
+    url: `/admin/platform/menu/info/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 权限规则菜单修改
+ * @param data
+ */
+export function menuUpdate(data) {
+  let systemMenuRequest = data;
+  return request({
+    url: `/admin/platform/menu/update`,
+    method: 'post',
+    data: systemMenuRequest,
+  });
+}
+
+/**
+ * 权限规则修改菜单显示状态
+ * @param data
+ */
+export function menuUpdateShowStatus(id) {
+  return request({
+    url: `admin/platform/menu/update/show/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 敏感操作日志
+ * @param data
+ */
+export function sensitiveListApi(params) {
+  return request({
+    url: `/admin/platform/log/sensitive/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 修改登录用户信息
+ * @param data
+ */
+export function adminAccountUpdate(pram) {
+  const data = {
+    password: pram.pwd,
+    realName: pram.realName,
+  };
+  return request({
+    url: '/admin/platform/login/admin/update',
+    method: 'POST',
+    data,
+  });
+}

+ 468 - 0
src/api/user.js

@@ -0,0 +1,468 @@
+ 
+
+import request from '@/utils/request';
+
+export function login(data) {
+  return request({
+    url: '/admin/platform/login',
+    method: 'post',
+    data,
+  });
+}
+
+export function getInfo(token) {
+  return request({
+    url: '/admin/platform/getAdminInfoByToken',
+    method: 'get',
+    params: { token },
+  });
+}
+
+export function logout() {
+  return request({
+    url: '/admin/platform/logout',
+    method: 'get',
+  });
+}
+
+/**
+ * 会员管理 列表
+ * @param pram
+ */
+export function userListApi(params) {
+  return request({
+    url: `/admin/platform/user/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 企业用户 列表
+ * @param pram
+ */
+ export function enterpriseList(params) {
+  return request({
+    url: `/admin/platform/userenterprise/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 修改
+ * @param pram
+ */
+export function userUpdateApi(params, data) {
+  return request({
+    url: `/admin/platform/user/update`,
+    method: 'post',
+    params,
+    data,
+  });
+}
+
+
+
+/**
+ * 会员管理等级 修改
+ * @param pram
+ */
+export function userLevelUpdateApi(data) {
+  return request({
+    url: `/admin/user/update/level`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员管理 详情
+ * @param pram
+ */
+export function userInfoApi(params) {
+  return request({
+    url: `/admin/user/info`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 账户详情
+ * @param pram
+ */
+export function infobyconditionApi(params) {
+  return request({
+    url: `/admin/user/infobycondition`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 账户详情top数据
+ * @param pram
+ */
+export function topdetailApi(params) {
+  return request({
+    url: `/admin/user/topdetail`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 批量设置分组
+ * @param pram
+ */
+export function groupPiApi(params) {
+  return request({
+    url: `/admin/user/group`,
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 会员管理 批量设置标签
+ * @param pram
+ */
+export function tagPiApi(data) {
+  return request({
+    url: `/admin/platform/user/tag`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员管理 积分余额
+ * @param pram
+ */
+export function foundsApi(params) {
+  return request({
+    url: `/admin/platform/user/operate/integer`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 积分余额
+ * @param pram
+ */
+export function balanceApi(params) {
+  return request({
+    url: `/admin/platform/user/operate/balance`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员管理 删除
+ * @param pram
+ */
+export function userDeleteApi(params) {
+  return request({
+    url: `/admin/user/delete`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员等级 列表
+ * @param pram
+ */
+export function levelListApi() {
+  return request({
+    url: `/admin/platform/system/user/level/list`,
+    method: 'get',
+  });
+}
+
+/**
+ * 会员等级 新增
+ * @param pram
+ */
+export function levelSaveApi(data) {
+  return request({
+    url: `/admin/platform/system/user/level/save`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员等级 编辑
+ *  @param pram
+ */
+export function levelUpdateApi(data) {
+  return request({
+    url: `/admin/platform/system/user/level/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员等级 详情
+ * @param pram
+ */
+export function levelInfoApi(params) {
+  return request({
+    url: `/admin/system/user/level/info`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员等级 删除
+ * @param pram
+ */
+export function levelDeleteApi(id) {
+  return request({
+    url: `/admin/platform/system/user/level/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 会员等级 是否显示
+ * @param pram
+ */
+export function levelUseApi(data) {
+  return request({
+    url: `/admin/platform/system/user/level/use`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员标签 列表
+ * @param pram
+ */
+export function tagListApi(params) {
+  return request({
+    url: `/admin/platform/user/tag/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员标签 新增
+ * @param pram
+ */
+export function tagSaveApi(data) {
+  return request({
+    url: `/admin/platform/user/tag/save`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员标签 编辑
+ * @param pram
+ */
+export function tagUpdateApi(data) {
+  return request({
+    url: `/admin/platform/user/tag/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 会员标签 详情
+ * @param pram
+ */
+export function tagInfoApi(params) {
+  return request({
+    url: `/admin/user/tag/info`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 会员标签 删除
+ * @param pram
+ */
+export function tagDeleteApi(id) {
+  return request({
+    url: `/admin/platform/user/tag/delete/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 用户标签全部列表
+ */
+export function tagAllListApi(id) {
+  return request({
+    url: `/admin/platform/user/tag/all/list`,
+    method: 'get',
+  });
+}
+
+/**
+ *获取登录页图片
+ */
+export function getLoginPicApi() {
+  return request({
+    url: `/admin/platform/getLoginPic`,
+    method: 'get',
+  });
+}
+
+/**
+ * @description 验证码
+ */
+export function captchaApi() {
+  return request({
+    url: `/publicly/validate/code/get`,
+    method: 'get',
+  });
+}
+
+/**
+ * @description 修改上级推广人
+ */
+export function updateSpreadApi(data) {
+  return request({
+    url: `/admin/platform/retail/store/update/user/spread`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * @description 修改手机号
+ */
+export function updatePhoneApi(params) {
+  return request({
+    url: `/admin/user/update/phone`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * @description 用户详情列表
+ */
+export function userDetailApi(id) {
+  return request({
+    url: `/admin/platform/user/detail/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 认证企业用户
+ */
+export function authentication(data) {
+  return request({
+    url: `/admin/platform/userenterprise/authentication`,
+    method: 'POST',
+    data,
+  })
+}
+
+/**
+ * 关联子账号
+ * @param pram
+ */
+ export function associationAccount(data) {
+  return request({
+    url: `/admin/platform/userenterprise/addBypassAccount`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 绑定商铺
+ * @param pram
+ */
+ export function boundShop(data) {
+  return request({
+    url: `/admin/platform/userenterprise/boundShop`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 设置信用额度
+ * @param pram
+ */
+ export function setLineOfCredit(data) {
+  return request({
+    url: `/admin/platform/userenterprise/setLineOfCredit`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 获取子账号列表
+ * @param pram
+ */
+ export function bypassAccountList(id) {
+  return request({
+    url: `/admin/platform/userenterprise/bypassAccountList/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 解除子账号
+ * @param pram
+ */
+ export function updataBypassAccount(id) {
+  return request({
+    url: `/admin/platform/userenterprise/updataBypassAccount/${id}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 设置信用额度
+ * @param pram
+ */
+ export function setLineOfCreditSS(data) {
+  return request({
+    url: `/admin/platform/userenterprise/setLineOfCreditSS`,
+    method: 'post',
+    data
+  });
+}
+
+/**
+ * 注销企业账户
+ * @param pram
+ */
+ export function logoutAuthentication(id) {
+  return request({
+    url: `/admin/platform/userenterprise/logoutAuthentication/${id}`,
+    method: 'post'
+  });
+}
+
+/**
+ * 修改子账号信息
+ * @param pram
+ */
+ export function updataBypassAccount2(data) {
+  return request({
+    url: `/admin/platform/userenterprise/updataBypassAccount2`,
+    method: 'post',
+    data
+  });
+}

+ 191 - 0
src/api/videoChannel.js

@@ -0,0 +1,191 @@
+ 
+
+import request from '@/utils/request';
+
+/**
+ * 微信自定义交易组件 检查接入状态
+ */
+export function registerCheck() {
+  return request({
+    url: '/admin/platform/pay/component/register/register/check',
+    method: 'get',
+  });
+}
+
+/**
+ * 视频号 草稿列表
+ */
+export function videoChanelRegisterApply(params) {
+  return request({
+    url: `/admin/platform/pay/component/register/apply`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 视频号 草稿列表
+ */
+export function draftListApi(params) {
+  return request({
+    url: `/admin/platform/pay/component/draftproduct/draft/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 视频号 商品列表
+ */
+export function videoProductListApi(params) {
+  return request({
+    url: `/admin/platform/pay/component/product/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 视频号 类目
+ */
+export function catListApi(params) {
+  return request({
+    url: `/admin/platform/pay/component/cat/get/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 视频号 类目资质提交
+ */
+export function catAuditApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/shop/category/audit`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 视频号 草稿商品
+ */
+export function videoAddApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/draftproduct/add`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 视频号 上架
+ */
+export function videoUpApi(proId) {
+  return request({
+    url: `/admin/pay/component/product/listing/${proId}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 视频号 下架
+ */
+export function videoDownApi(proId) {
+  return request({
+    url: `/admin/pay/component/product/delisting/${proId}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 视频号 删除
+ */
+export function videoDelApi(proId) {
+  return request({
+    url: `/admin/pay/component/product/delete/${proId}`,
+    method: 'post',
+  });
+}
+
+/**
+ * 视频号 草稿商品详情
+ */
+export function draftInfoApi(id) {
+  return request({
+    url: `/admin/platform/pay/component/draftproduct/draft/get/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 视频号 草稿商品编辑
+ */
+export function draftUpdateApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/draftproduct/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 视频号 草稿商品平台审核
+ */
+export function draftProductReviewApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/draftproduct/review`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 视频号 草稿商品图片上传至微信
+ */
+export function shopImgUploadApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/shop/img/upload`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 视频号 品牌列表
+ * @param data 行业参数
+ * @returns {*} 查询结果
+ */
+export function brandListApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/shop/brand/list`,
+    method: 'get',
+    data,
+  });
+}
+
+/**
+ * 视频号 品牌和类目结果查询
+ * @param data 行业和类目参数
+ * @returns {*} 查询结果
+ */
+export function brandCatAuditResultApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/shop/audit/result`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 提交品牌审核
+ * @param data 品牌参数
+ * @returns {*} 提交结果
+ */
+export function submitBrandAuditApi(data) {
+  return request({
+    url: `/admin/platform/pay/component/shop/brand/audit`,
+    method: 'post',
+    data,
+  });
+}

+ 378 - 0
src/api/wxApi.js

@@ -0,0 +1,378 @@
+ 
+
+import request from '@/utils/request';
+
+// TODO 微信沟通难度大暂放 呵呵
+
+export function menuCreate(data) {
+  return request({
+    url: '/admin/platform/wechat/menu/public/create',
+    method: 'post',
+    params: data,
+  });
+}
+
+export function menuDelete(data) {
+  return request({
+    url: '/admin/platform/wechat/menu/public/delete',
+    method: 'post',
+    params: data,
+  });
+}
+
+/**
+ * 微信模板消息 列表
+ * @param pram
+ */
+export function wechatTemplateListApi(params) {
+  return request({
+    url: `/admin/wechat/template/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 微信模板消息 新增
+ * @param pram
+ */
+export function wechatTemplateSaveApi(data) {
+  return request({
+    url: `/admin/wechat/template/save`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 微信模板消息 编辑
+ * @param pram
+ */
+export function wechatTemplateUpdateApi(id, data) {
+  return request({
+    url: `/admin/wechat/template/update/${id}`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 微信模板消息 详情
+ * @param pram
+ */
+export function wechatTemplateInfoApi(id) {
+  return request({
+    url: `/admin/wechat/template/info/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 微信模板消息 修改状态
+ * @param pram
+ */
+export function wechatTemplateStatusApi(id, params) {
+  return request({
+    url: `/admin/wechat/template/update/status/${id}`,
+    method: 'post',
+    params,
+  });
+}
+
+/**
+ * 微信模板消息 删除
+ * @param pram
+ */
+export function wechatTemplateDeleteApi(id) {
+  return request({
+    url: `/admin/wechat/template/delete/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 关键字回复 列表
+ * @param pram
+ */
+export function wechatReplyListApi(params) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 关键字回复 新增
+ * @param pram
+ */
+export function wechatReplySaveApi(data) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/save`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 关键字回复 修改状态
+ * @param pram
+ */
+export function wechatReplyStatusApi(id) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/status/${id}`,
+    method: 'post',
+  });
+}
+/**
+ * 关键字回复 编辑
+ * @param pram
+ */
+export function wechatReplyUpdateApi(data) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/update`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 关键字回复 详情
+ * @param pram
+ */
+export function wechatReplyInfoApi(id) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/info/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 关键字回复 删除
+ * @param pram
+ */
+export function wechatReplyDeleteApi(id) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/delete/${id}`,
+    method: 'get',
+  });
+}
+
+/**
+ * 根据关键字查询微信关键字回复
+ * @param pram
+ */
+export function keywordsInfoApi(params) {
+  return request({
+    url: `/admin/platform/wechat/public/keywords/reply/info/keywords`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 微信菜单 获取数据
+ * @param pram
+ */
+export function wechatMenuApi() {
+  return request({
+    url: `/admin/platform/wechat/public/customize/menu`,
+    method: 'get',
+  });
+}
+
+/**
+ * 微信菜单 新增
+ * @param pram
+ */
+export function wechatMenuAddApi(data) {
+  return request({
+    url: `/admin/platform/wechat/public/customize/menu/create`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 小程序 公共模板列表
+ */
+export function publicTempListApi(params) {
+  return request({
+    url: `/admin/wechat/program/public/temp/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 模版所属类目
+ */
+export function categoryApi() {
+  return request({
+    url: `/admin/wechat/program/category`,
+    method: 'get',
+  });
+}
+
+/**
+ * 小程序 通过微信模板tid获取关键字列表
+ */
+export function getWeChatKeywordsByTidApi(params) {
+  return request({
+    url: `/admin/wechat/program/getWeChatKeywordsByTid`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 模板详情,主要是获取左侧标题
+ */
+export function publicTempInfoApi(params) {
+  return request({
+    url: `/admin/wechat/program/public/temp/info`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 我的模板列表
+ */
+export function myTempListApi(params) {
+  return request({
+    url: `/admin/wechat/program/my/temp/list`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 我的模板详情
+ */
+export function myTempInfoApi(params) {
+  return request({
+    url: `/admin/wechat/program/my/temp/info`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 模板新增
+ */
+export function myTempSaveApi(data) {
+  return request({
+    url: `/admin/wechat/program/my/temp/save`,
+    method: 'post',
+    data,
+  });
+}
+
+/**
+ * 小程序 模板修改
+ */
+export function myTempUpdateApi(params, data) {
+  return request({
+    url: `/admin/wechat/program/my/temp/update`,
+    method: 'post',
+    params,
+    data,
+  });
+}
+
+/**
+ * 小程序 我的模板修改状态
+ */
+export function myTempStatusApi(params) {
+  return request({
+    url: `/admin/wechat/program/my/temp/update/status`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 小程序 我的模板修改应用场景
+ */
+export function myTempTypeApi(params) {
+  return request({
+    url: `/admin/wechat/program/my/temp/update/type`,
+    method: 'get',
+    params,
+  });
+}
+
+/**
+ * 获取微信sdk配置
+ * @returns {*}
+ */
+export function getWechatConfig() {
+  return request({
+    url: `/admin/platform/wechat/get/public/js/config`,
+    method: 'get',
+    params: { url: encodeURIComponent(location.href.split('#')[0]) }, // for Test
+  });
+}
+
+/**
+ * 微信授权登录
+ * @returns {*}
+ */
+export function wechatAuth(code) {
+  return request({
+    url: `/admin/authorize/login`,
+    method: 'get',
+    params: { code },
+  });
+}
+
+/**
+ * 与微信解绑账号
+ */
+export function unbindApi() {
+  return request({
+    url: `/admin/unbind`,
+    method: 'get',
+  });
+}
+
+/**
+ * 一键同步我的模板到小程序
+ */
+export function tempAsyncApi() {
+  return request({
+    url: `/admin/platform/wechat/program/my/temp/async`,
+    method: 'get',
+  });
+}
+
+/**
+ * 公众号模板消息同步
+ */
+export function wechatAsyncApi() {
+  return request({
+    url: `/admin/platform/wechat/template/whcbqhn/sync`,
+    method: 'post',
+  });
+}
+
+/**
+ * 小程序模板消息同步
+ */
+export function routineAsyncApi() {
+  return request({
+    url: `/admin/platform/wechat/template/routine/sync`,
+    method: 'post',
+  });
+}
+
+/**
+ * 小程序源码下载
+ */
+export function wechatCodeDownload() {
+  return request({
+    url: `/admin/platform/wechat/code/download`,
+    method: 'get',
+  });
+}

BIN
src/assets/401_images/401.gif


BIN
src/assets/404_images/404.png


BIN
src/assets/404_images/404_cloud.png


BIN
src/assets/custom-theme/fonts/element-icons.ttf


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است