├── .gitignore ├── README.md ├── babel.config.js ├── dist ├── css │ ├── app.1ca305d3.css │ ├── chunk-17ff363c.da1f3f44.css │ ├── chunk-1ae3dee7.9ef3540a.css │ ├── chunk-1b886a23.35b91634.css │ ├── chunk-1e8b0375.da313f37.css │ ├── chunk-3fcdbc37.e9682407.css │ ├── chunk-4abf228e.8679e0c6.css │ ├── chunk-4c285898.a8679454.css │ ├── chunk-5c0d1206.aa11ab42.css │ ├── chunk-6325a08a.9ec5e003.css │ ├── chunk-6a280086.e70c2829.css │ ├── chunk-6d4d5a6c.e35d7ec1.css │ ├── chunk-9bc4cee0.ab875a92.css │ ├── chunk-9e5595b2.6f274057.css │ ├── chunk-b50229e6.5f5bf64d.css │ ├── chunk-d5224c00.0dc8bff8.css │ ├── chunk-deb1ce48.770f2766.css │ ├── chunk-e1f9e4d0.13288674.css │ └── chunk-f1225e32.8dd63ce0.css ├── fonts │ ├── element-icons.2fad952a.woff │ ├── element-icons.6f0a7632.ttf │ ├── fontello.068ca2b3.ttf │ ├── fontello.8d4a4e6f.woff2 │ ├── fontello.a782baa8.woff │ └── fontello.e73a0647.eot ├── img │ ├── fontello.9354499c.svg │ ├── img.28e441c3.jpg │ └── login-bg.86a64e59.jpg ├── index.html ├── js │ ├── app.47334d33.js │ ├── chunk-17ff363c.d5dc8351.js │ ├── chunk-1ae3dee7.9b5d609f.js │ ├── chunk-1b886a23.491291f2.js │ ├── chunk-1e8b0375.333b4158.js │ ├── chunk-2d0bd1e8.43168f2c.js │ ├── chunk-2d0cf140.c711a823.js │ ├── chunk-2d0dab14.3d2246d8.js │ ├── chunk-2d22bf9c.8143898b.js │ ├── chunk-2d230500.93889c78.js │ ├── chunk-3fcdbc37.4bdbc336.js │ ├── chunk-4abf228e.1e44873c.js │ ├── chunk-4c285898.d911edfd.js │ ├── chunk-5c0d1206.cda24eaf.js │ ├── chunk-6325a08a.a76bad07.js │ ├── chunk-6a280086.23f171af.js │ ├── chunk-6d4d5a6c.38d11021.js │ ├── chunk-9bc4cee0.77a8fa0d.js │ ├── chunk-9e5595b2.b52df879.js │ ├── chunk-b50229e6.e0b2071f.js │ ├── chunk-d5224c00.9b03eb4e.js │ ├── chunk-deb1ce48.6bd31bc3.js │ ├── chunk-e1f9e4d0.695b605b.js │ ├── chunk-f1225e32.0b53a60a.js │ └── chunk-vendors.45e5993d.js ├── menu.json └── vuetable.json ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── index.html ├── menu.json └── vuetable.json ├── screenshots ├── wms1.png └── wms3.png ├── src ├── App.vue ├── api │ └── api.js ├── assets │ ├── css │ │ ├── color-dark.css │ │ ├── icon.css │ │ ├── main.css │ │ └── theme-green │ │ │ ├── color-green.css │ │ │ ├── fonts │ │ │ ├── element-icons.ttf │ │ │ └── element-icons.woff │ │ │ └── index.css │ ├── img │ │ ├── img.jpg │ │ └── login-bg.jpg │ ├── logo.png │ └── vuetable.json ├── components │ ├── common │ │ ├── Header.vue │ │ ├── Home.vue │ │ ├── Sidebar.vue │ │ ├── Tags.vue │ │ ├── bus.js │ │ └── directives.js │ └── page │ │ ├── 403.vue │ │ ├── 404.vue │ │ ├── BaseCharts.vue │ │ ├── BaseForm.vue │ │ ├── BaseTable.vue │ │ ├── Dashboard.vue │ │ ├── DragDialog.vue │ │ ├── DragList.vue │ │ ├── Icon.vue │ │ ├── Login.vue │ │ ├── Markdown.vue │ │ ├── Permission.vue │ │ ├── Tabs.vue │ │ ├── Upload.vue │ │ ├── VueEditor.vue │ │ ├── admin.vue │ │ ├── sysmanager │ │ └── usermanager.vue │ │ ├── tree1.vue │ │ ├── tree2.vue │ │ ├── tree3.vue │ │ ├── tree4.vue │ │ └── tree5.vue ├── main.js ├── mock │ ├── data │ │ ├── sysmenu.js │ │ └── user.js │ └── mock.js ├── router │ └── index.js └── store │ ├── index.js │ └── modules │ └── dailog.js └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | vue-element-admin 2 | vue-element-admin 3 | 4 | 基于 vue+element+admin 后台模板UI 5 | 6 | 7 | # 克隆项目 8 | git clone https://github.com/Angelasp/vue-element-admin.git 9 | 10 | # 进入项目目录 11 | cd vue-element-admin 12 | 13 | # 安装依赖 14 | npm install 15 | 16 | # 本地开发 启动项目 17 | npm run dev 18 | 19 | 发布 20 | 21 | # 构建测试环境 22 | npm run build:stage 23 | 24 | # 构建生产环境 25 | npm run build:prod 26 | 27 | 28 | 29 | 其它 30 | # 预览发布环境效果 31 | npm run preview 32 | 33 | # 预览发布环境效果 + 静态资源分析 34 | npm run preview -- --report 35 | 36 | # 代码格式检查 37 | npm run lint 38 | 39 | # 代码格式检查并自动修复 40 | npm run lint -- --fix -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /dist/css/chunk-17ff363c.da1f3f44.css: -------------------------------------------------------------------------------- 1 | .schart-box[data-v-5260aba8]{display:inline-block;margin:20px}.schart[data-v-5260aba8]{width:500px;height:400px}.content-title[data-v-5260aba8]{clear:both;font-weight:400;line-height:50px;margin:10px 0;font-size:22px;color:#1f2f3d} -------------------------------------------------------------------------------- /dist/css/chunk-1ae3dee7.9ef3540a.css: -------------------------------------------------------------------------------- 1 | .handle-box[data-v-2ce489cc]{margin-bottom:20px}.handle-select[data-v-2ce489cc]{width:120px}.handle-input[data-v-2ce489cc]{width:300px;display:inline-block}.del-dialog-cnt[data-v-2ce489cc]{font-size:16px;text-align:center}.table[data-v-2ce489cc]{width:100%;font-size:14px}.red[data-v-2ce489cc]{color:red}.mr10[data-v-2ce489cc]{margin-right:10px} -------------------------------------------------------------------------------- /dist/css/chunk-1b886a23.35b91634.css: -------------------------------------------------------------------------------- 1 | .example-p[data-v-78dfadcd]{height:45px;display:flex;align-items:center}.search-box[data-v-78dfadcd]{text-align:center;margin-top:10px}.search[data-v-78dfadcd]{width:300px}li[data-v-78dfadcd],ul[data-v-78dfadcd]{list-style:none}.icon-li[data-v-78dfadcd]{display:inline-block;padding:10px;width:120px;height:120px}.icon-li-content[data-v-78dfadcd]{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.icon-li-content i[data-v-78dfadcd]{font-size:36px;color:#606266}.icon-li-content span[data-v-78dfadcd]{margin-top:10px;color:#787878} -------------------------------------------------------------------------------- /dist/css/chunk-1e8b0375.da313f37.css: -------------------------------------------------------------------------------- 1 | .custom-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px} -------------------------------------------------------------------------------- /dist/css/chunk-3fcdbc37.e9682407.css: -------------------------------------------------------------------------------- 1 | .drag-box[data-v-008819a0]{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.drag-box-item[data-v-008819a0]{flex:1;max-width:330px;min-width:300px;background-color:#eff1f5;margin-right:16px;border-radius:6px;border:1px solid #e1e4e8}.item-title[data-v-008819a0]{padding:8px 8px 8px 12px;font-size:14px;line-height:1.5;color:#24292e;font-weight:600}.item-ul[data-v-008819a0]{padding:0 8px 8px;height:500px;overflow-y:scroll}.item-ul[data-v-008819a0]::-webkit-scrollbar{width:0}.drag-list[data-v-008819a0]{border:1px solid #e1e4e8;padding:10px;margin:5px 0 10px;list-style:none;background-color:#fff;border-radius:6px;cursor:pointer;transition:border .3s ease-in}.drag-list[data-v-008819a0]:hover{border:1px solid #20a0ff}.drag-title[data-v-008819a0]{font-weight:400;line-height:25px;margin:10px 0;font-size:22px;color:#1f2f3d}.ghost-style[data-v-008819a0]{display:block;color:transparent;border-style:dashed} -------------------------------------------------------------------------------- /dist/css/chunk-4c285898.a8679454.css: -------------------------------------------------------------------------------- 1 | .el-row[data-v-48747b6f]{margin-bottom:20px}.grid-content[data-v-48747b6f]{display:flex;align-items:center;height:100px}.grid-cont-right[data-v-48747b6f]{flex:1;text-align:center;font-size:14px;color:#999}.grid-num[data-v-48747b6f]{font-size:30px;font-weight:700}.grid-con-icon[data-v-48747b6f]{font-size:50px;width:100px;height:100px;text-align:center;line-height:100px;color:#fff}.grid-con-1 .grid-con-icon[data-v-48747b6f]{background:#2d8cf0}.grid-con-1 .grid-num[data-v-48747b6f]{color:#2d8cf0}.grid-con-2 .grid-con-icon[data-v-48747b6f]{background:#64d572}.grid-con-2 .grid-num[data-v-48747b6f]{color:#2d8cf0}.grid-con-3 .grid-con-icon[data-v-48747b6f]{background:#f25e43}.grid-con-3 .grid-num[data-v-48747b6f]{color:#f25e43}.user-info[data-v-48747b6f]{display:flex;align-items:center;padding-bottom:20px;border-bottom:2px solid #ccc;margin-bottom:20px}.user-avator[data-v-48747b6f]{width:120px;height:120px;border-radius:50%}.user-info-cont[data-v-48747b6f]{padding-left:50px;flex:1;font-size:14px;color:#999}.user-info-cont div[data-v-48747b6f]:first-child{font-size:30px;color:#222}.user-info-list[data-v-48747b6f]{font-size:14px;color:#999;line-height:25px}.user-info-list span[data-v-48747b6f]{margin-left:70px}.mgb20[data-v-48747b6f]{margin-bottom:20px}.todo-item[data-v-48747b6f]{font-size:14px}.todo-item-del[data-v-48747b6f]{text-decoration:line-through;color:#999}.schart[data-v-48747b6f]{width:100%;height:300px} -------------------------------------------------------------------------------- /dist/css/chunk-5c0d1206.aa11ab42.css: -------------------------------------------------------------------------------- 1 | .message-title{cursor:pointer}.handle-row{margin-top:30px} -------------------------------------------------------------------------------- /dist/css/chunk-6325a08a.9ec5e003.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:fontello;src:url(../fonts/fontello.e73a0647.eot);src:url(../fonts/fontello.e73a0647.eot#iefix) format("embedded-opentype"),url(../fonts/fontello.8d4a4e6f.woff2) format("woff2"),url(../fonts/fontello.a782baa8.woff) format("woff"),url(../fonts/fontello.068ca2b3.ttf) format("truetype"),url(../img/fontello.9354499c.svg#fontello) format("svg");font-weight:400;font-style:normal}[class*=" fa-mavon-"]:before,[class^=fa-mavon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-mavon-bold:before{content:"\E800"}.fa-mavon-italic:before{content:"\E801"}.fa-mavon-thumb-tack:before{content:"\E802"}.fa-mavon-link:before{content:"\E803"}.fa-mavon-picture-o:before{content:"\E804"}.fa-mavon-repeat:before{content:"\E805"}.fa-mavon-undo:before{content:"\E806"}.fa-mavon-trash-o:before{content:"\E807"}.fa-mavon-floppy-o:before{content:"\E808"}.fa-mavon-compress:before{content:"\E809"}.fa-mavon-eye:before{content:"\E80A"}.fa-mavon-eye-slash:before{content:"\E80B"}.fa-mavon-question-circle:before{content:"\E80C"}.fa-mavon-times:before{content:"\E80D"}.fa-mavon-align-left:before{content:"\E80F"}.fa-mavon-align-center:before{content:"\E810"}.fa-mavon-align-right:before{content:"\E811"}.fa-mavon-arrows-alt:before{content:"\F0B2"}.fa-mavon-bars:before{content:"\F0C9"}.fa-mavon-list-ul:before{content:"\F0CA"}.fa-mavon-list-ol:before{content:"\F0CB"}.fa-mavon-strikethrough:before{content:"\F0CC"}.fa-mavon-underline:before{content:"\F0CD"}.fa-mavon-table:before{content:"\F0CE"}.fa-mavon-columns:before{content:"\F0DB"}.fa-mavon-quote-left:before{content:"\F10D"}.fa-mavon-code:before{content:"\F121"}.fa-mavon-superscript:before{content:"\F12B"}.fa-mavon-subscript:before{content:"\F12C"}.fa-mavon-header:before{content:"\F1DC"}.fa-mavon-window-maximize:before{content:"\F2D0"}.markdown-body strong{font-weight:bolder}.markdown-body .hljs-center{text-align:center}.markdown-body .hljs-right{text-align:right}.markdown-body .hljs-left{text-align:left}.editor-btn[data-v-2ab7efbb]{margin-top:20px} -------------------------------------------------------------------------------- /dist/css/chunk-6a280086.e70c2829.css: -------------------------------------------------------------------------------- 1 | .el-row[data-v-bc3861ce]{margin-bottom:20px}.grid-content[data-v-bc3861ce]{display:flex;align-items:center;height:100px}.grid-cont-right[data-v-bc3861ce]{flex:1;text-align:center;font-size:14px;color:#999}.grid-num[data-v-bc3861ce]{font-size:30px;font-weight:700}.grid-con-icon[data-v-bc3861ce]{font-size:50px;width:100px;height:100px;text-align:center;line-height:100px;color:#fff}.grid-con-1 .grid-con-icon[data-v-bc3861ce]{background:#2d8cf0}.grid-con-1 .grid-num[data-v-bc3861ce]{color:#2d8cf0}.grid-con-2 .grid-con-icon[data-v-bc3861ce]{background:#64d572}.grid-con-2 .grid-num[data-v-bc3861ce]{color:#2d8cf0}.grid-con-3 .grid-con-icon[data-v-bc3861ce]{background:#f25e43}.grid-con-3 .grid-num[data-v-bc3861ce]{color:#f25e43}.user-info[data-v-bc3861ce]{display:flex;align-items:center;padding-bottom:20px;border-bottom:2px solid #ccc;margin-bottom:20px}.user-avator[data-v-bc3861ce]{width:120px;height:120px;border-radius:50%}.user-info-cont[data-v-bc3861ce]{padding-left:50px;flex:1;font-size:14px;color:#999}.user-info-cont div[data-v-bc3861ce]:first-child{font-size:30px;color:#222}.user-info-list[data-v-bc3861ce]{font-size:14px;color:#999;line-height:25px}.user-info-list span[data-v-bc3861ce]{margin-left:70px}.mgb20[data-v-bc3861ce]{margin-bottom:20px}.todo-item[data-v-bc3861ce]{font-size:14px}.todo-item-del[data-v-bc3861ce]{text-decoration:line-through;color:#999}.schart[data-v-bc3861ce]{width:100%;height:300px} -------------------------------------------------------------------------------- /dist/css/chunk-6d4d5a6c.e35d7ec1.css: -------------------------------------------------------------------------------- 1 | h1[data-v-52f76618]{text-align:center;margin:30px 0}p[data-v-52f76618]{line-height:30px;margin-bottom:10px;text-indent:2em}.logout[data-v-52f76618]{color:#409eff} -------------------------------------------------------------------------------- /dist/css/chunk-9bc4cee0.ab875a92.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Cropper.js v1.5.1 3 | * https://fengyuanchen.github.io/cropperjs 4 | * 5 | * Copyright 2015-present Chen Fengyuan 6 | * Released under the MIT license 7 | * 8 | * Date: 2019-03-10T09:55:50.492Z 9 | */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.content-title[data-v-03421e96]{font-weight:400;line-height:50px;margin:10px 0;font-size:22px;color:#1f2f3d}.pre-img[data-v-03421e96]{width:100px;height:100px;background:#f8f8f8;border:1px solid #eee;border-radius:5px}.crop-demo[data-v-03421e96]{display:flex;align-items:flex-end}.crop-demo-btn[data-v-03421e96]{position:relative;width:100px;height:40px;line-height:40px;padding:0 20px;margin-left:30px;background-color:#409eff;color:#fff;font-size:14px;border-radius:4px;box-sizing:border-box}.crop-input[data-v-03421e96]{position:absolute;width:100px;height:40px;left:0;top:0;opacity:0;cursor:pointer} -------------------------------------------------------------------------------- /dist/css/chunk-9e5595b2.6f274057.css: -------------------------------------------------------------------------------- 1 | .login-wrap[data-v-4c1a1c62]{position:relative;width:100%;height:100%;background-image:url(../img/login-bg.86a64e59.jpg);background-size:100%}.ms-title[data-v-4c1a1c62]{width:100%;line-height:50px;text-align:center;font-size:20px;color:#000;border-bottom:1px solid #ddd}.ms-login[data-v-4c1a1c62]{position:absolute;left:50%;top:50%;width:350px;margin:-190px 0 0 -175px;border-radius:5px;background:#fff;overflow:hidden}.ms-content[data-v-4c1a1c62]{padding:30px 30px}.login-btn[data-v-4c1a1c62]{text-align:center}.login-btn button[data-v-4c1a1c62]{width:100%;height:36px;margin-bottom:10px}.login-tips[data-v-4c1a1c62]{font-size:12px;line-heigh:#000} -------------------------------------------------------------------------------- /dist/css/chunk-b50229e6.5f5bf64d.css: -------------------------------------------------------------------------------- 1 | .header[data-v-2941f1b7]{background-color:#23262e!important;position:relative;box-sizing:border-box;width:100%;height:70px;font-size:22px;color:#fff}.collapse-btn[data-v-2941f1b7]{float:left;padding:0 21px;cursor:pointer;line-height:70px}.header .logo[data-v-2941f1b7]{float:left;width:250px;line-height:70px}.header-right[data-v-2941f1b7]{float:right;padding-right:50px}.header-user-con[data-v-2941f1b7]{display:flex;height:70px;align-items:center}.btn-fullscreen[data-v-2941f1b7]{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-right:5px;font-size:24px}.btn-bell[data-v-2941f1b7],.btn-fullscreen[data-v-2941f1b7]{position:relative;width:30px;height:30px;text-align:center;border-radius:15px;cursor:pointer}.btn-bell-badge[data-v-2941f1b7]{position:absolute;right:0;top:-2px;width:8px;height:8px;border-radius:4px;background:#f56c6c;color:#fff}.btn-bell .el-icon-bell[data-v-2941f1b7]{color:#fff}.user-name[data-v-2941f1b7]{margin-left:10px}.user-avator[data-v-2941f1b7]{margin-left:20px}.user-avator img[data-v-2941f1b7]{display:block;width:40px;height:40px;border-radius:50%}.el-dropdown-link[data-v-2941f1b7]{color:#fff;cursor:pointer}.el-dropdown-menu__item[data-v-2941f1b7]{text-align:center}.collapse-btn[data-v-2941f1b7]:hover{background-color:#009688!important}.sidebar[data-v-1a51074a]{display:block;position:absolute;left:0;top:70px;bottom:0;overflow-y:scroll}.sidebar[data-v-1a51074a]::-webkit-scrollbar{width:0}.sidebar-el-menu[data-v-1a51074a]:not(.el-menu--collapse){width:250px}.sidebar>ul[data-v-1a51074a]{height:100%}.tags{position:relative;height:35px;overflow:hidden;background:#fff;padding-right:120px;box-shadow:0 5px 10px #ddd}.tags ul{box-sizing:border-box;width:100%;height:100%}.tags-li{float:left;margin:3px 5px 2px 3px;border-radius:3px;font-size:12px;overflow:hidden;cursor:pointer;height:30px;line-height:23px;border:1px solid #e9eaec;background:#fff;padding:0 5px 0 12px;vertical-align:middle;color:#666;transition:all .3s ease-in}.tags-li:not(.active):hover{background:#f8f8f8}.tags-li.active{background-color:#009688!important;color:#fff}.tags-li-title{float:left;line-height:30px;max-width:80px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:5px;color:#666}.tags-li.active .tags-li-title{color:#fff}.mbtn{height:30px}.tags-close-box{position:absolute;right:0;top:0;box-sizing:border-box;padding-top:1px;text-align:center;width:110px;height:35px;background:#fff;box-shadow:-3px 0 15px 3px rgba(0,0,0,.1);z-index:10} -------------------------------------------------------------------------------- /dist/css/chunk-d5224c00.0dc8bff8.css: -------------------------------------------------------------------------------- 1 | .error-page[data-v-2e353fab]{display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;background:#f3f3f3;box-sizing:border-box}.error-code[data-v-2e353fab]{line-height:1;font-size:250px;font-weight:bolder;color:#f02d2d}.error-code span[data-v-2e353fab]{color:#00a854}.error-desc[data-v-2e353fab]{font-size:30px;color:#777}.error-handle[data-v-2e353fab]{margin-top:30px;padding-bottom:200px}.error-btn[data-v-2e353fab]{margin-left:100px} -------------------------------------------------------------------------------- /dist/css/chunk-deb1ce48.770f2766.css: -------------------------------------------------------------------------------- 1 | .handle-box[data-v-354bf639]{margin-bottom:20px}.handle-select[data-v-354bf639]{width:120px}.handle-input[data-v-354bf639]{width:300px;display:inline-block}.del-dialog-cnt[data-v-354bf639]{font-size:16px;text-align:center}.table[data-v-354bf639]{width:100%;font-size:14px}.red[data-v-354bf639]{color:red}.mr10[data-v-354bf639]{margin-right:10px} -------------------------------------------------------------------------------- /dist/css/chunk-e1f9e4d0.13288674.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/css/chunk-e1f9e4d0.13288674.css -------------------------------------------------------------------------------- /dist/css/chunk-f1225e32.8dd63ce0.css: -------------------------------------------------------------------------------- 1 | .error-page[data-v-cb97bba6]{display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;background:#f3f3f3;box-sizing:border-box}.error-code[data-v-cb97bba6]{line-height:1;font-size:250px;font-weight:bolder;color:#2d8cf0}.error-code span[data-v-cb97bba6]{color:#00a854}.error-desc[data-v-cb97bba6]{font-size:30px;color:#777}.error-handle[data-v-cb97bba6]{margin-top:30px;padding-bottom:200px}.error-btn[data-v-cb97bba6]{margin-left:100px} -------------------------------------------------------------------------------- /dist/fonts/element-icons.2fad952a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/element-icons.2fad952a.woff -------------------------------------------------------------------------------- /dist/fonts/element-icons.6f0a7632.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/element-icons.6f0a7632.ttf -------------------------------------------------------------------------------- /dist/fonts/fontello.068ca2b3.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/fontello.068ca2b3.ttf -------------------------------------------------------------------------------- /dist/fonts/fontello.8d4a4e6f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/fontello.8d4a4e6f.woff2 -------------------------------------------------------------------------------- /dist/fonts/fontello.a782baa8.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/fontello.a782baa8.woff -------------------------------------------------------------------------------- /dist/fonts/fontello.e73a0647.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/fonts/fontello.e73a0647.eot -------------------------------------------------------------------------------- /dist/img/img.28e441c3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/img/img.28e441c3.jpg -------------------------------------------------------------------------------- /dist/img/login-bg.86a64e59.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/dist/img/login-bg.86a64e59.jpg -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | vue-element-admin-ui
-------------------------------------------------------------------------------- /dist/js/app.47334d33.js: -------------------------------------------------------------------------------- 1 | (function(e){function n(n){for(var c,o,r=n[0],i=n[1],h=n[2],d=0,l=[];dd?c=-d:c>l&&(c=l),-o>f?o=-f:o>p&&(o=p),u.style.cssText+=";left:".concat(c+s,"px;top:").concat(o+b,"px;")},document.onmouseup=function(e){document.onmousemove=null,document.onmouseup=null}}}});t("db4d");var m=t("2f62"),k={showUser:!1},v={isShow:function(e){return e.showUser}},y={hide:function(e){e.showUser=!1},show:function(e){e.showUser=!0}},g={showDailog:function(e){var n=e.commit;n("show")},hideDailog:function(e){var n=e.commit;n("hide")}},w={namespaced:!0,getters:v,mutations:y,actions:g,state:k};c["default"].use(m["a"]);var x=new m["a"].Store({modules:{dailog:w}}),S=x;c["default"].config.productionTip=!1,c["default"].use(b.a,{size:"small"}),c["default"].prototype.$axios=p.a,l.beforeEach(function(e,n,t){var o=localStorage.getItem("ms_username");o||"/login"===e.path?e.meta.permission?"admin"===o?t():t("/403"):navigator.userAgent.indexOf("MSIE")>-1&&"/editor"===e.path?c["default"].prototype.$alert("vue-quill-editor组件不兼容IE10及以下浏览器,请使用更高版本的浏览器查看","浏览器不兼容通知",{confirmButtonText:"确定"}):t():t("/login")}),new c["default"]({router:l,store:S,render:function(e){return e(h)}}).$mount("#app")},"64a9":function(e,n,t){},b92b:function(e,n,t){},d21e:function(e,n,t){}}); -------------------------------------------------------------------------------- /dist/js/chunk-17ff363c.d5dc8351.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-17ff363c"],{"026e":function(t,i,s){"use strict";s.r(i);var h=function(){var t=this,i=t.$createElement,s=t._self._c||i;return s("div",[s("div",{staticClass:"crumbs"},[s("el-breadcrumb",{attrs:{separator:"/"}},[s("el-breadcrumb-item",[s("i",{staticClass:"el-icon-lx-favor"}),t._v(" schart图表")])],1)],1),s("div",{staticClass:"container"},[t._m(0),s("div",{staticClass:"schart-box"},[s("div",{staticClass:"content-title"},[t._v("柱状图")]),s("schart",{staticClass:"schart",attrs:{canvasId:"bar",data:t.data1,type:"bar",options:t.options1}})],1),s("div",{staticClass:"schart-box"},[s("div",{staticClass:"content-title"},[t._v("折线图")]),s("schart",{staticClass:"schart",attrs:{canvasId:"line",data:t.data1,type:"line",options:t.options2}})],1),s("div",{staticClass:"schart-box"},[s("div",{staticClass:"content-title"},[t._v("饼状图")]),s("schart",{staticClass:"schart",attrs:{canvasId:"pie",data:t.data2,type:"pie",options:t.options3}})],1),s("div",{staticClass:"schart-box"},[s("div",{staticClass:"content-title"},[t._v("环形图")]),s("schart",{staticClass:"schart",attrs:{canvasId:"ring",data:t.data2,type:"ring",options:t.options4}})],1)])])},a=[function(){var t=this,i=t.$createElement,s=t._self._c||i;return s("div",{staticClass:"plugins-tips"},[t._v("\n vue-schart:vue.js封装sChart.js的图表组件。\n 访问地址:"),s("a",{attrs:{href:"https://github.com/lin-xin/vue-schart",target:"_blank"}},[t._v("vue-schart")])])}],e=s("f5ac"),o={name:"basecharts",components:{Schart:e["a"]},data:function(){return{data1:[{name:"2012",value:1141},{name:"2013",value:1499},{name:"2014",value:2260},{name:"2015",value:1170},{name:"2016",value:970},{name:"2017",value:1450}],data2:[{name:"短袖",value:1200},{name:"休闲裤",value:1222},{name:"连衣裙",value:1283},{name:"外套",value:1314},{name:"羽绒服",value:2314}],options1:{title:"某商店近年营业总额",autoWidth:!0,showValue:!1,bgColor:"#F9EFCC",fillColor:"#00887C",contentColor:"rgba(46,199,201,0.3)",yEqual:7},options2:{title:"某商店近年营业总额",bgColor:"#D5E4EB",titleColor:"#00887C",fillColor:"red",contentColor:"rgba(46,199,201,0.3)"},options3:{title:"某商店各商品年度销量",bgColor:"#829dca",titleColor:"#ffffff",legendColor:"#ffffff",radius:120},options4:{title:"某商店各商品年度销量",bgColor:"#829daa",titleColor:"#ffffff",legendColor:"#ffffff",radius:120,innerRadius:80}}}},n=o,d=(s("5be3"),s("2877")),l=Object(d["a"])(n,h,a,!1,null,"5260aba8",null);l.options.__file="BaseCharts.vue";i["default"]=l.exports},"5be3":function(t,i,s){"use strict";var h=s("c785"),a=s.n(h);a.a},"8c93":function(t,i,s){var h; 2 | /*! 3 | * sChart JavaScript Library v2.0.1 4 | * http://blog.gdfengshuo.com/example/sChart/ | Released under the MIT license 5 | * Date: 2018-04-16T18:59Z 6 | */ 7 | /*! 8 | * sChart JavaScript Library v2.0.1 9 | * http://blog.gdfengshuo.com/example/sChart/ | Released under the MIT license 10 | * Date: 2018-04-16T18:59Z 11 | */ 12 | (function(a,e){h=function(){return e(a)}.call(i,s,i,t),void 0===h||(t.exports=h)})(this,function(t){"use strict";function i(t,i,s,h){this.canvas=document.getElementById(t),this.ctx=this.canvas.getContext("2d"),this.dpi=window.devicePixelRatio||1,this.type=i,this.data=s,this.dataLength=this.data.length,this.showValue=!0,this.autoWidth=!1,this.width=this.canvas.width*this.dpi,this.height=this.canvas.height*this.dpi,this.topPadding=50*this.dpi,this.leftPadding=50*this.dpi,this.rightPadding=0*this.dpi,this.bottomPadding=50*this.dpi,this.yEqual=5,this.yLength=0,this.xLength=0,this.yFictitious=0,this.yRatio=0,this.bgColor="#ffffff",this.fillColor="#1E9FFF",this.axisColor="#666666",this.contentColor="#eeeeee",this.titleColor="#000000",this.title="",this.titlePosition="top",this.radius=100*this.dpi,this.innerRadius=70*this.dpi,this.colorList=["#1E9FFF","#13CE66","#F7BA2A","#FF4949","#72f6ff","#199475","#e08031","#726dd1"],this.legendColor="#000000",this.legendTop=40*this.dpi,this.totalValue=this.getTotalValue(),this.init(h)}return i.prototype={init:function(t){if(0===this.dataLength)return!1;if(t){var i=["topPadding","leftPadding","rightPadding","bottomPadding","radius","innerRadius","legendTop"];for(var s in t)"colorList"===s&&Array.isArray(t[s])?this[s]=t[s].concat(this[s]):i.indexOf(s)>-1?this[s]=t[s]*this.dpi:this[s]=t[s]}t.autoWidth?(this.width=this.canvas.width=this.canvas.parentNode.offsetWidth*this.dpi,this.height=this.canvas.height=this.canvas.parentNode.offsetHeight*this.dpi,this.canvas.setAttribute("style","width:"+this.canvas.parentNode.offsetWidth+"px;height:"+this.canvas.parentNode.offsetHeight+"px;")):(this.canvas.setAttribute("style","width:"+this.canvas.width+"px;height:"+this.canvas.height+"px;"),this.canvas.width*=this.dpi,this.canvas.height*=this.dpi),"bar"===this.type||"line"===this.type?(this.yLength=Math.floor((this.height-this.topPadding-this.bottomPadding-10)/this.yEqual),this.xLength=Math.floor((this.width-this.leftPadding-this.rightPadding-10)/this.dataLength),this.yFictitious=this.getYFictitious(this.data),this.yRatio=this.yLength/this.yFictitious,this.drawBarUpdate()):this.drawPieUpdate()},drawBarUpdate:function(){this.ctx.fillStyle=this.bgColor,this.ctx.fillRect(0,0,this.width,this.height),this.drawAxis(),this.drawPoint(),this.drawTitle(),this.drawBarChart()},drawPieUpdate:function(){this.ctx.fillStyle=this.bgColor,this.ctx.fillRect(0,0,this.width,this.height),this.drawLegend(),this.drawTitle(),this.drawPieChart()},drawBarChart:function(){this.ctx.fillStyle=this.fillColor,this.ctx.strokeStyle=this.fillColor;for(var t=0;t0&&this.data[a].middle<=Math.PI/2?(this.ctx.textAlign="left",this.ctx.moveTo(t+s,i+h),this.ctx.lineTo(t+s+10,i+h+10),this.ctx.moveTo(t+s+10,i+h+10),this.ctx.lineTo(t+s+this.radius/2,i+h+10),this.ctx.stroke(),this.ctx.fillText(this.data[a].value,t+s+5+this.radius/2,i+h+15)):this.data[a].middle>Math.PI/2&&this.data[a].middle=40?this.ctx.fillText(this.title,this.width/2,this.height-5):this.ctx.fillText(this.title,this.width/2,this.topPadding/2+5))},drawLegend:function(){for(var t=0;t2?2:h,Math.ceil(s/Math.pow(10,h))*Math.pow(10,h)},getTotalValue:function(){for(var t=0,i=0;i-1&&(t.name.indexOf(e.select_word)>-1||t.address.indexOf(e.select_word)>-1))return t})}},methods:{handleCurrentChange:function(e){this.cur_page=e,this.getData()},getData:function(){var e=this;this.$axios.post(this.url,{page:this.cur_page}).then(function(t){e.tableData=t.data.list})},search:function(){this.is_search=!0},formatter:function(e,t){return e.address},filterTag:function(e,t){return t.tag===e},handleEdit:function(e,t){this.idx=e;var a=this.tableData[e];this.form={name:a.name,date:a.date,address:a.address},this.editVisible=!0},handleDelete:function(e,t){this.idx=e,this.delVisible=!0},delAll:function(){var e=this.multipleSelection.length,t="";this.del_list=this.del_list.concat(this.multipleSelection);for(var a=0;a')])])},function(){var i=this,l=i.$createElement,e=i._self._c||l;return e("p",{staticClass:"example-p"},[e("i",{staticClass:"el-icon-lx-weibo",staticStyle:{"font-size":"30px",color:"#fd5656"}}),e("span",[i._v('')])])},function(){var i=this,l=i.$createElement,e=i._self._c||l;return e("p",{staticClass:"example-p"},[e("i",{staticClass:"el-icon-lx-emojifill",staticStyle:{"font-size":"30px",color:"#ffc300"}}),e("span",[i._v('')])])}],a=(e("57e7"),e("d25f"),{data:function(){return{keyword:"",iconList:["attentionforbid","attentionforbidfill","attention","attentionfill","tag","tagfill","people","peoplefill","notice","noticefill","mobile","mobilefill","voice","voicefill","unlock","lock","home","homefill","delete","deletefill","notification","notificationfill","notificationforbidfill","like","likefill","comment","commentfill","camera","camerafill","warn","warnfill","time","timefill","location","locationfill","favor","favorfill","skin","skinfill","news","newsfill","record","recordfill","emoji","emojifill","message","messagefill","goods","goodsfill","crown","crownfill","move","add","hot","hotfill","service","servicefill","present","presentfill","pic","picfill","rank","rankfill","male","female","down","top","recharge","rechargefill","forward","forwardfill","info","infofill","redpacket","redpacket_fill","roundadd","roundaddfill","friendadd","friendaddfill","cart","cartfill","more","moreandroid","back","right","shop","shopfill","question","questionfill","roundclose","roundclosefill","roundcheck","roundcheckfill","global","mail","punch","exit","upload","read","file","link","full","group","friend","profile","addressbook","calendar","text","copy","share","wifi","vipcard","weibo","remind","refresh","filter","settings","scan","qrcode","cascades","apps","sort","searchlist","search","edit"]}},computed:{list:function(){var i=this;return this.iconList.filter(function(l){return-1!==l.indexOf(i.keyword)})}}}),n=a,c=(e("5af7"),e("2877")),s=Object(c["a"])(n,t,o,!1,null,"78dfadcd",null);s.options.__file="Icon.vue";l["default"]=s.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-1e8b0375.333b4158.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1e8b0375"],{"2e66":function(e,n,a){},"3cda":function(e,n,a){"use strict";a.r(n);var t=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",[a("div",{staticClass:"custom-tree-container"},[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:12}},[a("div",{staticClass:"block"},[a("p",[e._v("使用 render-content")]),a("el-tree",{attrs:{data:e.data4,"show-checkbox":"","node-key":"id","default-expand-all":"","expand-on-click-node":!1,"render-content":e.renderContent}})],1)]),a("el-col",{attrs:{span:12}},[a("div",{staticClass:"block",attrs:{span:12}},[a("p",[e._v("使用 scoped slot")]),a("el-tree",{attrs:{data:e.data5,"show-checkbox":"","node-key":"id","default-expand-all":"","expand-on-click-node":!1},scopedSlots:e._u([{key:"default",fn:function(n){var t=n.node,l=n.data;return a("span",{staticClass:"custom-tree-node"},[a("span",[e._v(e._s(t.label))]),a("span",[a("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(){return e.append(l)}}},[e._v("Append")]),a("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(){return e.remove(t,l)}}},[e._v("Delete")])],1)])}}])})],1)])],1),a("el-row",[a("h4",{staticStyle:{padding:"10px"}},[e._v("可拖拽节点")]),a("el-tree",{attrs:{data:e.data6,"node-key":"id","default-expand-all":"",draggable:"","allow-drop":e.allowDrop,"allow-drag":e.allowDrag},on:{"node-drag-start":e.handleDragStart,"node-drag-enter":e.handleDragEnter,"node-drag-leave":e.handleDragLeave,"node-drag-over":e.handleDragOver,"node-drag-end":e.handleDragEnd,"node-drop":e.handleDrop}})],1)],1)])},l=[],r=(a("57e7"),a("20d6"),a("f499")),d=a.n(r),o=1e3,i={data:function(){var e=[{id:1,label:"一级 1",children:[{id:4,label:"二级 1-1",children:[{id:9,label:"三级 1-1-1"},{id:10,label:"三级 1-1-2"}]}]},{id:2,label:"一级 2",children:[{id:5,label:"二级 2-1"},{id:6,label:"二级 2-2"}]},{id:3,label:"一级 3",children:[{id:7,label:"二级 3-1"},{id:8,label:"二级 3-2"}]}];return{data4:JSON.parse(d()(e)),data5:JSON.parse(d()(e)),data6:[{id:1,label:"一级 1",children:[{id:4,label:"二级 1-1",children:[{id:9,label:"三级 1-1-1"},{id:10,label:"三级 1-1-2"}]}]},{id:2,label:"一级 2",children:[{id:5,label:"二级 2-1"},{id:6,label:"二级 2-2"}]},{id:3,label:"一级 3",children:[{id:7,label:"二级 3-1"},{id:8,label:"二级 3-2",children:[{id:11,label:"三级 3-2-1"},{id:12,label:"三级 3-2-2"},{id:13,label:"三级 3-2-3"}]}]}]}},methods:{append:function(e){var n={id:o++,label:"testtest",children:[]};e.children||this.$set(e,"children",[]),e.children.push(n)},remove:function(e,n){var a=e.parent,t=a.data.children||a.data,l=t.findIndex(function(e){return e.id===n.id});t.splice(l,1)},renderContent:function(e,n){var a=this,t=n.node,l=n.data;n.store;return e("span",{class:"custom-tree-node"},[e("span",[t.label]),e("span",[e("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(){return a.append(l)}}},["Append"]),e("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(){return a.remove(t,l)}}},["Delete"])])])},handleDragStart:function(e,n){console.log("drag start",e)},handleDragEnter:function(e,n,a){console.log("tree drag enter: ",n.label)},handleDragLeave:function(e,n,a){console.log("tree drag leave: ",n.label)},handleDragOver:function(e,n,a){console.log("tree drag over: ",n.label)},handleDragEnd:function(e,n,a,t){console.log("tree drag end: ",n&&n.label,a)},handleDrop:function(e,n,a,t){console.log("tree drop: ",n.label,a)},allowDrop:function(e,n,a){return"二级 3-1"!==n.data.label||"inner"!==a},allowDrag:function(e){return-1===e.data.label.indexOf("三级 3-2-2")}}},c=i,s=(a("5896"),a("2877")),u=Object(s["a"])(c,t,l,!1,null,null,null);u.options.__file="tree3.vue";n["default"]=u.exports},5896:function(e,n,a){"use strict";var t=a("2e66"),l=a.n(t);l.a},a21f:function(e,n,a){var t=a("584a"),l=t.JSON||(t.JSON={stringify:JSON.stringify});e.exports=function(e){return l.stringify.apply(l,arguments)}},f499:function(e,n,a){e.exports=a("a21f")}}]); -------------------------------------------------------------------------------- /dist/js/chunk-2d0bd1e8.43168f2c.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0bd1e8"],{"2b46":function(e,l,a){"use strict";a.r(l);var n=function(){var e=this,l=e.$createElement,a=e._self._c||l;return a("div",[a("el-row",[a("h4",{staticStyle:{padding:"10px"}},[e._v("基础可选择")]),a("el-tree",{attrs:{props:e.props,load:e.loadNode,lazy:"","show-checkbox":""},on:{"check-change":e.handleCheckChange}})],1),a("el-row",[a("h4",{staticStyle:{padding:"10px"}},[e._v("懒加载")]),a("el-tree",{attrs:{props:e.props1,load:e.loadNode1,lazy:"","show-checkbox":""}})],1),a("el-row",[a("h4",{staticStyle:{padding:"10px"}},[e._v("默认选中")]),a("el-tree",{attrs:{data:e.data2,"show-checkbox":"","node-key":"id","default-expanded-keys":[2,3],"default-checked-keys":[5],props:e.defaultProps}})],1)],1)},o=[],d=(a("7f7f"),{data:function(){return{props:{label:"name",children:"zones"},props1:{label:"name",children:"zones",isLeaf:"leaf"},count:1,data2:[{id:1,label:"一级 1",children:[{id:4,label:"二级 1-1",children:[{id:9,label:"三级 1-1-1"},{id:10,label:"三级 1-1-2"}]}]},{id:2,label:"一级 2",children:[{id:5,label:"二级 2-1"},{id:6,label:"二级 2-2"}]},{id:3,label:"一级 3",children:[{id:7,label:"二级 3-1"},{id:8,label:"二级 3-2"}]}],defaultProps:{children:"children",label:"label"}}},methods:{handleCheckChange:function(e,l,a){console.log(e,l,a)},handleNodeClick:function(e){console.log(e)},loadNode1:function(e,l){return 0===e.level?l([{name:"region"}]):e.level>1?l([]):void setTimeout(function(){var e=[{name:"leaf",leaf:!0},{name:"zone"}];l(e)},500)},loadNode:function(e,l){var a,n=this;return 0===e.level?l([{name:"region1"},{name:"region2"}]):e.level>3?l([]):(a="region1"===e.data.name||"region2"!==e.data.name&&Math.random()>.5,void setTimeout(function(){var e;e=a?[{name:"zone"+n.count++},{name:"zone"+n.count++}]:[],l(e)},500))}}}),t=d,i=a("2877"),r=Object(i["a"])(t,n,o,!1,null,null,null);r.options.__file="tree2.vue";l["default"]=r.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-2d0cf140.c711a823.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0cf140"],{"61d3":function(l,e,a){"use strict";a.r(e);var t=function(){var l=this,e=l.$createElement,a=l._self._c||e;return a("div",[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:12}},[a("el-row",[a("el-col",{attrs:{span:24}},[a("h4",{staticStyle:{padding:"10px"}},[l._v("基本类型树")])]),a("el-col",{attrs:{span:20}},[a("el-tree",{attrs:{data:l.data,props:l.defaultProps},on:{"node-click":l.handleNodeClick}})],1)],1)],1),a("el-col",{attrs:{span:12}},[a("el-row",[a("el-col",{attrs:{span:24}},[a("h4",{staticStyle:{padding:"10px"}},[l._v("手风琴模式")])]),a("el-col",{attrs:{span:20}},[a("el-tree",{attrs:{data:l.data,props:l.defaultProps,accordion:""},on:{"node-click":l.handleNodeClick}})],1)],1)],1)],1)],1)},n=[],c=(a("cadf"),a("551c"),a("097d"),{data:function(){return{data:[{label:"一级 1",children:[{label:"二级 1-1",children:[{label:"三级 1-1-1"}]}]},{label:"一级 2",children:[{label:"二级 2-1",children:[{label:"三级 2-1-1"}]},{label:"二级 2-2",children:[{label:"三级 2-2-1"}]}]},{label:"一级 3",children:[{label:"二级 3-1",children:[{label:"三级 3-1-1"}]},{label:"二级 3-2",children:[{label:"三级 3-2-1"}]}]}],defaultProps:{children:"children",label:"label"}}},methods:{handleNodeClick:function(l){console.log(l)}}}),r=c,d=a("2877"),o=Object(d["a"])(r,t,n,!1,null,null,null);o.options.__file="tree1.vue";e["default"]=o.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-2d0dab14.3d2246d8.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0dab14"],{"6d4d":function(n,e,u){"use strict";u.r(e);var l,o,t=u("2877"),d={},p=Object(t["a"])(d,l,o,!1,null,null,null);p.options.__file="tree4.vue",e["default"]=p.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-2d22bf9c.8143898b.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d22bf9c"],{f0ea:function(e,n,u){"use strict";u.r(n);var l,o,t=u("2877"),c={},p=Object(t["a"])(c,l,o,!1,null,null,null);p.options.__file="tree5.vue",n["default"]=p.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-2d230500.93889c78.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d230500"],{ec6b:function(e,l,a){"use strict";a.r(l);var t=function(){var e=this,l=e.$createElement,a=e._self._c||l;return a("div",[a("div",{staticClass:"crumbs"},[a("el-breadcrumb",{attrs:{separator:"/"}},[a("el-breadcrumb-item",[a("i",{staticClass:"el-icon-lx-calendar"}),e._v(" 表单")]),a("el-breadcrumb-item",[e._v("基本表单")])],1)],1),a("div",{staticClass:"container"},[a("div",{staticClass:"form-box"},[a("el-form",{ref:"form",attrs:{model:e.form,"label-width":"80px"}},[a("el-form-item",{attrs:{label:"表单名称"}},[a("el-input",{model:{value:e.form.name,callback:function(l){e.$set(e.form,"name",l)},expression:"form.name"}})],1),a("el-form-item",{attrs:{label:"选择器"}},[a("el-select",{attrs:{placeholder:"请选择"},model:{value:e.form.region,callback:function(l){e.$set(e.form,"region",l)},expression:"form.region"}},[a("el-option",{key:"bbk",attrs:{label:"步步高",value:"bbk"}}),a("el-option",{key:"xtc",attrs:{label:"小天才",value:"xtc"}}),a("el-option",{key:"imoo",attrs:{label:"imoo",value:"imoo"}})],1)],1),a("el-form-item",{attrs:{label:"日期时间"}},[a("el-col",{attrs:{span:11}},[a("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"date",placeholder:"选择日期"},model:{value:e.form.date1,callback:function(l){e.$set(e.form,"date1",l)},expression:"form.date1"}})],1),a("el-col",{staticClass:"line",attrs:{span:2}},[e._v("-")]),a("el-col",{attrs:{span:11}},[a("el-time-picker",{staticStyle:{width:"100%"},attrs:{placeholder:"选择时间"},model:{value:e.form.date2,callback:function(l){e.$set(e.form,"date2",l)},expression:"form.date2"}})],1)],1),a("el-form-item",{attrs:{label:"城市级联"}},[a("el-cascader",{attrs:{options:e.options},model:{value:e.form.options,callback:function(l){e.$set(e.form,"options",l)},expression:"form.options"}})],1),a("el-form-item",{attrs:{label:"选择开关"}},[a("el-switch",{model:{value:e.form.delivery,callback:function(l){e.$set(e.form,"delivery",l)},expression:"form.delivery"}})],1),a("el-form-item",{attrs:{label:"多选框"}},[a("el-checkbox-group",{model:{value:e.form.type,callback:function(l){e.$set(e.form,"type",l)},expression:"form.type"}},[a("el-checkbox",{attrs:{label:"步步高",name:"type"}}),a("el-checkbox",{attrs:{label:"小天才",name:"type"}}),a("el-checkbox",{attrs:{label:"imoo",name:"type"}})],1)],1),a("el-form-item",{attrs:{label:"单选框"}},[a("el-radio-group",{model:{value:e.form.resource,callback:function(l){e.$set(e.form,"resource",l)},expression:"form.resource"}},[a("el-radio",{attrs:{label:"步步高"}}),a("el-radio",{attrs:{label:"小天才"}}),a("el-radio",{attrs:{label:"imoo"}})],1)],1),a("el-form-item",{attrs:{label:"文本框"}},[a("el-input",{attrs:{type:"textarea",rows:"5"},model:{value:e.form.desc,callback:function(l){e.$set(e.form,"desc",l)},expression:"form.desc"}})],1),a("el-form-item",[a("el-button",{attrs:{type:"primary"},on:{click:e.onSubmit}},[e._v("表单提交")]),a("el-button",[e._v("取消")])],1)],1)],1)])])},o=[],r={name:"baseform",data:function(){return{options:[{value:"guangdong",label:"广东省",children:[{value:"guangzhou",label:"广州市",children:[{value:"tianhe",label:"天河区"},{value:"haizhu",label:"海珠区"}]},{value:"dongguan",label:"东莞市",children:[{value:"changan",label:"长安镇"},{value:"humen",label:"虎门镇"}]}]},{value:"hunan",label:"湖南省",children:[{value:"changsha",label:"长沙市",children:[{value:"yuelu",label:"岳麓区"}]}]}],form:{name:"",region:"",date1:"",date2:"",delivery:!0,type:["步步高"],resource:"小天才",desc:"",options:[]}}},methods:{onSubmit:function(){this.$message.success("提交成功!")}}},s=r,i=a("2877"),n=Object(i["a"])(s,t,o,!1,null,null,null);n.options.__file="BaseForm.vue";l["default"]=n.exports}}]); -------------------------------------------------------------------------------- /dist/js/chunk-5c0d1206.cda24eaf.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5c0d1206"],{"0fc0":function(t,e,a){"use strict";var l=a("3e8a"),s=a.n(l);s.a},"3a5b":function(t,e,a){"use strict";a.r(e);var l=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{},[a("div",{staticClass:"crumbs"},[a("el-breadcrumb",{attrs:{separator:"/"}},[a("el-breadcrumb-item",[a("i",{staticClass:"el-icon-lx-copy"}),t._v(" tab选项卡")])],1)],1),a("div",{staticClass:"container"},[a("el-tabs",{model:{value:t.message,callback:function(e){t.message=e},expression:"message"}},[a("el-tab-pane",{attrs:{label:"未读消息("+t.unread.length+")",name:"first"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.unread,"show-header":!1}},[a("el-table-column",{scopedSlots:t._u([{key:"default",fn:function(e){return[a("span",{staticClass:"message-title"},[t._v(t._s(e.row.title))])]}}])}),a("el-table-column",{attrs:{prop:"date",width:"180"}}),a("el-table-column",{attrs:{width:"120"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{size:"small"},on:{click:function(a){t.handleRead(e.$index)}}},[t._v("标为已读")])]}}])})],1),a("div",{staticClass:"handle-row"},[a("el-button",{attrs:{type:"primary"}},[t._v("全部标为已读")])],1)],1),a("el-tab-pane",{attrs:{label:"已读消息("+t.read.length+")",name:"second"}},["second"===t.message?[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.read,"show-header":!1}},[a("el-table-column",{scopedSlots:t._u([{key:"default",fn:function(e){return[a("span",{staticClass:"message-title"},[t._v(t._s(e.row.title))])]}}])}),a("el-table-column",{attrs:{prop:"date",width:"150"}}),a("el-table-column",{attrs:{width:"120"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"danger"},on:{click:function(a){t.handleDel(e.$index)}}},[t._v("删除")])]}}])})],1),a("div",{staticClass:"handle-row"},[a("el-button",{attrs:{type:"danger"}},[t._v("删除全部")])],1)]:t._e()],2),a("el-tab-pane",{attrs:{label:"回收站("+t.recycle.length+")",name:"third"}},["third"===t.message?[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.recycle,"show-header":!1}},[a("el-table-column",{scopedSlots:t._u([{key:"default",fn:function(e){return[a("span",{staticClass:"message-title"},[t._v(t._s(e.row.title))])]}}])}),a("el-table-column",{attrs:{prop:"date",width:"150"}}),a("el-table-column",{attrs:{width:"120"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{on:{click:function(a){t.handleRestore(e.$index)}}},[t._v("还原")])]}}])})],1),a("div",{staticClass:"handle-row"},[a("el-button",{attrs:{type:"danger"}},[t._v("清空回收站")])],1)]:t._e()],2)],1)],1)])},s=[],n=(a("cadf"),a("551c"),a("097d"),{name:"tabs",data:function(){return{message:"first",showHeader:!1,unread:[{date:"2018-04-19 20:00:00",title:"【系统通知】该系统将于今晚凌晨2点到5点进行升级维护"},{date:"2018-04-19 21:00:00",title:"今晚12点整发大红包,先到先得"}],read:[{date:"2018-04-19 20:00:00",title:"【系统通知】该系统将于今晚凌晨2点到5点进行升级维护"}],recycle:[{date:"2018-04-19 20:00:00",title:"【系统通知】该系统将于今晚凌晨2点到5点进行升级维护"}]}},methods:{handleRead:function(t){var e=this.unread.splice(t,1);console.log(e),this.read=e.concat(this.read)},handleDel:function(t){var e=this.read.splice(t,1);this.recycle=e.concat(this.recycle)},handleRestore:function(t){var e=this.recycle.splice(t,1);this.read=e.concat(this.read)}},computed:{unreadNum:function(){return this.unread.length}}}),r=n,c=(a("0fc0"),a("2877")),i=Object(c["a"])(r,l,s,!1,null,null,null);i.options.__file="Tabs.vue";e["default"]=i.exports},"3e8a":function(t,e,a){}}]); -------------------------------------------------------------------------------- /dist/js/chunk-6a280086.23f171af.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6a280086"],{2147:function(t,s,a){"use strict";a.r(s);var n=function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("div",[n("el-row",[n("el-col",{attrs:{span:24}},[n("el-card",{staticClass:"mgb20",staticStyle:{height:"252px"},attrs:{shadow:"hover"}},[n("div",{staticClass:"user-info"},[n("img",{staticClass:"user-avator",attrs:{src:a("7159"),alt:""}}),n("div",{staticClass:"user-info-cont"},[n("div",{staticClass:"user-info-name"},[t._v(t._s(t.name))]),n("div",[t._v(t._s(t.role))])])]),n("div",{staticClass:"user-info-list"},[t._v("\n 上次登录时间:\n "),n("span",[t._v("2018-01-01")])]),n("div",{staticClass:"user-info-list"},[t._v("\n 上次登录地点:\n "),n("span",[t._v("东莞")])])])],1)],1)],1)},e=[],i=(a("7f7f"),a("cadf"),a("551c"),a("097d"),{name:"admin",data:function(){return{name:localStorage.getItem("ms_username")}},computed:{role:function(){return"admin"===this.name?"超级管理员":"普通用户"}}}),c=i,r=(a("970d"),a("2877")),o=Object(r["a"])(c,n,e,!1,null,"bc3861ce",null);o.options.__file="admin.vue";s["default"]=o.exports},"3fac":function(t,s,a){},7159:function(t,s,a){t.exports=a.p+"img/img.28e441c3.jpg"},"970d":function(t,s,a){"use strict";var n=a("3fac"),e=a.n(n);e.a}}]); -------------------------------------------------------------------------------- /dist/js/chunk-6d4d5a6c.38d11021.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6d4d5a6c"],{"024e":function(t,n,a){},"38d5":function(t,n,a){"use strict";a.r(n);var s=function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("div",[a("div",{staticClass:"crumbs"},[a("el-breadcrumb",{attrs:{separator:"/"}},[a("el-breadcrumb-item",[a("i",{staticClass:"el-icon-lx-warn"}),t._v(" 权限测试")])],1)],1),a("div",{staticClass:"container"},[a("h1",[t._v("管理员权限页面")]),a("p",[t._v("只有用 admin 账号登录的才拥有管理员权限,才能进到这个页面,其他账号想进来都会跳到403页面,重新用管理员账号登录才有权限。")]),a("p",[t._v("想尝试一下,请"),a("router-link",{staticClass:"logout",attrs:{to:"/login"}},[t._v("退出登录")]),t._v(",随便输入个账号名,再进来试试看。")],1)])])},e=[],i={data:function(){return{}}},r=i,c=(a("8992"),a("2877")),o=Object(c["a"])(r,s,e,!1,null,"52f76618",null);o.options.__file="Permission.vue";n["default"]=o.exports},8992:function(t,n,a){"use strict";var s=a("024e"),e=a.n(s);e.a}}]); -------------------------------------------------------------------------------- /dist/js/chunk-9e5595b2.b52df879.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-9e5595b2"],{"0290":function(e,r,t){"use strict";t.r(r);var s=function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"login-wrap"},[t("div",{staticClass:"ms-login"},[t("div",{staticClass:"ms-title"},[e._v("后台管理系统")]),t("el-form",{ref:"ruleForm",staticClass:"ms-content",attrs:{model:e.ruleForm,rules:e.rules,"label-width":"0px"}},[t("el-form-item",{attrs:{prop:"username"}},[t("el-input",{attrs:{placeholder:"username"},model:{value:e.ruleForm.username,callback:function(r){e.$set(e.ruleForm,"username",r)},expression:"ruleForm.username"}},[t("el-button",{attrs:{slot:"prepend",icon:"el-icon-lx-people"},slot:"prepend"})],1)],1),t("el-form-item",{attrs:{prop:"password"}},[t("el-input",{attrs:{type:"password",placeholder:"password"},nativeOn:{keyup:function(r){if(!("button"in r)&&e._k(r.keyCode,"enter",13,r.key,"Enter"))return null;e.submitForm("ruleForm")}},model:{value:e.ruleForm.password,callback:function(r){e.$set(e.ruleForm,"password",r)},expression:"ruleForm.password"}},[t("el-button",{attrs:{slot:"prepend",icon:"el-icon-lx-lock"},slot:"prepend"})],1)],1),t("div",{staticClass:"login-btn"},[t("el-button",{attrs:{type:"primary"},on:{click:function(r){e.submitForm("ruleForm")}}},[e._v("登录")])],1),t("p",{staticClass:"login-tips"},[e._v("Tips : 用户名和密码随便填随便填。")])],1)],1)])},o=[],n=(t("cadf"),t("551c"),t("097d"),{data:function(){return{ruleForm:{username:"admin",password:"123123"},rules:{username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]}}},methods:{submitForm:function(e){var r=this;this.$refs[e].validate(function(e){if(!e)return console.log("error submit!!"),!1;localStorage.setItem("ms_username",r.ruleForm.username),r.$router.push("/")})}}}),l=n,a=(t("8c55"),t("2877")),u=Object(a["a"])(l,s,o,!1,null,"4c1a1c62",null);u.options.__file="Login.vue";r["default"]=u.exports},"2d1a":function(e,r,t){},"8c55":function(e,r,t){"use strict";var s=t("2d1a"),o=t.n(s);o.a}}]); -------------------------------------------------------------------------------- /dist/js/chunk-d5224c00.9b03eb4e.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-d5224c00"],{"58a8":function(t,e,r){"use strict";var s=r("c65b"),a=r.n(s);a.a},"9ebe":function(t,e,r){"use strict";r.r(e);var s=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"error-page"},[t._m(0),r("div",{staticClass:"error-desc"},[t._v("啊哦~ 你没有权限访问该页面哦")]),r("div",{staticClass:"error-handle"},[r("router-link",{attrs:{to:"/"}},[r("el-button",{attrs:{type:"primary",size:"large"}},[t._v("返回首页")])],1),r("el-button",{staticClass:"error-btn",attrs:{type:"primary",size:"large"},on:{click:t.goBack}},[t._v("返回上一页")])],1)])},a=[function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"error-code"},[t._v("4"),r("span",[t._v("0")]),t._v("3")])}],n={methods:{goBack:function(){this.$router.go(-1)}}},c=n,i=(r("58a8"),r("2877")),o=Object(i["a"])(c,s,a,!1,null,"2e353fab",null);o.options.__file="403.vue";e["default"]=o.exports},c65b:function(t,e,r){}}]); -------------------------------------------------------------------------------- /dist/js/chunk-deb1ce48.6bd31bc3.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-deb1ce48"],{"3acc":function(e,t,a){},"4cce":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"crumbs"},[a("el-breadcrumb",{attrs:{separator:"/"}},[a("el-breadcrumb-item",[e._v("用户管理")])],1)],1),a("div",{staticClass:"container"},[a("div",{staticClass:"handle-box"},[a("el-button",{staticClass:"handle-del mr10",attrs:{type:"primary",icon:"delete",disabled:0===this.delData.length},on:{click:e.delAll}},[e._v("批量删除")]),a("el-input",{staticClass:"handle-input mr10",attrs:{placeholder:"筛选关键词"},model:{value:e.searchInfo,callback:function(t){e.searchInfo=t},expression:"searchInfo"}}),a("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.getUsers}},[e._v("搜索")]),a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.addUserVisible=!0}}},[e._v("新建用户")])],1),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.isShowloading,expression:"isShowloading"}],ref:"multipleTable",staticClass:"table",attrs:{data:e.users,border:""},on:{"selection-change":e.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"55",align:"center"}}),a("el-table-column",{attrs:{prop:"orderNum",label:"序号",sortable:"",width:"150"}}),a("el-table-column",{attrs:{prop:"username",label:"用户名",width:"120"}}),a("el-table-column",{attrs:{prop:"rolename",label:"角色名称"}}),a("el-table-column",{attrs:{prop:"isable",label:"状态",formatter:e.formatterState}}),a("el-table-column",{attrs:{prop:"loginTime",label:"登录次数"}}),a("el-table-column",{attrs:{prop:"loginDate",label:"登录时间"}}),a("el-table-column",{attrs:{prop:"creater",label:"创建者"}}),a("el-table-column",{attrs:{label:"操作",width:"180",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button",{attrs:{type:"text",icon:"el-icon-edit"},on:{click:function(a){e.handleEdit(t.$index,t.row)}}},[e._v("编辑")]),a("el-button",{staticClass:"red",attrs:{type:"text",icon:"el-icon-delete"},on:{click:function(a){e.handleDelete(t.$index,t.row)}}},[e._v("删除")])]}}])})],1),a("div",{staticClass:"pagination"},[a("el-pagination",{attrs:{background:"",layout:"prev, pager, next",total:e.total,"page-size":e.pageSize},on:{"current-change":e.currentChange}})],1),a("el-dialog",{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],ref:"editUserForm",attrs:{title:"修改信息",visible:e.editUserVisible,"before-close":e.confirmClose},on:{"update:visible":function(t){e.editUserVisible=t}}},[a("el-form",{ref:"editUserForm",attrs:{model:e.userForm,rules:e.editRule}},[a("el-form-item",{attrs:{label:"用户名","label-width":e.formLabelWidth,prop:"username"}},[a("el-input",{attrs:{autocomplete:"off"},model:{value:e.userForm.username,callback:function(t){e.$set(e.userForm,"username",t)},expression:"userForm.username"}})],1),a("el-form-item",{attrs:{label:"状态","label-width":e.formLabelWidth}},[a("el-radio",{attrs:{label:"1"},model:{value:e.userForm.isable,callback:function(t){e.$set(e.userForm,"isable",t)},expression:"userForm.isable"}},[e._v("正常")]),a("el-radio",{attrs:{label:"0"},model:{value:e.userForm.isable,callback:function(t){e.$set(e.userForm,"isable",t)},expression:"userForm.isable"}},[e._v("禁用")])],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.editUserVisible=!1}}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},nativeOn:{click:function(t){return e.editUser(t)}}},[e._v("确 定")])],1)],1),a("el-dialog",{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],ref:"addUserForm",attrs:{title:"新建用户",visible:e.addUserVisible},on:{"update:visible":function(t){e.addUserVisible=t}}},[a("el-form",{attrs:{model:e.addUserForm,rules:e.addUserRule}},[a("el-form-item",{attrs:{label:"用户名","label-width":e.formLabelWidth,prop:"username"}},[a("el-input",{attrs:{autocomplete:"off"},model:{value:e.addUserForm.username,callback:function(t){e.$set(e.addUserForm,"username",t)},expression:"addUserForm.username"}})],1),a("el-form-item",{attrs:{label:"角色名称","label-width":e.formLabelWidth,prop:"rolename"}},[a("el-select",{model:{value:e.addUserForm.rolename,callback:function(t){e.$set(e.addUserForm,"rolename",t)},expression:"addUserForm.rolename"}},[a("el-option",{attrs:{label:"admin",value:"admin"}}),a("el-option",{attrs:{label:"管理员",value:"管理员"}}),a("el-option",{attrs:{label:"超级管理员",value:"超级管理员"}})],1)],1),a("el-form-item",{attrs:{label:"状态","label-width":e.formLabelWidth}},[a("el-radio",{attrs:{label:"1"},model:{value:e.addUserForm.isable,callback:function(t){e.$set(e.addUserForm,"isable",t)},expression:"addUserForm.isable"}},[e._v("正常")]),a("el-radio",{attrs:{label:"0"},model:{value:e.addUserForm.isable,callback:function(t){e.$set(e.addUserForm,"isable",t)},expression:"addUserForm.isable"}},[e._v("禁用")])],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.addUserVisible=!1}}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:e.saveUser}},[e._v("确 定")])],1)],1)],1)])},s=[],n=(a("d92a"),a("6d67"),a("6b54"),a("87b3"),a("5176")),l=a.n(n),i=(a("4f37"),a("cadf"),a("551c"),a("097d"),a("4ec3")),o={data:function(){return{url:"",searchInfo:"",users:[],total:0,pageNo:1,pageSize:20,isShowloading:!1,delData:[],editUserVisible:!1,addUserVisible:!1,userForm:{},addUserForm:{username:"",rolename:"",isable:"0"},addUserRule:{username:[{required:!0,message:"请输入用户名",trigger:"blur"}],rolename:[{required:!0,message:"请选择角色",trigger:"change"}]},editRule:{username:[{required:!0,message:"请输入姓名",trigger:"blur"}]},formLabelWidth:"120px"}},methods:{formatterState:function(e,t){return"1"==e.isable?"正常":"禁用"},getUsers:function(){var e=this;this.isShowloading=!0;var t={searchInfo:this.searchInfo.trim(),page:this.pageNo};Object(i["f"])(t).then(function(t){e.users=t.data.users,e.total=t.data.total,e.isShowloading=!1})},currentChange:function(e){this.pageNo=e,this.getUsers()},handleSelectionChange:function(e){this.delData=e},saveUser:function(){var e=this,t=l()({},this.addUserForm);t.username=t.username.trim(),Object(i["a"])(t).then(function(t){e.$message({message:"添加成功",type:"success"}),e.addUserVisible=!1,e.addUserForm={},e.getUsers()})},delAll:function(){var e=this;this.$confirm("确认删除该用户吗?","提示",{type:"warning"}).then(function(){e.isShowloading=!0;var t=e.delData.map(function(e){return e.userid}).toString(),a={delIds:t};Object(i["b"])(a).then(function(t){e.isShowloading=!1,e.$message({message:"删除成功",type:"success"}),e.getUsers()})})},handleEdit:function(e,t){this.editUserVisible=!0,this.userForm=l()({},t)},handleDelete:function(e,t){var a=this,r={userid:t.userid};this.$confirm("确认删除该用户?","提示",{type:"warning"}).then(function(){Object(i["c"])(r).then(function(e){a.$message({type:"success",message:"删除成功"}),a.getUsers()})})},editUser:function(){var e=this;this.$refs["editUserForm"].validate(function(t){if(t){var a=e.userForm;Object(i["d"])(a).then(function(t){e.$message({type:"success",message:t.data.msg}),e.getUsers(),e.editUserVisible=!1,e.userForm={}}).bind(e)}})},confirmClose:function(e){var t=this;this.$confirm("确认关闭将丢失已编辑内容?","提示",{type:"warning"}).then(function(){t.userForm={},e()})},testFn:function(){this.url="/ms/table/list",this.$axios.get(this.url).then(function(e){console.log(e)}),Object(i["g"])().then(function(e){console.log(e)})}},mounted:function(){this.testFn()}},c=o,u=(a("c3ff"),a("2877")),d=Object(u["a"])(c,r,s,!1,null,"354bf639",null);d.options.__file="usermanager.vue";t["default"]=d.exports},"4ec3":function(e,t,a){"use strict";a.d(t,"f",function(){return l}),a.d(t,"e",function(){return i}),a.d(t,"b",function(){return o}),a.d(t,"d",function(){return c}),a.d(t,"a",function(){return u}),a.d(t,"c",function(){return d}),a.d(t,"g",function(){return m});var r=a("bc3a"),s=a.n(r),n="",l=function(e){return s.a.get("".concat(n,"/user/list"),{params:e})},i=function(){return s.a.get("../../menu.json")},o=function(e){return s.a.get("user/deletUsers",{params:e})},c=function(e){return s.a.get("".concat(n,"/user/editUser"),{params:e})},u=function(e){return s.a.get("".concat(n,"/user/addUser"),{params:e})},d=function(e){return s.a.get("".concat(n,"/user/DeleteOne"),{params:e})},m=function(){return s.a.get("/testApi/getkeywhereisddata?CITY_NAME=全省&S_id=B08I00136&callback=")}},5176:function(e,t,a){e.exports=a("51b6")},c3ff:function(e,t,a){"use strict";var r=a("3acc"),s=a.n(r);s.a}}]); -------------------------------------------------------------------------------- /dist/js/chunk-e1f9e4d0.695b605b.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-e1f9e4d0"],{"0c3b":function(t,i,a){"use strict";a.r(i);var e=function(){var t=this,i=t.$createElement,a=t._self._c||i;return a("section",{staticClass:"main"},[a("div",{staticClass:"crumbs"},[a("el-breadcrumb",{attrs:{separator:"/"}},[a("el-breadcrumb-item",[a("i",{staticClass:"el-icon-rank"}),t._v(" 拖拽组件")]),a("el-breadcrumb-item",[t._v("拖拽弹框")])],1)],1),a("div",{staticClass:"container"},[a("p",[t._v("通过指令 v-dialogDrag 使 Dialog 对话框具有可拖拽的功能。")]),a("br"),a("el-button",{attrs:{type:"primary"},on:{click:function(i){t.visible=!0}}},[t._v("点我弹框")])],1),a("el-dialog",{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{title:"拖拽弹框",center:"",visible:t.visible,width:"30%"},on:{"update:visible":function(i){t.visible=i}}},[t._v("\n 我是一个可以拖拽的对话框!\n "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(i){t.visible=!1}}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:function(i){t.visible=!1}}},[t._v("确 定")])],1)])],1)},n=[],s=(a("cadf"),a("551c"),a("097d"),{data:function(){return{visible:!1}}}),l=s,r=(a("f88d"),a("2877")),o=Object(r["a"])(l,e,n,!1,null,null,null);o.options.__file="DragDialog.vue";i["default"]=o.exports},a099:function(t,i,a){},f88d:function(t,i,a){"use strict";var e=a("a099"),n=a.n(e);n.a}}]); -------------------------------------------------------------------------------- /dist/js/chunk-f1225e32.0b53a60a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f1225e32"],{"0e2e":function(t,e,r){"use strict";var s=r("25bb"),a=r.n(s);a.a},"25bb":function(t,e,r){},"5b5e":function(t,e,r){"use strict";r.r(e);var s=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"error-page"},[t._m(0),r("div",{staticClass:"error-desc"},[t._v("啊哦~ 你所访问的页面不存在")]),r("div",{staticClass:"error-handle"},[r("router-link",{attrs:{to:"/"}},[r("el-button",{attrs:{type:"primary",size:"large"}},[t._v("返回首页")])],1),r("el-button",{staticClass:"error-btn",attrs:{type:"primary",size:"large"},on:{click:t.goBack}},[t._v("返回上一页")])],1)])},a=[function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"error-code"},[t._v("4"),r("span",[t._v("0")]),t._v("4")])}],n={methods:{goBack:function(){this.$router.go(-1)}}},i=n,o=(r("0e2e"),r("2877")),c=Object(o["a"])(i,s,a,!1,null,"cb97bba6",null);c.options.__file="404.vue";e["default"]=c.exports}}]); -------------------------------------------------------------------------------- /dist/vuetable.json: -------------------------------------------------------------------------------- 1 | { 2 | "list": [{ 3 | "date": "1997-11-11", 4 | "name": "林丽", 5 | "address": "吉林省 辽源市 龙山区" 6 | }, { 7 | "date": "1987-09-24", 8 | "name": "文敏", 9 | "address": "江西省 萍乡市 芦溪县" 10 | }, { 11 | "date": "1996-08-08", 12 | "name": "杨秀兰", 13 | "address": "黑龙江省 黑河市 五大连池市" 14 | }, { 15 | "date": "1978-06-18", 16 | "name": "魏强", 17 | "address": "广东省 韶关市 始兴县" 18 | }, { 19 | "date": "1977-07-09", 20 | "name": "石秀兰", 21 | "address": "江苏省 宿迁市 宿豫区" 22 | }, { 23 | "date": "1994-09-20", 24 | "name": "朱洋", 25 | "address": "海外 海外 -" 26 | }, { 27 | "date": "1980-01-22", 28 | "name": "傅敏", 29 | "address": "海外 海外 -" 30 | }, { 31 | "date": "1985-10-10", 32 | "name": "毛明", 33 | "address": "内蒙古自治区 包头市 九原区" 34 | }, { 35 | "date": "1975-09-08", 36 | "name": "何静", 37 | "address": "西藏自治区 阿里地区 普兰县" 38 | }, { 39 | "date": "1970-06-07", 40 | "name": "郭秀英", 41 | "address": "四川省 巴中市 恩阳区" 42 | }] 43 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-manage-system", 3 | "version": "4.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "npm run serve", 7 | "serve": "vue-cli-service serve", 8 | "build": "vue-cli-service build" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.18.0", 12 | "axios-mock-adapter": "^1.16.0", 13 | "babel-polyfill": "^6.26.0", 14 | "echarts": "^4.2.1", 15 | "element-ui": "^2.4.11", 16 | "mavon-editor": "^2.6.17", 17 | "mockjs": "^1.0.1-beta3", 18 | "vue": "^2.5.21", 19 | "vue-cropperjs": "^3.0.0", 20 | "vue-quill-editor": "^3.0.6", 21 | "vue-router": "^3.0.1", 22 | "vue-schart": "^1.0.0", 23 | "vuedraggable": "^2.17.0", 24 | "vuex": "^3.1.0" 25 | }, 26 | "devDependencies": { 27 | "@vue/cli-plugin-babel": "^3.2.0", 28 | "@vue/cli-service": "^3.2.0", 29 | "vue-template-compiler": "^2.5.21" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | }, 5 | env:{} 6 | } 7 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue-element-admin-ui 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public/vuetable.json: -------------------------------------------------------------------------------- 1 | { 2 | "list": [{ 3 | "date": "1997-11-11", 4 | "name": "林丽", 5 | "address": "吉林省 辽源市 龙山区" 6 | }, { 7 | "date": "1987-09-24", 8 | "name": "文敏", 9 | "address": "江西省 萍乡市 芦溪县" 10 | }, { 11 | "date": "1996-08-08", 12 | "name": "杨秀兰", 13 | "address": "黑龙江省 黑河市 五大连池市" 14 | }, { 15 | "date": "1978-06-18", 16 | "name": "魏强", 17 | "address": "广东省 韶关市 始兴县" 18 | }, { 19 | "date": "1977-07-09", 20 | "name": "石秀兰", 21 | "address": "江苏省 宿迁市 宿豫区" 22 | }, { 23 | "date": "1994-09-20", 24 | "name": "朱洋", 25 | "address": "海外 海外 -" 26 | }, { 27 | "date": "1980-01-22", 28 | "name": "傅敏", 29 | "address": "海外 海外 -" 30 | }, { 31 | "date": "1985-10-10", 32 | "name": "毛明", 33 | "address": "内蒙古自治区 包头市 九原区" 34 | }, { 35 | "date": "1975-09-08", 36 | "name": "何静", 37 | "address": "西藏自治区 阿里地区 普兰县" 38 | }, { 39 | "date": "1970-06-07", 40 | "name": "郭秀英", 41 | "address": "四川省 巴中市 恩阳区" 42 | }] 43 | } -------------------------------------------------------------------------------- /screenshots/wms1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/screenshots/wms1.png -------------------------------------------------------------------------------- /screenshots/wms3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/screenshots/wms3.png -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/api/api.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | let baseUrl = ''; 3 | export const getUserList = params=>{ 4 | return axios.get(`${baseUrl}/user/list`,{params:params}) 5 | } 6 | export const getSysmenu = ()=>{ 7 | return axios.get('../../menu.json') 8 | } 9 | export const getDeleUser = params=>{ 10 | return axios.get('user/deletUsers',{params:params}); 11 | } 12 | export const getEditUser = params=>{ 13 | return axios.get(`${baseUrl}/user/editUser`,{ 14 | params:params 15 | }) 16 | } 17 | export const getAddUser = params=>{ 18 | return axios.get(`${baseUrl}/user/addUser`,{ 19 | params:params 20 | }) 21 | } 22 | export const getDeleteOne = params=>{ 23 | return axios.get(`${baseUrl}/user/DeleteOne`,{params:params}) 24 | } 25 | export const testApi = ()=>{ 26 | return axios.get("/testApi/getkeywhereisddata?CITY_NAME=全省&S_id=B08I00136&callback=") 27 | } -------------------------------------------------------------------------------- /src/assets/css/color-dark.css: -------------------------------------------------------------------------------- 1 | .header{ 2 | background-color: #242f42; 3 | } 4 | .login-wrap{ 5 | background: #324157; 6 | } 7 | .plugins-tips{ 8 | background: #eef1f6; 9 | } 10 | .plugins-tips a{ 11 | color: #20a0ff; 12 | } 13 | .el-upload--text em { 14 | color: #20a0ff; 15 | } 16 | .pure-button{ 17 | background: #20a0ff; 18 | } 19 | .tags-li.active { 20 | border: 1px solid #409EFF; 21 | background-color: #409EFF; 22 | } 23 | .message-title{ 24 | color: #20a0ff; 25 | } 26 | .collapse-btn:hover{ 27 | background: rgb(40,52,70); 28 | } -------------------------------------------------------------------------------- /src/assets/css/icon.css: -------------------------------------------------------------------------------- 1 | 2 | [class*=" el-icon-lx"], [class^=el-icon-lx] { 3 | font-family: lx-iconfont!important; 4 | } -------------------------------------------------------------------------------- /src/assets/css/main.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | html, 7 | body, 8 | #app, 9 | .wrapper { 10 | width: 100%; 11 | height: 100%; 12 | overflow: hidden; 13 | } 14 | 15 | body { 16 | font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; 17 | } 18 | 19 | a { 20 | text-decoration: none 21 | } 22 | 23 | 24 | .content-box { 25 | position: absolute; 26 | left: 250px; 27 | right: 0; 28 | top: 70px; 29 | bottom: 0; 30 | padding-bottom: 30px; 31 | -webkit-transition: left .3s ease-in-out; 32 | transition: left .3s ease-in-out; 33 | background: #f0f0f0; 34 | } 35 | 36 | .content { 37 | width: auto; 38 | height: 100%; 39 | padding: 10px; 40 | overflow-y: scroll; 41 | box-sizing: border-box; 42 | } 43 | 44 | .content-collapse { 45 | left: 65px; 46 | } 47 | 48 | .container { 49 | padding: 30px; 50 | background: #fff; 51 | border: 1px solid #ddd; 52 | border-radius: 5px; 53 | } 54 | 55 | .crumbs { 56 | margin: 10px 0; 57 | } 58 | 59 | .pagination { 60 | margin: 20px 0; 61 | text-align: right; 62 | } 63 | 64 | .plugins-tips { 65 | padding: 20px 10px; 66 | margin-bottom: 20px; 67 | } 68 | 69 | .el-button+.el-tooltip { 70 | margin-left: 10px; 71 | } 72 | 73 | .el-table tr:hover { 74 | background: #f6faff; 75 | } 76 | 77 | .mgb20 { 78 | margin-bottom: 20px; 79 | } 80 | 81 | .move-enter-active, 82 | .move-leave-active { 83 | transition: opacity .5s; 84 | } 85 | 86 | .move-enter, 87 | .move-leave { 88 | opacity: 0; 89 | } 90 | 91 | /*BaseForm*/ 92 | 93 | .form-box { 94 | width: 600px; 95 | } 96 | 97 | .form-box .line { 98 | text-align: center; 99 | } 100 | 101 | .el-time-panel__content::after, 102 | .el-time-panel__content::before { 103 | margin-top: -7px; 104 | } 105 | 106 | .el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { 107 | padding-bottom: 0; 108 | } 109 | 110 | /*Upload*/ 111 | 112 | .pure-button { 113 | width: 150px; 114 | height: 40px; 115 | line-height: 40px; 116 | text-align: center; 117 | color: #fff; 118 | border-radius: 3px; 119 | } 120 | 121 | .g-core-image-corp-container .info-aside { 122 | height: 45px; 123 | } 124 | 125 | .el-upload--text { 126 | background-color: #fff; 127 | border: 1px dashed #d9d9d9; 128 | border-radius: 6px; 129 | box-sizing: border-box; 130 | width: 360px; 131 | height: 180px; 132 | text-align: center; 133 | cursor: pointer; 134 | position: relative; 135 | overflow: hidden; 136 | } 137 | 138 | .el-upload--text .el-icon-upload { 139 | font-size: 67px; 140 | color: #97a8be; 141 | margin: 40px 0 16px; 142 | line-height: 50px; 143 | } 144 | 145 | .el-upload--text { 146 | color: #97a8be; 147 | font-size: 14px; 148 | text-align: center; 149 | } 150 | 151 | .el-upload--text em { 152 | font-style: normal; 153 | } 154 | 155 | /*VueEditor*/ 156 | 157 | .ql-container { 158 | min-height: 400px; 159 | } 160 | 161 | .ql-snow .ql-tooltip { 162 | transform: translateX(117.5px) translateY(10px) !important; 163 | } 164 | 165 | .editor-btn { 166 | margin-top: 20px; 167 | } 168 | .el-button.el-is-disabled{ 169 | color: #bfcbd9; 170 | cursor: not-allowed; 171 | background-image: none; 172 | background-color: #eef1f6; 173 | border-color: #d1dbe5; 174 | } 175 | 176 | /*markdown*/ 177 | 178 | .v-note-wrapper .v-note-panel { 179 | min-height: 500px; 180 | } 181 | -------------------------------------------------------------------------------- /src/assets/css/theme-green/color-green.css: -------------------------------------------------------------------------------- 1 | .header{ 2 | background-color: #07c4a8; 3 | } 4 | .login-wrap{ 5 | background: rgba(56, 157, 170, 0.82);; 6 | } 7 | .plugins-tips{ 8 | background: #f2f2f2; 9 | } 10 | .plugins-tips a{ 11 | color: #009688; 12 | } 13 | .el-upload--text em { 14 | color: #009688; 15 | } 16 | .pure-button{ 17 | background: #009688; 18 | } 19 | .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus, .pagination > .active > span, .pagination > .active > span:hover, .pagination > .active > span:focus { 20 | background-color: #009688 !important; 21 | border-color: #009688 !important; 22 | } 23 | .tags-li.active { 24 | border: 1px solid #009688; 25 | background-color: #009688; 26 | } 27 | .collapse-btn:hover{ 28 | background: #009688; 29 | } -------------------------------------------------------------------------------- /src/assets/css/theme-green/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/assets/css/theme-green/fonts/element-icons.ttf -------------------------------------------------------------------------------- /src/assets/css/theme-green/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/assets/css/theme-green/fonts/element-icons.woff -------------------------------------------------------------------------------- /src/assets/img/img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/assets/img/img.jpg -------------------------------------------------------------------------------- /src/assets/img/login-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/assets/img/login-bg.jpg -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/vuetable.json: -------------------------------------------------------------------------------- 1 | { 2 | "list": [{ 3 | "date": "1997-11-11", 4 | "name": "林丽", 5 | "address": "吉林省 辽源市 龙山区" 6 | }, { 7 | "date": "1987-09-24", 8 | "name": "文敏", 9 | "address": "江西省 萍乡市 芦溪县" 10 | }, { 11 | "date": "1996-08-08", 12 | "name": "杨秀兰", 13 | "address": "黑龙江省 黑河市 五大连池市" 14 | }, { 15 | "date": "1978-06-18", 16 | "name": "魏强", 17 | "address": "广东省 韶关市 始兴县" 18 | }, { 19 | "date": "1977-07-09", 20 | "name": "石秀兰", 21 | "address": "江苏省 宿迁市 宿豫区" 22 | }, { 23 | "date": "1994-09-20", 24 | "name": "朱洋", 25 | "address": "海外 海外 -" 26 | }, { 27 | "date": "1980-01-22", 28 | "name": "傅敏", 29 | "address": "海外 海外 -" 30 | }, { 31 | "date": "1985-10-10", 32 | "name": "毛明", 33 | "address": "内蒙古自治区 包头市 九原区" 34 | }, { 35 | "date": "1975-09-08", 36 | "name": "何静", 37 | "address": "西藏自治区 阿里地区 普兰县" 38 | }, { 39 | "date": "1970-06-07", 40 | "name": "郭秀英", 41 | "address": "四川省 巴中市 恩阳区" 42 | }] 43 | } -------------------------------------------------------------------------------- /src/components/common/Header.vue: -------------------------------------------------------------------------------- 1 | 48 | 127 | 207 | -------------------------------------------------------------------------------- /src/components/common/Home.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 97 | -------------------------------------------------------------------------------- /src/components/common/Sidebar.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | 212 | 213 | 232 | -------------------------------------------------------------------------------- /src/components/common/Tags.vue: -------------------------------------------------------------------------------- 1 | 24 | 111 | 112 | 113 | 189 | -------------------------------------------------------------------------------- /src/components/common/bus.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | 3 | // 使用 Event Bus 4 | const bus = new Vue(); 5 | 6 | export default bus; -------------------------------------------------------------------------------- /src/components/common/directives.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | 3 | // v-dialogDrag: 弹窗拖拽属性 4 | Vue.directive('dialogDrag', { 5 | bind(el, binding, vnode, oldVnode) { 6 | const dialogHeaderEl = el.querySelector('.el-dialog__header'); 7 | const dragDom = el.querySelector('.el-dialog'); 8 | 9 | dialogHeaderEl.style.cssText += ';cursor:move;' 10 | dragDom.style.cssText += ';top:0px;' 11 | 12 | // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null); 13 | const sty = (() => { 14 | if (window.document.currentStyle) { 15 | return (dom, attr) => dom.currentStyle[attr]; 16 | } else { 17 | return (dom, attr) => getComputedStyle(dom, false)[attr]; 18 | } 19 | })() 20 | 21 | dialogHeaderEl.onmousedown = (e) => { 22 | // 鼠标按下,计算当前元素距离可视区的距离 23 | const disX = e.clientX - dialogHeaderEl.offsetLeft; 24 | const disY = e.clientY - dialogHeaderEl.offsetTop; 25 | 26 | const screenWidth = document.body.clientWidth; // body当前宽度 27 | const screenHeight = document.documentElement.clientHeight; // 可见区域高度(应为body高度,可某些环境下无法获取) 28 | 29 | const dragDomWidth = dragDom.offsetWidth; // 对话框宽度 30 | const dragDomheight = dragDom.offsetHeight; // 对话框高度 31 | 32 | const minDragDomLeft = dragDom.offsetLeft; 33 | const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth; 34 | 35 | const minDragDomTop = dragDom.offsetTop; 36 | const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight; 37 | 38 | 39 | // 获取到的值带px 正则匹配替换 40 | let styL = sty(dragDom, 'left'); 41 | let styT = sty(dragDom, 'top'); 42 | 43 | // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px 44 | if (styL.includes('%')) { 45 | styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100); 46 | styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100); 47 | } else { 48 | styL = +styL.replace(/\px/g, ''); 49 | styT = +styT.replace(/\px/g, ''); 50 | }; 51 | 52 | document.onmousemove = function (e) { 53 | // 通过事件委托,计算移动的距离 54 | let left = e.clientX - disX; 55 | let top = e.clientY - disY; 56 | 57 | // 边界处理 58 | if (-(left) > minDragDomLeft) { 59 | left = -(minDragDomLeft); 60 | } else if (left > maxDragDomLeft) { 61 | left = maxDragDomLeft; 62 | } 63 | 64 | if (-(top) > minDragDomTop) { 65 | top = -(minDragDomTop); 66 | } else if (top > maxDragDomTop) { 67 | top = maxDragDomTop; 68 | } 69 | 70 | // 移动当前元素 71 | dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`; 72 | }; 73 | 74 | document.onmouseup = function (e) { 75 | document.onmousemove = null; 76 | document.onmouseup = null; 77 | }; 78 | } 79 | } 80 | }) 81 | -------------------------------------------------------------------------------- /src/components/page/403.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 23 | 24 | 25 | 57 | -------------------------------------------------------------------------------- /src/components/page/404.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 23 | 24 | 25 | 57 | -------------------------------------------------------------------------------- /src/components/page/BaseCharts.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 90 | 91 | -------------------------------------------------------------------------------- /src/components/page/BaseForm.vue: -------------------------------------------------------------------------------- 1 | 64 | 65 | -------------------------------------------------------------------------------- /src/components/page/BaseTable.vue: -------------------------------------------------------------------------------- 1 | 69 | 70 | 187 | 188 | 216 | -------------------------------------------------------------------------------- /src/components/page/DragDialog.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 33 | 34 | 37 | -------------------------------------------------------------------------------- /src/components/page/DragList.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 118 | 119 | 175 | -------------------------------------------------------------------------------- /src/components/page/Icon.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 186 | 187 | -------------------------------------------------------------------------------- /src/components/page/Login.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 58 | 59 | -------------------------------------------------------------------------------- /src/components/page/Markdown.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 63 | -------------------------------------------------------------------------------- /src/components/page/Permission.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /src/components/page/Tabs.vue: -------------------------------------------------------------------------------- 1 | 72 | 73 | 120 | 121 | 129 | 130 | -------------------------------------------------------------------------------- /src/components/page/Upload.vue: -------------------------------------------------------------------------------- 1 | 46 | 47 | 99 | 100 | -------------------------------------------------------------------------------- /src/components/page/VueEditor.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 49 | -------------------------------------------------------------------------------- /src/components/page/admin.vue: -------------------------------------------------------------------------------- 1 | 26 | 41 | 42 | 152 | -------------------------------------------------------------------------------- /src/components/page/sysmanager/usermanager.vue: -------------------------------------------------------------------------------- 1 | 110 | 281 | 309 | 310 | -------------------------------------------------------------------------------- /src/components/page/tree1.vue: -------------------------------------------------------------------------------- 1 | 2 | 28 | -------------------------------------------------------------------------------- /src/components/page/tree2.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/components/page/tree3.vue: -------------------------------------------------------------------------------- 1 | 2 | 60 | 237 | 238 | -------------------------------------------------------------------------------- /src/components/page/tree4.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/components/page/tree4.vue -------------------------------------------------------------------------------- /src/components/page/tree5.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Angelasp/vue-element-admin/908a0b6ac98be1d8ef8a8c38be8511047f19d9c2/src/components/page/tree5.vue -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import axios from 'axios'; 5 | import ElementUI from 'element-ui'; 6 | //import 'element-ui/lib/theme-chalk/index.css'; // 默认主题 7 | import './assets/css/theme-green/index.css'; // 浅绿色主题 8 | import './assets/css/icon.css'; 9 | import './components/common/directives'; 10 | import "babel-polyfill"; 11 | import store from './store' 12 | ////import Mock from './mock/mock' 13 | Vue.config.productionTip = false 14 | Vue.use(ElementUI, { 15 | size: 'small' 16 | }); 17 | Vue.prototype.$axios = axios; 18 | //Mock.bootstrap(); 19 | //使用钩子函数对路由进行权限跳转 20 | router.beforeEach((to, from, next) => { 21 | const role = localStorage.getItem('ms_username'); 22 | if (!role && to.path !== '/login') { 23 | next('/login'); 24 | } else if (to.meta.permission) { 25 | // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已 26 | role === 'admin' ? next() : next('/403'); 27 | } else { 28 | // 简单的判断IE10及以下不进入富文本编辑器,该组件不兼容 29 | if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') { 30 | Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器,请使用更高版本的浏览器查看', '浏览器不兼容通知', { 31 | confirmButtonText: '确定' 32 | }); 33 | } else { 34 | next(); 35 | } 36 | } 37 | }) 38 | 39 | 40 | new Vue({ 41 | router, 42 | store, 43 | render: h => h(App) 44 | }).$mount('#app') -------------------------------------------------------------------------------- /src/mock/data/user.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs'; 2 | const users = []; 3 | for (let i = 0; i < 100; i++) { 4 | let user = {}; 5 | user=Mock.mock({ 6 | orderNum:i+1, 7 | userid:Mock.Random.guid(), 8 | username:Mock.Random.last(), 9 | isable:Mock.Random.integer(0,1).toString(), 10 | loginTime:Mock.Random.integer(0,20), 11 | loginDate:Mock.Random.date(), 12 | creater:Mock.Random.cname(), 13 | 'rolename|1':['admin','超级管理员','用户'] 14 | }) 15 | users.push(user); 16 | } 17 | export {users} -------------------------------------------------------------------------------- /src/mock/mock.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | import Mock from 'mockjs' 3 | import MockAdapter from 'axios-mock-adapter'; 4 | import {users} from './data/user'; 5 | import {sysmenu} from './data/sysmenu'; 6 | let _users = users; 7 | export default{ 8 | bootstrap(){ 9 | let mock = new MockAdapter(axios); 10 | mock.onGet('/user/list').reply(config=>{ 11 | let {searchInfo,page=1}=config.params; 12 | let getUsers = _users.filter(user=>{ 13 | if(searchInfo&&user.username.indexOf(searchInfo)!=-1||user.rolename.indexOf(searchInfo)!=-1)return true; 14 | return false; 15 | }) 16 | let total = getUsers.length; 17 | getUsers = getUsers.filter((user,index)=>{ 18 | return index<20*page&&index>=20*(page-1); 19 | }) 20 | return new Promise((resolve,reject)=>{ 21 | setTimeout(()=>{ 22 | resolve([200,{ 23 | users:getUsers, 24 | total:total 25 | }]) 26 | },1000) 27 | }) 28 | }) 29 | mock.onGet('/user/sysmenu').reply(()=>{ 30 | return new Promise((resolve,reject)=>{ 31 | resolve([200,{data:sysmenu}]) 32 | }) 33 | }) 34 | mock.onGet('/user/deletUsers').reply((config)=>{ 35 | let {delIds} = config.params; 36 | delIds = delIds.split(',') 37 | _users = _users.filter(u=>!delIds.includes(u.userid)); 38 | return new Promise((resolve,reject)=>{ 39 | setTimeout(()=>{ 40 | resolve([200,{ 41 | code:200, 42 | msg:'删除成功' 43 | }]), 44 | reject([500,{ 45 | code:500, 46 | msg:'操作失败' 47 | }]) 48 | },500) 49 | 50 | }) 51 | }) 52 | mock.onGet('/user/editUser').reply((config)=>{ 53 | let {userid,username,isable} = config.params; 54 | _users.forEach(u => { 55 | if(u.userid==userid){ 56 | u.username=username; 57 | u.isable=isable; 58 | } 59 | }) 60 | return new Promise((resolve,reject)=>{ 61 | resolve([200,{ 62 | code:200, 63 | msg:'修改成功' 64 | }]) 65 | }) 66 | }) 67 | mock.onGet('user/addUser').reply((config)=>{ 68 | debugger 69 | let {id} = Mock.mock({ 70 | id:Mock.Random.guid() 71 | }) 72 | let orderNum = _users.length; 73 | let {username,rolename,isable} = config.params; 74 | _users.unshift({ 75 | orderNum:++orderNum, 76 | userid:id, 77 | username:username, 78 | rolename:rolename, 79 | loginTime:'0', 80 | loginDate:'', 81 | creater:localStorage.getItem('ms_username'), 82 | isable:isable 83 | }); 84 | return new Promise((resolve,reject)=>{ 85 | resolve([200,{ 86 | msg:'添加成功', 87 | code:200 88 | }]) 89 | }) 90 | }) 91 | mock.onGet('/user/DeleteOne').reply(config=>{ 92 | let {userid}=config.params; 93 | _users.forEach((item,index)=>{ 94 | if(item.userid==userid){ 95 | _users.splice(index,1); 96 | } 97 | }) 98 | return new Promise((resolve,reject)=>{ 99 | resolve([200,{ 100 | code:200, 101 | msg:'删除成功' 102 | }]) 103 | }) 104 | }) 105 | } 106 | } -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Router from 'vue-router'; 3 | 4 | Vue.use(Router); 5 | 6 | export default new Router({ 7 | routes: [ 8 | { 9 | path: '/', 10 | redirect: '/dashboard' 11 | }, 12 | { 13 | path: '/', 14 | component: resolve => require(['../components/common/Home.vue'], resolve), 15 | meta: { title: '自述文件' }, 16 | children:[ 17 | { 18 | path: '/dashboard', 19 | component: resolve => require(['../components/page/Dashboard.vue'], resolve), 20 | meta: { title: '系统首页' } 21 | }, 22 | { 23 | path: '/icon', 24 | component: resolve => require(['../components/page/Icon.vue'], resolve), 25 | meta: { title: '自定义图标' } 26 | }, 27 | { 28 | path: '/table', 29 | component: resolve => require(['../components/page/BaseTable.vue'], resolve), 30 | meta: { title: '基础表格' } 31 | }, 32 | { 33 | path: '/tabs', 34 | component: resolve => require(['../components/page/Tabs.vue'], resolve), 35 | meta: { title: 'tab选项卡' } 36 | }, 37 | { 38 | path: '/form', 39 | component: resolve => require(['../components/page/BaseForm.vue'], resolve), 40 | meta: { title: '基本表单' } 41 | }, 42 | { 43 | path: '/tree1', 44 | component: resolve => require(['../components/page/tree1.vue'], resolve), 45 | meta: { title: '基本树' } 46 | }, 47 | { 48 | path: '/tree2', 49 | component: resolve => require(['../components/page/tree2.vue'], resolve), 50 | meta: { title: '可选择树' } 51 | }, 52 | { 53 | path: '/tree3', 54 | component: resolve => require(['../components/page/tree3.vue'], resolve), 55 | meta: { title: '可编辑树' } 56 | }, 57 | { 58 | // 富文本编辑器组件 59 | path: '/tree4', 60 | component: resolve => require(['../components/page/tree4.vue'], resolve), 61 | meta: { title: '可查询树' } 62 | }, 63 | { 64 | // 富文本编辑器组件 65 | path: '/tree5', 66 | component: resolve => require(['../components/page/tree5.vue'], resolve), 67 | meta: { title: '节点选择' } 68 | }, 69 | { 70 | // 富文本编辑器组件 71 | path: '/editor', 72 | component: resolve => require(['../components/page/VueEditor.vue'], resolve), 73 | meta: { title: '富文本编辑器' } 74 | }, 75 | { 76 | // markdown组件 77 | path: '/markdown', 78 | component: resolve => require(['../components/page/Markdown.vue'], resolve), 79 | meta: { title: 'markdown编辑器' } 80 | }, 81 | { 82 | // 图片上传组件 83 | path: '/upload', 84 | component: resolve => require(['../components/page/Upload.vue'], resolve), 85 | meta: { title: '文件上传' } 86 | }, 87 | { 88 | // vue-schart组件 89 | path: '/charts', 90 | component: resolve => require(['../components/page/BaseCharts.vue'], resolve), 91 | meta: { title: 'schart图表' } 92 | }, 93 | { 94 | // 拖拽列表组件 95 | path: '/drag', 96 | component: resolve => require(['../components/page/DragList.vue'], resolve), 97 | meta: { title: '拖拽列表' } 98 | }, 99 | { 100 | // 拖拽Dialog组件 101 | path: '/dialog', 102 | component: resolve => require(['../components/page/DragDialog.vue'], resolve), 103 | meta: { title: '拖拽弹框' } 104 | }, 105 | { 106 | // 权限页面 107 | path: '/permission', 108 | component: resolve => require(['../components/page/Permission.vue'], resolve), 109 | meta: { title: '权限测试', permission: true } 110 | }, 111 | { 112 | path: '/404', 113 | component: resolve => require(['../components/page/404.vue'], resolve), 114 | meta: { title: '404' } 115 | }, 116 | { 117 | path: '/403', 118 | component: resolve => require(['../components/page/403.vue'], resolve), 119 | meta: { title: '403' } 120 | }, 121 | { 122 | path: '/admin', 123 | component: resolve => require(['../components/page/admin.vue'], resolve), 124 | meta: { title: '用户信息' } 125 | }, 126 | { 127 | path: '/usermanager', 128 | component: resolve => require(['../components/page/sysmanager/usermanager.vue'], resolve), 129 | meta: { title: '用户管理' } 130 | } 131 | ] 132 | }, 133 | { 134 | path: '/login', 135 | component: resolve => require(['../components/page/Login.vue'], resolve) 136 | }, 137 | { 138 | path: '*', 139 | redirect: '/404' 140 | } 141 | ] 142 | }) 143 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import dailog from './modules/dailog' 4 | Vue.use(Vuex); 5 | const store = new Vuex.Store({ 6 | modules:{ 7 | dailog 8 | } 9 | }); 10 | export default store; -------------------------------------------------------------------------------- /src/store/modules/dailog.js: -------------------------------------------------------------------------------- 1 | const state={ 2 | showUser:false 3 | }; 4 | const getters={ 5 | isShow(state){ 6 | return state.showUser; 7 | } 8 | } 9 | const mutations={ 10 | hide(state){ 11 | state.showUser=false; 12 | }, 13 | show(state){ 14 | state.showUser=true; 15 | } 16 | } 17 | const actions={ 18 | showDailog({commit}){ 19 | commit('show'); 20 | }, 21 | hideDailog({commit}){ 22 | commit('hide'); 23 | } 24 | } 25 | export default{ 26 | namespaced:true, 27 | getters, 28 | mutations, 29 | actions, 30 | state 31 | } -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | baseUrl: './', 3 | productionSourceMap: false, 4 | devServer: { 5 | //port:8888, 6 | proxy: { 7 | '/api':{ 8 | target:'http://jsonplaceholder.typicode.com', 9 | changeOrigin:true, 10 | pathRewrite:{ 11 | '/api':'' 12 | } 13 | }, 14 | '/testApi':{ 15 | target:'http://111.8.20.247:89/api/apph5api', 16 | changeOrigin:true, 17 | pathRewrite:{ 18 | '^/testApi':'/testApi' 19 | } 20 | }, 21 | '/ms':{ 22 | target: 'https://www.easy-mock.com/mock/592501a391470c0ac1fab128', 23 | changeOrigin: true 24 | } 25 | } 26 | } 27 | } --------------------------------------------------------------------------------