├── .autod.conf.js ├── .browserslistrc ├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github └── workflows │ └── nodejs.yml ├── .gitignore ├── .gitkeep ├── .travis.yml ├── LICENSE ├── README.md ├── app.js ├── app ├── controller │ ├── auth.js │ ├── cooperation.js │ ├── document.js │ ├── user.js │ └── userGroup.js ├── extend │ ├── context.js │ └── helper.js ├── middleware │ ├── auth.js │ └── error_handler.js ├── model │ ├── document.js │ ├── user.js │ └── userGroup.js ├── router.js └── service │ ├── document.js │ ├── file.js │ ├── user.js │ └── userGroup.js ├── appveyor.yml ├── babel.config.js ├── config ├── config.default.js ├── config.local.js ├── config.prod.js └── plugin.js ├── dist ├── .gz ├── favicon.ico ├── index.html └── static │ ├── css │ ├── .gz │ ├── chunk-031a2d18.74ab8e5c.css │ ├── chunk-036c83b2.0e433876.css │ ├── chunk-0453a291.84a3f71d.css │ ├── chunk-07ff773c.4c5848f1.css │ ├── chunk-08d97dbc.13f26bae.css │ ├── chunk-09d4fff7.0e433876.css │ ├── chunk-09fb6001.a16a167d.css │ ├── chunk-0d93ffba.84125892.css │ ├── chunk-183df209.0e433876.css │ ├── chunk-1b853f91.b76d796f.css │ ├── chunk-1d6278fe.4b050bcd.css │ ├── chunk-1e8c696c.242d76d9.css │ ├── chunk-21af72e4.84579513.css │ ├── chunk-21f866d4.9ca69fc7.css │ ├── chunk-24aab2d4.0e433876.css │ ├── chunk-24aac9bc.0e433876.css │ ├── chunk-27742b86.47aac44a.css │ ├── chunk-2bdf95e0.a81301f1.css │ ├── chunk-2dff28e4.6a6265b7.css │ ├── chunk-2e58d496.251ab90a.css │ ├── chunk-2f42b10f.0e433876.css │ ├── chunk-2fb5d8e0.130761e3.css │ ├── chunk-2fc8b4e8.0e433876.css │ ├── chunk-33447ea3.d669ed2e.css │ ├── chunk-42522d03.8eb25ded.css │ ├── chunk-46ab208d.8a840cd3.css │ ├── chunk-49c42ecf.66b6551c.css │ ├── chunk-4bcc46b0.89541563.css │ ├── chunk-4ff368c5.4850904b.css │ ├── chunk-58478a4f.186591a1.css │ ├── chunk-5c6f18d1.44537098.css │ ├── chunk-5e14fede.4ff3ef29.css │ ├── chunk-5ead0492.a642b24b.css │ ├── chunk-5fc0b9e4.0e433876.css │ ├── chunk-62c85178.0e433876.css │ ├── chunk-63782e1e.a0959f87.css │ ├── chunk-67da7162.0edeff35.css │ ├── chunk-685ad028.8d6f600d.css │ ├── chunk-68fcdb6e.0e433876.css │ ├── chunk-69757b4a.47aac44a.css │ ├── chunk-7236d5c0.8bfbc48d.css │ ├── chunk-75e207f5.f8feaf32.css │ ├── chunk-77429424.96b86cbb.css │ ├── chunk-7bda4a65.0e433876.css │ ├── chunk-7cbd9acf.1079c06b.css │ ├── chunk-91323748.699e0ca6.css │ ├── chunk-be20e7e8.3bdc0e8e.css │ ├── chunk-bf114a52.bd12f7ec.css │ ├── chunk-c108eb08.1a80c68d.css │ ├── chunk-ccd92326.8e8d25a9.css │ ├── chunk-ded8e3fa.4e578b24.css │ ├── chunk-e7783a00.e117cd1c.css │ ├── chunk-ee3e0cda.0e433876.css │ ├── chunk-f08c5732.0e433876.css │ ├── chunk-f20477d2.19ea871b.css │ ├── chunk-f6b8c7fc.0e433876.css │ ├── chunk-vendors.7fd0e229.css │ ├── chunk-vendors.a4d396fb.css │ ├── index.069005a9.css │ └── index.fe78feab.css │ ├── fonts │ ├── element-icons.535877f5.woff │ ├── element-icons.732389de.ttf │ ├── iconfont.1a49aa6a.eot │ ├── iconfont.5a3d5774.ttf │ └── iconfont.8205a6d9.woff │ ├── img │ ├── .gz │ ├── 0.94004942.png │ ├── 1.0158d918.png │ ├── 2.2cc79c96.png │ ├── headerImage.baefd97f.png │ ├── iconfont.85adc24f.svg │ ├── logo.6f3c98e4.png │ ├── nodata.8468dc19.png │ └── sprite.58eaeb4e.svg │ └── js │ ├── .gz │ ├── chunk-031a2d18.8151e680.js │ ├── chunk-036c83b2.24be7ea1.js │ ├── chunk-0453a291.d1dbd738.js │ ├── chunk-07ff773c.2dc42781.js │ ├── chunk-08d97dbc.697ff010.js │ ├── chunk-09d4fff7.3446543a.js │ ├── chunk-09fb6001.e7783ea3.js │ ├── chunk-0d93ffba.6dfc141c.js │ ├── chunk-183df209.96d9be3f.js │ ├── chunk-1b853f91.fe600cff.js │ ├── chunk-1d6278fe.28c50f6a.js │ ├── chunk-1e8c696c.03d8a732.js │ ├── chunk-21af72e4.64649b0b.js │ ├── chunk-21f866d4.eb741802.js │ ├── chunk-24aab2d4.d99c059a.js │ ├── chunk-24aac9bc.b89cf70e.js │ ├── chunk-27742b86.5c7e7d7f.js │ ├── chunk-2bdf95e0.c22162a0.js │ ├── chunk-2dff28e4.a373ebe0.js │ ├── chunk-2e58d496.b57948bc.js │ ├── chunk-2f42b10f.de762f11.js │ ├── chunk-2fb5d8e0.9456661a.js │ ├── chunk-2fc8b4e8.c3fafcf9.js │ ├── chunk-33447ea3.a84316b0.js │ ├── chunk-42522d03.8a740958.js │ ├── chunk-46ab208d.7f9916cf.js │ ├── chunk-49c42ecf.fd914793.js │ ├── chunk-4bcc46b0.df6f695d.js │ ├── chunk-4ff368c5.cfb04b1c.js │ ├── chunk-58478a4f.e2a15a79.js │ ├── chunk-5c6f18d1.1326dfb5.js │ ├── chunk-5e14fede.a0a2b24a.js │ ├── chunk-5ead0492.ee09473d.js │ ├── chunk-5fc0b9e4.f3ace9d0.js │ ├── chunk-62c85178.0c622593.js │ ├── chunk-63782e1e.34c43749.js │ ├── chunk-67da7162.a9f7e8f1.js │ ├── chunk-685ad028.fe48b691.js │ ├── chunk-68fcdb6e.3e1df48a.js │ ├── chunk-69757b4a.9e778787.js │ ├── chunk-7236d5c0.62bc872a.js │ ├── chunk-75e207f5.4002cad7.js │ ├── chunk-77429424.b8d83106.js │ ├── chunk-7bda4a65.31dec854.js │ ├── chunk-7cbd9acf.7f1af772.js │ ├── chunk-91323748.08df57ad.js │ ├── chunk-be20e7e8.70c62e7e.js │ ├── chunk-bf114a52.b8fa624a.js │ ├── chunk-c108eb08.e8a616f4.js │ ├── chunk-ccd92326.1f873a50.js │ ├── chunk-ded8e3fa.250187c2.js │ ├── chunk-e7783a00.b5928a8f.js │ ├── chunk-ee3e0cda.823fb07f.js │ ├── chunk-f08c5732.b4b1104b.js │ ├── chunk-f20477d2.6db8e9d9.js │ ├── chunk-f6b8c7fc.6a1409fd.js │ ├── chunk-vendors.a9f541bd.js │ ├── chunk-vendors.faed6dcf.js │ ├── index.d9a7181e.js │ └── index.f81f1d12.js ├── jsconfig.json ├── move-web-file.js ├── package.json ├── postcss.config.js ├── public ├── favicon.ico └── index.html ├── test └── app │ └── controller │ └── home.test.js ├── vue.config.js └── web ├── App.vue ├── api ├── index.js └── modules │ ├── document.js │ ├── user.js │ └── userGroup.js ├── common ├── fonts │ ├── demo.css │ ├── demo_index.html │ ├── iconfont.css │ ├── iconfont.eot │ ├── iconfont.js │ ├── iconfont.json │ ├── iconfont.svg │ ├── iconfont.ttf │ ├── iconfont.woff │ └── iconfont.woff2 ├── images │ ├── axure.png │ ├── docs.png │ ├── excel.png │ ├── f.png │ ├── favicon.ico │ ├── headerImage.png │ ├── login-bg │ │ ├── 0.png │ │ ├── 1.png │ │ └── 2.png │ ├── logo.png │ └── nodata.png ├── js │ └── mUtils.js └── styles │ ├── element-variables.scss │ ├── index.scss │ ├── normalize.css │ └── variables.scss ├── components ├── add-cooperationer │ ├── index.js │ └── index.vue ├── author-head.vue ├── author-panel.vue ├── docs-thumbnail.vue ├── document-com-btn.vue ├── iframe-layout.vue ├── need-permission-tips │ ├── index.js │ └── index.vue ├── new-docs-btn.vue ├── new-folder │ ├── index.js │ └── index.vue ├── notFundData.vue ├── page-background.vue ├── page-footer.vue ├── page-header.vue ├── reset-password.vue ├── share-setting │ ├── index.js │ └── index.vue ├── side-bar.vue ├── sort-icon-btn.vue ├── user-head-btn.vue └── user-info.vue ├── config └── index.js ├── eventBus └── index.js ├── filters └── index.js ├── libs └── userModel.js ├── main.js ├── pages ├── 404.vue ├── Home.vue ├── Login.vue ├── dash-board-components │ ├── my-collection.vue │ ├── my-cooperation.vue │ ├── my-document.vue │ ├── my-template.vue │ ├── recycle-bin.vue │ ├── user-group.vue │ ├── visit-history.vue │ └── work.vue ├── dash-board.vue ├── docs-view │ ├── components │ │ ├── axure.vue │ │ ├── docs.vue │ │ └── sheet.vue │ └── index.vue └── editor │ ├── components │ ├── axure-edit.vue │ ├── docs-edit.vue │ └── excel-edit.vue │ └── index.vue ├── permission.js ├── router └── index.js ├── service └── httpServer.js └── store ├── index.js └── modules └── user.js /.autod.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | write: true, 5 | prefix: '^', 6 | plugin: 'autod-egg', 7 | test: [ 8 | 'test', 9 | 'benchmark', 10 | ], 11 | dep: [ 12 | 'egg', 13 | 'egg-scripts', 14 | ], 15 | devdep: [ 16 | 'egg-ci', 17 | 'egg-bin', 18 | 'egg-mock', 19 | 'autod', 20 | 'autod-egg', 21 | 'eslint', 22 | 'eslint-config-egg', 23 | ], 24 | exclude: [ 25 | './test/fixtures', 26 | './dist', 27 | ], 28 | }; 29 | 30 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | coverage 2 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'eslint-config-egg', 8 | 'plugin:vue/essential', 9 | 'eslint:recommended' 10 | ], 11 | rules: { 12 | 'no-console': 'off', 13 | 'no-debugger': 'off' 14 | }, 15 | parserOptions: { 16 | parser: 'babel-eslint' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | schedule: 12 | - cron: '0 2 * * *' 13 | 14 | jobs: 15 | build: 16 | runs-on: ${{ matrix.os }} 17 | 18 | strategy: 19 | fail-fast: false 20 | matrix: 21 | node-version: [10] 22 | os: [ubuntu-latest, windows-latest, macos-latest] 23 | 24 | steps: 25 | - name: Checkout Git Source 26 | uses: actions/checkout@v2 27 | 28 | - name: Use Node.js ${{ matrix.node-version }} 29 | uses: actions/setup-node@v1 30 | with: 31 | node-version: ${{ matrix.node-version }} 32 | 33 | - name: Install Dependencies 34 | run: npm i -g npminstall && npminstall 35 | 36 | - name: Continuous Integration 37 | run: npm run ci 38 | 39 | - name: Code Coverage 40 | uses: codecov/codecov-action@v1 41 | with: 42 | token: ${{ secrets.CODECOV_TOKEN }} 43 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | logs/ 2 | npm-debug.log 3 | yarn-error.log 4 | node_modules/ 5 | package-lock.json 6 | yarn.lock 7 | coverage/ 8 | .idea/ 9 | run/ 10 | .DS_Store 11 | *.sw* 12 | *.un~ 13 | typings/ 14 | .nyc_output/ 15 | -------------------------------------------------------------------------------- /.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/.gitkeep -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | 2 | language: node_js 3 | node_js: 4 | - '10' 5 | before_install: 6 | - npm i npminstall@5 -g 7 | install: 8 | - npminstall 9 | script: 10 | - npm run ci 11 | after_script: 12 | - npminstall codecov && codecov 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 前言 2 | 团队中会遇到在线文档管理的需求,包括技术文档,接口文档,excel文档,和产品原型的托管等需求,一直没有找到合适的开源项目来满足需求,所以动手实现了个文档管理系统(实现起来并不复杂,该教程只是提供思路,并非最佳实践) 3 | 4 | Github: [传送门](https://github.com/huangwei9527/Ink-wash-docs)
5 | 演示地址:[传送门](http://47.104.247.183:7001)
6 | 掘金文章:[传送门](https://juejin.im/post/6886735919697788941) 7 | 8 | ## node 版本 14 9 | 10 | ## 功能列表 11 | * [x] 登录注册 12 | * [x] 工作台|文档列表 13 | * [x] 文档编辑预览(支持:md, excel,html产品原型托管) 14 | * [x] 协作编辑 15 | * [x] 访问权限设置 16 | * [x] 团队管理 17 | * [x] 点赞收藏 18 | * [x] 模板管理 19 | * [x] 浏览历史 20 | * [x] 回收站 21 | * [ ] 文件夹形式阅读(接口文档) 22 | * [ ] 编辑历史版本 23 | 24 | 25 | ## 系统界面预览 26 | ![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7ed9c1e870e54da290344ab480ecf587~tplv-k3u1fbpfcp-watermark.image) 27 | 28 | 29 | ## 工程目录结构 30 | 31 | ``` 32 | |-- app --------服务器端项目代码 33 | |--controller --------用于解析用户的输入,处理后返回相应的结果 34 | |--extend --------框架的扩展 35 | |--middleware --------编写中间件 36 | |--model --------Schema数据模型 37 | |--public --------用于放置静态资源 38 | |--service --------用于编写业务逻辑层 39 | |--router.js --------用于配置 URL 路由规则 40 | |-- config --------egg 配置文件 41 | |--config.default.js --------默认配置 42 | |--config.local.js --------开发环境配置 43 | |--config.prod.js --------生产环境配置 44 | |--plugin.js --------配置需要加载的插件 45 | |-- web --------前端项目界面代码 46 | |--common --------前端界面对应静态资源 47 | |--components --------组件 48 | |--config --------配置文件 49 | |--filter --------过滤器 50 | |--pages --------页面 51 | |--router --------路由配置 52 | |--store --------vuex状态管理 53 | |--service --------axios封装 54 | |--App.vue --------App 55 | |--main.js --------入口文件 56 | |--permission.js --------权限控制 57 | |-- docs --------预留编写项目文档目录 58 | |-- vue.config.js --------vue webpack配置文件 59 | |-- package.json 60 | ... 61 | ... 62 | ``` 63 | ## 本地开发 64 | ``` 65 | // 启动后端服务 66 | npm run dev 67 | // 启动前端项目 68 | npm run dev-web 69 | ``` 70 | ## 本地部署 71 | 先build个前端版本,然后再部署egg服务到本地 72 | ``` 73 | 1、npm run build-web 74 | 2、npm run copy-web-html 75 | 3、npm run start 76 | 77 | ``` 78 | 79 | ### License 80 | Apache License 2.0 81 | 82 | 83 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | // app.js 2 | module.exports = app => { 3 | // 自定义内容 4 | app.projectName = 'inkwashdocs' 5 | 6 | app.beforeStart(async () => { 7 | // 应用会等待这个函数执行完成才启动 8 | console.log("==app beforeStart=="); 9 | }); 10 | 11 | app.ready(async () => { 12 | console.log("==app ready=="); 13 | }) 14 | 15 | 16 | app.beforeClose(async () => { 17 | console.log("==app beforeClose=="); 18 | }) 19 | }; -------------------------------------------------------------------------------- /app/controller/auth.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Controller = require('egg').Controller; 4 | 5 | class AuthController extends Controller { 6 | /** 7 | * 登录 8 | * @returns {Promise} 9 | */ 10 | async login() { 11 | const { ctx, service } = this; 12 | const { username, password } = ctx.request.body 13 | // 验证是否存在 14 | let user = await service.user.getUsersByUsername(username); 15 | if (!user) { 16 | ctx.returnBody(false, {}, "用户不存在!"); 17 | return; 18 | } 19 | // 校验密码 20 | const userCurrentPass = await service.user.getUsersPasswordByUsername(username); 21 | const verifyPass = await ctx.helper.checkPassword(password, userCurrentPass.password) 22 | if (!verifyPass) { 23 | ctx.returnBody(false, '', "密码错误,请重试!"); 24 | return; 25 | } 26 | 27 | user = user.toObject(); 28 | let userDataStr = JSON.parse(JSON.stringify(user)); 29 | // 生成token 30 | let token =await ctx.getToken(userDataStr); 31 | ctx.returnBody(true, {access_token: token, userInfo: user}, "登录成功!") 32 | } 33 | 34 | /** 35 | * 注册 36 | * @returns {Promise} 37 | */ 38 | async register() { 39 | const { ctx, service } = this; 40 | const { username, password, email } = ctx.request.body 41 | 42 | // 密码长度拦截 43 | if (!password) { 44 | ctx.returnBody(false, {}, "密码不能为空!") 45 | return; 46 | }else if(password.length < 6){ 47 | ctx.returnBody(false, {}, "密码长度不能少于6位!") 48 | return; 49 | }else if(password.length > 16){ 50 | ctx.returnBody(false, {}, "密码长度不能超过16位!") 51 | return; 52 | } 53 | 54 | // 验证是否已注册 55 | const users = await service.user.getUsersByQuery({ $or: [ 56 | { username }, 57 | { email }, 58 | ] }); 59 | 60 | if (users.length > 0) { 61 | ctx.returnBody(false, {}, "用户名或邮箱已被注册!") 62 | return; 63 | } 64 | 65 | let pass = await ctx.helper.createPassword(password.toString()) 66 | let userData = await ctx.service.user.createUser(username, pass, email); 67 | userData = userData.toObject(); 68 | let userDataStr = JSON.parse(JSON.stringify(userData)); 69 | // 生成token 70 | let token =await ctx.getToken(userDataStr); 71 | ctx.returnBody(true, {access_token: token, userInfo: userData}, "注册成功!") 72 | } 73 | } 74 | 75 | module.exports = AuthController; 76 | -------------------------------------------------------------------------------- /app/controller/cooperation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Controller = require('egg').Controller; 4 | 5 | class CooperationController extends Controller { 6 | /** 7 | * 通过用户组id添加协作人 8 | * @returns {Promise} 9 | */ 10 | async addCooperationUserByGroup(){ 11 | const {ctx, service} = this; 12 | const {groupId, documentId} = ctx.request.body; 13 | let userList = await service.userGroup.foundUserListByGroupId(groupId); 14 | let userIds = []; 15 | userList.forEach(item => { 16 | userIds.push(item._id); 17 | }) 18 | let cooperationList = await service.document.addCooperationUser(documentId, userIds); 19 | ctx.returnBody(true, cooperationList) 20 | } 21 | /** 22 | * 通过用户列表添加协作人 23 | * @returns {Promise} 24 | */ 25 | async addCooperationUser(){ 26 | const {ctx, service} = this; 27 | const {userIds, documentId} = ctx.request.body; 28 | let cooperationList = await service.document.addCooperationUser(documentId, userIds); 29 | ctx.returnBody(true, cooperationList) 30 | } 31 | 32 | /** 33 | * 获取协作人列表 34 | * @returns {Promise} 35 | */ 36 | async getCooperationUserListByDocumentId(){ 37 | const {ctx, service} = this; 38 | const {documentId} = ctx.request.query; 39 | let cooperationList = await service.document.getCooperationUserListByDocumentId(documentId); 40 | ctx.returnBody(true, cooperationList) 41 | } 42 | 43 | async removeCooperationUser(){ 44 | const {ctx, service} = this; 45 | const {documentId, userId} = ctx.request.body; 46 | const group = await service.document.removeCooperationUser(documentId, userId); 47 | ctx.returnBody(true, group) 48 | } 49 | } 50 | 51 | module.exports = CooperationController; 52 | -------------------------------------------------------------------------------- /app/controller/user.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Controller = require('egg').Controller; 4 | 5 | class UserController extends Controller { 6 | /** 7 | * 获取个人信息 8 | * @returns {Promise} 9 | */ 10 | async getUserInfo() { 11 | let {ctx} = this; 12 | ctx.returnBody(true, this.ctx.getUser()) 13 | } 14 | 15 | /** 16 | * 根据id获取个人信息 17 | * @returns {Promise} 18 | */ 19 | async getUserInfoById(){ 20 | const { ctx, service } = this; 21 | const { userId } = ctx.request.query 22 | // 验证是否存在 23 | const user = await service.user.getUserById(userId); 24 | ctx.returnBody(true, user) 25 | } 26 | /** 27 | * 更新个人昵称 28 | * @returns {Promise} 29 | */ 30 | async updateUserName(){ 31 | const { ctx, service } = this; 32 | const { name } = ctx.request.body 33 | const user = await service.user.updateUserName(name); 34 | ctx.returnBody(true, user) 35 | } 36 | /** 37 | * 更新个人昵称 38 | * @returns {Promise} 39 | */ 40 | async updateUserPass(){ 41 | const { ctx, service } = this; 42 | const userData = await ctx.getUserData(); 43 | const { oldPass, newPass } = ctx.request.body; 44 | // 校验老密码是否正确 45 | const userCurrentPass = await service.user.getUsersPasswordByUsername(userData.username); 46 | const verifyPass = await ctx.helper.checkPassword(oldPass, userCurrentPass.password) 47 | if (!verifyPass) { 48 | ctx.returnBody(false, '', "原密码错误,请输入正确原密码!"); 49 | return; 50 | } 51 | const pass = await ctx.helper.createPassword(newPass) 52 | const user = await service.user.updateUserPass(pass); 53 | ctx.returnBody(true, user) 54 | } 55 | 56 | /** 57 | * 更新个人头像 58 | * @returns {Promise} 59 | */ 60 | async updateUserAvatar(){ 61 | const { ctx, service } = this; 62 | let userData = await ctx.getUserData() 63 | let file = ctx.request.files[0] 64 | let fileResult = await service.file.upload(file, 'avatar/' + userData.username); 65 | const user = await service.user.updateUserAvatar(fileResult.url); 66 | ctx.returnBody(true, user) 67 | } 68 | 69 | /** 70 | * 模糊查询用户 71 | * @returns {Promise} 72 | */ 73 | async getUserList(){ 74 | const { ctx, service } = this; 75 | const { keywords } = ctx.request.query; 76 | const users = await service.user.getUserByKeyWords(keywords); 77 | ctx.returnBody(true, users) 78 | } 79 | 80 | /** 81 | * 根据用户id数组查询用户 82 | * @returns {Promise} 83 | */ 84 | async getUserByIds(){ 85 | const { ctx, service } = this; 86 | let { ids } = ctx.request.query; 87 | ids = ids || '' 88 | ids = ids.split(','); 89 | const users = await service.user.getUsersByIds(ids); 90 | ctx.returnBody(true, users) 91 | } 92 | } 93 | 94 | module.exports = UserController; 95 | -------------------------------------------------------------------------------- /app/controller/userGroup.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Controller = require('egg').Controller; 4 | 5 | class UserGroupController extends Controller { 6 | // 新增用户分组 7 | async createUserGroup() { 8 | const {ctx, service} = this; 9 | const {id, name} = ctx.request.body 10 | // 验证是否存在 11 | let group 12 | if (id) { 13 | group = await service.userGroup.updateUserGroup(id, name); 14 | } else { 15 | group = await service.userGroup.createUserGroup(name); 16 | } 17 | ctx.returnBody(true, group) 18 | } 19 | 20 | // 获取分组列表 21 | async getUserGroupList() { 22 | const {ctx, service} = this; 23 | // 验证是否存在 24 | let group = await service.userGroup.getUserGroupList(); 25 | ctx.returnBody(true, group) 26 | } 27 | 28 | // 添加用户到分组 29 | async addUsersToUserGroup() { 30 | const {ctx, service} = this; 31 | const {groupId, userList} = ctx.request.body 32 | // 验证是否存在 33 | const group = await service.userGroup.addUsersToUserGroup(groupId, userList); 34 | ctx.returnBody(true, group) 35 | } 36 | 37 | // 从组里删除用户 38 | async delUsersFromUserGroup() { 39 | const {ctx, service} = this; 40 | const {groupId, userId} = ctx.request.body 41 | // 验证是否存在 42 | const group = await service.userGroup.delUserFormUserGroup(groupId, userId); 43 | ctx.returnBody(true, group) 44 | } 45 | 46 | // 根据groupId 获取用户列表 47 | async getUsersByGroupId() { 48 | const {ctx, service} = this; 49 | const {groupId} = ctx.request.query 50 | const userList = await service.userGroup.foundUserListByGroupId(groupId); 51 | ctx.returnBody(true, userList) 52 | } 53 | 54 | // 删除 55 | async delUserGroup() { 56 | const {ctx, service} = this; 57 | const {id} = ctx.request.query 58 | await service.userGroup.delUserGroup(id); 59 | ctx.returnBody(true, {}) 60 | } 61 | 62 | } 63 | 64 | module.exports = UserGroupController; 65 | -------------------------------------------------------------------------------- /app/extend/context.js: -------------------------------------------------------------------------------- 1 | // 扩展一些框架便利的方法 2 | module.exports = { 3 | /** 4 | * 返回客户端的内容 5 | * @param status // 接口是否成功 6 | * @param body // 返回数据 7 | * @param msg // 返回信息提示 8 | * @param code // 返回状态码 9 | */ 10 | returnBody (status = true, body = {}, msg = 'success', code = 200) { 11 | this.status = code; 12 | this.body = { 13 | status: status, 14 | body: body, 15 | msg, 16 | code: code 17 | } 18 | }, 19 | // 生成token 20 | async getToken(data) { 21 | return await this.app.jwt.sign(data, this.app.config.jwt.secret, {expiresIn: 30* 24 * 60 * 60 + 's'}); 22 | }, 23 | // 验证token 24 | async checkToken(token) { 25 | return await this.app.jwt.verify(token, this.app.config.jwt.secret) 26 | }, 27 | // 获取用户信息 28 | async getUserData() { 29 | var token = this.headers.authorization ? this.headers.authorization : ''; 30 | token = token.substring(7) //把Bearer 截取掉,解析的时候不需要加上Bearer 31 | let user = {} 32 | try { 33 | user = this.app.jwt.verify(token, this.app.config.jwt.secret); 34 | } catch (err) { 35 | user = {} 36 | } 37 | return user; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/extend/helper.js: -------------------------------------------------------------------------------- 1 | // 引入 2 | const crypto = require('crypto'); 3 | const fs = require('fs') 4 | const path = require('path') 5 | module.exports = { 6 | // 加密 7 | async createPassword(password) { 8 | const hmac = crypto.createHash("sha256", this.config.crypto.secret); 9 | hmac.update(password.toString()); 10 | return hmac.digest("hex"); 11 | }, 12 | // 验证密码 13 | async checkPassword(password, hash_password) { 14 | // 先对需要验证的密码进行加密 15 | password = await this.createPassword(password); 16 | return password === hash_password; 17 | }, 18 | 19 | async dirExists(dir) { 20 | let isExists = await getStat(dir); 21 | //如果该路径且不是文件,返回true 22 | if (isExists && isExists.isDirectory()) { 23 | return true; 24 | } else if (isExists) { //如果该路径存在但是文件,返回false 25 | return false; 26 | } 27 | //如果该路径不存在 28 | let tempDir = path.parse(dir).dir; //拿到上级路径 29 | //递归判断,如果上级目录也不存在,则会代码会在此处继续循环执行,直到目录存在 30 | let status = await this.dirExists(tempDir); 31 | let mkdirStatus; 32 | if (status) { 33 | mkdirStatus = await mkdir(dir); 34 | } 35 | return mkdirStatus; 36 | 37 | } 38 | 39 | } 40 | 41 | 42 | /** 43 | * 读取路径信息 44 | * @param {string} path 路径 45 | */ 46 | function getStat(path) { 47 | return new Promise((resolve) => { 48 | fs.stat(path, (err, stats) => { 49 | if (err) { 50 | resolve(false); 51 | } else { 52 | resolve(stats); 53 | } 54 | }) 55 | }) 56 | } 57 | 58 | /** 59 | * 创建路径 60 | * @param {string} dir 路径 61 | */ 62 | function mkdir(dir) { 63 | return new Promise((resolve) => { 64 | fs.mkdir(dir, err => { 65 | if (err) { 66 | resolve(false); 67 | } else { 68 | resolve(true); 69 | } 70 | }) 71 | }) 72 | } 73 | -------------------------------------------------------------------------------- /app/middleware/auth.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * 登录验证 5 | * @author huangwei9527 6 | * @return {null} null 7 | */ 8 | module.exports = () => { 9 | return async function(ctx, next) { 10 | let token = ''; 11 | if ( 12 | ctx.headers.authorization && ctx.headers.authorization.split(' ')[0] === 'Bearer' 13 | ) { 14 | token = ctx.headers.authorization.split(' ')[1]; 15 | } else if (ctx.query.accesstoken) { 16 | token = ctx.query.accesstoken; 17 | } else if (ctx.request.body.accesstoken) { 18 | token = ctx.request.body.accesstoken; 19 | } 20 | let user; 21 | try{ 22 | user = await ctx.checkToken(token); 23 | }catch (e) { 24 | ctx.returnBody(false,{}, 'Token 无效,请重新登录', 401); 25 | } 26 | if (!user) { 27 | ctx.returnBody(false,{}, 'Token 无效,请重新登录', 401); 28 | return; 29 | } 30 | ctx.request.user = user; 31 | await next(); 32 | }; 33 | }; 34 | -------------------------------------------------------------------------------- /app/middleware/error_handler.js: -------------------------------------------------------------------------------- 1 | module.exports = () => { 2 | 3 | return async function errorHandler(ctx, next) { 4 | try { 5 | await next(); 6 | } catch (err) { 7 | // 所有的异常都会在app上出发一个error事件,框架会记录一条错误日志 8 | ctx.app.emit('error', err, ctx); 9 | 10 | const status = err.status || 500; 11 | 12 | // 如果时生产环境的时候 500错误的详细错误内容不返回给客户端 13 | const error = status === 500 && ctx.app.config.env === 'prod' ? '网络错误' : err.message; 14 | 15 | ctx.body = { 16 | msg: error, 17 | status: false, 18 | body: {}, 19 | code: status 20 | }; 21 | } 22 | }; 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /app/model/document.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = app => { 4 | const mongoose = app.mongoose; 5 | const Schema = mongoose.Schema; 6 | 7 | const DocumentSchema = new Schema({ 8 | parentId: { 9 | type: String, 10 | default: '0' 11 | }, 12 | title: { 13 | type: String, 14 | required: [true, '标题不能为空'], 15 | maxlength: [20, '用户名长度不能大于20'], 16 | default: '新建文档' 17 | }, 18 | content: { 19 | type: String 20 | }, 21 | type: { // md: markdown文档 22 | type: String, 23 | default: 'md' 24 | }, 25 | author: { 26 | type: String, 27 | ref: "User" 28 | }, 29 | // 发布状态 30 | isPublish: { 31 | type: Boolean, 32 | default: true 33 | }, 34 | isTemplate: { 35 | type: Boolean, 36 | default: false 37 | }, 38 | visit_count: { 39 | type: Number, 40 | default: 1 41 | }, 42 | star_user: [{ 43 | type: String 44 | }], 45 | collection_user: [{ 46 | type: String 47 | }], 48 | // 协作人员 49 | cooperation_user: [{ 50 | type: String, 51 | ref: "User" 52 | }], 53 | // 授权用户 54 | members: [{ 55 | type: String, 56 | ref: "User" 57 | }], 58 | visitType: { 59 | type: String, // open: 公开, team: 团队, private: 私密 60 | default: 'team' 61 | }, 62 | visitPass: { 63 | type: String 64 | }, 65 | // 是否已删除 66 | is_delete: { 67 | type: Boolean, 68 | default: false 69 | }, 70 | // 历史纪录 71 | history: [{ 72 | type: String 73 | }], 74 | }, {timestamps: {createdAt: 'created', updatedAt: 'updated'}}); 75 | return mongoose.model('Document', DocumentSchema); 76 | }; 77 | -------------------------------------------------------------------------------- /app/model/user.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = app => { 4 | const mongoose = app.mongoose; 5 | const Schema = mongoose.Schema; 6 | 7 | const UserSchema = new Schema({ 8 | username: { 9 | type: String, 10 | required: [true, 'username不能为空'], 11 | minlength: [2, '用户名长度不能小于2'], 12 | maxlength: [16, '用户名长度不能大于16'], 13 | }, 14 | password: { 15 | type: String, 16 | required: [true, 'password不能为空'] 17 | }, 18 | name: { 19 | type: String, 20 | default: '', 21 | minlength: [2, '昵称长度不能小于2'], 22 | maxlength: [16, '昵称长度不能大于16'], 23 | }, 24 | email: { 25 | type: String, 26 | default: '', 27 | required: [true, 'email不能为空'], 28 | match: [/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, '邮箱格式错误,请输入正确邮箱地址'] 29 | }, 30 | avatar: {type: String, default: ''}, 31 | roles: {type: String, default: ''}, 32 | type: { //site用户是网站注册用户, third是第三方登录过来的用户 33 | type: String, 34 | enum: ['site', 'third'], 35 | default: 'site' 36 | }, 37 | // 被点赞数统计 38 | star_count: {type: Number, default: 0}, 39 | // 文章被阅读统计 40 | be_read_count: {type: Number, default: 0}, 41 | history_visit_doc: [{type: String}], 42 | }, {timestamps: {createdAt: 'created', updatedAt: 'updated'}}); 43 | return mongoose.model('User', UserSchema); 44 | }; 45 | -------------------------------------------------------------------------------- /app/model/userGroup.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = app => { 4 | const mongoose = app.mongoose; 5 | const Schema = mongoose.Schema; 6 | 7 | const UserGroup = new Schema({ 8 | name: { 9 | type: String, 10 | default: '', 11 | minlength: [2, '昵称长度不能小于2'], 12 | maxlength: [16, '昵称长度不能大于16'], 13 | }, 14 | avatar: {type: String, default: ''}, 15 | author: {type: String}, 16 | members: [{type:String, ref: "User"}] 17 | }, {timestamps: {createdAt: 'created', updatedAt: 'updated'}}); 18 | return mongoose.model('UserGroup', UserGroup); 19 | }; 20 | -------------------------------------------------------------------------------- /app/service/file.js: -------------------------------------------------------------------------------- 1 | const Service = require('egg').Service; 2 | const fs = require('fs') 3 | const path = require('path') 4 | const extract = require('extract-zip') 5 | 6 | class FileService extends Service { 7 | /** 8 | * 单文件上传 9 | * @param file 要上传的文件 10 | * @param folderPath 保存目标目录 11 | * @returns {Promise<{fileName: *, url: string}>} 12 | */ 13 | async upload(file, folderName) { 14 | let {ctx} = this; 15 | // 读取文件 16 | let fileData = fs.readFileSync(file.filepath) 17 | // 将文件存到指定位置 18 | let folderPath = path.join(path.join(__dirname, '../public/resource/'), folderName) // 拼接文件夹 19 | // 判断文件夹是否存在不存在则新建一个 20 | await ctx.helper.dirExists(folderPath); 21 | // 拼接文件路径 22 | let filePath = path.join(folderPath, file.filename) // 拼接文件路径 23 | fs.writeFileSync(filePath, fileData) 24 | // 返回文件信息 25 | return { 26 | fileName: file.filename, 27 | url:ctx.app.config.BASE_URL + `/resource/${folderName ? folderName + '/' : ''}${file.filename}` 28 | } 29 | } 30 | /*** 31 | * 解压操作 32 | * @param file 33 | * @param folderName 34 | */ 35 | async unZip(file, folderName){ 36 | let {ctx} = this; 37 | // 将文件存到指定位置 38 | let folderPath = path.join(path.join(__dirname, '../public/resource/'), folderName) // 拼接文件夹 39 | // 判断文件夹是否存在不存在则新建一个 40 | await ctx.helper.dirExists(folderPath); 41 | 42 | try { 43 | await extract(file.filepath, { dir: folderPath }) 44 | return { 45 | fileName: file.filename, 46 | url: ctx.app.config.BASE_URL + `/resource/${folderName || ''}` 47 | } 48 | } catch (err) { 49 | throw new Error(err); 50 | } 51 | } 52 | } 53 | 54 | module.exports = FileService; 55 | -------------------------------------------------------------------------------- /app/service/userGroup.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Service = require('egg').Service; 4 | 5 | class UserGroupService extends Service { 6 | /** 7 | * 新增用户分组 8 | * @param options 9 | * @returns {Promise} 10 | */ 11 | async createUserGroup(name) { 12 | const {ctx} = this; 13 | let userData = await ctx.getUserData() 14 | return await ctx.model.UserGroup.create({ 15 | name: name, 16 | author: userData._id 17 | }); 18 | } 19 | 20 | async updateUserGroup(id, name){ 21 | const {ctx} = this; 22 | return await ctx.model.UserGroup.findByIdAndUpdate({_id: id}, { 23 | $set: { 24 | name: name, 25 | } 26 | }); 27 | } 28 | 29 | /** 30 | * 获取列表 31 | * */ 32 | async getUserGroupList(){ 33 | const {ctx} = this; 34 | let userData = await ctx.getUserData() 35 | return await ctx.model.UserGroup.find({ 36 | author: userData._id 37 | }) 38 | .populate({ 39 | path: 'members', 40 | model: ctx.model.User, 41 | select: 'name username _id email avatar ' 42 | }).exec(); 43 | } 44 | /** 45 | * 添加用户到分组 46 | * @param groupId 47 | * @param usersList 48 | * @returns {Promise} 49 | */ 50 | async addUsersToUserGroup(groupId, usersList = []){ 51 | const {ctx} = this; 52 | await ctx.model.UserGroup.findByIdAndUpdate(groupId, { 53 | $addToSet: { members: { $each: usersList} } 54 | }) 55 | return await ctx.model.UserGroup.findOne({_id: groupId}).populate({ 56 | path: 'members', 57 | model: ctx.model.User, 58 | select: 'name username _id email avatar ' 59 | }).exec(); 60 | } 61 | 62 | /** 63 | * 删除用户 64 | */ 65 | async delUserFormUserGroup(groupId, userId){ 66 | const {ctx} = this; 67 | return await ctx.model.UserGroup.updateOne({_id: groupId}, {$pull: {members: userId}}, { 68 | runValidators: true 69 | }) 70 | } 71 | 72 | /** 73 | * 获取分组下所有用户 74 | * @param groupId 75 | * @returns {Promise<*>} 76 | */ 77 | async foundUserListByGroupId(groupId){ 78 | const {ctx, service} = this; 79 | let group = await ctx.model.UserGroup.findOne({_id: groupId}); 80 | group = group.toObject() 81 | return service.user.getUsersByIds(group.members) 82 | } 83 | 84 | async delUserGroup(id){ 85 | const {ctx} = this; 86 | return await ctx.model.UserGroup.remove({_id: id}); 87 | } 88 | } 89 | 90 | module.exports = UserGroupService; 91 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | environment: 2 | matrix: 3 | - nodejs_version: '10' 4 | 5 | install: 6 | - ps: Install-Product node $env:nodejs_version 7 | - npm i npminstall@5 && node_modules\.bin\npminstall 8 | 9 | test_script: 10 | - node --version 11 | - npm --version 12 | - npm run test 13 | 14 | build: off 15 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ], 5 | plugins: [ 6 | [ 7 | "component", 8 | { 9 | "libraryName": "element-ui", 10 | "styleLibraryName": "theme-chalk" 11 | } 12 | ] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /config/config.default.js: -------------------------------------------------------------------------------- 1 | /* eslint valid-jsdoc: "off" */ 2 | 3 | 'use strict'; 4 | 5 | const path = require('path') 6 | /** 7 | * @param {Egg.EggAppInfo} appInfo app info 8 | */ 9 | module.exports = appInfo => { 10 | /** 11 | * built-in config 12 | * @type {Egg.EggAppConfig} 13 | **/ 14 | const config = exports = {}; 15 | 16 | // use for cookie sign key, should change to your own and keep security 17 | config.keys = appInfo.name + '_huangwei9527'; 18 | 19 | // add your user config here 20 | const userConfig = { 21 | // myAppName: 'egg', 22 | }; 23 | 24 | // add your middleware config here 25 | config.middleware = [ 'errorHandler']; 26 | 27 | 28 | // 统一错误信息配置(注:match和ignore不可以同时配置) 29 | config.errorHandler = { 30 | enable: true, // 中间件开启配置 31 | match: '', // 设置请求中间件的请求路由 32 | // ignore: '', // 设置不经过这个中间件的请求路由 33 | }; 34 | 35 | config.crypto = { 36 | secret: 'Z#fOGf$te4^J28l1Z&$#fXCNifv!ZHQnEG' 37 | }; 38 | 39 | // 关掉csrf 40 | config.security = { 41 | csrf: { 42 | enable: false, 43 | }, 44 | }; 45 | 46 | // 上传文件file读取方式 47 | config.multipart = { 48 | mode: 'file' 49 | }; 50 | 51 | config.static = { 52 | prefix: '/', 53 | dir: [path.join(__dirname, '../app/public'), path.join(__dirname, '../dist')]// 多静态文件入口 54 | } 55 | 56 | return { 57 | ...config, 58 | ...userConfig, 59 | }; 60 | }; 61 | -------------------------------------------------------------------------------- /config/config.local.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | BASE_URL: '', 3 | mongoose: { 4 | url: 'mongodb://127.0.0.1:27017/inkwash', 5 | options: {} 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /config/config.prod.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | BASE_URL: '', 3 | mongoose: { 4 | url: 'mongodb://127.0.0.1:27017/inkwash_master', 5 | options: {} 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /config/plugin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type Egg.EggPlugin */ 4 | module.exports = { 5 | jwt: { 6 | enable: true, 7 | package: "egg-jwt" 8 | }, 9 | mongoose: { 10 | enable: true, 11 | package: 'egg-mongoose', 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /dist/.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/.gz -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/favicon.ico -------------------------------------------------------------------------------- /dist/static/css/.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/.gz -------------------------------------------------------------------------------- /dist/static/css/chunk-031a2d18.74ab8e5c.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-7d18a370]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-7d18a370]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-7d18a370]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.sheet-view-page[data-v-a45159c2]{position:relative;height:100%;width:100%}.sheet-view-page .excel-edit[data-v-a45159c2]{height:100%}.docment-sub-info-wrapper[data-v-a45159c2]{position:absolute;right:18px;top:10px;font-size:12px;color:#6c757d}.docment-sub-info-wrapper li[data-v-a45159c2]{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-036c83b2.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-036c83b2.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-07ff773c.4c5848f1.css: -------------------------------------------------------------------------------- 1 | .group-list-table[data-v-485e91b0]{display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:500;color:#999;padding-bottom:10px}.group-list-table .group-list-title-date[data-v-485e91b0],.group-list-table .group-list-title-info-member[data-v-485e91b0],.group-list-table .group-list-title-name[data-v-485e91b0]{-webkit-box-flex:1;-ms-flex:1;flex:1}.group-list-table .group-list-title--op[data-v-485e91b0]{width:120px;text-align:center}.group-list-table.group-list-table-row[data-v-485e91b0]{width:100%;height:48px;line-height:48px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0;border:none;border-bottom:1px solid #e5e5e5}.group-list-table.group-list-table-row[data-v-485e91b0]:hover{border:none;border-bottom:1px solid #e5e5e5;border-radius:0}.group-list-table .group-list-row-date[data-v-485e91b0]{-webkit-box-flex:1;-ms-flex:1;flex:1}.dash-board-operator-wrapper[data-v-485e91b0]{display:block;padding-right:20px}.add-user-wrapper[data-v-485e91b0]{padding:10px 30px 20px}.search-input-wrapper .input-item[data-v-485e91b0]{display:inline-block;width:460px}.search-input-wrapper .qr-btn[data-v-485e91b0]{display:inline-block;width:80px;text-align:center}.search-input-wrapper .input-i[data-v-485e91b0]{width:100%}.user-list-wrapper[data-v-485e91b0]{background:#fafafa;min-height:200px;margin-top:20px;padding:20px}.user-list-wrapper .title[data-v-485e91b0]{font-weight:600;padding-bottom:20px}.userHeadImage[data-v-485e91b0]{width:14px;height:14px;display:inline-block;vertical-align:middle;border-radius:50%}.user-item[data-v-485e91b0]{margin-right:5px;margin-bottom:5px} -------------------------------------------------------------------------------- /dist/static/css/chunk-09d4fff7.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-09d4fff7.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-09fb6001.a16a167d.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-7d18a370]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-7d18a370]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-7d18a370]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.docs-view-item{max-width:1000px;height:100%;position:relative;padding:16px 0 30px;margin-left:auto;margin-right:auto}.docs-view-item .docs-main-wrapper{background:#fff;padding:20px 40px 60px;min-height:calc(100% - 10px)}.docment-title-wrapper{text-align:center;padding:10px;margin-bottom:20px}.docment-title-wrapper .docs-title{margin-bottom:10px}.docment-title-wrapper .docment-sub-info-wrapper{font-size:12px;color:#6c757d}.docment-title-wrapper .docment-sub-info-wrapper li{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-0d93ffba.84125892.css: -------------------------------------------------------------------------------- 1 | .main_content_404[data-v-cacb35da]{text-align:center;margin-top:60px}.top_404[data-v-cacb35da]{padding:100px 0 70px;background-color:#2dc9a7;color:#fff;text-align:center}.top_404>div[data-v-cacb35da]:first-child{font-size:72px}.returnIndex_page[data-v-cacb35da]{text-decoration:none;color:#2dc9a7;display:inline-block;width:120px;border:2px solid #2dc9a7;border-radius:4px;height:30px;line-height:30px;text-align:center;margin-top:20px;cursor:pointer}.reasonBox[data-v-cacb35da]{list-style-type:none;color:#2dc9a7;line-height:30px;padding-left:0;margin-bottom:0}.title_404[data-v-cacb35da]{font-size:28px;color:#2dc9a7;font-weight:500}.content_left_404[data-v-cacb35da]{display:inline-block;text-align:left}.content_right_404[data-v-cacb35da]{display:inline-block;padding-left:100px;border-left:1px solid #2dc9a7;margin-left:100px;margin-top:-6px} -------------------------------------------------------------------------------- /dist/static/css/chunk-183df209.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-183df209.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-1e8c696c.242d76d9.css: -------------------------------------------------------------------------------- 1 | .el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item:after,.el-form-item:before,.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item{margin-bottom:22px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block} -------------------------------------------------------------------------------- /dist/static/css/chunk-24aab2d4.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-24aab2d4.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-24aac9bc.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-24aac9bc.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-2bdf95e0.a81301f1.css: -------------------------------------------------------------------------------- 1 | .el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block} -------------------------------------------------------------------------------- /dist/static/css/chunk-2dff28e4.6a6265b7.css: -------------------------------------------------------------------------------- 1 | .components-work-side-bar[data-v-4e9300e7]{width:100%;height:100%}.components-work-side-bar .side-bar-item[data-v-4e9300e7]{line-height:40px;color:#8c8c8c;cursor:pointer;margin-bottom:10px}.components-work-side-bar .side-bar-item[data-v-4e9300e7]:hover{color:#666;background-color:hsla(0,0%,100%,.2)}.components-work-side-bar .side-bar-item.active[data-v-4e9300e7]{color:#333;font-weight:700}.components-work-side-bar .side-bar-item .iconfont[data-v-4e9300e7]{display:inline-block;margin-right:8px}.page-dash-board .page-header-wrappper[data-v-4fb9c5ce]{height:51px}.page-dash-board .dash-board-wrappper[data-v-4fb9c5ce]{display:-webkit-box;display:-ms-flexbox;display:flex;height:calc(100% - 81px)}.page-dash-board .dash-board-wrappper .dash-board-side-bar[data-v-4fb9c5ce]{width:200px;padding-left:8px;padding-right:8px;padding-top:18px}.page-dash-board .dash-board-wrappper .dash-board-main[data-v-4fb9c5ce]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-left:8px;padding-right:8px;padding-top:18px} -------------------------------------------------------------------------------- /dist/static/css/chunk-2f42b10f.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-2f42b10f.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-2fc8b4e8.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-2fc8b4e8.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-33447ea3.d669ed2e.css: -------------------------------------------------------------------------------- 1 | .page-editor[data-v-0f324cf6]{height:100%}.editor-header-wrapper[data-v-0f324cf6]{position:relative;background:-webkit-gradient(linear,left top,left bottom,from(#fdfdfd),to(#fff));background:linear-gradient(180deg,#fdfdfd,#fff);z-index:110;height:50px;-webkit-box-shadow:0 2px 3px 0 hsla(0,0%,39.2%,.15);box-shadow:0 2px 3px 0 hsla(0,0%,39.2%,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:1280px;overflow:hidden;border-bottom:1px solid #fff;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 16px}.editor-header-wrapper .editor-header-back[data-v-0f324cf6]{width:220px;padding-top:8px}.editor-header-wrapper .editor-header-docs-title[data-v-0f324cf6]{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.editor-header-wrapper .editor-header-operation[data-v-0f324cf6]{width:220px;padding-top:8px}.editor-wrapper[data-v-0f324cf6]{height:calc(100% - 81px)}.editor-header-docs-title-input[data-v-0f324cf6]{max-width:680px}.editor-header-docs-title-input .el-input__inner{text-align:center;font-size:14px;font-weight:700;line-height:14px;border:1px solid transparent;border-bottom:1px solid #dcdfe6}.editor-header-docs-title-input .el-input.is-active,.editor-header-docs-title-input .el-input__inner:focus{border-color:transparent;border-bottom-color:#ddd} -------------------------------------------------------------------------------- /dist/static/css/chunk-42522d03.8eb25ded.css: -------------------------------------------------------------------------------- 1 | .excel-edit-component-wrapper .excel-edit[data-v-7aef8dc8],.excel-edit-component-wrapper[data-v-7aef8dc8]{height:100%} -------------------------------------------------------------------------------- /dist/static/css/chunk-46ab208d.8a840cd3.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-7d18a370]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-7d18a370]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-7d18a370]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.page-monitoring-page[data-v-af689f40]{height:100%;width:100%;overflow:hidden}.page-axure-view .axure-view[data-v-b5d9bbc6],.page-axure-view[data-v-b5d9bbc6]{position:relative;width:100%;height:100%}.docment-sub-info-wrapper[data-v-b5d9bbc6]{position:absolute;right:0;top:0;font-size:12px;color:#6c757d;background:#f2f2f2;height:36px;line-height:36px;padding-right:18px;z-index:100}.docment-sub-info-wrapper li[data-v-b5d9bbc6]{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-4bcc46b0.89541563.css: -------------------------------------------------------------------------------- 1 | .axure-edit-wrapper[data-v-0ee098bc]{position:relative;width:100%;height:100%}.preview-tips-wrapper[data-v-0ee098bc]{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.preview-tips-wrapper .preview-tips[data-v-0ee098bc]{font-size:24px;color:#ddd;font-weight:600}.axure-edit-wrapper[data-v-0ee098bc]{display:-webkit-box;display:-ms-flexbox;display:flex}.axure-edit-wrapper .upload-wrapper[data-v-0ee098bc]{width:400px;height:100%;border-right:1px solid #666;padding:40px}.axure-edit-wrapper .axure-preview-wrapper[data-v-0ee098bc]{height:100%;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}.text-area-wrapper[data-v-0ee098bc]{background:#ededed;width:100%;min-height:80px;border-radius:6px;padding:30px 20px;word-wrap:break-word} -------------------------------------------------------------------------------- /dist/static/css/chunk-4ff368c5.4850904b.css: -------------------------------------------------------------------------------- 1 | .axure-edit-wrapper[data-v-2758fa26]{position:relative;width:100%;height:100%}.preview-tips-wrapper[data-v-2758fa26]{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.preview-tips-wrapper .preview-tips[data-v-2758fa26]{font-size:24px;color:#ddd;font-weight:600}.axure-edit-wrapper[data-v-2758fa26]{display:-webkit-box;display:-ms-flexbox;display:flex}.axure-edit-wrapper .upload-wrapper[data-v-2758fa26]{width:400px;height:100%;border-right:1px solid #666;padding:40px}.axure-edit-wrapper .axure-preview-wrapper[data-v-2758fa26]{height:100%;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}.text-area-wrapper[data-v-2758fa26]{background:#ededed;width:100%;min-height:80px;border-radius:6px;padding:30px 20px;word-wrap:break-word} -------------------------------------------------------------------------------- /dist/static/css/chunk-58478a4f.186591a1.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-43cb923d]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-43cb923d]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-43cb923d]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.page-monitoring-page[data-v-12ac5d29]{height:100%;width:100%;overflow:hidden}.page-axure-view .axure-view[data-v-d3b72e20],.page-axure-view[data-v-d3b72e20]{position:relative;width:100%;height:100%}.docment-sub-info-wrapper[data-v-d3b72e20]{position:absolute;right:0;top:0;font-size:12px;color:#6c757d;background:#f2f2f2;height:36px;line-height:36px;padding-right:18px;z-index:100}.docment-sub-info-wrapper li[data-v-d3b72e20]{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-5c6f18d1.44537098.css: -------------------------------------------------------------------------------- 1 | .group-list-table[data-v-32c16684]{display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:500;color:#999;padding-bottom:10px}.group-list-table .group-list-title-date[data-v-32c16684],.group-list-table .group-list-title-info-member[data-v-32c16684],.group-list-table .group-list-title-name[data-v-32c16684]{-webkit-box-flex:1;-ms-flex:1;flex:1}.group-list-table .group-list-title--op[data-v-32c16684]{width:120px;text-align:center}.group-list-table.group-list-table-row[data-v-32c16684]{width:100%;height:48px;line-height:48px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0;border:none;border-bottom:1px solid #e5e5e5}.group-list-table.group-list-table-row[data-v-32c16684]:hover{border:none;border-bottom:1px solid #e5e5e5;border-radius:0}.group-list-table .group-list-row-date[data-v-32c16684]{-webkit-box-flex:1;-ms-flex:1;flex:1}.dash-board-operator-wrapper[data-v-32c16684]{display:block;padding-right:20px}.add-user-wrapper[data-v-32c16684]{padding:10px 30px 20px}.search-input-wrapper .input-item[data-v-32c16684]{display:inline-block;width:460px}.search-input-wrapper .qr-btn[data-v-32c16684]{display:inline-block;width:80px;text-align:center}.search-input-wrapper .input-i[data-v-32c16684]{width:100%}.user-list-wrapper[data-v-32c16684]{background:#fafafa;min-height:200px;margin-top:20px;padding:20px}.user-list-wrapper .title[data-v-32c16684]{font-weight:600;padding-bottom:20px}.userHeadImage[data-v-32c16684]{width:14px;height:14px;display:inline-block;vertical-align:middle;border-radius:50%}.user-item[data-v-32c16684]{margin-right:5px;margin-bottom:5px} -------------------------------------------------------------------------------- /dist/static/css/chunk-5e14fede.4ff3ef29.css: -------------------------------------------------------------------------------- 1 | .main_content_404[data-v-18ceb035]{text-align:center;margin-top:60px}.top_404[data-v-18ceb035]{padding:100px 0 70px;background-color:#2dc9a7;color:#fff;text-align:center}.top_404>div[data-v-18ceb035]:first-child{font-size:72px}.returnIndex_page[data-v-18ceb035]{text-decoration:none;color:#2dc9a7;display:inline-block;width:120px;border:2px solid #2dc9a7;border-radius:4px;height:30px;line-height:30px;text-align:center;margin-top:20px;cursor:pointer}.reasonBox[data-v-18ceb035]{list-style-type:none;color:#2dc9a7;line-height:30px;padding-left:0;margin-bottom:0}.title_404[data-v-18ceb035]{font-size:28px;color:#2dc9a7;font-weight:500}.content_left_404[data-v-18ceb035]{display:inline-block;text-align:left}.content_right_404[data-v-18ceb035]{display:inline-block;padding-left:100px;border-left:1px solid #2dc9a7;margin-left:100px;margin-top:-6px} -------------------------------------------------------------------------------- /dist/static/css/chunk-5ead0492.a642b24b.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-43cb923d]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-43cb923d]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-43cb923d]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.sheet-view-page[data-v-a2f4a022]{position:relative;height:100%;width:100%}.sheet-view-page .excel-edit[data-v-a2f4a022]{height:100%}.docment-sub-info-wrapper[data-v-a2f4a022]{position:absolute;right:18px;top:10px;font-size:12px;color:#6c757d}.docment-sub-info-wrapper li[data-v-a2f4a022]{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-5fc0b9e4.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-5fc0b9e4.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-62c85178.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-62c85178.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-63782e1e.a0959f87.css: -------------------------------------------------------------------------------- 1 | .document-com-btn-wrapper[data-v-e143187e]{display:inline-block;vertical-align:middle;font-size:14px}.document-com-btn-wrapper li[data-v-e143187e]{display:inline-block;vertical-align:middle;padding:8px}.document-com-btn-wrapper li>i[data-v-e143187e]{font-size:18px}.document-com-btn-wrapper li.active[data-v-e143187e]{color:#5ac66a}.docs-view[data-v-5472f564]{height:100%;position:relative;padding-top:50px}.docs-view .view-header[data-v-5472f564]{position:fixed;left:0;top:0;width:100%;height:48px;z-index:100}.docs-view .view-body-wrapper[data-v-5472f564]{position:relative;height:100%;overflow-y:auto}.cut-line[data-v-5472f564]{display:inline-block;vertical-align:middle;height:20px;border-right:2px solid #eee;margin:0 16px}.document-title[data-v-5472f564]{line-height:48px;font-size:16px;font-weight:600}.docs-view-main[data-v-5472f564]{height:100%;position:relative}.permission-tip-wrapper[data-v-5472f564],.skeleton-wrapper[data-v-5472f564]{width:100%;height:100%;background:#fff;padding:60px 60px}.skeleton-wrapper .chiaroscuro[data-v-5472f564]{height:30px;background:#f2f2f2;-webkit-animation-name:blink-data-v-5472f564;animation-name:blink-data-v-5472f564;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;margin-bottom:20px}.skeleton-wrapper .chiaroscuro.skeleton-title[data-v-5472f564]{height:70px;width:70%;-webkit-animation:none;animation:none}.skeleton-wrapper .chiaroscuro[data-v-5472f564]:nth-of-type(2n){-webkit-animation-duration:10s;animation-duration:10s}.skeleton-wrapper .chiaroscuro[data-v-5472f564]:nth-of-type(odd){-webkit-animation-duration:3s;animation-duration:3s}@-webkit-keyframes blink-data-v-5472f564{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes blink-data-v-5472f564{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@-webkit-keyframes flush-data-v-5472f564{0%{width:100%}50%{width:0}to{width:100%}}@keyframes flush-data-v-5472f564{0%{width:100%}50%{width:0}to{width:100%}}.wa-tips-wrapper[data-v-5472f564]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wa-tips-wrapper .wa-tips-main[data-v-5472f564]{width:400px;height:300px;background:#fff;border-radius:4px}.tips-wrapper[data-v-5472f564]{text-align:center;font-weight:600;font-size:36px;padding-bottom:30px;padding-top:80px}.check-pass-title[data-v-5472f564],.tips-text-wrapper[data-v-5472f564]{text-align:center;font-size:18px;font-weight:600;color:#666}.check-pass-title[data-v-5472f564]{padding-top:60px}.check-pass-input-wrapper[data-v-5472f564]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:60px 60px 0}.check-pass-input-wrapper .check-pass-input[data-v-5472f564]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-right:20px}.check-pass-input-wrapper .check-pass-btn[data-v-5472f564]{width:80px} -------------------------------------------------------------------------------- /dist/static/css/chunk-68fcdb6e.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-68fcdb6e.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-7236d5c0.8bfbc48d.css: -------------------------------------------------------------------------------- 1 | .editor-component[data-v-9857761e]{height:100%}.vditor-preview__action{display:none!important}.vditor-toolbar__item{margin-right:6px} -------------------------------------------------------------------------------- /dist/static/css/chunk-7bda4a65.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-7bda4a65.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-7cbd9acf.1079c06b.css: -------------------------------------------------------------------------------- 1 | .components-work-side-bar[data-v-acf1c7ee]{width:100%;height:100%}.components-work-side-bar .side-bar-item[data-v-acf1c7ee]{line-height:40px;color:#8c8c8c;cursor:pointer;margin-bottom:10px}.components-work-side-bar .side-bar-item[data-v-acf1c7ee]:hover{color:#666;background-color:hsla(0,0%,100%,.2)}.components-work-side-bar .side-bar-item.active[data-v-acf1c7ee]{color:#333;font-weight:700}.components-work-side-bar .side-bar-item .iconfont[data-v-acf1c7ee]{display:inline-block;margin-right:8px}.page-dash-board .page-header-wrappper[data-v-8132f0d4]{height:51px}.page-dash-board .dash-board-wrappper[data-v-8132f0d4]{display:-webkit-box;display:-ms-flexbox;display:flex;height:calc(100% - 81px)}.page-dash-board .dash-board-wrappper .dash-board-side-bar[data-v-8132f0d4]{width:200px;padding-left:8px;padding-right:8px;padding-top:18px}.page-dash-board .dash-board-wrappper .dash-board-main[data-v-8132f0d4]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-left:8px;padding-right:8px;padding-top:18px} -------------------------------------------------------------------------------- /dist/static/css/chunk-bf114a52.bd12f7ec.css: -------------------------------------------------------------------------------- 1 | .document-com-btn-wrapper[data-v-4c5902b3]{display:inline-block;vertical-align:middle;font-size:14px}.document-com-btn-wrapper li[data-v-4c5902b3]{display:inline-block;vertical-align:middle;padding:8px}.document-com-btn-wrapper li>i[data-v-4c5902b3]{font-size:18px}.document-com-btn-wrapper li.active[data-v-4c5902b3]{color:#5ac66a}.docs-view[data-v-7240ffe8]{height:100%;position:relative;padding-top:50px}.docs-view .view-header[data-v-7240ffe8]{position:fixed;left:0;top:0;width:100%;height:48px;z-index:100}.docs-view .view-body-wrapper[data-v-7240ffe8]{position:relative;height:100%;overflow-y:auto}.cut-line[data-v-7240ffe8]{display:inline-block;vertical-align:middle;height:20px;border-right:2px solid #eee;margin:0 16px}.document-title[data-v-7240ffe8]{line-height:48px;font-size:16px;font-weight:600}.docs-view-main[data-v-7240ffe8]{height:100%;position:relative}.permission-tip-wrapper[data-v-7240ffe8],.skeleton-wrapper[data-v-7240ffe8]{width:100%;height:100%;background:#fff;padding:60px 60px}.skeleton-wrapper .chiaroscuro[data-v-7240ffe8]{height:30px;background:#f2f2f2;-webkit-animation-name:blink-7240ffe8;animation-name:blink-7240ffe8;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;margin-bottom:20px}.skeleton-wrapper .chiaroscuro.skeleton-title[data-v-7240ffe8]{height:70px;width:70%;-webkit-animation:none;animation:none}.skeleton-wrapper .chiaroscuro[data-v-7240ffe8]:nth-of-type(2n){-webkit-animation-duration:10s;animation-duration:10s}.skeleton-wrapper .chiaroscuro[data-v-7240ffe8]:nth-of-type(odd){-webkit-animation-duration:3s;animation-duration:3s}@-webkit-keyframes blink-7240ffe8{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes blink-7240ffe8{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@-webkit-keyframes flush-7240ffe8{0%{width:100%}50%{width:0}to{width:100%}}@keyframes flush-7240ffe8{0%{width:100%}50%{width:0}to{width:100%}}.wa-tips-wrapper[data-v-7240ffe8]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wa-tips-wrapper .wa-tips-main[data-v-7240ffe8]{width:400px;height:300px;background:#fff;border-radius:4px}.tips-wrapper[data-v-7240ffe8]{text-align:center;font-weight:600;font-size:36px;padding-bottom:30px;padding-top:80px}.check-pass-title[data-v-7240ffe8],.tips-text-wrapper[data-v-7240ffe8]{text-align:center;font-size:18px;font-weight:600;color:#666}.check-pass-title[data-v-7240ffe8]{padding-top:60px}.check-pass-input-wrapper[data-v-7240ffe8]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:60px 60px 0}.check-pass-input-wrapper .check-pass-input[data-v-7240ffe8]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-right:20px}.check-pass-input-wrapper .check-pass-btn[data-v-7240ffe8]{width:80px} -------------------------------------------------------------------------------- /dist/static/css/chunk-c108eb08.1a80c68d.css: -------------------------------------------------------------------------------- 1 | .author-head .user-img[data-v-43cb923d]{display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;overflow:hidden}.author-head .user-img img[data-v-43cb923d]{display:inline-block;width:100%;height:100%}.author-head .user-name[data-v-43cb923d]{display:inline-block;vertical-align:middle;margin-left:8px;line-height:inherit;color:inherit;font-size:inherit}.docs-view-item{max-width:1000px;height:100%;position:relative;padding:16px 0 30px;margin-left:auto;margin-right:auto}.docs-view-item .docs-main-wrapper{background:#fff;padding:20px 40px 60px;min-height:calc(100% - 10px)}.docment-title-wrapper{text-align:center;padding:10px;margin-bottom:20px}.docment-title-wrapper .docs-title{margin-bottom:10px}.docment-title-wrapper .docment-sub-info-wrapper{font-size:12px;color:#6c757d}.docment-title-wrapper .docment-sub-info-wrapper li{display:inline-block;padding:0 8px} -------------------------------------------------------------------------------- /dist/static/css/chunk-ccd92326.8e8d25a9.css: -------------------------------------------------------------------------------- 1 | .page-editor[data-v-4fefd02d]{height:100%}.editor-header-wrapper[data-v-4fefd02d]{position:relative;background:-webkit-gradient(linear,left top,left bottom,from(#fdfdfd),to(#fff));background:linear-gradient(180deg,#fdfdfd,#fff);z-index:110;height:50px;-webkit-box-shadow:0 2px 3px 0 hsla(0,0%,39.2%,.15);box-shadow:0 2px 3px 0 hsla(0,0%,39.2%,.15);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:1280px;overflow:hidden;border-bottom:1px solid #fff;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 16px}.editor-header-wrapper .editor-header-back[data-v-4fefd02d]{width:220px;padding-top:8px}.editor-header-wrapper .editor-header-docs-title[data-v-4fefd02d]{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.editor-header-wrapper .editor-header-operation[data-v-4fefd02d]{width:220px;padding-top:8px}.editor-wrapper[data-v-4fefd02d]{height:calc(100% - 81px)}.editor-header-docs-title-input[data-v-4fefd02d]{max-width:680px}.editor-header-docs-title-input .el-input__inner{text-align:center;font-size:14px;font-weight:700;line-height:14px;border:1px solid transparent;border-bottom:1px solid #dcdfe6}.editor-header-docs-title-input .el-input.is-active,.editor-header-docs-title-input .el-input__inner:focus{border-color:transparent;border-bottom-color:#ddd} -------------------------------------------------------------------------------- /dist/static/css/chunk-ded8e3fa.4e578b24.css: -------------------------------------------------------------------------------- 1 | .editor-component[data-v-a1c76bbc]{height:100%}.vditor-preview__action{display:none!important}.vditor-toolbar__item{margin-right:6px} -------------------------------------------------------------------------------- /dist/static/css/chunk-e7783a00.e117cd1c.css: -------------------------------------------------------------------------------- 1 | .excel-edit-component-wrapper .excel-edit[data-v-258fdfb1],.excel-edit-component-wrapper[data-v-258fdfb1]{height:100%} -------------------------------------------------------------------------------- /dist/static/css/chunk-ee3e0cda.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-ee3e0cda.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-f08c5732.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-f08c5732.0e433876.css -------------------------------------------------------------------------------- /dist/static/css/chunk-f6b8c7fc.0e433876.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/css/chunk-f6b8c7fc.0e433876.css -------------------------------------------------------------------------------- /dist/static/fonts/element-icons.535877f5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/fonts/element-icons.535877f5.woff -------------------------------------------------------------------------------- /dist/static/fonts/element-icons.732389de.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/fonts/element-icons.732389de.ttf -------------------------------------------------------------------------------- /dist/static/fonts/iconfont.1a49aa6a.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/fonts/iconfont.1a49aa6a.eot -------------------------------------------------------------------------------- /dist/static/fonts/iconfont.5a3d5774.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/fonts/iconfont.5a3d5774.ttf -------------------------------------------------------------------------------- /dist/static/fonts/iconfont.8205a6d9.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/fonts/iconfont.8205a6d9.woff -------------------------------------------------------------------------------- /dist/static/img/.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/.gz -------------------------------------------------------------------------------- /dist/static/img/0.94004942.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/0.94004942.png -------------------------------------------------------------------------------- /dist/static/img/1.0158d918.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/1.0158d918.png -------------------------------------------------------------------------------- /dist/static/img/2.2cc79c96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/2.2cc79c96.png -------------------------------------------------------------------------------- /dist/static/img/headerImage.baefd97f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/headerImage.baefd97f.png -------------------------------------------------------------------------------- /dist/static/img/logo.6f3c98e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/logo.6f3c98e4.png -------------------------------------------------------------------------------- /dist/static/img/nodata.8468dc19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/img/nodata.8468dc19.png -------------------------------------------------------------------------------- /dist/static/js/.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/dist/static/js/.gz -------------------------------------------------------------------------------- /dist/static/js/chunk-031a2d18.8151e680.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-031a2d18"],{"0eac":function(t,e,n){},2445:function(t,e,n){"use strict";n("0eac")},"25ed":function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"sheet-view-page"},[e("div",{staticClass:"excel-edit",attrs:{id:"excel-edit"}}),e("ul",{staticClass:"docment-sub-info-wrapper"},[e("li",[e("span",{staticClass:"paddingR5"},[t._v("作者:")]),e("span",{staticClass:"user-header-wrapper"},[e("authorHead",{attrs:{userData:t.author}})],1)]),e("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),e("li",[e("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),e("li",[e("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])])},i=[],o=n("bd86"),s=(n("7f7f"),n("0c67"),n("450d"),n("299c")),c=n.n(s),r=n("8d4a"),u=n("22ce"),d=n.n(u),l=n("d594"),f={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(o["a"])({authorHead:l["a"]},c.a.name,c.a),mounted:function(){this.renderContent()},methods:{renderContent:function(){var t={mode:"read",showToolbar:!0,showGrid:!0,showContextmenu:!0,view:{height:function(){return document.documentElement.clientHeight-70},width:function(){return document.documentElement.clientWidth}},row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{bgcolor:"#ffffff",align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Helvetica",size:10,bold:!1,italic:!1}}};r["a"].locale("zh-cn",d.a),this.editor=new r["a"](document.getElementById("excel-edit"),t),this.editor.validate(),this.setContent(this.content)},setContent:function(t){try{t=JSON.parse(t)}catch(e){console.log(e)}this.editor.loadData(t)}},watch:{content:function(t){this.setContent(t)}}},h=f,m=(n("ea15"),n("2877")),p=Object(m["a"])(h,a,i,!1,null,"a45159c2",null);e["default"]=p.exports},c2aa:function(t,e,n){},d594:function(t,e,n){"use strict";var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"author-head inline-block"},[e("div",{staticClass:"user-img"},[e("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),e("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},i=[],o={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:n("7724")}}},s=o,c=(n("2445"),n("2877")),r=Object(c["a"])(s,a,i,!1,null,"7d18a370",null);e["a"]=r.exports},ea15:function(t,e,n){"use strict";n("c2aa")}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-036c83b2.24be7ea1.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-036c83b2"],{"11e8":function(t,a,s){"use strict";s("393f")},"393f":function(t,a,s){},e89c:function(t,a,s){"use strict";s.r(a);var n=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,n){return[a("docsThumbnail",{key:n,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!1,showCreateTime:!0,btnList:["recovery","destroy"],canOpenDocs:!1},on:{"open-folder":function(a){return t.openFolder(s)},refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("回收站")])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],o=s("b01a"),e=s("66aa"),c={components:{docsThumbnail:o["a"],noFunData:e["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyRecycleBinDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},r=c,l=(s("11e8"),s("2877")),d=Object(l["a"])(r,n,i,!1,null,"558047ac",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-09d4fff7.3446543a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-09d4fff7"],{"128f":function(t,a,s){"use strict";var e=s("cc93"),n=s.n(e);n.a},cc93:function(t,a,s){},e89c:function(t,a,s){"use strict";s.r(a);var e=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"page-my-document"},[t._m(0),s("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),s("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,e){return[s("docsThumbnail",{key:e,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!1,showCreateTime:!0,btnList:["recovery","destroy"],canOpenDocs:!1},on:{"open-folder":function(s){return t.openFolder(a)},refresh:t.getData}})]})),t.noData?s("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dash-board-operator-wrapper"},[s("div",{staticClass:"dash-board-title"},[t._v("回收站")])])},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ul",{staticClass:"docs-thumbnail-table-title"},[s("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),s("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),s("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),s("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],i=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:i["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyRecycleBinDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},r=c,l=(s("128f"),s("9ca4")),d=Object(l["a"])(r,e,n,!1,null,"4b0596a3",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-09fb6001.e7783ea3.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-09fb6001"],{"0eac":function(t,n,e){},"14cc":function(t,n,e){},2445:function(t,n,e){"use strict";e("0eac")},2685:function(t,n,e){"use strict";e("14cc")},8145:function(t,n,e){"use strict";e.r(n);var a=function(){var t=this,n=t._self._c;return n("div",{staticClass:"docs-view-item"},[n("div",{staticClass:"docs-main-wrapper"},[n("div",{staticClass:"docment-title-wrapper"},[n("h1",{staticClass:"docs-title"},[t._v("\n "+t._s(t.document.title)+"\n ")]),n("ul",{staticClass:"docment-sub-info-wrapper"},[n("li",[n("span",{staticClass:"paddingR5"},[t._v("作者:")]),n("span",{staticClass:"user-header-wrapper"},[n("authorHead",{attrs:{userData:t.author}})],1)]),n("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),n("li",[n("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),n("li",[n("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])]),n("div",{attrs:{id:"preview"},domProps:{innerHTML:t._s(t.document.content)}})])])},s=[],c=e("bd86"),i=(e("7f7f"),e("0c67"),e("450d"),e("299c")),o=e.n(i),r=e("ff41"),u=e.n(r),d=(e("ae60"),e("d594")),l={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(c["a"])({authorHead:d["a"]},o.a.name,o.a),data:function(){return{}},mounted:function(){this.renderMarkdown(this.content)},methods:{renderMarkdown:function(t){u.a.preview(document.getElementById("preview"),t,{speech:{enable:!0},anchor:1})}},watch:{content:function(t){this.renderMarkdown(t)}}},p=l,f=(e("2685"),e("2877")),m=Object(f["a"])(p,a,s,!1,null,null,null);n["default"]=m.exports},d594:function(t,n,e){"use strict";var a=function(){var t=this,n=t._self._c;return n("div",{staticClass:"author-head inline-block"},[n("div",{staticClass:"user-img"},[n("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),n("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},s=[],c={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:e("7724")}}},i=c,o=(e("2445"),e("2877")),r=Object(o["a"])(i,a,s,!1,null,"7d18a370",null);n["a"]=r.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-0d93ffba.6dfc141c.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0d93ffba"],{4886:function(t,s,i){"use strict";i("b84b")},"98f8":function(t,s,i){"use strict";i.r(s);var n=function(){var t=this,s=t._self._c;return s("div",[t._m(0),s("div",{staticClass:"main_content_404"},[t._m(1),s("div",{staticClass:"content_right_404"},[s("div",{staticClass:"title_404"},[t._v("可以尝试:")]),s("router-link",{staticClass:"returnIndex_page",attrs:{to:{path:"/"}}},[t._v("返回首页")])],1)])])},a=[function(){var t=this,s=t._self._c;return s("div",{staticClass:"top_404"},[s("div",[t._v("404")]),s("div",[t._v("SORRY您访问的页面弄丢了")])])},function(){var t=this,s=t._self._c;return s("div",{staticClass:"content_left_404"},[s("div",{staticClass:"title_404"},[t._v("可能原因:")]),s("ul",{staticClass:"reasonBox"},[s("li",[t._v("1. 网络信号差")]),s("li",[t._v("2. 找不到请求的页面")]),s("li",[t._v("3. 输入的网址不正确")])])])}],c={data:function(){return{}}},_=c,e=(i("4886"),i("2877")),l=Object(e["a"])(_,n,a,!1,null,"cacb35da",null);s["default"]=l.exports},b84b:function(t,s,i){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-183df209.96d9be3f.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-183df209"],{"28d2":function(t,a,s){},d9ea:function(t,a,s){"use strict";s.r(a);var n=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,n){return[a("docsThumbnail",{key:n,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!1,showCreateTime:!0,btnList:["openBlank","edit","reName","copyUrl","shareSetting","cooperation","delete"]},on:{"open-folder":function(a){return t.openFolder(s)},refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("我的文档")])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],e=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:e["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},d=c,l=(s("de13"),s("2877")),r=Object(l["a"])(d,n,i,!1,null,"f1bac4dc",null);a["default"]=r.exports},de13:function(t,a,s){"use strict";s("28d2")}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-24aab2d4.d99c059a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-24aab2d4"],{"5b11":function(t,a,s){},bb6a:function(t,a,s){"use strict";var n=s("5b11"),i=s.n(n);i.a},d559:function(t,a,s){"use strict";s.r(a);var n=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"page-my-document"},[t._m(0),s("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),s("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,n){return[s("docsThumbnail",{key:n,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!1,showCreateTime:!0,showEditBtn:!0,btnList:["edit","openBlank","copyUrl","unCooperation"]},on:{refresh:t.getData}})]})),t.noData?s("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dash-board-operator-wrapper"},[s("div",{staticClass:"dash-board-title"},[t._v("我的协作")])])},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ul",{staticClass:"docs-thumbnail-table-title"},[s("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),s("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),s("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),s("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],e=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:e["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyCooperationDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},l=c,r=(s("bb6a"),s("9ca4")),d=Object(r["a"])(l,n,i,!1,null,"331fca99",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-24aac9bc.b89cf70e.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-24aac9bc"],{4943:function(t,n,c){"use strict";c.r(n);var e=function(){var t=this;t._self._c;return t._m(0)},s=[function(){var t=this,n=t._self._c;return n("div",{staticClass:"page-home"},[n("p",{staticClass:"page-title paddingB30"},[t._v("home page title")])])}],a={},i=a,u=(c("8fcb"),c("2877")),o=Object(u["a"])(i,e,s,!1,null,"40b454b4",null);n["default"]=o.exports},"8d80":function(t,n,c){},"8fcb":function(t,n,c){"use strict";c("8d80")}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-2dff28e4.a373ebe0.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2dff28e4"],{"05ea":function(a,s,n){"use strict";n("9845")},"50cf":function(a,s,n){"use strict";n("8c4fc")},"6e9a":function(a,s,n){"use strict";n.r(s);var i=function(){var a=this,s=a._self._c;return s("div",{staticClass:"page page-dash-board"},[s("div",{staticClass:"page-header-wrappper"},[s("pageHeader")],1),s("div",{staticClass:"dash-board-wrappper layout-container"},[s("div",{staticClass:"dash-board-side-bar"},[s("sideBar")],1),s("div",{staticClass:"dash-board-main"},[s("router-view",{staticClass:"dash-board-subpage"})],1)])])},e=[],t=function(){var a=this,s=a._self._c;return s("ul",{staticClass:"components-work-side-bar"},a._l(a.navData,(function(n,i){return s("li",{key:i,staticClass:"side-bar-item",class:{active:a.$route.path===n.path},on:{click:function(s){return a.navClick(n)}}},[s("i",{staticClass:"iconfont",class:n.iconClassName}),s("span",[a._v(a._s(n.name))])])})),0)},o=[],c={data:function(){return{navData:[{name:"工作台",path:"/dashboard/work",iconClassName:"icon-weimingmingwenjianjia_gongzuotai"},{name:"我的文档",path:"/dashboard/document",iconClassName:"icon-ziyuan194"},{name:"协作编辑",path:"/dashboard/cooperation",iconClassName:"icon-zuzhi"},{name:"我的模板",path:"/dashboard/template",iconClassName:"icon-moban"},{name:"我的团队",path:"/dashboard/group",iconClassName:"icon-yonghushu"},{name:"我的收藏",path:"/dashboard/collection",iconClassName:"icon-guanzhu"},{name:"最近浏览",path:"/dashboard/history",iconClassName:"icon-zuijinliulan"},{name:"回收站",path:"/dashboard/recycle-bin",iconClassName:"icon-huishouzhan"}]}},methods:{navClick:function(a){a.path?this.$router.push(a.path):this.$message.info("正在开发中,敬请期待...")}}},r=c,d=(n("50cf"),n("2877")),u=Object(d["a"])(r,t,o,!1,null,"4e9300e7",null),l=u.exports,h=n("7c0b"),p={components:{sideBar:l,pageHeader:h["a"]}},m=p,b=(n("05ea"),Object(d["a"])(m,i,e,!1,null,"4fb9c5ce",null));s["default"]=b.exports},"8c4fc":function(a,s,n){},9845:function(a,s,n){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-2f42b10f.de762f11.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2f42b10f"],{"0103":function(t,a,s){"use strict";s("d671")},a36f:function(t,a,s){"use strict";s.r(a);var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,i){return[a("docsThumbnail",{key:i,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!1,showCreateTime:!0,showEditBtn:!0,btnList:["edit","destroy"],editFn:t.editFn},on:{"open-folder":function(a){return t.openFolder(s)},refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("我的模板")])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],e=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:e["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyTemplate().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))},editFn:function(t){this.$router.push({name:"Edit",query:{type:t.type,id:t._id,isTemplate:!0}})}}},d=c,r=(s("0103"),s("2877")),l=Object(r["a"])(d,i,n,!1,null,"b5cb54cc",null);a["default"]=l.exports},d671:function(t,a,s){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-2fc8b4e8.c3fafcf9.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2fc8b4e8"],{"04a8":function(t,a,e){},a36f:function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"page-my-document"},[t._m(0),e("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),e("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,s){return[e("docsThumbnail",{key:s,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!1,showCreateTime:!0,showEditBtn:!0,btnList:["edit","destroy"],editFn:t.editFn},on:{"open-folder":function(e){return t.openFolder(a)},refresh:t.getData}})]})),t.noData?e("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"dash-board-operator-wrapper"},[e("div",{staticClass:"dash-board-title"},[t._v("我的模板")])])},function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ul",{staticClass:"docs-thumbnail-table-title"},[e("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),e("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),e("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),e("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],n=e("b01a"),o=e("66aa"),c={components:{docsThumbnail:n["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyTemplate().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))},editFn:function(t){this.$router.push({name:"Edit",query:{type:t.type,id:t._id,isTemplate:!0}})}}},r=c,d=(e("fc92"),e("9ca4")),l=Object(d["a"])(r,s,i,!1,null,"e4a688de",null);a["default"]=l.exports},fc92:function(t,a,e){"use strict";var s=e("04a8"),i=e.n(s);i.a}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-42522d03.8a740958.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-42522d03"],{"2ebb":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this;t._self._c;return t._m(0)},o=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"excel-edit-component-wrapper"},[e("div",{staticClass:"excel-edit",attrs:{id:"excel-edit"}})])}],d=n("8d4a"),r=n("22ce"),c=n.n(r),s=null,a={props:{content:{type:String,default:""}},data:function(){return{editor:null,editorHasReady:!1,editorContent:""}},created:function(){},mounted:function(){this.initEditor()},watch:{content:function(t){this.setContent(t)}},methods:{initEditor:function(){var t={showToolbar:!0,showGrid:!0,showContextmenu:!0,view:{height:function(){return document.documentElement.clientHeight-71},width:function(){return document.documentElement.clientWidth}},row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{bgcolor:"#ffffff",align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Helvetica",size:10,bold:!1,italic:!1}}};d["a"].locale("zh-cn",c.a),this.editor=new d["a"](document.getElementById("excel-edit"),t),this.editor.validate(),this.editor.setContent(this.content)},getContent:function(){var t=this.editor.getData();return JSON.stringify(t)},setContent:function(t){try{t=JSON.parse(t)}catch(e){console.log(e)}this.editor.loadData(t)},insertContent:function(t){this.editor&&this.setContent(t)},destroy:function(){this.editor.destroy(),this.editor=void 0}},destroyed:function(){this.editorHasReady&&this.editor&&this.editor.destroy(),s&&clearInterval(s)}},l=a,u=(n("5588"),n("2877")),h=Object(u["a"])(l,i,o,!1,null,"7aef8dc8",null);e["default"]=h.exports},5588:function(t,e,n){"use strict";n("f3ee")},f3ee:function(t,e,n){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-46ab208d.7f9916cf.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-46ab208d"],{"0eac":function(t,n,e){},2445:function(t,n,e){"use strict";e("0eac")},"270d":function(t,n,e){},bd13:function(t,n,e){"use strict";e("ed6e")},cbe2:function(t,n,e){"use strict";e("270d")},d594:function(t,n,e){"use strict";var a=function(){var t=this,n=t._self._c;return n("div",{staticClass:"author-head inline-block"},[n("div",{staticClass:"user-img"},[n("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),n("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},s=[],r={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:e("7724")}}},i=r,c=(e("2445"),e("2877")),u=Object(c["a"])(i,a,s,!1,null,"7d18a370",null);n["a"]=u.exports},d684:function(t,n,e){"use strict";e.r(n);var a=function(){var t=this,n=t._self._c;return n("div",{staticClass:"page-axure-view"},[n("div",{staticClass:"axure-view"},[n("iframeLayout",{attrs:{url:t.axureUrl}})],1),n("ul",{staticClass:"docment-sub-info-wrapper"},[n("li",[n("span",{staticClass:"paddingR5"},[t._v("作者:")]),n("span",{staticClass:"user-header-wrapper"},[n("authorHead",{attrs:{userData:t.author}})],1)]),n("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),n("li",[n("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),n("li",[n("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])])},s=[],r=e("bd86"),i=(e("7f7f"),e("0c67"),e("450d"),e("299c")),c=e.n(i),u=e("d594"),o=function(){var t=this,n=t._self._c;return n("div",{staticClass:"page-monitoring-page"},[n("iframe",{staticStyle:{"background-color":"transparent",width:"100%","min-height":"100%"},attrs:{src:t.url,frameborder:"0"}})])},d=[],l={props:{url:String}},f=l,p=(e("bd13"),e("2877")),m=Object(p["a"])(f,o,d,!1,null,"af689f40",null),b=m.exports,h={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(r["a"])({authorHead:u["a"],iframeLayout:b},c.a.name,c.a),data:function(){return{axureUrl:""}},mounted:function(){this.renderContent()},methods:{renderContent:function(){this.setContent(this.content)},setContent:function(t){this.axureUrl=t}},watch:{content:function(t){this.setContent(t)}}},v=h,_=(e("cbe2"),Object(p["a"])(v,a,s,!1,null,"b5d9bbc6",null));n["default"]=_.exports},ed6e:function(t,n,e){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-4bcc46b0.df6f695d.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4bcc46b0"],{"7c0a":function(t,e,a){var n=a("2fd4"),i=a("f6b4");t.exports=function(t,e,a){if(n(e))throw TypeError("String#"+a+" doesn't accept regex!");return String(i(t))}},"8cf2":function(t,e,a){"use strict";var n=a("e46b"),i=a("7c0a"),r="includes";n(n.P+n.F*a("bc96")(r),"String",{includes:function(t){return!!~i(this,t,r).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"910e":function(t,e,a){"use strict";a.r(e);var n,i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"axure-edit-wrapper"},[a("div",{staticClass:"upload-wrapper"},[a("el-form",{attrs:{"label-position":"top"}},[a("el-form-item",{attrs:{label:"上传Axure zip文件:"}},[a("div",{staticClass:"paddingL60 text-area-wrapper"},[a("el-upload",{staticClass:"user-image-upload-input",attrs:{action:"/","before-upload":t.beforeUpload,accept:"application/zip"}},[a("div",[a("el-button",{attrs:{type:"primary",size:"small"}},[t._v("上传文件")]),a("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[t._v("只能上传zip文件,且不超过50m")])],1)])],1)]),a("el-form-item",{attrs:{label:"默认访问入口:"}},[a("div",{attrs:{slot:"label"},slot:"label"},[a("span",{staticClass:"inline-block marginR20"},[t._v("默认访问入口:")]),a("el-button",{attrs:{size:"small"},on:{click:t.setDefaultUrl}},[t._v("设置当前预览页面为入口页面")])],1),a("div",{staticClass:"text-area-wrapper"},[t._v("\n "+t._s(t.reGetUrl(t.axureUrl))+"\n ")])])],1)],1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"axure-preview-wrapper"},[a("iframe",{ref:"iframe",staticStyle:{"background-color":"transparent",width:"100%","min-height":"100%"},attrs:{src:t.reGetUrl(t.axureUrl),frameborder:"0"}}),t.axureUrl?t._e():a("div",{staticClass:"preview-tips-wrapper"},[a("div",{staticClass:"preview-tips"},[t._v("\n 上传原型图zip包预览\n ")])])])])},r=[],s=(a("f548"),a("ed63"),a("8cf2"),a("ce3c")),o=(a("4f55"),a("2984"),a("c944")),c=a.n(o),l=(a("7b77"),a("3450")),u=a.n(l),d=(a("e8bd"),a("3f00")),p=a.n(d),f=(a("32de"),a("8d99")),b=a.n(f),v=(a("cc57"),a("a68a"),a("230e")),h=a.n(v),m={name:"axure-edit",props:{content:{type:String,default:""}},components:(n={},Object(s["a"])(n,h.a.name,h.a),Object(s["a"])(n,b.a.name,b.a),Object(s["a"])(n,p.a.name,p.a),Object(s["a"])(n,u.a.name,u.a),Object(s["a"])(n,c.a.name,c.a),n),data:function(){return{loading:!1,axureUrl:"",editorHasReady:!0}},created:function(){},mounted:function(){this.initEditor()},watch:{content:function(t){this.setContent(t)}},methods:{initEditor:function(){},getContent:function(){return this.axureUrl},setContent:function(t){this.axureUrl=t},destroy:function(){},beforeUpload:function(t){if(!(t.size>52428800))return this.saveAxureZip(t),!1;this.$message.error("上传图片不能超过50mb!")},saveAxureZip:function(t){var e=this,a=new FormData;a.append("file",t),this.loading=!0,this.$API.docsUplaodAxure(a).then((function(t){e.loading=!1,e.setContent(t.body.url)})).catch((function(){e.loading=!1}))},setDefaultUrl:function(){if(this.axureUrl)try{var t=this.$refs.iframe.contentWindow.location.href;t.includes(window.location.origin)&&(t=t.replace(window.location.origin,"")),this.axureUrl=t}catch(e){this.$message.error("axuer预览地址与当前系统地址不同源,无法获取url")}},reGetUrl:function(t){return t?t.includes("http://")||t.includes("https://")?t:window.location.origin+t:""}},destroyed:function(){}},w=m,g=(a("aebe"),a("9ca4")),x=Object(g["a"])(w,i,r,!1,null,"0ee098bc",null);e["default"]=x.exports},a89a:function(t,e,a){},aebe:function(t,e,a){"use strict";var n=a("a89a"),i=a.n(n);i.a},bc96:function(t,e,a){var n=a("cb3d")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(a){try{return e[n]=!1,!"/./"[t](e)}catch(i){}}return!0}},ed63:function(t,e,a){"use strict";var n=a("e46b"),i=a("b3a6")(!0);n(n.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),a("0e8b")("includes")}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-4ff368c5.cfb04b1c.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4ff368c5"],{"2fdb":function(t,e,a){"use strict";var i=a("5ca1"),n=a("d2c8"),r="includes";i(i.P+i.F*a("5147")(r),"String",{includes:function(t){return!!~n(this,t,r).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},3760:function(t,e,a){"use strict";a("a6de")},5147:function(t,e,a){var i=a("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(a){try{return e[i]=!1,!"/./"[t](e)}catch(n){}}return!0}},6762:function(t,e,a){"use strict";var i=a("5ca1"),n=a("c366")(!0);i(i.P,"Array",{includes:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}}),a("9c6c")("includes")},"910e":function(t,e,a){"use strict";a.r(e);var i,n=function(){var t=this,e=t._self._c;return e("div",{staticClass:"axure-edit-wrapper"},[e("div",{staticClass:"upload-wrapper"},[e("el-form",{attrs:{"label-position":"top"}},[e("el-form-item",{attrs:{label:"上传Axure zip文件:"}},[e("div",{staticClass:"paddingL60 text-area-wrapper"},[e("el-upload",{staticClass:"user-image-upload-input",attrs:{action:"/","before-upload":t.beforeUpload,accept:"application/zip"}},[e("div",[e("el-button",{attrs:{type:"primary",size:"small"}},[t._v("上传文件")]),e("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[t._v("只能上传zip文件,且不超过50m")])],1)])],1)]),e("el-form-item",{attrs:{label:"默认访问入口:"}},[e("div",{attrs:{slot:"label"},slot:"label"},[e("span",{staticClass:"inline-block marginR20"},[t._v("默认访问入口:")]),e("el-button",{attrs:{size:"small"},on:{click:t.setDefaultUrl}},[t._v("设置当前预览页面为入口页面")])],1),e("div",{staticClass:"text-area-wrapper"},[t._v("\n "+t._s(t.reGetUrl(t.axureUrl))+"\n ")])])],1)],1),e("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"axure-preview-wrapper"},[e("iframe",{ref:"iframe",staticStyle:{"background-color":"transparent",width:"100%","min-height":"100%"},attrs:{src:t.reGetUrl(t.axureUrl),frameborder:"0"}}),t.axureUrl?t._e():e("div",{staticClass:"preview-tips-wrapper"},[e("div",{staticClass:"preview-tips"},[t._v("\n 上传原型图zip包预览\n ")])])])])},r=[],s=(a("a481"),a("6762"),a("2fdb"),a("bd86")),o=(a("0c67"),a("450d"),a("299c")),c=a.n(o),l=(a("f225"),a("89a9")),u=a.n(l),d=(a("1951"),a("eedf")),p=a.n(d),f=(a("eca7"),a("3787")),h=a.n(f),v=(a("7f7f"),a("425f"),a("4105")),m=a.n(v),b={name:"axure-edit",props:{content:{type:String,default:""}},components:(i={},Object(s["a"])(i,m.a.name,m.a),Object(s["a"])(i,h.a.name,h.a),Object(s["a"])(i,p.a.name,p.a),Object(s["a"])(i,u.a.name,u.a),Object(s["a"])(i,c.a.name,c.a),i),data:function(){return{loading:!1,axureUrl:"",editorHasReady:!0}},created:function(){},mounted:function(){this.initEditor()},watch:{content:function(t){this.setContent(t)}},methods:{initEditor:function(){},getContent:function(){return this.axureUrl},setContent:function(t){this.axureUrl=t},destroy:function(){},beforeUpload:function(t){if(!(t.size>52428800))return this.saveAxureZip(t),!1;this.$message.error("上传图片不能超过50mb!")},saveAxureZip:function(t){var e=this,a=new FormData;a.append("file",t),this.loading=!0,this.$API.docsUplaodAxure(a).then((function(t){e.loading=!1,e.setContent(t.body.url)})).catch((function(){e.loading=!1}))},setDefaultUrl:function(){if(this.axureUrl)try{var t=this.$refs.iframe.contentWindow.location.href;t.includes(window.location.origin)&&(t=t.replace(window.location.origin,"")),this.axureUrl=t}catch(e){this.$message.error("axuer预览地址与当前系统地址不同源,无法获取url")}},reGetUrl:function(t){return t?t.includes("http://")||t.includes("https://")?t:window.location.origin+t:""}},destroyed:function(){}},w=b,g=(a("3760"),a("2877")),x=Object(g["a"])(w,n,r,!1,null,"2758fa26",null);e["default"]=x.exports},a6de:function(t,e,a){},d2c8:function(t,e,a){var i=a("aae3"),n=a("be13");t.exports=function(t,e,a){if(i(e))throw TypeError("String#"+a+" doesn't accept regex!");return String(n(t))}}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-58478a4f.e2a15a79.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-58478a4f"],{"444c":function(t,n,e){},"4d2b":function(t,n,e){"use strict";var a=e("96a7"),s=e.n(a);s.a},"5b90":function(t,n,e){"use strict";var a=e("e6de"),s=e.n(a);s.a},"96a7":function(t,n,e){},"9ce2":function(t,n,e){"use strict";var a=e("444c"),s=e.n(a);s.a},d594:function(t,n,e){"use strict";var a=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"author-head inline-block"},[e("div",{staticClass:"user-img"},[e("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),e("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},s=[],r={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:e("7724")}}},c=r,i=(e("9ce2"),e("9ca4")),u=Object(i["a"])(c,a,s,!1,null,"43cb923d",null);n["a"]=u.exports},d684:function(t,n,e){"use strict";e.r(n);var a=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"page-axure-view"},[e("div",{staticClass:"axure-view"},[e("iframeLayout",{attrs:{url:t.axureUrl}})],1),e("ul",{staticClass:"docment-sub-info-wrapper"},[e("li",[e("span",{staticClass:"paddingR5"},[t._v("作者:")]),e("span",{staticClass:"user-header-wrapper"},[e("authorHead",{attrs:{userData:t.author}})],1)]),e("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),e("li",[e("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),e("li",[e("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])])},s=[],r=e("ce3c"),c=(e("cc57"),e("4f55"),e("2984"),e("c944")),i=e.n(c),u=e("d594"),o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"page-monitoring-page"},[e("iframe",{staticStyle:{"background-color":"transparent",width:"100%","min-height":"100%"},attrs:{src:t.url,frameborder:"0"}})])},l=[],d={props:{url:String}},f=d,p=(e("4d2b"),e("9ca4")),m=Object(p["a"])(f,o,l,!1,null,"12ac5d29",null),h=m.exports,v={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(r["a"])({authorHead:u["a"],iframeLayout:h},i.a.name,i.a),data:function(){return{axureUrl:""}},mounted:function(){this.renderContent()},methods:{renderContent:function(){this.setContent(this.content)},setContent:function(t){this.axureUrl=t}},watch:{content:function(t){this.setContent(t)}}},b=v,_=(e("5b90"),Object(p["a"])(b,a,s,!1,null,"d3b72e20",null));n["default"]=_.exports},e6de:function(t,n,e){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-5e14fede.a0a2b24a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5e14fede"],{"1e4b":function(t,e,n){},"98f8":function(t,e,n){"use strict";n.r(e);var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._m(0),n("div",{staticClass:"main_content_404"},[t._m(1),n("div",{staticClass:"content_right_404"},[n("div",{staticClass:"title_404"},[t._v("可以尝试:")]),n("router-link",{staticClass:"returnIndex_page",attrs:{to:{path:"/"}}},[t._v("返回首页")])],1)])])},i=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"top_404"},[n("div",[t._v("404")]),n("div",[t._v("SORRY您访问的页面弄丢了")])])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"content_left_404"},[n("div",{staticClass:"title_404"},[t._v("可能原因:")]),n("ul",{staticClass:"reasonBox"},[n("li",[t._v("1. 网络信号差")]),n("li",[t._v("2. 找不到请求的页面")]),n("li",[t._v("3. 输入的网址不正确")])])])}],a={data:function(){return{}}},c=a,l=(n("b828"),n("9ca4")),r=Object(l["a"])(c,s,i,!1,null,"18ceb035",null);e["default"]=r.exports},b828:function(t,e,n){"use strict";var s=n("1e4b"),i=n.n(s);i.a}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-5ead0492.ee09473d.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5ead0492"],{"25ed":function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sheet-view-page"},[n("div",{staticClass:"excel-edit",attrs:{id:"excel-edit"}}),n("ul",{staticClass:"docment-sub-info-wrapper"},[n("li",[n("span",{staticClass:"paddingR5"},[t._v("作者:")]),n("span",{staticClass:"user-header-wrapper"},[n("authorHead",{attrs:{userData:t.author}})],1)]),n("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),n("li",[n("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),n("li",[n("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[n("span",[n("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])])},i=[],c=n("ce3c"),o=(n("cc57"),n("4f55"),n("2984"),n("c944")),s=n.n(o),r=n("2570"),u=n("c277"),l=n.n(u),d=n("d594"),f={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(c["a"])({authorHead:d["a"]},s.a.name,s.a),mounted:function(){this.renderContent()},methods:{renderContent:function(){var t={mode:"read",showToolbar:!0,showGrid:!0,showContextmenu:!0,view:{height:function(){return document.documentElement.clientHeight-70},width:function(){return document.documentElement.clientWidth}},row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{bgcolor:"#ffffff",align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Helvetica",size:10,bold:!1,italic:!1}}};r["a"].locale("zh-cn",l.a),this.editor=new r["a"](document.getElementById("excel-edit"),t),this.editor.validate(),this.editor.setContent(this.content)},setContent:function(t){try{t=JSON.parse(t)}catch(e){console.log(e)}this.editor.loadData(t)}},watch:{content:function(t){this.setContent(t)}}},h=f,m=(n("6343"),n("9ca4")),p=Object(m["a"])(h,a,i,!1,null,"a2f4a022",null);e["default"]=p.exports},"444c":function(t,e,n){},6343:function(t,e,n){"use strict";var a=n("8522"),i=n.n(a);i.a},8522:function(t,e,n){},"9ce2":function(t,e,n){"use strict";var a=n("444c"),i=n.n(a);i.a},d594:function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"author-head inline-block"},[n("div",{staticClass:"user-img"},[n("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),n("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},i=[],c={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:n("7724")}}},o=c,s=(n("9ce2"),n("9ca4")),r=Object(s["a"])(o,a,i,!1,null,"43cb923d",null);e["a"]=r.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-5fc0b9e4.f3ace9d0.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5fc0b9e4"],{1339:function(t,a,s){},"2b30":function(t,a,s){"use strict";s.r(a);var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,i){return[a("docsThumbnail",{key:i,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!0,btnList:["openBlank","copyUrl","unCollect"]},on:{refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("我的收藏")])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-author"},[t._v("创建者")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],o=s("b01a"),c=s("66aa"),e={components:{docsThumbnail:o["a"],noFunData:c["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyCollectDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},l=e,r=(s("c7d0"),s("2877")),d=Object(r["a"])(l,i,n,!1,null,"45b5c724",null);a["default"]=d.exports},c7d0:function(t,a,s){"use strict";s("1339")}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-62c85178.0c622593.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-62c85178"],{"9de1":function(t,a,s){},ccfa:function(t,a,s){"use strict";var n=s("9de1"),i=s.n(n);i.a},d87d:function(t,a,s){"use strict";s.r(a);var n=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"page-my-document"},[t._m(0),s("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),s("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,n){return[s("docsThumbnail",{key:n,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!0},on:{"open-folder":function(s){return t.openFolder(a)},refresh:t.getData}})]})),t.noData?s("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dash-board-operator-wrapper"},[s("div",{staticClass:"dash-board-title"},[t._v("我的收藏 "),s("span",{staticClass:"gray fontsize-12"},[t._v("(近20条)")])])])},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ul",{staticClass:"docs-thumbnail-table-title"},[s("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),s("li",{staticClass:"docs-info-author"},[t._v("创建者")]),s("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),s("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],e=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:e["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyVisitHistoryDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},r=c,l=(s("ccfa"),s("9ca4")),d=Object(l["a"])(r,n,i,!1,null,"0e642240",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-68fcdb6e.3e1df48a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-68fcdb6e"],{"2b30":function(t,a,s){"use strict";s.r(a);var n=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"page-my-document"},[t._m(0),s("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),s("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,n){return[s("docsThumbnail",{key:n,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!0,btnList:["openBlank","copyUrl","unCollect"]},on:{refresh:t.getData}})]})),t.noData?s("noFunData"):t._e()],2)])])},i=[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dash-board-operator-wrapper"},[s("div",{staticClass:"dash-board-title"},[t._v("我的收藏")])])},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ul",{staticClass:"docs-thumbnail-table-title"},[s("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),s("li",{staticClass:"docs-info-author"},[t._v("创建者")]),s("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),s("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],e=s("b01a"),o=s("66aa"),c={components:{docsThumbnail:e["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyCollectDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},l=c,r=(s("a5f0"),s("9ca4")),d=Object(r["a"])(l,n,i,!1,null,"b16512cc",null);a["default"]=d.exports},a5a8:function(t,a,s){},a5f0:function(t,a,s){"use strict";var n=s("a5a8"),i=s.n(n);i.a}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-7236d5c0.62bc872a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7236d5c0"],{"425a":function(t,e,i){"use strict";var n=i("b9a5"),o=i.n(n);o.a},6772:function(t,e,i){"use strict";i.r(e);var n=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{ref:"editor-component",staticClass:"editor-component editor-md"},[i("div",{attrs:{id:"editor-md-dom"}})])},o=[],s=i("f334"),r=i.n(s),a=(i("60d96"),null),d={props:{content:{type:String,default:""}},data:function(){return{editor:null,editorHasReady:!1}},created:function(){},mounted:function(){this.initEditor()},watch:{content:function(t){this.setContent(t)}},methods:{initEditor:function(){var t=this,e=this.$refs["editor-component"].offsetHeight,i={width:"100%",height:e||600,tab:"\t",counter:"999999",typewriterMode:!0,mode:"sv",preview:{delay:100},outline:!0,toolbar:[{hotkey:"⌘-E",name:"emoji",tipPosition:"ne"},{hotkey:"⌘-H",name:"headings",tipPosition:"ne"},{hotkey:"⌘-B",name:"bold",prefix:"**",suffix:"**",tipPosition:"ne"},{hotkey:"⌘-I",name:"italic",prefix:"*",suffix:"*",tipPosition:"ne"},{hotkey:"⌘-S",name:"strike",prefix:"~~",suffix:"~~",tipPosition:"ne"},{hotkey:"⌘-K",name:"link",prefix:"[",suffix:"](https://)",tipPosition:"n"},{name:"|"},{hotkey:"⌘-L",name:"list",prefix:"* ",tipPosition:"n"},{hotkey:"⌘-O",name:"ordered-list",prefix:"1. ",tipPosition:"n"},{hotkey:"⌘-J",name:"check",prefix:"* [ ] ",tipPosition:"n"},{name:"|"},{hotkey:"⌘-;",name:"quote",prefix:"> ",tipPosition:"n"},{hotkey:"⌘-⇧-D",name:"line",prefix:"---",tipPosition:"n"},{hotkey:"⌘-U",name:"code",prefix:"```\n",suffix:"\n```",tipPosition:"n"},{hotkey:"⌘-G",name:"inline-code",prefix:"`",suffix:"`",tipPosition:"n"},{name:"|"},{hotkey:"⌘-⇧-U",name:"upload",tipPosition:"n"},{hotkey:"⌘-M",name:"table",prefix:"| col1",suffix:" | col2 | col3 |\n| --- | --- | --- |\n| | | |\n| | | |",tipPosition:"n"},{name:"|"},{hotkey:"⌘-Z",name:"undo",tipPosition:"n"},{hotkey:"⌘-Y",name:"redo",tipPosition:"n"},{name:"|"},{hotkey:"⌘-⇧-M",name:"edit-mode",tipPosition:"nw"},{hotkey:"⌘-P",name:"both",tipPosition:"nw"},{hotkey:"⌘-⇧-P",name:"preview",tipPosition:"nw"},{name:"|"},{name:"outline",tipPosition:"nw"},{name:"export",tipPosition:"nw"}],after:function(){t.editorHasReady=!0,t.setContent(t.content)}};this.editor=new r.a("editor-md-dom",i),this.editor.focus()},getContent:function(){var t=this.editor.getValue();return t},setContent:function(t){var e=this;this.editorHasReady?this.editor.setValue(t):a=setInterval((function(){e.editor.setValue(t),clearInterval(a)}),50)},insertContent:function(t){this.editor&&this.editor.setValue(t)},destroy:function(){this.editor.destroy(),this.editor=void 0}},destroyed:function(){this.editorHasReady&&this.editor&&this.editor.destroy(),a&&clearInterval(a)}},f=d,p=(i("425a"),i("88e0"),i("9ca4")),u=Object(p["a"])(f,n,o,!1,null,"9857761e",null);e["default"]=u.exports},6992:function(t,e,i){},"88e0":function(t,e,i){"use strict";var n=i("6992"),o=i.n(n);o.a},b9a5:function(t,e,i){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-7bda4a65.31dec854.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7bda4a65"],{"566f":function(t,a,e){"use strict";var s=e("8e0a"),n=e.n(s);n.a},"8e0a":function(t,a,e){},d9ea:function(t,a,e){"use strict";e.r(a);var s=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"page-my-document"},[t._m(0),e("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),e("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(a,s){return[e("docsThumbnail",{key:s,attrs:{type:a.type,docShowType:"list",docsData:a,showAuthor:!1,showCreateTime:!0,btnList:["openBlank","edit","reName","copyUrl","shareSetting","cooperation","delete"]},on:{"open-folder":function(e){return t.openFolder(a)},refresh:t.getData}})]})),t.noData?e("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"dash-board-operator-wrapper"},[e("div",{staticClass:"dash-board-title"},[t._v("我的文档")])])},function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ul",{staticClass:"docs-thumbnail-table-title"},[e("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),e("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),e("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),e("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],i=e("b01a"),o=e("66aa"),c={components:{docsThumbnail:i["a"],noFunData:o["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},r=c,l=(e("566f"),e("9ca4")),d=Object(l["a"])(r,s,n,!1,null,"9fd466a0",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-7cbd9acf.7f1af772.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7cbd9acf"],{"0a9e":function(a,n,s){},"3bea":function(a,n,s){"use strict";var e=s("6fcb"),t=s.n(e);t.a},4560:function(a,n,s){"use strict";var e=s("0a9e"),t=s.n(e);t.a},"6e9a":function(a,n,s){"use strict";s.r(n);var e=function(){var a=this,n=a.$createElement,s=a._self._c||n;return s("div",{staticClass:"page page-dash-board"},[s("div",{staticClass:"page-header-wrappper"},[s("pageHeader")],1),s("div",{staticClass:"dash-board-wrappper layout-container"},[s("div",{staticClass:"dash-board-side-bar"},[s("sideBar")],1),s("div",{staticClass:"dash-board-main"},[s("router-view",{staticClass:"dash-board-subpage"})],1)])])},t=[],i=function(){var a=this,n=a.$createElement,s=a._self._c||n;return s("ul",{staticClass:"components-work-side-bar"},a._l(a.navData,(function(n,e){return s("li",{key:e,staticClass:"side-bar-item",class:{active:a.$route.path===n.path},on:{click:function(s){return a.navClick(n)}}},[s("i",{staticClass:"iconfont",class:n.iconClassName}),s("span",[a._v(a._s(n.name))])])})),0)},o=[],c={data:function(){return{navData:[{name:"工作台",path:"/dashboard/work",iconClassName:"icon-weimingmingwenjianjia_gongzuotai"},{name:"我的文档",path:"/dashboard/document",iconClassName:"icon-ziyuan194"},{name:"协作编辑",path:"/dashboard/cooperation",iconClassName:"icon-zuzhi"},{name:"我的模板",path:"/dashboard/template",iconClassName:"icon-moban"},{name:"我的团队",path:"/dashboard/group",iconClassName:"icon-yonghushu"},{name:"我的收藏",path:"/dashboard/collection",iconClassName:"icon-guanzhu"},{name:"最近浏览",path:"/dashboard/history",iconClassName:"icon-zuijinliulan"},{name:"回收站",path:"/dashboard/recycle-bin",iconClassName:"icon-huishouzhan"}]}},methods:{navClick:function(a){a.path?this.$router.push(a.path):this.$message.info("正在开发中,敬请期待...")}}},r=c,d=(s("4560"),s("9ca4")),l=Object(d["a"])(r,i,o,!1,null,"acf1c7ee",null),u=l.exports,h=s("7c0b"),p={components:{sideBar:u,pageHeader:h["a"]}},m=p,b=(s("3bea"),Object(d["a"])(m,e,t,!1,null,"8132f0d4",null));n["default"]=b.exports},"6fcb":function(a,n,s){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-c108eb08.e8a616f4.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-c108eb08"],{"444c":function(t,n,e){},8145:function(t,n,e){"use strict";e.r(n);var a=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"docs-view-item"},[e("div",{staticClass:"docs-main-wrapper"},[e("div",{staticClass:"docment-title-wrapper"},[e("h1",{staticClass:"docs-title"},[t._v("\n "+t._s(t.document.title)+"\n ")]),e("ul",{staticClass:"docment-sub-info-wrapper"},[e("li",[e("span",{staticClass:"paddingR5"},[t._v("作者:")]),e("span",{staticClass:"user-header-wrapper"},[e("authorHead",{attrs:{userData:t.author}})],1)]),e("li",[t._v("\n 更新时间: "+t._s(t._f("formatTime")(t.document.updated,"yyyy-MM-dd"))+"\n ")]),e("li",[e("el-tooltip",{attrs:{content:"获赞数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-dianzan"})])]),t._v("\n "+t._s(t.document.star_count||0)+"\n ")],1),e("li",[e("el-tooltip",{attrs:{content:"阅读数",placement:"bottom"}},[e("span",[e("i",{staticClass:"iconfont icon-ico_yueduliang"})])]),t._v("\n "+t._s(t.document.visit_count||0)+"\n ")],1)])]),e("div",{attrs:{id:"preview"},domProps:{innerHTML:t._s(t.document.content)}})])])},c=[],s=e("ce3c"),i=(e("cc57"),e("4f55"),e("2984"),e("c944")),r=e.n(i),o=(e("60d96"),e("f334")),u=e.n(o),d=e("d594"),l={props:{author:{type:Object,default:function(){return{}}},document:{type:Object,default:function(){return{}}},content:{type:String,default:""}},components:Object(s["a"])({authorHead:d["a"]},r.a.name,r.a),data:function(){return{}},mounted:function(){this.renderMarkdown(this.content)},methods:{renderMarkdown:function(t){u.a.preview(document.getElementById("preview"),t,{speech:{enable:!0},anchor:1})}},watch:{content:function(t){this.renderMarkdown(t)}}},p=l,f=(e("cae6"),e("9ca4")),m=Object(f["a"])(p,a,c,!1,null,null,null);n["default"]=m.exports},"9ce2":function(t,n,e){"use strict";var a=e("444c"),c=e.n(a);c.a},bcfa:function(t,n,e){},cae6:function(t,n,e){"use strict";var a=e("bcfa"),c=e.n(a);c.a},d594:function(t,n,e){"use strict";var a=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"author-head inline-block"},[e("div",{staticClass:"user-img"},[e("img",{attrs:{src:t.userData.avatar||t.userHeadImage,alt:""}})]),e("span",{staticClass:"user-name"},[t._v(t._s(t.userData.name))])])},c=[],s={props:{userData:{type:Object,default:function(){return{}}}},data:function(){return{userHeadImage:e("7724")}}},i=s,r=(e("9ce2"),e("9ca4")),o=Object(r["a"])(i,a,c,!1,null,"43cb923d",null);n["a"]=o.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-ded8e3fa.250187c2.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-ded8e3fa"],{"28dc":function(t,e,i){},6671:function(t,e,i){"use strict";i("a955")},6772:function(t,e,i){"use strict";i.r(e);var n=function(){var t=this,e=t._self._c;return e("div",{ref:"editor-component",staticClass:"editor-component editor-md"},[e("div",{attrs:{id:"editor-md-dom"}})])},o=[],s=i("ff41"),r=i.n(s),a=(i("ae60"),null),d={props:{content:{type:String,default:""}},data:function(){return{editor:null,editorHasReady:!1}},created:function(){},mounted:function(){this.initEditor()},watch:{content:function(t){this.setContent(t)}},methods:{initEditor:function(){var t=this,e=this.$refs["editor-component"].offsetHeight,i={width:"100%",height:e||600,tab:"\t",counter:"999999",typewriterMode:!0,mode:"sv",preview:{delay:100},outline:!0,toolbar:[{hotkey:"⌘-E",name:"emoji",tipPosition:"ne"},{hotkey:"⌘-H",name:"headings",tipPosition:"ne"},{hotkey:"⌘-B",name:"bold",prefix:"**",suffix:"**",tipPosition:"ne"},{hotkey:"⌘-I",name:"italic",prefix:"*",suffix:"*",tipPosition:"ne"},{hotkey:"⌘-S",name:"strike",prefix:"~~",suffix:"~~",tipPosition:"ne"},{hotkey:"⌘-K",name:"link",prefix:"[",suffix:"](https://)",tipPosition:"n"},{name:"|"},{hotkey:"⌘-L",name:"list",prefix:"* ",tipPosition:"n"},{hotkey:"⌘-O",name:"ordered-list",prefix:"1. ",tipPosition:"n"},{hotkey:"⌘-J",name:"check",prefix:"* [ ] ",tipPosition:"n"},{name:"|"},{hotkey:"⌘-;",name:"quote",prefix:"> ",tipPosition:"n"},{hotkey:"⌘-⇧-D",name:"line",prefix:"---",tipPosition:"n"},{hotkey:"⌘-U",name:"code",prefix:"```\n",suffix:"\n```",tipPosition:"n"},{hotkey:"⌘-G",name:"inline-code",prefix:"`",suffix:"`",tipPosition:"n"},{name:"|"},{hotkey:"⌘-⇧-U",name:"upload",tipPosition:"n"},{hotkey:"⌘-M",name:"table",prefix:"| col1",suffix:" | col2 | col3 |\n| --- | --- | --- |\n| | | |\n| | | |",tipPosition:"n"},{name:"|"},{hotkey:"⌘-Z",name:"undo",tipPosition:"n"},{hotkey:"⌘-Y",name:"redo",tipPosition:"n"},{name:"|"},{hotkey:"⌘-⇧-M",name:"edit-mode",tipPosition:"nw"},{hotkey:"⌘-P",name:"both",tipPosition:"nw"},{hotkey:"⌘-⇧-P",name:"preview",tipPosition:"nw"},{name:"|"},{name:"outline",tipPosition:"nw"},{name:"export",tipPosition:"nw"}],after:function(){t.editorHasReady=!0,t.setContent(t.content)}};this.editor=new r.a("editor-md-dom",i),this.editor.focus()},getContent:function(){var t=this.editor.getValue();return t},setContent:function(t){var e=this;this.editorHasReady?this.editor.setValue(t):a=setInterval((function(){e.editor.setValue(t),clearInterval(a)}),50)},insertContent:function(t){this.editor&&this.editor.setValue(t)},destroy:function(){this.editor.destroy(),this.editor=void 0}},destroyed:function(){this.editorHasReady&&this.editor&&this.editor.destroy(),a&&clearInterval(a)}},f=d,c=(i("7ac7"),i("6671"),i("2877")),p=Object(c["a"])(f,n,o,!1,null,"a1c76bbc",null);e["default"]=p.exports},"7ac7":function(t,e,i){"use strict";i("28dc")},a955:function(t,e,i){}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-e7783a00.b5928a8f.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-e7783a00"],{"2ebb":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},o=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"excel-edit-component-wrapper"},[n("div",{staticClass:"excel-edit",attrs:{id:"excel-edit"}})])}],r=n("2570"),d=n("c277"),a=n.n(d),c=null,s={props:{content:{type:String,default:""}},data:function(){return{editor:null,editorHasReady:!1,editorContent:""}},created:function(){},mounted:function(){this.initEditor()},methods:{initEditor:function(){var t={showToolbar:!0,showGrid:!0,showContextmenu:!0,view:{height:function(){return document.documentElement.clientHeight-71},width:function(){return document.documentElement.clientWidth}},row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{bgcolor:"#ffffff",align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Helvetica",size:10,bold:!1,italic:!1}}};r["a"].locale("zh-cn",a.a),this.editor=new r["a"](document.getElementById("excel-edit"),t),this.editor.validate(),this.editor.setContent(this.content)},getContent:function(){var t=this.editor.getData();return JSON.stringify(t)},setContent:function(t){try{t=JSON.parse(t)}catch(e){console.log(e)}this.editor.loadData(t)},insertContent:function(t){this.editor&&this.setContent(t)},destroy:function(){this.editor.destroy(),this.editor=void 0}},destroyed:function(){this.editorHasReady&&this.editor&&this.editor.destroy(),c&&clearInterval(c)}},l=s,u=(n("b5a5"),n("9ca4")),h=Object(u["a"])(l,i,o,!1,null,"258fdfb1",null);e["default"]=h.exports},"7ead":function(t,e,n){},b5a5:function(t,e,n){"use strict";var i=n("7ead"),o=n.n(i);o.a}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-ee3e0cda.823fb07f.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-ee3e0cda"],{5344:function(t,a,s){},5367:function(t,a,s){"use strict";s("5344")},d559:function(t,a,s){"use strict";s.r(a);var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,i){return[a("docsThumbnail",{key:i,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!1,showCreateTime:!0,showEditBtn:!0,btnList:["edit","openBlank","copyUrl","unCooperation"]},on:{refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("我的协作")])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-date"},[t._v("创建时间")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],o=s("b01a"),e=s("66aa"),c={components:{docsThumbnail:o["a"],noFunData:e["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyCooperationDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},l=c,d=(s("5367"),s("2877")),r=Object(d["a"])(l,i,n,!1,null,"ec43da26",null);a["default"]=r.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-f08c5732.b4b1104b.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f08c5732"],{"939f":function(t,a,s){"use strict";s("ba18")},ba18:function(t,a,s){},d87d:function(t,a,s){"use strict";s.r(a);var i=function(){var t=this,a=t._self._c;return a("div",{staticClass:"page-my-document"},[t._m(0),a("div",{staticClass:"docs-list-wrapper scroll-wrapper"},[t._m(1),a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-wrapper"},[t._l(t.docsList,(function(s,i){return[a("docsThumbnail",{key:i,attrs:{type:s.type,docShowType:"list",docsData:s,showAuthor:!0},on:{"open-folder":function(a){return t.openFolder(s)},refresh:t.getData}})]})),t.noData?a("noFunData"):t._e()],2)])])},n=[function(){var t=this,a=t._self._c;return a("div",{staticClass:"dash-board-operator-wrapper"},[a("div",{staticClass:"dash-board-title"},[t._v("我的收藏 "),a("span",{staticClass:"gray fontsize-12"},[t._v("(近20条)")])])])},function(){var t=this,a=t._self._c;return a("ul",{staticClass:"docs-thumbnail-table-title"},[a("li",{staticClass:"docs-thumbnail-title"},[t._v("标题")]),a("li",{staticClass:"docs-info-author"},[t._v("创建者")]),a("li",{staticClass:"docs-info-date"},[t._v("更新时间")]),a("li",{staticClass:"docs-info-op"},[t._v("操作")])])}],o=s("b01a"),e=s("66aa"),c={components:{docsThumbnail:o["a"],noFunData:e["a"]},data:function(){return{loading:!1,noData:!1,searchParams:{parentId:""},docsList:[]}},created:function(){this.getData()},methods:{getData:function(){var t=this;this.loading=!0,this.$API.getMyVisitHistoryDocumentList().then((function(a){t.docsList=a.body||[],t.loading=!1,t.docsList.length||(t.noData=!0)})).catch((function(){t.loading=!1}))}}},l=c,r=(s("939f"),s("2877")),d=Object(r["a"])(l,i,n,!1,null,"4868c17a",null);a["default"]=d.exports}}]); -------------------------------------------------------------------------------- /dist/static/js/chunk-f6b8c7fc.6a1409fd.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f6b8c7fc"],{4943:function(e,t,n){"use strict";n.r(t);var a=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},c=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-home"},[n("p",{staticClass:"page-title paddingB30"},[e._v("home page title")])])}],s={},i=s,r=(n("5887"),n("9ca4")),u=Object(r["a"])(i,a,c,!1,null,"6e8e444b",null);t["default"]=u.exports},5887:function(e,t,n){"use strict";var a=n("d8f1"),c=n.n(a);c.a},d8f1:function(e,t,n){}}]); -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "**/*" 4 | ] 5 | } -------------------------------------------------------------------------------- /move-web-file.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 打包完成后将打包后的静态页面资源copy到指定server static目录下面 3 | * */ 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ink-wash-docs", 3 | "version": "1.0.0", 4 | "description": "水墨文档", 5 | "private": true, 6 | "egg": { 7 | "declarations": true 8 | }, 9 | "dependencies": { 10 | "axios": "^0.19.0", 11 | "core-js": "^2.6.5", 12 | "crypto": "^1.0.1", 13 | "crypto-js": "^4.0.0", 14 | "egg": "^2.15.1", 15 | "egg-alinode": "^2.0.1", 16 | "egg-jwt": "^3.1.7", 17 | "egg-mongoose": "^3.3.0", 18 | "egg-scripts": "^2.11.0", 19 | "element-ui": "^2.12.0", 20 | "nprogress": "^0.2.0", 21 | "vditor": "^3.9.5", 22 | "vue": "^2.6.10", 23 | "vue-router": "^3.0.3", 24 | "vuex": "^3.0.1", 25 | "x-data-spreadsheet": "1.1.7" 26 | }, 27 | "devDependencies": { 28 | "@vue/cli-plugin-babel": "^3.11.0", 29 | "@vue/cli-plugin-eslint": "^3.11.0", 30 | "@vue/cli-service": "^3.11.0", 31 | "autod": "^3.0.1", 32 | "autod-egg": "^1.1.0", 33 | "babel-eslint": "^10.0.1", 34 | "babel-plugin-component": "^1.1.1", 35 | "babel-plugin-import": "^1.12.2", 36 | "compression-webpack-plugin": "^6.0.3", 37 | "egg-bin": "^4.11.0", 38 | "egg-ci": "^1.11.0", 39 | "egg-mock": "^3.21.0", 40 | "eslint": "^5.13.0", 41 | "eslint-config-egg": "^7.1.0", 42 | "eslint-plugin-vue": "^5.0.0", 43 | "extract-zip": "^2.0.1", 44 | "jsonwebtoken": "^8.5.1", 45 | "less": "^3.12.2", 46 | "less-loader": "^7.0.1", 47 | "node-sass": "^4.9.0", 48 | "sass-loader": "^7.1.0", 49 | "vue-template-compiler": "^2.6.10" 50 | }, 51 | "engines": { 52 | "node": ">=10.0.0" 53 | }, 54 | "scripts": { 55 | "start": "egg-scripts start --daemon --title=egg-server-ink-wash-docs", 56 | "stop": "egg-scripts stop --title=egg-server-ink-wash-docs", 57 | "dev": "egg-bin dev", 58 | "debug": "egg-bin debug", 59 | "test": "npm run lint -- --fix && npm run test-local", 60 | "test-local": "egg-bin test", 61 | "cov": "egg-bin cov", 62 | "lint": "eslint .", 63 | "ci": "npm run lint && npm run cov", 64 | "autod": "autod", 65 | "dev-web": "vue-cli-service serve", 66 | "build-web": "vue-cli-service build", 67 | "copy-web-html": "node move-web-file.js" 68 | }, 69 | "ci": { 70 | "version": "10" 71 | }, 72 | "repository": { 73 | "type": "git", 74 | "url": "" 75 | }, 76 | "author": "1240413812@qq.com", 77 | "license": "MIT" 78 | } 79 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 水墨文档 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/app/controller/home.test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const { app, assert } = require('egg-mock/bootstrap'); 4 | 5 | describe('test/app/controller/home.test.js', () => { 6 | it('should assert', () => { 7 | const pkg = require('../../../package.json'); 8 | assert(app.config.keys.startsWith(pkg.name)); 9 | 10 | // const ctx = app.mockContext({}); 11 | // yield ctx.service.xx(); 12 | }); 13 | 14 | it('should GET /', () => { 15 | return app.httpRequest() 16 | .get('/') 17 | .expect('hi, egg') 18 | .expect(200); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const fs = require('fs') 3 | const CompressionPlugin = require('compression-webpack-plugin') 4 | 5 | let devServer = { 6 | proxy: { // 代理 7 | '^/': { 8 | target: 'http://localhost:7001',//设置你调用的接口域名和端口号 别忘了加http 9 | ws: false, 10 | changeOrigin: true, 11 | pathRewrite: {}, 12 | } 13 | } 14 | } 15 | 16 | module.exports = { 17 | devServer: devServer, 18 | // 输出文件目录 19 | assetsDir: "static", 20 | publicPath: './', 21 | productionSourceMap: ['development', 'test'].includes(process.env.NODE_ENV), 22 | parallel: require('os').cpus().length > 1,// 在多核机器下会默认开启。 23 | // 修改 pages 入口 24 | pages: { 25 | index: { 26 | entry: 'web/main.js', // 入口 27 | template: 'public/index.html', // 模板 28 | filename: 'index.html' // 输出文件 29 | } 30 | }, 31 | css: { 32 | loaderOptions: { 33 | sass: { 34 | // @/ 是 src/ 的别名 35 | data: fs.readFileSync(path.resolve(__dirname, `./web/common/styles/variables.scss`), 'utf-8') // 公共变量文件注入 36 | } 37 | } 38 | }, 39 | // 扩展 webpack 配置 40 | chainWebpack: config => { 41 | // @ 默认指向 src 目录,这里要改成 examples 42 | // 另外也可以新增一个 ~ 指向 packages 43 | config.resolve.alias 44 | .set('@', path.resolve('web')) 45 | .set('@web', path.resolve('web')) 46 | .set('@config', path.resolve('config')) 47 | .set('@app', path.resolve('app')) 48 | config.module 49 | .rule('js') 50 | .include.add(/web/).end() 51 | .use('babel') 52 | .loader('babel-loader') 53 | .tap(options => { 54 | // 修改它的选项... 55 | return options 56 | }) 57 | 58 | 59 | // 移除 prefetch 插件 60 | config.plugins.delete('prefetch') 61 | 62 | // gzip做一下压缩 63 | if (!['development', 'test'].includes(process.env.NODE_ENV)) { 64 | config.plugin('compressionPlugin') 65 | .use(new CompressionPlugin({ 66 | filename: '[path].gz[query]', 67 | algorithm: 'gzip', 68 | test: /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i, //匹配文件名 69 | threshold: 10240, 70 | minRatio: 0.8 71 | })); 72 | } 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /web/App.vue: -------------------------------------------------------------------------------- 1 | 9 | 18 | 48 | -------------------------------------------------------------------------------- /web/api/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * API 统一管理 3 | * */ 4 | 5 | // 用户相关 6 | export * from './modules/user' 7 | 8 | // 文档库相关 9 | export * from './modules/document' 10 | 11 | // 用户分组相关 12 | export * from './modules/userGroup' 13 | -------------------------------------------------------------------------------- /web/api/modules/document.js: -------------------------------------------------------------------------------- 1 | /**文档相关接口*/ 2 | 3 | import $axios from "@/service/httpServer"; 4 | 5 | // 获取文档列表 6 | export const getDocsList = p => $axios.get('/inkwash/dos/list', p); 7 | 8 | // 获取文档详情 9 | export const getDocumentDetail = p => $axios.get('/inkwash/dos/detail', p); 10 | 11 | // 创建文件夹 12 | export const newFolder = p => $axios.post('/inkwash/docs/newFolder', p); 13 | 14 | // 新增文档 15 | export const createDocument = p => $axios.post('/inkwash/docs/add', p); 16 | 17 | // 删除文档 18 | export const delDocument = p => $axios.post('/inkwash/docs/del', p); 19 | 20 | // 文档重命名 21 | export const documentRename = p => $axios.post('/inkwash/docs/rename', p); 22 | 23 | // 获取文档路径 24 | export const getDocumentPathById = p => $axios.get('/inkwash/docs/path', p) 25 | 26 | // 点赞 27 | export const starDocument = p => $axios.get('/inkwash/docs/star', p) 28 | 29 | // 收藏 30 | export const collectDocument = p => $axios.get('/inkwash/docs/collect', p) 31 | 32 | /** 33 | * 我的文档 34 | * */ 35 | // 我的文档列表 36 | export const getMyDocumentList = () => $axios.get('/inkwash/docs/myDocument') 37 | 38 | /** 39 | * 我的收藏 40 | * */ 41 | // 我的文档列表 42 | export const getMyCollectDocumentList = () => $axios.get('/inkwash/docs/myCollectDocument') 43 | 44 | /** 45 | * 我的协作 46 | * */ 47 | // 我的文档列表 48 | export const getMyCooperationDocumentList = () => $axios.get('/inkwash/docs/myCooperationDocument') 49 | // 按小组添加协作人 50 | export const addCooperationUser = p => $axios.post('/inkwash/docs/addCooperation/userIds', p) 51 | // 按userIds添加协作人 52 | export const addCooperationUserByGroup = p => $axios.post('/inkwash/docs/addCooperation/groupId', p) 53 | // 获取协作人列表 54 | export const getCooperationUserListByDocumentId = p => $axios.get('/inkwash/docs/getCooperation/userList', p) 55 | // 删除协作人 56 | export const removeCooperationUser = p => $axios.post('/inkwash/delCooperation/user', p) 57 | 58 | /** 59 | * 我的浏览历史 60 | * */ 61 | // 我的文档列表 62 | export const getMyVisitHistoryDocumentList = () => $axios.get('/inkwash/docs/myVisitHistoryDocument') 63 | 64 | /** 65 | * 我的回收站 66 | * */ 67 | // 我的文档列表 68 | export const getMyRecycleBinDocumentList = () => $axios.get('/inkwash/docs/myRecycleBin') 69 | // 恢复文档 70 | export const recoveryDocument = p => $axios.post('/inkwash/docs/recovery', p) 71 | // 彻底删除文档 72 | export const destroyDocument = p => $axios.post('/inkwash/docs/distory', p) 73 | 74 | /** 75 | * 上传axure压缩包 76 | */ 77 | export const docsUplaodAxure = p => $axios.post('/inkwash/docs/axure/upload', p) 78 | 79 | /** 80 | * 设置访问方式 81 | */ 82 | export const getMembersByDocumentId = p => $axios.get('/inkwash/docs/getDocMembers', p) 83 | export const setDocumentVisitTeam = p => $axios.post('/inkwash/docs/visit/setAsTeam', p) 84 | export const setDocumentOpen = p => $axios.post('/inkwash/docs/visit/setAsOpen', p) 85 | export const setDocumentPrivate = p => $axios.post('/inkwash/docs/visit/setAsPrivate', p) 86 | export const documentCheckPass = p => $axios.post('/inkwash/docs/checkPass', p) 87 | 88 | /** 89 | * 我的模板 90 | */ 91 | export const getMyTemplate = p => $axios.get('/inkwash/docs/myTemplate', p); 92 | -------------------------------------------------------------------------------- /web/api/modules/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | 用户相关api 3 | **/ 4 | 5 | import $axios from "@/service/httpServer"; 6 | // 登录 7 | export const login = p => $axios.post('/inkwash/auth/login', p); 8 | 9 | // 注册 10 | export const register = p => $axios.post('/inkwash/auth/register', p); 11 | 12 | // 获取用户信息 13 | export const getUserInfo = () => $axios.get('/inkwash/user/info'); 14 | // 获取用户信息 by userId 15 | export const getUserInfoById = p => $axios.get('/inkwash/user/getInfoById', p); 16 | // 获取用户信息 by userId 17 | export const getUserInfoByIds = p => $axios.get('/inkwash/user/getInfoByIds', p); 18 | 19 | // 修改用户昵称 20 | export const updateNickName = p => $axios.post('/inkwash/user/update/name', p); 21 | 22 | // 修改密码 23 | export const updateUserPass = p => $axios.post('/inkwash/user/update/pass', p); 24 | 25 | // 修改头像 26 | export const updateUserAvatar = p => $axios.post('/inkwash/user/update/avatar', p); 27 | 28 | // 关键字搜索用户列表 29 | export const getUserListByKeywords = p => $axios.get('/inkwash/user/getUserList', p); 30 | 31 | 32 | /** 33 | * 文章作者相关 34 | */ 35 | export const getAuthorInfo = p => $axios.post('/inkwash/author/info', p); 36 | 37 | -------------------------------------------------------------------------------- /web/api/modules/userGroup.js: -------------------------------------------------------------------------------- 1 | /* 2 | 用户分组相关api 3 | **/ 4 | 5 | import $axios from "@/service/httpServer"; 6 | 7 | // 新增分组 8 | export const createUserGroup = p => $axios.post('/inkwash/userGroup/create', p); 9 | // 删除分组 10 | export const delUserGroup = p => $axios.get('/inkwash/userGroup/del', p); 11 | // 获取分组列表 12 | export const getUserGroupList = () => $axios.get('/inkwash/userGroup/list'); 13 | // 新增用户到分组 14 | export const addUserToGroup = p => $axios.post('/inkwash/userGroup/addUsers', p); 15 | // 删除用户从分组 16 | export const delUserFromGroup = p => $axios.post('/inkwash/userGroup/delUser', p); 17 | // 获取用户列表从分组 18 | export const getUserListFromGroup = p => $axios.get('/inkwash/userGroup/userList', p); 19 | -------------------------------------------------------------------------------- /web/common/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/fonts/iconfont.eot -------------------------------------------------------------------------------- /web/common/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/fonts/iconfont.ttf -------------------------------------------------------------------------------- /web/common/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/fonts/iconfont.woff -------------------------------------------------------------------------------- /web/common/fonts/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/fonts/iconfont.woff2 -------------------------------------------------------------------------------- /web/common/images/axure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/axure.png -------------------------------------------------------------------------------- /web/common/images/docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/docs.png -------------------------------------------------------------------------------- /web/common/images/excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/excel.png -------------------------------------------------------------------------------- /web/common/images/f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/f.png -------------------------------------------------------------------------------- /web/common/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/favicon.ico -------------------------------------------------------------------------------- /web/common/images/headerImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/headerImage.png -------------------------------------------------------------------------------- /web/common/images/login-bg/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/login-bg/0.png -------------------------------------------------------------------------------- /web/common/images/login-bg/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/login-bg/1.png -------------------------------------------------------------------------------- /web/common/images/login-bg/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/login-bg/2.png -------------------------------------------------------------------------------- /web/common/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/logo.png -------------------------------------------------------------------------------- /web/common/images/nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huangwei9527/Ink-wash-docs/594a56e682697e6a53a87ac97ab14446bd96176b/web/common/images/nodata.png -------------------------------------------------------------------------------- /web/common/styles/element-variables.scss: -------------------------------------------------------------------------------- 1 | /* 改变主题色变量 */ 2 | $--color-primary: #25A589; 3 | 4 | 5 | /* 改变 icon 字体路径变量,必需 */ 6 | $--font-path: '~element-ui/lib/theme-chalk/fonts'; 7 | 8 | @import "~element-ui/packages/theme-chalk/src/index"; -------------------------------------------------------------------------------- /web/common/styles/variables.scss: -------------------------------------------------------------------------------- 1 | /*================================================================= 2 | 颜色 3 | =================================================================*/ 4 | $border-color : #dfdfdf; 5 | $white : #fff; 6 | $primary : #25A589; 7 | $success : #3DBD37; 8 | $gray : #7F8593; 9 | $error : #ea5361; 10 | $color-gradient : linear-gradient(to right, #5ac66a 0%, #3caa7d 80%, #3AA27F 100%); // 渐变 11 | // $page-bg-color : #F0F2F5; 12 | $page-bg-color : #f9f9f9; 13 | 14 | 15 | /*================================================================= 16 | 动画 17 | =================================================================*/ 18 | $transition-time : 0.28s; // 动画时间 19 | 20 | /*================================================================= 21 | 侧边栏导航 22 | =================================================================*/ 23 | $side-bar-background-color: #304156; 24 | $side-bar-background-color-active: #2F404F; 25 | 26 | /*================================================================= 27 | 页面布局相关 28 | =================================================================*/ 29 | 30 | $header-height : 48px; // 顶部header的高度 31 | $side-bar-width : 68px; // 侧边栏 32 | 33 | $header-both-sides-padding : 24px; //页面边缘与内容间的padding 34 | $content-both-sides-padding : 32px; //页面边缘与内容间的padding 35 | 36 | // 页尾背景色 37 | $footer-background-color : #858585; 38 | 39 | // 首页 前三大模块中 hover 背景色 40 | $home-li-hover-background-color:#3a9d80; 41 | -------------------------------------------------------------------------------- /web/components/add-cooperationer/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Index from './index.vue'; 3 | let ComponentConstructor = Vue.extend(Index); 4 | let instance; 5 | 6 | /** 7 | * 管理协作人 8 | * @param documentId 文档id 9 | * @constructor 10 | */ 11 | let Component = function(documentId, callback) { 12 | instance = new ComponentConstructor({ 13 | data: { 14 | documentId: documentId 15 | } 16 | }); 17 | instance.$mount(); 18 | instance.callback = callback; 19 | document.body.appendChild(instance.$el); 20 | instance.visible = true; 21 | return instance; 22 | } 23 | 24 | export default Component; 25 | -------------------------------------------------------------------------------- /web/components/author-head.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 25 | 26 | 52 | -------------------------------------------------------------------------------- /web/components/author-panel.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 72 | 73 | 134 | -------------------------------------------------------------------------------- /web/components/document-com-btn.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 64 | 65 | 83 | -------------------------------------------------------------------------------- /web/components/iframe-layout.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | 15 | 22 | -------------------------------------------------------------------------------- /web/components/need-permission-tips/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Index from './index.vue'; 3 | let ComponentConstructor = Vue.extend(Index); 4 | let instance; 5 | 6 | /** 7 | * 8 | * @param opt.title 提示信息 9 | * @constructor 10 | */ 11 | let Component = function(opt, callback) { 12 | opt = opt || {}; 13 | instance = new ComponentConstructor({ 14 | data: { 15 | title: opt.title || '', 16 | } 17 | }); 18 | instance.$mount(); 19 | instance.callback = callback; 20 | document.body.appendChild(instance.$el); 21 | instance.visible = true; 22 | return instance; 23 | } 24 | 25 | export default Component; 26 | -------------------------------------------------------------------------------- /web/components/need-permission-tips/index.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 50 | 51 | 65 | -------------------------------------------------------------------------------- /web/components/new-docs-btn.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 36 | 37 | 45 | -------------------------------------------------------------------------------- /web/components/new-folder/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Index from './index.vue'; 3 | let ComponentConstructor = Vue.extend(Index); 4 | let instance; 5 | 6 | /** 7 | * 8 | * @param opt.title 回显文件夹名称 9 | * @param opt.id 编辑时带上文件夹id 10 | * @param opt.parentId 编辑时带上父级文件夹id 11 | * @constructor 12 | */ 13 | let Component = function(opt, callback) { 14 | opt = opt || {}; 15 | instance = new ComponentConstructor({ 16 | data: { 17 | id: opt._id || '', 18 | title: opt.title || '', 19 | parentId: opt.parentId || '', 20 | } 21 | }); 22 | instance.$mount(); 23 | instance.callback = callback; 24 | document.body.appendChild(instance.$el); 25 | instance.visible = true; 26 | return instance; 27 | } 28 | 29 | export default Component; 30 | -------------------------------------------------------------------------------- /web/components/new-folder/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 58 | 59 | 62 | -------------------------------------------------------------------------------- /web/components/notFundData.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 25 | 26 | 44 | -------------------------------------------------------------------------------- /web/components/page-background.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 85 | -------------------------------------------------------------------------------- /web/components/page-footer.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /web/components/page-header.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 43 | 44 | 85 | -------------------------------------------------------------------------------- /web/components/share-setting/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Index from './index.vue'; 3 | let ComponentConstructor = Vue.extend(Index); 4 | let instance; 5 | 6 | /** 7 | * 8 | * 分享|访问设置 9 | * @param documentId 文档id 10 | * @constructor 11 | */ 12 | let Component = function(documentId, callback) { 13 | instance = new ComponentConstructor({ 14 | data: { 15 | documentId: documentId 16 | } 17 | }); 18 | instance.$mount(); 19 | instance.callback = callback; 20 | document.body.appendChild(instance.$el); 21 | instance.visible = true; 22 | return instance; 23 | } 24 | 25 | export default Component; 26 | -------------------------------------------------------------------------------- /web/components/side-bar.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 70 | 71 | 95 | -------------------------------------------------------------------------------- /web/components/sort-icon-btn.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 106 | 107 | 128 | -------------------------------------------------------------------------------- /web/components/user-head-btn.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 78 | 79 | 113 | -------------------------------------------------------------------------------- /web/config/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 公共配置文件 3 | */ 4 | 5 | 6 | 7 | const configObj = { 8 | 9 | } 10 | 11 | export default configObj 12 | -------------------------------------------------------------------------------- /web/eventBus/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | export default new Vue(); -------------------------------------------------------------------------------- /web/filters/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 封装些共用的过滤器 3 | */ 4 | const filter = { 5 | /** 6 | * 将 boolean 转换成 文字是否 7 | * @param value 8 | * @returns {string} 9 | */ 10 | booleanToText: function(value){ 11 | return value ? '是' : '否' 12 | }, 13 | /** 14 | * 根据value获取label 15 | * @param value 16 | * @param list 对象列表 17 | */ 18 | getLabelText(value, list, label = 'label') { 19 | let data = list.find(v => v.value === value); 20 | if (data) { 21 | return data[label]; 22 | } else { 23 | return '' 24 | } 25 | }, 26 | /** 27 | * 格式化时间 28 | * @param date 29 | * @param format 30 | * @returns {*} 31 | */ 32 | formatTime(date,format = 'yyyy-MM-dd hh:mm:ss'){ 33 | var time; 34 | if(!date)return ""; 35 | if(typeof date === 'string'){ 36 | time = new Date(date.replace(/-/g,'/').replace(/T|Z/g,' ').trim()); 37 | }else if(typeof date === 'object'){ 38 | time = new Date(date) ; 39 | } 40 | var o = { 41 | "M+": time.getMonth() + 1, //月份 42 | "d+": time.getDate(), //日 43 | "h+": time.getHours(), //小时 44 | "m+": time.getMinutes(), //分 45 | "s+": time.getSeconds(), //秒 46 | "q+": Math.floor((time.getMonth() + 3) / 3), //季度 47 | "S": time.getMilliseconds() //毫秒 48 | }; 49 | if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length)); 50 | for (var k in o) 51 | if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 52 | return format; 53 | } 54 | } 55 | 56 | export default filter 57 | -------------------------------------------------------------------------------- /web/libs/userModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 账号相关操作模块 3 | * */ 4 | import store from '@/store' 5 | import router from '@/router' 6 | import { 7 | login, 8 | register, 9 | getUserInfo 10 | } from '@/api' 11 | 12 | let userModel = { 13 | /** 14 | * 检测是否登录 15 | * @returns {Promise} 16 | */ 17 | async checkLoginState() { 18 | let userData = store.state.user; 19 | return !!userData.access_token 20 | }, 21 | /** 22 | * 登录 23 | * @param options 24 | * @param type 25 | * @returns {Promise} 26 | */ 27 | async doLogin(data) { 28 | return new Promise((resolve, reject) => { 29 | login(data).then(res => { 30 | store.commit('UPDATE_ACCESS_TOKEN', res.body.access_token) 31 | store.commit('UPDATE_USER_INFO', res.body.userInfo) 32 | resolve(res.body) 33 | }) 34 | .catch(err => { 35 | reject(err) 36 | }) 37 | }) 38 | }, 39 | /** 40 | * 注册 41 | * @param options 42 | * @param type 43 | * @returns {Promise} 44 | */ 45 | async doRegister(data) { 46 | return new Promise((resolve, reject) => { 47 | register(data).then(res => { 48 | store.commit('UPDATE_ACCESS_TOKEN', res.body.access_token) 49 | store.commit('UPDATE_USER_INFO', res.body.userInfo) 50 | resolve(res.body) 51 | }) 52 | .catch(err => { 53 | reject(err) 54 | }) 55 | }) 56 | }, 57 | /** 58 | * 获取用户信息 59 | * @returns {Promise} 60 | * @private 61 | */ 62 | getUserInfo() { 63 | return new Promise((resolve, reject) => { 64 | getUserInfo().then(res => { 65 | store.commit('UPDATE_USER_INFO', res.body); 66 | resolve(res.body) 67 | }).catch(err => { 68 | reject(err) 69 | }) 70 | }) 71 | }, 72 | /** 73 | * 退出 74 | * @returns {Promise} 75 | */ 76 | async doLogout() { 77 | // 清除store user token 78 | store.commit('UPDATE_ACCESS_TOKEN', ''); 79 | window.sessionStorage.setItem('beforeLoginUrl', ''); 80 | userModel.goLogin() 81 | }, 82 | /** 83 | * 跳转登录 84 | * @returns {Promise} 85 | */ 86 | async goLogin() { 87 | // 将路由fullpath 保存在缓存中,用于登录完成后跳转 88 | let indexOf = window.location.href.indexOf('#/') 89 | let currentUrl = window.location.href.slice(indexOf + 1, window.location.href.length); 90 | window.sessionStorage.setItem('beforeLoginUrl', currentUrl); 91 | store.commit('UPDATE_ACCESS_TOKEN', ''); 92 | router.push({name: 'Login'}) 93 | }, 94 | 95 | async goBeforeLoginUrl(){ 96 | let url = window.sessionStorage.getItem('beforeLoginUrl'); 97 | if (!url || url.indexOf('/login') != -1) { 98 | router.push('/'); 99 | } else { 100 | router.push(url); 101 | window.sessionStorage.setItem('beforeLoginUrl', ''); 102 | } 103 | } 104 | } 105 | 106 | export default userModel 107 | -------------------------------------------------------------------------------- /web/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import './permission.js' 6 | import httpServer from '@/service/httpServer' // axios拦截器配置 7 | import * as mUtils from '@/common/js/mUtils' 8 | import config from '@/config' 9 | import filters from './filters/index' 10 | import * as API from '@/api/index' 11 | import {Message, MessageBox, Loading } from 'element-ui' 12 | 13 | import '@/common/styles/element-variables.scss' 14 | import '@/common/styles/index.scss' // 自定义 css 15 | 16 | /** 17 | * 引入公共方法mUtils 18 | */ 19 | Vue.prototype.$mUtils = mUtils; 20 | Vue.prototype.$axios = httpServer; 21 | Vue.prototype.$api = API; 22 | Vue.prototype.$API = API; 23 | 24 | /** 25 | * 公共配置信息 26 | */ 27 | Vue.prototype.$config = config 28 | 29 | // 注册全局过滤器 30 | Object.keys(filters).forEach(key => { 31 | Vue.filter(key, filters[key]) 32 | }) 33 | 34 | // 全局注册mixins 35 | 36 | Vue.prototype.$message = Message 37 | Vue.prototype.$alert = MessageBox 38 | Vue.use(Loading, {background: 'rgba(0, 0, 0, 0.2)'}); 39 | 40 | String.prototype.replaceAll = function(s1, s2) { 41 | return this.replace(new RegExp(s1, "gm"), s2); 42 | } 43 | 44 | Vue.config.productionTip = false 45 | 46 | store.commit('UPDATE_USER_FROM_LOCAL') 47 | 48 | new Vue({ 49 | router, 50 | store, 51 | render: h => h(App) 52 | }).$mount('#app') 53 | -------------------------------------------------------------------------------- /web/pages/404.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 31 | 32 | 83 | -------------------------------------------------------------------------------- /web/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/my-collection.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 71 | 72 | 77 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/my-cooperation.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 73 | 74 | 79 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/my-document.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 73 | 74 | 79 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/my-template.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 78 | 79 | 84 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/recycle-bin.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 74 | 75 | 80 | -------------------------------------------------------------------------------- /web/pages/dash-board-components/visit-history.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 71 | 72 | 77 | -------------------------------------------------------------------------------- /web/pages/dash-board.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | 28 | 51 | -------------------------------------------------------------------------------- /web/pages/docs-view/components/axure.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 90 | 91 | 120 | -------------------------------------------------------------------------------- /web/pages/docs-view/components/docs.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 91 | 92 | 124 | -------------------------------------------------------------------------------- /web/pages/docs-view/components/sheet.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 127 | 128 | 150 | -------------------------------------------------------------------------------- /web/pages/editor/components/excel-edit.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 122 | 123 | 131 | -------------------------------------------------------------------------------- /web/permission.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 路由权限相关管理 3 | * */ 4 | import router from '@/router' 5 | import NProgress from 'nprogress' // 进度条 6 | import 'nprogress/nprogress.css' // 进度条样式 7 | import userModel from '@/libs/userModel' 8 | 9 | router.beforeEach(async (to, from, next) => { 10 | NProgress.start() 11 | // 检测是否需要用户登录验证 12 | if(to.meta.noNeedLogin){ 13 | next() 14 | return; 15 | } 16 | // 用户登录状态拦截 17 | let loginStatus = await userModel.checkLoginState(); 18 | if (!loginStatus) { 19 | userModel.goLogin(); 20 | return false; 21 | } 22 | 23 | //TODO 黄维 根据加载的资源,更新路由meta属性中的title属性,所有的页面title使用route.meta.title 24 | next() 25 | }) 26 | 27 | router.afterEach(() => { 28 | NProgress.done() // 结束Progress 29 | }) 30 | 31 | -------------------------------------------------------------------------------- /web/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | 4 | Vue.use(Router) 5 | 6 | /** 各个模块 */ 7 | 8 | 9 | export default new Router({ 10 | routes: [ 11 | { 12 | path: '/', 13 | name: 'Home', 14 | redirect: {name: 'DashBoardWork'}, 15 | component: () => import('@/pages/Home') 16 | }, 17 | { 18 | path: '/dashboard', 19 | name: 'DashBoard', 20 | component: () => import('@/pages/dash-board'), 21 | redirect: {name: 'DashBoardWork'}, 22 | children: [ 23 | { 24 | path: 'work', 25 | name: 'DashBoardWork', 26 | component: () => import('@/pages/dash-board-components/work'), 27 | meta: { 28 | 29 | } 30 | }, 31 | { 32 | path: 'collection', 33 | name: 'DashBoardCollection', 34 | component: () => import('@/pages/dash-board-components/my-collection'), 35 | meta: { 36 | 37 | } 38 | }, 39 | { 40 | path: 'document', 41 | name: 'DashBoardDocument', 42 | component: () => import('@/pages/dash-board-components/my-document'), 43 | meta: { 44 | 45 | } 46 | }, 47 | { 48 | path: 'cooperation', 49 | name: 'DashBoardCooperation', 50 | component: () => import('@/pages/dash-board-components/my-cooperation'), 51 | meta: { 52 | 53 | } 54 | }, 55 | { 56 | path: 'template', 57 | name: 'DashBoardTemplate', 58 | component: () => import('@/pages/dash-board-components/my-template'), 59 | meta: { 60 | 61 | } 62 | }, 63 | { 64 | path: 'history', 65 | name: 'DashBoardVisitHistory', 66 | component: () => import('@/pages/dash-board-components/visit-history'), 67 | meta: { 68 | 69 | } 70 | }, 71 | { 72 | path: 'recycle-bin', 73 | name: 'DashBoardRecycleBin', 74 | component: () => import('@/pages/dash-board-components/recycle-bin'), 75 | meta: { 76 | 77 | } 78 | }, 79 | { 80 | path: 'group', 81 | name: 'DashBoardGroup', 82 | component: () => import('@/pages/dash-board-components/user-group'), 83 | meta: { 84 | 85 | } 86 | } 87 | ] 88 | }, 89 | { 90 | path: '/edit', 91 | name: 'Edit', 92 | component: () => import('@/pages/editor/index'), 93 | meta: { 94 | 95 | } 96 | }, 97 | { 98 | path: '/docs', 99 | name: 'DocsView', 100 | component: () => import('@/pages/docs-view/index'), 101 | meta: { 102 | noNeedLogin: true, 103 | } 104 | }, 105 | { 106 | path: '/login', 107 | name: 'Login', 108 | component: () => import('@/pages/Login'), 109 | meta: { 110 | noNeedLogin: true, 111 | noHeader: true 112 | } 113 | }, 114 | { 115 | path: '/*', 116 | component: () => import('@/pages/404'), 117 | meta: { 118 | trust: true, 119 | noNeedLogin: true 120 | } 121 | } 122 | ] 123 | }) 124 | -------------------------------------------------------------------------------- /web/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import { Message } from 'element-ui' 4 | // 各个模块 5 | import user from './modules/user' 6 | 7 | /** 8 | * 全局状态管理 9 | */ 10 | const state = { 11 | sortType: 'default', // [default, createTime, updateTime, name] 12 | docShowType: 'thumbnail', 13 | isFolderTop: true 14 | }; 15 | const actions = { 16 | /** 17 | * 显示提示 msg.type 类型 msg.data 消息内容 18 | * @param commit 19 | * @param msg 20 | */ 21 | showMassage(store, msg) { 22 | if(typeof msg === 'string'){ 23 | msg = {type: 'info', message: msg} 24 | } 25 | Message({ 26 | type: msg.type || 'info', 27 | message: msg.message || msg.msg || msg.data 28 | }) 29 | } 30 | }; 31 | const mutations = { 32 | UPDATE_SORT_TYPE(state, type){ 33 | state.sortType = type 34 | window.localStorage.setItem('SORT_TYPE', state.sortType) 35 | }, 36 | UPDATE_DOC_SHOW_TYPE(state, type){ 37 | state.docShowType = type 38 | window.localStorage.setItem('DOC_SHOW_TYPE', type) 39 | }, 40 | UPDATE_IS_FOLDER_TOP(state, b){ 41 | state.isFolderTop = !!b 42 | window.localStorage.setItem('UPDATE_IS_FOLDER_TOP', state.isFolderTop) 43 | } 44 | }; 45 | const getters = {}; 46 | 47 | Vue.use(Vuex); 48 | export default new Vuex.Store({ 49 | state, 50 | getters, 51 | actions, 52 | mutations, 53 | modules: { 54 | // 用户相关 55 | user 56 | } 57 | }); 58 | -------------------------------------------------------------------------------- /web/store/modules/user.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户相关 3 | */ 4 | import {setLocalStorage, getLocalStorage} from '@/common/js/mUtils' 5 | const state = { 6 | access_token: '', 7 | permissionsList: [], 8 | userInfo: {}, 9 | } 10 | const actions = { 11 | 12 | }; 13 | 14 | const mutations = { 15 | /** 16 | * 更新用户data info数据 17 | */ 18 | UPDATE_USER_INFO(state, data) { 19 | state.userInfo = {...data} 20 | // 存储状态 21 | mutations['SAVE_USER_TO_LOCAL'](state) 22 | }, 23 | /** 24 | * 更新oauth相关 25 | */ 26 | UPDATE_ACCESS_TOKEN(state, data) { 27 | state.access_token = data || '' 28 | // 存储状态 29 | mutations['SAVE_USER_TO_LOCAL'](state) 30 | }, 31 | /** 32 | * 更新个人权限相关 33 | * @param state 34 | * @param data 35 | */ 36 | UPDATE_USER_PERMISSION(state, data) { 37 | state.permissionsList = data || []; 38 | // 存储状态 39 | mutations['SAVE_USER_TO_LOCAL'](state) 40 | }, 41 | 42 | /** 43 | * 将user state 数据存储在localstore里面 44 | * @param state 45 | */ 46 | SAVE_USER_TO_LOCAL(state) { 47 | setLocalStorage('user', state) 48 | }, 49 | /** 50 | * 从localstorage里取出数据更新user 51 | * @param state 52 | */ 53 | UPDATE_USER_FROM_LOCAL(state) { 54 | let user = getLocalStorage('user') 55 | if (user) { 56 | for (let key in state) { 57 | state[key] = user[key] 58 | } 59 | } 60 | } 61 | } 62 | 63 | 64 | const getters = { 65 | authorization(state) { 66 | return state.access_token ? 'Bearer ' + state.access_token : '' 67 | }, 68 | userInfo(state) { 69 | return state.userInfo 70 | } 71 | }; 72 | 73 | 74 | export default { 75 | state, 76 | actions, 77 | getters, 78 | mutations 79 | } 80 | --------------------------------------------------------------------------------