上代码
<template>
<view class="">
<!-- 搜索 -->
<view class="" style="margin:10rpx;">
<u-row gutter="16">
<u-col span="9">
<u-input @input="inpus" v-model="inputvalue" :type="type" :border=true />
</u-col>
<u-col span="3">
<u-button type="error" @click="search">搜索</u-button>
</u-col>
</u-row>
</view>
<view class="">
<u-table>
<u-tr>
<u-th>名字</u-th>
<u-th>绰号</u-th>
<u-th>绝招</u-th>
<u-th>操作</u-th>
</u-tr>
<u-tr v-for="item of listform" :key="item.id">
<u-td>{{item.user}}</u-td>
<u-td>{{item.nick}}</u-td>
<u-td>{{item.skills}}</u-td>
<u-td class="dis">
<text style="color: #007AFF;margin-right: 20rpx;" @click="edit(item.id)">修改</text>
<text style="color: #DD524D;" @click="delet(item.id)">删除</text>
</u-td>
</u-tr>
<u-tr>
<u-td>
<u-input v-model="username" :type="type" />
</u-td>
<u-td>
<u-input v-model="nickname" :type="type" />
</u-td>
<u-td>
<u-input v-model="skill" :type="type" />
</u-td>
<u-td>
<u-button type="primary" @click="add">新增</u-button>
</u-td>
</u-tr>
</u-table>
</view>
<view class="">
<u-modal v-model="isshow" :mask-close-able="true" @confirm="queding" title="编辑">
<u-row gutter="16" style="margin-left:20%;">
<u-col span="4">名字</u-col>
<u-col span="6">
<u-input v-model="upname" :type="type" />
</u-col>
</u-row>
<u-row gutter="16" style="margin-left:20%;">
<u-col span="4">绰号</u-col>
<u-col span="6">
<u-input v-model="upnick" :type="type" />
</u-col>
</u-row>
<u-row gutter="16" style="margin-left:20%;">
<u-col span="4">绝招</u-col>
<u-col span="6">
<u-input v-model="upskill" :type="type" />
</u-col>
</u-row>
</u-modal>
</view>
<!-- 关闭数据库 -->
<u-button type="error" @click="close">关闭数据库</u-button>
</view>
</template>
<script>
data() {
return {
// 搜索
inputvalue:'',
// 表格
username: '',
nickname:'',
skill:'',
type: 'text',
listform:[],
ID:0,
// 弹框编辑
isshow:false,
upname:'',
upnick:'',
upskill:'',
}
},
onLoad() {
// 打开数据库
this.opendata()
// 查询所有
this.selectSQL()
},
methods: {
// 打开数据库
opendata(){
plus.sqlite.openDatabase({
// 表名
name: 'xin_test',
// 表地址
path: '_doc/test.db',
success: function(e) {
// e是一个对象
console.log("数据库开启成功" + 'openDatabase success!');
resolve(e)
},
fail: function(e) {
console.log("数据库开启失败" + 'openDatabase failed: ' + JSON.stringify(e));
}
});
},
// 关闭数据库
close(){
plus.sqlite.closeDatabase({
name: 'xin_test',
success(e) {
console.log("关闭数据库成功");
console.log(e)
},
fail(e) {
console.log("关闭数据库失败" + JSON.stringify(e));
}
})
},
// 先创建表然后新增
add(obj){
var _self=this;
plus.sqlite.executeSql({
name: 'xin_test',
sql:'create table if not exists dataitem("id" INTEGER PRIMARY KEY AUTOINCREMENT,"user" TEXT,"nick" TEXT,"skills" TEXT)',
success(e){
// 获取对应的值
var nameone=_self.username
var nicknamea= _self.nickname
var skilla = _self.skill
// 新增
plus.sqlite.executeSql({
// 表名
name: 'xin_test',
// 新增语句
sql: 'insert into dataitem(user,nick,skills) values("'+nameone+'","'+nicknamea+'","'+skilla+'")',
success(e){
console.log("新增成功",e)
_self.username=null
_self.nickname=null
_self.skill=null
_self.selectSQL()
},
fail: function(e) {
console.log("新增失败");
}
})
}
})
},
// 搜索
search(){
var _self=this
// 获取输入框的值
var nameuser =_self.inputvalue
// AND 与, OR 或, NOT 非
plus.sqlite.selectSql({
name:'xin_test',
// 查询语句
sql:'select * from dataitem where user="'+nameuser+'" or nick="'+nameuser+'" or skills="'+nameuser+'"',
success: function(data){
// 赋值
_self.listform=data
}
})
},
// 清空显示所有数据
inpus(){
if(this.inputvalue==''){
// 查询所有数据
this.selectSQL()
}
},
// 编辑
edit(arr){
var _self=this;
_self.ID=arr
// 循环所有数据
this.listform.forEach(item=>{
// 判断条件id是否相等
if(_self.ID==item.id){
_self.upname=item.user
_self.upnick=item.nick
_self.upskill=item.skills
}
})
this.isshow=true
},
queding(ID){
var _self=this
console.log(9,_self.ID)
var namevalue = _self.upname
var nickvalue = _self.upnick
var skillvalue = _self.upskill
plus.sqlite.executeSql({
name:'xin_test',
// 修改语句
sql:'update dataitem set user="'+namevalue+'",nick="'+nickvalue+'",skills="'+skillvalue+'"',
success(data){
// 循环所有数据
_self.listform.forEach(item=>{
// 判断条件id是否相等
if(_self.ID==item.id){
item.user=_self.upname
item.nick=_self.upnick
item.skills=_self.upskill
}
})
}
})
},
// 删除
delet(ob){
var _self=this
var obj = parseInt(ob)
console.log(obj)
uni.showModal({
title: '删除',
content: '是否要删除这一条数据',
success(res){
if(res.confirm){
plus.sqlite.executeSql({
name:'xin_test',
// 删除语句
sql:'delete from dataitem where id="'+obj+'"',
success(data){
// 查询有没这个id
var indexs= _self.listform.findIndex( item=>{
if(item.id == obj){
return true
}
})
// 删除
_self.listform.splice(indexs,1)
console.log("删除成功")
},
fail(){
console.log("删除失败")
}
})
}
}
})
},
// 数据库查询
selectSQL(){
var _self=this
plus.sqlite.selectSql({
name: 'xin_test',
// 查询所有语句
sql: 'select * from dataitem',
success(data){
_self.listform=data
console.log("查询",data)
},
fail(e){
console.log("查询失败")
}
})
},
}
}
</script>
<style lang="scss" scoped>
.dis{
display: inline-block;
}
</style>