Files
mes-ui-d2/src/pages/demo/playground/db/user/index.vue
liyang dc030a032c 完善了注释
Former-commit-id: d18ab13322f94d8b3f007121ec487ca330c8d8b0 [formerly d18ab13322f94d8b3f007121ec487ca330c8d8b0 [formerly d18ab13322f94d8b3f007121ec487ca330c8d8b0 [formerly d18ab13322f94d8b3f007121ec487ca330c8d8b0 [formerly 639ab0fe1aab62b38d1ac6521e2841b06d00723f [formerly ff329c4b89cc0e6957df5a8963731a7cb09f2d59]]]]]
Former-commit-id: 5ec70de072f1110071dd2cfed32b335781d6cc38
Former-commit-id: 2f28402753ba1038ffb14c51f93a55ff49da8241
Former-commit-id: db3be14cb2ce33acf427adab3c4afcd23861fb96 [formerly a8186fed38a1f91d3bcc9fede1cf571f850f2712]
Former-commit-id: 4c979630b81e3b92b8f516ea80ff187ddb712d0f
Former-commit-id: f3380c77310f95b470074a5c0cf19de96a1a4182
Former-commit-id: b8ab0140cc4cd266426284ef68737af065b0f30f
Former-commit-id: 54d4349d49e77535e57f604f84d9184d9c69c9d7
Former-commit-id: bd2f2b9a3d76bb9bd92c78a5e704d0671ff760d8
2018-08-11 22:20:40 +08:00

119 lines
2.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<d2-container class="page">
<template slot="header">持久化存储用户数据用户区分存储</template>
<el-row>
<el-col :span="12">
<p class="d2-mt-0">增加不重复字段</p>
<el-button @click="handleSetRandom">增加</el-button>
<p>增加自定义字段</p>
<el-input v-model="keyNameToSet" placeholder="字段名" class="d2-mr-5" style="width: 100px;"/>
<el-input v-model="valueToSet" placeholder="值" class="d2-mr-5" style="width: 100px;"/>
<el-button @click="handleSet">增加</el-button>
<p>删除字段</p>
<el-select
v-model="keyNameToDelete"
placeholder="请选择要删除的 key">
<el-option
v-for="item in keyNameList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<p>清空当前用户数据</p>
<el-button @click="handleClear">清空</el-button>
</el-col>
<el-col :span="12">
<d2-highlight :code="dataDisplay"/>
</el-col>
</el-row>
</d2-container>
</template>
<script>
import day from 'dayjs'
import { mapActions } from 'vuex'
export default {
data () {
return {
dataDisplay: '',
keyNameToSet: '',
valueToSet: '',
keyNameList: [],
keyNameToDelete: ''
}
},
watch: {
keyNameToDelete (value) {
if (value) {
this.handleDelete(value)
}
}
},
mounted () {
this.load()
},
methods: {
...mapActions('d2admin/db', [
'databaseByUser',
'databaseByUserClear'
]),
/**
* 加载本地数据
*/
async load () {
const db = await this.databaseByUser()
this.dataDisplay = JSON.stringify(db.value(), null, 2)
this.keyNameList = Object.keys(db.value()).map(k => ({
value: k,
label: k
}))
},
/**
* 删除一个字段
*/
async handleDelete (name) {
const db = await this.databaseByUser()
db
.unset(name)
.write()
this.load()
this.keyNameToDelete = ''
},
/**
* 清空当前用户的数据
*/
async handleClear () {
const db = await this.databaseByUserClear()
// db 是已经清空了的数据库对象 没有后续操作的话可以不接收这个值
this.load()
},
/**
* 添加一个数据
*/
async handleSet () {
if (this.keyNameToSet === '') {
this.$message.error('字段名不能为空')
return
}
const db = await this.databaseByUser()
db
.set(this.keyNameToSet, this.valueToSet)
.write()
this.load()
},
/**
* 添加一个随机数据
*/
async handleSetRandom () {
const id = day().valueOf()
const db = await this.databaseByUser()
db
.set(id, Math.round(id * Math.random()))
.write()
this.load()
}
}
}
</script>