新建uniapp项目,需要4个页面,
loading 启动页
:打开数据库,判断数据表是否存在,表内是否有数据,创建数据表的逻辑。
register 注册页
:数据表已存在,但是没有数据,需要进入该页面注册第一条数据
index 首页
:展示数据列表内的数据,可修改默认,添加新数据
edit 编辑
:编辑,更新数据
以下代码已测试兼容安卓IOS,可直接粘贴复制到自己项目里使用,
数据字段自行添加/修改,修改后别忘了把sqlite.js
内的对应上
loading.vue
<template>
<view class="content">
</view>
</template>
<script>
import {
openDatabase, // 打开/创建:数据库
createWalletTable, // 创建钱包表
checkTableExists, // 检查数据表是否存在
checkTableHasData, // 检查表内是否有数据
insertWalletData, // 添加钱包数据
queryWalletData, // 获取表数据
updateWalletData, // 更新表数据
deleteWalletData, // 删除表数据
closeDatabase, // 关闭数据库
} from '@/static/sqlite.js'
export default {
async onLoad() {
// 1. 打开/创建:数据库
let res_openDatabase = await openDatabase()
console.log('打开数据库:', res_openDatabase);
// 2. 检查数据表是否存在
let res_checkTableExists = await checkTableExists('wallets')
console.log('数据表是否存在:', res_checkTableExists);
if (res_checkTableExists) {
// 如果表存在,检查表中是否有数据
let res_checkTableHasData = await checkTableHasData('wallets')
console.log('表内有数据吗:', res_checkTableHasData);
if(res_checkTableHasData){
uni.redirectTo({
url: '/pages/index/index',
})
}else{
uni.redirectTo({
url: '/pages/index/register',
})
}
} else {
// 不存在创建数据表,并去注册
let res_createWalletTable = await createWalletTable()
console.log('创建成功:', res_createWalletTable);
uni.redirectTo({
url: '/pages/index/register',
})
}
},
methods: {
}
}
</script>
register.vue
<template>
<view class="content">
<view class="">第一次注册,id默认1,is_default默认1(默认地址),不能修改</view>
<view class="value">
<view class="item">
<text>id:</text>
<input type="text" placeholder="请输入" v-model="id" disabled/>
</view>
<view class="item">
<text>name:</text>
<input type="text" placeholder="请输入" v-model="name"/>
</view>
<view class="item">
<text>chain:</text>
<input type="text" placeholder="请输入" v-model="chain"/>
</view>
<view class="item">
<text>password:</text>
<input type="text" placeholder="请输入" v-model="password"/>
</view>
<view class="item">
<text>address:</text>
<input type="text" placeholder="请输入" v-model="address"/>
</view>
<view class="item">
<text>mnemonic:</text>
<input type="text" placeholder="请输入" v-model="mnemonic"/>
</view>
<view class="item">
<text>privateKey:</text>
<input type="text" placeholder="请输入" v-model="privateKey"/>
</view>
<view class="item">
<text>is_default:</text>
<input type="text" placeholder="请输入" v-model="is_default" disabled/>
</view>
</view>
<button class="btn" type="default" @click="add">注册添加数据</button>
</view>
</template>
<script>
import {
openDatabase, // 打开/创建:数据库
createWalletTable, // 创建钱包表
checkTableExists, // 检查数据表是否存在
checkTableHasData, // 检查表内是否有数据
insertWalletData, // 添加钱包数据
queryWalletData, // 获取表数据
updateWalletData, // 更新表数据
deleteWalletData, // 删除表数据
closeDatabase, // 关闭数据库
} from '@/static/sqlite.js'
export default {
data() {
return {
id:'1',
chain:'BNB',
address:'我的地址',
mnemonic:'我的助记词',
privateKey:'我的私钥',
name:'钱包名称',
password:'123456',
is_default:1
}
},
async onLoad() {
},
methods: