├── 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 |
2 |
3 |
4 |
5 |
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 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/src/components/pagination/pagination.vue:
--------------------------------------------------------------------------------
1 | // 分页
2 |
12 |
13 |
26 |
27 |
28 |
29 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/src/components/reset/reset.vue:
--------------------------------------------------------------------------------
1 | // 重置按钮
2 |
5 |
6 |
7 | 重置
8 |
9 |
10 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/components/tinyMceEditor/tinyMceEditor.vue:
--------------------------------------------------------------------------------
1 | // 富文本编译器
2 |
3 |
4 |
5 |
6 |
7 |
8 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/components/uploadListImg/uploadListImg.vue:
--------------------------------------------------------------------------------
1 | // 批量图片上传(详情)
2 |
3 |
4 |
12 | 点击上传
13 | 只能上传jpg/png文件,且不超过1024kb
14 |
15 |
16 |
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 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 发布商品
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | 筛选
75 |
76 | 批量导出
77 |
78 |
79 |
80 |
81 |
82 |
83 |
87 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
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 |
5 |
6 | 404
7 |
8 |
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 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
148 |
149 |
150 |
151 |
152 |
239 |
240 |
241 |
--------------------------------------------------------------------------------
/src/views/layout/content/newtab.vue:
--------------------------------------------------------------------------------
1 |
41 |
42 |
43 |
44 |
49 |
50 |
51 | {{index!=0?'/':''}}{{item.title}}
52 |
53 |
54 |
55 |
59 |
60 |
61 |
62 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/src/views/layout/content/prompt.vue:
--------------------------------------------------------------------------------
1 |
23 |
24 |
25 |
30 |
31 |
32 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/src/views/layout/layout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
欢迎来到悦店后台管理系统
12 |
15 |
16 |
17 |
18 |
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 |
2 |
3 |
4 | iyuedian-admin
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 | Sign in
23 |
24 |
25 |
26 |
27 |
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 |
6 |
7 | content
8 |
9 |
10 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 添加权限
10 | 新增测试插件
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 筛选
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
40 |
44 |
45 | {{scope.row.name}}
46 |
47 |
48 |
52 |
53 | {{scope.row.sort}}
54 |
55 |
56 |
60 |
61 | {{scope.row.isDel==0?'正常':'封停'}}
62 |
63 |
64 |
68 |
69 | {{scope.row.parentId==0?'顶级':'-'}}
70 |
71 |
72 |
76 |
77 | 编辑
78 | 删除
79 | 回归
80 |
81 |
82 |
83 |
84 |
85 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | 父级
106 | 子级
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | 提交
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/src/views/system/permission/permissionAdd.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
商品类型
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
43 |
44 |
45 |
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