chore: update eslint && lint code
This commit is contained in:
parent
8d242a002f
commit
b8d47bd847
.eslintrc.jspackage.json
src
App.vue
components
BackToTop
Breadcrumb
Charts
DndList
DragSelect
Dropzone
GithubCorner
HeaderSearch
ImageCropper
JsonEditor
Kanban
LangSelect
MDinput
MarkdownEditor
Pagination
PanThumb
SizeSelect
SvgIcon
TextHoverEffect
ThemePicker
Tinymce
TreeTable
Upload
directive
views
charts
clipboard
components-demo
avatarUpload.vuebackToTop.vuecountTo.vuedndList.vuedragDialog.vuedragKanban.vuedragSelect.vuedropzone.vuejsonEditor.vuemarkdown.vuemixin.vuesplitpane.vuesticky.vuetinymce.vue
dashboard
admin
components
BarChart.vueBoxCard.vueLineChart.vuePanelGroup.vuePieChart.vueRaddarChart.vue
index.vueTodoList
TransactionTable.vueeditor
index.vuedocumentation
errorLog
errorPage
example
excel
i18n-demo
layout
Layout.vue
components
login
nested/menu1
pdf
permission
qiniu
|
@ -21,6 +21,8 @@ module.exports = {
|
||||||
"allowFirstLine": false
|
"allowFirstLine": false
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
|
"vue/singleline-html-element-content-newline": "off",
|
||||||
|
"vue/multiline-html-element-content-newline":"off",
|
||||||
"vue/name-property-casing": ["error", "PascalCase"],
|
"vue/name-property-casing": ["error", "PascalCase"],
|
||||||
'accessor-pairs': 2,
|
'accessor-pairs': 2,
|
||||||
'arrow-spacing': [2, {
|
'arrow-spacing': [2, {
|
||||||
|
|
|
@ -80,10 +80,10 @@
|
||||||
"copy-webpack-plugin": "4.5.2",
|
"copy-webpack-plugin": "4.5.2",
|
||||||
"cross-env": "5.2.0",
|
"cross-env": "5.2.0",
|
||||||
"css-loader": "1.0.0",
|
"css-loader": "1.0.0",
|
||||||
"eslint": "4.19.1",
|
"eslint": "5.15.2",
|
||||||
"eslint-friendly-formatter": "4.0.1",
|
"eslint-friendly-formatter": "4.0.1",
|
||||||
"eslint-loader": "2.0.0",
|
"eslint-loader": "2.1.2",
|
||||||
"eslint-plugin-vue": "4.7.1",
|
"eslint-plugin-vue": "5.2.2",
|
||||||
"file-loader": "1.1.11",
|
"file-loader": "1.1.11",
|
||||||
"friendly-errors-webpack-plugin": "1.7.0",
|
"friendly-errors-webpack-plugin": "1.7.0",
|
||||||
"hash-sum": "1.0.2",
|
"hash-sum": "1.0.2",
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<router-view/>
|
<router-view />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default{
|
export default {
|
||||||
name: 'App'
|
name: 'App'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<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;">
|
<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;">
|
||||||
<title>回到顶部</title>
|
<title>回到顶部</title>
|
||||||
<g>
|
<g>
|
||||||
<path d="M12.036 15.59c0 .55-.453.995-.997.995H5.032c-.55 0-.997-.445-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29c.39-.39 1.026-.385 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" fill-rule="evenodd"/>
|
<path d="M12.036 15.59c0 .55-.453.995-.997.995H5.032c-.55 0-.997-.445-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29c.39-.39 1.026-.385 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" fill-rule="evenodd" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,8 +2,9 @@
|
||||||
<el-breadcrumb class="app-breadcrumb" separator="/">
|
<el-breadcrumb class="app-breadcrumb" separator="/">
|
||||||
<transition-group name="breadcrumb">
|
<transition-group name="breadcrumb">
|
||||||
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
||||||
<span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{
|
<span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">
|
||||||
generateTitle(item.meta.title) }}</span>
|
{{ generateTitle(item.meta.title) }}
|
||||||
|
</span>
|
||||||
<a v-else @click.prevent="handleLink(item)">{{ generateTitle(item.meta.title) }}</a>
|
<a v-else @click.prevent="handleLink(item)">{{ generateTitle(item.meta.title) }}</a>
|
||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :id="id" :style="{height:height,width:width}"/>
|
<div :id="id" :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :id="id" :style="{height:height,width:width}"/>
|
<div :id="id" :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :id="id" :style="{height:height,width:width}"/>
|
<div :id="id" :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<div class="list-complete-item-handle">{{ element.id }}[{{ element.author }}] {{ element.title }}</div>
|
<div class="list-complete-item-handle">{{ element.id }}[{{ element.author }}] {{ element.title }}</div>
|
||||||
<div style="position:absolute;right:0px;">
|
<div style="position:absolute;right:0px;">
|
||||||
<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>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<el-select ref="dragSelect" v-model="selectVal" v-bind="$attrs" class="drag-select" multiple v-on="$listeners">
|
<el-select ref="dragSelect" v-model="selectVal" v-bind="$attrs" class="drag-select" multiple v-on="$listeners">
|
||||||
<slot/>
|
<slot />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :ref="id" :action="url" :id="id" class="dropzone">
|
<div :id="id" :ref="id" :action="url" class="dropzone">
|
||||||
<input type="file" name="file">
|
<input type="file" name="file">
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,17 +5,20 @@
|
||||||
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" />
|
||||||
<path
|
<path
|
||||||
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
||||||
fill="currentColor"
|
fill="currentColor"
|
||||||
style="transform-origin: 130px 106px;"
|
style="transform-origin: 130px 106px;"
|
||||||
class="octo-arm"/>
|
class="octo-arm"
|
||||||
|
/>
|
||||||
<path
|
<path
|
||||||
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
||||||
fill="currentColor"
|
fill="currentColor"
|
||||||
class="octo-body"/>
|
class="octo-body"
|
||||||
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
remote
|
remote
|
||||||
placeholder="Search"
|
placeholder="Search"
|
||||||
class="header-search-select"
|
class="header-search-select"
|
||||||
@change="change">
|
@change="change"
|
||||||
<el-option v-for="item in options" :key="item.path" :value="item" :label="item.title.join(' > ')"/>
|
>
|
||||||
|
<el-option v-for="item in options" :key="item.path" :value="item" :label="item.title.join(' > ')" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -2,22 +2,22 @@
|
||||||
<div v-show="value" class="vue-image-crop-upload">
|
<div v-show="value" class="vue-image-crop-upload">
|
||||||
<div class="vicp-wrap">
|
<div class="vicp-wrap">
|
||||||
<div class="vicp-close" @click="off">
|
<div class="vicp-close" @click="off">
|
||||||
<i class="vicp-icon4"/>
|
<i class="vicp-icon4" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-show="step == 1" class="vicp-step1">
|
<div v-show="step == 1" class="vicp-step1">
|
||||||
<div class="vicp-drop-area" @dragleave="preventDefault" @dragover="preventDefault" @dragenter="preventDefault" @click="handleClick" @drop="handleChange">
|
<div class="vicp-drop-area" @dragleave="preventDefault" @dragover="preventDefault" @dragenter="preventDefault" @click="handleClick" @drop="handleChange">
|
||||||
<i v-show="loading != 1" class="vicp-icon1">
|
<i v-show="loading != 1" class="vicp-icon1">
|
||||||
<i class="vicp-icon1-arrow"/>
|
<i class="vicp-icon1-arrow" />
|
||||||
<i class="vicp-icon1-body"/>
|
<i class="vicp-icon1-body" />
|
||||||
<i class="vicp-icon1-bottom"/>
|
<i class="vicp-icon1-bottom" />
|
||||||
</i>
|
</i>
|
||||||
<span v-show="loading !== 1" class="vicp-hint">{{ lang.hint }}</span>
|
<span v-show="loading !== 1" class="vicp-hint">{{ lang.hint }}</span>
|
||||||
<span v-show="!isSupported" class="vicp-no-supported-hint">{{ lang.noSupported }}</span>
|
<span v-show="!isSupported" class="vicp-no-supported-hint">{{ lang.noSupported }}</span>
|
||||||
<input v-show="false" v-if="step == 1" ref="fileinput" type="file" @change="handleChange">
|
<input v-show="false" v-if="step == 1" ref="fileinput" type="file" @change="handleChange">
|
||||||
</div>
|
</div>
|
||||||
<div v-show="hasError" class="vicp-error">
|
<div v-show="hasError" class="vicp-error">
|
||||||
<i class="vicp-icon2"/> {{ errorMsg }}
|
<i class="vicp-icon2" /> {{ errorMsg }}
|
||||||
</div>
|
</div>
|
||||||
<div class="vicp-operate">
|
<div class="vicp-operate">
|
||||||
<a @click="off" @mousedown="ripple">{{ lang.btn.off }}</a>
|
<a @click="off" @mousedown="ripple">{{ lang.btn.off }}</a>
|
||||||
|
@ -48,15 +48,16 @@
|
||||||
@mousedown="imgStartMove"
|
@mousedown="imgStartMove"
|
||||||
@mousemove="imgMove"
|
@mousemove="imgMove"
|
||||||
@mouseup="createImg"
|
@mouseup="createImg"
|
||||||
@mouseout="createImg">
|
@mouseout="createImg"
|
||||||
<div :style="sourceImgShadeStyle" class="vicp-img-shade vicp-img-shade-1"/>
|
>
|
||||||
<div :style="sourceImgShadeStyle" class="vicp-img-shade vicp-img-shade-2"/>
|
<div :style="sourceImgShadeStyle" class="vicp-img-shade vicp-img-shade-1" />
|
||||||
|
<div :style="sourceImgShadeStyle" class="vicp-img-shade vicp-img-shade-2" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="vicp-range">
|
<div class="vicp-range">
|
||||||
<input :value="scale.range" type="range" step="1" min="0" max="100" @input="zoomChange">
|
<input :value="scale.range" type="range" step="1" min="0" max="100" @input="zoomChange">
|
||||||
<i class="vicp-icon5" @mousedown="startZoomSub" @mouseout="endZoomSub" @mouseup="endZoomSub"/>
|
<i class="vicp-icon5" @mousedown="startZoomSub" @mouseout="endZoomSub" @mouseup="endZoomSub" />
|
||||||
<i class="vicp-icon6" @mousedown="startZoomAdd" @mouseout="endZoomAdd" @mouseup="endZoomAdd"/>
|
<i class="vicp-icon6" @mousedown="startZoomAdd" @mouseout="endZoomAdd" @mouseup="endZoomAdd" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!noRotate" class="vicp-rotate">
|
<div v-if="!noRotate" class="vicp-rotate">
|
||||||
|
@ -87,13 +88,13 @@
|
||||||
<div class="vicp-upload">
|
<div class="vicp-upload">
|
||||||
<span v-show="loading === 1" class="vicp-loading">{{ lang.loading }}</span>
|
<span v-show="loading === 1" class="vicp-loading">{{ lang.loading }}</span>
|
||||||
<div class="vicp-progress-wrap">
|
<div class="vicp-progress-wrap">
|
||||||
<span v-show="loading === 1" :style="progressStyle" class="vicp-progress"/>
|
<span v-show="loading === 1" :style="progressStyle" class="vicp-progress" />
|
||||||
</div>
|
</div>
|
||||||
<div v-show="hasError" class="vicp-error">
|
<div v-show="hasError" class="vicp-error">
|
||||||
<i class="vicp-icon2"/> {{ errorMsg }}
|
<i class="vicp-icon2" /> {{ errorMsg }}
|
||||||
</div>
|
</div>
|
||||||
<div v-show="loading === 2" class="vicp-success">
|
<div v-show="loading === 2" class="vicp-success">
|
||||||
<i class="vicp-icon3"/> {{ lang.success }}
|
<i class="vicp-icon3" /> {{ lang.success }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="vicp-operate">
|
<div class="vicp-operate">
|
||||||
|
@ -101,7 +102,7 @@
|
||||||
<a @click="off" @mousedown="ripple">{{ lang.btn.close }}</a>
|
<a @click="off" @mousedown="ripple">{{ lang.btn.close }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<canvas v-show="false" ref="canvas" :width="width" :height="height"/>
|
<canvas v-show="false" ref="canvas" :width="width" :height="height" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="json-editor">
|
<div class="json-editor">
|
||||||
<textarea ref="textarea"/>
|
<textarea ref="textarea" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
<draggable
|
<draggable
|
||||||
:list="list"
|
:list="list"
|
||||||
:options="options"
|
:options="options"
|
||||||
class="board-column-content">
|
class="board-column-content"
|
||||||
|
>
|
||||||
<div v-for="element in list" :key="element.id" class="board-item">
|
<div v-for="element in list" :key="element.id" class="board-item">
|
||||||
{{ element.name }} {{ element.id }}
|
{{ element.name }} {{ element.id }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,9 +4,15 @@
|
||||||
<svg-icon class-name="international-icon" icon-class="language" />
|
<svg-icon class-name="international-icon" icon-class="language" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item :disabled="language==='zh'" command="zh">中文</el-dropdown-item>
|
<el-dropdown-item :disabled="language==='zh'" command="zh">
|
||||||
<el-dropdown-item :disabled="language==='en'" command="en">English</el-dropdown-item>
|
中文
|
||||||
<el-dropdown-item :disabled="language==='es'" command="es">Español</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item :disabled="language==='en'" command="en">
|
||||||
|
English
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item :disabled="language==='es'" command="es">
|
||||||
|
Español
|
||||||
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="computedClasses" class="material-input__component">
|
<div :class="computedClasses" class="material-input__component">
|
||||||
<div :class="{iconClass:icon}">
|
<div :class="{iconClass:icon}">
|
||||||
<i v-if="icon" :class="['el-icon-' + icon]" class="el-input__icon material-input__icon"/>
|
<i v-if="icon" :class="['el-icon-' + icon]" class="el-input__icon material-input__icon" />
|
||||||
<input
|
<input
|
||||||
v-if="type === 'email'"
|
v-if="type === 'email'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:autoComplete="autoComplete"
|
:autoComplete="autoComplete"
|
||||||
|
@ -15,12 +15,13 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
v-if="type === 'url'"
|
v-if="type === 'url'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:autoComplete="autoComplete"
|
:autoComplete="autoComplete"
|
||||||
|
@ -29,12 +30,13 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
v-if="type === 'number'"
|
v-if="type === 'number'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:step="step"
|
:step="step"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
|
@ -48,12 +50,13 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
v-if="type === 'password'"
|
v-if="type === 'password'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:autoComplete="autoComplete"
|
:autoComplete="autoComplete"
|
||||||
|
@ -64,12 +67,13 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
v-if="type === 'tel'"
|
v-if="type === 'tel'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:autoComplete="autoComplete"
|
:autoComplete="autoComplete"
|
||||||
|
@ -78,12 +82,13 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
|
>
|
||||||
<input
|
<input
|
||||||
v-if="type === 'text'"
|
v-if="type === 'text'"
|
||||||
|
v-model="currentValue"
|
||||||
:name="name"
|
:name="name"
|
||||||
:placeholder="fillPlaceHolder"
|
:placeholder="fillPlaceHolder"
|
||||||
v-model="currentValue"
|
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:autoComplete="autoComplete"
|
:autoComplete="autoComplete"
|
||||||
|
@ -94,10 +99,11 @@
|
||||||
class="material-input"
|
class="material-input"
|
||||||
@focus="handleMdFocus"
|
@focus="handleMdFocus"
|
||||||
@blur="handleMdBlur"
|
@blur="handleMdBlur"
|
||||||
@input="handleModelInput">
|
@input="handleModelInput"
|
||||||
<span class="material-input-bar"/>
|
>
|
||||||
|
<span class="material-input-bar" />
|
||||||
<label class="material-label">
|
<label class="material-label">
|
||||||
<slot/>
|
<slot />
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :id="id"/>
|
<div :id="id" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
:total="total"
|
:total="total"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
@size-change="handleSizeChange"
|
@size-change="handleSizeChange"
|
||||||
@current-change="handleCurrentChange"/>
|
@current-change="handleCurrentChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item">
|
<div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item">
|
||||||
<div class="pan-info">
|
<div class="pan-info">
|
||||||
<div class="pan-info-roles-container">
|
<div class="pan-info-roles-container">
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<img :src="image" class="pan-thumb">
|
<img :src="image" class="pan-thumb">
|
||||||
|
|
|
@ -4,8 +4,9 @@
|
||||||
<svg-icon class-name="size-icon" icon-class="size" />
|
<svg-icon class-name="size-icon" icon-class="size" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value">{{
|
<el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value">
|
||||||
item.label }}</el-dropdown-item>
|
{{ item.label }}
|
||||||
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<svg :class="svgClass" aria-hidden="true" v-on="$listeners">
|
<svg :class="svgClass" aria-hidden="true" v-on="$listeners">
|
||||||
<use :xlink:href="iconName"/>
|
<use :xlink:href="iconName" />
|
||||||
</svg>
|
</svg>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<a :class="className" class="link--mallki" href="#">
|
<a :class="className" class="link--mallki" href="#">
|
||||||
{{ text }}
|
{{ text }}
|
||||||
<span :data-letters="text"/>
|
<span :data-letters="text" />
|
||||||
<span :data-letters="text"/>
|
<span :data-letters="text" />
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
<el-color-picker
|
<el-color-picker
|
||||||
v-model="theme"
|
v-model="theme"
|
||||||
class="theme-picker"
|
class="theme-picker"
|
||||||
popper-class="theme-picker-dropdown"/>
|
popper-class="theme-picker-dropdown"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="upload-container">
|
<div class="upload-container">
|
||||||
<el-button :style="{background:color,borderColor:color}" icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true">上传图片
|
<el-button :style="{background:color,borderColor:color}" icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true">
|
||||||
|
上传图片
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dialog :visible.sync="dialogVisible">
|
<el-dialog :visible.sync="dialogVisible">
|
||||||
<el-upload
|
<el-upload
|
||||||
|
@ -12,7 +13,8 @@
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
class="editor-slide-upload"
|
class="editor-slide-upload"
|
||||||
action="https://httpbin.org/post"
|
action="https://httpbin.org/post"
|
||||||
list-type="picture-card">
|
list-type="picture-card"
|
||||||
|
>
|
||||||
<el-button size="small" type="primary">点击上传</el-button>
|
<el-button size="small" type="primary">点击上传</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="{fullscreen:fullscreen}" class="tinymce-container editor-container">
|
<div :class="{fullscreen:fullscreen}" class="tinymce-container editor-container">
|
||||||
<textarea :id="tinymceId" class="tinymce-textarea"/>
|
<textarea :id="tinymceId" class="tinymce-textarea" />
|
||||||
<div class="editor-custom-btn-container">
|
<div class="editor-custom-btn-container">
|
||||||
<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK"/>
|
<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<el-table :data="tableData" :row-style="showRow" v-bind="$attrs" v-on="$listeners" >
|
<el-table :data="tableData" :row-style="showRow" v-bind="$attrs" v-on="$listeners">
|
||||||
<slot name="selection" />
|
<slot name="selection" />
|
||||||
<slot name="pre-column" />
|
<slot name="pre-column" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="item in columns"
|
v-for="item in columns"
|
||||||
:label="item.label"
|
|
||||||
:key="item.key"
|
:key="item.key"
|
||||||
|
:label="item.label"
|
||||||
:width="item.width"
|
:width="item.width"
|
||||||
:align="item.align||'center'"
|
:align="item.align||'center'"
|
||||||
:header-align="item.headerAlign">
|
:header-align="item.headerAlign"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<slot :scope="scope" :name="item.key">
|
<slot :scope="scope" :name="item.key">
|
||||||
<template v-if="item.expand">
|
<template v-if="item.expand">
|
||||||
<span :style="{'padding-left':+scope.row._level*indent + 'px'} "/>
|
<span :style="{'padding-left':+scope.row._level*indent + 'px'} " />
|
||||||
<span v-show="showSperadIcon(scope.row)" class="tree-ctrl" @click="toggleExpanded(scope.$index)">
|
<span v-show="showSperadIcon(scope.row)" class="tree-ctrl" @click="toggleExpanded(scope.$index)">
|
||||||
<i v-if="!scope.row._expand" class="el-icon-plus" />
|
<i v-if="!scope.row._expand" class="el-icon-plus" />
|
||||||
<i v-else class="el-icon-minus" />
|
<i v-else class="el-icon-minus" />
|
||||||
|
@ -21,15 +22,17 @@
|
||||||
<template v-if="item.checkbox">
|
<template v-if="item.checkbox">
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
v-if="scope.row[defaultChildren]&&scope.row[defaultChildren].length>0"
|
v-if="scope.row[defaultChildren]&&scope.row[defaultChildren].length>0"
|
||||||
|
v-model="scope.row._select"
|
||||||
:style="{'padding-left':+scope.row._level*indent + 'px'} "
|
:style="{'padding-left':+scope.row._level*indent + 'px'} "
|
||||||
:indeterminate="scope.row._select"
|
:indeterminate="scope.row._select"
|
||||||
v-model="scope.row._select"
|
@change="handleCheckAllChange(scope.row)"
|
||||||
@change="handleCheckAllChange(scope.row)" />
|
/>
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
v-else
|
v-else
|
||||||
:style="{'padding-left':+scope.row._level*indent + 'px'} "
|
|
||||||
v-model="scope.row._select"
|
v-model="scope.row._select"
|
||||||
@change="handleCheckAllChange(scope.row)" />
|
:style="{'padding-left':+scope.row._level*indent + 'px'} "
|
||||||
|
@change="handleCheckAllChange(scope.row)"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
{{ scope.row[item.key] }}
|
{{ scope.row[item.key] }}
|
||||||
</slot>
|
</slot>
|
||||||
|
|
|
@ -0,0 +1,220 @@
|
||||||
|
|
||||||
|
- [Enlgish](#Brief)
|
||||||
|
|
||||||
|
# 中文
|
||||||
|
|
||||||
|
## 写在前面
|
||||||
|
|
||||||
|
此组件仅提供一个创建 `TreeTable` 的解决思路。它基于`element-ui`的 table 组件实现,通过`el-table`的`row-style`方法,在里面判断元素是否需要隐藏或者显示,从而实现`TreeTable`的展开与收起。
|
||||||
|
|
||||||
|
并且本组件充分利用 `vue` 插槽的特性来方便用户自定义。
|
||||||
|
|
||||||
|
`evel.js` 里面,`addAttrs` 方法会给数据添加几个属性,`treeTotable` 会对数组扁平化。这些操作都不会破坏源数据,只是会新增属性。
|
||||||
|
|
||||||
|
## Props 说明
|
||||||
|
|
||||||
|
| Attribute | Description | Type | Default |
|
||||||
|
| :--------------: | :--------------------------------- | :-----: | :------: |
|
||||||
|
| data | 原始展示数据 | Array | [] |
|
||||||
|
| columns | 列属性 | Array | [] |
|
||||||
|
| defaultExpandAll | 默认是否全部展开 | Boolean | false |
|
||||||
|
| defaultChildren | 指定子树为节点对象的某个属性值 | String | children | |
|
||||||
|
| indent | 相邻级节点间的水平缩进,单位为像素 | Number | 50 |
|
||||||
|
|
||||||
|
> 任何 `el-table` 的属性都支持,例如`border`、`fit`、`size`或者`@select`、`@cell-click`等方法。详情属性见`el-table`文档。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 代码示例
|
||||||
|
|
||||||
|
```html
|
||||||
|
<tree-table :data="data" :columns="columns" border>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### data(**必填**)
|
||||||
|
|
||||||
|
```js
|
||||||
|
const data = [
|
||||||
|
{
|
||||||
|
name:'1'
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
name: '1-1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '1-2'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `2`
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### columns(**必填**)
|
||||||
|
|
||||||
|
- label: 显示在表头的文字
|
||||||
|
- key: 对应 data 的 key。treeTable 将显示相应的 value
|
||||||
|
- expand: `true` or `false`。若为 true,则在该列显示展开收起图标
|
||||||
|
- checkbox: `true` or `false`。若为 true,则在该列显示`checkbox`
|
||||||
|
- width: 每列的宽度,为一个数字(可选)。例如`200`
|
||||||
|
- align: 对齐方式 `left/center/right`
|
||||||
|
- header-align: 表头对齐方式 `left/center/right`
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
label: 'Checkbox',
|
||||||
|
checkbox: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
key: 'id',
|
||||||
|
expand: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Event',
|
||||||
|
key: 'event',
|
||||||
|
width: 200,
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Scope',
|
||||||
|
key: 'scope'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
> 树表组件将会根据 columns 的 key 属性生成具名插槽,如果你需要对列数据进行自定义,通过插槽即可实现
|
||||||
|
|
||||||
|
```html
|
||||||
|
<template slot="your key" slot-scope="{scope}">
|
||||||
|
<el-tag>level: {{ scope.row._level }}</el-tag>
|
||||||
|
<el-tag>expand: {{ scope.row._expand }}</el-tag>
|
||||||
|
<el-tag>select: {{ scope.row._select }}</el-tag>
|
||||||
|
</template>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Events
|
||||||
|
|
||||||
|
目前提供了几个方法,不过只是`beta`版本,之后很可能会修改。
|
||||||
|
|
||||||
|
```js
|
||||||
|
this.$refs.TreeTable.addChild(row, data) //添加子元素
|
||||||
|
this.$refs.TreeTable.addBrother(row, data) //添加兄弟元素
|
||||||
|
this.$refs.TreeTable.delete(row) //删除该元素
|
||||||
|
```
|
||||||
|
|
||||||
|
## 其他
|
||||||
|
|
||||||
|
如果有其他的需求,请参考[el-table](http://element-cn.eleme.io/#/en-US/component/table)的 api 自行修改 index.vue
|
||||||
|
|
||||||
|
# English
|
||||||
|
|
||||||
|
## Brief
|
||||||
|
|
||||||
|
This component only provides a solution for creating `TreeTable`. It is based on the `element-ui` table component. It uses the `row-style` method of `el-table` to determine whether the element needs to be hidden or displayed.
|
||||||
|
|
||||||
|
And this component makes full use of the features of the `vue` slot to make it user-friendly.
|
||||||
|
|
||||||
|
In `evel.js`, the `addAttrs` method adds several properties to the data, and `treeTotable` flattens the array. None of these operations will destroy the source data, just add properties.
|
||||||
|
|
||||||
|
## Props
|
||||||
|
|
||||||
|
| Attribute | Description | Type | Default |
|
||||||
|
| :--------------: | :----------------------------------------------------------- | :-----: | :------: |
|
||||||
|
| data | original display data | Array | [] |
|
||||||
|
| columns | column attribute | Array | [] |
|
||||||
|
| defaultExpandAll | whether to expand all nodes by default | Boolean | false |
|
||||||
|
| defaultChildren | specify which node object is used as the node's subtree | String | children | |
|
||||||
|
| indent | horizontal indentation of nodes in adjacent levels in pixels | Number | 50 |
|
||||||
|
|
||||||
|
> Any of the `el-table` properties are supported, such as `border`, `fit`, `size` or `@select`, `@cell-click`. See the ʻel-table` documentation for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```html
|
||||||
|
<tree-table :data="data" :columns="columns" border>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### data(**Required**)
|
||||||
|
|
||||||
|
```js
|
||||||
|
const data = [
|
||||||
|
{
|
||||||
|
name:'1'
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
name: '1-1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '1-2'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: `2`
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### columns(**Required**)
|
||||||
|
|
||||||
|
- label: text displayed in the header
|
||||||
|
- key: data.key will show in column
|
||||||
|
- expand: `true` or `false`
|
||||||
|
- checkbox: `true` or `false`
|
||||||
|
- width: column width 。such as `200`
|
||||||
|
- align: alignment `left/center/right`
|
||||||
|
- header-align: alignment of the table header `left/center/right`
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
label: 'Checkbox',
|
||||||
|
checkbox: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
key: 'id',
|
||||||
|
expand: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Event',
|
||||||
|
key: 'event',
|
||||||
|
width: 200,
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Scope',
|
||||||
|
key: 'scope'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
> The tree table component will generate a named slot based on the key property of columns. If you need to customize the column data, you can do it through the slot.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<template slot="your key" slot-scope="{scope}">
|
||||||
|
<el-tag>level: {{ scope.row._level }}</el-tag>
|
||||||
|
<el-tag>expand: {{ scope.row._expand }}</el-tag>
|
||||||
|
<el-tag>select: {{ scope.row._select }}</el-tag>
|
||||||
|
</template>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Events
|
||||||
|
|
||||||
|
Several methods are currently available, but only the `beta` version, which is likely to be modified later.
|
||||||
|
|
||||||
|
```js
|
||||||
|
this.$refs.TreeTable.addChild(row, data) //Add child elements
|
||||||
|
this.$refs.TreeTable.addBrother(row, data) //Add a sibling element
|
||||||
|
this.$refs.TreeTable.delete(row) //Delete the element
|
||||||
|
```
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
If you have other requirements, please refer to the [el-table](http://element-cn.eleme.io/#/en-US/component/table) api to modify the index.vue
|
|
@ -7,15 +7,16 @@
|
||||||
:on-success="handleImageSuccess"
|
:on-success="handleImageSuccess"
|
||||||
class="image-uploader"
|
class="image-uploader"
|
||||||
drag
|
drag
|
||||||
action="https://httpbin.org/post">
|
action="https://httpbin.org/post"
|
||||||
<i class="el-icon-upload"/>
|
>
|
||||||
|
<i class="el-icon-upload" />
|
||||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div class="image-preview">
|
<div class="image-preview">
|
||||||
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
||||||
<img :src="imageUrl+'?imageView2/1/w/200/h/200'">
|
<img :src="imageUrl+'?imageView2/1/w/200/h/200'">
|
||||||
<div class="image-preview-action">
|
<div class="image-preview-action">
|
||||||
<i class="el-icon-delete" @click="rmImage"/>
|
<i class="el-icon-delete" @click="rmImage" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,15 +7,16 @@
|
||||||
:on-success="handleImageSuccess"
|
:on-success="handleImageSuccess"
|
||||||
class="image-uploader"
|
class="image-uploader"
|
||||||
drag
|
drag
|
||||||
action="https://httpbin.org/post">
|
action="https://httpbin.org/post"
|
||||||
<i class="el-icon-upload"/>
|
>
|
||||||
|
<i class="el-icon-upload" />
|
||||||
<div class="el-upload__text">Drag或<em>点击上传</em></div>
|
<div class="el-upload__text">Drag或<em>点击上传</em></div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div v-show="imageUrl.length>0" class="image-preview">
|
<div v-show="imageUrl.length>0" class="image-preview">
|
||||||
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
||||||
<img :src="imageUrl">
|
<img :src="imageUrl">
|
||||||
<div class="image-preview-action">
|
<div class="image-preview-action">
|
||||||
<i class="el-icon-delete" @click="rmImage"/>
|
<i class="el-icon-delete" @click="rmImage" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,15 +7,16 @@
|
||||||
:on-success="handleImageSuccess"
|
:on-success="handleImageSuccess"
|
||||||
class="image-uploader"
|
class="image-uploader"
|
||||||
drag
|
drag
|
||||||
action="https://httpbin.org/post">
|
action="https://httpbin.org/post"
|
||||||
<i class="el-icon-upload"/>
|
>
|
||||||
|
<i class="el-icon-upload" />
|
||||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div class="image-preview image-app-preview">
|
<div class="image-preview image-app-preview">
|
||||||
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
||||||
<img :src="imageUrl">
|
<img :src="imageUrl">
|
||||||
<div class="image-preview-action">
|
<div class="image-preview-action">
|
||||||
<i class="el-icon-delete" @click="rmImage"/>
|
<i class="el-icon-delete" @click="rmImage" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -23,7 +24,7 @@
|
||||||
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
<div v-show="imageUrl.length>1" class="image-preview-wrapper">
|
||||||
<img :src="imageUrl">
|
<img :src="imageUrl">
|
||||||
<div class="image-preview-action">
|
<div class="image-preview-action">
|
||||||
<i class="el-icon-delete" @click="rmImage"/>
|
<i class="el-icon-delete" @click="rmImage" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
export default{
|
export default {
|
||||||
bind(el, binding, vnode) {
|
bind(el, binding, vnode) {
|
||||||
const dialogHeaderEl = el.querySelector('.el-dialog__header')
|
const dialogHeaderEl = el.querySelector('.el-dialog__header')
|
||||||
const dragDom = el.querySelector('.el-dialog')
|
const dragDom = el.querySelector('.el-dialog')
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
export default{
|
export default {
|
||||||
inserted(el, binding, vnode) {
|
inserted(el, binding, vnode) {
|
||||||
const { value } = binding
|
const { value } = binding
|
||||||
const roles = store.getters && store.getters.roles
|
const roles = store.getters && store.getters.roles
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<chart height="100%" width="100%"/>
|
<chart height="100%" width="100%" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<chart height="100%" width="100%"/>
|
<chart height="100%" width="100%" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<chart height="100%" width="100%"/>
|
<chart height="100%" width="100%" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<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="width:400px;max-width:100%;" />
|
||||||
<el-button type="primary" icon="document" @click="handleCopy(inputData,$event)">copy</el-button>
|
<el-button type="primary" icon="document" @click="handleCopy(inputData,$event)">copy</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="width:400px;max-width:100%;" />
|
||||||
<el-button v-clipboard:copy="inputData" v-clipboard:success="clipboardSuccess" type="primary" icon="document">copy</el-button>
|
<el-button v-clipboard:copy="inputData" v-clipboard:success="clipboardSuccess" type="primary" icon="document">copy</el-button>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
|
@ -5,20 +5,22 @@
|
||||||
{{ $t('components.imageUploadTips') }}
|
{{ $t('components.imageUploadTips') }}
|
||||||
</code>
|
</code>
|
||||||
|
|
||||||
<pan-thumb :image="image"/>
|
<pan-thumb :image="image" />
|
||||||
|
|
||||||
<el-button type="primary" icon="upload" style="position: absolute;bottom: 15px;margin-left: 40px;" @click="imagecropperShow=true">Change Avatar
|
<el-button type="primary" icon="upload" style="position: absolute;bottom: 15px;margin-left: 40px;" @click="imagecropperShow=true">
|
||||||
|
Change Avatar
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<image-cropper
|
<image-cropper
|
||||||
v-show="imagecropperShow"
|
v-show="imagecropperShow"
|
||||||
|
:key="imagecropperKey"
|
||||||
:width="300"
|
:width="300"
|
||||||
:height="300"
|
:height="300"
|
||||||
:key="imagecropperKey"
|
|
||||||
url="https://httpbin.org/post"
|
url="https://httpbin.org/post"
|
||||||
lang-type="en"
|
lang-type="en"
|
||||||
@close="close"
|
@close="close"
|
||||||
@crop-upload-success="cropSuccess"/>
|
@crop-upload-success="cropSuccess"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@
|
||||||
<!--可自定义按钮的样式、show/hide临界点、返回的位置 -->
|
<!--可自定义按钮的样式、show/hide临界点、返回的位置 -->
|
||||||
<!--如需文字提示,可在外部添加element的<el-tooltip></el-tooltip>元素 -->
|
<!--如需文字提示,可在外部添加element的<el-tooltip></el-tooltip>元素 -->
|
||||||
<el-tooltip placement="top" content="tooltip">
|
<el-tooltip placement="top" content="tooltip">
|
||||||
<back-to-top :custom-style="myBackToTopStyle" :visibility-height="300" :back-position="50" transition-name="fade"/>
|
<back-to-top :custom-style="myBackToTopStyle" :visibility-height="300" :back-position="50" transition-name="fade" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -13,36 +13,39 @@
|
||||||
:prefix="_prefix"
|
:prefix="_prefix"
|
||||||
:suffix="_suffix"
|
:suffix="_suffix"
|
||||||
: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>
|
||||||
<label class="label" for="endValInput">endVal:
|
<label class="label" for="endValInput">endVal:
|
||||||
<input v-model.number="setEndVal" type="number" name="endVaInput" >
|
<input v-model.number="setEndVal" type="number" name="endVaInput">
|
||||||
</label>
|
</label>
|
||||||
<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>
|
<div class="startBtn example-btn" @click="start">开始</div>
|
||||||
<div class="pause-resume-btn example-btn" @click="pauseResume">暂停/恢复</div>
|
<div class="pause-resume-btn example-btn" @click="pauseResume">暂停/恢复</div>
|
||||||
<br>
|
<br>
|
||||||
<label class="label" for="decimalsInput">decimals:
|
<label class="label" for="decimalsInput">decimals:
|
||||||
<input v-model.number="setDecimals" type="number" name="decimalsInput" >
|
<input v-model.number="setDecimals" type="number" name="decimalsInput">
|
||||||
</label>
|
</label>
|
||||||
<label class="label" for="separatorInput">separator:
|
<label class="label" for="separatorInput">separator:
|
||||||
<input v-model="setSeparator" name="separatorInput" >
|
<input v-model="setSeparator" name="separatorInput">
|
||||||
</label>
|
</label>
|
||||||
<label class="label" for="prefixInput">prefix:
|
<label class="label" for="prefixInput">prefix:
|
||||||
<input v-model="setPrefix" name="prefixInput" >
|
<input v-model="setPrefix" name="prefixInput">
|
||||||
</label>
|
</label>
|
||||||
<label class="label" for="suffixInput">suffix:
|
<label class="label" for="suffixInput">suffix:
|
||||||
<input v-model="setSuffix" name="suffixInput" >
|
<input v-model="setSuffix" name="suffixInput">
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<code><count-to :start-val='{{ _startVal }}' :end-val='{{ _endVal }}' :duration='{{ _duration }}'
|
<code>
|
||||||
:decimals='{{ _decimals }}' :separator='{{ _separator }}' :prefix='{{ _prefix }}' :suffix='{{ _suffix }}'
|
<count-to :start-val='{{ _startVal }}' :end-val='{{ _endVal }}' :duration='{{ _duration }}'
|
||||||
:autoplay=false></code>
|
:decimals='{{ _decimals }}' :separator='{{ _separator }}' :prefix='{{ _prefix }}' :suffix='{{ _suffix }}'
|
||||||
|
:autoplay=false>
|
||||||
|
</code>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<a href="https://github.com/SortableJS/Vue.Draggable" target="_blank">Vue.Draggable</a>
|
<a href="https://github.com/SortableJS/Vue.Draggable" target="_blank">Vue.Draggable</a>
|
||||||
</code>
|
</code>
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<dnd-list :list1="list1" :list2="list2" list1-title="List" list2-title="Article pool"/>
|
<dnd-list :list1="list1" :list2="list2" list1-title="List" list2-title="Article pool" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
<el-button type="primary" @click="dialogTableVisible = true">open a Drag Dialog</el-button>
|
<el-button type="primary" @click="dialogTableVisible = true">open a Drag Dialog</el-button>
|
||||||
<el-dialog v-el-drag-dialog :visible.sync="dialogTableVisible" title="Shipping address" @dragDialog="handleDrag">
|
<el-dialog v-el-drag-dialog :visible.sync="dialogTableVisible" title="Shipping address" @dragDialog="handleDrag">
|
||||||
<el-select ref="select" v-model="value" placeholder="请选择">
|
<el-select ref="select" v-model="value" 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-select>
|
</el-select>
|
||||||
<el-table :data="gridData">
|
<el-table :data="gridData">
|
||||||
<el-table-column property="date" label="Date" width="150"/>
|
<el-table-column property="date" label="Date" width="150" />
|
||||||
<el-table-column property="name" label="Name" width="200"/>
|
<el-table-column property="name" label="Name" width="200" />
|
||||||
<el-table-column property="address" label="Address"/>
|
<el-table-column property="address" label="Address" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="components-container board">
|
<div class="components-container board">
|
||||||
<Kanban :key="1" :list="list1" :options="options" class="kanban todo" header-text="Todo"/>
|
<Kanban :key="1" :list="list1" :options="options" class="kanban todo" header-text="Todo" />
|
||||||
<Kanban :key="2" :list="list2" :options="options" class="kanban working" header-text="Working"/>
|
<Kanban :key="2" :list="list2" :options="options" class="kanban working" header-text="Working" />
|
||||||
<Kanban :key="3" :list="list3" :options="options" class="kanban done" header-text="Done"/>
|
<Kanban :key="3" :list="list3" :options="options" class="kanban done" header-text="Done" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<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" :label="item.label" :value="item.value" :key="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;">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{{ $t('components.dropzoneTips') }}
|
{{ $t('components.dropzoneTips') }}
|
||||||
</code>
|
</code>
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<dropzone id="myVueDropzone" url="https://httpbin.org/post" @dropzone-removedFile="dropzoneR" @dropzone-success="dropzoneS"/>
|
<dropzone id="myVueDropzone" url="https://httpbin.org/post" @dropzone-removedFile="dropzoneR" @dropzone-success="dropzoneS" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="components-container">
|
<div class="components-container">
|
||||||
<code>JsonEditor is base on <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirrorr</a> , lint base on json-lint </code>
|
<code>JsonEditor is base on <a href="https://github.com/codemirror/CodeMirror" target="_blank">CodeMirrorr</a> , lint base on json-lint </code>
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<json-editor ref="jsonEditor" v-model="value"/>
|
<json-editor ref="jsonEditor" v-model="value" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
|
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<el-tag class="tag-title">Basic:</el-tag>
|
<el-tag class="tag-title">Basic:</el-tag>
|
||||||
<markdown-editor v-model="content" height="300px"/>
|
<markdown-editor v-model="content" height="300px" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<el-tag class="tag-title">Markdown Mode:</el-tag>
|
<el-tag class="tag-title">Markdown Mode:</el-tag>
|
||||||
<markdown-editor ref="markdownEditor" v-model="content" :options="{hideModeSwitch:true,previewStyle:'tab'}" height="200px"/>
|
<markdown-editor ref="markdownEditor" v-model="content" :options="{hideModeSwitch:true,previewStyle:'tab'}" height="200px" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
|
@ -28,12 +28,13 @@
|
||||||
|
|
||||||
<div class="editor-container">
|
<div class="editor-container">
|
||||||
<el-tag class="tag-title">I18n:</el-tag>
|
<el-tag class="tag-title">I18n:</el-tag>
|
||||||
<el-alert :closable="false" title="You can change the language of the admin system to see the effect" type="success"/>
|
<el-alert :closable="false" title="You can change the language of the admin system to see the effect" type="success" />
|
||||||
<markdown-editor v-model="content" :language="language" height="300px"/>
|
<markdown-editor v-model="content" :language="language" height="300px" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-button style="margin-top:80px;" type="primary" icon="el-icon-document" @click="getHtml">Get HTML</el-button>
|
<el-button style="margin-top:80px;" type="primary" icon="el-icon-document" @click="getHtml">Get HTML</el-button>
|
||||||
<div v-html="html"/>
|
<!-- eslint-disable-next-line -->
|
||||||
|
<div v-html="html" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
<span>hover text</span>
|
<span>hover text</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="component-item">
|
<div class="component-item">
|
||||||
<mallki class-name="mallki-text" text="vue-element-admin"/>
|
<mallki class-name="mallki-text" text="vue-element-admin" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -87,12 +87,11 @@
|
||||||
<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>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -7,15 +7,15 @@
|
||||||
</code>
|
</code>
|
||||||
<split-pane split="vertical" @resize="resize">
|
<split-pane split="vertical" @resize="resize">
|
||||||
<template slot="paneL">
|
<template slot="paneL">
|
||||||
<div class="left-container"/>
|
<div class="left-container" />
|
||||||
</template>
|
</template>
|
||||||
<template slot="paneR">
|
<template slot="paneR">
|
||||||
<split-pane split="horizontal">
|
<split-pane split="horizontal">
|
||||||
<template slot="paneL">
|
<template slot="paneL">
|
||||||
<div class="top-container"/>
|
<div class="top-container" />
|
||||||
</template>
|
</template>
|
||||||
<template slot="paneR">
|
<template slot="paneR">
|
||||||
<div class="bottom-container"/>
|
<div class="bottom-container" />
|
||||||
</template>
|
</template>
|
||||||
</split-pane>
|
</split-pane>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
<sticky class-name="sub-navbar">
|
<sticky class-name="sub-navbar">
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<el-button plain>
|
<el-button plain>
|
||||||
Platform<i class="el-icon-caret-bottom el-icon--right"/>
|
Platform<i class="el-icon-caret-bottom el-icon--right" />
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown-menu slot="dropdown" class="no-border">
|
<el-dropdown-menu slot="dropdown" class="no-border">
|
||||||
<el-checkbox-group v-model="platforms" style="padding: 5px 15px;">
|
<el-checkbox-group v-model="platforms" style="padding: 5px 15px;">
|
||||||
<el-checkbox v-for="item in platformsOptions" :label="item.key" :key="item.key">
|
<el-checkbox v-for="item in platformsOptions" :key="item.key" :label="item.key">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<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">
|
||||||
|
@ -26,10 +26,11 @@
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
|
|
||||||
<div class="time-container">
|
<div class="time-container">
|
||||||
<el-date-picker v-model="time" :picker-options="pickerOptions" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Release time"/>
|
<el-date-picker v-model="time" :picker-options="pickerOptions" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Release time" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-button style="margin-left: 10px;" type="success">publish
|
<el-button style="margin-left: 10px;" type="success">
|
||||||
|
publish
|
||||||
</el-button>
|
</el-button>
|
||||||
</sticky>
|
</sticky>
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,10 @@
|
||||||
<a target="_blank" class="link-type" href="https://panjiachen.github.io/vue-element-admin-site/component/rich-editor.html"> {{ $t('components.documentation') }}</a>
|
<a target="_blank" class="link-type" href="https://panjiachen.github.io/vue-element-admin-site/component/rich-editor.html"> {{ $t('components.documentation') }}</a>
|
||||||
</code>
|
</code>
|
||||||
<div>
|
<div>
|
||||||
<tinymce :height="300" v-model="content"/>
|
<tinymce v-model="content" :height="300" />
|
||||||
</div>
|
</div>
|
||||||
<div class="editor-content" v-html="content"/>
|
<!-- eslint-disable-next-line -->
|
||||||
|
<div class="editor-content" v-html="content" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :style="{height:height,width:width}"/>
|
<div :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
<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="panThumb" />
|
||||||
<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>
|
||||||
<div class="progress-item">
|
<div class="progress-item">
|
||||||
<span>JavaScript</span>
|
<span>JavaScript</span>
|
||||||
<el-progress :percentage="18"/>
|
<el-progress :percentage="18" />
|
||||||
</div>
|
</div>
|
||||||
<div class="progress-item">
|
<div class="progress-item">
|
||||||
<span>Css</span>
|
<span>Css</span>
|
||||||
<el-progress :percentage="12"/>
|
<el-progress :percentage="12" />
|
||||||
</div>
|
</div>
|
||||||
<div class="progress-item">
|
<div class="progress-item">
|
||||||
<span>ESLint</span>
|
<span>ESLint</span>
|
||||||
<el-progress :percentage="100" status="success"/>
|
<el-progress :percentage="100" status="success" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :style="{height:height,width:width}"/>
|
<div :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel-description">
|
<div class="card-panel-description">
|
||||||
<div class="card-panel-text">New Visits</div>
|
<div class="card-panel-text">New Visits</div>
|
||||||
<count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num"/>
|
<count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel-description">
|
<div class="card-panel-description">
|
||||||
<div class="card-panel-text">Messages</div>
|
<div class="card-panel-text">Messages</div>
|
||||||
<count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num"/>
|
<count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel-description">
|
<div class="card-panel-description">
|
||||||
<div class="card-panel-text">Purchases</div>
|
<div class="card-panel-text">Purchases</div>
|
||||||
<count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num"/>
|
<count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel-description">
|
<div class="card-panel-description">
|
||||||
<div class="card-panel-text">Shoppings</div>
|
<div class="card-panel-text">Shoppings</div>
|
||||||
<count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num"/>
|
<count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :style="{height:height,width:width}"/>
|
<div :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="className" :style="{height:height,width:width}"/>
|
<div :class="className" :style="{height:height,width:width}" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -5,18 +5,20 @@
|
||||||
:checked="todo.done"
|
:checked="todo.done"
|
||||||
class="toggle"
|
class="toggle"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
@change="toggleTodo( todo)">
|
@change="toggleTodo( todo)"
|
||||||
<label @dblclick="editing = true" v-text="todo.text"/>
|
>
|
||||||
<button class="destroy" @click="deleteTodo( todo )"/>
|
<label @dblclick="editing = true" v-text="todo.text" />
|
||||||
|
<button class="destroy" @click="deleteTodo( todo )" />
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
v-focus="editing"
|
|
||||||
v-show="editing"
|
v-show="editing"
|
||||||
|
v-focus="editing"
|
||||||
:value="todo.text"
|
:value="todo.text"
|
||||||
class="edit"
|
class="edit"
|
||||||
@keyup.enter="doneEdit"
|
@keyup.enter="doneEdit"
|
||||||
@keyup.esc="cancelEdit"
|
@keyup.esc="cancelEdit"
|
||||||
@blur="doneEdit">
|
@blur="doneEdit"
|
||||||
|
>
|
||||||
</li>
|
</li>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<!-- main section -->
|
<!-- main section -->
|
||||||
<section v-show="todos.length" class="main">
|
<section v-show="todos.length" class="main">
|
||||||
<input id="toggle-all" :checked="allChecked" class="toggle-all" type="checkbox" @change="toggleAll({ done: !allChecked })">
|
<input id="toggle-all" :checked="allChecked" class="toggle-all" type="checkbox" @change="toggleAll({ done: !allChecked })">
|
||||||
<label for="toggle-all"/>
|
<label for="toggle-all" />
|
||||||
<ul class="todo-list">
|
<ul class="todo-list">
|
||||||
<todo
|
<todo
|
||||||
v-for="(todo, index) in filteredTodos"
|
v-for="(todo, index) in filteredTodos"
|
||||||
|
@ -15,7 +15,8 @@
|
||||||
:todo="todo"
|
:todo="todo"
|
||||||
@toggleTodo="toggleTodo"
|
@toggleTodo="toggleTodo"
|
||||||
@editTodo="editTodo"
|
@editTodo="editTodo"
|
||||||
@deleteTodo="deleteTodo"/>
|
@deleteTodo="deleteTodo"
|
||||||
|
/>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<!-- footer -->
|
<!-- footer -->
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Status" width="100" align="center">
|
<el-table-column label="Status" width="100" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag :type="scope.row.status | statusFilter"> {{ scope.row.status }}</el-tag>
|
<el-tag :type="scope.row.status | statusFilter">
|
||||||
|
{{ scope.row.status }}
|
||||||
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
|
@ -1,41 +1,41 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard-editor-container">
|
<div class="dashboard-editor-container">
|
||||||
|
|
||||||
<github-corner style="position: absolute; top: 0px; border: 0; right: 0;"/>
|
<github-corner style="position: absolute; top: 0px; border: 0; right: 0;" />
|
||||||
|
|
||||||
<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;padding:16px 16px 0;margin-bottom:32px;">
|
||||||
<line-chart :chart-data="lineChartData"/>
|
<line-chart :chart-data="lineChartData" />
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="32">
|
<el-row :gutter="32">
|
||||||
<el-col :xs="24" :sm="24" :lg="8">
|
<el-col :xs="24" :sm="24" :lg="8">
|
||||||
<div class="chart-wrapper">
|
<div class="chart-wrapper">
|
||||||
<raddar-chart/>
|
<raddar-chart />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="24" :lg="8">
|
<el-col :xs="24" :sm="24" :lg="8">
|
||||||
<div class="chart-wrapper">
|
<div class="chart-wrapper">
|
||||||
<pie-chart/>
|
<pie-chart />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="24" :lg="8">
|
<el-col :xs="24" :sm="24" :lg="8">
|
||||||
<div class="chart-wrapper">
|
<div class="chart-wrapper">
|
||||||
<bar-chart/>
|
<bar-chart />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</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="padding-right:8px;margin-bottom:30px;">
|
||||||
<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>
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<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"> Your roles:
|
<pan-thumb :image="avatar" style="float: left">
|
||||||
|
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="position: absolute; top: 0px; border: 0; right: 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="font-size:20px;padding-top:20px;display:inline-block;">Editor's Dashboard</span>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard-container">
|
<div class="dashboard-container">
|
||||||
<component :is="currentRole"/>
|
<component :is="currentRole" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<a class="document-btn" target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/">{{ $t('documentation.documentation') }}</a>
|
<a class="document-btn" target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/">{{ $t('documentation.documentation') }}</a>
|
||||||
<a class="document-btn" target="_blank" href="https://github.com/PanJiaChen/vue-element-admin/">{{ $t('documentation.github') }}</a>
|
<a class="document-btn" target="_blank" href="https://github.com/PanJiaChen/vue-element-admin/">{{ $t('documentation.github') }}</a>
|
||||||
<a class="document-btn" target="_blank" href="https://panjiachen.gitee.io/vue-element-admin-site/zh/">国内文档</a>
|
<a class="document-btn" target="_blank" href="https://panjiachen.gitee.io/vue-element-admin-site/zh/">国内文档</a>
|
||||||
<dropdown-menu :items="articleList" style="float:left;margin-left:50px;" title="系列文章"/>
|
<dropdown-menu :items="articleList" style="float:left;margin-left:50px;" title="系列文章" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div/>
|
<div />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="errPage-container">
|
<div class="errPage-container">
|
||||||
<errorA/>
|
<errorA />
|
||||||
<errorB/>
|
<errorB />
|
||||||
<!-- $t is vue-i18n global function to translate lang -->
|
<!-- $t is vue-i18n global function to translate lang -->
|
||||||
<h3>{{ $t('errorLog.tips') }}</h3>
|
<h3>{{ $t('errorLog.tips') }}</h3>
|
||||||
<code>
|
<code>
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="bullshit">
|
<div class="bullshit">
|
||||||
<div class="bullshit__oops">OOPS!</div>
|
<div class="bullshit__oops">OOPS!</div>
|
||||||
<div class="bullshit__info">版权所有
|
<div class="bullshit__info">
|
||||||
|
版权所有
|
||||||
<a class="link-type" href="https://wallstreetcn.com" target="_blank">华尔街见闻</a>
|
<a class="link-type" href="https://wallstreetcn.com" target="_blank">华尔街见闻</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="bullshit__headline">{{ message }}</div>
|
<div class="bullshit__headline">{{ message }}</div>
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
<CommentDropdown v-model="postForm.comment_disabled" />
|
<CommentDropdown v-model="postForm.comment_disabled" />
|
||||||
<PlatformDropdown v-model="postForm.platforms" />
|
<PlatformDropdown v-model="postForm.platforms" />
|
||||||
<SourceUrlDropdown v-model="postForm.source_uri" />
|
<SourceUrlDropdown v-model="postForm.source_uri" />
|
||||||
<el-button v-loading="loading" style="margin-left: 10px;" type="success" @click="submitForm">发布
|
<el-button v-loading="loading" style="margin-left: 10px;" type="success" @click="submitForm">
|
||||||
|
发布
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-loading="loading" type="warning" @click="draftForm">草稿</el-button>
|
<el-button v-loading="loading" type="warning" @click="draftForm">草稿</el-button>
|
||||||
</sticky>
|
</sticky>
|
||||||
|
@ -28,14 +29,14 @@
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label-width="45px" label="作者:" class="postInfo-container-item">
|
<el-form-item label-width="45px" label="作者:" class="postInfo-container-item">
|
||||||
<el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable remote placeholder="搜索用户">
|
<el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable remote placeholder="搜索用户">
|
||||||
<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>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-form-item label-width="80px" label="发布时间:" class="postInfo-container-item">
|
<el-form-item label-width="80px" label="发布时间:" class="postInfo-container-item">
|
||||||
<el-date-picker v-model="postForm.display_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间"/>
|
<el-date-picker v-model="postForm.display_time" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
@ -47,7 +48,8 @@
|
||||||
:colors="['#99A9BF', '#F7BA2A', '#FF9900']"
|
:colors="['#99A9BF', '#F7BA2A', '#FF9900']"
|
||||||
:low-threshold="1"
|
:low-threshold="1"
|
||||||
:high-threshold="3"
|
:high-threshold="3"
|
||||||
style="margin-top:8px;"/>
|
style="margin-top:8px;"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -56,12 +58,12 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-form-item style="margin-bottom: 40px;" label-width="45px" label="摘要:">
|
<el-form-item style="margin-bottom: 40px;" label-width="45px" label="摘要:">
|
||||||
<el-input :rows="1" v-model="postForm.content_short" type="textarea" class="article-textarea" autosize placeholder="请输入内容"/>
|
<el-input v-model="postForm.content_short" :rows="1" type="textarea" class="article-textarea" autosize placeholder="请输入内容" />
|
||||||
<span v-show="contentShortLength" class="word-counter">{{ contentShortLength }}字</span>
|
<span v-show="contentShortLength" class="word-counter">{{ contentShortLength }}字</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item prop="content" style="margin-bottom: 30px;">
|
<el-form-item prop="content" style="margin-bottom: 30px;">
|
||||||
<Tinymce ref="editor" :height="400" v-model="postForm.content" />
|
<Tinymce ref="editor" v-model="postForm.content" :height="400" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item prop="image_uri" style="margin-bottom: 30px;">
|
<el-form-item prop="image_uri" style="margin-bottom: 30px;">
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dropdown :show-timeout="100" trigger="click">
|
<el-dropdown :show-timeout="100" trigger="click">
|
||||||
<el-button plain>{{ !comment_disabled?'评论已打开':'评论已关闭' }}
|
<el-button plain>
|
||||||
<i class="el-icon-caret-bottom el-icon--right"/>
|
{{ !comment_disabled?'评论已打开':'评论已关闭' }}
|
||||||
|
<i class="el-icon-caret-bottom el-icon--right" />
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown-menu slot="dropdown" class="no-padding">
|
<el-dropdown-menu slot="dropdown" class="no-padding">
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-radio-group v-model="comment_disabled" style="padding: 10px;">
|
<el-radio-group v-model="comment_disabled" style="padding: 10px;">
|
||||||
<el-radio :label="true">关闭评论</el-radio>
|
<el-radio :label="true">
|
||||||
<el-radio :label="false">打开评论</el-radio>
|
关闭评论
|
||||||
|
</el-radio>
|
||||||
|
<el-radio :label="false">
|
||||||
|
打开评论
|
||||||
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<el-dropdown :hide-on-click="false" :show-timeout="100" trigger="click">
|
<el-dropdown :hide-on-click="false" :show-timeout="100" trigger="click">
|
||||||
<el-button plain>
|
<el-button plain>
|
||||||
平台({{ platforms.length }})
|
平台({{ platforms.length }})
|
||||||
<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-border">
|
<el-dropdown-menu slot="dropdown" class="no-border">
|
||||||
<el-checkbox-group v-model="platforms" style="padding: 5px 15px;">
|
<el-checkbox-group v-model="platforms" style="padding: 5px 15px;">
|
||||||
<el-checkbox v-for="item in platformsOptions" :label="item.key" :key="item.key">
|
<el-checkbox v-for="item in platformsOptions" :key="item.key" :label="item.key">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
<el-dropdown :show-timeout="100" trigger="click">
|
<el-dropdown :show-timeout="100" trigger="click">
|
||||||
<el-button plain>
|
<el-button plain>
|
||||||
外链
|
外链
|
||||||
<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: 0px" prop="source_uri">
|
||||||
<el-input v-model="source_uri" placeholder="请输入内容">
|
<el-input v-model="source_uri" placeholder="请输入内容">
|
||||||
<template slot="prepend">填写url</template>
|
<template slot="prepend">
|
||||||
|
填写url
|
||||||
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
的include,直接缓存所有页面。详情见
|
的include,直接缓存所有页面。详情见
|
||||||
<a
|
<a
|
||||||
href="https://panjiachen.github.io/vue-element-admin-site/guide/essentials/tags-view.html"
|
href="https://panjiachen.github.io/vue-element-admin-site/guide/essentials/tags-view.html"
|
||||||
target="_blank">文档</a>
|
target="_blank"
|
||||||
|
>文档</a>
|
||||||
</p>
|
</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<article-detail :is-edit="false"/>
|
<article-detail :is-edit="false" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<article-detail :is-edit="true"/>
|
<article-detail :is-edit="true" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
<el-table-column width="100px" label="Importance">
|
<el-table-column width="100px" label="Importance">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<svg-icon v-for="n in +scope.row.importance" :key="n" icon-class="star" class="meta-item__icon"/>
|
<svg-icon v-for="n in +scope.row.importance" :key="n" icon-class="star" class="meta-item__icon" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
<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"
|
||||||
:label="item"
|
:label="item"
|
||||||
:value="item"/>
|
:value="item"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div style="display:inline-block;">
|
<div style="display:inline-block;">
|
||||||
<!-- $t is vue-i18n global function to translate lang -->
|
<!-- $t is vue-i18n global function to translate lang -->
|
||||||
<label class="radio-label" style="padding-left:0;">Filename: </label>
|
<label class="radio-label" style="padding-left:0;">Filename: </label>
|
||||||
<el-input :placeholder="$t('excel.placeholder')" v-model="filename" style="width:340px;" prefix-icon="el-icon-document"/>
|
<el-input v-model="filename" :placeholder="$t('excel.placeholder')" style="width:340px;" prefix-icon="el-icon-document" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="Date" width="220">
|
<el-table-column align="center" label="Date" width="220">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<i class="el-icon-time"/>
|
<i class="el-icon-time" />
|
||||||
<span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
|
<span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="document" @click="handleDownload">Export</el-button>
|
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="document" @click="handleDownload">Export</el-button>
|
||||||
|
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
|
v-loading="listLoading"
|
||||||
:data="list"
|
:data="list"
|
||||||
element-loading-text="Loading"
|
element-loading-text="Loading"
|
||||||
border
|
border
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="Date" width="220">
|
<el-table-column align="center" label="Date" width="220">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<i class="el-icon-time"/>
|
<i class="el-icon-time" />
|
||||||
<span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
|
<span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
|
@ -1,21 +1,22 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!-- $t is vue-i18n global function to translate lang -->
|
<!-- $t is vue-i18n global function to translate lang -->
|
||||||
<el-input :placeholder="$t('excel.placeholder')" v-model="filename" style="width:340px;" prefix-icon="el-icon-document"/>
|
<el-input v-model="filename" :placeholder="$t('excel.placeholder')" style="width:340px;" prefix-icon="el-icon-document" />
|
||||||
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="document" @click="handleDownload">{{ $t('excel.selectedExport') }}</el-button>
|
<el-button :loading="downloadLoading" style="margin-bottom:20px" type="primary" icon="document" @click="handleDownload">{{ $t('excel.selectedExport') }}</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
|
||||||
v-loading="listLoading"
|
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
|
v-loading="listLoading"
|
||||||
:data="list"
|
:data="list"
|
||||||
element-loading-text="拼命加载中"
|
element-loading-text="拼命加载中"
|
||||||
border
|
border
|
||||||
fit
|
fit
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
@selection-change="handleSelectionChange">
|
@selection-change="handleSelectionChange"
|
||||||
<el-table-column type="selection" align="center"/>
|
>
|
||||||
|
<el-table-column type="selection" align="center" />
|
||||||
<el-table-column align="center" label="Id" width="95">
|
<el-table-column align="center" label="Id" width="95">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.$index }}
|
{{ scope.$index }}
|
||||||
|
@ -38,7 +39,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="PDate" width="220">
|
<el-table-column align="center" label="PDate" width="220">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<i class="el-icon-time"/>
|
<i class="el-icon-time" />
|
||||||
<span>{{ scope.row.display_time }}</span>
|
<span>{{ scope.row.display_time }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<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="width: 100%;margin-top:20px;">
|
||||||
<el-table-column v-for="item of tableHeader" :prop="item" :label="item" :key="item"/>
|
<el-table-column v-for="item of tableHeader" :key="item" :prop="item" :label="item" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<el-row :gutter="20" style="margin:100px 15px 50px;">
|
<el-row :gutter="20" style="margin:100px 15px 50px;">
|
||||||
<el-col :span="12" :xs="24">
|
<el-col :span="12" :xs="24">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-date-picker v-model="date" :placeholder="$t('i18nView.datePlaceholder')" type="date"/>
|
<el-date-picker v-model="date" :placeholder="$t('i18nView.datePlaceholder')" type="date" />
|
||||||
</div>
|
</div>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-select v-model="value" :placeholder="$t('i18nView.selectPlaceholder')">
|
<el-select v-model="value" :placeholder="$t('i18nView.selectPlaceholder')">
|
||||||
|
@ -26,7 +26,8 @@
|
||||||
v-for="item in options"
|
v-for="item in options"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"/>
|
:value="item.value"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
|
@ -40,9 +41,9 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" :xs="24">
|
<el-col :span="12" :xs="24">
|
||||||
<el-table :data="tableData" fit highlight-current-row border style="width: 100%">
|
<el-table :data="tableData" fit highlight-current-row border style="width: 100%">
|
||||||
<el-table-column :label="$t('i18nView.tableName')" prop="name" width="100" align="center"/>
|
<el-table-column :label="$t('i18nView.tableName')" prop="name" width="100" align="center" />
|
||||||
<el-table-column :label="$t('i18nView.tableDate')" prop="date" width="120" align="center"/>
|
<el-table-column :label="$t('i18nView.tableDate')" prop="date" width="120" align="center" />
|
||||||
<el-table-column :label="$t('i18nView.tableAddress')" prop="address"/>
|
<el-table-column :label="$t('i18nView.tableAddress')" prop="address" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="classObj" class="app-wrapper">
|
<div :class="classObj" class="app-wrapper">
|
||||||
<div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
|
<div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
|
||||||
<sidebar class="sidebar-container"/>
|
<sidebar class="sidebar-container" />
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<navbar/>
|
<navbar />
|
||||||
<tags-view/>
|
<tags-view />
|
||||||
<app-main/>
|
<app-main />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<section class="app-main">
|
<section class="app-main">
|
||||||
<transition name="fade-transform" mode="out-in">
|
<transition name="fade-transform" mode="out-in">
|
||||||
<keep-alive :include="cachedViews">
|
<keep-alive :include="cachedViews">
|
||||||
<router-view :key="key"/>
|
<router-view :key="key" />
|
||||||
</keep-alive>
|
</keep-alive>
|
||||||
</transition>
|
</transition>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<hamburger :toggle-click="toggleSideBar" :is-active="sidebar.opened" class="hamburger-container"/>
|
<hamburger :toggle-click="toggleSideBar" :is-active="sidebar.opened" class="hamburger-container" />
|
||||||
|
|
||||||
<breadcrumb class="breadcrumb-container"/>
|
<breadcrumb class="breadcrumb-container" />
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
<template v-if="device!=='mobile'">
|
||||||
<search class="right-menu-item" />
|
<search class="right-menu-item" />
|
||||||
|
|
||||||
<error-log class="errLog-container right-menu-item hover-effect"/>
|
<error-log class="errLog-container right-menu-item hover-effect" />
|
||||||
|
|
||||||
<screenfull class="right-menu-item hover-effect"/>
|
<screenfull class="right-menu-item hover-effect" />
|
||||||
|
|
||||||
<el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">
|
<el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">
|
||||||
<size-select class="right-menu-item hover-effect"/>
|
<size-select class="right-menu-item hover-effect" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
|
||||||
<lang-select class="right-menu-item hover-effect"/>
|
<lang-select class="right-menu-item hover-effect" />
|
||||||
|
|
||||||
<el-tooltip :content="$t('navbar.theme')" effect="dark" placement="bottom">
|
<el-tooltip :content="$t('navbar.theme')" effect="dark" placement="bottom">
|
||||||
<theme-picker class="right-menu-item hover-effect"/>
|
<theme-picker class="right-menu-item hover-effect" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div class="avatar-wrapper">
|
||||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
||||||
<i class="el-icon-caret-bottom"/>
|
<i class="el-icon-caret-bottom" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<router-link to="/">
|
<router-link to="/">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<template>
|
<template>
|
||||||
<!-- eslint-disable vue/require-component-is -->
|
<!-- eslint-disable vue/require-component-is -->
|
||||||
<component v-bind="linkProps(to)">
|
<component v-bind="linkProps(to)">
|
||||||
<slot/>
|
<slot />
|
||||||
</component>
|
</component>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,12 @@
|
||||||
</template>
|
</template>
|
||||||
<sidebar-item
|
<sidebar-item
|
||||||
v-for="child in item.children"
|
v-for="child in item.children"
|
||||||
|
:key="child.path"
|
||||||
:is-nest="true"
|
:is-nest="true"
|
||||||
:item="child"
|
:item="child"
|
||||||
:key="child.path"
|
|
||||||
:base-path="resolvePath(child.path)"
|
:base-path="resolvePath(child.path)"
|
||||||
class="nest-menu" />
|
class="nest-menu"
|
||||||
|
/>
|
||||||
</el-submenu>
|
</el-submenu>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
:collapse-transition="false"
|
:collapse-transition="false"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
>
|
>
|
||||||
<sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path"/>
|
<sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" />
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
|
<el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
|
||||||
<slot/>
|
<slot />
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -4,21 +4,23 @@
|
||||||
<router-link
|
<router-link
|
||||||
v-for="tag in visitedViews"
|
v-for="tag in visitedViews"
|
||||||
ref="tag"
|
ref="tag"
|
||||||
|
:key="tag.path"
|
||||||
:class="isActive(tag)?'active':''"
|
:class="isActive(tag)?'active':''"
|
||||||
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
|
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
|
||||||
:key="tag.path"
|
|
||||||
tag="span"
|
tag="span"
|
||||||
class="tags-view-item"
|
class="tags-view-item"
|
||||||
@click.middle.native="closeSelectedTag(tag)"
|
@click.middle.native="closeSelectedTag(tag)"
|
||||||
@contextmenu.prevent.native="openMenu(tag,$event)">
|
@contextmenu.prevent.native="openMenu(tag,$event)"
|
||||||
|
>
|
||||||
{{ generateTitle(tag.title) }}
|
{{ generateTitle(tag.title) }}
|
||||||
<span v-if="!tag.meta.affix" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
|
<span v-if="!tag.meta.affix" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
|
||||||
</router-link>
|
</router-link>
|
||||||
</scroll-pane>
|
</scroll-pane>
|
||||||
<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
|
<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
|
||||||
<li @click="refreshSelectedTag(selectedTag)">{{ $t('tagsView.refresh') }}</li>
|
<li @click="refreshSelectedTag(selectedTag)">{{ $t('tagsView.refresh') }}</li>
|
||||||
<li v-if="!(selectedTag.meta&&selectedTag.meta.affix)" @click="closeSelectedTag(selectedTag)">{{
|
<li v-if="!(selectedTag.meta&&selectedTag.meta.affix)" @click="closeSelectedTag(selectedTag)">
|
||||||
$t('tagsView.close') }}</li>
|
{{ $t('tagsView.close') }}
|
||||||
|
</li>
|
||||||
<li @click="closeOthersTags">{{ $t('tagsView.closeOthers') }}</li>
|
<li @click="closeOthersTags">{{ $t('tagsView.closeOthers') }}</li>
|
||||||
<li @click="closeAllTags(selectedTag)">{{ $t('tagsView.closeAll') }}</li>
|
<li @click="closeAllTags(selectedTag)">{{ $t('tagsView.closeAll') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="social-signup-container">
|
<div class="social-signup-container">
|
||||||
<div class="sign-btn" @click="wechatHandleClick('wechat')">
|
<div class="sign-btn" @click="wechatHandleClick('wechat')">
|
||||||
<span class="wx-svg-container"><svg-icon icon-class="wechat" class="icon"/></span> 微信
|
<span class="wx-svg-container"><svg-icon icon-class="wechat" class="icon" /></span> 微信
|
||||||
</div>
|
</div>
|
||||||
<div class="sign-btn" @click="tencentHandleClick('tencent')">
|
<div class="sign-btn" @click="tencentHandleClick('tencent')">
|
||||||
<span class="qq-svg-container"><svg-icon icon-class="qq" class="icon"/></span> QQ
|
<span class="qq-svg-container"><svg-icon icon-class="qq" class="icon" /></span> QQ
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<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 />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<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 />
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
<div style="color: #ccc;">
|
<div style="color: #ccc;">
|
||||||
This article is from Evan You on <a target="_blank" href="https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf">medium</a>
|
This article is from Evan You on <a target="_blank" href="https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf">medium</a>
|
||||||
</div>
|
</div>
|
||||||
<div ref="content" class="node-article-content" v-html="article.content"/>
|
<!-- eslint-disable-next-line -->
|
||||||
|
<div ref="content" class="node-article-content" v-html="article.content" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<div style="margin-bottom:15px;">{{ $t('permission.roles') }}: {{ roles }}</div>
|
<div style="margin-bottom:15px;">{{ $t('permission.roles') }}: {{ roles }}</div>
|
||||||
{{ $t('permission.switchRoles') }}:
|
{{ $t('permission.switchRoles') }}:
|
||||||
<el-radio-group v-model="switchRoles">
|
<el-radio-group v-model="switchRoles">
|
||||||
<el-radio-button label="editor"/>
|
<el-radio-button label="editor" />
|
||||||
<el-radio-button label="admin"/>
|
<el-radio-button label="admin" />
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -59,7 +59,7 @@ import permission from '@/directive/permission/index.js' // 权限判断指令
|
||||||
import checkPermission from '@/utils/permission' // 权限判断函数
|
import checkPermission from '@/utils/permission' // 权限判断函数
|
||||||
import SwitchRoles from './components/SwitchRoles'
|
import SwitchRoles from './components/SwitchRoles'
|
||||||
|
|
||||||
export default{
|
export default {
|
||||||
name: 'DirectivePermission',
|
name: 'DirectivePermission',
|
||||||
components: { SwitchRoles },
|
components: { SwitchRoles },
|
||||||
directives: { permission },
|
directives: { permission },
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<script>
|
<script>
|
||||||
import SwitchRoles from './components/SwitchRoles'
|
import SwitchRoles from './components/SwitchRoles'
|
||||||
|
|
||||||
export default{
|
export default {
|
||||||
name: 'PagePermission',
|
name: 'PagePermission',
|
||||||
components: { SwitchRoles },
|
components: { SwitchRoles },
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -21,19 +21,20 @@
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-dialog :visible.sync="dialogVisible" :title="dialogType==='edit'?'Edit Role':'New Role'">
|
<el-dialog :visible.sync="dialogVisible" :title="dialogType==='edit'?'Edit Role':'New Role'">
|
||||||
<el-form :model="role" label-width="80px" label-position="left" >
|
<el-form :model="role" label-width="80px" label-position="left">
|
||||||
<el-form-item label="Name">
|
<el-form-item label="Name">
|
||||||
<el-input v-model="role.name" placeholder="Role Name"/>
|
<el-input v-model="role.name" placeholder="Role Name" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Desc">
|
<el-form-item label="Desc">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="role.description"
|
v-model="role.description"
|
||||||
:autosize="{ minRows: 2, maxRows: 4}"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="Role Description"/>
|
placeholder="Role Description"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Menus">
|
<el-form-item label="Menus">
|
||||||
<el-tree ref="tree" :check-strictly="checkStrictly" :data="routesData" :props="defaultProps" show-checkbox node-key="path" class="permission-tree"/>
|
<el-tree ref="tree" :check-strictly="checkStrictly" :data="routesData" :props="defaultProps" show-checkbox node-key="path" class="permission-tree" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div style="text-align:right;">
|
<div style="text-align:right;">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<el-upload :data="dataObj" :multiple="true" :before-upload="beforeUpload" action="https://upload.qbox.me" drag>
|
<el-upload :data="dataObj" :multiple="true" :before-upload="beforeUpload" action="https://upload.qbox.me" drag>
|
||||||
<i class="el-icon-upload"/>
|
<i class="el-icon-upload" />
|
||||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</template>
|
</template>
|
||||||
|
@ -10,7 +10,7 @@ import { getToken } from '@/api/qiniu'
|
||||||
// 获取七牛token 后端通过Access Key,Secret Key,bucket等生成token
|
// 获取七牛token 后端通过Access Key,Secret Key,bucket等生成token
|
||||||
// 七牛官方sdk https://developer.qiniu.com/sdk#official-sdk
|
// 七牛官方sdk https://developer.qiniu.com/sdk#official-sdk
|
||||||
|
|
||||||
export default{
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dataObj: { token: '', key: '' },
|
dataObj: { token: '', key: '' },
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue