Bläddra i källkod

提交初始分支

yanj 3 månader sedan
förälder
incheckning
b630352e36
100 ändrade filer med 0 tillägg och 3443 borttagningar
  1. 0 36
      README.en.md
  2. 0 222
      README.es.md
  3. 0 218
      README.ja.md
  4. 0 222
      README.md
  5. 0 245
      README.zh-CN.md
  6. 0 2
      public/index.html
  7. 0 4
      public/static/js/jquery-1.11.1.min.js
  8. 0 162
      src/api/user.js
  9. 0 82
      src/components/Breadcrumb/index.vue
  10. 0 78
      src/components/ErrorLog/index.vue
  11. 0 44
      src/components/Hamburger/index.vue
  12. 0 180
      src/components/HeaderSearch/index.vue
  13. 0 145
      src/components/RightPanel/index.vue
  14. 0 60
      src/components/Screenfull/index.vue
  15. 0 175
      src/components/ThemePicker/index.vue
  16. 0 339
      src/components/hugerte/hugerte.min.js
  17. 0 1
      src/components/hugerte/icons/default/icons.min.js
  18. 0 7
      src/components/hugerte/models/dom/model.min.js
  19. 0 7
      src/components/hugerte/plugins/advlist/plugin.min.js
  20. 0 7
      src/components/hugerte/plugins/anchor/plugin.min.js
  21. 0 7
      src/components/hugerte/plugins/autosave/plugin.min.js
  22. 0 7
      src/components/hugerte/plugins/code/plugin.min.js
  23. 0 14
      src/components/hugerte/plugins/codesample/plugin.min.js
  24. 0 7
      src/components/hugerte/plugins/directionality/plugin.min.js
  25. 0 2
      src/components/hugerte/plugins/emoticons/js/emojis.min.js
  26. 0 7
      src/components/hugerte/plugins/emoticons/plugin.min.js
  27. 0 7
      src/components/hugerte/plugins/fullscreen/plugin.min.js
  28. 0 7
      src/components/hugerte/plugins/image/plugin.min.js
  29. 0 7
      src/components/hugerte/plugins/insertdatetime/plugin.min.js
  30. 0 7
      src/components/hugerte/plugins/link/plugin.min.js
  31. 0 7
      src/components/hugerte/plugins/lists/plugin.min.js
  32. 0 7
      src/components/hugerte/plugins/media/plugin.min.js
  33. 0 7
      src/components/hugerte/plugins/nonbreaking/plugin.min.js
  34. 0 7
      src/components/hugerte/plugins/pagebreak/plugin.min.js
  35. 0 7
      src/components/hugerte/plugins/preview/plugin.min.js
  36. 0 7
      src/components/hugerte/plugins/save/plugin.min.js
  37. 0 7
      src/components/hugerte/plugins/searchreplace/plugin.min.js
  38. 0 7
      src/components/hugerte/plugins/table/plugin.min.js
  39. 0 7
      src/components/hugerte/plugins/template/plugin.min.js
  40. 0 7
      src/components/hugerte/plugins/visualblocks/plugin.min.js
  41. 0 7
      src/components/hugerte/plugins/visualchars/plugin.min.js
  42. 0 7
      src/components/hugerte/plugins/wordcount/plugin.min.js
  43. 0 1
      src/components/hugerte/skins/ui/oxide/content.min.css
  44. 0 1
      src/components/hugerte/skins/ui/oxide/skin.min.css
  45. 0 339
      src/components/hugerte/themes/silver/theme.min.js
  46. 0 268
      src/components/layout/ListLayout.vue
  47. 0 9
      src/icons/index.js
  48. 0 1
      src/icons/svg/404.svg
  49. 0 1
      src/icons/svg/bug.svg
  50. 0 1
      src/icons/svg/chart.svg
  51. 0 1
      src/icons/svg/clipboard.svg
  52. 0 1
      src/icons/svg/component.svg
  53. 0 1
      src/icons/svg/dashboard.svg
  54. 0 1
      src/icons/svg/documentation.svg
  55. 0 1
      src/icons/svg/drag.svg
  56. 0 1
      src/icons/svg/edit.svg
  57. 0 1
      src/icons/svg/education.svg
  58. 0 1
      src/icons/svg/email.svg
  59. 0 1
      src/icons/svg/example.svg
  60. 0 1
      src/icons/svg/excel.svg
  61. 0 1
      src/icons/svg/exit-fullscreen.svg
  62. 0 1
      src/icons/svg/eye-open.svg
  63. 0 1
      src/icons/svg/eye.svg
  64. 0 1
      src/icons/svg/form.svg
  65. 0 1
      src/icons/svg/fullscreen.svg
  66. 0 1
      src/icons/svg/guide.svg
  67. 0 1
      src/icons/svg/icon.svg
  68. 0 1
      src/icons/svg/international.svg
  69. 0 1
      src/icons/svg/language.svg
  70. 0 1
      src/icons/svg/link.svg
  71. 0 1
      src/icons/svg/list.svg
  72. 0 1
      src/icons/svg/lock.svg
  73. 0 1
      src/icons/svg/message.svg
  74. 0 1
      src/icons/svg/money.svg
  75. 0 1
      src/icons/svg/nested.svg
  76. 0 1
      src/icons/svg/password.svg
  77. 0 1
      src/icons/svg/pdf.svg
  78. 0 1
      src/icons/svg/people.svg
  79. 0 1
      src/icons/svg/peoples.svg
  80. 0 1
      src/icons/svg/qq.svg
  81. 0 1
      src/icons/svg/search.svg
  82. 0 1
      src/icons/svg/shopping.svg
  83. 0 1
      src/icons/svg/size.svg
  84. 0 1
      src/icons/svg/skill.svg
  85. 0 1
      src/icons/svg/star.svg
  86. 0 1
      src/icons/svg/tab.svg
  87. 0 1
      src/icons/svg/table.svg
  88. 0 2
      src/icons/svg/tag-fill.svg
  89. 0 1
      src/icons/svg/theme.svg
  90. 0 1
      src/icons/svg/tree-table.svg
  91. 0 1
      src/icons/svg/tree.svg
  92. 0 1
      src/icons/svg/user.svg
  93. 0 1
      src/icons/svg/wechat.svg
  94. 0 1
      src/icons/svg/zip.svg
  95. 0 22
      src/icons/svgo.yml
  96. 0 58
      src/layout/components/AppMain.vue
  97. 0 171
      src/layout/components/Navbar.vue
  98. 0 108
      src/layout/components/Settings/index.vue
  99. 0 26
      src/layout/components/Sidebar/FixiOSBug.js
  100. 0 0
      src/layout/components/Sidebar/Item.vue

+ 0 - 36
README.en.md

@@ -1,36 +0,0 @@
-# chaos_center_admin
-
-#### Description
-{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
-
-#### Software Architecture
-Software architecture description
-
-#### Installation
-
-1.  xxxx
-2.  xxxx
-3.  xxxx
-
-#### Instructions
-
-1.  xxxx
-2.  xxxx
-3.  xxxx
-
-#### Contribution
-
-1.  Fork the repository
-2.  Create Feat_xxx branch
-3.  Commit your code
-4.  Create Pull Request
-
-
-#### Gitee Feature
-
-1.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
-2.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
-3.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
-4.  The most valuable open source project [GVP](https://gitee.com/gvp)
-5.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
-6.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 222
README.es.md


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 218
README.ja.md


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 222
README.md


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 245
README.zh-CN.md


+ 0 - 2
public/index.html

@@ -5,12 +5,10 @@
   <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">
-  <link rel="icon" href="/static/image/<%= VUE_APP_NAME %>/favicon.png">
   <title>Website</title>
 </head>
 <body>
 <div id="app"></div>
 <!-- built files will be auto injected -->
-
 </body>
 </html>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 4
public/static/js/jquery-1.11.1.min.js


+ 0 - 162
src/api/user.js

@@ -1,163 +1 @@
 import request from '@/utils/request'
-
-
-
-
-/**
- * 获取后台用户列表
- * */
-export function getAdminList(data) {
-  return request({
-    url: '/api/admin/user/get-admin-list',
-    method: 'get',
-    params: data
-  })
-}
-
-/**
- * 新增后台用户
- * */
-export function adminUserAdd(data) {
-  return request({
-    url: '/api/admin/user/add/admin-user',
-    method: 'put',
-    data
-  })
-}
-
-/**
- * 修改后台角色
- * */
-export function adminUserEdit(data) {
-  return request({
-    url: '/api/admin/user/edit/admin-user',
-    method: 'post',
-    data
-  })
-}
-
-
-/**
- * 后台用户启用禁用
- * */
-export function setAdminStatus(data) {
-  return request({
-    url: '/api/admin/user/ban/admin-user',
-    method: 'post',
-    data
-  })
-}
-
-/**
- * 删除后台用户
- * */
-export function delAdminUser(data) {
-  return request({
-    url: '/api/admin/user/del/admin-user',
-    method: 'delete',
-    data
-  })
-}
-
-/**
- * 获取组织或者个人列表
- * */
-export function getOrganizationList(data) {
-  return request({
-    url: '/api/admin/organization/get-organization-list',
-    method: 'get',
-    params: data
-  })
-}
-/**
- * 获取组织或者个人微信列表
- * */
-export function getOrganizationWxList(data) {
-  return request({
-    url: '/api/admin/organization/get-organization-wx-list',
-    method: 'get',
-    params: data
-  })
-}
-/**
- * 组织或者个人启用禁用
- * */
-export function setOrganizationStatus(data) {
-  return request({
-    url: '/api/admin/organization/set-organization-status',
-    method: 'post',
-    data
-  })
-}
-
-/**
- * 组织或者个普查员申请
- * */
-export function setWorkerStatus(data) {
-  return request({
-    url: '/api/admin/organization/set-worker',
-    method: 'post',
-    data
-  })
-}
-
-/**
- * 组织或者个普查员申请
- * */
-export function setLeaderStatus(data) {
-  return request({
-    url: '/api/admin/organization/set-leader',
-    method: 'post',
-    data
-  })
-}
-/**
- * 获取组织或者个人用户列表
- * */
-export function getOrganizationUserList(data) {
-  return request({
-    url: '/api/admin/organization/get-organization-user-list',
-    method: 'get',
-    params: data
-  })
-}
-/**
- * 组织或者个人用户启用禁用
- * */
-export function setOrganizationUserStatus(data) {
-  return request({
-    url: '/api/admin/organization/set-organization-user-status',
-    method: 'post',
-    data
-  })
-}
-
-/**
- * 获取组织或者个人App列表
- * */
-export function getOrganizationAppList(data) {
-  return request({
-    url: '/api/admin/organization/get-organization-app-list',
-    method: 'get',
-    params: data
-  })
-}
-
-/**
- * 组织或者个人用户App版本授权
- * */
-export function organizationAppAuth(data) {
-  return request({
-    url: '/api/admin/organization/organization-app-auth',
-    method: 'post',
-    data
-  })
-}
-
-export function heartbeat(data) {
-  return request({
-    url: '/api/admin/user/heartbeat',
-    method: 'post',
-    data
-  })
-}

+ 0 - 82
src/components/Breadcrumb/index.vue

@@ -1,82 +0,0 @@
-<template>
-  <el-breadcrumb class="app-breadcrumb" separator="/">
-    <transition-group name="breadcrumb">
-      <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
-        <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
-        <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
-      </el-breadcrumb-item>
-    </transition-group>
-  </el-breadcrumb>
-</template>
-
-<script>
-import pathToRegexp from 'path-to-regexp'
-
-export default {
-  data() {
-    return {
-      levelList: null
-    }
-  },
-  watch: {
-    $route(route) {
-      // if you go to the redirect page, do not update the breadcrumbs
-      if (route.path.startsWith('/redirect/')) {
-        return
-      }
-      this.getBreadcrumb()
-    }
-  },
-  created() {
-    this.getBreadcrumb()
-  },
-  methods: {
-    getBreadcrumb() {
-      // only show routes with meta.title
-      let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
-      const first = matched[0]
-
-      if (!this.isDashboard(first)) {
-        matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
-      }
-
-      this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
-    },
-    isDashboard(route) {
-      const name = route && route.name
-      if (!name) {
-        return false
-      }
-      return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
-    },
-    pathCompile(path) {
-      // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
-      const { params } = this.$route
-      var toPath = pathToRegexp.compile(path)
-      return toPath(params)
-    },
-    handleLink(item) {
-      const { redirect, path } = item
-      if (redirect) {
-        this.$router.push(redirect)
-        return
-      }
-      this.$router.push(this.pathCompile(path))
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-breadcrumb.el-breadcrumb {
-  display: inline-block;
-  font-size: 14px;
-  line-height: 50px;
-  margin-left: 8px;
-
-  .no-redirect {
-    color: #97a8be;
-    cursor: text;
-  }
-}
-</style>

+ 0 - 78
src/components/ErrorLog/index.vue

@@ -1,78 +0,0 @@
-<template>
-  <div v-if="errorLogs.length>0">
-    <el-badge :is-dot="true" style="line-height: 25px;margin-top: -5px;" @click.native="dialogTableVisible=true">
-      <el-button style="padding: 8px 10px;" size="small" type="danger">
-        <svg-icon icon-class="bug" />
-      </el-button>
-    </el-badge>
-
-    <el-dialog :visible.sync="dialogTableVisible" width="80%" append-to-body>
-      <div slot="title">
-        <span style="padding-right: 10px;">Error Log</span>
-        <el-button size="mini" type="primary" icon="el-icon-delete" @click="clearAll">Clear All</el-button>
-      </div>
-      <el-table :data="errorLogs" border>
-        <el-table-column label="Message">
-          <template slot-scope="{row}">
-            <div>
-              <span class="message-title">Msg:</span>
-              <el-tag type="danger">
-                {{ row.err.message }}
-              </el-tag>
-            </div>
-            <br>
-            <div>
-              <span class="message-title" style="padding-right: 10px;">Info: </span>
-              <el-tag type="warning">
-                {{ row.vm.$vnode.tag }} error in {{ row.info }}
-              </el-tag>
-            </div>
-            <br>
-            <div>
-              <span class="message-title" style="padding-right: 16px;">Url: </span>
-              <el-tag type="success">
-                {{ row.url }}
-              </el-tag>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="Stack">
-          <template slot-scope="scope">
-            {{ scope.row.err.stack }}
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'ErrorLog',
-  data() {
-    return {
-      dialogTableVisible: false
-    }
-  },
-  computed: {
-    errorLogs() {
-      return this.$store.getters.errorLogs
-    }
-  },
-  methods: {
-    clearAll() {
-      this.dialogTableVisible = false
-      this.$store.dispatch('errorLog/clearErrorLog')
-    }
-  }
-}
-</script>
-
-<style scoped>
-.message-title {
-  font-size: 16px;
-  color: #333;
-  font-weight: bold;
-  padding-right: 8px;
-}
-</style>

+ 0 - 44
src/components/Hamburger/index.vue

@@ -1,44 +0,0 @@
-<template>
-  <div style="padding: 0 15px;" @click="toggleClick">
-    <svg
-      :class="{'is-active':isActive}"
-      class="hamburger"
-      viewBox="0 0 1024 1024"
-      xmlns="http://www.w3.org/2000/svg"
-      width="64"
-      height="64"
-    >
-      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
-    </svg>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Hamburger',
-  props: {
-    isActive: {
-      type: Boolean,
-      default: false
-    }
-  },
-  methods: {
-    toggleClick() {
-      this.$emit('toggleClick')
-    }
-  }
-}
-</script>
-
-<style scoped>
-.hamburger {
-  display: inline-block;
-  vertical-align: middle;
-  width: 20px;
-  height: 20px;
-}
-
-.hamburger.is-active {
-  transform: rotate(180deg);
-}
-</style>

+ 0 - 180
src/components/HeaderSearch/index.vue

@@ -1,180 +0,0 @@
-<template>
-  <div :class="{'show':show}" class="header-search">
-    <svg-icon class-name="search-icon" icon-class="search" @click.stop="click" />
-    <el-select
-      ref="headerSearchSelect"
-      v-model="search"
-      :remote-method="querySearch"
-      filterable
-      default-first-option
-      remote
-      placeholder="Search"
-      class="header-search-select"
-      @change="change"
-    >
-      <el-option v-for="item in options" :key="item.path" :value="item" :label="item.title.join(' > ')" />
-    </el-select>
-  </div>
-</template>
-
-<script>
-// fuse is a lightweight fuzzy-search module
-// make search results more in line with expectations
-import Fuse from 'fuse.js'
-import path from 'path'
-
-export default {
-  name: 'HeaderSearch',
-  data() {
-    return {
-      search: '',
-      options: [],
-      searchPool: [],
-      show: false,
-      fuse: undefined
-    }
-  },
-  computed: {
-    routes() {
-      return this.$store.getters.permission_routes
-    }
-  },
-  watch: {
-    routes() {
-      this.searchPool = this.generateRoutes(this.routes)
-    },
-    searchPool(list) {
-      this.initFuse(list)
-    },
-    show(value) {
-      if (value) {
-        document.body.addEventListener('click', this.close)
-      } else {
-        document.body.removeEventListener('click', this.close)
-      }
-    }
-  },
-  mounted() {
-    this.searchPool = this.generateRoutes(this.routes)
-  },
-  methods: {
-    click() {
-      this.show = !this.show
-      if (this.show) {
-        this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.focus()
-      }
-    },
-    close() {
-      this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.blur()
-      this.options = []
-      this.show = false
-    },
-    change(val) {
-      this.$router.push(val.path)
-      this.search = ''
-      this.options = []
-      this.$nextTick(() => {
-        this.show = false
-      })
-    },
-    initFuse(list) {
-      this.fuse = new Fuse(list, {
-        shouldSort: true,
-        threshold: 0.4,
-        location: 0,
-        distance: 100,
-        maxPatternLength: 32,
-        minMatchCharLength: 1,
-        keys: [{
-          name: 'title',
-          weight: 0.7
-        }, {
-          name: 'path',
-          weight: 0.3
-        }]
-      })
-    },
-    // Filter out the routes that can be displayed in the sidebar
-    // And generate the internationalized title
-    generateRoutes(routes, basePath = '/', prefixTitle = []) {
-      let res = []
-
-      for (const router of routes) {
-        // skip hidden router
-        if (router.hidden) { continue }
-
-        const data = {
-          path: path.resolve(basePath, router.path),
-          title: [...prefixTitle]
-        }
-
-        if (router.meta && router.meta.title) {
-          data.title = [...data.title, router.meta.title]
-
-          if (router.redirect !== 'noRedirect') {
-            // only push the routes with title
-            // special case: need to exclude parent router without redirect
-            res.push(data)
-          }
-        }
-
-        // recursive child routes
-        if (router.children) {
-          const tempRoutes = this.generateRoutes(router.children, data.path, data.title)
-          if (tempRoutes.length >= 1) {
-            res = [...res, ...tempRoutes]
-          }
-        }
-      }
-      return res
-    },
-    querySearch(query) {
-      if (query !== '') {
-        this.options = this.fuse.search(query)
-      } else {
-        this.options = []
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.header-search {
-  font-size: 0 !important;
-
-  .search-icon {
-    cursor: pointer;
-    font-size: 18px;
-    vertical-align: middle;
-  }
-
-  .header-search-select {
-    font-size: 18px;
-    transition: width 0.2s;
-    width: 0;
-    overflow: hidden;
-    background: transparent;
-    border-radius: 0;
-    display: inline-block;
-    vertical-align: middle;
-
-    ::v-deep .el-input__inner {
-      border-radius: 0;
-      border: 0;
-      padding-left: 0;
-      padding-right: 0;
-      box-shadow: none !important;
-      border-bottom: 1px solid #d9d9d9;
-      vertical-align: middle;
-    }
-  }
-
-  &.show {
-    .header-search-select {
-      width: 210px;
-      margin-left: 10px;
-    }
-  }
-}
-</style>

+ 0 - 145
src/components/RightPanel/index.vue

@@ -1,145 +0,0 @@
-<template>
-  <div ref="rightPanel" :class="{show:show}" class="rightPanel-container">
-    <div class="rightPanel-background" />
-    <div class="rightPanel">
-      <div class="handle-button" :style="{'top':buttonTop+'px','background-color':theme}" @click="show=!show">
-        <i :class="show?'el-icon-close':'el-icon-setting'" />
-      </div>
-      <div class="rightPanel-items">
-        <slot />
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import { addClass, removeClass } from '@/utils'
-
-export default {
-  name: 'RightPanel',
-  props: {
-    clickNotClose: {
-      default: false,
-      type: Boolean
-    },
-    buttonTop: {
-      default: 250,
-      type: Number
-    }
-  },
-  data() {
-    return {
-      show: false
-    }
-  },
-  computed: {
-    theme() {
-      return this.$store.state.settings.theme
-    }
-  },
-  watch: {
-    show(value) {
-      if (value && !this.clickNotClose) {
-        this.addEventClick()
-      }
-      if (value) {
-        addClass(document.body, 'showRightPanel')
-      } else {
-        removeClass(document.body, 'showRightPanel')
-      }
-    }
-  },
-  mounted() {
-    this.insertToBody()
-  },
-  beforeDestroy() {
-    const elx = this.$refs.rightPanel
-    elx.remove()
-  },
-  methods: {
-    addEventClick() {
-      window.addEventListener('click', this.closeSidebar)
-    },
-    closeSidebar(evt) {
-      const parent = evt.target.closest('.rightPanel')
-      if (!parent) {
-        this.show = false
-        window.removeEventListener('click', this.closeSidebar)
-      }
-    },
-    insertToBody() {
-      const elx = this.$refs.rightPanel
-      const body = document.querySelector('body')
-      body.insertBefore(elx, body.firstChild)
-    }
-  }
-}
-</script>
-
-<style>
-.showRightPanel {
-  overflow: hidden;
-  position: relative;
-  width: calc(100% - 15px);
-}
-</style>
-
-<style lang="scss" scoped>
-.rightPanel-background {
-  position: fixed;
-  top: 0;
-  left: 0;
-  opacity: 0;
-  transition: opacity .3s cubic-bezier(.7, .3, .1, 1);
-  background: rgba(0, 0, 0, .2);
-  z-index: -1;
-}
-
-.rightPanel {
-  width: 100%;
-  max-width: 260px;
-  height: 100vh;
-  position: fixed;
-  top: 0;
-  right: 0;
-  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .05);
-  transition: all .25s cubic-bezier(.7, .3, .1, 1);
-  transform: translate(100%);
-  background: #fff;
-  z-index: 40000;
-}
-
-.show {
-  transition: all .3s cubic-bezier(.7, .3, .1, 1);
-
-  .rightPanel-background {
-    z-index: 20000;
-    opacity: 1;
-    width: 100%;
-    height: 100%;
-  }
-
-  .rightPanel {
-    transform: translate(0);
-  }
-}
-
-.handle-button {
-  width: 48px;
-  height: 48px;
-  position: absolute;
-  left: -48px;
-  text-align: center;
-  font-size: 24px;
-  border-radius: 6px 0 0 6px !important;
-  z-index: 0;
-  pointer-events: auto;
-  cursor: pointer;
-  color: #fff;
-  line-height: 48px;
-  i {
-    font-size: 24px;
-    line-height: 48px;
-  }
-}
-</style>

+ 0 - 60
src/components/Screenfull/index.vue

@@ -1,60 +0,0 @@
-<template>
-  <div>
-    <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" />
-  </div>
-</template>
-
-<script>
-import screenfull from 'screenfull'
-
-export default {
-  name: 'Screenfull',
-  data() {
-    return {
-      isFullscreen: false
-    }
-  },
-  mounted() {
-    this.init()
-  },
-  beforeDestroy() {
-    this.destroy()
-  },
-  methods: {
-    click() {
-      if (!screenfull.enabled) {
-        this.$message({
-          message: 'you browser can not work',
-          type: 'warning'
-        })
-        return false
-      }
-      screenfull.toggle()
-    },
-    change() {
-      this.isFullscreen = screenfull.isFullscreen
-    },
-    init() {
-      if (screenfull.enabled) {
-        screenfull.on('change', this.change)
-      }
-    },
-    destroy() {
-      if (screenfull.enabled) {
-        screenfull.off('change', this.change)
-      }
-    }
-  }
-}
-</script>
-
-<style scoped>
-.screenfull-svg {
-  display: inline-block;
-  cursor: pointer;
-  fill: #5a5e66;;
-  width: 20px;
-  height: 20px;
-  vertical-align: 10px;
-}
-</style>

+ 0 - 175
src/components/ThemePicker/index.vue

@@ -1,175 +0,0 @@
-<template>
-  <el-color-picker
-    v-model="theme"
-    :predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]"
-    class="theme-picker"
-    popper-class="theme-picker-dropdown"
-  />
-</template>
-
-<script>
-const version = require('element-ui/package.json').version // element-ui version from node_modules
-const ORIGINAL_THEME = '#409EFF' // default color
-
-export default {
-  data() {
-    return {
-      chalk: '', // content of theme-chalk css
-      theme: ''
-    }
-  },
-  computed: {
-    defaultTheme() {
-      return this.$store.state.settings.theme
-    }
-  },
-  watch: {
-    defaultTheme: {
-      handler: function(val, oldVal) {
-        this.theme = val
-      },
-      immediate: true
-    },
-    async theme(val) {
-      const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
-      if (typeof val !== 'string') return
-      const themeCluster = this.getThemeCluster(val.replace('#', ''))
-      const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
-      console.log(themeCluster, originalCluster)
-
-      const $message = this.$message({
-        message: '  Compiling the theme',
-        customClass: 'theme-message',
-        type: 'success',
-        duration: 0,
-        iconClass: 'el-icon-loading'
-      })
-
-      const getHandler = (variable, id) => {
-        return () => {
-          const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
-          const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
-
-          let styleTag = document.getElementById(id)
-          if (!styleTag) {
-            styleTag = document.createElement('style')
-            styleTag.setAttribute('id', id)
-            document.head.appendChild(styleTag)
-          }
-          styleTag.innerText = newStyle
-        }
-      }
-
-      if (!this.chalk) {
-        const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
-        await this.getCSSString(url, 'chalk')
-      }
-
-      const chalkHandler = getHandler('chalk', 'chalk-style')
-
-      chalkHandler()
-
-      const styles = [].slice.call(document.querySelectorAll('style'))
-        .filter(style => {
-          const text = style.innerText
-          return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
-        })
-      styles.forEach(style => {
-        const { innerText } = style
-        if (typeof innerText !== 'string') return
-        style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
-      })
-
-      this.$emit('change', val)
-
-      $message.close()
-    }
-  },
-
-  methods: {
-    updateStyle(style, oldCluster, newCluster) {
-      let newStyle = style
-      oldCluster.forEach((color, index) => {
-        newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
-      })
-      return newStyle
-    },
-
-    getCSSString(url, variable) {
-      return new Promise(resolve => {
-        const xhr = new XMLHttpRequest()
-        xhr.onreadystatechange = () => {
-          if (xhr.readyState === 4 && xhr.status === 200) {
-            this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
-            resolve()
-          }
-        }
-        xhr.open('GET', url)
-        xhr.send()
-      })
-    },
-
-    getThemeCluster(theme) {
-      const tintColor = (color, tint) => {
-        let red = parseInt(color.slice(0, 2), 16)
-        let green = parseInt(color.slice(2, 4), 16)
-        let blue = parseInt(color.slice(4, 6), 16)
-
-        if (tint === 0) { // when primary color is in its rgb space
-          return [red, green, blue].join(',')
-        } else {
-          red += Math.round(tint * (255 - red))
-          green += Math.round(tint * (255 - green))
-          blue += Math.round(tint * (255 - blue))
-
-          red = red.toString(16)
-          green = green.toString(16)
-          blue = blue.toString(16)
-
-          return `#${red}${green}${blue}`
-        }
-      }
-
-      const shadeColor = (color, shade) => {
-        let red = parseInt(color.slice(0, 2), 16)
-        let green = parseInt(color.slice(2, 4), 16)
-        let blue = parseInt(color.slice(4, 6), 16)
-
-        red = Math.round((1 - shade) * red)
-        green = Math.round((1 - shade) * green)
-        blue = Math.round((1 - shade) * blue)
-
-        red = red.toString(16)
-        green = green.toString(16)
-        blue = blue.toString(16)
-
-        return `#${red}${green}${blue}`
-      }
-
-      const clusters = [theme]
-      for (let i = 0; i <= 9; i++) {
-        clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
-      }
-      clusters.push(shadeColor(theme, 0.1))
-      return clusters
-    }
-  }
-}
-</script>
-
-<style>
-.theme-message,
-.theme-picker-dropdown {
-  z-index: 99999 !important;
-}
-
-.theme-picker .el-color-picker__trigger {
-  height: 26px !important;
-  width: 26px !important;
-  padding: 2px;
-}
-
-.theme-picker-dropdown .el-color-dropdown__link-btn {
-  display: none;
-}
-</style>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 339
src/components/hugerte/hugerte.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/components/hugerte/icons/default/icons.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/models/dom/model.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/advlist/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/anchor/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/autosave/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/code/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 14
src/components/hugerte/plugins/codesample/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/directionality/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 2
src/components/hugerte/plugins/emoticons/js/emojis.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/emoticons/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/fullscreen/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/image/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/insertdatetime/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/link/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/lists/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/media/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/nonbreaking/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/pagebreak/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/preview/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/save/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/searchreplace/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/table/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/template/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/visualblocks/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/visualchars/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
src/components/hugerte/plugins/wordcount/plugin.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/components/hugerte/skins/ui/oxide/content.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/components/hugerte/skins/ui/oxide/skin.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 339
src/components/hugerte/themes/silver/theme.min.js


+ 0 - 268
src/components/layout/ListLayout.vue

@@ -1,268 +0,0 @@
-<template>
-  <div class="website-page">
-    <div class="page-head">
-      <slot name="head"></slot>
-    </div>
-    <div class="page-body">
-      <div class="table-option" v-if="showTable && tableData && tableData.length > 0">
-        <i class="el-icon-setting" @click="tableSettingVisible = true"></i>
-      </div>
-      <el-table
-        v-if="showTable && tableData && tableData.length > 0"
-        :data="tableData"
-        style="width: 100%"
-        @sort-change="tableSortChange"
-        @selection-change="selectionChange"
-      >
-        <el-table-column
-          v-if="selection"
-          type="selection"
-          width="55"
-        />
-        <template v-for="(column_item,column_index) in tableColumn">
-          <el-table-column
-            v-if="column_item.type === 'Index'"
-            :key="'column' + column_index"
-            type="index"
-            :label="column_item.label"
-          />
-          <el-table-column
-            v-else-if="column_item.type === 'Type'"
-            :key="'column' + column_index"
-            :prop="column_item.prop"
-            :label="column_item.label"
-          >
-            <template slot-scope="scope">
-              <el-tag v-for="(column_item_prop,column_item_prop_key) in scope.row[column_item.prop]" :key="'column_item_prop' + column_item_prop_key" :title="column_item_prop.type_name" style="margin-right: 4px;margin-bottom: 4px;">
-                {{ column_item_prop.type_name }}
-              </el-tag>
-            </template>
-          </el-table-column>
-          <el-table-column
-            v-else-if="column_item.type === 'Image'"
-            :key="'column' + column_index"
-            :prop="column_item.prop"
-            :label="column_item.label"
-          >
-            <template slot-scope="scope">
-              <div class="show-list-img">
-                <img v-if="scope.row.image_url !==''" class="blog-img" alt="image" :src="scope.row.image_url">
-                <img v-else :src="$store.getters && $store.getters.emptyImg" class="blog-img" alt="image">
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            v-else-if="column_item.prop === 'status'"
-            :key="column_index"
-            :prop="column_item.prop"
-            :label="column_item.label"
-          >
-            <template slot-scope="scope">
-              {{ scope.row.status < 1 ? '已发布' : '草稿' }}
-            </template>
-          </el-table-column>
-          <el-table-column
-            v-else
-            :key="column_index"
-            :prop="column_item.prop"
-            :label="column_item.label"
-          >
-            <template slot-scope="scope">
-              <div class="text_clamp_3" :title="scope.row[column_item.prop]" v-html="scope.row[column_item.prop]" />
-            </template>
-          </el-table-column>
-        </template>
-        <slot name="tableColumn"></slot>
-      </el-table>
-      <pagination v-if="showTable && tableData && tableData.length > 0" v-bind="paginationParams" @pagination="pagination" />
-      <transition name="el-fade-in-linear">
-        <empty v-show="!(tableData && tableData.length > 0) && showTable"></empty>
-      </transition>
-      <slot name="body"></slot>
-    </div>
-    <el-dialog title="表头设置" :visible.sync="tableSettingVisible">
-      <div class="dialog-body">
-        <el-checkbox-group v-model="columnValue">
-          <el-checkbox v-for="item in columnListData" :label="item.label"></el-checkbox>
-        </el-checkbox-group>
-      </div>
-      <slot name="footer">
-        <el-button type="primary" @click="setColumnList">确定</el-button>
-      </slot>
-    </el-dialog>
-    <show-qr ref="showQr" />
-  </div>
-</template>
-
-<script>
-import Cookies from 'js-cookie'
-import Pagination from '@/components/Pagination'
-import showQr from '@/components/showQr/showQr.vue'
-import empty from '@/components/Empty/empty'
-export default {
-  name: 'ListLayout',
-  components:{
-    Pagination,
-    showQr,
-    empty
-  },
-  props: {
-    showTable: {
-      type: Boolean,
-      default: true
-    },
-    paginationParams: {
-      type: Object,
-      default: {
-        total: 0,
-        limit: 10,
-        page: 1
-      },
-      immediate: true
-    },
-    selection: {
-      type: Boolean,
-      default: false
-    },
-    tableData: {
-      default: [],
-      type: Array
-    },
-    name: {
-      default: '',
-      type: String
-    },
-    columnList: {
-      default: [],
-      type: Array
-    }
-  },
-  watch: {
-    columnList: {
-      handler(val) {
-        if (this.name) {
-          this.columnListData = JSON.parse(JSON.stringify(val))
-          this.getColumn()
-        }
-      },
-      immediate: true
-    }
-  },
-  data() {
-    return {
-      columnListData: [],
-      tableSettingVisible: false,
-      columnValue: [],
-      tableColumn: []
-    }
-  },
-  mounted() {
-
-  },
-  methods: {
-    // 二维码
-    showQrCode(row) {
-      this.$refs.showQr.showQrCode(row.urla)
-    },
-    tableSortChange(e) {
-      this.$emit('tableSortChange',e)
-    },
-    selectionChange(e) {
-      this.$emit('selectionChange',e)
-    },
-    pagination(e) {
-      this.$emit('pagination',e)
-    },
-    getColumn() {
-     let cookie_value = Cookies.get(this.name)
-      if (cookie_value && cookie_value !== '[]') {
-        this.columnValue = JSON.parse(cookie_value)
-      } else {
-        this.columnValue = this.columnList.map((item,index)=>{if (index < 4) return item.label})
-      }
-      this.setColumnList()
-    },
-    setColumnList() {
-      let list = []
-      if (this.columnValue && this.columnValue.length > 0) {
-        this.columnList.forEach(c_item=>{
-          this.columnValue.forEach(v_item => {
-            if ( v_item === c_item.label) {
-              list.push(c_item)
-            }
-          })
-        })
-        Cookies.set(this.name,this.columnValue, { expires: new Date(Date.now() + 5 * 365 * 24 * 60 * 60 * 1000) })
-        this.tableColumn = list
-      }
-      this.tableSettingVisible = false
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.dialog-body {
-  padding-bottom: 24px;
-}
-.website-page {
-  padding: 12px 24px 24px 24px;
-  ::v-deep {
-    .el-table__empty-block {
-      width: 100% !important;
-    }
-  }
-  .table-option {
-    i {
-      font-size: 20px;
-      &:hover {
-        color: #00a0e9;
-      }
-    }
-  }
-  .table-option {
-    position: absolute;
-    z-index: 10;
-    right: 20px;
-    top: 20px;
-    i {
-      cursor: pointer;
-    }
-  }
-  .page-head {
-    padding: 24px;
-    border-radius: 6px;
-    box-shadow: 0 0 .4vw 0 rgba(0, 0, 0, 0.1);
-    border: 1px solid #eeeeee;
-    margin-bottom: 24px;
-    display:flex;
-    flex-direction: column;
-    grid-gap: 24px;
-    position: sticky;
-    top: 0;
-    &>.el-row {
-      display: flex;
-      align-items: center;
-    }
-    ::v-deep {
-      .el-cascader {
-        width: 100%;
-      }
-      .el-dropdown {
-        margin-left: 12px;
-      }
-      .el-button {
-      }
-    }
-  }
-  .page-body {
-    position: relative;
-    border-radius: 6px;
-    padding: 12px 24px;
-    border: 1px solid #eeeeee;
-    box-shadow: 0 0 .4vw 0 rgba(0, 0, 0, 0.1);
-    transition: .3s ease-in-out;
-  }
-
-}
-</style>

+ 0 - 9
src/icons/index.js

@@ -1,9 +0,0 @@
-import Vue from 'vue'
-import SvgIcon from '@/components/SvgIcon'// svg component
-
-// register globally
-Vue.component('svg-icon', SvgIcon)
-
-const req = require.context('./svg', false, /\.svg$/)
-const requireAll = requireContext => requireContext.keys().map(requireContext)
-requireAll(req)

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/404.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/bug.svg


+ 0 - 1
src/icons/svg/chart.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/clipboard.svg


+ 0 - 1
src/icons/svg/component.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h54.857v54.857H0V0zm0 73.143h54.857V128H0V73.143zm73.143 0H128V128H73.143V73.143zm27.428-18.286C115.72 54.857 128 42.577 128 27.43 128 12.28 115.72 0 100.571 0 85.423 0 73.143 12.28 73.143 27.429c0 15.148 12.28 27.428 27.428 27.428z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/dashboard.svg


+ 0 - 1
src/icons/svg/documentation.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>

+ 0 - 1
src/icons/svg/drag.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/edit.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/education.svg


+ 0 - 1
src/icons/svg/email.svg

@@ -1 +0,0 @@
-<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>

+ 0 - 1
src/icons/svg/example.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>

+ 0 - 1
src/icons/svg/excel.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/exit-fullscreen.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/eye-open.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/eye.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/form.svg


+ 0 - 1
src/icons/svg/fullscreen.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg>

+ 0 - 1
src/icons/svg/guide.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.482 70.131l36.204 16.18 69.932-65.485-61.38 70.594 46.435 18.735c1.119.425 2.397-.17 2.797-1.363v-.085L127.998.047 1.322 65.874c-1.12.597-1.519 1.959-1.04 3.151.32.511.72.937 1.2 1.107zm44.676 57.821L64.22 107.26l-18.062-7.834v28.527z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/icon.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/international.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/language.svg


+ 0 - 1
src/icons/svg/link.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.625 127.937H.063V12.375h57.781v12.374H12.438v90.813h90.813V70.156h12.374z"/><path d="M116.426 2.821l8.753 8.753-56.734 56.734-8.753-8.745z"/><path d="M127.893 37.982h-12.375V12.375H88.706V0h39.187z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/list.svg


+ 0 - 1
src/icons/svg/lock.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M119.88 49.674h-7.987V39.52C111.893 17.738 90.45.08 63.996.08 37.543.08 16.1 17.738 16.1 39.52v10.154H8.113c-4.408 0-7.987 2.94-7.987 6.577v65.13c0 3.637 3.57 6.577 7.987 6.577H119.88c4.407 0 7.987-2.94 7.987-6.577v-65.13c-.008-3.636-3.58-6.577-7.987-6.577zm-23.953 0H32.065V39.52c0-14.524 14.301-26.295 31.931-26.295 17.63 0 31.932 11.777 31.932 26.295v10.153z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/message.svg


+ 0 - 1
src/icons/svg/money.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.122 127.892v-28.68H7.513V87.274h46.609v-12.4H7.513v-12.86h38.003L.099 0h22.6l32.556 45.07c3.617 5.144 6.44 9.611 8.487 13.385 1.788-3.05 4.89-7.779 9.301-14.186L103.93 0h24.01L82.385 62.013h38.34v12.862h-46.41v12.4h46.41v11.937h-46.41v28.68H54.123z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/nested.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/password.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/pdf.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/people.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/peoples.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/qq.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/search.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/shopping.svg


+ 0 - 1
src/icons/svg/size.svg

@@ -1 +0,0 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h54.796v18.286H36.531V128H18.265V73.143H0V54.857zm127.857-36.571H91.935V128H72.456V18.286H36.534V0h91.326l-.003 18.286z"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/skill.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/star.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/tab.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/table.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 2
src/icons/svg/tag-fill.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/theme.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/tree-table.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/tree.svg


+ 0 - 1
src/icons/svg/user.svg

@@ -1 +0,0 @@
-<svg width="130" height="130" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/wechat.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
src/icons/svg/zip.svg


+ 0 - 22
src/icons/svgo.yml

@@ -1,22 +0,0 @@
-# replace default config
-
-# multipass: true
-# full: true
-
-plugins:
-
-  # - name
-  #
-  # or:
-  # - name: false
-  # - name: true
-  #
-  # or:
-  # - name:
-  #     param1: 1
-  #     param2: 2
-
-- removeAttrs:
-    attrs:
-      - 'fill'
-      - 'fill-rule'

+ 0 - 58
src/layout/components/AppMain.vue

@@ -1,58 +0,0 @@
-<template>
-  <section class="app-main">
-    <transition name="fade-transform" mode="out-in">
-      <keep-alive :include="cachedViews">
-        <router-view :key="key" />
-      </keep-alive>
-    </transition>
-  </section>
-</template>
-
-<script>
-export default {
-  name: 'AppMain',
-  computed: {
-    cachedViews() {
-      return this.$store.state.tagsView.cachedViews
-    },
-    key() {
-      return this.$route.path
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-main {
-  /* 50= navbar  50  */
-  min-height: calc(100vh - 50px);
-  width: 100%;
-  position: relative;
-  overflow: hidden;
-  padding-top: 16px;
-}
-
-.fixed-header+.app-main {
-  padding-top: 50px;
-}
-
-.hasTagsView {
-  .app-main {
-    /* 84 = navbar + tags-view = 50 + 34 */
-    min-height: calc(100vh - 84px);
-  }
-
-  .fixed-header+.app-main {
-    padding-top: 84px;
-  }
-}
-</style>
-
-<style lang="scss">
-// fix css style bug in open el-dialog
-.el-popup-parent--hidden {
-  .fixed-header {
-    padding-right: 15px;
-  }
-}
-</style>

+ 0 - 171
src/layout/components/Navbar.vue

@@ -1,171 +0,0 @@
-<template>
-  <div class="navbar">
-    <hamburger
-      id="hamburger-container"
-      :is-active="sidebar.opened"
-      class="hamburger-container"
-      @toggleClick="toggleSideBar"
-    />
-
-    <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
-
-    <div class="right-menu">
-      <template v-if="device!=='mobile'">
-        <search id="header-search" class="right-menu-item" />
-
-        <error-log class="errLog-container right-menu-item hover-effect" />
-
-        <screenfull id="screenfull" class="right-menu-item hover-effect" />
-
-      </template>
-
-      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
-        <div class="avatar-wrapper">
-          <span class="nick_name">{{ $store.getters.nick_name }}</span>
-          <i class="el-icon-caret-bottom" />
-        </div>
-        <el-dropdown-menu slot="dropdown">
-          <!--  <el-dropdown-item>
-            <router-link to="/profile/index">Profile</router-link>
-          </el-dropdown-item>-->
-          <!--          <el-dropdown-item>
-            <router-link to="/">Dashboard</router-link>
-          </el-dropdown-item>-->
-          <el-dropdown-item v-for="(item,index) in langWebsiteList" :key="index" @click.native="locationTo(item.url)">{{ item.name }}</el-dropdown-item>
-          <el-dropdown-item @click.native="logout">
-            登出
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-    </div>
-  </div>
-</template>
-
-<script>
-import { mapGetters } from 'vuex'
-import Breadcrumb from '@/components/Breadcrumb'
-import Hamburger from '@/components/Hamburger'
-import ErrorLog from '@/components/ErrorLog'
-import Screenfull from '@/components/Screenfull'
-import Search from '@/components/HeaderSearch'
-
-export default {
-  components: {
-    Breadcrumb,
-    Hamburger,
-    ErrorLog,
-    Screenfull,
-    Search
-  },
-  computed: {
-    ...mapGetters([
-      'sidebar',
-      'avatar',
-      'device'
-    ])
-  },
-
-  created() {
-  },
-  methods: {
-    locationTo(url) {
-      window.open(url,'blank')
-    },
-    toggleSideBar() {
-      this.$store.dispatch('app/toggleSideBar')
-    },
-    async logout() {
-      await this.$store.dispatch('user/logout')
-      this.$router.push(`/login?redirect=${this.$route.fullPath}`)
-    }
-  },
-  data: function() {
-    return {
-      langWebsiteList: []
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  .navbar {
-    height: 50px;
-    overflow: hidden;
-    position: relative;
-    background: #fff;
-    box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
-
-    .hamburger-container {
-      line-height: 46px;
-      height: 100%;
-      float: left;
-      cursor: pointer;
-      transition: background .3s;
-      -webkit-tap-highlight-color: transparent;
-
-      &:hover {
-        background: rgba(0, 0, 0, .025)
-      }
-    }
-
-    .breadcrumb-container {
-      float: left;
-    }
-
-    .errLog-container {
-      display: inline-block;
-      vertical-align: top;
-    }
-
-    .right-menu {
-      float: right;
-      height: 100%;
-      line-height: 50px;
-
-      &:focus {
-        outline: none;
-      }
-
-      .right-menu-item {
-        display: inline-block;
-        padding: 0 8px;
-        height: 100%;
-        font-size: 18px;
-        color: #5a5e66;
-        vertical-align: text-bottom;
-
-        &.hover-effect {
-          cursor: pointer;
-          transition: background .3s;
-
-          &:hover {
-            background: rgba(0, 0, 0, .025)
-          }
-        }
-      }
-
-      .avatar-container {
-        margin-right: 30px;
-
-        .avatar-wrapper {
-          /*margin-top: 5px;*/
-          position: relative;
-          .user-avatar {
-            cursor: pointer;
-            width: 40px;
-            height: 40px;
-            border-radius: 10px;
-          }
-
-          .el-icon-caret-bottom {
-            cursor: pointer;
-            position: absolute;
-            right: -20px;
-            top: 25px;
-            font-size: 12px;
-          }
-        }
-      }
-    }
-  }
-</style>

+ 0 - 108
src/layout/components/Settings/index.vue

@@ -1,108 +0,0 @@
-<template>
-  <div class="drawer-container">
-    <div>
-      <h3 class="drawer-title">Page style setting</h3>
-
-      <div class="drawer-item">
-        <span>Theme Color</span>
-        <theme-picker style="float: right;height: 26px;margin: -3px 8px 0 0;" @change="themeChange" />
-      </div>
-
-      <div class="drawer-item">
-        <span>Open Tags-View</span>
-        <el-switch v-model="tagsView" class="drawer-switch" />
-      </div>
-
-      <div class="drawer-item">
-        <span>Fixed Header</span>
-        <el-switch v-model="fixedHeader" class="drawer-switch" />
-      </div>
-
-      <div class="drawer-item">
-        <span>Sidebar Logo</span>
-        <el-switch v-model="sidebarLogo" class="drawer-switch" />
-      </div>
-
-    </div>
-  </div>
-</template>
-
-<script>
-import ThemePicker from '@/components/ThemePicker'
-
-export default {
-  components: { ThemePicker },
-  data() {
-    return {}
-  },
-  computed: {
-    fixedHeader: {
-      get() {
-        return this.$store.state.settings.fixedHeader
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'fixedHeader',
-          value: val
-        })
-      }
-    },
-    tagsView: {
-      get() {
-        return this.$store.state.settings.tagsView
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'tagsView',
-          value: val
-        })
-      }
-    },
-    sidebarLogo: {
-      get() {
-        return this.$store.state.settings.sidebarLogo
-      },
-      set(val) {
-        this.$store.dispatch('settings/changeSetting', {
-          key: 'sidebarLogo',
-          value: val
-        })
-      }
-    }
-  },
-  methods: {
-    themeChange(val) {
-      this.$store.dispatch('settings/changeSetting', {
-        key: 'theme',
-        value: val
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.drawer-container {
-  padding: 24px;
-  font-size: 14px;
-  line-height: 1.5;
-  word-wrap: break-word;
-
-  .drawer-title {
-    margin-bottom: 12px;
-    color: rgba(0, 0, 0, .85);
-    font-size: 14px;
-    line-height: 22px;
-  }
-
-  .drawer-item {
-    color: rgba(0, 0, 0, .65);
-    font-size: 14px;
-    padding: 12px 0;
-  }
-
-  .drawer-switch {
-    float: right
-  }
-}
-</style>

+ 0 - 26
src/layout/components/Sidebar/FixiOSBug.js

@@ -1,26 +0,0 @@
-export default {
-  computed: {
-    device() {
-      return this.$store.state.app.device
-    }
-  },
-  mounted() {
-    // In order to fix the click on menu on the ios device will trigger the mouseleave bug
-    // https://github.com/PanJiaChen/vue-element-admin/issues/1135
-    this.fixBugIniOS()
-  },
-  methods: {
-    fixBugIniOS() {
-      const $subMenu = this.$refs.subMenu
-      if ($subMenu) {
-        const handleMouseleave = $subMenu.handleMouseleave
-        $subMenu.handleMouseleave = (e) => {
-          if (this.device === 'mobile') {
-            return
-          }
-          handleMouseleave(e)
-        }
-      }
-    }
-  }
-}

+ 0 - 0
src/layout/components/Sidebar/Item.vue


Vissa filer visades inte eftersom för många filer har ändrats