文件夹改名

Former-commit-id: 7b74bdf25b14c6a8da08ae07075e3f78be308894 [formerly 7b74bdf25b14c6a8da08ae07075e3f78be308894 [formerly 7b74bdf25b14c6a8da08ae07075e3f78be308894 [formerly 7b74bdf25b14c6a8da08ae07075e3f78be308894 [formerly 1e795e1614aaf94f23ad99354f6ca9be303a1b1e [formerly 9ce21aef6b043d8bfcb2849dd7c6bc34e4625387]]]]]
Former-commit-id: c92d7410adc4138c7903c0067860fc3d190f54b0
Former-commit-id: 9f0ab819a505e341a6edf210efb107df8b8efe33
Former-commit-id: 3006c0d2ccda4133203372c30ffee34a73fa8944 [formerly f340ca4127e4578b3c53747d13bbaba223ed4e83]
Former-commit-id: 9624c2aaa99880b5e37f1e60f1f36ac673e021ed
Former-commit-id: 7923489f2c3c637782d9d4a1707bc48dfe3b1acf
Former-commit-id: 2375e080a7f715bc48da40d4c56235efad3f0d5d
Former-commit-id: c41402e6c0266a07e974efad41feed7c6fb7d0b6
Former-commit-id: b8814b31619151361c91ed37cb1ee7f3813853c1
This commit is contained in:
liyang
2019-03-14 20:24:45 +08:00
parent 0de79b3462
commit 0f04615685
338 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
<template>
<d2-container :filename="filename" type="ghost">
<d2-module-index-banner slot="header" v-bind="banner"/>
<d2-module-index-menu :menu="menu"/>
</d2-container>
</template>
<script>
import menu from '@/menu/modules/demo-business'
export default {
data () {
return {
filename: __filename,
menu,
banner: {
title: 'DEMOS',
subTitle: '提供借鉴和参考的页面'
}
}
}
}
</script>

View File

@@ -0,0 +1,103 @@
<template>
<d2-container
:filename="filename"
type="card"
class="page">
<el-form
ref="form"
:model="form"
label-width="80px"
class="page--form">
<el-form-item label="姓名">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="地址">
<el-input type="textarea" v-model="form.address"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSubmit">修改</el-button>
</el-form-item>
</el-form>
</d2-container>
</template>
<script>
import { mapActions } from 'vuex'
import base from './mixins/index'
export default {
mixins: [
base
],
data () {
return {
filename: __filename
}
},
// 第一次进入或从其他组件对应路由进入时触发
beforeRouteEnter (to, from, next) {
const id = to.params.id
if (id) {
next(async instance => {
if (from.name === 'demo-business-issues-142') {
await instance.getFormData(id)
instance.saveDataToDb()
} else {
instance.loadDataFromDb(to)
}
})
}
},
// 在同一组件对应的多个路由间切换时触发
beforeRouteUpdate (to, from, next) {
const id = to.params.id
if (id) {
this.loadDataFromDb(to)
next()
}
},
watch: {
// 表单变化的时候更新持久化
form: {
handler () {
this.saveDataToDb()
},
deep: true
}
},
methods: {
...mapActions('d2admin/db', [
'pageSet',
'pageGet'
]),
// 将页面数据同步到持久化存储
saveDataToDb () {
this.pageSet({ instance: this, user: true })
},
// 从持久化存储恢复数据到页面
async loadDataFromDb (to) {
const instance = {
$route: {
fullPath: to.fullPath
},
$data: {}
}
const data = await this.pageGet({
instance,
user: true
})
for (const key in data) {
if (data.hasOwnProperty(key)) this[key] = data[key]
}
this.$message.success('loadDataFromDb')
}
}
}
</script>
<style lang="scss">
.page {
.page--form {
max-width: 460px;
}
}
</style>

View File

@@ -0,0 +1,67 @@
<template>
<d2-container
:filename="filename"
type="card"
class="page">
<el-form
ref="form"
:model="form"
label-width="80px"
class="page--form">
<el-form-item label="姓名">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="地址">
<el-input type="textarea" v-model="form.address"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSubmit">修改</el-button>
</el-form-item>
</el-form>
</d2-container>
</template>
<script>
import base from './mixins/index'
export default {
mixins: [
base
],
data () {
return {
filename: __filename
}
},
// 第一次进入或从其他组件对应路由进入时触发
beforeRouteEnter (to, from, next) {
const id = to.params.id
if (id) {
next(instance => {
instance.resetFormData()
instance.getFormData(id)
})
} else {
next(new Error('未指定ID'))
}
},
// 在同一组件对应的多个路由间切换时触发
beforeRouteUpdate (to, from, next) {
const id = to.params.id
if (id) {
this.resetFormData()
this.getFormData(id)
next()
} else {
next(new Error('未指定ID'))
}
}
}
</script>
<style lang="scss">
.page {
.page--form {
max-width: 460px;
}
}
</style>

View File

@@ -0,0 +1,78 @@
<template>
<d2-container :filename="filename" type="card">
<d2-crud
v-bind="crud"
@edit="({ index, row }) => goToEditPage('demo-business-issues-142-edit', row.id)"
@edit-cache-db="({ index, row }) => goToEditPage('demo-business-issues-142-edit-cache-db', row.id)"
style="margin: -15px 0;"/>
<template slot="footer">
<d2-link-btn
title="issue #142"
link="https://github.com/d2-projects/d2-admin/issues/142"/>
</template>
</d2-container>
</template>
<script>
// API
import {
fetch
} from '@/api/demo.business.issues.142'
export default {
data () {
return {
filename: __filename,
crud: {
columns: [
{ title: '姓名', key: 'name', width: 100 },
{ title: '地址', key: 'address' }
],
data: [],
options: {
border: true,
size: 'mini'
},
rowHandle: {
align: 'center',
width: 240,
custom: [
{
text: '无缓存编辑',
size: 'mini',
emit: 'edit'
},
{
text: '带缓存编辑 DB',
size: 'mini',
emit: 'edit-cache-db'
}
]
}
}
}
},
created () {
this.getTableData()
},
methods: {
// 请求表格数据
getTableData () {
fetch()
.then(res => {
this.crud.data = res.list
})
.catch(err => console.log(err))
},
// 跳转到编辑页面
goToEditPage (name, id) {
this.$router.push({
name,
params: {
id
}
})
}
}
}
</script>

View File

@@ -0,0 +1,56 @@
import {
detail
} from '@api/demo.business.issues.142'
export default {
props: {
id: {
type: String,
required: true
}
},
data () {
return {
form: {
name: '',
address: ''
}
}
},
methods: {
// [业务逻辑] 重置表单
resetFormData () {
this.form = {
name: '',
address: ''
}
},
// [业务逻辑] 根据 id 获取数据
getFormData (id) {
return new Promise((resolve, reject) => {
// 重置表单
this.resetFormData()
// 请求数据
detail(id)
.then(res => {
const { name, address } = res
this.form = { name, address }
this.$message.success('getFormData')
resolve()
})
.catch(err => {
console.log('err', err)
reject(err)
})
})
},
// [业务逻辑] 提交
handleSubmit () {
this.$notify({
title: 'Submit',
message: '提交了表单',
type: 'info'
})
}
}
}

View File

@@ -0,0 +1,85 @@
<template>
<el-popover
:placement="popoverPlacement"
:title="popoverTitle"
:width="popoverWidth"
trigger="hover">
<el-switch
v-model="currentValue"
:active-color="activeColor"
:inactive-color="inactiveColor"
:active-text="activeText"
:inactive-text="inactiveText"
:disabled="disabled"
@change="handleChange">
</el-switch>
<span slot="reference">
<slot v-if="value" name="active"/>
<slot v-else name="inactive"/>
</span>
</el-popover>
</template>
<script>
export default {
props: {
value: {
default: false
},
popoverPlacement: {
default: 'left'
},
popoverTitle: {
default: '修改'
},
popoverWidth: {
default: '150'
},
activeColor: {
default: '#67C23A'
},
inactiveColor: {
default: '#F56C6C'
},
activeText: {
default: '正常'
},
inactiveText: {
default: '禁用'
}
},
data () {
return {
currentValue: false,
disabled: false
}
},
watch: {
value: {
handler (val) {
this.currentValue = val
},
immediate: true
}
},
methods: {
handleChange (val) {
this.disabled = true
this.$message({
message: '正在发送请求',
type: 'info'
})
// 请将 setTimeout 修改为您的异步请求
setTimeout(() => {
this.disabled = false
this.$message({
message: '修改成功',
type: 'success'
})
this.$emit('change', val)
// 如果修改失败的话需要在这里手动将 currentValue 复原
}, 1000)
}
}
}
</script>

View File

@@ -0,0 +1,64 @@
<template>
<span slot="reference">
<d2-icon
v-if="disabled"
name="hourglass-start"
style="font-size: 14px; line-height: 32px; color: #909399;"/>
<span @click="handleClick">
<slot
v-if="!disabled && value"
name="active"/>
<slot
v-if="!disabled && !value"
name="inactive"/>
</span>
</span>
</template>
<script>
export default {
props: {
value: {
default: false
}
},
data () {
return {
currentValue: false,
disabled: false
}
},
watch: {
value: {
handler (val) {
this.currentValue = val
},
immediate: true
}
},
methods: {
handleClick () {
// 这里先赋值是为了和 TypeControl 使用一样的 handleChange
this.currentValue = !this.currentValue
this.handleChange(this.currentValue)
},
handleChange (val) {
this.disabled = true
this.$message({
message: '正在发送请求',
type: 'info'
})
// 请将 setTimeout 修改为您的异步请求
setTimeout(() => {
this.disabled = false
this.$message({
message: '修改成功',
type: 'success'
})
this.$emit('change', val)
// 如果修改失败的话需要在这里手动将 currentValue 复原
}, 1000)
}
}
}
</script>

View File

@@ -0,0 +1,44 @@
<template>
<el-pagination
:current-page="current"
:page-size="size"
:total="total"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
style="margin: -10px;"
@size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination>
</template>
<script>
export default {
props: {
current: {
default: 0
},
size: {
default: 0
},
total: {
default: 0
}
},
methods: {
handleSizeChange (val) {
this.$emit('change', {
current: this.current,
size: val,
total: this.total
})
},
handleCurrentChange (val) {
this.$emit('change', {
current: val,
size: this.size,
total: this.total
})
}
}
}
</script>

View File

@@ -0,0 +1,99 @@
<template>
<el-form
:inline="true"
:model="form"
:rules="rules"
ref="form"
size="mini"
style="margin-bottom: -18px;">
<el-form-item label="状态" prop="type">
<el-select
v-model="form.type"
placeholder="状态选择"
style="width: 100px;">
<el-option label="状态 1" value="1"/>
<el-option label="状态 2" value="2"/>
<el-option label="状态 3" value="3"/>
<el-option label="状态 4" value="4"/>
<el-option label="状态 5" value="5"/>
</el-select>
</el-form-item>
<el-form-item label="用户" prop="user">
<el-input
v-model="form.user"
placeholder="用户"
style="width: 100px;"/>
</el-form-item>
<el-form-item label="卡密" prop="key">
<el-input
v-model="form.key"
placeholder="卡密"
style="width: 120px;"/>
</el-form-item>
<el-form-item label="备注" prop="note">
<el-input
v-model="form.note"
placeholder="备注"
style="width: 120px;"/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="handleFormSubmit">
<d2-icon name="search"/>
查询
</el-button>
</el-form-item>
<el-form-item>
<el-button
@click="handleFormReset">
<d2-icon name="refresh"/>
重置
</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data () {
return {
form: {
type: '1',
user: 'FairyEver',
key: '',
note: ''
},
rules: {
type: [ { required: true, message: '请选择一个状态', trigger: 'change' } ],
user: [ { required: true, message: '请输入用户', trigger: 'change' } ]
}
}
},
methods: {
handleFormSubmit () {
this.$refs.form.validate((valid) => {
if (valid) {
this.$emit('submit', this.form)
} else {
this.$notify.error({
title: '错误',
message: '表单校验失败'
})
return false
}
})
},
handleFormReset () {
this.$refs.form.resetFields()
}
}
}
</script>

View File

@@ -0,0 +1,230 @@
<template>
<div>
<el-form
:inline="true"
size="mini">
<el-form-item :label="`已选数据下载 [ ${currentTableData.length} ]`">
<el-button-group>
<el-button
type="primary"
size="mini"
:disabled="currentTableData.length === 0"
@click="handleDownloadXlsx(currentTableData)">
xlsx
</el-button>
<el-button
type="primary"
size="mini"
:disabled="currentTableData.length === 0"
@click="handleDownloadCsv(currentTableData)">
csv
</el-button>
</el-button-group>
</el-form-item>
<el-form-item :label="`已选数据下载 [ ${multipleSelection.length} ]`">
<el-button-group>
<el-button
type="primary"
size="mini"
:disabled="multipleSelection.length === 0"
@click="handleDownloadXlsx(multipleSelection)">
xlsx
</el-button>
<el-button
type="primary"
size="mini"
:disabled="multipleSelection.length === 0"
@click="handleDownloadCsv(multipleSelection)">
csv
</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table
:data="currentTableData"
v-loading="loading"
size="mini"
stripe
style="width: 100%;"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column label="卡密" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{scope.row.key}}
</template>
</el-table-column>
<el-table-column label="面值" width="60" align="center">
<template slot-scope="scope">
<el-tag
size="mini"
type="success">
{{scope.row.value}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" width="50" align="center">
<template slot-scope="scope">
<boolean-control
:value="scope.row.type"
@change="(val) => {
handleSwitchChange(val, scope.$index)
}">
<d2-icon
name="check-circle"
style="font-size: 20px; line-height: 32px; color: #67C23A;"
slot="active"/>
<d2-icon
name="times-circle"
style="font-size: 20px; line-height: 32px; color: #F56C6C;"
slot="inactive"/>
</boolean-control>
</template>
</el-table-column>
<el-table-column label="状态" width="50" align="center">
<template slot-scope="scope">
<boolean-control-mini
:value="scope.row.type"
@change="(val) => {
handleSwitchChange(val, scope.$index)
}">
<d2-icon
name="check-circle"
style="font-size: 20px; line-height: 32px; color: #67C23A;"
slot="active"/>
<d2-icon
name="times-circle"
style="font-size: 20px; line-height: 32px; color: #F56C6C;"
slot="inactive"/>
</boolean-control-mini>
</template>
</el-table-column>
<el-table-column label="管理员" width="60">
<template slot-scope="scope">
{{scope.row.admin}}
</template>
</el-table-column>
<el-table-column label="管理员备注" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{scope.row.adminNote}}
</template>
</el-table-column>
<el-table-column label="创建时间" width="150" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{scope.row.dateTimeCreat}}
</template>
</el-table-column>
<el-table-column label="使用状态" width="100" align="center">
<template slot-scope="scope">
<el-tag
size="mini"
:type="scope.row.used ? 'info' : ''">
{{scope.row.used ? '已使用' : '未使用'}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="使用时间" width="150" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{scope.row.dateTimeUse}}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import BooleanControl from '../BooleanControl'
import BooleanControlMini from '../BooleanControlMini'
export default {
components: {
BooleanControl,
BooleanControlMini
},
props: {
tableData: {
default: () => []
},
loading: {
default: false
}
},
data () {
return {
currentTableData: [],
multipleSelection: [],
downloadColumns: [
{ label: '卡密', prop: 'key' },
{ label: '面值', prop: 'value' },
{ label: '状态', prop: 'type' },
{ label: '管理员', prop: 'admin' },
{ label: '管理员备注', prop: 'adminNote' },
{ label: '创建时间', prop: 'dateTimeCreat' },
{ label: '使用状态', prop: 'used' },
{ label: '使用时间', prop: 'dateTimeUse' }
]
}
},
watch: {
tableData: {
handler (val) {
this.currentTableData = val
},
immediate: true
}
},
methods: {
handleSwitchChange (val, index) {
const oldValue = this.currentTableData[index]
this.$set(this.currentTableData, index, {
...oldValue,
type: val
})
// 注意 这里并没有把修改后的数据传递出去 如果需要的话请自行修改
},
handleSelectionChange (val) {
this.multipleSelection = val
},
downloadDataTranslate (data) {
return data.map(row => ({
...row,
type: row.type ? '禁用' : '正常',
used: row.used ? '已使用' : '未使用'
}))
},
handleDownloadXlsx (data) {
this.$export.excel({
title: 'D2Admin 表格示例',
columns: this.downloadColumns,
data: this.downloadDataTranslate(data)
})
.then(() => {
this.$message('导出表格成功')
})
},
handleDownloadCsv (data) {
this.$export.csv({
title: 'D2Admin 表格示例',
columns: this.downloadColumns,
data: this.downloadDataTranslate(data)
})
.then(() => {
this.$message('导出CSV成功')
})
}
}
}
</script>

View File

@@ -0,0 +1,80 @@
<template>
<d2-container :filename="filename">
<demo-page-header
slot="header"
@submit="handleSubmit"
ref="header"/>
<demo-page-main
:table-data="table"
:loading="loading"/>
<demo-page-footer
slot="footer"
:current="page.pageCurrent"
:size="page.pageSize"
:total="page.pageTotal"
@change="handlePaginationChange"/>
</d2-container>
</template>
<script>
import { BusinessTable1List } from '@api/demo.business.table.1'
export default {
// name 值和本页的 $route.name 一致才可以缓存页面
name: 'demo-business-table-1',
components: {
'DemoPageHeader': () => import('./componnets/PageHeader'),
'DemoPageMain': () => import('./componnets/PageMain'),
'DemoPageFooter': () => import('./componnets/PageFooter')
},
data () {
return {
filename: __filename,
table: [],
loading: false,
page: {
pageCurrent: 1,
pageSize: 10,
pageTotal: 0
}
}
},
methods: {
handlePaginationChange (val) {
this.$notify({
title: '分页变化',
message: `当前第${val.current}页 共${val.total}条 每页${val.size}`
})
this.page = val
// nextTick 只是为了优化示例中 notify 的显示
this.$nextTick(() => {
this.$refs.header.handleFormSubmit()
})
},
handleSubmit (form) {
this.loading = true
this.$notify({
title: '开始请求模拟表格数据'
})
BusinessTable1List({
...form,
...this.page
})
.then(res => {
this.loading = false
this.$notify({
title: '模拟表格数据请求完毕'
})
this.table = res.list
this.page.pageTotal = res.page.total
})
.catch(err => {
this.loading = false
this.$notify({
title: '模拟表格数据请求异常'
})
console.log('err', err)
})
}
}
}
</script>

View File

@@ -0,0 +1,22 @@
<template>
<d2-container :filename="filename" type="ghost">
<d2-module-index-banner slot="header" v-bind="banner"/>
<d2-module-index-menu :menu="menu"/>
</d2-container>
</template>
<script>
import menu from '@/menu/modules/demo-charts'
export default {
data () {
return {
filename: __filename,
menu,
banner: {
title: 'CHARTS',
subTitle: '图表示例'
}
}
}
}
</script>

View File

@@ -0,0 +1 @@
8a2b03e0745b33a15d68fd8c98c73b68ba057482

View File

@@ -0,0 +1 @@
28bbf7a8cf2cd33dc30fba1bd876a43acd4743f5

View File

@@ -0,0 +1,9 @@
export default {
data () {
return {
pubSetting: {
height: '100%'
}
}
}
}

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-bar :data="chartData" v-bind="pubSetting"></ve-bar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">指定指标维度</template>
<div class="inner">
<ve-bar :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-bar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
dimension: ['日期'],
metrics: ['访问用户']
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,53 @@
<template>
<d2-container :filename="filename">
<template slot="header">排序条形图</template>
<div class="inner">
<ve-bar :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-bar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
metrics: ['访问用户'],
dataOrder: {
label: '访问用户',
order: 'desc'
}
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,51 @@
<template>
<d2-container :filename="filename">
<template slot="header">堆叠条形图</template>
<div class="inner">
<ve-bar :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-bar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
stack: {
'xxx': ['访问用户', '下单用户']
}
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">纵轴为连续的数值轴</template>
<div class="inner">
<ve-bar :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-bar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
yAxisType: 'value'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': 1, '访问用户': 1393 },
{ '日期': 2, '访问用户': 3530 },
{ '日期': 5, '访问用户': 2923 },
{ '日期': 10, '访问用户': 1723 },
{ '日期': 15, '访问用户': 3792 },
{ '日期': 36, '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,78 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-candle :data="chartData" v-bind="pubSetting"></ve-candle>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', 'open', 'close', 'lowest', 'highest', 'vol'],
rows: [
{ '日期': '2004-01-05', open: 10411.85, close: 10544.07, lowest: 10411.85, highest: 10575.92, vol: 221290000 },
{ '日期': '2004-01-06', open: 10543.85, close: 10538.66, lowest: 10454.37, highest: 10584.07, vol: 191460000 },
{ '日期': '2004-01-07', open: 10535.46, close: 10529.03, lowest: 10432.12, highest: 10587.55, vol: 225490000 },
{ '日期': '2004-01-08', open: 10530.07, close: 10592.44, lowest: 10480.59, highest: 10651.99, vol: 237770000 },
{ '日期': '2004-01-09', open: 10589.25, close: 10458.89, lowest: 10420.52, highest: 10603.48, vol: 223250000 },
{ '日期': '2004-01-12', open: 10461.55, close: 10485.18, lowest: 10389.85, highest: 10543.03, vol: 197960000 },
{ '日期': '2004-01-13', open: 10485.18, close: 10427.18, lowest: 10341.19, highest: 10539.25, vol: 197310000 },
{ '日期': '2004-01-14', open: 10428.67, close: 10538.37, lowest: 10426.89, highest: 10573.85, vol: 186280000 },
{ '日期': '2004-01-15', open: 10534.52, close: 10553.85, lowest: 10454.52, highest: 10639.03, vol: 260090000 },
{ '日期': '2004-01-16', open: 10556.37, close: 10600.51, lowest: 10503.71, highest: 10666.88, vol: 254170000 },
{ '日期': '2004-01-20', open: 10601.42, close: 10528.66, lowest: 10447.92, highest: 10676.96, vol: 224300000 },
{ '日期': '2004-01-21', open: 10522.77, close: 10623.62, lowest: 10453.11, highest: 10665.72, vol: 214920000 },
{ '日期': '2004-01-22', open: 10624.22, close: 10623.18, lowest: 10545.03, highest: 10717.41, vol: 219720000 },
{ '日期': '2004-01-23', open: 10625.25, close: 10568.29, lowest: 10490.14, highest: 10691.77, vol: 234260000 },
{ '日期': '2004-01-26', open: 10568.12, close: 10702.51, lowest: 10510.44, highest: 10725.18, vol: 186170000 },
{ '日期': '2004-01-27', open: 10701.11, close: 10609.92, lowest: 10579.33, highest: 10748.81, vol: 206560000 },
{ '日期': '2004-01-28', open: 10610.07, close: 10468.37, lowest: 10412.44, highest: 10703.25, vol: 247660000 },
{ '日期': '2004-01-29', open: 10467.41, close: 10510.29, lowest: 10369.92, highest: 10611.56, vol: 273970000 },
{ '日期': '2004-01-30', open: 10510.22, close: 10488.07, lowest: 10385.56, highest: 10551.03, vol: 208990000 },
{ '日期': '2004-02-02', open: 10487.78, close: 10499.18, lowest: 10395.55, highest: 10614.44, vol: 224800000 },
{ '日期': '2004-02-03', open: 10499.48, close: 10505.18, lowest: 10414.15, highest: 10571.48, vol: 183810000 },
{ '日期': '2004-02-04', open: 10503.11, close: 10470.74, lowest: 10394.81, highest: 10567.85, vol: 227760000 },
{ '日期': '2004-02-05', open: 10469.33, close: 10495.55, lowest: 10399.92, highest: 10566.37, vol: 187810000 },
{ '日期': '2004-02-06', open: 10494.89, close: 10593.03, lowest: 10433.74, highest: 10634.81, vol: 182880000 },
{ '日期': '2004-02-09', open: 10592.41, close: 10579.03, lowest: 10433.72, highest: 10634.81, vol: 160720000 },
{ '日期': '2004-02-10', open: 10578.74, close: 10613.85, lowest: 10511.18, highest: 10667.03, vol: 160590000 },
{ '日期': '2004-02-11', open: 10605.48, close: 10737.72, lowest: 10561.55, highest: 10779.41, vol: 277850000 },
{ '日期': '2004-02-12', open: 10735.18, close: 10694.07, lowest: 10636.44, highest: 10775.03, vol: 197560000 },
{ '日期': '2004-02-13', open: 10696.22, close: 10627.85, lowest: 10578.66, highest: 10755.47, vol: 208340000 },
{ '日期': '2004-02-17', open: 10628.88, close: 10714.88, lowest: 10628.88, highest: 10762.07, vol: 169730000 },
{ '日期': '2004-02-18', open: 10706.68, close: 10671.99, lowest: 10623.62, highest: 10764.36, vol: 164370000 },
{ '日期': '2004-02-19', open: 10674.59, close: 10664.73, lowest: 10626.44, highest: 10794.95, vol: 219890000 },
{ '日期': '2004-02-20', open: 10666.29, close: 10619.03, lowest: 10559.11, highest: 10722.77, vol: 220560000 },
{ '日期': '2004-02-23', open: 10619.55, close: 10609.62, lowest: 10508.89, highest: 10711.84, vol: 229950000 },
{ '日期': '2004-02-24', open: 10609.55, close: 10566.37, lowest: 10479.33, highest: 10681.41, vol: 225670000 },
{ '日期': '2004-02-25', open: 10566.59, close: 10601.62, lowest: 10509.42, highest: 10660.73, vol: 192420000 },
{ '日期': '2004-02-26', open: 10598.14, close: 10580.14, lowest: 10493.71, highest: 10652.96, vol: 223230000 },
{ '日期': '2004-02-27', open: 10581.55, close: 10583.92, lowest: 10519.03, highest: 10689.55, vol: 200050000 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,82 @@
<template>
<d2-container :filename="filename">
<template slot="header">显示 MA VOL</template>
<div class="inner">
<ve-candle :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-candle>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
showMA: true,
showVol: true
}
return {
filename: __filename,
chartData: {
columns: ['日期', 'open', 'close', 'lowest', 'highest', 'vol'],
rows: [
{ '日期': '2004-01-05', open: 10411.85, close: 10544.07, lowest: 10411.85, highest: 10575.92, vol: 221290000 },
{ '日期': '2004-01-06', open: 10543.85, close: 10538.66, lowest: 10454.37, highest: 10584.07, vol: 191460000 },
{ '日期': '2004-01-07', open: 10535.46, close: 10529.03, lowest: 10432.12, highest: 10587.55, vol: 225490000 },
{ '日期': '2004-01-08', open: 10530.07, close: 10592.44, lowest: 10480.59, highest: 10651.99, vol: 237770000 },
{ '日期': '2004-01-09', open: 10589.25, close: 10458.89, lowest: 10420.52, highest: 10603.48, vol: 223250000 },
{ '日期': '2004-01-12', open: 10461.55, close: 10485.18, lowest: 10389.85, highest: 10543.03, vol: 197960000 },
{ '日期': '2004-01-13', open: 10485.18, close: 10427.18, lowest: 10341.19, highest: 10539.25, vol: 197310000 },
{ '日期': '2004-01-14', open: 10428.67, close: 10538.37, lowest: 10426.89, highest: 10573.85, vol: 186280000 },
{ '日期': '2004-01-15', open: 10534.52, close: 10553.85, lowest: 10454.52, highest: 10639.03, vol: 260090000 },
{ '日期': '2004-01-16', open: 10556.37, close: 10600.51, lowest: 10503.71, highest: 10666.88, vol: 254170000 },
{ '日期': '2004-01-20', open: 10601.42, close: 10528.66, lowest: 10447.92, highest: 10676.96, vol: 224300000 },
{ '日期': '2004-01-21', open: 10522.77, close: 10623.62, lowest: 10453.11, highest: 10665.72, vol: 214920000 },
{ '日期': '2004-01-22', open: 10624.22, close: 10623.18, lowest: 10545.03, highest: 10717.41, vol: 219720000 },
{ '日期': '2004-01-23', open: 10625.25, close: 10568.29, lowest: 10490.14, highest: 10691.77, vol: 234260000 },
{ '日期': '2004-01-26', open: 10568.12, close: 10702.51, lowest: 10510.44, highest: 10725.18, vol: 186170000 },
{ '日期': '2004-01-27', open: 10701.11, close: 10609.92, lowest: 10579.33, highest: 10748.81, vol: 206560000 },
{ '日期': '2004-01-28', open: 10610.07, close: 10468.37, lowest: 10412.44, highest: 10703.25, vol: 247660000 },
{ '日期': '2004-01-29', open: 10467.41, close: 10510.29, lowest: 10369.92, highest: 10611.56, vol: 273970000 },
{ '日期': '2004-01-30', open: 10510.22, close: 10488.07, lowest: 10385.56, highest: 10551.03, vol: 208990000 },
{ '日期': '2004-02-02', open: 10487.78, close: 10499.18, lowest: 10395.55, highest: 10614.44, vol: 224800000 },
{ '日期': '2004-02-03', open: 10499.48, close: 10505.18, lowest: 10414.15, highest: 10571.48, vol: 183810000 },
{ '日期': '2004-02-04', open: 10503.11, close: 10470.74, lowest: 10394.81, highest: 10567.85, vol: 227760000 },
{ '日期': '2004-02-05', open: 10469.33, close: 10495.55, lowest: 10399.92, highest: 10566.37, vol: 187810000 },
{ '日期': '2004-02-06', open: 10494.89, close: 10593.03, lowest: 10433.74, highest: 10634.81, vol: 182880000 },
{ '日期': '2004-02-09', open: 10592.41, close: 10579.03, lowest: 10433.72, highest: 10634.81, vol: 160720000 },
{ '日期': '2004-02-10', open: 10578.74, close: 10613.85, lowest: 10511.18, highest: 10667.03, vol: 160590000 },
{ '日期': '2004-02-11', open: 10605.48, close: 10737.72, lowest: 10561.55, highest: 10779.41, vol: 277850000 },
{ '日期': '2004-02-12', open: 10735.18, close: 10694.07, lowest: 10636.44, highest: 10775.03, vol: 197560000 },
{ '日期': '2004-02-13', open: 10696.22, close: 10627.85, lowest: 10578.66, highest: 10755.47, vol: 208340000 },
{ '日期': '2004-02-17', open: 10628.88, close: 10714.88, lowest: 10628.88, highest: 10762.07, vol: 169730000 },
{ '日期': '2004-02-18', open: 10706.68, close: 10671.99, lowest: 10623.62, highest: 10764.36, vol: 164370000 },
{ '日期': '2004-02-19', open: 10674.59, close: 10664.73, lowest: 10626.44, highest: 10794.95, vol: 219890000 },
{ '日期': '2004-02-20', open: 10666.29, close: 10619.03, lowest: 10559.11, highest: 10722.77, vol: 220560000 },
{ '日期': '2004-02-23', open: 10619.55, close: 10609.62, lowest: 10508.89, highest: 10711.84, vol: 229950000 },
{ '日期': '2004-02-24', open: 10609.55, close: 10566.37, lowest: 10479.33, highest: 10681.41, vol: 225670000 },
{ '日期': '2004-02-25', open: 10566.59, close: 10601.62, lowest: 10509.42, highest: 10660.73, vol: 192420000 },
{ '日期': '2004-02-26', open: 10598.14, close: 10580.14, lowest: 10493.71, highest: 10652.96, vol: 223230000 },
{ '日期': '2004-02-27', open: 10581.55, close: 10583.92, lowest: 10519.03, highest: 10689.55, vol: 200050000 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,89 @@
<template>
<d2-container :filename="filename">
<template slot="header">修改指标名和图例文字</template>
<div class="inner">
<ve-candle :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-candle>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
showMA: true,
showVol: true,
labelMap: {
MA5: 'ma5'
},
legendName: {
'日K': 'day k'
},
showDataZoom: true
}
return {
filename: __filename,
chartData: {
columns: ['日期', 'open', 'close', 'lowest', 'highest', 'vol'],
rows: [
{ '日期': '2004-01-05', open: 10411.85, close: 10544.07, lowest: 10411.85, highest: 10575.92, vol: 221290000 },
{ '日期': '2004-01-06', open: 10543.85, close: 10538.66, lowest: 10454.37, highest: 10584.07, vol: 191460000 },
{ '日期': '2004-01-07', open: 10535.46, close: 10529.03, lowest: 10432.12, highest: 10587.55, vol: 225490000 },
{ '日期': '2004-01-08', open: 10530.07, close: 10592.44, lowest: 10480.59, highest: 10651.99, vol: 237770000 },
{ '日期': '2004-01-09', open: 10589.25, close: 10458.89, lowest: 10420.52, highest: 10603.48, vol: 223250000 },
{ '日期': '2004-01-12', open: 10461.55, close: 10485.18, lowest: 10389.85, highest: 10543.03, vol: 197960000 },
{ '日期': '2004-01-13', open: 10485.18, close: 10427.18, lowest: 10341.19, highest: 10539.25, vol: 197310000 },
{ '日期': '2004-01-14', open: 10428.67, close: 10538.37, lowest: 10426.89, highest: 10573.85, vol: 186280000 },
{ '日期': '2004-01-15', open: 10534.52, close: 10553.85, lowest: 10454.52, highest: 10639.03, vol: 260090000 },
{ '日期': '2004-01-16', open: 10556.37, close: 10600.51, lowest: 10503.71, highest: 10666.88, vol: 254170000 },
{ '日期': '2004-01-20', open: 10601.42, close: 10528.66, lowest: 10447.92, highest: 10676.96, vol: 224300000 },
{ '日期': '2004-01-21', open: 10522.77, close: 10623.62, lowest: 10453.11, highest: 10665.72, vol: 214920000 },
{ '日期': '2004-01-22', open: 10624.22, close: 10623.18, lowest: 10545.03, highest: 10717.41, vol: 219720000 },
{ '日期': '2004-01-23', open: 10625.25, close: 10568.29, lowest: 10490.14, highest: 10691.77, vol: 234260000 },
{ '日期': '2004-01-26', open: 10568.12, close: 10702.51, lowest: 10510.44, highest: 10725.18, vol: 186170000 },
{ '日期': '2004-01-27', open: 10701.11, close: 10609.92, lowest: 10579.33, highest: 10748.81, vol: 206560000 },
{ '日期': '2004-01-28', open: 10610.07, close: 10468.37, lowest: 10412.44, highest: 10703.25, vol: 247660000 },
{ '日期': '2004-01-29', open: 10467.41, close: 10510.29, lowest: 10369.92, highest: 10611.56, vol: 273970000 },
{ '日期': '2004-01-30', open: 10510.22, close: 10488.07, lowest: 10385.56, highest: 10551.03, vol: 208990000 },
{ '日期': '2004-02-02', open: 10487.78, close: 10499.18, lowest: 10395.55, highest: 10614.44, vol: 224800000 },
{ '日期': '2004-02-03', open: 10499.48, close: 10505.18, lowest: 10414.15, highest: 10571.48, vol: 183810000 },
{ '日期': '2004-02-04', open: 10503.11, close: 10470.74, lowest: 10394.81, highest: 10567.85, vol: 227760000 },
{ '日期': '2004-02-05', open: 10469.33, close: 10495.55, lowest: 10399.92, highest: 10566.37, vol: 187810000 },
{ '日期': '2004-02-06', open: 10494.89, close: 10593.03, lowest: 10433.74, highest: 10634.81, vol: 182880000 },
{ '日期': '2004-02-09', open: 10592.41, close: 10579.03, lowest: 10433.72, highest: 10634.81, vol: 160720000 },
{ '日期': '2004-02-10', open: 10578.74, close: 10613.85, lowest: 10511.18, highest: 10667.03, vol: 160590000 },
{ '日期': '2004-02-11', open: 10605.48, close: 10737.72, lowest: 10561.55, highest: 10779.41, vol: 277850000 },
{ '日期': '2004-02-12', open: 10735.18, close: 10694.07, lowest: 10636.44, highest: 10775.03, vol: 197560000 },
{ '日期': '2004-02-13', open: 10696.22, close: 10627.85, lowest: 10578.66, highest: 10755.47, vol: 208340000 },
{ '日期': '2004-02-17', open: 10628.88, close: 10714.88, lowest: 10628.88, highest: 10762.07, vol: 169730000 },
{ '日期': '2004-02-18', open: 10706.68, close: 10671.99, lowest: 10623.62, highest: 10764.36, vol: 164370000 },
{ '日期': '2004-02-19', open: 10674.59, close: 10664.73, lowest: 10626.44, highest: 10794.95, vol: 219890000 },
{ '日期': '2004-02-20', open: 10666.29, close: 10619.03, lowest: 10559.11, highest: 10722.77, vol: 220560000 },
{ '日期': '2004-02-23', open: 10619.55, close: 10609.62, lowest: 10508.89, highest: 10711.84, vol: 229950000 },
{ '日期': '2004-02-24', open: 10609.55, close: 10566.37, lowest: 10479.33, highest: 10681.41, vol: 225670000 },
{ '日期': '2004-02-25', open: 10566.59, close: 10601.62, lowest: 10509.42, highest: 10660.73, vol: 192420000 },
{ '日期': '2004-02-26', open: 10598.14, close: 10580.14, lowest: 10493.71, highest: 10652.96, vol: 223230000 },
{ '日期': '2004-02-27', open: 10581.55, close: 10583.92, lowest: 10519.03, highest: 10689.55, vol: 200050000 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,44 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-funnel :data="chartData" v-bind="pubSetting"></ve-funnel>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['状态', '数值'],
rows: [
{ '状态': '展示', '数值': 900 },
{ '状态': '访问', '数值': 600 },
{ '状态': '点击', '数值': 300 },
{ '状态': '订单', '数值': 100 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,47 @@
<template>
<d2-container :filename="filename">
<template slot="header">金字塔</template>
<div class="inner">
<ve-funnel :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-funnel>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
ascending: true
}
return {
filename: __filename,
chartData: {
columns: ['状态', '数值'],
rows: [
{ '状态': '展示', '数值': 900 },
{ '状态': '访问', '数值': 600 },
{ '状态': '点击', '数值': 300 },
{ '状态': '订单', '数值': 100 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,41 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-gauge :data="chartData" v-bind="pubSetting"></ve-gauge>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['type', 'a', 'b', 'value'],
rows: [
{ type: '速度', value: 80, a: 1, b: 2 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-heatmap :data="chartData" v-bind="pubSetting"></ve-heatmap>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['时间', '地点', '人数'],
rows: [
{ '时间': '星期一', '地点': '北京', '人数': 1000 },
{ '时间': '星期二', '地点': '上海', '人数': 400 },
{ '时间': '星期三', '地点': '杭州', '人数': 800 },
{ '时间': '星期二', '地点': '深圳', '人数': 200 },
{ '时间': '星期三', '地点': '长春', '人数': 100 },
{ '时间': '星期五', '地点': '南京', '人数': 300 },
{ '时间': '星期四', '地点': '江苏', '人数': 800 },
{ '时间': '星期一', '地点': '北京', '人数': 700 },
{ '时间': '星期三', '地点': '上海', '人数': 300 },
{ '时间': '星期二', '地点': '杭州', '人数': 500 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,70 @@
<template>
<d2-container :filename="filename">
<template slot="header">地图热力图</template>
<div class="inner">
<ve-heatmap :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-heatmap>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
position: 'china',
type: 'map',
geo: {
label: {
emphasis: {
show: false
}
},
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
}
}
}
return {
filename: __filename,
chartData: {
columns: ['lat', 'lng', '人数'],
rows: [
{ 'lat': 115.892151, 'lng': 28.676493, '人数': 1000 },
{ 'lat': 117.000923, 'lng': 36.675807, '人数': 400 },
{ 'lat': 113.665412, 'lng': 34.757975, '人数': 800 },
{ 'lat': 114.298572, 'lng': 30.584355, '人数': 200 },
{ 'lat': 112.982279, 'lng': 28.19409, '人数': 100 },
{ 'lat': 113.280637, 'lng': 23.125178, '人数': 300 },
{ 'lat': 110.33119, 'lng': 20.031971, '人数': 800 },
{ 'lat': 104.065735, 'lng': 30.659462, '人数': 700 },
{ 'lat': 108.948024, 'lng': 34.263161, '人数': 300 },
{ 'lat': 103.823557, 'lng': 36.058039, '人数': 500 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-histogram :data="chartData" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置显示的指标维度</template>
<div class="inner">
<ve-histogram :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
metrics: ['访问用户', '下单用户'],
dimension: ['日期']
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">柱状图+折线图</template>
<div class="inner">
<ve-histogram :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
showLine: ['下单用户']
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">堆叠柱状图</template>
<div class="inner">
<ve-histogram :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
stack: { '用户': ['访问用户', '下单用户'] }
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,51 @@
<template>
<d2-container :filename="filename">
<template slot="header">默认显示柱状图数据</template>
<div class="inner">
<ve-histogram :data="chartData" :extend="extend" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
extend: {
series: {
label: { show: true, position: 'top' }
}
},
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">横轴为连续的数值轴</template>
<div class="inner">
<ve-histogram :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-histogram>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
xAxisType: 'value'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': 1, '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': 2, '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': 5, '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': 10, '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': 20, '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': 22, '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-line :data="chartData" v-bind="pubSetting"></ve-line>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,55 @@
<template>
<d2-container :filename="filename">
<template slot="header">横坐标的倾斜</template>
<div class="inner">
<ve-line :data="chartData" :extend="extend" v-bind="pubSetting"></ve-line>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
extend: {
'xAxis.0.axisLabel.rotate': 45
},
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 },
{ '日期': '1/7', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/8', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/9', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/10', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/11', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/12', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">堆叠面积图</template>
<div class="inner">
<ve-line :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-line>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
stack: { '用户': ['访问用户', '下单用户'] },
area: true
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,55 @@
<template>
<d2-container :filename="filename">
<template slot="header">显示指标数值</template>
<div class="inner">
<ve-line :data="chartData" :extend="extend" v-bind="pubSetting"></ve-line>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
extend: {
series: {
label: {
normal: {
show: true
}
}
}
},
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,55 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置别名</template>
<div class="inner">
<ve-line :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-line>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
labelMap: {
'PV': '访问用户',
'Order': '下单用户'
},
legendName: {
'访问用户': '访问用户 total: 10000'
}
}
return {
filename: __filename,
chartData: {
columns: ['date', 'PV', 'Order', 'OrderRate'],
rows: [
{ 'date': '1/1', 'PV': 1393, 'Order': 1093, 'OrderRate': 0.32 },
{ 'date': '1/2', 'PV': 3530, 'Order': 3230, 'OrderRate': 0.26 },
{ 'date': '1/3', 'PV': 2923, 'Order': 2623, 'OrderRate': 0.76 },
{ 'date': '1/4', 'PV': 1723, 'Order': 1423, 'OrderRate': 0.49 },
{ 'date': '1/5', 'PV': 3792, 'Order': 3492, 'OrderRate': 0.323 },
{ 'date': '1/6', 'PV': 4593, 'Order': 4293, 'OrderRate': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,48 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-map :data="chartData" v-bind="pubSetting" :settings="chartSettings"></ve-map>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
import mapOrigin from '@/views/demo/charts/list/_data/china'
export default {
mixins: [
list
],
data () {
return {
chartSettings: {
mapOrigin
},
filename: __filename,
chartData: {
columns: ['位置', '税收', '人口', '面积'],
rows: [
{ '位置': '吉林', '税收': 123, '人口': 123, '面积': 92134 },
{ '位置': '北京', '税收': 1223, '人口': 2123, '面积': 29234 },
{ '位置': '上海', '税收': 2123, '人口': 1243, '面积': 94234 },
{ '位置': '浙江', '税收': 4123, '人口': 5123, '面积': 29234 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置城市</template>
<div class="inner">
<ve-map :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-map>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
import mapOrigin from '@/views/demo/charts/list/_data/beijing'
export default {
mixins: [
list
],
data () {
return {
chartSettings: {
position: 'province/beijing',
mapOrigin
},
filename: __filename,
chartData: {
columns: ['位置', '人口'],
rows: [
{ '位置': '延庆区', '人口': 123 },
{ '位置': '密云区', '人口': 1223 },
{ '位置': '平谷区', '人口': 2123 },
{ '位置': '海淀区', '人口': 4123 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,56 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置样式</template>
<div class="inner">
<ve-map :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-map>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
import mapOrigin from '@/views/demo/charts/list/_data/china'
export default {
mixins: [
list
],
data () {
return {
chartSettings: {
position: 'china',
mapOrigin,
label: false,
itemStyle: {
normal: {
borderColor: '#00f'
}
},
zoom: 1.2
},
filename: __filename,
chartData: {
columns: ['位置', '人口'],
rows: [
{ '位置': '吉林', ' 人口': 123 },
{ '位置': '北京', ' 人口': 1223 },
{ '位置': '上海', ' 人口': 2123 },
{ '位置': '浙江', ' 人口': 4123 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-pie :data="chartData" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置指标维度</template>
<div class="inner">
<ve-pie :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
dimension: '日期',
metrics: '访问用户'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">玫瑰图</template>
<div class="inner">
<ve-pie :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
roseType: 'radius'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">限制显示条数饼图</template>
<div class="inner">
<ve-pie :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
limitShowNum: 5
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,52 @@
<template>
<d2-container :filename="filename">
<template slot="header">多圆饼图</template>
<div class="inner">
<ve-pie :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
level: [
['1/1', '1/2', '1/3'],
['1/4', '1/5']
]
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置饼图半径边距</template>
<div class="inner">
<ve-pie :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-pie>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
radius: 150,
offsetY: 250
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-radar :data="chartData" v-bind="pubSetting"></ve-radar>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '下单率'],
rows: [
{ '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
{ '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
{ '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
{ '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
{ '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
{ '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-ring :data="chartData" v-bind="pubSetting"></ve-ring>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">指定指标维度</template>
<div class="inner">
<ve-ring :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-ring>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
dimension: '日期',
metrics: '访问用户'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">玫瑰图</template>
<div class="inner">
<ve-ring :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-ring>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
roseType: 'radius'
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,49 @@
<template>
<d2-container :filename="filename">
<template slot="header">限制显示条数环图</template>
<div class="inner">
<ve-ring :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-ring>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
limitShowNum: 3
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<template slot="header">设置环图半径</template>
<div class="inner">
<ve-ring :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-ring>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
radius: [30, 100],
offsetY: 250
}
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户'],
rows: [
{ '日期': '1/1', '访问用户': 1393 },
{ '日期': '1/2', '访问用户': 3530 },
{ '日期': '1/3', '访问用户': 2923 },
{ '日期': '1/4', '访问用户': 1723 },
{ '日期': '1/5', '访问用户': 3792 },
{ '日期': '1/6', '访问用户': 4593 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,57 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-sankey :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-sankey>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
links: [
{ source: '首页', target: '列表页a', value: 0.5 },
{ source: '首页', target: '列表页b', value: 0.5 },
{ source: '列表页a', target: '内容页a-1', value: 0.1 },
{ source: '列表页a', target: '内容页a-2', value: 0.4 },
{ source: '列表页b', target: '内容页b-1', value: 0.2 },
{ source: '列表页b', target: '内容页b-2', value: 0.3 }
]
}
return {
filename: __filename,
chartData: {
columns: ['页面', '访问量'],
rows: [
{ '页面': '首页', '访问量': 100000 },
{ '页面': '列表页a', '访问量': 20000 },
{ '页面': '列表页b', '访问量': 80000 },
{ '页面': '内容页a-1', '访问量': 10000 },
{ '页面': '内容页a-2', '访问量': 10000 },
{ '页面': '内容页b-1', '访问量': 60000 },
{ '页面': '内容页b-2', '访问量': 20000 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,46 @@
<template>
<d2-container :filename="filename">
<template slot="header">单维度多指标</template>
<div class="inner">
<ve-scatter :data="chartData" v-bind="pubSetting"></ve-scatter>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '年龄'],
rows: [
{ '日期': '1/1', '访问用户': 123, '年龄': 3, '下单用户': 1244 },
{ '日期': '1/2', '访问用户': 1223, '年龄': 6, '下单用户': 2344 },
{ '日期': '1/3', '访问用户': 7123, '年龄': 9, '下单用户': 3245 },
{ '日期': '1/4', '访问用户': 4123, '年龄': 12, '下单用户': 4355 },
{ '日期': '1/5', '访问用户': 3123, '年龄': 15, '下单用户': 4564 },
{ '日期': '1/6', '访问用户': 2323, '年龄': 20, '下单用户': 6537 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,64 @@
<template>
<d2-container :filename="filename">
<template slot="header">双维度多指标</template>
<div class="inner">
<ve-scatter :data="chartData" v-bind="pubSetting"></ve-scatter>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['日期', '访问用户', '下单用户', '年龄'],
rows: {
'上海': [
{ '日期': '1/1', '访问用户': 123, '年龄': 3, '下单用户': 1244 },
{ '日期': '1/2', '访问用户': 1223, '年龄': 6, '下单用户': 2344 },
{ '日期': '1/3', '访问用户': 7123, '年龄': 9, '下单用户': 3245 },
{ '日期': '1/4', '访问用户': 4123, '年龄': 12, '下单用户': 4355 },
{ '日期': '1/5', '访问用户': 3123, '年龄': 15, '下单用户': 4564 },
{ '日期': '1/6', '访问用户': 2323, '年龄': 20, '下单用户': 6537 }
],
'北京': [
{ '日期': '1/1', '访问用户': 123, '年龄': 3, '下单用户': 1244 },
{ '日期': '1/2', '访问用户': 1273, '年龄': 6, '下单用户': 2344 },
{ '日期': '1/3', '访问用户': 3123, '年龄': 15, '下单用户': 4564 },
{ '日期': '1/4', '访问用户': 2123, '年龄': 9, '下单用户': 3245 },
{ '日期': '1/5', '访问用户': 4103, '年龄': 12, '下单用户': 4355 },
{ '日期': '1/6', '访问用户': 7123, '年龄': 10, '下单用户': 3567 }
],
'广州': [
{ '日期': '1/1', '访问用户': 123, '年龄': 3, '下单用户': 1244 },
{ '日期': '1/2', '访问用户': 1223, '年龄': 6, '下单用户': 2344 },
{ '日期': '1/3', '访问用户': 2123, '年龄': 30, '下单用户': 3245 },
{ '日期': '1/5', '访问用户': 4123, '年龄': 12, '下单用户': 4355 },
{ '日期': '1/4', '访问用户': 5123, '年龄': 18, '下单用户': 4564 },
{ '日期': '1/6', '访问用户': 3843, '年龄': 30, '下单用户': 4850 }
]
}
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,127 @@
<template>
<d2-container :filename="filename">
<template slot="header">径向树图</template>
<div class="inner">
<ve-tree :data="chartData" :settings="chartSettings" v-bind="pubSetting"></ve-tree>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
this.chartSettings = {
seriesMap: {
tree1: {
layout: 'radial'
}
}
}
return {
filename: __filename,
chartData: {
columns: ['name', 'value'],
rows: [
{
name: 'tree1',
value: [
{
name: 'f',
value: 1,
link: 'https://ele.me',
children: [
{
name: 'a',
value: 1,
link: 'https://ele.me',
children: [
{
name: 'a-a',
link: 'https://ele.me',
value: 2
},
{
name: 'a-b',
link: 'https://ele.me',
value: 2
}
]
},
{
name: 'b',
value: 1,
link: 'https://ele.me',
children: [
{
name: 'b-a',
link: 'https://ele.me',
value: 2
},
{
name: 'b-b',
link: 'https://ele.me',
value: 2
}
]
},
{
name: 'c',
value: 3,
link: 'https://ele.me',
children: [
{
name: 'c-a',
link: 'https://ele.me',
value: 4
},
{
name: 'c-b',
link: 'https://ele.me',
value: 2
}
]
},
{
name: 'd',
value: 3,
link: 'https://ele.me',
children: [
{
name: 'd-a',
link: 'https://ele.me',
value: 4
},
{
name: 'd-b',
link: 'https://ele.me',
value: 2
}
]
}
]
}
]
}
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,43 @@
<template>
<d2-container :filename="filename">
<template slot="header">一般</template>
<div class="inner">
<ve-waterfall :data="chartData" v-bind="pubSetting"></ve-waterfall>
</div>
<template slot="footer">
<d2-link-btn title="更多示例和文档" link="https://v-charts.js.org"/>
</template>
</d2-container>
</template>
<script>
import list from '@/views/demo/charts/list/_mixin/list.js'
export default {
mixins: [
list
],
data () {
return {
filename: __filename,
chartData: {
columns: ['活动', '时间'],
rows: [
{ '活动': '吃饭', '时间': 4 },
{ '活动': '睡觉', '时间': 10 },
{ '活动': '打豆豆', '时间': 5 }
]
}
}
}
}
</script>
<style lang="scss" scoped>
.inner {
position: absolute;
top: 20px;
right: 20px;
bottom: 20px;
left: 20px;
}
</style>

View File

@@ -0,0 +1,106 @@
<template>
<d2-container :filename="filename"
ref="container"
:type="containerType"
:better-scroll="betterScroll"
:scroll-delay="scrollDelay"
@scroll="({x, y}) => { scrollTop = y }">
<template slot="header">
<el-form
:inline="true"
size="mini">
<el-form-item
label="布局类型"
class="d2-mb-0">
<el-radio-group v-model="containerType">
<el-radio-button label="full"></el-radio-button>
<el-radio-button label="card"></el-radio-button>
<el-radio-button label="ghost"></el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item
label="滚动距离"
class="d2-mb-0">
<el-input
:value="scrollTop"
style="width: 130px;">
<template slot="append">px</template>
</el-input>
</el-form-item>
<el-form-item
v-if="!betterScroll"
label="事件延迟(ms)"
class="d2-mb-0">
<el-input-number
v-model="scrollDelay"
:min="10"
:max="2000"
:step="100"
style="width: 110px;"/>
</el-form-item>
<el-form-item class="d2-mb-0">
<el-button
v-if="scrollTop >= 55"
type="primary"
@click="$refs.container.scrollToTop">
回到顶部
</el-button>
</el-form-item>
</el-form>
</template>
<el-alert
type="success"
:title="`${betterScroll ? '此示例开启了 BetterScroll ' : ''}请向下滚动`"
class="d2-mb-10"
center/>
<d2-demo-article
v-for="i in 10"
:key="i"
:style="articleStyle"
long/>
<template slot="footer">
<el-form
:inline="true"
size="mini">
<el-form-item class="d2-mb-0">
<el-button @click="$refs.container.scrollBy(0, 30)">相对滚动 (0, 30) 像素</el-button>
</el-form-item>
<el-form-item class="d2-mb-0">
<el-button @click="$refs.container.scrollTo(0, 100)">滚动到 (0, 100) 像素位置</el-button>
</el-form-item>
<el-form-item class="d2-mb-0">
<el-button @click="$refs.container.scrollTop(100)">滚动到垂直位置 100</el-button>
</el-form-item>
</el-form>
</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename,
containerType: 'full',
scrollDelay: 10,
scrollTop: 0
}
},
computed: {
// 是否开启 better scroll
betterScroll () {
return this.$route.query.bs === 'true'
},
// 根据滚动位置返回文章的样式
articleStyle () {
return {
opacity: this.scrollTop > 55 ? '1' : '.1'
}
}
}
}
</script>

View File

@@ -0,0 +1,21 @@
<template>
<d2-container :filename="filename" type="card" better-scroll>
<template slot="header">Header</template>
<d2-demo-article/>
<template slot="footer">Footer</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,21 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">Header</template>
<d2-demo-article/>
<template slot="footer">Footer</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,19 @@
<template>
<d2-container :filename="filename" type="card">
<d2-demo-article/>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,50 @@
<template>
<div class="d2-demo-article">
<div v-if="!long" class="d2-demo-article__control">
<el-switch
v-model="isLong"
active-text="长内容"
inactive-text="短内容"/>
</div>
<d2-markdown v-show="isLong" :source="sourceLong"/>
<d2-markdown v-show="!isLong" :source="sourceShort"/>
</div>
</template>
<script>
import sourceLong from '../md/long.md'
import sourceShort from '../md/short.md'
export default {
props: {
// 指定为长文本
long: {
type: Boolean,
required: false,
default: false
}
},
data () {
return {
sourceLong,
sourceShort,
isLong: false
}
},
created () {
this.isLong = this.long
}
}
</script>
<style lang="scss" scoped>
.d2-demo-article {
transition: opacity .3s;
.d2-demo-article__control {
padding: 8px 16px;
margin-bottom: 10px;
box-sizing: border-box;
border-radius: 4px;
background-color: #f4f4f5;
}
}
</style>

View File

@@ -0,0 +1,21 @@
<template>
<d2-container :filename="filename" better-scroll>
<template slot="header">Header</template>
<d2-demo-article/>
<template slot="footer">Header</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,21 @@
<template>
<d2-container :filename="filename">
<template slot="header">Header</template>
<d2-demo-article/>
<template slot="footer">Footer</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,19 @@
<template>
<d2-container :filename="filename">
<d2-demo-article/>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,25 @@
<template>
<d2-container :filename="filename" type="ghost" better-scroll>
<template slot="header">Header</template>
<div class="d2-pt d2-pb">
<el-card shadow="never" class="d2-card" style="width: 400px;">
<d2-demo-article/>
</el-card>
</div>
<template slot="footer">Footer</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,25 @@
<template>
<d2-container :filename="filename" type="ghost">
<template slot="header">Header</template>
<div class="d2-pt d2-pb">
<el-card shadow="never" class="d2-card" style="width: 400px;">
<d2-demo-article/>
</el-card>
</div>
<template slot="footer">Footer</template>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,23 @@
<template>
<d2-container :filename="filename" type="ghost">
<div class="d2-pt d2-pb">
<el-card shadow="never" class="d2-card" style="width: 400px;">
<d2-demo-article/>
</el-card>
</div>
</d2-container>
</template>
<script>
import d2DemoArticle from './components/d2-demo-article'
export default {
components: {
'd2-demo-article': d2DemoArticle
},
data () {
return {
filename: __filename
}
}
}
</script>

View File

@@ -0,0 +1,53 @@
## vue.js
**易用**
已经会了 HTML、CSS、JavaScript即刻阅读指南开始构建应用
**灵活**
不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。
**高效**
20kB min+gzip 运行大小
超快虚拟 DOM
最省心的优化
**Vue.js 是什么**
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层不仅易于上手还便于与第三方库或既有项目整合。另一方面当与现代化的工具链以及各种支持类库结合使用时Vue 也完全能够为复杂的单页应用提供驱动。
如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看对比其它框架。
## Element
Element一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
**一致性** Consistency
- 与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;
- 在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。
**反馈** Feedback
- 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;
- 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。
**效率** Efficiency
- 简化流程:设计简洁直观的操作流程;
- 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;
- 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。
**可控** Controllability
- 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
- 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。

View File

@@ -0,0 +1,17 @@
## vue.js
**易用**
已经会了 HTML、CSS、JavaScript即刻阅读指南开始构建应用
**灵活**
不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。
**高效**
20kB min+gzip 运行大小
超快虚拟 DOM
最省心的优化

View File

@@ -0,0 +1,51 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">自定义事件</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-item @click="handleClick">菜单1</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单2</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单3</v-contextmenu-item>
</v-contextmenu>
<v-contextmenu ref="dbContextmenu" event-type="dblclick">
<v-contextmenu-item @click="handleClick">菜单1</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单2</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单3</v-contextmenu-item>
</v-contextmenu>
<el-row :gutter="20">
<el-col :span="12">
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</el-col>
<el-col :span="12">
<div class="contextmenu-pad" v-contextmenu:dbContextmenu>
左键双击此区域
</div>
</el-col>
</el-row>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
},
methods: {
handleClick (instance, event) {
this.$message({
message: `你点击了${instance.$slots.default[0].text}`,
type: 'info'
})
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,43 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">禁用</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-item @click="handleClick">菜单1</v-contextmenu-item>
<v-contextmenu-item disabled @click="handleClick">菜单2</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-submenu title="子菜单">
<v-contextmenu-item @click="handleClick">菜单3</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-submenu disabled title="子菜单">
<v-contextmenu-item @click="handleClick">菜单5</v-contextmenu-item>
</v-contextmenu-submenu>
<v-contextmenu-item @click="handleClick">菜单4</v-contextmenu-item>
</v-contextmenu-submenu>
</v-contextmenu>
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
},
methods: {
handleClick (instance, event) {
this.$message({
message: `你点击了${instance.$slots.default[0].text}`,
type: 'info'
})
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,36 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">分割线</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-item @click="handleClick">菜单1</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单2</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单3</v-contextmenu-item>
</v-contextmenu>
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
},
methods: {
handleClick (instance, event) {
this.$message({
message: `你点击了${instance.$slots.default[0].text}`,
type: 'info'
})
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,39 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">按钮组</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-group>
<v-contextmenu-item>菜单1</v-contextmenu-item>
<v-contextmenu-item>菜单2</v-contextmenu-item>
<v-contextmenu-item>菜单3</v-contextmenu-item>
</v-contextmenu-group>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-group>
<v-contextmenu-item><d2-icon class="contextmenu-icon" name="github"/></v-contextmenu-item>
<v-contextmenu-item><d2-icon class="contextmenu-icon" name="qq"/></v-contextmenu-item>
<v-contextmenu-item><d2-icon class="contextmenu-icon" name="weixin"/></v-contextmenu-item>
<v-contextmenu-item><d2-icon class="contextmenu-icon" name="google-plus"/></v-contextmenu-item>
</v-contextmenu-group>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-item>菜单4</v-contextmenu-item>
<v-contextmenu-item>菜单5</v-contextmenu-item>
</v-contextmenu>
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,35 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">基础</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-item @click="handleClick">菜单1</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单2</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单3</v-contextmenu-item>
</v-contextmenu>
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
},
methods: {
handleClick (instance, event) {
this.$message({
message: `你点击了${instance.$slots.default[0].text}`,
type: 'info'
})
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,14 @@
.contextmenu-pad {
height: 300px;
background-color: $color-bg;
border: 1px solid $color-border-1;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
user-select: none;
color: $color-info;
}
.contextmenu-icon {
font-size: 16px;
}

View File

@@ -0,0 +1,45 @@
<template>
<d2-container :filename="filename" type="card">
<template slot="header">子菜单</template>
<v-contextmenu ref="contextmenu">
<v-contextmenu-item @click="handleClick">菜单 1</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单 2</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-submenu title="菜单 3">
<v-contextmenu-item @click="handleClick">菜单 3-1</v-contextmenu-item>
<v-contextmenu-item divider></v-contextmenu-item>
<v-contextmenu-submenu title="菜单 3-2">
<v-contextmenu-item @click="handleClick">菜单 3-2-1</v-contextmenu-item>
</v-contextmenu-submenu>
<v-contextmenu-item @click="handleClick">菜单 3-3</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单 3-4</v-contextmenu-item>
<v-contextmenu-item @click="handleClick">菜单 3-5</v-contextmenu-item>
</v-contextmenu-submenu>
</v-contextmenu>
<div class="contextmenu-pad" v-contextmenu:contextmenu>
右键点击此区域
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
},
methods: {
handleClick (instance, event) {
this.$message({
message: `你点击了${instance.$slots.default[0].text}`,
type: 'info'
})
}
}
}
</script>
<style lang="scss" scoped>
@import './style/pub.scss';
</style>

View File

@@ -0,0 +1,95 @@
<template>
<d2-container :filename="filename" type="card" class="page">
<template slot="header">数字动画组件</template>
<el-row :gutter="20">
<el-col :span="6">
<el-card shadow="never" class="d2-card d2-mb">
<p slot="title">只设置目标数字</p>
<div class="group">
<d2-count-up :end="100"/>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card shadow="never" class="d2-card d2-mb">
<p slot="title">设置起止数值</p>
<div class="group">
<d2-count-up :start="14" :end="100"/>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card shadow="never" class="d2-card d2-mb">
<p slot="title">小数位数</p>
<div class="group">
<d2-count-up :end="100" :decimals="2"/>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card shadow="never" class="d2-card d2-mb">
<p slot="title">动画时长</p>
<div class="group">
<d2-count-up :end="100" :duration="6"/>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card shadow="never" class="d2-card">
<p slot="title">回调函数</p>
<div class="group">
<d2-count-up :end="100" :callback="() => {className = 'end'}" :class="className"/>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card shadow="never" class="d2-card d2-mb-0">
<p slot="title">结束一秒后更新数值</p>
<div class="group">
<d2-count-up :end="end" :callback="update"/>
</div>
</el-card>
</el-col>
</el-row>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename,
// 回调函数使用
className: '',
// 更新数值用
end: 50
}
},
methods: {
update () {
setTimeout(() => {
this.end = 100
}, 1000)
}
}
}
</script>
<style lang="scss" scoped>
.page {
.group {
display: flex;
justify-content: center;
align-items: center;
span {
font-size: 60px;
&.end {
padding: 0px 20px;
border-radius: 4px;
background-color: $color-success;
color: #FFF;
}
}
}
}
</style>

View File

@@ -0,0 +1,50 @@
<template>
<d2-container :filename="filename">
<d2-quill
style="min-height: 200px; margin-bottom: 20px;"
v-model="value"
@text-change="textChangeHandler"
@selection-change="selectionChangeHandler"
@editor-change="editorChangeHandler"/>
<el-button
type="primary"
@click="handleAddRow">
添加一行
</el-button>
<el-card shadow="never" class="d2-card d2-mt">
<d2-highlight :code="value" format-html/>
</el-card>
</d2-container>
</template>
<script>
import value from './value'
export default {
data () {
return {
filename: __filename,
value
}
},
methods: {
handleAddRow () {
this.value += '<p style="color: #409EFF;">我是新增的行</p>'
},
textChangeHandler (delta, oldDelta, source) {
// console.group('QuillEditor textChangeHandler')
// console.log(delta, oldDelta, source)
// console.groupEnd()
},
selectionChangeHandler (range, oldRange, source) {
// console.group('QuillEditor selectionChangeHandler')
// console.log(range, oldRange, source)
// console.groupEnd()
},
editorChangeHandler (eventName, ...args) {
// console.group('QuillEditor editorChangeHandler')
// console.log(eventName, args)
// console.groupEnd()
}
}
}
</script>

View File

@@ -0,0 +1,6 @@
export default `<p>
<a href="https://github.com/d2-projects/d2-admin" target="_blank" class="ql-size-large" style="color: rgb(65, 184, 131);"><strong>D2 Admin</strong></a>
<strong style="color: rgb(65, 184, 131);"></strong>
by
<a href="https://cn.vuejs.org/" target="_blank" class="ql-size-large" style="color: rgb(65, 184, 131);"><strong>vue.js</strong></a>
</p>`

View File

@@ -0,0 +1,28 @@
<template>
<d2-container :filename="filename">
<d2-mde
v-model="text"
class="mde"/>
<el-card shadow="never" class="d2-card">
<pre>{{text}}</pre>
</el-card>
</d2-container>
</template>
<script>
import text from './text'
export default {
data () {
return {
filename: __filename,
text
}
}
}
</script>
<style lang="scss" scoped>
.mde {
margin-bottom: -16px;
}
</style>

View File

@@ -0,0 +1,10 @@
export default `# 标题
- 列表
- 列表
\`\`\`
alert('Hello')
\`\`\`
[D2Admin in github](https://github.com/d2-projects/d2-admin)`

View File

@@ -0,0 +1,34 @@
<template>
<d2-container type="card" :filename="filename">
<el-row :gutter="20">
<el-col :span="14">
<d2-ueditor v-model="text"/>
</el-col>
<el-col :span="10">
<el-card v-if="text" shadow="never" style="border: 1px solid #d4d4d4;">
<template slot="header">Result</template>
<div v-html="text" style="margin: -20px 0px;"></div>
</el-card>
</el-col>
</el-row>
<template slot="footer">
<el-button type="primary" @click="text += text">
<d2-icon name="copy"/> 当前内容 x2
</el-button>
<el-button type="danger" @click="text = ''">
<d2-icon name="trash-o"/> 清空
</el-button>
</template>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename,
text: '<p>Hello World</p>'
}
}
}
</script>

View File

@@ -0,0 +1,8 @@
export default `body {
background-color: aliceblue;
height: 100%;
}
.my-card {
height: 300px;
width: 300px;
}`

View File

@@ -0,0 +1,8 @@
export default `<ul>
<li class="li-1"><p>Hello</p></li>
<li>
<span style="color: red;">
Hello
</span>
</li>
</ul>`

View File

@@ -0,0 +1,3 @@
export default `[].forEach.call($$("*"), a => {
a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)
})`

View File

@@ -0,0 +1,8 @@
export default `body {
background-color: aliceblue;
height: 100%;
.my-card {
height: 300px;
width: 300px;
}
}`

View File

@@ -0,0 +1,39 @@
<template>
<d2-container :filename="filename">
<template slot="header">代码高亮组件</template>
<el-card shadow="never" class="d2-mb">
<p slot="title">javascript</p>
<d2-highlight :code="codeJavascript"/>
</el-card>
<el-card shadow="never" class="d2-mb">
<p slot="title">css</p>
<d2-highlight :code="codeCSS"/>
</el-card>
<el-card shadow="never" class="d2-mb">
<p slot="title">scss</p>
<d2-highlight :code="codeSCSS"/>
</el-card>
<el-card shadow="never">
<p slot="title">html</p>
<d2-highlight :code="codeHTML"/>
</el-card>
</d2-container>
</template>
<script>
import codeJavascript from './code/javascript'
import codeCSS from './code/css'
import codeSCSS from './code/scss'
import codeHTML from './code/html'
export default {
data () {
return {
filename: __filename,
codeJavascript,
codeCSS,
codeSCSS,
codeHTML
}
}
}
</script>

View File

@@ -0,0 +1,82 @@
<template>
<div>
<el-popover
ref="pop"
placement="right"
:title="icon"
width="300"
trigger="click">
<div class="icon-group">
<i :class="'fa fa-' + icon"></i>
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-tooltip effect="dark" :content="iconClass" placement="top">
<el-button @click="copy(iconClass)" style="width: 100%;">Class</el-button>
</el-tooltip>
</el-col>
<el-col :span="8">
<el-tooltip effect="dark" :content="iconHtml" placement="top">
<el-button @click="copy(iconHtml)" style="width: 100%;">HTML</el-button>
</el-tooltip>
</el-col>
<el-col :span="8">
<el-tooltip effect="dark" :content="iconComponent" placement="top">
<el-button @click="copy(iconComponent)" style="width: 100%;">组件</el-button>
</el-tooltip>
</el-col>
</el-row>
</el-popover>
<span v-popover:pop>
<el-tag type="info" class="icon-tag">
<i :class="'fa fa-' + icon"></i>
</el-tag>
<span style="font-size: 10px;">{{icon}}</span>
</span>
</div>
</template>
<script>
import * as clipboard from 'clipboard-polyfill'
export default {
props: {
icon: {
type: String,
required: false,
default: ''
}
},
computed: {
iconClass () {
return `fa fa-${this.icon}`
},
iconHtml () {
return `<i class="fa fa-${this.icon}" aria-hidden="true"></i>`
},
iconComponent () {
return `<d2-icon name="${this.icon}"/>`
}
},
methods: {
copy (text) {
clipboard.writeText(text)
this.$message({
message: `${text} 复制到剪贴板`,
type: 'success'
})
}
}
}
</script>
<style lang="scss" scoped>
.icon-group {
text-align: center;
font-size: 200px;
}
.icon-tag {
width: 32px;
text-align: center;
margin-right: 5px;
}
</style>

View File

@@ -0,0 +1 @@
3283c245146c8130af1352a64561e780a3f585c5

View File

@@ -0,0 +1,52 @@
<template>
<d2-container :filename="filename">
<template slot="header">SVG图标组件</template>
<el-row>
<el-col class="icon-card" :span="4" v-for="(icon, index) in $IconSvg" :key="index">
<d2-icon-svg class="icon" :name="icon"/>
<div class="icon-title">
<span>{{icon}}</span>
</div>
</el-col>
</el-row>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
}
}
</script>
<style lang="scss" scoped>
.icon-card {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
height: 150px;
&:hover {
.icon {
transform: scale(1.1);
}
.icon-title {
color: $color-text-main;
}
}
}
.icon {
height: 80px;
width: 80px;
transition: all .3s;
cursor: pointer;
}
.icon-title {
font-size: 12px;
margin-top: 10px;
color: $color-text-normal;
}
</style>

View File

@@ -0,0 +1,32 @@
<template>
<d2-container :filename="filename">
<template slot="header">图标组件</template>
<d2-icon class="d2-mr-10"/>
<d2-icon name="github" class="d2-mr-10"/>
<d2-icon name="github" style="font-size: 100px;" class="d2-mr-10"/>
<d2-icon name="github" class="icon-demo"/>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename
}
}
}
</script>
<style lang="scss" scoped>
.icon-demo {
transition: all .3s;
font-size: 100px;
color: #409EFF;
@extend %unable-select;
&:hover{
color: #F56C6C;
transform: scale(1.2) rotate(30deg);
}
}
</style>

View File

@@ -0,0 +1,47 @@
<template>
<d2-container :filename="filename">
<template slot="header">
<el-radio-group v-model="showIndex" size="mini">
<el-radio-button
v-for="(item, index) in radioOptions"
:key="index"
:label="item.value">
{{item.label}}
</el-radio-button>
</el-radio-group>
</template>
<el-row style="margin: -10px;">
<el-alert title="点击图标复制代码" type="info" class="d2-m-10" style="width: auto;"/>
<el-col v-for="(iconItem, iconIndex) in iconShow.icon" :key="iconIndex" :span="6" class="d2-p-10">
<d2-icon-cell :icon="iconItem"/>
</el-col>
</el-row>
</d2-container>
</template>
<script>
import icon from './data/index'
export default {
components: {
'd2-icon-cell': () => import('./components/d2-icon-cell')
},
data () {
return {
filename: __filename,
icon,
showIndex: 12
}
},
computed: {
iconShow () {
return this.icon[this.showIndex]
},
radioOptions () {
return this.icon.map((e, index) => ({
label: e.title,
value: index
}))
}
}
}
</script>

View File

@@ -0,0 +1,25 @@
<template>
<d2-container :filename="filename">
<template slot="header">svg 图标选择器</template>
<div class="d2-mb">
<p class="d2-mt-0 d2-mb-10">一般用法 | {{icon || '未选择'}}</p>
<d2-icon-svg-select v-model="icon"/>
</div>
<div class="d2-mb">
<p class="d2-mt-0 d2-mb-10">用户可以输入 | {{icon2 || '未选择'}}</p>
<d2-icon-svg-select v-model="icon2" :user-input="true"/>
</div>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename,
icon: '',
icon2: ''
}
}
}
</script>

View File

@@ -0,0 +1,57 @@
<template>
<d2-container :filename="filename">
<template slot="header">图标选择器</template>
<div class="title-group">
<p class="title">一般用法</p>
<p class="sub-title">
<template v-if="icon">
选择的图标 {{icon}}
<i :class="'fa fa-' + icon"></i>
</template>
<template v-else>未选择</template>
</p>
</div>
<d2-icon-select v-model="icon"/>
<div class="title-group">
<p class="title">用户可以输入</p>
<p class="sub-title">
<template v-if="icon2">
选择的图标 {{icon2}}
<i :class="'fa fa-' + icon2"></i>
</template>
<template v-else>未选择</template>
</p>
</div>
<d2-icon-select v-model="icon2" :user-input="true"/>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename,
icon: '',
icon2: ''
}
}
}
</script>
<style lang="scss" scoped>
.title-group {
margin-top: 20px;
margin-bottom: 10px;
&:first-child {
margin-top: 0px;
}
.title {
margin: 0px;
}
.sub-title {
margin: 0px;
color: $color-text-sub;
font-size: 10px;
}
}
</style>

View File

@@ -0,0 +1,22 @@
<template>
<d2-container :filename="filename" type="ghost">
<d2-module-index-banner slot="header" v-bind="banner"/>
<d2-module-index-menu :menu="menu"/>
</d2-container>
</template>
<script>
import menu from '@/menu/modules/demo-components'
export default {
data () {
return {
filename: __filename,
menu,
banner: {
title: 'COMPONENTS',
subTitle: 'D2Admin 为你提供了一些上手即用的组件'
}
}
}
}
</script>

View File

@@ -0,0 +1,22 @@
<template>
<d2-container :filename="filename">
<tree-view :data="packJson" :options="options"/>
</d2-container>
</template>
<script>
import packJson from '../../../../../package.json'
export default {
data () {
return {
filename: __filename,
options: {
maxDepth: 10,
rootObjectKey: 'package.json',
modifiable: false
},
packJson
}
}
}
</script>

View File

@@ -0,0 +1,119 @@
<template>
<d2-container :filename="filename" type="full" class="page">
<d2-grid-layout
v-bind="layout"
@layout-updated="layoutUpdatedHandler">
<d2-grid-item
v-for="(item, index) in layout.layout"
:key="index"
v-bind="item"
@resize="resizeHandler"
@move="moveHandler"
@resized="resizedHandler"
@moved="movedHandler">
<el-card shadow="never" class="page_card">
<el-tag size="mini" type="info" slot="header">Card {{item.i}}</el-tag>
<template v-if="item.i === '0'">
<div class="d2-mb">拖拽卡片调整位置</div>
<div class="d2-mb">拖拽卡片右下角的手柄调整卡片大小</div>
<div class="d2-mb">在控制台打印出数据变化</div>
</template>
</el-card>
</d2-grid-item>
</d2-grid-layout>
</d2-container>
</template>
<script>
export default {
data () {
return {
filename: __filename,
layout: {
layout: [
{ 'x': 0, 'y': 0, 'w': 4, 'h': 10, 'i': '0' },
{ 'x': 4, 'y': 0, 'w': 2, 'h': 5, 'i': '1' },
{ 'x': 6, 'y': 0, 'w': 4, 'h': 5, 'i': '2' },
{ 'x': 10, 'y': 0, 'w': 2, 'h': 10, 'i': '3' },
{ 'x': 4, 'y': 5, 'w': 4, 'h': 5, 'i': '4' },
{ 'x': 8, 'y': 5, 'w': 2, 'h': 5, 'i': '5' },
{ 'x': 0, 'y': 10, 'w': 8, 'h': 5, 'i': '6' },
{ 'x': 8, 'y': 10, 'w': 4, 'h': 5, 'i': '7' }
],
colNum: 12,
rowHeight: 30,
isDraggable: true,
isResizable: true,
isMirrored: false,
verticalCompact: true,
margin: [10, 10],
useCssTransforms: true
}
}
},
mounted () {
// 加载完成后显示提示
this.showInfo()
},
methods: {
log (arg1 = 'log', ...logs) {
if (logs.length === 0) {
console.log(arg1)
} else {
console.group(arg1)
logs.forEach(e => {
console.log(e)
})
console.groupEnd()
}
},
// 显示提示
showInfo () {
this.$notify({
title: '提示',
message: '你可以按住卡片拖拽改变位置;或者在每个卡片的右下角拖动,调整卡片大小'
})
},
// 测试代码
layoutUpdatedHandler (newLayout) {
console.group('layoutUpdatedHandler')
newLayout.forEach(e => {
console.log(`{'x': ${e.x}, 'y': ${e.y}, 'w': ${e.w}, 'h': ${e.h}, 'i': '${e.i}'},`)
})
console.groupEnd()
},
resizeHandler (i, newH, newW) {
this.log('resizeHandler', `i: ${i}, newH: ${newH}, newW: ${newW}`)
},
moveHandler (i, newX, newY) {
this.log('moveHandler', `i: ${i}, newX: ${newX}, newY: ${newY}`)
},
resizedHandler (i, newH, newW, newHPx, newWPx) {
this.log('resizedHandler', `i: ${i}, newH: ${newH}, newW: ${newW}, newHPx: ${newHPx}, newWPx: ${newWPx}`)
},
movedHandler (i, newX, newY) {
this.log('movedHandler', `i: ${i}, newX: ${newX}, newY: ${newY}`)
}
}
}
</script>
<style lang="scss" scoped>
.page {
.vue-grid-layout {
background-color: $color-bg;
border-radius: 4px;
margin: -10px;
.page_card {
height: 100%;
@extend %unable-select;
}
.vue-resizable-handle {
opacity: .3;
&:hover{
opacity: 1;
}
}
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More