新建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: