配置 stylelint

This commit is contained in:
mwx816443 2020-05-29 14:53:03 +08:00
parent 6f80263b42
commit cd9eec3148
101 changed files with 1766 additions and 1783 deletions

1
.stylelintignore Normal file
View File

@ -0,0 +1 @@
src/assets

27
.stylelintrc Normal file
View File

@ -0,0 +1,27 @@
{
"extends": "stylelint-config-sass-guidelines",
"plugins": [
"stylelint-order"
],
"rules": {
"property-no-vendor-prefix": null,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-property-value-blacklist": null,
"selector-no-qualifying-type": null,
"selector-pseudo-element-no-unknown": null,
"selector-no-vendor-prefix": null,
"media-feature-name-no-vendor-prefix": null,
"scss/at-import-partial-extension-blacklist": null,
"scss/selector-no-redundant-nesting-selector": null,
"scss/at-mixin-pattern": null,
"scss/dollar-variable-pattern": null,
"order/properties-alphabetical-order": null,
"selector-max-id": null,
"property-no-unknown": null,
"color-named": null,
"value-no-vendor-prefix": null,
"selector-class-pattern": null,
"max-nesting-depth": 10,
"selector-max-compound-selectors": 10
}
}

View File

@ -10,6 +10,7 @@
"build:stage": "vue-cli-service build --mode staging", "build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview", "preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src", "lint": "eslint --ext .js,.vue src",
"lint:css": "stylelint --aei .vue,.html src",
"test:unit": "jest --clearCache && vue-cli-service test:unit", "test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit", "test:ci": "npm run lint && npm run test:unit",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
@ -98,6 +99,9 @@
"sass-loader": "^7.1.0", "sass-loader": "^7.1.0",
"script-ext-html-webpack-plugin": "2.1.3", "script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "^1.13.2", "serve-static": "^1.13.2",
"stylelint": "13.5.0",
"stylelint-config-sass-guidelines": "7.0.0",
"stylelint-order": "4.0.0",
"svg-sprite-loader": "4.1.3", "svg-sprite-loader": "4.1.3",
"svgo": "1.2.0", "svgo": "1.2.0",
"vue-template-compiler": "2.6.10" "vue-template-compiler": "2.6.10"

View File

@ -1,7 +1,7 @@
<template> <template>
<transition :name="transitionName"> <transition :name="transitionName">
<div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop"> <div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop">
<svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="Icon Icon--backToTopArrow" aria-hidden="true" style="height:16px;width:16px"><path d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" /></svg> <svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="back-to-icon Icon--backToTopArrow" aria-hidden="true" style="height: 16px;width: 16px;"><path d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" /></svg>
</div> </div>
</transition> </transition>
</template> </template>
@ -96,15 +96,15 @@ export default {
.fade-enter-active, .fade-enter-active,
.fade-leave-active { .fade-leave-active {
transition: opacity .5s; transition: opacity 0.5s;
} }
.fade-enter, .fade-enter,
.fade-leave-to { .fade-leave-to {
opacity: 0 opacity: 0;
} }
.back-to-ceiling .Icon { .back-to-ceiling .back-to-icon {
fill: #9aaabf; fill: #9aaabf;
background: none; background: none;
} }

View File

@ -1,23 +1,23 @@
<template> <template>
<div class="dndList"> <div class="dnd-list">
<div :style="{width:width1}" class="dndList-list"> <div :style="{width:width1}" class="dnd-list-container">
<h3>{{ list1Title }}</h3> <h3>{{ list1Title }}</h3>
<draggable :set-data="setData" :list="list1" group="article" class="dragArea"> <draggable :set-data="setData" :list="list1" group="article" class="drag-area">
<div v-for="element in list1" :key="element.id" class="list-complete-item"> <div v-for="element in list1" :key="element.id" class="list-complete-item">
<div class="list-complete-item-handle"> <div class="list-complete-item-handle">
{{ element.id }}[{{ element.author }}] {{ element.title }} {{ element.id }}[{{ element.author }}] {{ element.title }}
</div> </div>
<div style="position:absolute;right:0px;"> <div style="position: absolute;right: 0;">
<span style="float: right ;margin-top: -20px;margin-right:5px;" @click="deleteEle(element)"> <span style="float: right;margin-top: -20px;margin-right: 5px;" @click="deleteEle(element)">
<i style="color:#ff4949" class="el-icon-delete" /> <i style="color: #ff4949;" class="el-icon-delete" />
</span> </span>
</div> </div>
</div> </div>
</draggable> </draggable>
</div> </div>
<div :style="{width:width2}" class="dndList-list"> <div :style="{width:width2}" class="dnd-list-container">
<h3>{{ list2Title }}</h3> <h3>{{ list2Title }}</h3>
<draggable :list="list2" group="article" class="dragArea"> <draggable :list="list2" group="article" class="drag-area">
<div v-for="element in list2" :key="element.id" class="list-complete-item"> <div v-for="element in list2" :key="element.id" class="list-complete-item">
<div class="list-complete-item-handle2" @click="pushEle(element)"> <div class="list-complete-item-handle2" @click="pushEle(element)">
{{ element.id }} [{{ element.author }}] {{ element.title }} {{ element.id }} [{{ element.author }}] {{ element.title }}
@ -105,21 +105,25 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.dndList { .dnd-list {
background: #fff; background: #fff;
padding-bottom: 40px; padding-bottom: 40px;
&:after {
content: ""; &::after {
content: '';
display: table; display: table;
clear: both; clear: both;
} }
.dndList-list {
.dnd-list-container {
float: left; float: left;
padding-bottom: 30px; padding-bottom: 30px;
&:first-of-type { &:first-of-type {
margin-right: 2%; margin-right: 2%;
} }
.dragArea {
.drag-area {
margin-top: 15px; margin-top: 15px;
min-height: 50px; min-height: 50px;
padding-bottom: 30px; padding-bottom: 30px;
@ -152,11 +156,11 @@ export default {
} }
.list-complete-item.sortable-chosen { .list-complete-item.sortable-chosen {
background: #4AB7BD; background: #4ab7bd;
} }
.list-complete-item.sortable-ghost { .list-complete-item.sortable-ghost {
background: #30B08F; background: #30b08f;
} }
.list-complete-enter, .list-complete-enter,

View File

@ -50,9 +50,9 @@ export default {
<style scoped> <style scoped>
.drag-select >>> .sortable-ghost { .drag-select >>> .sortable-ghost {
opacity: .8; opacity: 0.8;
color: #fff!important; color: #fff !important;
background: #42b983!important; background: #42b983 !important;
} }
.drag-select >>> .el-tag { .drag-select >>> .el-tag {

View File

@ -207,19 +207,19 @@ export default {
<style scoped> <style scoped>
.dropzone { .dropzone {
border: 2px solid #E5E5E5; border: 2px solid #e5e5e5;
font-family: 'Roboto', sans-serif; font-family: 'Roboto', sans-serif;
color: #777; color: #777;
transition: background-color .2s linear; transition: background-color 0.2s linear;
padding: 5px; padding: 5px;
} }
.dropzone:hover { .dropzone:hover {
background-color: #F6F6F6; background-color: #f6f6f6;
} }
i { i {
color: #CCC; color: #ccc;
} }
.dropzone .dz-image img { .dropzone .dz-image img {
@ -232,7 +232,7 @@ export default {
} }
.dropzone .dz-preview .dz-image { .dropzone .dz-preview .dz-image {
border-radius: 0px; border-radius: 0;
} }
.dropzone .dz-preview:hover .dz-image img { .dropzone .dz-preview:hover .dz-image img {
@ -243,15 +243,16 @@ export default {
} }
.dropzone .dz-preview .dz-details { .dropzone .dz-preview .dz-details {
bottom: 0px; bottom: 0;
top: 0px; top: 0;
color: white; color: white;
background-color: rgba(33, 150, 243, 0.8); background-color: rgba(33, 150, 243, 0.8);
transition: opacity .2s linear; transition: opacity 0.2s linear;
text-align: left; text-align: left;
} }
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span { .dropzone .dz-preview .dz-details .dz-filename span,
.dropzone .dz-preview .dz-details .dz-size span {
background-color: transparent; background-color: transparent;
} }
@ -285,12 +286,14 @@ export default {
opacity: 1; opacity: 1;
} }
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark { .dropzone .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-error-mark {
margin-left: -40px; margin-left: -40px;
margin-top: -50px; margin-top: -50px;
} }
.dropzone .dz-preview .dz-success-mark i, .dropzone .dz-preview .dz-error-mark i { .dropzone .dz-preview .dz-success-mark i,
.dropzone .dz-preview .dz-error-mark i {
color: white; color: white;
font-size: 5rem; font-size: 5rem;
} }

View File

@ -4,7 +4,7 @@
width="80" width="80"
height="80" height="80"
viewBox="0 0 250 250" viewBox="0 0 250 250"
style="fill:#40c9c6; color:#fff;" style="fill: #40c9c6; color: #fff;"
aria-hidden="true" aria-hidden="true"
> >
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" /> <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
@ -25,30 +25,33 @@
<style scoped> <style scoped>
.github-corner:hover .octo-arm { .github-corner:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out animation: octocat-wave 560ms ease-in-out;
} }
@keyframes octocat-wave { @keyframes octocat-wave {
0%, 0%,
100% { 100% {
transform: rotate(0) transform: rotate(0);
} }
20%, 20%,
60% { 60% {
transform: rotate(-25deg) transform: rotate(-25deg);
} }
40%, 40%,
80% { 80% {
transform: rotate(10deg) transform: rotate(10deg);
} }
} }
@media (max-width:500px) { @media (max-width:500px) {
.github-corner:hover .octo-arm { .github-corner:hover .octo-arm {
animation: none animation: none;
} }
.github-corner .octo-arm { .github-corner .octo-arm {
animation: octocat-wave 560ms ease-in-out animation: octocat-wave 560ms ease-in-out;
} }
} }
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -55,18 +55,21 @@ export default {
</script> </script>
<style scoped> <style scoped>
.json-editor{ .json-editor {
height: 100%; height: 100%;
position: relative; position: relative;
} }
.json-editor >>> .CodeMirror { .json-editor >>> .CodeMirror {
height: auto; height: auto;
min-height: 300px; min-height: 300px;
} }
.json-editor >>> .CodeMirror-scroll{
.json-editor >>> .CodeMirror-scroll {
min-height: 300px; min-height: 300px;
} }
.json-editor >>> .cm-s-rubyblue span.cm-string { .json-editor >>> .cm-s-rubyblue span.cm-string {
color: #F08047; color: #f08047;
} }
</style> </style>

View File

@ -91,7 +91,7 @@ export default {
line-height: 54px; line-height: 54px;
padding: 5px 10px; padding: 5px 10px;
box-sizing: border-box; box-sizing: border-box;
box-shadow: 0px 1px 3px 0 rgba(0, 0, 0, 0.2); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);
} }
} }
} }

View File

@ -208,14 +208,14 @@ export default {
// Utils // Utils
$spacer: 12px; $spacer: 12px;
$transition: 0.2s ease all; $transition: 0.2s ease all;
$index: 0px; $index: 0;
$index-has-icon: 30px; $index-has-icon: 30px;
// Theme: // Theme:
$color-white: white; $color-white: white;
$color-grey: #9E9E9E; $color-grey: #9e9e9e;
$color-grey-light: #E0E0E0; $color-grey-light: #e0e0e0;
$color-blue: #2196F3; $color-blue: #2196f3;
$color-red: #F44336; $color-red: #f44336;
$color-black: black; $color-black: black;
// Base clases: // Base clases:
%base-bar-pseudo { %base-bar-pseudo {
@ -239,9 +239,11 @@ export default {
.material-input__component { .material-input__component {
margin-top: 36px; margin-top: 36px;
position: relative; position: relative;
* { * {
box-sizing: border-box; box-sizing: border-box;
} }
.iconClass { .iconClass {
.material-input__icon { .material-input__icon {
position: absolute; position: absolute;
@ -255,13 +257,16 @@ export default {
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
pointer-events: none; pointer-events: none;
} }
.material-label { .material-label {
left: $index-has-icon; left: $index-has-icon;
} }
.material-input { .material-input {
text-indent: $index-has-icon; text-indent: $index-has-icon;
} }
} }
.material-input { .material-input {
font-size: $font-size-base; font-size: $font-size-base;
padding: $spacer $spacer $spacer - $apixel * 10 $spacer / 2; padding: $spacer $spacer $spacer - $apixel * 10 $spacer / 2;
@ -270,12 +275,14 @@ export default {
border: none; border: none;
line-height: 1; line-height: 1;
border-radius: 0; border-radius: 0;
&:focus { &:focus {
outline: none; outline: none;
border: none; border: none;
border-bottom: 1px solid transparent; // fixes the height issue border-bottom: 1px solid transparent; // fixes the height issue
} }
} }
.material-label { .material-label {
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
position: absolute; position: absolute;
@ -285,15 +292,18 @@ export default {
transition: $transition; transition: $transition;
font-size: $font-size-small; font-size: $font-size-small;
} }
.material-input-bar { .material-input-bar {
position: relative; position: relative;
display: block; display: block;
width: 100%; width: 100%;
&:before {
&::before {
@extend %base-bar-pseudo; @extend %base-bar-pseudo;
left: 50%; left: 50%;
} }
&:after {
&::after {
@extend %base-bar-pseudo; @extend %base-bar-pseudo;
right: 50%; right: 50%;
} }
@ -313,8 +323,8 @@ export default {
// Active state: // Active state:
&.material--active { &.material--active {
.material-input-bar { .material-input-bar {
&:before, &::before,
&:after { &::after {
width: 50%; width: 50%;
} }
} }
@ -323,18 +333,21 @@ export default {
.material-input__component { .material-input__component {
background: $color-white; background: $color-white;
.material-input { .material-input {
background: none; background: none;
color: $color-black; color: $color-black;
text-indent: $index; text-indent: $index;
border-bottom: 1px solid $color-grey-light; border-bottom: 1px solid $color-grey-light;
} }
.material-label { .material-label {
color: $color-grey; color: $color-grey;
} }
.material-input-bar { .material-input-bar {
&:before, &::before,
&:after { &::after {
background: $color-blue; background: $color-blue;
} }
} }
@ -349,9 +362,10 @@ export default {
&.material--active .material-label { &.material--active .material-label {
color: $color-red; color: $color-red;
} }
.material-input-bar { .material-input-bar {
&:before, &::before,
&:after { &::after {
background: transparent; background: transparent;
} }
} }

View File

@ -95,6 +95,7 @@ export default {
background: #fff; background: #fff;
padding: 32px 16px; padding: 32px 16px;
} }
.pagination-container.hidden { .pagination-container.hidden {
display: none; display: none;
} }

View File

@ -91,7 +91,7 @@ export default {
letter-spacing: 2px; letter-spacing: 2px;
font-size: 18px; font-size: 18px;
margin: 0 60px; margin: 0 60px;
padding: 22px 0 0 0; padding: 22px 0 0;
height: 85px; height: 85px;
font-family: 'Open Sans', Arial, sans-serif; font-family: 'Open Sans', Arial, sans-serif;
text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3); text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
@ -137,6 +137,6 @@ export default {
.pan-item:hover .pan-info p a { .pan-item:hover .pan-info p a {
opacity: 1; opacity: 1;
transform: translateX(0px) rotate(0deg); transform: translateX(0) rotate(0deg);
} }
</style> </style>

View File

@ -90,8 +90,8 @@ export default {
top: 0; top: 0;
left: 0; left: 0;
opacity: 0; opacity: 0;
transition: opacity .3s cubic-bezier(.7, .3, .1, 1); transition: opacity 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
background: rgba(0, 0, 0, .2); background: rgba(0, 0, 0, 0.2);
z-index: -1; z-index: -1;
} }
@ -102,15 +102,15 @@ export default {
position: fixed; position: fixed;
top: 0; top: 0;
right: 0; right: 0;
box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, .05); box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
transition: all .25s cubic-bezier(.7, .3, .1, 1); transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
transform: translate(100%); transform: translate(100%);
background: #fff; background: #fff;
z-index: 40000; z-index: 40000;
} }
.show { .show {
transition: all .3s cubic-bezier(.7, .3, .1, 1); transition: all 0.3s cubic-bezier(0.7, 0.3, 0.1, 1);
.rightPanel-background { .rightPanel-background {
z-index: 20000; z-index: 20000;
@ -137,6 +137,7 @@ export default {
cursor: pointer; cursor: pointer;
color: #fff; color: #fff;
line-height: 48px; line-height: 48px;
i { i {
font-size: 24px; font-size: 24px;
line-height: 48px; line-height: 48px;

View File

@ -52,7 +52,7 @@ export default {
.screenfull-svg { .screenfull-svg {
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
fill: #5a5e66;; fill: #5a5e66;
width: 20px; width: 20px;
height: 20px; height: 20px;
vertical-align: 10px; vertical-align: 10px;

View File

@ -39,12 +39,14 @@ export default {
<style lang="scss" > <style lang="scss" >
$n: 9; //items.length $n: 9; //items.length
$t: .1s; $t: 0.1s;
.share-dropdown-menu { .share-dropdown-menu {
width: 250px; width: 250px;
position: relative; position: relative;
z-index: 1; z-index: 1;
height: auto!important; height: auto !important;
&-title { &-title {
width: 100%; width: 100%;
display: block; display: block;
@ -56,11 +58,13 @@ $t: .1s;
font-size: 20px; font-size: 20px;
text-align: center; text-align: center;
z-index: 2; z-index: 2;
transform: translate3d(0,0,0); transform: translate3d(0, 0, 0);
} }
&-wrapper { &-wrapper {
position: relative; position: relative;
} }
&-item { &-item {
text-align: center; text-align: center;
position: absolute; position: absolute;
@ -74,6 +78,7 @@ $t: .1s;
overflow: hidden; overflow: hidden;
opacity: 1; opacity: 1;
transition: transform 0.28s ease; transition: transform 0.28s ease;
&:hover { &:hover {
background: black; background: black;
color: white; color: white;
@ -86,10 +91,12 @@ $t: .1s;
} }
} }
} }
&.active { &.active {
.share-dropdown-menu-wrapper { .share-dropdown-menu-wrapper {
z-index: 1; z-index: 1;
} }
.share-dropdown-menu-item { .share-dropdown-menu-item {
@for $i from 1 through $n { @for $i from 1 through $n {
&:nth-of-type(#{$i}) { &:nth-of-type(#{$i}) {

View File

@ -56,7 +56,7 @@ export default {
.svg-external-icon { .svg-external-icon {
background-color: currentColor; background-color: currentColor;
mask-size: cover!important; mask-size: cover !important;
display: inline-block; display: inline-block;
} }
</style> </style>

View File

@ -48,7 +48,7 @@ export default {
content: ''; content: '';
width: 100%; width: 100%;
height: 6px; height: 6px;
margin: -3px 0 0 0; margin: -3px 0 0;
background: #3888fa; background: #3888fa;
position: absolute; position: absolute;
left: 0; left: 0;

View File

@ -104,6 +104,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.editor-slide-upload { .editor-slide-upload {
margin-bottom: 20px; margin-bottom: 20px;
/deep/ .el-upload--picture-card { /deep/ .el-upload--picture-card {
width: 100%; width: 100%;
} }

View File

@ -218,23 +218,28 @@ export default {
position: relative; position: relative;
line-height: normal; line-height: normal;
} }
.tinymce-container>>>.mce-fullscreen { .tinymce-container>>>.mce-fullscreen {
z-index: 10000; z-index: 10000;
} }
.tinymce-textarea { .tinymce-textarea {
visibility: hidden; visibility: hidden;
z-index: -1; z-index: -1;
} }
.editor-custom-btn-container { .editor-custom-btn-container {
position: absolute; position: absolute;
right: 4px; right: 4px;
top: 4px; top: 4px;
/*z-index: 2005;*/ /*z-index: 2005;*/
} }
.fullscreen .editor-custom-btn-container { .fullscreen .editor-custom-btn-container {
z-index: 10000; z-index: 10000;
position: fixed; position: fixed;
} }
.editor-upload-btn { .editor-upload-btn {
display: inline-block; display: inline-block;
} }

View File

@ -78,15 +78,18 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/styles/mixin.scss"; @import '~@/styles/mixin.scss';
.upload-container { .upload-container {
@include clearfix;
width: 100%; width: 100%;
position: relative; position: relative;
@include clearfix;
.image-uploader { .image-uploader {
width: 60%; width: 60%;
float: left; float: left;
} }
.image-preview { .image-preview {
width: 200px; width: 200px;
height: 200px; height: 200px;
@ -94,15 +97,18 @@ export default {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
float: left; float: left;
margin-left: 50px; margin-left: 50px;
.image-preview-wrapper { .image-preview-wrapper {
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.image-preview-action { .image-preview-action {
position: absolute; position: absolute;
width: 100%; width: 100%;
@ -114,15 +120,17 @@ export default {
color: #fff; color: #fff;
opacity: 0; opacity: 0;
font-size: 20px; font-size: 20px;
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, 0.5);
transition: opacity .3s; transition: opacity 0.3s;
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
line-height: 200px; line-height: 200px;
.el-icon-delete { .el-icon-delete {
font-size: 36px; font-size: 36px;
} }
} }
&:hover { &:hover {
.image-preview-action { .image-preview-action {
opacity: 1; opacity: 1;

View File

@ -81,25 +81,30 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
.image-uploader { .image-uploader {
height: 100%; height: 100%;
} }
.image-preview { .image-preview {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: absolute; position: absolute;
left: 0px; left: 0;
top: 0px; top: 0;
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
.image-preview-wrapper { .image-preview-wrapper {
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.image-preview-action { .image-preview-action {
position: absolute; position: absolute;
width: 100%; width: 100%;
@ -111,15 +116,17 @@ export default {
color: #fff; color: #fff;
opacity: 0; opacity: 0;
font-size: 20px; font-size: 20px;
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, 0.5);
transition: opacity .3s; transition: opacity 0.3s;
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
line-height: 200px; line-height: 200px;
.el-icon-delete { .el-icon-delete {
font-size: 36px; font-size: 36px;
} }
} }
&:hover { &:hover {
.image-preview-action { .image-preview-action {
opacity: 1; opacity: 1;

View File

@ -86,15 +86,18 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/styles/mixin.scss"; @import '~@/styles/mixin.scss';
.upload-container { .upload-container {
@include clearfix;
width: 100%; width: 100%;
position: relative; position: relative;
@include clearfix;
.image-uploader { .image-uploader {
width: 35%; width: 35%;
float: left; float: left;
} }
.image-preview { .image-preview {
width: 200px; width: 200px;
height: 200px; height: 200px;
@ -102,15 +105,18 @@ export default {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
float: left; float: left;
margin-left: 50px; margin-left: 50px;
.image-preview-wrapper { .image-preview-wrapper {
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.image-preview-action { .image-preview-action {
position: absolute; position: absolute;
width: 100%; width: 100%;
@ -122,21 +128,24 @@ export default {
color: #fff; color: #fff;
opacity: 0; opacity: 0;
font-size: 20px; font-size: 20px;
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, 0.5);
transition: opacity .3s; transition: opacity 0.3s;
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
line-height: 200px; line-height: 200px;
.el-icon-delete { .el-icon-delete {
font-size: 36px; font-size: 36px;
} }
} }
&:hover { &:hover {
.image-preview-action { .image-preview-action {
opacity: 1; opacity: 1;
} }
} }
} }
.image-app-preview { .image-app-preview {
width: 320px; width: 320px;
height: 180px; height: 180px;
@ -144,6 +153,7 @@ export default {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
float: left; float: left;
margin-left: 50px; margin-left: 50px;
.app-fake-conver { .app-fake-conver {
height: 44px; height: 44px;
position: absolute; position: absolute;

View File

@ -3,7 +3,7 @@
<input ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick"> <input ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick">
<div class="drop" @drop="handleDrop" @dragover="handleDragover" @dragenter="handleDragover"> <div class="drop" @drop="handleDrop" @dragover="handleDragover" @dragenter="handleDragover">
Drop excel file here or Drop excel file here or
<el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="handleUpload"> <el-button :loading="loading" style="margin-left: 16px;" size="mini" type="primary" @click="handleUpload">
Browse Browse
</el-button> </el-button>
</div> </div>
@ -119,11 +119,12 @@ export default {
</script> </script>
<style scoped> <style scoped>
.excel-upload-input{ .excel-upload-input {
display: none; display: none;
z-index: -9999; z-index: -9999;
} }
.drop{
.drop {
border: 2px dashed #bbb; border: 2px dashed #bbb;
width: 600px; width: 600px;
height: 160px; height: 160px;

View File

@ -8,7 +8,7 @@
<template v-if="device!=='mobile'"> <template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" /> <search id="header-search" class="right-menu-item" />
<error-log class="errLog-container right-menu-item hover-effect" /> <error-log class="err-log-container right-menu-item hover-effect" />
<screenfull id="screenfull" class="right-menu-item hover-effect" /> <screenfull id="screenfull" class="right-menu-item hover-effect" />
@ -37,7 +37,7 @@
<el-dropdown-item>Docs</el-dropdown-item> <el-dropdown-item>Docs</el-dropdown-item>
</a> </a>
<el-dropdown-item divided @click.native="logout"> <el-dropdown-item divided @click.native="logout">
<span style="display:block;">Log Out</span> <span style="display: block;">Log Out</span>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
@ -88,18 +88,18 @@ export default {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background: #fff; background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08); box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
.hamburger-container { .hamburger-container {
line-height: 46px; line-height: 46px;
height: 100%; height: 100%;
float: left; float: left;
cursor: pointer; cursor: pointer;
transition: background .3s; transition: background 0.3s;
-webkit-tap-highlight-color:transparent; -webkit-tap-highlight-color: transparent;
&:hover { &:hover {
background: rgba(0, 0, 0, .025) background: rgba(0, 0, 0, 0.025);
} }
} }
@ -107,7 +107,7 @@ export default {
float: left; float: left;
} }
.errLog-container { .err-log-container {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
} }
@ -131,10 +131,10 @@ export default {
&.hover-effect { &.hover-effect {
cursor: pointer; cursor: pointer;
transition: background .3s; transition: background 0.3s;
&:hover { &:hover {
background: rgba(0, 0, 0, .025) background: rgba(0, 0, 0, 0.025);
} }
} }
} }

View File

@ -90,19 +90,19 @@ export default {
.drawer-title { .drawer-title {
margin-bottom: 12px; margin-bottom: 12px;
color: rgba(0, 0, 0, .85); color: rgba(0, 0, 0, 0.85);
font-size: 14px; font-size: 14px;
line-height: 22px; line-height: 22px;
} }
.drawer-item { .drawer-item {
color: rgba(0, 0, 0, .65); color: rgba(0, 0, 0, 0.65);
font-size: 14px; font-size: 14px;
padding: 12px 0; padding: 12px 0;
} }
.drawer-switch { .drawer-switch {
float: right float: right;
} }
} }
</style> </style>

View File

@ -32,6 +32,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.sidebarLogoFade-enter-active { .sidebarLogoFade-enter-active {
transition: opacity 1.5s; transition: opacity 1.5s;
} }
@ -75,7 +76,7 @@ export default {
&.collapse { &.collapse {
.sidebar-logo { .sidebar-logo {
margin-right: 0px; margin-right: 0;
} }
} }
} }

View File

@ -82,10 +82,12 @@ export default {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: 100%; width: 100%;
/deep/ { /deep/ {
.el-scrollbar__bar { .el-scrollbar__bar {
bottom: 0px; bottom: 0;
} }
.el-scrollbar__wrap { .el-scrollbar__wrap {
height: 49px; height: 49px;
} }

View File

@ -203,7 +203,8 @@ export default {
width: 100%; width: 100%;
background: #fff; background: #fff;
border-bottom: 1px solid #d8dce5; border-bottom: 1px solid #d8dce5;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04);
.tags-view-wrapper { .tags-view-wrapper {
.tags-view-item { .tags-view-item {
display: inline-block; display: inline-block;
@ -218,16 +219,20 @@ export default {
font-size: 12px; font-size: 12px;
margin-left: 5px; margin-left: 5px;
margin-top: 4px; margin-top: 4px;
&:first-of-type { &:first-of-type {
margin-left: 15px; margin-left: 15px;
} }
&:last-of-type { &:last-of-type {
margin-right: 15px; margin-right: 15px;
} }
&.active { &.active {
background-color: #42b983; background-color: #42b983;
color: #fff; color: #fff;
border-color: #42b983; border-color: #42b983;
&::before { &::before {
content: ''; content: '';
background: #fff; background: #fff;
@ -241,6 +246,7 @@ export default {
} }
} }
} }
.contextmenu { .contextmenu {
margin: 0; margin: 0;
background: #fff; background: #fff;
@ -252,11 +258,13 @@ export default {
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
color: #333; color: #333;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3); box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
li { li {
margin: 0; margin: 0;
padding: 7px 16px; padding: 7px 16px;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background: #eee; background: #eee;
} }
@ -275,13 +283,15 @@ export default {
vertical-align: 2px; vertical-align: 2px;
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
transition: all .3s cubic-bezier(.645, .045, .355, 1); transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transform-origin: 100% 50%; transform-origin: 100% 50%;
&:before {
transform: scale(.6); &::before {
transform: scale(0.6);
display: inline-block; display: inline-block;
vertical-align: -3px; vertical-align: -3px;
} }
&:hover { &:hover {
background-color: #b4bccc; background-color: #b4bccc;
color: #fff; color: #fff;

View File

@ -58,8 +58,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/styles/mixin.scss"; @import '~@/styles/mixin.scss';
@import "~@/styles/variables.scss"; @import '~@/styles/variables.scss';
.app-wrapper { .app-wrapper {
@include clearfix; @include clearfix;
@ -93,7 +93,7 @@ export default {
} }
.hideSidebar .fixed-header { .hideSidebar .fixed-header {
width: calc(100% - 54px) width: calc(100% - 54px);
} }
.mobile .fixed-header { .mobile .fixed-header {

View File

@ -6,94 +6,87 @@
&:hover { &:hover {
color: $color; color: $color;
&:before, &::before,
&:after { &::after {
background: $color; background: $color;
} }
} }
} }
.blue-btn { .blue-btn {
@include colorBtn($blue) @include colorBtn($blue); }
}
.light-blue-btn { .light-blue-btn {
@include colorBtn($light-blue) @include colorBtn($light-blue); }
}
.red-btn { .red-btn {
@include colorBtn($red) @include colorBtn($red); }
}
.pink-btn { .pink-btn {
@include colorBtn($pink) @include colorBtn($pink); }
}
.green-btn { .green-btn {
@include colorBtn($green) @include colorBtn($green); }
}
.tiffany-btn { .tiffany-btn {
@include colorBtn($tiffany) @include colorBtn($tiffany); }
}
.yellow-btn { .yellow-btn {
@include colorBtn($yellow) @include colorBtn($yellow); }
}
.pan-btn { .pan-btn {
font-size: 14px;
color: #fff;
padding: 14px 36px;
border-radius: 8px;
border: none; border: none;
outline: none; border-radius: 8px;
transition: 600ms ease all; color: #fff;
position: relative;
display: inline-block; display: inline-block;
font-size: 14px;
outline: none;
padding: 14px 36px;
position: relative;
transition: 600ms ease all;
&:hover { &:hover {
background: #fff; background: #fff;
&:before, &::before,
&:after { &::after {
width: 100%;
transition: 600ms ease all; transition: 600ms ease all;
width: 100%;
} }
} }
&:before, &::before,
&:after { &::after {
content: ''; content: '';
position: absolute;
top: 0;
right: 0;
height: 2px; height: 2px;
width: 0; position: absolute;
right: 0;
top: 0;
transition: 400ms ease all; transition: 400ms ease all;
width: 0;
} }
&::after { &::after {
bottom: 0;
left: 0;
right: inherit; right: inherit;
top: inherit; top: inherit;
left: 0;
bottom: 0;
} }
} }
.custom-button { .custom-button {
display: inline-block;
line-height: 1;
white-space: nowrap;
cursor: pointer;
background: #fff;
color: #fff;
-webkit-appearance: none; -webkit-appearance: none;
text-align: center; background: #fff;
box-sizing: border-box;
outline: 0;
margin: 0;
padding: 10px 15px;
font-size: 14px;
border-radius: 4px; border-radius: 4px;
box-sizing: border-box;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 14px;
line-height: 1;
margin: 0;
outline: 0;
padding: 10px 15px;
text-align: center;
white-space: nowrap;
} }

View File

@ -1,12 +1,11 @@
// cover some element-ui styles // cover some element-ui styles
.el-breadcrumb__inner, .el-breadcrumb__inner,
.el-breadcrumb__inner a { .el-breadcrumb__inner a {
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-upload { .el-upload {
input[type="file"] { input[type='file'] {
display: none !important; display: none !important;
} }
} }
@ -17,7 +16,7 @@
.cell { .cell {
.el-tag { .el-tag {
margin-right: 0px; margin-right: 0;
} }
} }
@ -30,8 +29,8 @@
.fixed-width { .fixed-width {
.el-button--mini { .el-button--mini {
padding: 7px 10px;
min-width: 60px; min-width: 60px;
padding: 7px 10px;
} }
} }
@ -41,17 +40,17 @@
text-align: center; text-align: center;
.el-tag { .el-tag {
margin-right: 0px; margin-right: 0;
} }
} }
} }
// to fixed https://github.com/ElemeFE/element/issues/2461 // to fixed https://github.com/ElemeFE/element/issues/2461
.el-dialog { .el-dialog {
transform: none;
left: 0; left: 0;
position: relative;
margin: 0 auto; margin: 0 auto;
position: relative;
transform: none;
} }
// refine element ui upload // refine element ui upload
@ -60,8 +59,8 @@
width: 100%; width: 100%;
.el-upload-dragger { .el-upload-dragger {
width: 100%;
height: 200px; height: 200px;
width: 100%;
} }
} }
} }
@ -69,7 +68,7 @@
// dropdown // dropdown
.el-dropdown-menu { .el-dropdown-menu {
a { a {
display: block display: block;
} }
} }

View File

@ -20,9 +20,9 @@ $--border-color-lighter: #e6ebf5;
$--table-border: 1px solid #dfe6ec; $--table-border: 1px solid #dfe6ec;
/* icon font path, required */ /* icon font path, required */
$--font-path: "~element-ui/lib/theme-chalk/fonts"; $--font-path: '~element-ui/lib/theme-chalk/fonts';
@import "~element-ui/packages/theme-chalk/src/index"; @import '~element-ui/packages/theme-chalk/src/index';
// the :export directive is the magic sauce for webpack // the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass

View File

@ -6,11 +6,11 @@
@import './btn.scss'; @import './btn.scss';
body { body {
height: 100%; font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
height: 100%;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
} }
label { label {
@ -18,8 +18,8 @@ label {
} }
html { html {
height: 100%;
box-sizing: border-box; box-sizing: border-box;
height: 100%;
} }
#app { #app {
@ -27,13 +27,13 @@ html {
} }
*, *,
*:before, *::before,
*:after { *::after {
box-sizing: inherit; box-sizing: inherit;
} }
.no-padding { .no-padding {
padding: 0px !important; padding: 0 !important;
} }
.padding-content { .padding-content {
@ -48,8 +48,8 @@ a:active {
a, a,
a:focus, a:focus,
a:hover { a:hover {
cursor: pointer;
color: inherit; color: inherit;
cursor: pointer;
text-decoration: none; text-decoration: none;
} }
@ -81,33 +81,33 @@ div:focus {
cursor: pointer; cursor: pointer;
} }
.inlineBlock { .inline-block {
display: block; display: block;
} }
.clearfix { .clearfix {
&:after { &::after {
visibility: hidden; clear: both;
content: ' ';
display: block; display: block;
font-size: 0; font-size: 0;
content: " ";
clear: both;
height: 0; height: 0;
visibility: hidden;
} }
} }
aside { aside {
background: #eef1f6; background: #eef1f6;
padding: 8px 24px;
margin-bottom: 20px;
border-radius: 2px; border-radius: 2px;
display: block;
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
color: #2c3e50; color: #2c3e50;
display: block;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
font-size: 16px;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
line-height: 32px;
margin-bottom: 20px;
padding: 8px 24px;
a { a {
color: #337ab7; color: #337ab7;
@ -134,22 +134,22 @@ aside {
} }
.text-center { .text-center {
text-align: center text-align: center;
} }
.sub-navbar { .sub-navbar {
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
position: relative;
width: 100%;
text-align: right;
padding-right: 20px; padding-right: 20px;
position: relative;
text-align: right;
transition: 600ms ease position; transition: 600ms ease position;
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%); width: 100%;
.subtitle { .subtitle {
font-size: 20px;
color: #fff; color: #fff;
font-size: 20px;
} }
&.draft { &.draft {
@ -176,8 +176,8 @@ aside {
.filter-item { .filter-item {
display: inline-block; display: inline-block;
vertical-align: middle;
margin-bottom: 10px; margin-bottom: 10px;
vertical-align: middle;
} }
} }

View File

@ -1,8 +1,8 @@
@mixin clearfix { @mixin clearfix {
&:after { &::after {
content: "";
display: table;
clear: both; clear: both;
content: '';
display: table;
} }
} }
@ -22,15 +22,15 @@
} }
@mixin relative { @mixin relative {
height: 100%;
position: relative; position: relative;
width: 100%; width: 100%;
height: 100%;
} }
@mixin pct($pct) { @mixin pct($pct) {
width: #{$pct};
position: relative;
margin: 0 auto; margin: 0 auto;
position: relative;
width: #{$pct};
} }
@mixin triangle($width, $height, $color, $direction) { @mixin triangle($width, $height, $color, $direction) {

View File

@ -1,8 +1,7 @@
#app { #app {
.main-container { .main-container {
min-height: 100%; min-height: 100%;
transition: margin-left .28s; transition: margin-left 0.28s;
margin-left: $sideBarWidth; margin-left: $sideBarWidth;
position: relative; position: relative;
} }
@ -13,7 +12,7 @@
background-color: $menuBg; background-color: $menuBg;
height: 100%; height: 100%;
position: fixed; position: fixed;
font-size: 0px; font-size: 0;
top: 0; top: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
@ -30,7 +29,7 @@
} }
.el-scrollbar__bar.is-vertical { .el-scrollbar__bar.is-vertical {
right: 0px; right: 0;
} }
.el-scrollbar { .el-scrollbar {
@ -146,11 +145,11 @@
// mobile responsive // mobile responsive
.mobile { .mobile {
.main-container { .main-container {
margin-left: 0px; margin-left: 0;
} }
.sidebar-container { .sidebar-container {
transition: transform .28s; transition: transform 0.28s;
width: $sideBarWidth !important; width: $sideBarWidth !important;
} }
@ -164,7 +163,6 @@
} }
.withoutAnimation { .withoutAnimation {
.main-container, .main-container,
.sidebar-container { .sidebar-container {
transition: none; transition: none;

View File

@ -14,7 +14,7 @@
/* fade-transform */ /* fade-transform */
.fade-transform-leave-active, .fade-transform-leave-active,
.fade-transform-enter-active { .fade-transform-enter-active {
transition: all .5s; transition: all 0.5s;
} }
.fade-transform-enter { .fade-transform-enter {
@ -30,7 +30,7 @@
/* breadcrumb transition */ /* breadcrumb transition */
.breadcrumb-enter-active, .breadcrumb-enter-active,
.breadcrumb-leave-active { .breadcrumb-leave-active {
transition: all .5s; transition: all 0.5s;
} }
.breadcrumb-enter, .breadcrumb-enter,
@ -40,7 +40,7 @@
} }
.breadcrumb-move { .breadcrumb-move {
transition: all .5s; transition: all 0.5s;
} }
.breadcrumb-leave-active { .breadcrumb-leave-active {

View File

@ -1,23 +1,23 @@
// base color // base color
$blue:#324157; $blue: #324157;
$light-blue:#3A71A8; $light-blue: #3a71a8;
$red:#C03639; $red: #c03639;
$pink: #E65D6E; $pink: #e65d6e;
$green: #30B08F; $green: #30b08f;
$tiffany: #4AB7BD; $tiffany: #4ab7bd;
$yellow:#FEC171; $yellow: #fec171;
$panGreen: #30B08F; $panGreen: #30b08f;
// sidebar // sidebar
$menuText:#bfcbd9; $menuText: #bfcbd9;
$menuActiveText:#409EFF; $menuActiveText: #409eff;
$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 $subMenuActiveText: #f4f4f5; // https://github.com/ElemeFE/element/issues/12951
$menuBg:#304156; $menuBg: #304156;
$menuHover:#263445; $menuHover: #263445;
$subMenuBg:#1f2d3d; $subMenuBg: #1f2d3d;
$subMenuHover:#001528; $subMenuHover: #001528;
$sideBarWidth: 210px; $sideBarWidth: 210px;

View File

@ -14,10 +14,10 @@ export default {
</script> </script>
<style scoped> <style scoped>
.chart-container{ .chart-container {
height: calc(100vh - 84px);
position: relative; position: relative;
width: 100%; width: 100%;
height: calc(100vh - 84px);
} }
</style> </style>

View File

@ -14,10 +14,10 @@ export default {
</script> </script>
<style scoped> <style scoped>
.chart-container{ .chart-container {
height: calc(100vh - 84px);
position: relative; position: relative;
width: 100%; width: 100%;
height: calc(100vh - 84px);
} }
</style> </style>

View File

@ -14,10 +14,10 @@ export default {
</script> </script>
<style scoped> <style scoped>
.chart-container{ .chart-container {
height: calc(100vh - 84px);
position: relative; position: relative;
width: 100%; width: 100%;
height: calc(100vh - 84px);
} }
</style> </style>

View File

@ -2,13 +2,21 @@
<div class="app-container"> <div class="app-container">
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="use clipboard directly" name="directly"> <el-tab-pane label="use clipboard directly" name="directly">
<el-input v-model="inputData" placeholder="Please input" style="width:400px;max-width:100%;" /> <el-input
v-model="inputData"
placeholder="Please input"
:style="inputStyle"
/>
<el-button type="primary" icon="el-icon-document" @click="handleCopy(inputData,$event)"> <el-button type="primary" icon="el-icon-document" @click="handleCopy(inputData,$event)">
copy copy
</el-button> </el-button>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="use clipboard by v-directive" name="v-directive"> <el-tab-pane label="use clipboard by v-directive" name="v-directive">
<el-input v-model="inputData" placeholder="Please input" style="width:400px;max-width:100%;" /> <el-input
v-model="inputData"
placeholder="Please input"
:style="inputStyle"
/>
<el-button v-clipboard:copy="inputData" v-clipboard:success="clipboardSuccess" type="primary" icon="el-icon-document"> <el-button v-clipboard:copy="inputData" v-clipboard:success="clipboardSuccess" type="primary" icon="el-icon-document">
copy copy
</el-button> </el-button>
@ -29,6 +37,10 @@ export default {
data() { data() {
return { return {
activeName: 'directly', activeName: 'directly',
inputStyle: {
maxWidth: '100%',
width: '400px'
},
inputData: 'https://github.com/PanJiaChen/vue-element-admin' inputData: 'https://github.com/PanJiaChen/vue-element-admin'
} }
}, },

View File

@ -7,7 +7,14 @@
<pan-thumb :image="image" /> <pan-thumb :image="image" />
<el-button type="primary" icon="el-icon-upload" style="position: absolute;bottom: 15px;margin-left: 40px;" @click="imagecropperShow=true"> <el-button
type="primary"
icon="el-icon-upload"
style="bottom: 15px;
margin-left: 40px;
position: absolute;"
@click="imagecropperShow=true"
>
Change Avatar Change Avatar
</el-button> </el-button>
@ -52,10 +59,10 @@ export default {
</script> </script>
<style scoped> <style scoped>
.avatar{ .avatar {
width: 200px;
height: 200px;
border-radius: 50%; border-radius: 50%;
height: 200px;
width: 200px;
} }
</style> </style>

View File

@ -15,7 +15,7 @@
:autoplay="false" :autoplay="false"
class="example" class="example"
/> />
<div style="margin-left: 25%;margin-top: 40px;"> <div style="margin-left: 25%; margin-top: 40px;">
<label class="label" for="startValInput">startVal: <label class="label" for="startValInput">startVal:
<input v-model.number="setStartVal" type="number" name="startValInput"> <input v-model.number="setStartVal" type="number" name="startValInput">
</label> </label>
@ -25,7 +25,7 @@
<label class="label" for="durationInput">duration: <label class="label" for="durationInput">duration:
<input v-model.number="setDuration" type="number" name="durationInput"> <input v-model.number="setDuration" type="number" name="durationInput">
</label> </label>
<div class="startBtn example-btn" @click="start"> <div class="start-btn example-btn" @click="start">
Start Start
</div> </div>
<div class="pause-resume-btn example-btn" @click="pauseResume"> <div class="pause-resume-btn example-btn" @click="pauseResume">
@ -124,95 +124,96 @@ export default {
<style scoped> <style scoped>
.example-btn { .example-btn {
background-color: #fff;
background-image: none;
border: 1px solid transparent;
border-color: #d9d9d9;
border-radius: 4px;
color: rgba(0, 0, 0, 0.65);
cursor: pointer;
display: inline-block; display: inline-block;
margin-bottom: 0; font-size: 12px;
font-weight: 500; font-weight: 500;
line-height: 1.5;
margin-bottom: 0;
padding: 4px 15px;
position: relative;
text-align: center; text-align: center;
-ms-touch-action: manipulation; -ms-touch-action: manipulation;
touch-action: manipulation; touch-action: manipulation;
cursor: pointer; -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
background-image: none; transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
border: 1px solid transparent;
white-space: nowrap;
line-height: 1.5;
padding: 4px 15px;
font-size: 12px;
border-radius: 4px;
-webkit-user-select: none; -webkit-user-select: none;
-moz-user-select: none; -moz-user-select: none;
-ms-user-select: none; -ms-user-select: none;
user-select: none; user-select: none;
-webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); white-space: nowrap;
transition: all .3s cubic-bezier(.645, .045, .355, 1);
position: relative;
color: rgba(0, 0, 0, .65);
background-color: #fff;
border-color: #d9d9d9;
} }
.example-btn:hover { .example-btn:hover {
color: #4AB7BD;
background-color: #fff; background-color: #fff;
border-color: #4AB7BD; border-color: #4ab7bd;
color: #4ab7bd;
} }
.example { .example {
font-size: 50px; color: #f6416c;
color: #F6416C;
display: block; display: block;
margin: 10px 0; font-size: 50px;
text-align: center;
font-size: 80px; font-size: 80px;
font-weight: 500; font-weight: 500;
margin: 10px 0;
text-align: center;
} }
.label { .label {
color: #2f4f4f; color: #2f4f4f;
font-size: 16px;
display: inline-block; display: inline-block;
font-size: 16px;
margin: 15px 30px 15px 0; margin: 15px 30px 15px 0;
} }
input { input {
position: relative;
display: inline-block;
padding: 4px 7px;
width: 70px;
height: 28px;
cursor: text;
font-size: 12px;
line-height: 1.5;
color: rgba(0, 0, 0, .65);
background-color: #fff; background-color: #fff;
background-image: none; background-image: none;
border: 1px solid #d9d9d9; border: 1px solid #d9d9d9;
border-radius: 4px; border-radius: 4px;
-webkit-transition: all .3s; color: rgba(0, 0, 0, 0.65);
transition: all .3s; cursor: text;
display: inline-block;
font-size: 12px;
height: 28px;
line-height: 1.5;
padding: 4px 7px;
position: relative;
-webkit-transition: all 0.3s;
transition: all 0.3s;
width: 70px;
} }
.startBtn { .start-btn {
margin-left: 20px;
font-size: 20px;
color: #30B08F;
background-color: #fff; background-color: #fff;
color: #30b08f;
font-size: 20px;
margin-left: 20px;
} }
.startBtn:hover { .start-btn:hover {
background-color: #30B08F; background-color: #30b08f;
border-color: #30b08f;
color: #fff; color: #fff;
border-color: #30B08F;
} }
.pause-resume-btn { .pause-resume-btn {
font-size: 20px;
color: #E65D6E;
background-color: #fff; background-color: #fff;
color: #e65d6e;
font-size: 20px;
} }
.pause-resume-btn:hover { .pause-resume-btn:hover {
background-color: #E65D6E; background-color: #e65d6e;
border-color: #e65d6e;
color: #fff; color: #fff;
border-color: #E65D6E;
} }
</style> </style>

View File

@ -38,24 +38,27 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.board { .board {
width: 1000px;
margin-left: 20px;
display: flex;
justify-content: space-around;
flex-direction: row;
align-items: flex-start; align-items: flex-start;
display: flex;
flex-direction: row;
justify-content: space-around;
margin-left: 20px;
width: 1000px;
} }
.kanban { .kanban {
&.todo { &.todo {
.board-column-header { .board-column-header {
background: #4A9FF9; background: #4a9ff9;
} }
} }
&.working { &.working {
.board-column-header { .board-column-header {
background: #f9944a; background: #f9944a;
} }
} }
&.done { &.done {
.board-column-header { .board-column-header {
background: #2ac06d; background: #2ac06d;

View File

@ -1,11 +1,11 @@
<template> <template>
<div class="components-container"> <div class="components-container">
<el-drag-select v-model="value" style="width:500px;" multiple placeholder="请选择"> <el-drag-select v-model="value" style="width: 500px;" multiple placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-drag-select> </el-drag-select>
<div style="margin-top:30px;"> <div style="margin-top: 30px;">
<el-tag v-for="item of value" :key="item" style="margin-right:15px;"> <el-tag v-for="item of value" :key="item" style="margin-right: 15px;">
{{ item }} {{ item }}
</el-tag> </el-tag>
</div> </div>

View File

@ -28,9 +28,9 @@ export default {
</script> </script>
<style scoped> <style scoped>
.editor-container{ .editor-container {
position: relative;
height: 100%; height: 100%;
position: relative;
} }
</style> </style>

View File

@ -42,7 +42,7 @@
<markdown-editor ref="markdownEditor" v-model="content4" :language="language" height="300px" /> <markdown-editor ref="markdownEditor" v-model="content4" :language="language" height="300px" />
</div> </div>
<el-button style="margin-top:80px;" type="primary" icon="el-icon-document" @click="getHtml"> <el-button style="margin-top: 80px;" type="primary" icon="el-icon-document" @click="getHtml">
Get HTML Get HTML
</el-button> </el-button>
<div v-html="html" /> <div v-html="html" />
@ -92,10 +92,11 @@ export default {
</script> </script>
<style scoped> <style scoped>
.editor-container{ .editor-container {
margin-bottom: 30px; margin-bottom: 30px;
} }
.tag-title{
.tag-title {
margin-bottom: 5px; margin-bottom: 5px;
} }
</style> </style>

View File

@ -5,7 +5,7 @@
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>Buttons</span> <span>Buttons</span>
</div> </div>
<div style="margin-bottom:50px;"> <div style="margin-bottom: 50px;">
<el-col :span="4" class="text-center"> <el-col :span="4" class="text-center">
<router-link class="pan-btn blue-btn" to="/documentation/index"> <router-link class="pan-btn blue-btn" to="/documentation/index">
Documentation Documentation
@ -40,13 +40,13 @@
</el-card> </el-card>
</el-row> </el-row>
<el-row :gutter="20" style="margin-top:50px;"> <el-row :gutter="20" style="margin-top: 50px;">
<el-col :span="6"> <el-col :span="6">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>Material Design 的input</span> <span>Material Design 的input</span>
</div> </div>
<div style="height:100px;"> <div style="height: 100px;">
<el-form :model="demo" :rules="demoRules"> <el-form :model="demo" :rules="demoRules">
<el-form-item prop="title"> <el-form-item prop="title">
<md-input v-model="demo.title" icon="el-icon-search" name="title" placeholder="输入标题"> <md-input v-model="demo.title" icon="el-icon-search" name="title" placeholder="输入标题">
@ -96,14 +96,14 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20" style="margin-top:50px;"> <el-row :gutter="20" style="margin-top: 50px;">
<el-col :span="8"> <el-col :span="8">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>Share</span> <span>Share</span>
</div> </div>
<div class="component-item" style="height:420px;"> <div class="component-item" style="height: 420px;">
<dropdown-menu :items="articleList" style="margin:0 auto;" title="系列文章" /> <dropdown-menu :items="articleList" style="margin: 0 auto;" title="系列文章" />
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
@ -160,10 +160,11 @@ export default {
<style scoped> <style scoped>
.mixin-components-container { .mixin-components-container {
background-color: #f0f2f5; background-color: #f0f2f5;
padding: 30px;
min-height: calc(100vh - 84px); min-height: calc(100vh - 84px);
padding: 30px;
} }
.component-item{
.component-item {
min-height: 100px; min-height: 100px;
} }
</style> </style>

View File

@ -39,29 +39,29 @@ export default {
<style scoped> <style scoped>
.components-container { .components-container {
position: relative;
height: 100vh; height: 100vh;
position: relative;
} }
.left-container { .left-container {
background-color: #F38181; background-color: #f38181;
height: 100%; height: 100%;
} }
.right-container { .right-container {
background-color: #FCE38A; background-color: #fce38a;
height: 200px; height: 200px;
} }
.top-container { .top-container {
background-color: #FCE38A; background-color: #fce38a;
width: 100%;
height: 100%; height: 100%;
width: 100%;
} }
.bottom-container { .bottom-container {
width: 100%; background-color: #95e1d3;
background-color: #95E1D3;
height: 100%; height: 100%;
width: 100%;
} }
</style> </style>

View File

@ -18,7 +18,7 @@
<el-button plain> <el-button plain>
Link<i class="el-icon-caret-bottom el-icon--right" /> Link<i class="el-icon-caret-bottom el-icon--right" />
</el-button> </el-button>
<el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width:300px"> <el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width: 300px;">
<el-input v-model="url" placeholder="Please enter the content"> <el-input v-model="url" placeholder="Please enter the content">
<template slot="prepend"> <template slot="prepend">
Url Url

View File

@ -29,7 +29,7 @@ export default {
</script> </script>
<style scoped> <style scoped>
.editor-content{ .editor-content {
margin-top: 20px; margin-top: 20px;
} }
</style> </style>

View File

@ -1,12 +1,12 @@
<template> <template>
<el-card class="box-card-component" style="margin-left:8px;"> <el-card class="box-card-component" style="margin-left: 8px;">
<div slot="header" class="box-card-header"> <div slot="header" class="box-card-header">
<img src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png"> <img src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png">
</div> </div>
<div style="position:relative;"> <div style="position: relative;">
<pan-thumb :image="avatar" class="panThumb" /> <pan-thumb :image="avatar" class="pan-thumb" />
<mallki class-name="mallki-text" text="vue-element-admin" /> <mallki class-name="mallki-text" text="vue-element-admin" />
<div style="padding-top:35px;" class="progress-item"> <div style="padding-top: 35px;" class="progress-item">
<span>Vue</span> <span>Vue</span>
<el-progress :percentage="70" /> <el-progress :percentage="70" />
</div> </div>
@ -62,55 +62,61 @@ export default {
</script> </script>
<style lang="scss" > <style lang="scss" >
.box-card-component{ .box-card-component {
.el-card__header { .el-card__header {
padding: 0px!important; padding: 0 !important;
} }
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.box-card-component { .box-card-component {
.box-card-header { .box-card-header {
position: relative;
height: 220px; height: 220px;
position: relative;
img { img {
width: 100%;
height: 100%; height: 100%;
transition: all 0.2s linear; transition: all 0.2s linear;
width: 100%;
&:hover { &:hover {
transform: scale(1.1, 1.1);
filter: contrast(130%); filter: contrast(130%);
transform: scale(1.1, 1.1);
} }
} }
} }
.mallki-text { .mallki-text {
position: absolute;
top: 0px;
right: 0px;
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
position: absolute;
right: 0;
top: 0;
} }
.panThumb {
z-index: 100; .pan-thumb {
height: 70px!important;
width: 70px!important;
position: absolute!important;
top: -45px;
left: 0px;
border: 5px solid #ffffff;
background-color: #fff; background-color: #fff;
border: 5px solid #fff;
box-shadow: none !important;
height: 70px !important;
left: 0;
margin: auto; margin: auto;
box-shadow: none!important; position: absolute !important;
top: -45px;
width: 70px !important;
z-index: 100;
/deep/ .pan-info { /deep/ .pan-info {
box-shadow: none!important; box-shadow: none !important;
} }
} }
.progress-item { .progress-item {
margin-bottom: 10px;
font-size: 14px; font-size: 14px;
margin-bottom: 10px;
} }
@media only screen and (max-width: 1510px){ @media only screen and (max-width: 1510px) {
.mallki-text{ .mallki-text {
display: none; display: none;
} }
} }

View File

@ -79,15 +79,15 @@ export default {
} }
.card-panel { .card-panel {
height: 108px; background: #fff;
border-color: rgba(0, 0, 0, 0.05);
box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
color: #666;
cursor: pointer; cursor: pointer;
font-size: 12px; font-size: 12px;
position: relative; height: 108px;
overflow: hidden; overflow: hidden;
color: #666; position: relative;
background: #fff;
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
border-color: rgba(0, 0, 0, .05);
&:hover { &:hover {
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
@ -107,7 +107,7 @@ export default {
} }
.icon-shopping { .icon-shopping {
background: #34bfa3 background: #34bfa3;
} }
} }
@ -124,15 +124,15 @@ export default {
} }
.icon-shopping { .icon-shopping {
color: #34bfa3 color: #34bfa3;
} }
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
border-radius: 6px;
float: left; float: left;
margin: 14px 0 0 14px; margin: 14px 0 0 14px;
padding: 16px; padding: 16px;
transition: all 0.38s ease-out; transition: all 0.38s ease-out;
border-radius: 6px;
} }
.card-panel-icon { .card-panel-icon {
@ -144,12 +144,12 @@ export default {
float: right; float: right;
font-weight: bold; font-weight: bold;
margin: 26px; margin: 26px;
margin-left: 0px; margin-left: 0;
.card-panel-text { .card-panel-text {
line-height: 18px;
color: rgba(0, 0, 0, 0.45); color: rgba(0, 0, 0, 0.45);
font-size: 16px; font-size: 16px;
line-height: 18px;
margin-bottom: 12px; margin-bottom: 12px;
} }
@ -167,14 +167,14 @@ export default {
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
float: none !important; float: none !important;
width: 100%;
height: 100%; height: 100%;
margin: 0 !important; margin: 0 !important;
width: 100%;
.svg-icon { .svg-icon {
display: block; display: block;
margin: 14px auto !important;
float: none !important; float: none !important;
margin: 14px auto !important;
} }
} }
} }

View File

@ -1,298 +1,346 @@
.todoapp { .todoapp {
font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; background: #fff;
line-height: 1.4em;
color: #4d4d4d; color: #4d4d4d;
min-width: 230px; font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
max-width: 550px;
margin: 0 auto ;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
font-weight: 300; font-weight: 300;
background: #fff; line-height: 1.4em;
z-index: 1; margin: 0 auto;
max-width: 550px;
min-width: 230px;
position: relative; position: relative;
z-index: 1;
button { button {
margin: 0;
padding: 0;
border: 0;
background: none;
font-size: 100%;
vertical-align: baseline;
font-family: inherit;
font-weight: inherit;
color: inherit;
-webkit-appearance: none; -webkit-appearance: none;
appearance: none; appearance: none;
background: none;
border: 0;
color: inherit;
font-family: inherit;
font-size: 100%;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
font-weight: inherit;
margin: 0;
padding: 0;
vertical-align: baseline;
} }
:focus { :focus {
outline: 0; outline: 0;
} }
.hidden { .hidden {
display: none; display: none;
} }
.todoapp { .todoapp {
background: #fff; background: #fff;
margin: 130px 0 40px 0;
position: relative;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
margin: 130px 0 40px;
position: relative;
} }
.todoapp input::-webkit-input-placeholder { .todoapp input::-webkit-input-placeholder {
color: #e6e6e6;
font-style: italic; font-style: italic;
font-weight: 300; font-weight: 300;
color: #e6e6e6;
} }
.todoapp input::-moz-placeholder { .todoapp input::-moz-placeholder {
color: #e6e6e6;
font-style: italic; font-style: italic;
font-weight: 300; font-weight: 300;
color: #e6e6e6;
} }
.todoapp input::input-placeholder { .todoapp input::input-placeholder {
color: #e6e6e6;
font-style: italic; font-style: italic;
font-weight: 300; font-weight: 300;
color: #e6e6e6;
} }
.todoapp h1 { .todoapp h1 {
position: absolute; color: rgba(175, 47, 47, 0.15);
top: -155px;
width: 100%;
font-size: 100px; font-size: 100px;
font-weight: 100; font-weight: 100;
position: absolute;
text-align: center; text-align: center;
color: rgba(175, 47, 47, 0.15);
-webkit-text-rendering: optimizeLegibility; -webkit-text-rendering: optimizeLegibility;
-moz-text-rendering: optimizeLegibility; -moz-text-rendering: optimizeLegibility;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
top: -155px;
width: 100%;
} }
.new-todo, .new-todo,
.edit { .edit {
position: relative;
margin: 0;
width: 100%;
font-size: 18px;
font-family: inherit;
font-weight: inherit;
line-height: 1.4em;
border: 0; border: 0;
color: inherit;
padding: 6px;
border: 1px solid #999; border: 1px solid #999;
box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2); box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
box-sizing: border-box; box-sizing: border-box;
color: inherit;
font-family: inherit;
font-size: 18px;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
font-weight: inherit;
line-height: 1.4em;
margin: 0;
padding: 6px;
position: relative;
width: 100%;
} }
.new-todo { .new-todo {
padding: 10px 16px 16px 60px;
border: none;
background: rgba(0, 0, 0, 0.003); background: rgba(0, 0, 0, 0.003);
border: none;
box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03); box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03);
padding: 10px 16px 16px 60px;
} }
.main { .main {
border-top: 1px solid #e6e6e6;
position: relative; position: relative;
z-index: 2; z-index: 2;
border-top: 1px solid #e6e6e6;
} }
.toggle-all { .toggle-all {
text-align: center;
border: none; border: none;
/* Mobile Safari */ /* Mobile Safari */
opacity: 0; opacity: 0;
position: absolute; position: absolute;
text-align: center;
} }
.toggle-all+label { .toggle-all+label {
width: 60px;
height: 34px;
font-size: 0; font-size: 0;
height: 34px;
left: -13px;
position: absolute; position: absolute;
top: -52px; top: -52px;
left: -13px;
-webkit-transform: rotate(90deg); -webkit-transform: rotate(90deg);
transform: rotate(90deg); transform: rotate(90deg);
width: 60px;
} }
.toggle-all+label:before {
.toggle-all+label::before {
color: #e6e6e6;
content: ''; content: '';
font-size: 22px; font-size: 22px;
color: #e6e6e6; padding: 10px 27px;
padding: 10px 27px 10px 27px;
} }
.toggle-all:checked+label:before {
.toggle-all:checked+label::before {
color: #737373; color: #737373;
} }
.todo-list { .todo-list {
list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style: none;
} }
.todo-list li { .todo-list li {
position: relative;
font-size: 24px;
border-bottom: 1px solid #ededed; border-bottom: 1px solid #ededed;
font-size: 24px;
position: relative;
} }
.todo-list li:last-child { .todo-list li:last-child {
border-bottom: none; border-bottom: none;
} }
.todo-list li.editing { .todo-list li.editing {
border-bottom: none; border-bottom: none;
padding: 0; padding: 0;
} }
.todo-list li.editing .edit { .todo-list li.editing .edit {
display: block; display: block;
width: 506px;
padding: 12px 16px;
margin: 0 0 0 43px; margin: 0 0 0 43px;
padding: 12px 16px;
width: 506px;
} }
.todo-list li.editing .view { .todo-list li.editing .view {
display: none; display: none;
} }
.todo-list li .toggle { .todo-list li .toggle {
text-align: center;
width: 40px;
/* auto, since non-WebKit browsers doesn't support input styling */
height: auto;
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
border: none;
/* Mobile Safari */ /* Mobile Safari */
-webkit-appearance: none; -webkit-appearance: none;
appearance: none; appearance: none;
border: none;
bottom: 0;
/* auto, since non-WebKit browsers doesn't support input styling */
height: auto;
margin: auto 0;
position: absolute;
text-align: center;
top: 0;
width: 40px;
} }
.todo-list li .toggle { .todo-list li .toggle {
opacity: 0; opacity: 0;
} }
.todo-list li .toggle+label { .todo-list li .toggle+label {
/* /*
Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433 Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433
IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/ IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/
*/ */
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E'); background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
background-repeat: no-repeat;
background-position: center left; background-position: center left;
background-repeat: no-repeat;
background-size: 36px; background-size: 36px;
} }
.todo-list li .toggle:checked+label { .todo-list li .toggle:checked+label {
background-size: 36px;
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E'); background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
background-size: 36px;
} }
.todo-list li label { .todo-list li label {
word-break: break-all;
padding: 15px 15px 15px 50px;
display: block; display: block;
line-height: 1.0;
font-size: 14px; font-size: 14px;
line-height: 1;
padding: 15px 15px 15px 50px;
transition: color 0.4s; transition: color 0.4s;
word-break: break-all;
} }
.todo-list li.completed label { .todo-list li.completed label {
color: #d9d9d9; color: #d9d9d9;
text-decoration: line-through; text-decoration: line-through;
} }
.todo-list li .destroy { .todo-list li .destroy {
display: none;
position: absolute;
top: 0;
right: 10px;
bottom: 0; bottom: 0;
width: 40px; color: #cc9a9a;
cursor: pointer;
display: none;
font-size: 30px;
height: 40px; height: 40px;
margin: auto 0; margin: auto 0;
font-size: 30px; position: absolute;
color: #cc9a9a; right: 10px;
top: 0;
transition: color 0.2s ease-out; transition: color 0.2s ease-out;
cursor: pointer; width: 40px;
} }
.todo-list li .destroy:hover { .todo-list li .destroy:hover {
color: #af5b5e; color: #af5b5e;
} }
.todo-list li .destroy:after {
.todo-list li .destroy::after {
content: '×'; content: '×';
} }
.todo-list li:hover .destroy { .todo-list li:hover .destroy {
display: block; display: block;
} }
.todo-list li .edit { .todo-list li .edit {
display: none; display: none;
} }
.todo-list li.editing:last-child { .todo-list li.editing:last-child {
margin-bottom: -1px; margin-bottom: -1px;
} }
.footer { .footer {
color: #777;
position: relative;
padding: 10px 15px;
height: 40px;
text-align: center;
border-top: 1px solid #e6e6e6; border-top: 1px solid #e6e6e6;
color: #777;
height: 40px;
padding: 10px 15px;
position: relative;
text-align: center;
} }
.footer:before {
.footer::before {
bottom: 0;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2);
content: ''; content: '';
height: 40px;
left: 0;
overflow: hidden;
position: absolute; position: absolute;
right: 0; right: 0;
bottom: 0;
left: 0;
height: 40px;
overflow: hidden;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2);
} }
.todo-count { .todo-count {
float: left; float: left;
text-align: left; text-align: left;
} }
.todo-count strong { .todo-count strong {
font-weight: 300; font-weight: 300;
} }
.filters { .filters {
list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
position: relative; position: relative;
z-index: 1; z-index: 1;
list-style: none;
} }
.filters li { .filters li {
display: inline; display: inline;
} }
.filters li a { .filters li a {
border: 1px solid transparent;
border-radius: 3px;
color: inherit; color: inherit;
font-size: 12px; font-size: 12px;
padding: 3px 7px; padding: 3px 7px;
text-decoration: none; text-decoration: none;
border: 1px solid transparent;
border-radius: 3px;
} }
.filters li a:hover { .filters li a:hover {
border-color: rgba(175, 47, 47, 0.1); border-color: rgba(175, 47, 47, 0.1);
} }
.filters li a.selected { .filters li a.selected {
border-color: rgba(175, 47, 47, 0.2); border-color: rgba(175, 47, 47, 0.2);
} }
.clear-completed, .clear-completed,
html .clear-completed:active { html .clear-completed:active {
float: right;
position: relative;
line-height: 20px;
text-decoration: none;
cursor: pointer; cursor: pointer;
float: right;
line-height: 20px;
position: relative;
text-decoration: none;
} }
.clear-completed:hover { .clear-completed:hover {
text-decoration: underline; text-decoration: underline;
} }
.info { .info {
margin: 65px auto 0;
color: #bfbfbf; color: #bfbfbf;
font-size: 10px; font-size: 10px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); margin: 65px auto 0;
text-align: center; text-align: center;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
} }
.info p { .info p {
line-height: 1; line-height: 1;
} }
.info a { .info a {
color: inherit; color: inherit;
text-decoration: none;
font-weight: 400; font-weight: 400;
text-decoration: none;
} }
.info a:hover { .info a:hover {
text-decoration: underline; text-decoration: underline;
} }
@ -300,11 +348,12 @@
Hack to remove background from Mobile Safari. Hack to remove background from Mobile Safari.
Can't use it globally since it destroys checkboxes in Firefox Can't use it globally since it destroys checkboxes in Firefox
*/ */
@media screen and (-webkit-min-device-pixel-ratio:0) { @media screen and (-webkit-min-device-pixel-ratio: 0) {
.toggle-all, .toggle-all,
.todo-list li .toggle { .todo-list li .toggle {
background: none; background: none;
} }
.todo-list li .toggle { .todo-list li .toggle {
height: 40px; height: 40px;
} }
@ -313,6 +362,7 @@
.footer { .footer {
height: 50px; height: 50px;
} }
.filters { .filters {
bottom: 10px; bottom: 10px;
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<el-table :data="list" style="width: 100%;padding-top: 15px;"> <el-table :data="list" style="padding-top: 15px;width: 100%;">
<el-table-column label="Order_No" min-width="200"> <el-table-column label="Order_No" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.order_no | orderNoFilter }} {{ scope.row.order_no | orderNoFilter }}

View File

@ -4,7 +4,7 @@
<panel-group @handleSetLineChartData="handleSetLineChartData" /> <panel-group @handleSetLineChartData="handleSetLineChartData" />
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> <el-row style="background: #fff;margin-bottom: 32px;padding: 16px 16px 0;">
<line-chart :chart-data="lineChartData" /> <line-chart :chart-data="lineChartData" />
</el-row> </el-row>
@ -27,13 +27,13 @@
</el-row> </el-row>
<el-row :gutter="8"> <el-row :gutter="8">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;"> <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="margin-bottom: 30px;padding-right: 8px;">
<transaction-table /> <transaction-table />
</el-col> </el-col>
<el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;"> <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom: 30px;">
<todo-list /> <todo-list />
</el-col> </el-col>
<el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;"> <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom: 30px;">
<box-card /> <box-card />
</el-col> </el-col>
</el-row> </el-row>
@ -98,21 +98,21 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.dashboard-editor-container { .dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245); background-color: rgb(240, 242, 245);
padding: 32px;
position: relative; position: relative;
.github-corner { .github-corner {
position: absolute;
top: 0px;
border: 0; border: 0;
position: absolute;
right: 0; right: 0;
top: 0;
} }
.chart-wrapper { .chart-wrapper {
background: #fff; background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px; margin-bottom: 32px;
padding: 16px 16px 0;
} }
} }

View File

@ -1,18 +1,18 @@
<template> <template>
<div class="dashboard-editor-container"> <div class="dashboard-editor-container">
<div class=" clearfix"> <div class=" clearfix">
<pan-thumb :image="avatar" style="float: left"> <pan-thumb :image="avatar" style="float: left;">
Your roles: Your roles:
<span v-for="item in roles" :key="item" class="pan-info-roles">{{ item }}</span> <span v-for="item in roles" :key="item" class="pan-info-roles">{{ item }}</span>
</pan-thumb> </pan-thumb>
<github-corner style="position: absolute; top: 0px; border: 0; right: 0;" /> <github-corner style=" border: 0;position: absolute; right: 0; top: 0;" />
<div class="info-container"> <div class="info-container">
<span class="display_name">{{ name }}</span> <span class="display-name">{{ name }}</span>
<span style="font-size:20px;padding-top:20px;display:inline-block;">Editor's Dashboard</span> <span style="display: inline-block;font-size: 20px;padding-top: 20px;">Editor's Dashboard</span>
</div> </div>
</div> </div>
<div> <div>
<img :src="emptyGif" class="emptyGif"> <img :src="emptyGif" class="empty-gif">
</div> </div>
</div> </div>
</template> </template>
@ -41,31 +41,34 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.emptyGif { .empty-gif {
display: block; display: block;
width: 45%;
margin: 0 auto; margin: 0 auto;
width: 45%;
} }
.dashboard-editor-container { .dashboard-editor-container {
background-color: #e3e3e3; background-color: #e3e3e3;
min-height: 100vh; min-height: 100vh;
padding: 50px 60px 0px; padding: 50px 60px 0;
.pan-info-roles { .pan-info-roles {
font-size: 12px;
font-weight: 700;
color: #333; color: #333;
display: block; display: block;
font-size: 12px;
font-weight: 700;
} }
.info-container { .info-container {
position: relative;
margin-left: 190px;
height: 150px; height: 150px;
line-height: 200px; line-height: 200px;
.display_name { margin-left: 190px;
position: relative;
.display-name {
color: #212121;
font-size: 48px; font-size: 48px;
line-height: 48px; line-height: 48px;
color: #212121;
position: absolute; position: absolute;
top: 25px; top: 25px;
} }

View File

@ -34,23 +34,23 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.documentation-container { .documentation-container {
margin: 50px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-evenly; justify-content: space-evenly;
margin: 50px;
.document-btn { .document-btn {
flex-shrink: 0;
display: block;
cursor: pointer;
background: black; background: black;
color: white; color: white;
height: 60px; cursor: pointer;
width: 200px; display: block;
margin-bottom: 16px; flex-shrink: 0;
line-height: 60px;
font-size: 20px; font-size: 20px;
height: 60px;
line-height: 60px;
margin-bottom: 16px;
text-align: center; text-align: center;
width: 200px;
} }
} }
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="errPage-container"> <div class="err-page-container">
<ErrorA /> <ErrorA />
<ErrorB /> <ErrorB />
<h3>Please click the bug icon in the upper right corner</h3> <h3>Please click the bug icon in the upper right corner</h3>
@ -26,7 +26,7 @@ export default {
</script> </script>
<style scoped> <style scoped>
.errPage-container { .err-page-container {
padding: 30px; padding: 30px;
} }
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="errPage-container"> <div class="err-page-container">
<el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back"> <el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back">
返回 返回
</el-button> </el-button>
@ -59,37 +59,45 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.errPage-container { .err-page-container {
width: 800px;
max-width: 100%;
margin: 100px auto; margin: 100px auto;
max-width: 100%;
width: 800px;
.pan-back-btn { .pan-back-btn {
background: #008489; background: #008489;
border: none !important;
color: #fff; color: #fff;
border: none!important;
} }
.pan-gif { .pan-gif {
margin: 0 auto;
display: block; display: block;
margin: 0 auto;
} }
.pan-img { .pan-img {
display: block; display: block;
margin: 0 auto; margin: 0 auto;
width: 100%; width: 100%;
} }
.text-jumbo { .text-jumbo {
color: #484848;
font-size: 60px; font-size: 60px;
font-weight: 700; font-weight: 700;
color: #484848;
} }
.list-unstyled { .list-unstyled {
font-size: 14px; font-size: 14px;
li { li {
padding-bottom: 5px; padding-bottom: 5px;
} }
a { a {
color: #008489; color: #008489;
text-decoration: none; text-decoration: none;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }

View File

@ -10,7 +10,7 @@
<div class="bullshit"> <div class="bullshit">
<div class="bullshit__oops">OOPS!</div> <div class="bullshit__oops">OOPS!</div>
<div class="bullshit__info">All rights reserved <div class="bullshit__info">All rights reserved
<a style="color:#20a0ff" href="https://wallstreetcn.com" target="_blank">wallstreetcn</a> <a style="color: #20a0ff;" href="https://wallstreetcn.com" target="_blank">wallstreetcn</a>
</div> </div>
<div class="bullshit__headline">{{ message }}</div> <div class="bullshit__headline">{{ message }}</div>
<div class="bullshit__info">Please check that the URL you entered is correct, or click the button below to return to the homepage.</div> <div class="bullshit__info">Please check that the URL you entered is correct, or click the button below to return to the homepage.</div>
@ -33,194 +33,216 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wscn-http404-container{ .wscn-http404-container {
transform: translate(-50%,-50%); left: 50%;
position: absolute; position: absolute;
top: 40%; top: 40%;
left: 50%; transform: translate(-50%, -50%);
} }
.wscn-http404 { .wscn-http404 {
overflow: hidden;
padding: 0 50px;
position: relative; position: relative;
width: 1200px; width: 1200px;
padding: 0 50px;
overflow: hidden;
.pic-404 { .pic-404 {
position: relative;
float: left; float: left;
width: 600px;
overflow: hidden; overflow: hidden;
position: relative;
width: 600px;
&__parent { &__parent {
width: 100%; width: 100%;
} }
&__child { &__child {
position: absolute; position: absolute;
&.left { &.left {
width: 80px; animation-delay: 1s;
top: 17px; animation-duration: 2s;
animation-fill-mode: forwards;
animation-name: cloudLeft;
animation-timing-function: linear;
left: 220px; left: 220px;
opacity: 0; opacity: 0;
animation-name: cloudLeft; top: 17px;
animation-duration: 2s; width: 80px;
animation-timing-function: linear;
animation-fill-mode: forwards;
animation-delay: 1s;
} }
&.mid { &.mid {
width: 46px; animation-delay: 1.2s;
top: 10px; animation-duration: 2s;
animation-fill-mode: forwards;
animation-name: cloudMid;
animation-timing-function: linear;
left: 420px; left: 420px;
opacity: 0; opacity: 0;
animation-name: cloudMid; top: 10px;
animation-duration: 2s; width: 46px;
animation-timing-function: linear;
animation-fill-mode: forwards;
animation-delay: 1.2s;
} }
&.right { &.right {
width: 62px; animation-delay: 1s;
top: 100px; animation-duration: 2s;
animation-fill-mode: forwards;
animation-name: cloudRight;
animation-timing-function: linear;
left: 500px; left: 500px;
opacity: 0; opacity: 0;
animation-name: cloudRight; top: 100px;
animation-duration: 2s; width: 62px;
animation-timing-function: linear;
animation-fill-mode: forwards;
animation-delay: 1s;
} }
@keyframes cloudLeft { @keyframes cloudLeft {
0% { 0% {
top: 17px;
left: 220px; left: 220px;
opacity: 0; opacity: 0;
top: 17px;
} }
20% { 20% {
top: 33px;
left: 188px; left: 188px;
opacity: 1; opacity: 1;
top: 33px;
} }
80% { 80% {
top: 81px;
left: 92px; left: 92px;
opacity: 1; opacity: 1;
top: 81px;
} }
100% { 100% {
top: 97px;
left: 60px; left: 60px;
opacity: 0; opacity: 0;
top: 97px;
} }
} }
@keyframes cloudMid { @keyframes cloudMid {
0% { 0% {
top: 10px;
left: 420px; left: 420px;
opacity: 0; opacity: 0;
top: 10px;
} }
20% { 20% {
top: 40px;
left: 360px; left: 360px;
opacity: 1; opacity: 1;
top: 40px;
} }
70% { 70% {
top: 130px;
left: 180px; left: 180px;
opacity: 1; opacity: 1;
top: 130px;
} }
100% { 100% {
top: 160px;
left: 120px; left: 120px;
opacity: 0; opacity: 0;
top: 160px;
} }
} }
@keyframes cloudRight { @keyframes cloudRight {
0% { 0% {
top: 100px;
left: 500px; left: 500px;
opacity: 0; opacity: 0;
top: 100px;
} }
20% { 20% {
top: 120px;
left: 460px; left: 460px;
opacity: 1; opacity: 1;
top: 120px;
} }
80% { 80% {
top: 180px;
left: 340px; left: 340px;
opacity: 1; opacity: 1;
top: 180px;
} }
100% { 100% {
top: 200px;
left: 300px; left: 300px;
opacity: 0; opacity: 0;
top: 200px;
} }
} }
} }
} }
.bullshit { .bullshit {
position: relative;
float: left; float: left;
width: 300px;
padding: 30px 0;
overflow: hidden; overflow: hidden;
padding: 30px 0;
position: relative;
width: 300px;
&__oops { &__oops {
animation-duration: 0.5s;
animation-fill-mode: forwards;
animation-name: slideUp;
color: #1482f0;
font-size: 32px; font-size: 32px;
font-weight: bold; font-weight: bold;
line-height: 40px; line-height: 40px;
color: #1482f0;
opacity: 0;
margin-bottom: 20px; margin-bottom: 20px;
animation-name: slideUp;
animation-duration: 0.5s;
animation-fill-mode: forwards;
}
&__headline {
font-size: 20px;
line-height: 24px;
color: #222;
font-weight: bold;
opacity: 0; opacity: 0;
margin-bottom: 10px;
animation-name: slideUp;
animation-duration: 0.5s;
animation-delay: 0.1s;
animation-fill-mode: forwards;
} }
&__headline {
animation-delay: 0.1s;
animation-duration: 0.5s;
animation-fill-mode: forwards;
animation-name: slideUp;
color: #222;
font-size: 20px;
font-weight: bold;
line-height: 24px;
margin-bottom: 10px;
opacity: 0;
}
&__info { &__info {
animation-delay: 0.2s;
animation-duration: 0.5s;
animation-fill-mode: forwards;
animation-name: slideUp;
color: grey;
font-size: 13px; font-size: 13px;
line-height: 21px; line-height: 21px;
color: grey;
opacity: 0;
margin-bottom: 30px; margin-bottom: 30px;
animation-name: slideUp; opacity: 0;
animation-duration: 0.5s;
animation-delay: 0.2s;
animation-fill-mode: forwards;
} }
&__return-home { &__return-home {
display: block; animation-delay: 0.3s;
float: left; animation-duration: 0.5s;
width: 110px; animation-fill-mode: forwards;
height: 36px; animation-name: slideUp;
background: #1482f0; background: #1482f0;
border-radius: 100px; border-radius: 100px;
text-align: center; color: #fff;
color: #ffffff;
opacity: 0;
font-size: 14px;
line-height: 36px;
cursor: pointer; cursor: pointer;
animation-name: slideUp; display: block;
animation-duration: 0.5s; float: left;
animation-delay: 0.3s; font-size: 14px;
animation-fill-mode: forwards; height: 36px;
line-height: 36px;
opacity: 0;
text-align: center;
width: 110px;
} }
@keyframes slideUp { @keyframes slideUp {
0% { 0% {
transform: translateY(60px);
opacity: 0; opacity: 0;
transform: translateY(60px);
} }
100% { 100% {
transform: translateY(0);
opacity: 1; opacity: 1;
transform: translateY(0);
} }
} }
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="createPost-container"> <div class="create-post-container">
<el-form ref="postForm" :model="postForm" :rules="rules" class="form-container"> <el-form ref="postForm" :model="postForm" :rules="rules" class="form-container">
<sticky :z-index="10" :class-name="'sub-navbar '+postForm.status"> <sticky :z-index="10" :class-name="'sub-navbar '+postForm.status">
@ -14,7 +14,7 @@
</el-button> </el-button>
</sticky> </sticky>
<div class="createPost-main-container"> <div class="create-post-main-container">
<el-row> <el-row>
<Warning /> <Warning />
@ -25,10 +25,10 @@
</MDinput> </MDinput>
</el-form-item> </el-form-item>
<div class="postInfo-container"> <div class="post-info-container">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label-width="60px" label="Author:" class="postInfo-container-item"> <el-form-item label-width="60px" label="Author:" class="post-info-container-item">
<el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable default-first-option remote placeholder="Search user"> <el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable default-first-option remote placeholder="Search user">
<el-option v-for="(item,index) in userListOptions" :key="item+index" :label="item" :value="item" /> <el-option v-for="(item,index) in userListOptions" :key="item+index" :label="item" :value="item" />
</el-select> </el-select>
@ -36,20 +36,20 @@
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-form-item label-width="120px" label="Publish Time:" class="postInfo-container-item"> <el-form-item label-width="120px" label="Publish Time:" class="post-info-container-item">
<el-date-picker v-model="displayTime" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Select date and time" /> <el-date-picker v-model="displayTime" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Select date and time" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label-width="90px" label="Importance:" class="postInfo-container-item"> <el-form-item label-width="90px" label="Importance:" class="post-info-container-item">
<el-rate <el-rate
v-model="postForm.importance" v-model="postForm.importance"
:max="3" :max="3"
:colors="['#99A9BF', '#F7BA2A', '#FF9900']" :colors="['#99A9BF', '#F7BA2A', '#FF9900']"
:low-threshold="1" :low-threshold="1"
:high-threshold="3" :high-threshold="3"
style="display:inline-block" style="display: inline-block;"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -250,40 +250,40 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/styles/mixin.scss"; @import '~@/styles/mixin.scss';
.createPost-container { .create-post-container {
position: relative; position: relative;
.createPost-main-container { .create-post-main-container {
padding: 40px 45px 20px 50px; padding: 40px 45px 20px 50px;
.postInfo-container { .post-info-container {
position: relative;
@include clearfix; @include clearfix;
margin-bottom: 10px; margin-bottom: 10px;
position: relative;
.postInfo-container-item { .post-info-container-item {
float: left; float: left;
} }
} }
} }
.word-counter { .word-counter {
width: 40px;
position: absolute; position: absolute;
right: 10px; right: 10px;
top: 0px; top: 0;
width: 40px;
} }
} }
.article-textarea /deep/ { .article-textarea /deep/ {
textarea { textarea {
border: none;
border-bottom: 1px solid #bfcbd9;
border-radius: 0;
padding-right: 40px; padding-right: 40px;
resize: none; resize: none;
border: none;
border-radius: 0px;
border-bottom: 1px solid #bfcbd9;
} }
} }
</style> </style>

View File

@ -4,8 +4,8 @@
Link Link
<i class="el-icon-caret-bottom el-icon--right" /> <i class="el-icon-caret-bottom el-icon--right" />
</el-button> </el-button>
<el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width:400px"> <el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width: 400px;">
<el-form-item label-width="0px" style="margin-bottom: 0px" prop="source_uri"> <el-form-item label-width="0px" style="margin-bottom: 0;" prop="source_uri">
<el-input v-model="source_uri" placeholder="Please enter the content"> <el-input v-model="source_uri" placeholder="Please enter the content">
<template slot="prepend"> <template slot="prepend">
URL URL

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%"> <el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%;">
<el-table-column align="center" label="ID" width="80"> <el-table-column align="center" label="ID" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.id }}</span> <span>{{ scope.row.id }}</span>
@ -104,6 +104,7 @@ export default {
.edit-input { .edit-input {
padding-right: 100px; padding-right: 100px;
} }
.cancel-btn { .cancel-btn {
position: absolute; position: absolute;
right: 15px; right: 15px;

View File

@ -1,5 +1,5 @@
<template> <template>
<div style="display:inline-block;"> <div style="display: inline-block;">
<label class="radio-label">Cell Auto-Width: </label> <label class="radio-label">Cell Auto-Width: </label>
<el-radio-group v-model="autoWidth"> <el-radio-group v-model="autoWidth">
<el-radio :label="true" border> <el-radio :label="true" border>

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="display:inline-block;"> <div style="display: inline-block;">
<label class="radio-label">Book Type: </label> <label class="radio-label">Book Type: </label>
<el-select v-model="bookType" style="width:120px;"> <el-select v-model="bookType" style="width: 120px;">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item" :key="item"

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="display:inline-block;"> <div style="display: inline-block;">
<label class="radio-label" style="padding-left:0;">Filename: </label> <label class="radio-label" style="padding-left: 0;">Filename: </label>
<el-input v-model="filename" placeholder="Please enter the file name (default excel-list)" style="width:345px;" prefix-icon="el-icon-document" /> <el-input v-model="filename" placeholder="Please enter the file name (default excel-list)" style="width: 345px;" prefix-icon="el-icon-document" />
</div> </div>
</template> </template>

View File

@ -5,10 +5,10 @@
<FilenameOption v-model="filename" /> <FilenameOption v-model="filename" />
<AutoWidthOption v-model="autoWidth" /> <AutoWidthOption v-model="autoWidth" />
<BookTypeOption v-model="bookType" /> <BookTypeOption v-model="bookType" />
<el-button :loading="downloadLoading" style="margin:0 0 20px 20px;" type="primary" icon="el-icon-document" @click="handleDownload"> <el-button :loading="downloadLoading" style="margin: 0 0 20px 20px;" type="primary" icon="el-icon-document" @click="handleDownload">
Export Excel Export Excel
</el-button> </el-button>
<a href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" target="_blank" style="margin-left:15px;"> <a href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" target="_blank" style="margin-left: 15px;">
<el-tag type="info">Documentation</el-tag> <el-tag type="info">Documentation</el-tag>
</a> </a>
</div> </div>
@ -108,8 +108,8 @@ export default {
<style> <style>
.radio-label { .radio-label {
font-size: 14px;
color: #606266; color: #606266;
font-size: 14px;
line-height: 40px; line-height: 40px;
padding: 0 12px 0 30px; padding: 0 12px 0 30px;
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="el-icon-document" @click="handleDownload">Export</el-button> <el-button :loading="downloadLoading" style="margin-bottom: 20px;" type="primary" icon="el-icon-document" @click="handleDownload">Export</el-button>
<el-table <el-table
ref="multipleTable" ref="multipleTable"

View File

@ -1,10 +1,10 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-input v-model="filename" placeholder="Please enter the file name (default excel-list)" style="width:350px;" prefix-icon="el-icon-document" /> <el-input v-model="filename" placeholder="Please enter the file name (default excel-list)" style="width: 350px;" prefix-icon="el-icon-document" />
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="el-icon-document" @click="handleDownload"> <el-button :loading="downloadLoading" style="margin-bottom: 20px;" type="primary" icon="el-icon-document" @click="handleDownload">
Export Selected Items Export Selected Items
</el-button> </el-button>
<a href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" target="_blank" style="margin-left:15px;"> <a href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" target="_blank" style="margin-left: 15px;">
<el-tag type="info">Documentation</el-tag> <el-tag type="info">Documentation</el-tag>
</a> </a>
<el-table <el-table

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload" /> <upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload" />
<el-table :data="tableData" border highlight-current-row style="width: 100%;margin-top:20px;"> <el-table :data="tableData" border highlight-current-row style="margin-top: 20px;width: 100%;">
<el-table-column v-for="item of tableHeader" :key="item" :prop="item" :label="item" /> <el-table-column v-for="item of tableHeader" :key="item" :prop="item" :label="item" />
</el-table> </el-table>
</div> </div>

View File

@ -72,20 +72,20 @@ export default {
overflow: hidden; overflow: hidden;
.grid { .grid {
position: relative;
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
position: relative;
} }
.icon-item { .icon-item {
margin: 20px;
height: 85px;
text-align: center;
width: 100px;
float: left;
font-size: 30px;
color: #24292e; color: #24292e;
cursor: pointer; cursor: pointer;
float: left;
font-size: 30px;
height: 85px;
margin: 20px;
text-align: center;
width: 100px;
} }
span { span {

View File

@ -40,32 +40,37 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.social-signup-container { .social-signup-container {
margin: 20px 0; margin: 20px 0;
.sign-btn { .sign-btn {
display: inline-block;
cursor: pointer; cursor: pointer;
display: inline-block;
} }
.icon { .icon {
color: #fff; color: #fff;
font-size: 24px; font-size: 24px;
margin-top: 8px; margin-top: 8px;
} }
.wx-svg-container, .wx-svg-container,
.qq-svg-container { .qq-svg-container {
border-radius: 4px;
display: inline-block; display: inline-block;
width: 40px;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
text-align: center;
padding-top: 1px;
border-radius: 4px;
margin-bottom: 20px; margin-bottom: 20px;
margin-right: 5px; margin-right: 5px;
padding-top: 1px;
text-align: center;
width: 40px;
} }
.wx-svg-container { .wx-svg-container {
background-color: #24da70; background-color: #24da70;
} }
.qq-svg-container { .qq-svg-container {
background-color: #6BA2D6; background-color: #6ba2d6;
margin-left: 50px; margin-left: 50px;
} }
} }

View File

@ -45,15 +45,15 @@
</el-form-item> </el-form-item>
</el-tooltip> </el-tooltip>
<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">Login</el-button> <el-button :loading="loading" type="primary" style="margin-bottom: 30px;width: 100%;" @click.native.prevent="handleLogin">Login</el-button>
<div style="position:relative"> <div style="position: relative;">
<div class="tips"> <div class="tips">
<span>Username : admin</span> <span>Username : admin</span>
<span>Password : any</span> <span>Password : any</span>
</div> </div>
<div class="tips"> <div class="tips">
<span style="margin-right:18px;">Username : editor</span> <span style="margin-right: 18px;">Username : editor</span>
<span>Password : any</span> <span>Password : any</span>
</div> </div>
@ -204,8 +204,8 @@ export default {
/* 修复input 背景不协调 和光标变色 */ /* 修复input 背景不协调 和光标变色 */
/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */ /* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */
$bg:#283443; $bg: #283443;
$light_gray:#fff; $light-gray: #fff;
$cursor: #fff; $cursor: #fff;
@supports (-webkit-mask: none) and (not (cater-color: $cursor)) { @supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
@ -222,25 +222,25 @@ $cursor: #fff;
width: 85%; width: 85%;
input { input {
background: transparent;
border: 0px;
-webkit-appearance: none; -webkit-appearance: none;
border-radius: 0px; background: transparent;
padding: 12px 5px 12px 15px; border: 0;
color: $light_gray; border-radius: 0;
height: 47px;
caret-color: $cursor; caret-color: $cursor;
color: $light-gray;
height: 47px;
padding: 12px 5px 12px 15px;
&:-webkit-autofill { &:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important; box-shadow: 0 0 0 1000px $bg inset !important;
-webkit-text-fill-color: $cursor !important; -webkit-text-fill-color: $cursor !important;
} }
} }
} }
.el-form-item { .el-form-item {
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 5px; border-radius: 5px;
color: #454545; color: #454545;
} }
@ -248,28 +248,28 @@ $cursor: #fff;
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
$bg:#2d3a4b; $bg: #2d3a4b;
$dark_gray:#889aa4; $dark-gray: #889aa4;
$light_gray:#eee; $light-gray: #eee;
.login-container { .login-container {
min-height: 100%;
width: 100%;
background-color: $bg; background-color: $bg;
min-height: 100%;
overflow: hidden; overflow: hidden;
width: 100%;
.login-form { .login-form {
margin: 0 auto;
max-width: 100%;
overflow: hidden;
padding: 160px 35px 0;
position: relative; position: relative;
width: 520px; width: 520px;
max-width: 100%;
padding: 160px 35px 0;
margin: 0 auto;
overflow: hidden;
} }
.tips { .tips {
font-size: 14px;
color: #fff; color: #fff;
font-size: 14px;
margin-bottom: 10px; margin-bottom: 10px;
span { span {
@ -280,39 +280,39 @@ $light_gray:#eee;
} }
.svg-container { .svg-container {
color: $dark-gray;
display: inline-block;
padding: 6px 5px 6px 15px; padding: 6px 5px 6px 15px;
color: $dark_gray;
vertical-align: middle; vertical-align: middle;
width: 30px; width: 30px;
display: inline-block;
} }
.title-container { .title-container {
position: relative; position: relative;
.title { .title {
color: $light-gray;
font-size: 26px; font-size: 26px;
color: $light_gray;
margin: 0px auto 40px auto;
text-align: center;
font-weight: bold; font-weight: bold;
margin: 0 auto 40px;
text-align: center;
} }
} }
.show-pwd { .show-pwd {
color: $dark-gray;
cursor: pointer;
font-size: 16px;
position: absolute; position: absolute;
right: 10px; right: 10px;
top: 7px; top: 7px;
font-size: 16px;
color: $dark_gray;
cursor: pointer;
user-select: none; user-select: none;
} }
.thirdparty-button { .thirdparty-button {
bottom: 6px;
position: absolute; position: absolute;
right: 0; right: 0;
bottom: 6px;
} }
@media only screen and (max-width: 470px) { @media only screen and (max-width: 470px) {

View File

@ -1,5 +1,5 @@
<template> <template>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1"> <el-alert :closable="false" title="menu 1">
<router-view /> <router-view />
</el-alert> </el-alert>

View File

@ -1,5 +1,5 @@
<template> <template>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1-1" type="success"> <el-alert :closable="false" title="menu 1-1" type="success">
<router-view /> <router-view />
</el-alert> </el-alert>

View File

@ -1,5 +1,5 @@
<template> <template>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1-2" type="success"> <el-alert :closable="false" title="menu 1-2" type="success">
<router-view /> <router-view />
</el-alert> </el-alert>

View File

@ -1,5 +1,5 @@
<template functional> <template functional>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1-2-1" type="warning" /> <el-alert :closable="false" title="menu 1-2-1" type="warning" />
</div> </div>
</template> </template>

View File

@ -1,5 +1,5 @@
<template functional> <template functional>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1-2-2" type="warning" /> <el-alert :closable="false" title="menu 1-2-2" type="warning" />
</div> </div>
</template> </template>

View File

@ -1,5 +1,5 @@
<template functional> <template functional>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 1-3" type="success" /> <el-alert :closable="false" title="menu 1-3" type="success" />
</div> </div>
</template> </template>

View File

@ -1,5 +1,5 @@
<template> <template>
<div style="padding:30px;"> <div style="padding: 30px;">
<el-alert :closable="false" title="menu 2" /> <el-alert :closable="false" title="menu 2" />
</div> </div>
</template> </template>

View File

@ -1,7 +1,7 @@
<template> <template>
<div v-loading.fullscreen.lock="fullscreenLoading" class="main-article" element-loading-text="Efforts to generate PDF"> <div v-loading.fullscreen.lock="fullscreenLoading" class="main-article" element-loading-text="Efforts to generate PDF">
<div class="article__heading"> <div class="article-heading">
<div class="article__heading__title"> <div class="article-heading-title">
{{ article.title }} {{ article.title }}
</div> </div>
</div> </div>
@ -44,57 +44,57 @@ export default {
<style lang="scss"> <style lang="scss">
@mixin clearfix { @mixin clearfix {
&:before { &::before {
display: table;
content: '';
clear: both; clear: both;
content: '';
display: table;
} }
&:after { &::after {
display: table;
content: '';
clear: both; clear: both;
content: '';
display: table;
} }
} }
.main-article { .main-article {
padding: 20px;
margin: 0 auto;
display: block;
width: 740px;
background: #fff; background: #fff;
display: block;
margin: 0 auto;
padding: 20px;
width: 740px;
} }
.article__heading { .article-heading {
position: relative;
padding: 0 0 20px;
overflow: hidden; overflow: hidden;
padding: 0 0 20px;
position: relative;
} }
.article__heading__title { .article-heading-title {
-webkit-box-orient: vertical;
color: #333;
display: block; display: block;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; font-size: 32px;
font-weight: 600;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
line-clamp: 2; line-clamp: 2;
word-wrap: break-word;
overflow-wrap: break-word;
font-size: 32px;
line-height: 48px; line-height: 48px;
font-weight: 600;
color: #333;
overflow: hidden; overflow: hidden;
overflow-wrap: break-word;
word-wrap: break-word;
} }
.node-article-content { .node-article-content {
margin: 20px 0 0;
@include clearfix; @include clearfix;
font-size: 16px;
color: #333; color: #333;
font-family: medium-content-serif-font, Georgia, Cambria, 'Times New Roman', Times, serif;
font-size: 16px;
letter-spacing: 0.5px; letter-spacing: 0.5px;
line-height: 28px; line-height: 28px;
margin: 20px 0 0;
margin-bottom: 30px; margin-bottom: 30px;
font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif;
&> :last-child { &> :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -107,17 +107,17 @@ export default {
} }
img { img {
max-width: 100%;
display: block; display: block;
margin: 0 auto; margin: 0 auto;
max-width: 100%;
} }
p { p {
font-weight: 400;
font-style: normal;
font-size: 21px; font-size: 21px;
font-style: normal;
font-weight: 400;
letter-spacing: -0.003em;
line-height: 1.58; line-height: 1.58;
letter-spacing: -.003em;
} }
@ -128,32 +128,32 @@ export default {
li { li {
--x-height-multiplier: 0.375; --x-height-multiplier: 0.375;
--baseline-multiplier: 0.17; --baseline-multiplier: 0.17;
letter-spacing: .01rem;
font-weight: 400;
font-style: normal;
font-size: 21px; font-size: 21px;
font-style: normal;
font-weight: 400;
letter-spacing: 0.01rem;
letter-spacing: -0.003em;
line-height: 1.58; line-height: 1.58;
letter-spacing: -.003em;
margin-left: 30px;
margin-bottom: 14px; margin-bottom: 14px;
margin-left: 30px;
} }
a { a {
text-decoration: none; background-image: linear-gradient(to right, rgba(0, 0, 0, 0.84) 100%, rgba(0, 0, 0, 0) 0);
background-repeat: repeat-x;
background-image: linear-gradient(to right, rgba(0, 0, 0, .84) 100%, rgba(0, 0, 0, 0) 0);
background-size: 1px 1px;
background-position: 0 calc(1em + 1px); background-position: 0 calc(1em + 1px);
background-repeat: repeat-x;
background-size: 1px 1px;
padding: 0 6px; padding: 0 6px;
text-decoration: none;
} }
code { code {
background: rgba(0, 0, 0, .05); background: rgba(0, 0, 0, 0.05);
padding: 3px 4px;
margin: 0 2px;
font-size: 16px;
display: inline-block; display: inline-block;
font-size: 16px;
margin: 0 2px;
padding: 3px 4px;
} }
img { img {
@ -168,17 +168,17 @@ export default {
blockquote { blockquote {
--x-height-multiplier: 0.375; --x-height-multiplier: 0.375;
--baseline-multiplier: 0.17; --baseline-multiplier: 0.17;
font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", Times, serif; border-left: 3px solid rgba(0, 0, 0, 0.84);
letter-spacing: .01rem; font-family: medium-content-serif-font, Georgia, Cambria, 'Times New Roman', Times, serif;
font-weight: 400;
font-style: italic;
font-size: 21px; font-size: 21px;
font-style: italic;
font-weight: 400;
letter-spacing: 0.01rem;
letter-spacing: -0.003em;
line-height: 1.58; line-height: 1.58;
letter-spacing: -.003em;
border-left: 3px solid rgba(0, 0, 0, .84);
padding-left: 20px;
margin-left: -23px; margin-left: -23px;
padding-bottom: 2px; padding-bottom: 2px;
padding-left: 20px;
} }
a { a {
@ -189,8 +189,8 @@ export default {
h3, h3,
h4 { h4 {
font-size: 34px; font-size: 34px;
letter-spacing: -0.015em;
line-height: 1.15; line-height: 1.15;
letter-spacing: -.015em;
margin: 53px 0 0; margin: 53px 0 0;
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<aside style="margin-top:15px;"> <aside style="margin-top: 15px;">
Here we use window.print() to implement the feature of downloading PDF. Here we use window.print() to implement the feature of downloading PDF.
</aside> </aside>
<router-link target="_blank" to="/pdf/download"> <router-link target="_blank" to="/pdf/download">

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div style="margin-bottom:15px;"> <div style="margin-bottom: 15px;">
Your roles: {{ roles }} Your roles: {{ roles }}
</div> </div>
Switch roles: Switch roles:

View File

@ -1,13 +1,13 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<switch-roles @change="handleRolesChange" /> <switch-roles @change="handleRolesChange" />
<div :key="key" style="margin-top:30px;"> <div :key="key" style="margin-top: 30px;">
<div> <div>
<span v-permission="['admin']" class="permission-alert"> <span v-permission="['admin']" class="permission-alert">
Only Only
<el-tag class="permission-tag" size="small">admin</el-tag> can see this <el-tag class="permission-tag" size="small">admin</el-tag> can see this
</span> </span>
<el-tag v-permission="['admin']" class="permission-sourceCode" type="info"> <el-tag v-permission="['admin']" class="permission-source-code" type="info">
v-permission="['admin']" v-permission="['admin']"
</el-tag> </el-tag>
</div> </div>
@ -17,7 +17,7 @@
Only Only
<el-tag class="permission-tag" size="small">editor</el-tag> can see this <el-tag class="permission-tag" size="small">editor</el-tag> can see this
</span> </span>
<el-tag v-permission="['editor']" class="permission-sourceCode" type="info"> <el-tag v-permission="['editor']" class="permission-source-code" type="info">
v-permission="['editor']" v-permission="['editor']"
</el-tag> </el-tag>
</div> </div>
@ -28,36 +28,36 @@
<el-tag class="permission-tag" size="small">admin</el-tag> and <el-tag class="permission-tag" size="small">admin</el-tag> and
<el-tag class="permission-tag" size="small">editor</el-tag> can see this <el-tag class="permission-tag" size="small">editor</el-tag> can see this
</span> </span>
<el-tag v-permission="['admin','editor']" class="permission-sourceCode" type="info"> <el-tag v-permission="['admin','editor']" class="permission-source-code" type="info">
v-permission="['admin','editor']" v-permission="['admin','editor']"
</el-tag> </el-tag>
</div> </div>
</div> </div>
<div :key="'checkPermission'+key" style="margin-top:60px;"> <div :key="'checkPermission'+key" style="margin-top: 60px;">
<aside> <aside>
In some cases, using v-permission will have no effect. For example: Element-UI's Tab component or el-table-column and other scenes that dynamically render dom. You can only do this with v-if. In some cases, using v-permission will have no effect. For example: Element-UI's Tab component or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.
<br> e.g. <br> e.g.
</aside> </aside>
<el-tabs type="border-card" style="width:550px;"> <el-tabs type="border-card" style="width: 550px;">
<el-tab-pane v-if="checkPermission(['admin'])" label="Admin"> <el-tab-pane v-if="checkPermission(['admin'])" label="Admin">
Admin can see this Admin can see this
<el-tag class="permission-sourceCode" type="info"> <el-tag class="permission-source-code" type="info">
v-if="checkPermission(['admin'])" v-if="checkPermission(['admin'])"
</el-tag> </el-tag>
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-if="checkPermission(['editor'])" label="Editor"> <el-tab-pane v-if="checkPermission(['editor'])" label="Editor">
Editor can see this Editor can see this
<el-tag class="permission-sourceCode" type="info"> <el-tag class="permission-source-code" type="info">
v-if="checkPermission(['editor'])" v-if="checkPermission(['editor'])"
</el-tag> </el-tag>
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-if="checkPermission(['admin','editor'])" label="Admin-OR-Editor"> <el-tab-pane v-if="checkPermission(['admin','editor'])" label="Admin-OR-Editor">
Both admin or editor can see this Both admin or editor can see this
<el-tag class="permission-sourceCode" type="info"> <el-tag class="permission-source-code" type="info">
v-if="checkPermission(['admin','editor'])" v-if="checkPermission(['admin','editor'])"
</el-tag> </el-tag>
</el-tab-pane> </el-tab-pane>
@ -92,17 +92,19 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.app-container { .app-container {
/deep/ .permission-alert { /deep/ .permission-alert {
width: 320px;
margin-top: 15px;
background-color: #f0f9eb; background-color: #f0f9eb;
color: #67c23a;
padding: 8px 16px;
border-radius: 4px; border-radius: 4px;
color: #67c23a;
display: inline-block; display: inline-block;
margin-top: 15px;
padding: 8px 16px;
width: 320px;
} }
/deep/ .permission-sourceCode {
/deep/ .permission-source-code {
margin-left: 15px; margin-left: 15px;
} }
/deep/ .permission-tag { /deep/ .permission-tag {
background-color: #ecf5ff; background-color: #ecf5ff;
} }

View File

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-button type="primary" @click="handleAddRole">New Role</el-button> <el-button type="primary" @click="handleAddRole">New Role</el-button>
<el-table :data="rolesList" style="width: 100%;margin-top:30px;" border> <el-table :data="rolesList" style="margin-top: 30px;width: 100%;" border>
<el-table-column align="center" label="Role Key" width="220"> <el-table-column align="center" label="Role Key" width="220">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.key }} {{ scope.row.key }}
@ -51,7 +51,7 @@
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="text-align:right;"> <div style="text-align: right;">
<el-button type="danger" @click="dialogVisible=false">Cancel</el-button> <el-button type="danger" @click="dialogVisible=false">Cancel</el-button>
<el-button type="primary" @click="confirmRole">Confirm</el-button> <el-button type="primary" @click="confirmRole">Confirm</el-button>
</div> </div>
@ -263,6 +263,7 @@ export default {
.roles-table { .roles-table {
margin-top: 30px; margin-top: 30px;
} }
.permission-tree { .permission-tree {
margin-bottom: 30px; margin-bottom: 30px;
} }

View File

@ -103,7 +103,6 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.user-activity { .user-activity {
.user-block { .user-block {
.username, .username,
.description { .description {
display: block; display: block;
@ -111,38 +110,38 @@ export default {
padding: 2px 0; padding: 2px 0;
} }
.username{ .username {
font-size: 16px;
color: #000; color: #000;
font-size: 16px;
} }
:after { ::after {
clear: both; clear: both;
} }
.img-circle { .img-circle {
border-radius: 50%; border-radius: 50%;
width: 40px;
height: 40px;
float: left; float: left;
height: 40px;
width: 40px;
} }
span { span {
font-weight: 500;
font-size: 12px; font-size: 12px;
font-weight: 500;
} }
} }
.post { .post {
font-size: 14px;
border-bottom: 1px solid #d2d6de; border-bottom: 1px solid #d2d6de;
color: #666;
font-size: 14px;
margin-bottom: 15px; margin-bottom: 15px;
padding-bottom: 15px; padding-bottom: 15px;
color: #666;
.image { .image {
width: 100%;
height: 100%; height: 100%;
width: 100%;
} }
@ -152,19 +151,18 @@ export default {
} }
.list-inline { .list-inline {
padding-left: 0;
margin-left: -5px;
list-style: none; list-style: none;
margin-left: -5px;
padding-left: 0;
li { li {
display: inline-block; display: inline-block;
padding-right: 5px;
padding-left: 5px;
font-size: 13px; font-size: 13px;
padding-left: 5px;
padding-right: 5px;
} }
.link-black { .link-black {
&:hover, &:hover,
&:focus { &:focus {
color: #999; color: #999;
@ -175,8 +173,8 @@ export default {
} }
.box-center { .box-center {
margin: 0 auto;
display: table; display: table;
margin: 0 auto;
} }
.text-muted { .text-muted {

View File

@ -1,5 +1,5 @@
<template> <template>
<el-card style="margin-bottom:20px;"> <el-card style="margin-bottom: 20px;">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>About me</span> <span>About me</span>
</div> </div>
@ -75,8 +75,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.box-center { .box-center {
margin: 0 auto;
display: table; display: table;
margin: 0 auto;
} }
.text-muted { .text-muted {
@ -93,9 +93,9 @@ export default {
} }
.user-role { .user-role {
padding-top: 10px;
font-weight: 400;
font-size: 14px; font-size: 14px;
font-weight: 400;
padding-top: 10px;
} }
.box-social { .box-social {
@ -112,8 +112,8 @@ export default {
} }
.user-bio { .user-bio {
margin-top: 20px;
color: #606266; color: #606266;
margin-top: 20px;
span { span {
padding-left: 4px; padding-left: 4px;
@ -125,9 +125,9 @@ export default {
.user-bio-section-header { .user-bio-section-header {
border-bottom: 1px solid #dfe6ec; border-bottom: 1px solid #dfe6ec;
padding-bottom: 10px;
margin-bottom: 10px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px;
padding-bottom: 10px;
} }
} }
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<el-table :data="list" border fit highlight-current-row style="width: 100%"> <el-table :data="list" border fit highlight-current-row style="width: 100%;">
<el-table-column <el-table-column
v-loading="loading" v-loading="loading"
align="center" align="center"

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="tab-container"> <div class="tab-container">
<el-tag>mounted times {{ createdTimes }}</el-tag> <el-tag>mounted times {{ createdTimes }}</el-tag>
<el-alert :closable="false" style="width:200px;display:inline-block;vertical-align: middle;margin-left:30px;" title="Tab with keep-alive" type="success" /> <el-alert :closable="false" style="display: inline-block;margin-left: 30px;vertical-align: middle;width: 200px;" title="Tab with keep-alive" type="success" />
<el-tabs v-model="activeName" style="margin-top:15px;" type="border-card"> <el-tabs v-model="activeName" style="margin-top: 15px;" type="border-card">
<el-tab-pane v-for="item in tabMapOptions" :key="item.key" :label="item.label" :name="item.key"> <el-tab-pane v-for="item in tabMapOptions" :key="item.key" :label="item.label" :name="item.key">
<keep-alive> <keep-alive>
<tab-pane v-if="activeName==item.key" :type="item.key" @create="showCreatedTimes" /> <tab-pane v-if="activeName==item.key" :type="item.key" @create="showCreatedTimes" />

View File

@ -2,13 +2,13 @@
<div class="app-container"> <div class="app-container">
<div class="filter-container"> <div class="filter-container">
<el-input v-model="listQuery.title" placeholder="Title" style="width: 200px;" class="filter-item" @keyup.enter.native="handleFilter" /> <el-input v-model="listQuery.title" placeholder="Title" style="width: 200px;" class="filter-item" @keyup.enter.native="handleFilter" />
<el-select v-model="listQuery.importance" placeholder="Imp" clearable style="width: 90px" class="filter-item"> <el-select v-model="listQuery.importance" placeholder="Imp" clearable style="width: 90px;" class="filter-item">
<el-option v-for="item in importanceOptions" :key="item" :label="item" :value="item" /> <el-option v-for="item in importanceOptions" :key="item" :label="item" :value="item" />
</el-select> </el-select>
<el-select v-model="listQuery.type" placeholder="Type" clearable class="filter-item" style="width: 130px"> <el-select v-model="listQuery.type" placeholder="Type" clearable class="filter-item" style="width: 130px;">
<el-option v-for="item in calendarTypeOptions" :key="item.key" :label="item.display_name+'('+item.key+')'" :value="item.key" /> <el-option v-for="item in calendarTypeOptions" :key="item.key" :label="item.display_name+'('+item.key+')'" :value="item.key" />
</el-select> </el-select>
<el-select v-model="listQuery.sort" style="width: 140px" class="filter-item" @change="handleFilter"> <el-select v-model="listQuery.sort" style="width: 140px;" class="filter-item" @change="handleFilter">
<el-option v-for="item in sortOptions" :key="item.key" :label="item.label" :value="item.key" /> <el-option v-for="item in sortOptions" :key="item.key" :label="item.label" :value="item.key" />
</el-select> </el-select>
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter"> <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">
@ -20,7 +20,7 @@
<el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload"> <el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">
Export Export
</el-button> </el-button>
<el-checkbox v-model="showReviewer" class="filter-item" style="margin-left:15px;" @change="tableKey=tableKey+1"> <el-checkbox v-model="showReviewer" class="filter-item" style="margin-left: 15px;" @change="tableKey=tableKey+1">
reviewer reviewer
</el-checkbox> </el-checkbox>
</div> </div>
@ -58,7 +58,7 @@
</el-table-column> </el-table-column>
<el-table-column v-if="showReviewer" label="Reviewer" width="110px" align="center"> <el-table-column v-if="showReviewer" label="Reviewer" width="110px" align="center">
<template slot-scope="{row}"> <template slot-scope="{row}">
<span style="color:red;">{{ row.reviewer }}</span> <span style="color: red;">{{ row.reviewer }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Imp" width="80px"> <el-table-column label="Imp" width="80px">
@ -100,7 +100,7 @@
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible"> <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="70px" style="width: 400px; margin-left:50px;"> <el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="70px" style=" margin-left: 50px;width: 400px;">
<el-form-item label="Type" prop="type"> <el-form-item label="Type" prop="type">
<el-select v-model="temp.type" class="filter-item" placeholder="Please select"> <el-select v-model="temp.type" class="filter-item" placeholder="Please select">
<el-option v-for="item in calendarTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" /> <el-option v-for="item in calendarTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
@ -118,7 +118,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Imp"> <el-form-item label="Imp">
<el-rate v-model="temp.importance" :colors="['#99A9BF', '#F7BA2A', '#FF9900']" :max="3" style="margin-top:8px;" /> <el-rate v-model="temp.importance" :colors="['#99A9BF', '#F7BA2A', '#FF9900']" :max="3" style="margin-top: 8px;" />
</el-form-item> </el-form-item>
<el-form-item label="Remark"> <el-form-item label="Remark">
<el-input v-model="temp.remark" :autosize="{ minRows: 2, maxRows: 4}" type="textarea" placeholder="Please input" /> <el-input v-model="temp.remark" :autosize="{ minRows: 2, maxRows: 4}" type="textarea" placeholder="Please input" />
@ -135,7 +135,7 @@
</el-dialog> </el-dialog>
<el-dialog :visible.sync="dialogPvVisible" title="Reading statistics"> <el-dialog :visible.sync="dialogPvVisible" title="Reading statistics">
<el-table :data="pvData" border fit highlight-current-row style="width: 100%"> <el-table :data="pvData" border fit highlight-current-row style="width: 100%;">
<el-table-column prop="key" label="Channel" /> <el-table-column prop="key" label="Channel" />
<el-table-column prop="pv" label="Pv" /> <el-table-column prop="pv" label="Pv" />
</el-table> </el-table>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- Note that row-key is necessary to get a correct row order. --> <!-- Note that row-key is necessary to get a correct row order. -->
<el-table ref="dragTable" v-loading="listLoading" :data="list" row-key="id" border fit highlight-current-row style="width: 100%"> <el-table ref="dragTable" v-loading="listLoading" :data="list" row-key="id" border fit highlight-current-row style="width: 100%;">
<el-table-column align="center" label="ID" width="65"> <el-table-column align="center" label="ID" width="65">
<template slot-scope="{row}"> <template slot-scope="{row}">
<span>{{ row.id }}</span> <span>{{ row.id }}</span>
@ -131,23 +131,25 @@ export default {
</script> </script>
<style> <style>
.sortable-ghost{ .sortable-ghost {
opacity: .8; background: #42b983 !important;
color: #fff!important; color: #fff !important;
background: #42b983!important; opacity: 0.8;
} }
</style> </style>
<style scoped> <style scoped>
.icon-star{ .icon-star {
margin-right:2px; margin-right: 2px;
} }
.drag-handler{
width: 20px; .drag-handler {
height: 20px;
cursor: pointer; cursor: pointer;
height: 20px;
width: 20px;
} }
.show-d{
.show-d {
margin-top: 15px; margin-top: 15px;
} }
</style> </style>

View File

@ -14,7 +14,7 @@
</el-checkbox-group> </el-checkbox-group>
</div> </div>
<el-table :key="key" :data="tableData" border fit highlight-current-row style="width: 100%"> <el-table :key="key" :data="tableData" border fit highlight-current-row style="width: 100%;">
<el-table-column prop="name" label="fruitName" width="180" /> <el-table-column prop="name" label="fruitName" width="180" />
<el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -14,7 +14,7 @@
</el-checkbox-group> </el-checkbox-group>
</div> </div>
<el-table :data="tableData" border fit highlight-current-row style="width: 100%"> <el-table :data="tableData" border fit highlight-current-row style="width: 100%;">
<el-table-column prop="name" label="fruitName" width="180" /> <el-table-column prop="name" label="fruitName" width="180" />
<el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -1,11 +1,11 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div style="margin:0 0 5px 20px"> <div style="margin: 0 0 5px 20px;">
Fixed header, sorted by header order, Fixed header, sorted by header order,
</div> </div>
<fixed-thead /> <fixed-thead />
<div style="margin:30px 0 5px 20px"> <div style="margin: 30px 0 5px 20px;">
Not fixed header, sorted by click order Not fixed header, sorted by click order
</div> </div>
<unfixed-thead /> <unfixed-thead />

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%"> <el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%;">
<el-table-column align="center" label="ID" width="80"> <el-table-column align="center" label="ID" width="80">
<template slot-scope="{row}"> <template slot-scope="{row}">
<span>{{ row.id }}</span> <span>{{ row.id }}</span>
@ -141,6 +141,7 @@ export default {
.edit-input { .edit-input {
padding-right: 100px; padding-right: 100px;
} }
.cancel-btn { .cancel-btn {
position: absolute; position: absolute;
right: 15px; right: 15px;

View File

@ -9,7 +9,7 @@
<div class="box-item"> <div class="box-item">
<span class="field-label">Change Theme : </span> <span class="field-label">Change Theme : </span>
<el-switch v-model="theme" /> <el-switch v-model="theme" />
<aside style="margin-top:15px;"> <aside style="margin-top: 15px;">
Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details. Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.
</aside> </aside>
</div> </div>
@ -101,13 +101,14 @@ export default {
</script> </script>
<style scoped> <style scoped>
.field-label{ .field-label {
vertical-align: middle; vertical-align: middle;
} }
.box-card { .box-card {
width: 400px;
max-width: 100%;
margin: 20px auto; margin: 20px auto;
max-width: 100%;
width: 400px;
} }
.block { .block {

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-input v-model="filename" placeholder="Please enter the file name (default file)" style="width:300px;" prefix-icon="el-icon-document" /> <el-input v-model="filename" placeholder="Please enter the file name (default file)" style="width: 300px;" prefix-icon="el-icon-document" />
<el-button :loading="downloadLoading" style="margin-bottom:20px;" type="primary" icon="el-icon-document" @click="handleDownload"> <el-button :loading="downloadLoading" style="margin-bottom: 20px;" type="primary" icon="el-icon-document" @click="handleDownload">
Export Zip Export Zip
</el-button> </el-button>
<el-table v-loading="listLoading" :data="list" element-loading-text="拼命加载中" border fit highlight-current-row> <el-table v-loading="listLoading" :data="list" element-loading-text="拼命加载中" border fit highlight-current-row>