├── README.md ├── babel.config.js ├── dist ├── assets │ ├── css │ │ ├── app.634a237c.css │ │ ├── chunk-142f.738d08b1.css │ │ ├── chunk-1a2c.b9af80dc.css │ │ ├── chunk-1c66.db44a0d6.css │ │ ├── chunk-5438.7a3327a1.css │ │ ├── chunk-6dd6.e7da1b35.css │ │ ├── chunk-6eeb.e8216044.css │ │ ├── chunk-b0ed.87159fd3.css │ │ └── chunk-vendors.6fc43c9f.css │ └── js │ │ ├── app.18aa29f0.js │ │ ├── chunk-142f.45758990.js │ │ ├── chunk-1a2c.4236e8b1.js │ │ ├── chunk-1c66.decd152f.js │ │ ├── chunk-5438.76d08ea2.js │ │ ├── chunk-6dd6.368c2883.js │ │ ├── chunk-6eeb.08f22a30.js │ │ ├── chunk-b0ed.4f5c1552.js │ │ └── chunk-vendors.2e97cc32.js ├── favicon.ico ├── index.html └── static │ ├── skins │ └── lightgray │ │ ├── content.inline.min.css │ │ ├── content.min.css │ │ ├── content.mobile.min.css │ │ ├── fonts │ │ ├── tinymce-mobile.woff │ │ ├── tinymce-small.eot │ │ ├── tinymce-small.svg │ │ ├── tinymce-small.ttf │ │ ├── tinymce-small.woff │ │ ├── tinymce.eot │ │ ├── tinymce.svg │ │ ├── tinymce.ttf │ │ └── tinymce.woff │ │ ├── img │ │ ├── anchor.gif │ │ ├── loader.gif │ │ ├── object.gif │ │ └── trans.gif │ │ ├── skin.min.css │ │ └── skin.mobile.min.css │ └── zh_CN.js ├── index.html ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html └── static │ ├── skins │ └── lightgray │ │ ├── content.inline.min.css │ │ ├── content.min.css │ │ ├── content.mobile.min.css │ │ ├── fonts │ │ ├── tinymce-mobile.woff │ │ ├── tinymce-small.eot │ │ ├── tinymce-small.svg │ │ ├── tinymce-small.ttf │ │ ├── tinymce-small.woff │ │ ├── tinymce.eot │ │ ├── tinymce.svg │ │ ├── tinymce.ttf │ │ └── tinymce.woff │ │ ├── img │ │ ├── anchor.gif │ │ ├── loader.gif │ │ ├── object.gif │ │ └── trans.gif │ │ ├── skin.min.css │ │ └── skin.mobile.min.css │ └── zh_CN.js ├── src ├── App.vue ├── assets │ ├── element-ui.scss │ ├── index.css │ ├── logo.png │ ├── main.scss │ ├── mixin.scss │ ├── sidebar.scss │ └── transition.scss ├── components │ ├── beforeUpload │ │ └── beforeUpload.vue │ ├── pagination │ │ └── pagination.vue │ ├── reset │ │ └── reset.vue │ ├── tinyMceEditor │ │ └── tinyMceEditor.vue │ ├── uploadListImg │ │ └── uploadListImg.vue │ └── verification │ │ └── verification.ts ├── main.ts ├── permission.ts ├── router.ts ├── shims-tsx.d.ts ├── shims-vue.d.ts ├── utils │ ├── utils.ts │ └── validate.ts ├── views │ ├── aixo │ │ └── http.ts │ ├── content │ │ └── content.vue │ ├── filters │ │ └── filters.ts │ ├── haveNot │ │ └── haveNot.vue │ ├── interface │ │ ├── login.ts │ │ ├── nabarInteface.ts │ │ └── system.ts │ ├── layout │ │ ├── content │ │ │ ├── AppMain.vue │ │ │ ├── index.ts │ │ │ ├── navbar.vue │ │ │ ├── newtab.vue │ │ │ └── prompt.vue │ │ ├── layout.vue │ │ └── style.scss │ ├── login │ │ ├── login.component.ts │ │ └── login.vue │ ├── method │ │ └── method.ts │ ├── model │ │ └── model.vue │ ├── store │ │ ├── actions.ts │ │ ├── getters.ts │ │ ├── modules │ │ │ └── user.ts │ │ ├── mutations.ts │ │ ├── state.ts │ │ └── store.ts │ ├── system │ │ ├── permission │ │ │ ├── permission.component.ts │ │ │ ├── permission.vue │ │ │ ├── permissionAdd.vue │ │ │ └── style.scss │ │ └── user │ │ │ └── user.vue │ ├── typings │ │ └── ajax.d.ts │ └── utils │ │ └── auth.ts ├── vue-config.d.ts └── vue-shim.d.ts ├── tsconfig.json ├── tslint.json ├── vue.config.js └── webApp ├── assets ├── css │ ├── app.38561694.css │ ├── chunk-142f.738d08b1.css │ ├── chunk-1a2c.b9af80dc.css │ ├── chunk-1c66.db44a0d6.css │ ├── chunk-5438.7a3327a1.css │ ├── chunk-5fb2.f03ab398.css │ ├── chunk-6dd6.e7da1b35.css │ ├── chunk-6eeb.e8216044.css │ └── chunk-vendors.6fc43c9f.css └── js │ ├── app.a0775e53.js │ ├── chunk-142f.45758990.js │ ├── chunk-1a2c.4236e8b1.js │ ├── chunk-1c66.decd152f.js │ ├── chunk-5438.76d08ea2.js │ ├── chunk-5fb2.679c1f2a.js │ ├── chunk-6dd6.9166ff5b.js │ ├── chunk-6eeb.08f22a30.js │ └── chunk-vendors.2e97cc32.js ├── favicon.ico ├── index.html └── static ├── skins └── lightgray │ ├── content.inline.min.css │ ├── content.min.css │ ├── content.mobile.min.css │ ├── fonts │ ├── tinymce-mobile.woff │ ├── tinymce-small.eot │ ├── tinymce-small.svg │ ├── tinymce-small.ttf │ ├── tinymce-small.woff │ ├── tinymce.eot │ ├── tinymce.svg │ ├── tinymce.ttf │ └── tinymce.woff │ ├── img │ ├── anchor.gif │ ├── loader.gif │ ├── object.gif │ └── trans.gif │ ├── skin.min.css │ └── skin.mobile.min.css └── zh_CN.js /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } -------------------------------------------------------------------------------- /dist/assets/css/app.634a237c.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .28s;transition:opacity .28s}.fade-enter,.fade-leave-active{opacity:0}.breadcrumb-enter-active,.breadcrumb-leave-active{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-enter,.breadcrumb-leave-active{-webkit-transform:translateX(20px);opacity:0;transform:translateX(20px)}.breadcrumb-move{-webkit-transition:all .5s;transition:all .5s}.breadcrumb-leave-active{position:absolute}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.el-dialog{-webkit-transform:none;left:0;margin:0 auto;position:relative;transform:none}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{height:200px;width:100%}#app .main-container{-webkit-transition:margin-left .28s;margin-left:180px;min-height:100%;transition:margin-left .28s}#app .sidebar-container{-webkit-transition:width .28s;bottom:0;font-size:0;height:100%;left:0;overflow:hidden;position:fixed;top:0;transition:width .28s;width:180px!important;z-index:1001}#app .sidebar-container .horizontal-collapse-transition{-webkit-transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out;transition:width 0s ease-in-out,padding-left 0s ease-in-out,padding-right 0s ease-in-out}#app .sidebar-container a{display:inline-block;width:100%}#app .sidebar-container .svg-icon{margin-right:16px}#app .sidebar-container .el-menu{border:none;width:100%!important}#app .hideSidebar .sidebar-container{width:36px!important}#app .hideSidebar .main-container{margin-left:36px}#app .hideSidebar .submenu-title-noDropdown{padding-left:10px!important;position:relative}#app .hideSidebar .submenu-title-noDropdown .el-tooltip{padding:0 10px!important}#app .hideSidebar .el-submenu>.el-submenu__title{padding-left:10px!important}#app .hideSidebar .el-submenu>.el-submenu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}#app .hideSidebar .el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}#app .sidebar-container .el-submenu .el-menu-item,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title{background-color:#1f2d3d!important;min-width:180px!important}#app .sidebar-container .el-submenu .el-menu-item:hover,#app .sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover{background-color:#001528!important}#app .el-menu--collapse .el-menu .el-submenu{min-width:180px!important}#app .mobile .main-container{margin-left:0}#app .mobile .sidebar-container{-webkit-transition:-webkit-transform .28s;top:50px;transition:-webkit-transform .28s;transition:transform .28s;transition:transform .28s,-webkit-transform .28s;width:180px!important}#app .mobile.hideSidebar .sidebar-container{-webkit-transform:translate3d(-180px,0,0);-webkit-transition-duration:.3s;transform:translate3d(-180px,0,0);transition-duration:.3s}#app .withoutAnimation .main-container,#app .withoutAnimation .sidebar-container{-webkit-transition:none;transition:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background:#f2f2f2;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;text-rendering:optimizeLegibility}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}a:active,a:focus,div:focus{outline:none}a,a:focus,a:hover{color:inherit;cursor:pointer;text-decoration:none}.clearfix:after{clear:both;content:" ";display:block;font-size:0;height:0;visibility:hidden}.app-main{min-height:100%}.app-container{padding:20px}.t-p-content-10{background:#fff;border:none;margin:10px 10px 0}.t-container{min-height:500px;min-width:750px;padding:15px}.t-search-content{background:#f8f8f8;padding:20px 15px}.t-mini-buttom{margin-bottom:15px}.w-100{width:100%}.w-80{width:80%}.el-form-item__label{display:inline-block;font-size:12px;font-weight:400;line-height:30px;text-align:right;vertical-align:top;width:120px}.el-input--mini .el-input__inner{-moz-appearance:none;-webkit-appearance:none;-webkit-box-shadow:none;-webkit-box-sizing:border-box;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;appearance:none;border:1px solid #bbb;border-radius:2px;box-shadow:none;box-sizing:border-box;color:#333;display:inline-block;font-size:12px;height:30px;height:100%;margin:0;max-height:36px;min-width:80px;overflow:hidden;padding:5px 20px 5px 10px;text-overflow:ellipsis;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;white-space:nowrap}.el-input__prefix{display:none}.w-460{width:460px}.t-container-navbar[data-v-69248bb3]{height:100%;overflow:hidden;width:100%}.t-container-navbar .t-container-one[data-v-69248bb3]{background:#444;bottom:0;display:inline-block;left:0;overflow:hidden;overflow-y:auto;position:fixed;top:0;width:90px}.t-container-navbar .t-container-one[data-v-69248bb3]::-webkit-scrollbar{display:none}.t-container-navbar .t-container-tow[data-v-69248bb3]{background:#fff;bottom:0;left:90px;overflow:auto;position:fixed;top:0;width:110px}.t-container-navbar .t-container-tow .t-container-header[data-v-69248bb3]{-webkit-box-sizing:border-box;border-bottom:1px solid #f2f2f2;box-sizing:border-box;font-size:14px;height:50px;line-height:50px;padding-left:20px}.t-container-navbar .t-container-tow .t-container-content[data-v-69248bb3]{padding:13px 10px;width:110px}.t-container-navbar .t-container-tow .t-container-content ui[data-v-69248bb3]{list-style:none}.t-container-list[data-v-69248bb3]{border-radius:2px;color:#666;cursor:pointer;display:block;font-size:14px;height:36px;line-height:36px;list-style-type:none;margin-bottom:14px;overflow:hidden;padding:0 10px}.t-container-list[data-v-69248bb3]:hover{color:#38f}.t-container-list[data-v-69248bb3]:active{background:#f8f8f8;color:#444}.router-link-active[data-v-69248bb3]{background:#f8f8f8;border-radius:2px;color:#444;cursor:pointer;display:block;font-size:14px;height:36px;line-height:36px;list-style-type:none;margin-bottom:14px;overflow:hidden;padding:0 10px}.t-container-logo[data-v-69248bb3]{display:block;height:63px;overflow:hidden;width:90px}.t-user-info[data-v-69248bb3]{cursor:pointer;font-size:14px;height:36px;line-height:36px;margin-bottom:14px}.t-user-test[data-v-69248bb3]{color:#cacaca;display:block;padding-left:18px}.t-user-test[data-v-69248bb3]:hover{background:#666;color:#fff}.t-user-info-active[data-v-69248bb3]{background:#f8f8f8;color:#000;display:block;padding-left:18px}.t-container-navbar[data-v-36211ee8]{height:100%;overflow:hidden;width:100%}.t-container-navbar .t-container-tow[data-v-36211ee8]{background:#fff;overflow:auto;width:100%}.t-container-navbar .t-container-tow .t-container-header[data-v-36211ee8]{-webkit-box-sizing:border-box;border-bottom:1px solid #f2f2f2;box-sizing:border-box;font-size:12px;height:50px;line-height:50px;padding-left:20px}.t-container[data-v-43ef2ee3]{padding:0 200px;width:100%}.t-navbar-con[data-v-43ef2ee3]{height:100%;left:0;position:fixed}.t-navbar-con[data-v-43ef2ee3],.t-prompt-content[data-v-43ef2ee3]{-webkit-box-shadow:0 0 1px 0 rgba(0,0,0,.2);box-shadow:0 0 1px 0 rgba(0,0,0,.2);top:0;width:200px;z-index:99}.t-prompt-content[data-v-43ef2ee3]{background:#fff;bottom:0;position:absolute;right:-200px}.t-po-r[data-v-43ef2ee3]{position:relative}.AppMainBo[data-v-43ef2ee3]{color:#333;font-size:14px;height:50px;line-height:30px;padding:10px;text-align:center;width:100%} 2 | 3 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{-webkit-text-decoration:underline dotted;border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none} -------------------------------------------------------------------------------- /dist/assets/css/chunk-142f.738d08b1.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/assets/css/chunk-142f.738d08b1.css -------------------------------------------------------------------------------- /dist/assets/css/chunk-1a2c.b9af80dc.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/assets/css/chunk-1a2c.b9af80dc.css -------------------------------------------------------------------------------- /dist/assets/css/chunk-1c66.db44a0d6.css: -------------------------------------------------------------------------------- 1 | .t-newtab-container[data-v-2bf8c18d]{background:#fff;border-bottom:1px solid #e5e5e5;height:50px;line-height:48px;overflow:hidden;padding:0 10px;width:100%}.t-newtab-container .t-newtab-list[data-v-2bf8c18d]{border-bottom:2px solid #0099fc;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-newtab-show[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-color38f[data-v-2bf8c18d],.t-newtab-container .t-newtab-show[data-v-2bf8c18d]:hover{color:#38f}.t-newtab-container .t-newtab-show1[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-pagination[data-v-d1722364]{overflow:hidden;width:100%}.t-pagination-content[data-v-d1722364]{float:right;margin:20px} -------------------------------------------------------------------------------- /dist/assets/css/chunk-5438.7a3327a1.css: -------------------------------------------------------------------------------- 1 | .t-newtab-container[data-v-2bf8c18d]{background:#fff;border-bottom:1px solid #e5e5e5;height:50px;line-height:48px;overflow:hidden;padding:0 10px;width:100%}.t-newtab-container .t-newtab-list[data-v-2bf8c18d]{border-bottom:2px solid #0099fc;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-newtab-show[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-color38f[data-v-2bf8c18d],.t-newtab-container .t-newtab-show[data-v-2bf8c18d]:hover{color:#38f}.t-newtab-container .t-newtab-show1[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-pagination[data-v-d1722364]{overflow:hidden;width:100%}.t-pagination-content[data-v-d1722364]{float:right;margin:20px}.el-form-item__label[data-v-25ba47cb]{color:#dcdcdc;font-size:1px;font-weight:300;line-height:40px;padding:0 12px 0 0} -------------------------------------------------------------------------------- /dist/assets/css/chunk-6dd6.e7da1b35.css: -------------------------------------------------------------------------------- 1 | .t-newtab-container[data-v-2bf8c18d]{background:#fff;border-bottom:1px solid #e5e5e5;height:50px;line-height:48px;overflow:hidden;padding:0 10px;width:100%}.t-newtab-container .t-newtab-list[data-v-2bf8c18d]{border-bottom:2px solid #0099fc;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-newtab-show[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-color38f[data-v-2bf8c18d],.t-newtab-container .t-newtab-show[data-v-2bf8c18d]:hover{color:#38f}.t-newtab-container .t-newtab-show1[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-pagination[data-v-d1722364]{overflow:hidden;width:100%}.t-pagination-content[data-v-d1722364]{float:right;margin:20px} -------------------------------------------------------------------------------- /dist/assets/css/chunk-6eeb.e8216044.css: -------------------------------------------------------------------------------- 1 | .login-container .el-input{display:inline-block;height:47px;width:85%}.login-container .el-input input{-webkit-appearance:none;background:transparent;border:0;border-radius:0;color:#eee;height:47px;padding:12px 5px 12px 15px}.login-container .el-input input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #2d3a4b inset!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item{background:rgba(0,0,0,.1);border:1px solid hsla(0,0%,100%,.1);border-radius:5px;color:#454545}.login-container .el-input[data-v-22306fcf]{display:inline-block;height:47px;width:85%}.login-container .el-input input[data-v-22306fcf]{-webkit-appearance:none;background:transparent;border:0;border-radius:0;color:#eee;height:47px;padding:12px 5px 12px 15px}.login-container .el-input input[data-v-22306fcf]:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #2d3a4b inset!important;-webkit-text-fill-color:#fff!important}.login-container .el-form-item[data-v-22306fcf]{background:rgba(0,0,0,.1)!important;border:1px solid hsla(0,0%,100%,.1);border-radius:5px;color:#454545}.el-input__inner[data-v-22306fcf]{background:rgba(0,0,0,.1)!important;background-color:rgba(0,0,0,.1)!important}.login-container[data-v-22306fcf]{background-color:#2d3a4b;height:100%;position:fixed;width:100%}.login-container .login-form[data-v-22306fcf]{left:0;margin:120px auto;padding:35px 35px 15px;position:absolute;right:0;width:520px}.login-container .tips[data-v-22306fcf]{color:#fff;font-size:14px;margin-bottom:10px}.login-container .tips span[data-v-22306fcf]:first-of-type{margin-right:16px}.login-container .svg-container[data-v-22306fcf]{color:#889aa4;display:inline-block;padding:6px 5px 6px 15px;vertical-align:middle;width:40px}.login-container .svg-container_login[data-v-22306fcf]{font-size:20px}.login-container .title[data-v-22306fcf]{color:#eee;font-size:26px;font-weight:400;font-weight:700;margin:0 auto 40px;text-align:center}.login-container .show-pwd[data-v-22306fcf]{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;color:#889aa4;cursor:pointer;font-size:16px;position:absolute;right:10px;top:7px;user-select:none} -------------------------------------------------------------------------------- /dist/assets/css/chunk-b0ed.87159fd3.css: -------------------------------------------------------------------------------- 1 | .t-newtab-container[data-v-2bf8c18d]{background:#fff;border-bottom:1px solid #e5e5e5;height:50px;line-height:48px;overflow:hidden;padding:0 10px;width:100%}.t-newtab-container .t-newtab-list[data-v-2bf8c18d]{border-bottom:2px solid #0099fc;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-newtab-show[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}.t-newtab-container .t-color38f[data-v-2bf8c18d],.t-newtab-container .t-newtab-show[data-v-2bf8c18d]:hover{color:#38f}.t-newtab-container .t-newtab-show1[data-v-2bf8c18d]{border-bottom:2px solid #fff;color:#666;cursor:pointer;float:left;margin-left:15px;margin-right:25px}#mceu_228[data-v-01ef9c1c]{display:none!important}.avatar-uploader .el-upload{border:1px dashed #d9d9d9!important;border-radius:6px!important;cursor:pointer!important;overflow:hidden!important;position:relative!important}.avatar-uploader .el-upload:hover{border-color:#409eff!important}.avatar-uploader-icon{color:#8c939d;font-size:28px;height:178px;line-height:178px;text-align:center;width:178px}.avatar{display:block;height:178px;width:178px}.t-container-permission[data-v-40a49c78]{-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:20px;width:100%}.t-container-title[data-v-40a49c78]{-ms-flex:1;-webkit-box-flex:1;cursor:pointer;display:inline-block;flex:1;overflow:visible;vertical-align:top;width:50%}.t-container-headerA[data-v-40a49c78]{background:#38f;color:#fff}.t-container-headerA[data-v-40a49c78],.t-container-headerB[data-v-40a49c78]{font-size:14px;height:44px;line-height:44px;padding:0 10px;position:relative;text-align:center}.t-container-headerB[data-v-40a49c78]{background:#38f;background:#f8f8f8;color:#fff;color:#666}.t-container-headerB[data-v-40a49c78]:before{border-bottom:22px solid #f8f8f8;border-left:12px solid transparent;border-top:22px solid #f8f8f8;content:" ";display:block;height:0;left:-12px;margin-top:-22px;position:absolute;top:49%;width:0}.t-container-headerA[data-v-40a49c78]:after{border-bottom:22px solid transparent;border-left:12px solid #f8f8f8;border-top:22px solid transparent;content:" ";display:block;height:0;margin-top:-22px;position:absolute;right:-12px;top:49%;width:0}.t-permission-type[data-v-40a49c78]{background-color:#f8f8f8;font-size:14px;font-weight:400;margin-bottom:10px;padding:10px}.t-app-actions[data-v-40a49c78]{-webkit-transition:right .5s;bottom:0;height:50px;left:210px;min-width:780px;position:fixed;right:210px;transition:right .5s;width:auto;z-index:10}.t-app-actions-content[data-v-40a49c78]{background:#ffc;border-top:none;padding:10px;text-align:center;width:100%} -------------------------------------------------------------------------------- /dist/assets/css/chunk-vendors.6fc43c9f.css: -------------------------------------------------------------------------------- 1 | #nprogress{pointer-events:none}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{-webkit-box-shadow:0 0 10px #29d,0 0 5px #29d;-webkit-transform:rotate(3deg) translateY(-4px);box-shadow:0 0 10px #29d,0 0 5px #29d;display:block;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#nprogress .spinner{display:block;position:fixed;right:15px;top:15px;z-index:1031}#nprogress .spinner-icon{-webkit-animation:nprogress-spinner .4s linear infinite;-webkit-box-sizing:border-box;animation:nprogress-spinner .4s linear infinite;border-color:#29d transparent transparent #29d;border-radius:50%;border-style:solid;border-width:2px;box-sizing:border-box;height:18px;width:18px}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} -------------------------------------------------------------------------------- /dist/assets/js/chunk-142f.45758990.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-142f"],{9271:function(t,e,n){"use strict";var a=n("c51d"),c=n.n(a);c.a},c51d:function(t,e,n){},f521:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"home-container"},[n("router-link",{attrs:{to:"/home/content"}},[t._v("content")]),n("input",{attrs:{type:"text"}})],1)},c=[],o=n("c665"),i=n("dc0a"),u=n("aa9a"),s=n("d328"),l=n("11d9"),r=n("9ab4"),d=n("60a3"),f=function(t){function e(){return Object(o["a"])(this,e),Object(s["a"])(this,Object(l["a"])(e).apply(this,arguments))}return Object(u["a"])(e,[{key:"created",value:function(){console.log(1)}},{key:"activated",value:function(){console.log(2)}},{key:"deactivated",value:function(){console.log(4)}}]),Object(i["a"])(e,t),e}(d["d"]);f=r["a"]([Object(d["a"])({})],f);var v=f,p=v,b=(n("9271"),n("2877")),h=Object(b["a"])(p,a,c,!1,null,"2dc6ea14",null);h.options.__file="model.vue";e["default"]=h.exports}}]); -------------------------------------------------------------------------------- /dist/assets/js/chunk-1a2c.4236e8b1.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1a2c"],{"00f5":function(t,n,a){"use strict";a.r(n);var e=function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("div",[t._v("\n 404\n")])},c=[],u=a("c665"),i=a("dc0a"),d=a("aa9a"),r=a("d328"),o=a("11d9"),f=a("9ab4"),s=a("60a3"),b=function(t){function n(){return Object(u["a"])(this,n),Object(r["a"])(this,Object(o["a"])(n).apply(this,arguments))}return Object(d["a"])(n,[{key:"created",value:function(){}}]),Object(i["a"])(n,t),n}(s["d"]);b=f["a"]([Object(s["a"])({})],b);var l=b,p=l,v=(a("8d40"),a("2877")),h=Object(v["a"])(p,e,c,!1,null,"10f7b1dc",null);h.options.__file="haveNot.vue";n["default"]=h.exports},"8d40":function(t,n,a){"use strict";var e=a("ddf2"),c=a.n(e);c.a},ddf2:function(t,n,a){}}]); -------------------------------------------------------------------------------- /dist/assets/js/chunk-5438.76d08ea2.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5438"],{2869:function(t,e,a){"use strict";var n=a("d2b9"),i=a.n(n);i.a},"2d45":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"t-newtab-container"},[1==t.meta.type?a("div",t._l(t.meta.status,function(e,n){return a("div",{key:n,class:t.status==e.value?"t-newtab-list":"t-newtab-show",on:{click:function(a){t.changStatus(e)}}},[t._v(t._s(e.title))])})):2==t.meta.type?a("div",[a("div",{staticClass:"t-newtab-show1"},t._l(t.meta.status,function(e,n){return a("span",{key:n,class:0==n?"t-color38f":"",on:{click:function(a){t.changHome(e)}}},[t._v(t._s(0!=n?"/":"")+t._s(e.title)+"\n ")])}))]):a("div",t._l(t.meta.status,function(e,n){return a("div",{key:n,staticClass:"t-newtab-show1"},[t._v(t._s(e.title))])}))])},i=[],s=a("c665"),r=a("dc0a"),l=a("aa9a"),o=a("d328"),c=a("11d9"),u=a("9ab4"),p=a("60a3"),d=a("73ec"),h=function(t){function e(){var t;return Object(s["a"])(this,e),t=Object(o["a"])(this,Object(c["a"])(e).apply(this,arguments)),t.status="",t.meta={status:[]},t}return Object(l["a"])(e,[{key:"created",value:function(){this.meta=d["a"].deep(this.$route.meta),1==this.meta.type&&(this.$route.query[this.meta.status[0].Field]?this.status=String(d["a"].deep(this.$route.query[this.meta.status[0].Field])):this.status="")}},{key:"onRouteChanged",value:function(t,e){this.meta=d["a"].deep(t.meta),1==this.meta.type&&(t.query[this.meta.status[0].Field]?this.status=String(d["a"].deep(t.query[this.meta.status[0].Field])):this.status="")}},{key:"changStatus",value:function(t){var e=this,a=d["a"].deep(this.$route.query);if(""===t.value){var n=[1];a.pageNum=n[0],delete a[t.Field]}else{var i=[1,t.value];a.pageNum=i[0],a[t.Field]=i[1]}this.$store.dispatch("paramsUrl",a).then(function(t){e.$router.push("".concat(e.$route.path).concat(t))})}},{key:"changHome",value:function(t){this.$router.push("".concat(t.value))}}]),Object(r["a"])(e,t),e}(p["d"]);u["a"]([Object(p["e"])("$route")],h.prototype,"onRouteChanged",null),h=u["a"]([Object(p["a"])({})],h);var f=h,m=f,v=(a("b361"),a("2877")),b=Object(v["a"])(m,n,i,!1,null,"2bf8c18d",null);b.options.__file="newtab.vue";e["a"]=b.exports},3653:function(t,e,a){},4959:function(t,e,a){},"4e2a":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("newTab"),a("div",{staticClass:"t-p-content-10"},[a("div",{staticClass:"t-container"},[a("div",{staticClass:"t-mini-buttom"},[a("el-button",{attrs:{size:"mini",type:"primary"}},[t._v("发布商品")])],1),a("div",{staticClass:"t-search-content"},[a("el-form",{staticClass:"demo-form-inline",attrs:{model:t.formInline,"label-position":"right",size:"mini","label-width":"140px"}},[a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"开始时间:"}},[a("el-date-picker",{staticStyle:{width:"80%"},attrs:{type:"datetime","value-format":"yyyy-MM-dd HH:mm:ss",placeholder:"选择日期"},model:{value:t.formInline.startDate,callback:function(e){t.$set(t.formInline,"startDate",e)},expression:"formInline.startDate"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"结束时间"}},[a("el-date-picker",{staticStyle:{width:"80%"},attrs:{type:"datetime","value-format":"yyyy-MM-dd HH:mm:ss",placeholder:"选择日期"},model:{value:t.formInline.endDate,callback:function(e){t.$set(t.formInline,"endDate",e)},expression:"formInline.endDate"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"商品名称:"}},[a("el-input",{staticClass:"w-80",attrs:{placeholder:"商品名称"},model:{value:t.formInline.name,callback:function(e){t.$set(t.formInline,"name",e)},expression:"formInline.name"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"三方商品编号:"}},[a("el-input",{staticClass:"w-80",attrs:{placeholder:"三方商品编号"},model:{value:t.formInline.thirdProductId,callback:function(e){t.$set(t.formInline,"thirdProductId",e)},expression:"formInline.thirdProductId"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"三方商品sku:"}},[a("el-input",{staticClass:"w-80",attrs:{placeholder:"三方商品sku"},model:{value:t.formInline.thirdSku,callback:function(e){t.$set(t.formInline,"thirdSku",e)},expression:"formInline.thirdSku"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"商品id:"}},[a("el-input",{staticClass:"w-80",attrs:{placeholder:"商品id"},model:{value:t.formInline.id,callback:function(e){t.$set(t.formInline,"id",e)},expression:"formInline.id"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"商品类型:"}},[a("el-select",{staticClass:"w-80",attrs:{placeholder:"请选择商品类型"},model:{value:t.formInline.categoryId,callback:function(e){t.$set(t.formInline,"categoryId",e)},expression:"formInline.categoryId"}},[a("el-option",{attrs:{label:"区域一",value:"shanghai"}}),a("el-option",{attrs:{label:"区域二",value:"beijing"}})],1)],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"站点:"}},[a("el-select",{staticClass:"w-80",attrs:{placeholder:"站点"},model:{value:t.formInline.siteId,callback:function(e){t.$set(t.formInline,"siteId",e)},expression:"formInline.siteId"}},[a("el-option",{attrs:{label:"区域一",value:"shanghai"}}),a("el-option",{attrs:{label:"区域二",value:"beijing"}})],1)],1)],1),a("el-col",{attrs:{span:24}},[a("el-form-item",{attrs:{label:""}},[a("el-button",{attrs:{type:"primary"},on:{click:t.search}},[t._v("筛选")]),a("Reset",{attrs:{searchReserved:t.searchReserved}}),a("el-button",[t._v("批量导出")])],1)],1)],1)],1)],1),a("el-table",{staticStyle:{width:"100%","margin-top":"20px"},attrs:{data:t.tableData6,border:""}},[a("el-table-column",{attrs:{prop:"id",label:"ID",align:"center"}})],1),a("Pagination",{attrs:{Paginationtotal:t.Paginationtotal}})],1)])],1)},i=[],s=a("c665"),r=a("dc0a"),l=a("aa9a"),o=a("d328"),c=a("11d9"),u=a("9ab4"),p=a("2d45"),d=a("64e2"),h=a("57fc"),f=a("73ec"),m=a("60a3"),v=function(t){function e(){var t;return Object(s["a"])(this,e),t=Object(o["a"])(this,Object(c["a"])(e).apply(this,arguments)),t.tableData6=[],t.searchReserved={name:"1111"},t.Paginationtotal=100,t.formInline={},t}return Object(l["a"])(e,[{key:"created",value:function(){this.start(this.$route.query)}},{key:"onRouteChanged",value:function(t,e){this.start(t.query),this.$forceUpdate()}},{key:"search",value:function(){var t=this,e=f["a"].deep(this.formInline);this.$store.dispatch("paramsUrl",e).then(function(e){t.$router.push("".concat(t.$route.path).concat(e))})}},{key:"start",value:function(t){this.formInline=f["a"].deep(t)}},{key:"activated",value:function(){console.log(2)}},{key:"deactivated",value:function(){console.log(4)}}]),Object(r["a"])(e,t),e}(m["d"]);u["a"]([Object(m["e"])("$route")],v.prototype,"onRouteChanged",null),v=u["a"]([Object(m["a"])({components:{newTab:p["a"],Reset:d["a"],Pagination:h["a"]}})],v);var b=v,g=b,y=(a("4fc4"),a("2877")),k=Object(y["a"])(g,n,i,!1,null,"25ba47cb",null);k.options.__file="content.vue";e["default"]=k.exports},"4fc4":function(t,e,a){"use strict";var n=a("3653"),i=a.n(n);i.a},"57fc":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"t-pagination"},[a("div",{staticClass:"t-pagination-content"},[a("el-pagination",{attrs:{"current-page":t.currentPage4,"page-sizes":[10,20,30,40,100],"page-size":t.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:t.Paginationtotal},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1)])},i=[],s=(a("c5f6"),a("c665")),r=a("dc0a"),l=a("aa9a"),o=a("d328"),c=a("11d9"),u=a("9ab4"),p=a("73ec"),d=a("60a3"),h=function(t){function e(){var t;return Object(s["a"])(this,e),t=Object(o["a"])(this,Object(c["a"])(e).apply(this,arguments)),t.pageSize=20,t.currentPage4=1,t}return Object(l["a"])(e,[{key:"created",value:function(){this.$route.query.pageNum?(this.currentPage4=Number(p["a"].deep(this.$route.query.pageNum)),this.pageSize=Number(p["a"].deep(this.$route.query.pageSize))):(this.currentPage4=1,this.pageSize=20)}},{key:"onRouteChanged",value:function(t,e){t.query.pageNum?(this.currentPage4=Number(p["a"].deep(t.query.pageNum)),this.pageSize=Number(p["a"].deep(t.query.pageSize))):(this.currentPage4=1,this.pageSize=20),this.$forceUpdate()}},{key:"handleSizeChange",value:function(t){var e=p["a"].deep(this.$route.query),a=[1,t];e.pageNum=a[0],e.pageSize=a[1],this.start(e),console.log("每页 ".concat(t," re条"))}},{key:"handleCurrentChange",value:function(t){var e=p["a"].deep(this.$route.query);e.pageNum=t,e.pageSize=this.pageSize,this.start(e),console.log("当前页: ".concat(t,"re"))}},{key:"start",value:function(t){var e=this;this.$store.dispatch("paramsUrl",t).then(function(t){e.$router.push("".concat(e.$route.path).concat(t))})}}]),Object(r["a"])(e,t),e}(d["d"]);u["a"]([Object(d["b"])()],h.prototype,"Paginationtotal",void 0),u["a"]([Object(d["e"])("$route")],h.prototype,"onRouteChanged",null),h=u["a"]([d["a"]],h);var f=h,m=f,v=(a("8a9c"),a("2877")),b=Object(v["a"])(m,n,i,!1,null,"d1722364",null);b.options.__file="pagination.vue";e["a"]=b.exports},"64e2":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-button",{attrs:{size:"mini"},on:{click:function(e){t.reset(t.searchReserved)}}},[t._v("重置")])},i=[],s=a("c665"),r=a("dc0a"),l=a("aa9a"),o=a("d328"),c=a("11d9"),u=a("9ab4"),p=a("60a3"),d=function(t){function e(){return Object(s["a"])(this,e),Object(o["a"])(this,Object(c["a"])(e).apply(this,arguments))}return Object(l["a"])(e,[{key:"reset",value:function(t){var e=this,a=[1,20];t.pageNum=a[0],t.pageSize=a[1],this.$store.dispatch("paramsUrl",t).then(function(t){e.$router.push("".concat(e.$route.path).concat(t))})}}]),Object(r["a"])(e,t),e}(p["d"]);u["a"]([Object(p["b"])()],d.prototype,"searchReserved",void 0),d=u["a"]([Object(p["a"])({})],d);var h=d,f=h,m=(a("2869"),a("2877")),v=Object(m["a"])(f,n,i,!1,null,"c1a88ea6",null);v.options.__file="reset.vue";e["a"]=v.exports},"73ec":function(t,e,a){"use strict";var n={deep:function(t){if(""==t)return"";var e={};return e=JSON.parse(JSON.stringify(t)),e}};e["a"]=n},"8a9c":function(t,e,a){"use strict";var n=a("4959"),i=a.n(n);i.a},"95a8":function(t,e,a){},b361:function(t,e,a){"use strict";var n=a("95a8"),i=a.n(n);i.a},d2b9:function(t,e,a){}}]); -------------------------------------------------------------------------------- /dist/assets/js/chunk-6eeb.08f22a30.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6eeb"],{"55d4":function(t,n,o){"use strict";var e=o("fe7d"),i=o.n(e);i.a},"6e34":function(t,n,o){"use strict";var e=o("c1d3"),i=o.n(e);i.a},8076:function(t,n,o){},aabd:function(t,n,o){"use strict";var e=o("8076"),i=o.n(e);i.a},c1d3:function(t,n,o){},dc3f:function(t,n,o){"use strict";o.r(n);var e=function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("div",{staticClass:"login-container"},[o("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{autoComplete:"on",model:t.loginForm,rules:t.loginRules,"label-position":"left"}},[o("h3",{staticClass:"title"},[t._v("iyuedian-admin")]),o("el-form-item",{attrs:{prop:"loginAccount"}},[o("span",{staticClass:"svg-container svg-container_login"},[o("i",{staticClass:"el-icon-service"})]),o("el-input",{attrs:{name:"loginAccount",type:"text",autoComplete:"on",placeholder:"username"},model:{value:t.loginForm.loginAccount,callback:function(n){t.$set(t.loginForm,"loginAccount",n)},expression:"loginForm.loginAccount"}})],1),o("el-form-item",{attrs:{prop:"password"}},[o("span",{staticClass:"svg-container svg-container_login"},[o("i",{staticClass:"el-icon-rank"})]),o("el-input",{attrs:{name:"password",type:"password",autoComplete:"on",placeholder:"password"},nativeOn:{keyup:function(n){if(!("button"in n)&&t._k(n.keyCode,"enter",13,n.key,"Enter"))return null;t.handleLogin()}},model:{value:t.loginForm.password,callback:function(n){t.$set(t.loginForm,"password",n)},expression:"loginForm.password"}})],1),o("el-form-item",[o("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary",loading:t.loading},nativeOn:{click:function(n){n.preventDefault(),t.handleLogin()}}},[t._v("\n Sign in\n ")])],1)],1)],1)},i=[],s=o("c665"),a=o("dc0a"),r=o("aa9a"),c=o("d328"),l=o("11d9"),u=o("9ab4");function g(t){if(!t)return"";var n=["admin","editor"];return n.indexOf(t.trim())>=0}function d(t){return""===t||null===t?{status:!1,msg:"请填写账号"}:{status:!0}}function p(t){return""===t||null===t?{status:!1,msg:"请填写密码"}:t.length<6?{status:!1,msg:"密码不能小于5位"}:{status:!0}}var f={account:d,password:p},m=o("60a3"),v=o("65d9"),h=o("2f62"),w=F("computed",h["e"]),b=F("computed",h["c"]),y=F("methods",h["b"]),k=F("methods",h["d"]);function F(t,n){function o(o,e){return Object(v["createDecorator"])(function(i,s){i[t]||(i[t]={});var a,r=(a={},a[s]=o,a);i[t][s]=void 0!==e?n(e,r)[s]:n(r)[s]})}function e(t,n){if("string"===typeof n){var e=n,i=t;return o(e,void 0)(i,e)}var s=C(n),a=t;return o(a,s)}return e}function C(t){var n=t&&t.namespace;if("string"===typeof n)return"/"!==n[n.length-1]?n+"/":n}var O=function(t){function n(){var t;return Object(s["a"])(this,n),t=Object(c["a"])(this,Object(l["a"])(n).apply(this,arguments)),t.loading=!1,t.loginForm={loginAccount:"",password:""},t.loginRules={loginAccount:{required:!0,trigger:"change",validator:function(t,n,o){g(n)?o():o(new Error("请输入正确的用户名"))}},password:{required:!0,trigger:"change",validator:function(t,n,o){n.length<5?o(new Error("密码不能小于5位")):o()}}},t}return Object(r["a"])(n,[{key:"created",value:function(){console.log(this.imgUrl),console.log(y),console.log(b),console.log(k)}},{key:"handleLogin",value:function(){this.Verification()&&(this.loading=!0,this.$message({showClose:!0,message:"登陆成功",type:"success"}),this.$router.push({path:"/system"}))}},{key:"Verification",value:function(){return f.account(this.loginForm.loginAccount).status?!!f.password(this.loginForm.password).status||(this.$message(f.password(this.loginForm.password).msg),!1):(this.$message(f.account(this.loginForm.loginAccount).msg),!1)}}]),Object(a["a"])(n,t),n}(m["d"]);u["a"]([w],O.prototype,"imgUrl",void 0),O=u["a"]([Object(m["a"])({name:"login"})],O);var A=O,_=A,j=_,$=(o("55d4"),o("6e34"),o("aabd"),o("2877")),x=Object($["a"])(j,e,i,!1,null,"22306fcf",null);x.options.__file="login.vue";n["default"]=x.exports},fe7d:function(t,n,o){}}]); -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/favicon.ico -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | my-app
-------------------------------------------------------------------------------- /dist/static/skins/lightgray/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} -------------------------------------------------------------------------------- /dist/static/skins/lightgray/content.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} -------------------------------------------------------------------------------- /dist/static/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /dist/static/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /dist/static/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /dist/static/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /dist/static/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /dist/static/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/dist/static/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 |
213
9 | 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "@tinymce/tinymce-vue": "^1.0.9", 12 | "@types/axios": "^0.14.0", 13 | "@types/js-cookie": "^2.2.0", 14 | "@types/nprogress": "0.0.29", 15 | "@types/tinymce": "^4.5.16", 16 | "axios": "^0.18.0", 17 | "element-ui": "^2.4.6", 18 | "js-cookie": "^2.2.0", 19 | "nprogress": "^0.2.0", 20 | "tinymce": "^4.8.3", 21 | "vue": "^2.5.17", 22 | "vue-property-decorator": "^7.0.0", 23 | "vue-router": "^3.0.1", 24 | "vuex": "^3.0.1", 25 | "vuex-class": "^0.3.1" 26 | }, 27 | "devDependencies": { 28 | "@vue/cli-plugin-babel": "^3.0.0", 29 | "@vue/cli-plugin-typescript": "^3.0.0", 30 | "@vue/cli-service": "^3.0.0", 31 | "node-sass": "^4.9.0", 32 | "sass-loader": "^7.0.1", 33 | "typescript": "^3.0.0", 34 | "vue-template-compiler": "^2.5.17" 35 | }, 36 | "postcss": { 37 | "plugins": { 38 | "autoprefixer": {} 39 | } 40 | }, 41 | "browserslist": [ 42 | "> 1%", 43 | "last 2 versions", 44 | "not ie <= 8" 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | my-app 14 | 15 | 16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public/static/skins/lightgray/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} -------------------------------------------------------------------------------- /public/static/skins/lightgray/content.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} -------------------------------------------------------------------------------- /public/static/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /public/static/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /public/static/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /public/static/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /public/static/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /public/static/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/public/static/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /src/assets/element-ui.scss: -------------------------------------------------------------------------------- 1 | //to reset element-ui default css 2 | .el-upload { 3 | input[type="file"] { 4 | display: none !important; 5 | } 6 | } 7 | 8 | .el-upload__input { 9 | display: none; 10 | } 11 | 12 | //暂时性解决diolag 问题 https://github.com/ElemeFE/element/issues/2461 13 | .el-dialog { 14 | transform: none; 15 | left: 0; 16 | position: relative; 17 | margin: 0 auto; 18 | } 19 | 20 | //element ui upload 21 | .upload-container { 22 | .el-upload { 23 | width: 100%; 24 | .el-upload-dragger { 25 | width: 100%; 26 | height: 200px; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/main.scss: -------------------------------------------------------------------------------- 1 | 2 | $subMenuBg:#1f2d3d; 3 | $menuHover:#001528; 4 | // 导航主色调 5 | $menuBg:#444; 6 | $bodyBy:#f2f2f2; 7 | @import './mixin.scss'; 8 | @import './transition.scss'; 9 | @import './element-ui.scss'; 10 | @import './sidebar.scss'; 11 | 12 | body { 13 | -moz-osx-font-smoothing: grayscale; 14 | -webkit-font-smoothing: antialiased; 15 | text-rendering: optimizeLegibility; 16 | background: $bodyBy; 17 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; 18 | } 19 | 20 | html { 21 | box-sizing: border-box; 22 | } 23 | 24 | *, 25 | *:before, 26 | *:after { 27 | box-sizing: inherit; 28 | } 29 | 30 | div:focus{ 31 | outline: none; 32 | } 33 | 34 | a:focus, 35 | a:active { 36 | outline: none; 37 | } 38 | 39 | a, 40 | a:focus, 41 | a:hover { 42 | cursor: pointer; 43 | color: inherit; 44 | text-decoration: none; 45 | } 46 | 47 | .clearfix { 48 | &:after { 49 | visibility: hidden; 50 | display: block; 51 | font-size: 0; 52 | content: " "; 53 | clear: both; 54 | height: 0; 55 | } 56 | } 57 | 58 | //main-container全局样式 59 | .app-main{ 60 | min-height: 100% 61 | } 62 | 63 | .app-container { 64 | padding: 20px; 65 | } 66 | .t-p-content-10{ 67 | background: white; 68 | border: none; 69 | margin: 10px 10px 0; 70 | } 71 | .t-container{ 72 | padding: 15px; 73 | min-width: 750px; 74 | min-height: 900px; 75 | //-webkit-box-shadow: 0 0 1px 0 rgba(0,0,0,.2); 76 | //box-shadow: 0 0 1px 0 rgba(0,0,0,.2); 77 | //background: white; 78 | } 79 | .t-search-content{ 80 | background: #f8f8f8; 81 | padding: 20px 15px; 82 | } 83 | .t-mini-buttom{ 84 | margin-bottom: 15px 85 | } 86 | .w-100{ 87 | width: 100%; 88 | } 89 | .w-80{ 90 | width: 80%; 91 | } 92 | .el-form-item__label { 93 | display: inline-block; 94 | width: 120px; 95 | font-size: 12px; 96 | line-height: 30px; 97 | text-align: right; 98 | vertical-align: top; 99 | font-weight: 400 100 | } 101 | .el-input--mini .el-input__inner { 102 | height: 30px; 103 | max-height: 36px; 104 | display: inline-block; 105 | min-width: 80px; 106 | height: 100%; 107 | box-sizing: border-box; 108 | padding: 0 10px; 109 | margin: 0; 110 | border: 1px solid #bbb; 111 | color: #333; 112 | font-size: 12px; 113 | border-radius: 2px; 114 | box-shadow: none; 115 | transition: border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out; 116 | transition: border .2s ease-in-out,box-shadow .2s ease-in-out; 117 | transition: border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out; 118 | appearance: none; 119 | text-overflow: ellipsis; 120 | white-space: nowrap; 121 | overflow: hidden; 122 | padding: 5px 20px 5px 10px; 123 | } 124 | .el-input__prefix{ 125 | display: none 126 | } 127 | .w-460{ 128 | width: 460px; 129 | } -------------------------------------------------------------------------------- /src/assets/mixin.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix { 2 | &:after { 3 | content: ""; 4 | display: table; 5 | clear: both; 6 | } 7 | } 8 | 9 | @mixin scrollBar { 10 | &::-webkit-scrollbar-track-piece { 11 | background: #d3dce6; 12 | } 13 | &::-webkit-scrollbar { 14 | width: 6px; 15 | } 16 | &::-webkit-scrollbar-thumb { 17 | background: #99a9bf; 18 | border-radius: 20px; 19 | } 20 | } 21 | 22 | @mixin relative { 23 | position: relative; 24 | width: 100%; 25 | height: 100%; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /src/assets/sidebar.scss: -------------------------------------------------------------------------------- 1 | #app { 2 | 3 | // 主体区域 4 | .main-container { 5 | min-height: 100%; 6 | transition: margin-left .28s; 7 | margin-left: 180px; 8 | } 9 | 10 | // 侧边栏 11 | .sidebar-container { 12 | .horizontal-collapse-transition { 13 | transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; 14 | } 15 | transition: width .28s; 16 | width: 180px !important; 17 | height: 100%; 18 | position: fixed; 19 | font-size: 0px; 20 | top: 0; 21 | bottom: 0; 22 | left: 0; 23 | z-index: 1001; 24 | overflow: hidden; 25 | a { 26 | display: inline-block; 27 | width: 100%; 28 | } 29 | .svg-icon { 30 | margin-right: 16px; 31 | } 32 | .el-menu { 33 | border: none; 34 | width: 100% !important; 35 | } 36 | } 37 | 38 | .hideSidebar { 39 | .sidebar-container { 40 | width: 36px !important; 41 | } 42 | .main-container { 43 | margin-left: 36px; 44 | } 45 | .submenu-title-noDropdown { 46 | padding-left: 10px !important; 47 | position: relative; 48 | .el-tooltip { 49 | padding: 0 10px !important; 50 | } 51 | } 52 | .el-submenu { 53 | &>.el-submenu__title { 54 | padding-left: 10px !important; 55 | &>span { 56 | height: 0; 57 | width: 0; 58 | overflow: hidden; 59 | visibility: hidden; 60 | display: inline-block; 61 | } 62 | .el-submenu__icon-arrow { 63 | display: none; 64 | } 65 | } 66 | } 67 | } 68 | 69 | .sidebar-container .nest-menu .el-submenu>.el-submenu__title, 70 | .sidebar-container .el-submenu .el-menu-item { 71 | min-width: 180px !important; 72 | background-color: $subMenuBg !important; 73 | &:hover { 74 | background-color: $menuHover !important; 75 | } 76 | } 77 | .el-menu--collapse .el-menu .el-submenu { 78 | min-width: 180px !important; 79 | } 80 | 81 | //适配移动端 82 | .mobile { 83 | .main-container { 84 | margin-left: 0px; 85 | } 86 | .sidebar-container { 87 | top: 50px; 88 | transition: transform .28s; 89 | width: 180px !important; 90 | } 91 | &.hideSidebar { 92 | .sidebar-container { 93 | transition-duration: 0.3s; 94 | transform: translate3d(-180px, 0, 0); 95 | } 96 | } 97 | } 98 | 99 | .withoutAnimation { 100 | .main-container, 101 | .sidebar-container { 102 | transition: none; 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /src/assets/transition.scss: -------------------------------------------------------------------------------- 1 | //globl transition css 2 | 3 | /*fade*/ 4 | .fade-enter-active, 5 | .fade-leave-active { 6 | transition: opacity 0.28s; 7 | } 8 | 9 | .fade-enter, 10 | .fade-leave-active { 11 | opacity: 0; 12 | } 13 | 14 | /*fade*/ 15 | .breadcrumb-enter-active, 16 | .breadcrumb-leave-active { 17 | transition: all .5s; 18 | } 19 | 20 | .breadcrumb-enter, 21 | .breadcrumb-leave-active { 22 | opacity: 0; 23 | transform: translateX(20px); 24 | } 25 | 26 | .breadcrumb-move { 27 | transition: all .5s; 28 | } 29 | 30 | .breadcrumb-leave-active { 31 | position: absolute; 32 | } 33 | -------------------------------------------------------------------------------- /src/components/beforeUpload/beforeUpload.vue: -------------------------------------------------------------------------------- 1 | // 单张图片上传(头像) 2 | 15 | 16 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /src/components/pagination/pagination.vue: -------------------------------------------------------------------------------- 1 | // 分页 2 | 12 | 28 | 29 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /src/components/reset/reset.vue: -------------------------------------------------------------------------------- 1 | // 重置按钮 2 | 5 | 6 | 9 | 10 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/components/tinyMceEditor/tinyMceEditor.vue: -------------------------------------------------------------------------------- 1 | // 富文本编译器 2 | 7 | 8 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /src/components/uploadListImg/uploadListImg.vue: -------------------------------------------------------------------------------- 1 | // 批量图片上传(详情) 2 | 17 | 18 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/components/verification/verification.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 表单的账号非空验证 3 | * @param item 账号验证 4 | */ 5 | function account(item: string): any { 6 | if (item === '' || item === null) { 7 | return { status: false, msg: '请填写账号' }; 8 | } 9 | return { status: true }; 10 | } 11 | /** 12 | * 表单密码的验证 13 | * @param item 密码的表单验证 14 | */ 15 | function password(item: string): any { 16 | const regular: any = /^(?!([a-zA-Z]+|\d+)$)[a-zA-Z\d]{6,20}$/; 17 | if (item === '' || item === null) { 18 | return { status: false, msg: '请填写密码' }; 19 | } 20 | // if (item !== '' && !regular.test(item)) { 21 | // return { status: false, msg: '密码格式错误' }; 22 | // } 23 | if (item.length < 6) { 24 | return { status: false, msg: '密码不能小于5位' }; 25 | } 26 | return { status: true }; 27 | } 28 | export default { 29 | account, 30 | password, 31 | }; 32 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './App.vue'; 3 | import * as ElementUI from 'element-ui'; 4 | import router from './router'; 5 | import Vfilters from '@/views/filters/filters'; 6 | import store from '@/views/store/store'; 7 | import './assets/index.css'; 8 | import './permission'; 9 | 10 | for (const key in Vfilters) { 11 | Vue.filter(key, Vfilters[key]); 12 | } 13 | 14 | Vue.config.productionTip = false; 15 | Vue.use(ElementUI); 16 | new Vue({ 17 | router, 18 | store, 19 | render: (h) => h(App), 20 | }).$mount('#app'); 21 | 22 | -------------------------------------------------------------------------------- /src/permission.ts: -------------------------------------------------------------------------------- 1 | import router from './router'; 2 | import NProgress from 'nprogress'; // Progress 进度条 3 | import 'nprogress/nprogress.css'; 4 | import { Message } from 'element-ui'; 5 | 6 | const whiteList = ['/login']; // 不重定向白名单 7 | router.beforeEach((to, from, next) => { 8 | NProgress.start(); 9 | // if (store.getters.token) { 10 | // if (to.path === '/login') { // 自动登陆 11 | // next({ path: '/' }) 12 | // NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it 13 | // } else { 14 | // if (store.getters.roles.length === 0) { 15 | // store.dispatch('GetInfo').then(res => { // 拉取用户信息 16 | // next() 17 | // }).catch((err) => { 18 | // store.dispatch('FedLogOut').then(() => { 19 | // Message.error(err || 'Verification failed, please login again') 20 | // next({ name: 'login' }) 21 | // }) 22 | // }) 23 | // } else { 24 | next(); 25 | // } 26 | // } 27 | // } else { 28 | // if (whiteList.indexOf(to.path) !== -1) { 29 | // next() 30 | // } else { 31 | // next('/login') 32 | // NProgress.done() 33 | // } 34 | // } 35 | }); 36 | 37 | router.afterEach(() => { 38 | console.log(121); 39 | NProgress.done(); // 结束Progress 40 | }); 41 | -------------------------------------------------------------------------------- /src/router.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Router from 'vue-router'; 3 | import Layout from '@/views/layout/layout.vue'; // 主模版 4 | Vue.use(Router); 5 | 6 | // meta type==1 为搜索使用 { value: '', title: '全部', Field: 'status' }, 7 | // meta type==2 为搜索使用 { value: '/home/content?name=1111&pageNum=1&pageSize=20', title: '商品管理', Field: '' }, 8 | // meta type==3 为搜索使用 { value: '', title: '商品管理', Field: '' }, 9 | // name 当前要选中的这个导航点亮 10 | export default new Router({ 11 | routes: [ 12 | { 13 | path: '/', 14 | redirect: '/login', 15 | }, 16 | { 17 | path: '/login', 18 | name: 'login', 19 | component: () => import('@/views/login/login.vue'), 20 | }, 21 | // 首页商品 22 | { 23 | path: '/home', 24 | name: 'home', 25 | redirect: '/home/model', 26 | component: Layout, 27 | children: [ 28 | { 29 | path: 'model', 30 | name: 'model', 31 | meta: { 32 | type: '2', 33 | status: [ 34 | { value: '', title: '全部' }, 35 | { status: '1', title: '上架商品' }, 36 | { status: '0', title: '待上架商品' }, 37 | { status: '2', title: '下架商品' }, 38 | { status: '3', title: '待处理商品' }, 39 | ], 40 | }, 41 | component: () => import('@/views/model/model.vue'), 42 | }, 43 | { 44 | path: 'content', 45 | name: 'content', 46 | meta: { 47 | type: '3', 48 | status: [ 49 | { value: '/home/content', title: '商品管理', Field: '' }, 50 | { value: '1', title: '上架商品', Field: '' }, 51 | ], 52 | }, 53 | component: () => import('@/views/content/content.vue'), 54 | }, 55 | ], 56 | }, 57 | // 系统设置 58 | { 59 | path: '/system', 60 | name: 'system', 61 | redirect: '/system/permission', 62 | component: Layout, 63 | children: [ 64 | { 65 | path: 'permission', 66 | name: 'permission', 67 | meta: { 68 | type: '3', 69 | status: [ 70 | { value: '', title: '权限列表', Field: '' }, 71 | ], 72 | }, 73 | component: () => import('@/views/system/permission/permission.vue'), 74 | }, 75 | { 76 | path: 'user', 77 | name: 'user', 78 | meta: { 79 | type: '3', 80 | status: [ 81 | { value: '', title: '员工列表', Field: '' }, 82 | ], 83 | }, 84 | component: () => import('@/views/system/user/user.vue'), 85 | }, 86 | { 87 | path: 'permissionAdd', 88 | name: 'permissionAdd', 89 | meta: { 90 | type: '2', 91 | status: [ 92 | { value: '/system/permission', title: '权限列表', Field: '' }, 93 | { value: '', title: '权限设置', Field: '' }, 94 | ], 95 | name: 'permission' 96 | }, 97 | component: () => import('@/views/system/permission/permissionAdd.vue'), 98 | }, 99 | ], 100 | }, 101 | { 102 | path: '/haveNot', 103 | name: 'haveNot', 104 | component: () => import('@/views/haveNot/haveNot.vue'), 105 | }, 106 | { path: '*', redirect: '/haveNot' }, 107 | ], 108 | }); 109 | -------------------------------------------------------------------------------- /src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | import Vue, { VNode } from 'vue'; 2 | 3 | declare global { 4 | namespace JSX { 5 | // tslint:disable no-empty-interface 6 | interface Element extends VNode {} 7 | // tslint:disable no-empty-interface 8 | interface ElementClass extends Vue {} 9 | interface IntrinsicElements { 10 | [elem: string]: any; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import { Message } from 'element-ui'; 3 | import VueRouter from 'vue-router'; 4 | import { Route } from 'vue-router'; 5 | declare module '*.vue' { 6 | import Vue from 'vue'; 7 | export default Vue; 8 | } 9 | // 扩充 10 | declare module 'vue/types/vue' { 11 | interface Vue { 12 | $router: VueRouter; 13 | $route: Route; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/utils/utils.ts: -------------------------------------------------------------------------------- 1 | const util = { 2 | deep: (params: any) => {// 深拷贝 3 | if (params == '') { return ''; } 4 | let obj = {}; 5 | obj = JSON.parse(JSON.stringify(params)); 6 | return obj; 7 | }, 8 | }; 9 | export default util; 10 | -------------------------------------------------------------------------------- /src/utils/validate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by jinjinjin on 18/08/30. 3 | */ 4 | export function isvalidUsername(str: any) { 5 | if (!str) { 6 | return ''; 7 | } 8 | const valid = ['admin', 'editor']; 9 | return valid.indexOf(str.trim()) >= 0; 10 | } 11 | -------------------------------------------------------------------------------- /src/views/aixo/http.ts: -------------------------------------------------------------------------------- 1 | import Axios from 'axios'; 2 | import { Message } from 'element-ui'; 3 | import { getToken } from '@/views/utils/auth'; 4 | 5 | const httpServer = (opts: any) => { 6 | const httpDefaultOpts = { // http默认配置 7 | method: opts.method, 8 | baseURL: 'https://xxxx.com', // 测试 9 | url: opts.url, 10 | timeout: 100000, 11 | params: opts.params, 12 | data: opts.params, 13 | headers: opts.method == 'get' ? { 14 | 'X-Requested-With': 'XMLHttpRequest', 15 | 'Accept': 'application/json', 16 | 'Content-Type': 'application/json; charset=UTF-8', 17 | 'systoken': '', 18 | } : { 19 | 'Content-Type': 'application/json;charset=UTF-8' , 20 | 'systoken': '', 21 | }, 22 | }; 23 | if (getToken()) { 24 | const token: any = getToken(); 25 | httpDefaultOpts.headers.systoken = token; 26 | } 27 | if (opts.method == 'get') { 28 | delete httpDefaultOpts.data; 29 | } else { 30 | delete httpDefaultOpts.params; 31 | } 32 | const promise = new Promise(function(resolve, reject) { 33 | Axios(httpDefaultOpts).then( 34 | (res) => { 35 | if (res.data.code == -3) { 36 | resolve(res.data); 37 | } else { 38 | resolve(res.data); 39 | } 40 | }, 41 | ).catch( 42 | (response) => { 43 | reject(response); 44 | }, 45 | ); 46 | }); 47 | return promise; 48 | }; 49 | 50 | export default httpServer; 51 | -------------------------------------------------------------------------------- /src/views/content/content.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 99 | 100 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /src/views/filters/filters.ts: -------------------------------------------------------------------------------- 1 | import method from '@/views/method/method'; 2 | const vfilters: any = { 3 | tmsStatus: (items: any) => {// 物流信息 4 | let title; 5 | method.tmsStatus.forEach(function(res: any) { 6 | if (res.val == Number(items)) { 7 | title = res.title; 8 | } 9 | }); 10 | return title; 11 | }, 12 | isCpsProfit: (items: any) => {// 订单类型 13 | let title; 14 | method.isCpsProfit.forEach(function(res: any) { 15 | if (res.val == Number(items)) { 16 | title = res.title; 17 | } 18 | }); 19 | return title; 20 | }, 21 | profitType: (items: any) => {// 收益;类型类型 22 | let title; 23 | method.profitType.forEach(function(res: any) { 24 | if (res.val == Number(items)) { 25 | title = res.title; 26 | } 27 | }); 28 | return title; 29 | }, 30 | refundType: (items: any) => {// 售后方式 31 | let title; 32 | method.refundType.forEach(function(res: any) { 33 | if (res.val == Number(items)) { 34 | title = res.title; 35 | } 36 | }); 37 | return title; 38 | }, 39 | payStatus: (items: any) => {// 付款状态 40 | let title; 41 | method.payStatus.forEach(function(res: any) { 42 | if (res.val == Number(items)) { 43 | title = res.title; 44 | } 45 | }); 46 | return title; 47 | }, 48 | refundStatus: (items: any) => {// 退款状态 49 | let title; 50 | method.refundStatus.forEach(function(res: any) { 51 | if (res.val == Number(items)) { 52 | title = res.title; 53 | } 54 | }); 55 | return title; 56 | }, 57 | userisDels: (items: any) => {// 用户状态 58 | let title; 59 | method.userIsDel.forEach(function(res: any) { 60 | if (res.val == Number(items)) { 61 | title = res.title; 62 | } 63 | }); 64 | return title; 65 | }, 66 | 67 | userIsSeal: (items: any) => {// 用户状态 68 | let title; 69 | method.userIsSeal.forEach(function(res: any) { 70 | if (res.val == Number(items)) { 71 | title = res.title; 72 | } 73 | }); 74 | return title; 75 | }, 76 | capitalChannel: (items: any) => {// 支付方式 77 | let title; 78 | method.capitalChannel.forEach(function(res: any) { 79 | if (res.val == Number(items)) { 80 | title = res.title; 81 | } 82 | }); 83 | return title; 84 | }, 85 | tradeStatus: (items: any) => {// 主订单状态 86 | let title; 87 | method.orderTradeStatus.forEach(function(res: any) { 88 | if (res.val == Number(items)) { 89 | title = res.title; 90 | } 91 | }); 92 | return title; 93 | }, 94 | orderStatus: (items: any) => {// 子订单状态 95 | let title; 96 | method.orderStatus.forEach(function(res: any) { 97 | if (res.val == Number(items)) { 98 | title = res.title; 99 | } 100 | }); 101 | return title; 102 | }, 103 | changCtiy: (items: any) => {// 转化城市 104 | switch (Number(items)) { 105 | case 0: 106 | return '全国'; 107 | break; 108 | } 109 | }, 110 | changAdvertisement: (items: any) => {// 广告状态 111 | let title; 112 | method.changAdvertisement.forEach(function(res: any) { 113 | if (res.val == Number(items)) { 114 | title = res.title; 115 | } 116 | }); 117 | return title; 118 | }, 119 | formatSiteId: (items: any) => {// 站点 120 | let title; 121 | method.formatSiteId.forEach(function(res: any) { 122 | if (res.val == Number(items)) { 123 | title = res.title; 124 | } 125 | }); 126 | return title; 127 | }, 128 | changPlatform: (items: any) => {// 平台状态 129 | let title; 130 | method.changPlatform.forEach(function(res: any) { 131 | if (res.val == Number(items)) { 132 | title = res.title; 133 | } 134 | }); 135 | return title; 136 | }, 137 | commodlitystatus: (items: any) => {// 商品管理状态 138 | let title; 139 | method.commodlitystatus.forEach(function(res: any) { 140 | if (res.val == Number(items)) { 141 | title = res.title; 142 | 143 | } 144 | }); 145 | return title; 146 | }, 147 | formatDate(time: string) {// 时间戳转化日期 148 | if (!time) { return ''; } 149 | const date = new Date(time); 150 | return formatDate(date, 'yyyy-MM-dd hh:mm'); 151 | }, 152 | parseFloat(items: any) { 153 | let item:any = parseFloat(items); 154 | if (isNaN(item)) { 155 | return false; 156 | } 157 | const f:any = Math.round(items * 100) / 100; 158 | let s = f.toString(); 159 | let rs = s.indexOf('.'); 160 | if (rs < 0) { 161 | rs = s.length; 162 | s += '.'; 163 | } 164 | while (s.length <= rs + 2) { 165 | s += '0'; 166 | } 167 | return s; 168 | }, 169 | mathCeil(items: any) { 170 | if (!items) { return '0%'; } 171 | return Math.ceil(items * 10000) / 100 + '%'; 172 | }, 173 | /** 174 | * 站点的过滤器 175 | * @param item 176 | * @param res 177 | * @returns {*} 178 | */ 179 | site(item: any, res: any) { 180 | if (!item) { return ''; } 181 | if (!res) { return ''; } 182 | for (const items of res) { 183 | if (items.id == item) { 184 | return items.siteName; 185 | } 186 | } 187 | }, 188 | }; 189 | 190 | function formatDate(date: any, fmt: string) { 191 | if (/(y+)/.test(fmt)) { 192 | fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); 193 | } 194 | const o: any = { 195 | 'M+': date.getMonth() + 1, 196 | 'd+': date.getDate(), 197 | 'h+': date.getHours(), 198 | 'm+': date.getMinutes(), 199 | 's+': date.getSeconds(), 200 | }; 201 | for (const k in o) { 202 | if (new RegExp(`(${k})`).test(fmt)) { 203 | const str = o[k] + ''; 204 | fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); 205 | } 206 | } 207 | return fmt; 208 | } 209 | 210 | function padLeftZero(str: string) { 211 | return ('00' + str).substr(str.length); 212 | } 213 | 214 | 215 | export default vfilters; 216 | -------------------------------------------------------------------------------- /src/views/haveNot/haveNot.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/views/interface/login.ts: -------------------------------------------------------------------------------- 1 | import Http from '@/views/aixo/http'; 2 | 3 | /** 4 | * 登陆的接口 5 | * @param res 参数 6 | */ 7 | export const sysUserLogin = (res: any) => { 8 | return Http({ 9 | url: 'xxx', 10 | method: 'post', 11 | params: res, 12 | }); 13 | }; 14 | -------------------------------------------------------------------------------- /src/views/interface/nabarInteface.ts: -------------------------------------------------------------------------------- 1 | import Http from '@/views/aixo/http'; 2 | 3 | /** 4 | * 总系统角色菜单 | 根据用户ID获取所属角色的菜单 5 | * @param userId 用户id 6 | */ 7 | export const manageSysRoleMenuUserId = (userId: any) => { 8 | return Http({ 9 | url: `/xxx/${userId}`, 10 | method: 'post', 11 | }); 12 | }; 13 | -------------------------------------------------------------------------------- /src/views/interface/system.ts: -------------------------------------------------------------------------------- 1 | import Http from '@/views/aixo/http'; 2 | 3 | /** 4 | * 系统菜单列表 5 | * @param res 参数 6 | */ 7 | export const sysMenuPage = (res: any) => { // 系统菜单|系统菜单列表 8 | return Http({ 9 | url: '/xxx/xxx/xxx', 10 | method: 'post', 11 | params: res, 12 | }); 13 | }; 14 | /** 15 | * 用户管理列表 16 | * @param res 参数 17 | */ 18 | export const sysUserPage = (res: any) => { // 用户菜单|用户管理列表 19 | return Http({ 20 | url: '/xxx/xxx/xxx', 21 | method: 'post', 22 | params: res, 23 | }); 24 | }; 25 | /** 26 | * 系统角色列表 27 | * @param res 参数 28 | */ 29 | export const sysRolePage = (res: any) => { // 用户菜单|系统角色列表 30 | return Http({ 31 | url: '/manage/sysRole/page', 32 | method: 'post', 33 | params: res, 34 | }); 35 | }; 36 | /** 37 | * 修改用户 38 | * @param res 参数 39 | */ 40 | export const sysUserAdd = (res: any) => { // 用户菜单|创建用户 41 | return Http({ 42 | url: '/manage/sysUser/add', 43 | method: 'post', 44 | params: res, 45 | }); 46 | }; 47 | /** 48 | * 获取当前用户 49 | * @param id 参数 50 | */ 51 | export const sysMenuEdit = (id: string) => { // 用户菜单|获取当前用户 52 | return Http({ 53 | url: `/manage/sysUser/edit/${id}`, 54 | method: 'post', 55 | }); 56 | }; 57 | /** 58 | * 修改用户 59 | * @param res 参数 60 | */ 61 | export const sysUserUpdate = (res: any) => { // 用户菜单|修改用户 62 | return Http({ 63 | url: '/manage/sysUser/update', 64 | method: 'post', 65 | params: res, 66 | }); 67 | }; 68 | 69 | /** 70 | * 根据id查询用户 71 | * @param res 参数 72 | */ 73 | export const sysUserEdit = (id: any) => { // 用户菜单|根据id查询用户 74 | return Http({ 75 | url: `/manage/sysUser/edit/${id}`, 76 | method: 'get', 77 | }); 78 | }; 79 | /** 80 | * 修改系统菜单 81 | * @param res 参数 82 | */ 83 | export const sysMenuUpdate = (res: any) => { // 系统菜单|修改系统菜单 84 | return Http({ 85 | url: `/manage/sysMenu/update`, 86 | method: 'post', 87 | params: res, 88 | }); 89 | }; 90 | /** 91 | * 创建系统菜单 92 | * @param res 参数 93 | */ 94 | export const sysMenuAdd = (res: any) => { // 系统菜单|创建系统菜单 95 | return Http({ 96 | url: `/manage/sysMenu/add`, 97 | method: 'post', 98 | params: res, 99 | }); 100 | }; 101 | 102 | -------------------------------------------------------------------------------- /src/views/layout/content/AppMain.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 14 | 15 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/views/layout/content/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Navbar } from './navbar.vue' 2 | export { default as Prompt } from './prompt.vue' 3 | export { default as AppMain } from './AppMain.vue' -------------------------------------------------------------------------------- /src/views/layout/content/navbar.vue: -------------------------------------------------------------------------------- 1 | 109 | 110 | 151 | 152 | 239 | 240 | 241 | -------------------------------------------------------------------------------- /src/views/layout/content/newtab.vue: -------------------------------------------------------------------------------- 1 | 41 | 42 | 61 | 62 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /src/views/layout/content/prompt.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 31 | 32 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/views/layout/layout.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/views/layout/style.scss: -------------------------------------------------------------------------------- 1 | .t-container{ 2 | width: 100%; 3 | padding: 0 200px; 4 | } 5 | .t-navbar-con{ 6 | position: fixed; 7 | left: 0; 8 | top: 0; 9 | width: 200px; 10 | height: 100%; 11 | box-shadow: 0 0 1px 0 rgba(0,0,0,.2); 12 | z-index: 99; 13 | } 14 | .t-prompt-content{ 15 | position: absolute; 16 | width: 200px; 17 | right: -200px; 18 | bottom: 0; 19 | box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.2); 20 | z-index: 99; 21 | top: 0; 22 | background: white; 23 | } 24 | .t-po-r{ 25 | position: relative; 26 | } 27 | .AppMainBo{ 28 | text-align: center; 29 | width: 100%; 30 | height: 50px; 31 | padding: 10px; 32 | line-height: 30px; 33 | font-size: 14px; 34 | color: rgb(51,51,51); 35 | } -------------------------------------------------------------------------------- /src/views/login/login.component.ts: -------------------------------------------------------------------------------- 1 | 2 | import { isvalidUsername } from '@/utils/validate.ts'; 3 | import Verification from '@/components/verification/verification.ts'; 4 | import { Component, Vue, Model } from 'vue-property-decorator'; 5 | import { State, Action, Getter ,Mutation } from "vuex-class"; 6 | /** 7 | * 定义当前数据 8 | */ 9 | interface Validate { 10 | loginAccount: string; 11 | password: string; 12 | } 13 | 14 | /** 15 | * 定义当前表单验证 16 | */ 17 | interface LoginRulesFun { 18 | loginAccount: { 19 | required: boolean, 20 | trigger: string, 21 | validator: (rule: any, value: string, callback: () => {}) => void, 22 | }; 23 | password: { 24 | required: boolean, 25 | trigger: string, 26 | validator: (rule: any, value: string, callback: () => {}) => void, 27 | }; 28 | } 29 | @Component({ 30 | name: 'login', 31 | }) 32 | export default class Login extends Vue { 33 | // 定加载 34 | private loading: boolean = false; 35 | // 定义input type 36 | private loginForm: Validate = { 37 | loginAccount: '', 38 | password: '', 39 | }; 40 | @State imgUrl: string; 41 | //最先开始执行 42 | created() { 43 | console.log(this.imgUrl); 44 | console.log(Action); 45 | console.log(Getter); 46 | console.log(Mutation) 47 | } 48 | /** 49 | * 表单验证 50 | */ 51 | private loginRules: LoginRulesFun = { 52 | loginAccount: { 53 | required: true, 54 | trigger: 'change', 55 | validator: (rule: any, value: string, callback: (res?: any) => {}) => { 56 | if (!isvalidUsername(value)) { 57 | callback(new Error('请输入正确的用户名')); 58 | } else { 59 | callback(); 60 | } 61 | }, 62 | }, 63 | password: { 64 | required: true, 65 | trigger: 'change', 66 | validator: (rule: any, value: string, callback: (res?: any) => {}) => { 67 | if (value.length < 5) { 68 | callback(new Error('密码不能小于5位')); 69 | } else { 70 | callback(); 71 | } 72 | }, 73 | }, 74 | }; 75 | /** 76 | * 登陆 77 | */ 78 | private handleLogin() { 79 | if (this.Verification()) { 80 | this.loading = true; 81 | this.$message({ 82 | showClose: true, 83 | message: '登陆成功', 84 | type: 'success', 85 | }); 86 | this.$router.push({ path: '/system' }); 87 | // this.$store.dispatch('Login', this.loginForm).then((res: any) => { 88 | // if (res.code == 0) { 89 | // this.$message({ 90 | // showClose: true, 91 | // message: '登陆成功', 92 | // type: 'success', 93 | // }); 94 | // localStorage.setItem('userList', JSON.stringify(res.data)); 95 | // if (localStorage.getItem('NavigationIndex')) { 96 | // localStorage.removeItem('NavigationIndex'); 97 | // } 98 | // // that.$router.push({path:'/home/commodityList/empty/empty/empty/empty/0/empty/empty/empty/empty/1/20'}); 99 | // this.$router.push({ path: '/system' }); 100 | // } else { 101 | // this.loading = false; 102 | // this.$message(res.data); 103 | // } 104 | // console.log(res); 105 | // }).catch(() => { 106 | // this.loading = false; 107 | // }); 108 | } 109 | } 110 | /** 111 | * 表单验证 112 | */ 113 | private Verification(): boolean { 114 | // 账号的验证 115 | if (!Verification.account(this.loginForm.loginAccount).status) { 116 | this.$message(Verification.account(this.loginForm.loginAccount).msg); 117 | return false; 118 | } 119 | // 密码的验证 120 | if (!Verification.password(this.loginForm.password).status) { 121 | this.$message(Verification.password(this.loginForm.password).msg); 122 | return false; 123 | } 124 | return true; 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /src/views/login/login.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 33 | 34 | 67 | 68 | 124 | 208 | -------------------------------------------------------------------------------- /src/views/method/method.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 主交易单状态 3 | * 0未确认,1已确认,2待发货,3已发货,4申请取消, 4 | * 7申请售后,50用户拒签,51已取消,54交易关闭,55已完成', 5 | * @type {*[]} 6 | */ 7 | const orderTradeStatus: object[] = [ 8 | {val: '0', title: '未确认'}, 9 | {val: '1', title: '已确认'}, 10 | {val: '2', title: '待发货'}, 11 | {val: '3', title: '已发货'}, 12 | {val: '4', title: '申请取消'}, 13 | {val: '7', title: '申请售后'}, 14 | {val: '50', title: '用户拒签'}, 15 | {val: '51', title: '已取消'}, 16 | {val: '54', title: '交易关闭'}, 17 | {val: '55', title: '已完成'}, 18 | ]; 19 | /** 20 | * 商品管理状态 21 | * @type {*[]} 22 | */ 23 | const commodlitystatus: object[] = [ 24 | {val: 0, title: '待上架'}, 25 | {val: 1, title: '上架'}, 26 | {val: 2, title: '下架'}, 27 | {val: 3, title: '待处理'}, 28 | ]; 29 | /** 30 | * 支付状态 31 | * @type {*[]} 32 | * 1未付款 2已付款 3退款中 4部分退款 5已退款 33 | */ 34 | const payStatus: object[] = [ 35 | {val: '1', title: '待支付'}, 36 | {val: '2', title: '支付成功'}, 37 | {val: '3', title: '退款中'}, 38 | {val: '4', title: '部分退款'}, 39 | {val: '5', title: '已退款'}, 40 | ]; 41 | /** 42 | * 站点管理 43 | * @type {*[]} 44 | */ 45 | const formatSiteId: object[] = [ 46 | {val: 1, title: '北京'}, 47 | {val: 2, title: '上海'}, 48 | {val: 31, title: '无锡'}, 49 | {val: 4, title: '全国'}, 50 | ]; 51 | /** 52 | * 广告状态 53 | * @type {*[]} 54 | */ 55 | const changAdvertisement: object[] = [ 56 | {val: 1, title: '启用'}, 57 | {val: 2, title: '未启用'}, 58 | ]; 59 | /** 60 | * 平台状态 61 | * @type {*[]} 62 | */ 63 | const changPlatform: object[] = [ 64 | {val: 1, title: '小程序'}, 65 | ]; 66 | /** 67 | * 支付方式 68 | * @type {*[]} 69 | */ 70 | const capitalChannel: object[] = [ 71 | {val: 1, title: '微信'}, 72 | {val: 2, title: '支付宝'}, 73 | {val: 3, title: '银行卡'}, 74 | ]; 75 | /** 76 | * 用户状态:0正常 1已删除 默认0 77 | * @type {*[]} 78 | */ 79 | const userIsDel: object[] = [ 80 | {val: '0', title: '正常'}, 81 | {val: '1', title: '已删除'}, 82 | ]; 83 | /** 84 | * 用户状态:0正常 1封停 默认0 85 | * @type {*[]} 86 | */ 87 | const userIsSeal: object[] = [ 88 | {val: '0', title: '正常'}, 89 | {val: '1', title: '封停'}, 90 | ]; 91 | /** 92 | * 退款状态: 93 | 状态: 94 | 101:审核中 95 | 102:拒绝退款 96 | 103:可退款,退款中 97 | 104:退款完成 98 | 105:退款失败 99 | 201:审核中 100 | 202:审核拒绝 101 | 203:审核通过,卖家待发货 102 | 204:买家待收货 103 | 205:补发完成 104 | 111:审核中 105 | 112:拒绝退款 106 | 113:可退款,退款中 107 | 114:退款成功 108 | * @type {*[]} 109 | */ 110 | const refundStatus: object[] = [ 111 | {val: '101', title: '审核中'}, 112 | {val: '102', title: '拒绝退款'}, 113 | {val: '103', title: '可退款,退款中'}, 114 | {val: '104', title: '退款完成'}, 115 | {val: '105', title: '退款失败'}, 116 | {val: '201', title: '审核中'}, 117 | {val: '202', title: '审核拒绝'}, 118 | {val: '203', title: '审核通过,卖家待发货'}, 119 | {val: '204', title: '买家待收货'}, 120 | {val: '205', title: '补发完成'}, 121 | {val: '111', title: '审核中'}, 122 | {val: '112', title: '拒绝退款'}, 123 | {val: '113', title: '可退款,退款中'}, 124 | {val: '114', title: '退款成功'}, 125 | ]; 126 | /** 127 | * 售后方式: 1:直接退款 2:补发 128 | * @type {*[]} 129 | */ 130 | const refundType: object[] = [ 131 | {val: '1', title: '直接退款'}, 132 | // {val:'2',title:'补发'}, 133 | ]; 134 | /** 135 | * 订单类型: 0:自购 1:cps 136 | * @type {*[]} 137 | */ 138 | const isCpsProfit: object[] = [ 139 | {val: '0', title: '自购'}, 140 | {val: '1', title: 'cps'}, 141 | // {val:'2',title:'补发'}, 142 | ]; 143 | /** 144 | * 收益类型: 1:直接退款 2:补发 145 | * @type {*[]} 146 | */ 147 | const profitType: object[] = [ 148 | {val: '0', title: '自购'}, 149 | {val: '1', title: 'cps'}, 150 | // {val:'2',title:'补发'}, 151 | ]; 152 | /** 153 | * 物流信息 154 | * 2:运输中 3:用户已签收 4:用户拒收 155 | * @type {*[]} 156 | */ 157 | const tmsStatus: object[] = [ 158 | {val: '2', title: '运输中'}, 159 | {val: '3', title: '用户已签收'}, 160 | {val: '4', title: '用户拒收'}, 161 | ]; 162 | /** 163 | * 支付方式 164 | * @type {*[]} 165 | */ 166 | // 0未确认,1已确认,2待发货,3已发货,4申请取消,5申请退货,6申请换货, 167 | // 8已签收,50用户拒签,51已取消,52已退货,53部分退货,54已关闭,55已完成', 168 | const orderStatus: object[] = [ 169 | {val: 0, title: '未确认'}, 170 | {val: 1, title: '已确认'}, 171 | {val: 2, title: '待发货'}, 172 | {val: 3, title: '已发货'}, 173 | {val: 4, title: '申请取消'}, 174 | {val: 5, title: '申请退货'}, 175 | {val: 6, title: '申请换货'}, 176 | {val: 8, title: '已签收'}, 177 | {val: 50, title: '用户拒签'}, 178 | {val: 51, title: '已取消'}, 179 | {val: 52, title: '已退货'}, 180 | {val: 53, title: '部分退货'}, 181 | {val: 54, title: '已关闭'}, 182 | {val: 55, title: '已完成'}, 183 | ]; 184 | export default{ 185 | profitType, 186 | isCpsProfit, 187 | refundType, 188 | refundStatus, 189 | userIsDel, 190 | userIsSeal, 191 | orderStatus, 192 | payStatus, 193 | capitalChannel, 194 | orderTradeStatus, 195 | commodlitystatus, 196 | formatSiteId, 197 | changAdvertisement, 198 | tmsStatus, 199 | changPlatform, 200 | }; 201 | -------------------------------------------------------------------------------- /src/views/model/model.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/views/store/actions.ts: -------------------------------------------------------------------------------- 1 | import { sysUserLogin } from '@/views/interface/login'; 2 | import { getToken, setToken, removeToken } from '@/views/utils/auth'; 3 | import { ActionTree } from 'vuex'; 4 | import { Message } from 'element-ui'; 5 | 6 | const actions: ActionTree = { 7 | /** 8 | * 登陆 9 | * @param param0 10 | * @param userInfo 登陆信息 11 | */ 12 | async Login({state, commit} , userInfo: any) { 13 | return new Promise((resolve, reject) => { 14 | sysUserLogin(userInfo).then((response: any) => { 15 | setToken(response.data.systoken); 16 | console.log(response.data.systoken); 17 | commit('SET_TOKEN', response.data.systoken); 18 | resolve(response); 19 | }).catch((error) => { 20 | reject(error); 21 | }); 22 | }); 23 | }, 24 | /** 25 | * 获取接口传值参数 26 | * @param param0 27 | * @param params 28 | */ 29 | // async paramsUrl({state, commit} , params:any) { 30 | // let data:any = {}; 31 | // for(let variable in params){ //variable 为属性名 32 | // if (params[variable]!=''&¶ms[variable]!=null) { 33 | // data[variable] = params[variable] 34 | // } 35 | // } 36 | // return data 37 | // }, 38 | async paramsUrl({state, commit} , params: any) { 39 | let data: string = ''; 40 | let index: number = 0; 41 | for (const variable in params) { // variable 为属性名 42 | if (params[variable] != '' && params[variable] != null) { 43 | if (index == 0) { 44 | data += `?${variable}=${params[variable]}`; 45 | } else { 46 | data += `&${variable}=${params[variable]}`; 47 | } 48 | ++index; 49 | } 50 | } 51 | return data; 52 | }, 53 | /** 54 | * 获取 55 | * @param param0 56 | * @param params 57 | */ 58 | async getJumpUrl({state, commit} , params: any) { 59 | 60 | // return data 61 | }, 62 | /** 63 | * 深拷贝 64 | * @param param0 65 | * @param params 66 | */ 67 | async deep({state, commit} , params: any) { 68 | let obj = {}; 69 | obj = JSON.parse(JSON.stringify(params)); 70 | return obj; 71 | }, 72 | 73 | }; 74 | 75 | export default actions; 76 | 77 | -------------------------------------------------------------------------------- /src/views/store/getters.ts: -------------------------------------------------------------------------------- 1 | const getters = { 2 | token: (state:any) => state.token, 3 | } 4 | export default getters 5 | -------------------------------------------------------------------------------- /src/views/store/modules/user.ts: -------------------------------------------------------------------------------- 1 | import { sysUserLogin } from '@/views/interface/login' 2 | import { getToken, setToken, removeToken } from '@/views/utils/auth' 3 | import { ActionTree } from 'vuex' 4 | import {AxiosResponse} from 'axios' 5 | 6 | const actions: ActionTree = { 7 | async Login({state, commit} , userInfo:any) { 8 | const res = await sysUserLogin(userInfo) 9 | 10 | console.log(res) 11 | // return new Promise((resolve, reject) => { 12 | // sysUserLogin(userInfo).then((response:any) => { 13 | // setToken(response.data.systoken) 14 | // console.log(response.data.systoken) 15 | // commit('SET_TOKEN', response.data.systoken) 16 | // console.log(123124234) 17 | // resolve(response) 18 | // }).catch(error => { 19 | // reject(error) 20 | // }) 21 | // }) 22 | }, 23 | } 24 | 25 | export default actions; 26 | // const user = { 27 | // state: { 28 | // token: getToken(), 29 | // name: '', 30 | // avatar: '', 31 | // roles: [] 32 | // }, 33 | 34 | // mutations: { 35 | // SET_TOKEN: (state:any, token:string) => { 36 | // state.token = token 37 | // console.log(3232) 38 | // }, 39 | // // SET_NAME: (state, name) => { 40 | // // state.name = name 41 | // // }, 42 | // // SET_AVATAR: (state, avatar) => { 43 | // // state.avatar = avatar 44 | // // }, 45 | // // SET_ROLES: (state, roles) => { 46 | // // state.roles = roles 47 | // // } 48 | // }, 49 | 50 | // actions: { 51 | // // 登录 52 | // Login(commit:any , userInfo:any) { 53 | // return new Promise((resolve, reject) => { 54 | // sysUserLogin(userInfo).then((response:any) => { 55 | // setToken(response.data.systoken) 56 | // console.log(response.data.systoken) 57 | // commit('SET_TOKEN', response.data.systoken) 58 | // console.log(123124234) 59 | // resolve(response) 60 | // }).catch(error => { 61 | // reject(error) 62 | // }) 63 | // }) 64 | // }, 65 | 66 | // // 获取用户信息 67 | // // GetInfo({ commit:any, state }) { 68 | // // return new Promise((resolve, reject) => { 69 | // // getInfo(state.token).then(response => { 70 | // // const data = response.data 71 | // // if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 72 | // // commit('SET_ROLES', data.roles) 73 | // // } else { 74 | // // reject('getInfo: roles must be a non-null array !') 75 | // // } 76 | // // commit('SET_NAME', data.name) 77 | // // commit('SET_AVATAR', data.avatar) 78 | // // resolve(response) 79 | // // }).catch(error => { 80 | // // reject(error) 81 | // // }) 82 | // // }) 83 | // // }, 84 | 85 | // // 登出 86 | // // LogOut({ commit, state }) { 87 | // // return new Promise((resolve, reject) => { 88 | // // logout(state.token).then(() => { 89 | // // commit('SET_TOKEN', '') 90 | // // commit('SET_ROLES', []) 91 | // // removeToken() 92 | // // resolve() 93 | // // }).catch(error => { 94 | // // reject(error) 95 | // // }) 96 | // // }) 97 | // // }, 98 | 99 | // // 前端 登出 100 | // // FedLogOut({ commit }) { 101 | // // return new Promise(resolve => { 102 | // // removeToken() 103 | // // commit('SET_TOKEN', '') 104 | // // resolve() 105 | // // }) 106 | // // } 107 | // } 108 | // } 109 | 110 | // export default user 111 | -------------------------------------------------------------------------------- /src/views/store/mutations.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | // 登陆成功后执行 3 | SET_TOKEN(state: any, data: any) { 4 | state.token = data 5 | }, 6 | } -------------------------------------------------------------------------------- /src/views/store/state.ts: -------------------------------------------------------------------------------- 1 | // 初始状态 2 | import { getToken, setToken, removeToken } from '@/views/utils/auth' 3 | const state: any = { 4 | token: getToken(), 5 | imgUrl: 'https://api.uat.iyuedian.com/iyd-imall-manage/imall/v1/upload' 6 | } 7 | export default state -------------------------------------------------------------------------------- /src/views/store/store.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuex from 'vuex'; 3 | import getters from './getters'; 4 | import actions from './actions'; 5 | import state from './state'; 6 | import mutations from './mutations'; 7 | Vue.use(Vuex); 8 | 9 | const store = new Vuex.Store({ 10 | // modules: { 11 | // user 12 | // }, 13 | state, 14 | mutations, 15 | actions, 16 | getters 17 | }); 18 | 19 | export default store -------------------------------------------------------------------------------- /src/views/system/permission/permission.component.ts: -------------------------------------------------------------------------------- 1 | import newTab from '@/views/layout/content/newtab.vue'; 2 | import Reset from '@/components/reset/reset.vue'; 3 | import Pagination from '@/components/pagination/pagination.vue'; 4 | import { sysMenuPage, sysMenuEdit, sysMenuUpdate, sysMenuAdd } from '@/views/interface/system'; 5 | import Utils from '@/utils/utils'; 6 | import method from '@/views/method/method'; 7 | import { Component, Vue, Model, Watch, Provide } from 'vue-property-decorator'; 8 | @Component({ 9 | components: { 10 | newTab, 11 | Reset, 12 | Pagination 13 | } 14 | }) 15 | export default class Content extends Vue { 16 | @Provide() 17 | centerDialogVisible: boolean = false; 18 | form: any = {} 19 | userIsDel:object[] = method.userIsDel; 20 | loading: boolean = false; 21 | tableData:any = []; 22 | oneList:any = []; 23 | searchReserved = {} 24 | Paginationtotal:number = 0; 25 | //定义当前的搜索标格 26 | formInline:any = {}; 27 | //最先开始执行 28 | created():void { 29 | this.start(this.$route.query) 30 | } 31 | //监听路由变化 32 | @Watch('$route') 33 | onRouteChanged(route: any, oldRoute: any) :void { 34 | this.start(route.query) 35 | this.$forceUpdate() 36 | } 37 | /** 38 | * 搜索 39 | */ 40 | public search():void { 41 | let _this = this; 42 | let data = Utils.deep(this.formInline) 43 | this.$store.dispatch('paramsUrl',data).then((res:any) => { 44 | this.$router.push(`${this.$route.path}${res}`) 45 | }) 46 | } 47 | /** 48 | * 编辑 49 | */ 50 | private handleClick(item:any){ 51 | sysMenuEdit(item.id) 52 | .then((res:any)=>{ 53 | if (res.code==0){ 54 | this.form = res.data 55 | this.form.parentId = Number(this.form.parentId) 56 | this.centerDialogVisible = true 57 | } else { 58 | this.$message(res.msg); 59 | } 60 | },(error:any)=>{ 61 | console.log(error) 62 | }) 63 | } 64 | /** 65 | * 开始执行 66 | * query 当前url上的搜索参数 67 | */ 68 | public start (query:any){ 69 | this.loading = true; 70 | // 深拷贝 71 | this.formInline = Utils.deep(query) 72 | if(!this.formInline.pageNum){ 73 | this.formInline.pageNum = 1 74 | this.formInline.pageSize = 20 75 | } 76 | sysMenuPage(this.formInline) 77 | .then((res:any) => { 78 | this.loading = false; 79 | if(res.code==0){ 80 | let arr:object[] = []; 81 | this.tableData = res.data.list; 82 | for (let item of this.tableData) { 83 | if (item.type==1){ 84 | arr.push(item) 85 | } 86 | } 87 | this.oneList = arr 88 | this.Paginationtotal = res.data.total; 89 | }else{ 90 | this.$message(res.data) 91 | } 92 | }).catch(() => { 93 | this.loading = false; 94 | }); 95 | } 96 | /** 97 | * 提交用户信息 98 | */ 99 | private addUserList(){ 100 | let that = this; 101 | if (this.form.id){ 102 | sysMenuUpdate(this.form) 103 | .then((res:any)=>{ 104 | if (res.code==0){ 105 | this.$message({ 106 | type: 'success', 107 | message: '修改成功!' 108 | }); 109 | that.start(this.$route.query) 110 | that.centerDialogVisible = false 111 | } else { 112 | this.$message(res.data.msg); 113 | } 114 | },(error:any)=>{ 115 | this.$message(error.data.msg); 116 | }) 117 | } else { 118 | sysMenuAdd(this.form) 119 | .then((res:any)=>{ 120 | if (res.code==0){ 121 | this.$message({ 122 | type: 'success', 123 | message: '创建成功!' 124 | }); 125 | that.start(this.$route.query) 126 | that.centerDialogVisible = false 127 | } else { 128 | this.$message(res.data.msg); 129 | } 130 | },(error:any)=>{ 131 | this.$message(error.data.msg); 132 | }) 133 | } 134 | } 135 | private centerDialogAdd() { 136 | this.form = {}; 137 | this.centerDialogVisible = true 138 | } 139 | // 查看新增插件 140 | private centerDialogPlugin() { 141 | this.$router.push({name: 'permissionAdd'}) 142 | } 143 | private deactivated() { 144 | // console.log(4); 145 | } 146 | } -------------------------------------------------------------------------------- /src/views/system/permission/permission.vue: -------------------------------------------------------------------------------- 1 | 123 | 124 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/views/system/permission/permissionAdd.vue: -------------------------------------------------------------------------------- 1 | 46 | 47 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /src/views/system/permission/style.scss: -------------------------------------------------------------------------------- 1 | .t-container-permission{ 2 | width: 100%; 3 | box-sizing: border-box; 4 | margin-bottom: 20px; 5 | } 6 | .t-container-title{ 7 | width: 50%; 8 | display: inline-block; 9 | cursor: pointer; 10 | vertical-align: top; 11 | overflow: visible; 12 | -webkit-box-flex: 1; 13 | -ms-flex: 1; 14 | -webkit-flex: 1; 15 | -moz-box-flex: 1; 16 | flex: 1; 17 | } 18 | .t-container-headerA{ 19 | position: relative; 20 | background: #38f; 21 | color: #fff; 22 | height: 44px; 23 | line-height: 44px; 24 | font-size: 14px; 25 | /*background: #f8f8f8;*/ 26 | /*color: #666;*/ 27 | text-align: center; 28 | padding: 0 10px; 29 | } 30 | .t-container-headerB{ 31 | position: relative; 32 | background: #38f; 33 | color: #fff; 34 | height: 44px; 35 | line-height: 44px; 36 | font-size: 14px; 37 | background: #f8f8f8; 38 | color: #666; 39 | text-align: center; 40 | padding: 0 10px; 41 | } 42 | 43 | .t-container-headerB:before { 44 | content: " "; 45 | display: block; 46 | width: 0; 47 | height: 0; 48 | border-top: 22px solid #f8f8f8; 49 | border-bottom: 22px solid #f8f8f8; 50 | border-left: 12px solid transparent; 51 | position: absolute; 52 | top: 49%; 53 | margin-top: -22px; 54 | left: -12px; 55 | } 56 | .t-container-headerA:after { 57 | content: " "; 58 | display: block; 59 | width: 0; 60 | height: 0; 61 | border-top: 22px solid transparent; 62 | border-bottom: 22px solid transparent; 63 | border-left: 12px solid #f8f8f8; 64 | position: absolute; 65 | top: 49%; 66 | margin-top: -22px; 67 | right: -12px; 68 | } 69 | .t-permission-type{ 70 | background-color: #f8f8f8; 71 | font-size: 14px; 72 | font-weight: 400; 73 | padding: 10px; 74 | margin-bottom: 10px; 75 | } 76 | .t-app-actions{ 77 | position: fixed; 78 | bottom: 0; 79 | //width: 850px; 80 | z-index: 10; 81 | left: 210px; 82 | right: 210px; 83 | width: auto; 84 | min-width: 780px; 85 | height: 50px; 86 | -webkit-transition: right .5s; 87 | -moz-transition: right .5s; 88 | transition: right .5s; 89 | } 90 | .t-app-actions-content{ 91 | width: 100%; 92 | background: #ffc; 93 | padding: 10px; 94 | border-top: none; 95 | text-align: center; 96 | } -------------------------------------------------------------------------------- /src/views/typings/ajax.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Ajax { 2 | // axios 返回数据 3 | export interface AxiosResponse { 4 | data: AjaxResponse; 5 | } 6 | 7 | // 请求接口数据 8 | export interface AjaxResponse { 9 | ID: number; 10 | /** 11 | * 消息 12 | * @type { string } 13 | */ 14 | message?: string; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/views/utils/auth.ts: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'systoken' 4 | 5 | export const getToken = () => { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export const setToken = (token:any) => { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export const removeToken = ()=> { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /src/vue-config.d.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | declare module "*.vue" { 3 | import Vue from "vue"; 4 | export default Vue; 5 | } -------------------------------------------------------------------------------- /src/vue-shim.d.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | // 声明全局方法 3 | declare module 'vue/types/vue' { 4 | interface Vue { 5 | $Message: any; 6 | $Modal: any; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "importHelpers": true, 8 | "moduleResolution": "node", 9 | "experimentalDecorators": true, 10 | "esModuleInterop": true, 11 | "allowSyntheticDefaultImports": true, 12 | "sourceMap": true, 13 | "baseUrl": ".", 14 | "types": [ 15 | "node" 16 | ], 17 | "paths": { 18 | "@/*": [ 19 | "src/*" 20 | ] 21 | }, 22 | "lib": [ 23 | "esnext", 24 | "dom", 25 | "dom.iterable", 26 | "scripthost" 27 | ] 28 | }, 29 | "include": [ 30 | "src/**/*.ts", 31 | "src/**/*.tsx", 32 | "src/**/*.vue", 33 | "tests/**/*.ts", 34 | "tests/**/*.tsx" 35 | ], 36 | "exclude": [ 37 | "node_modules" 38 | ] 39 | } 40 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "warning", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "linterOptions": { 7 | "exclude": [ 8 | "node_modules/**" 9 | ] 10 | }, 11 | "rules": { 12 | "quotemark": [true, "single"], 13 | "indent": [true, "spaces", 2], 14 | "interface-name": false, 15 | "ordered-imports": false, 16 | "object-literal-sort-keys": false, 17 | "no-consecutive-blank-lines": false 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | // vue.config.js 2 | module.exports = { 3 | // 选项... 4 | // 当使用基于 HTML5 history.pushState 的路由时; 5 | // 当使用 pages 选项构建多页面应用时。 6 | baseUrl:"", 7 | // 当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。 8 | outputDir:"webApp", 9 | // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。 10 | assetsDir:"assets", 11 | // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。 12 | indexPath:"index.html", 13 | // 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。然而,这也要求 index 的 HTML 是被 Vue CLI 自动生成的。如果你无法使用 Vue CLI 生成的 index HTML,你可以通过将这个选项设为 false 来关闭文件名哈希。 14 | filenameHashing:true, 15 | // 多页面 16 | pages:undefined, 17 | // 编译警告 18 | lintOnSave:false, 19 | // 是否使用包含运行时编译器的 Vue 构建版本。设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。 20 | runtimeCompiler:false, 21 | // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。 22 | transpileDependencies:[], 23 | // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 24 | productionSourceMap:false, 25 | // 设置生成的 HTML 中 my-app
-------------------------------------------------------------------------------- /webApp/static/skins/lightgray/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/content.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /webApp/static/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2384830985/-vue-ts-vuecli3.0-elementUi/02cac9ccadc19d9a8e5f4412519ff86381bd9245/webApp/static/skins/lightgray/img/trans.gif --------------------------------------------------------------------------------