安卓扫码器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

271 lines
6.0 KiB

3 years ago
<template>
<view class="content">
3 years ago
<tn-avatar src="/static/logo.png" class="icon" size="xl"></tn-avatar>
<tn-list-view :card="true" unlined="all" class="listView">
2 years ago
<tn-list-cell class="listItem-1">
<view>Url: {{ urlInfo.url }}</view>
</tn-list-cell>
3 years ago
<tn-list-cell class="listItem">
<tn-grid align="center" :col="col">
<block v-for="(item, index) in fastToolList" :key="index">
<tn-grid-item class="toolItem">
<view :class="item.icon"></view>
<view class="cutline"></view>
<view class="toolText">{{ item.text }}</view>
</tn-grid-item>
</block>
</tn-grid>
</tn-list-cell>
<view class="cutline"></view>
<tn-list-cell class="listItem-ad">我是谷歌ad部分</tn-list-cell>
<tn-list-cell class="listItemBottom">
<image src="/static/logo.png" class="buttomImg"/>
</tn-list-cell>
</tn-list-view>
<text class="bottomText">Feedback or Suggestion</text>
3 years ago
</view>
</template>
<script>
2 years ago
import { openSqlite,executeSql,closedb,isTable,addSql} from "@/utils/database";
3 years ago
export default {
data() {
return {
3 years ago
col: 3,
2 years ago
urlInfo:{},
2 years ago
tableName: 'scan_code',
3 years ago
fastToolList:[
{
"index": 0,
"text":"Open",
"icon": "tn-icon-plane"
},
{
"index": 1,
"text":"Copy",
"icon": "tn-icon-copy-fill"
},
{
"index": 2,
"text":"Share",
"icon": "tn-icon-share-triangle"
}
]
3 years ago
}
},
2 years ago
async onLoad(option) {
2 years ago
let that = this;
2 years ago
//打开db
await that.openSqlite();
//判断是否存在表
await that.createTable();
//scan为写入,history为历史页面
if(option.category === 'scan'){
//获取初始化数据并写入db
await that.initData(option.data);
}else{
//查看历史页面
await that.getHistoryData(option.data);
}
},
onHide() {
let that = this;
that.closedb();
3 years ago
},
methods: {
2 years ago
// 打开数据库
async openSqlite(){
try{
let b = await openSqlite()
// uni.showToast({
// title:"open db success",
// icon:"none"
// })
console.log('db打开了');
}catch(e){
console.error("open db error",e)
}
},
// 关闭数据库
closedb(){
try{
closedb()
console.log('db关闭了');
}catch(e){
console.error("close db error",e)
}
},
// 创建表
async createTable(){
let sql = this.createTableSql_outbound()
try{
let exist = await isTable(this.tableName)
console.log("表是否存在",exist)
if(!exist){
let res = await executeSql(sql)
// uni.showToast({
// title:"insert table ok",
// icon:"none"
// })
console.log("新增表scancode",res)
}else{
// uni.showToast({
// title:"table exist",
// icon:"none"
// })
console.log("表scancode已存在")
}
}catch(e){
uni.showToast({
title:"insert table error",
icon:"none"
})
console.error("新增表报错scancode",e)
}
},
//写入扫描记录
async writeToDb(type,params){
try{
let data = {
category: type,
content: params
}
let b = await addSql(this.tableName,data)
console.log("数据添加成功!")
}catch(e){
console.error("insert data error!",e)
}
},
//创建表语句
createTableSql_outbound(){
return "CREATE TABLE IF NOT EXISTS `scan_code` (" +
" `id` INTEGER PRIMARY KEY AUTOINCREMENT," +
" `category` varchar(50) DEFAULT NULL ," +
" `content` text DEFAULT NULL ," +
" `createTime` datetime DEFAULT CURRENT_TIMESTAMP ," +
" `updateTime` datetime DEFAULT NULL default(datetime('now','localtime'))" +
"); "
},
//加载数据
async initData(params){
2 years ago
let that = this;
2 years ago
let data = JSON.parse(params);
2 years ago
that.urlInfo = data;
console.log('urlInfo',that.urlInfo)
2 years ago
//写入db
await that.writeToDb("URL",that.urlInfo.url);
},
//获取历史信息
async getHistoryData(params){
let that = this;
let data = JSON.parse(params);
that.urlInfo = data;
console.log('HistotyUrlInfo',that.urlInfo)
2 years ago
}
3 years ago
}
}
</script>
3 years ago
<style lang="scss">
3 years ago
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
3 years ago
background-color: #000000;
height:100%;
.listView{
z-index: 0;
position: relative;
2 years ago
width: 660rpx;
height: 1000rpx;
margin-top: 100rpx;
3 years ago
background-color: #141b29;
.listItem-1{
2 years ago
margin-top: 120rpx;
3 years ago
background-color: #141b29;
color: #fff;
//border: 2px solid yellow;
2 years ago
height: 360rpx;
3 years ago
text-align: center;
}
.listItem{
//border: 2px solid yellow;
2 years ago
height: 160rpx;
3 years ago
//margin-top: 30px;
//padding-top: 30px;
background-color: #141b29;
color: #fff;
.toolItem{
//border: 2px solid red;
background-color: #141b29;
2 years ago
font-size: 60rpx;
height: 120rpx;
3 years ago
text-align: center;
.toolText{
2 years ago
font-size: 24rpx;
3 years ago
color: #fff;
}
}
}
.listItem-ad{
background-color: #141b29;
text-align: center;
color: #fff;
//border: 2px solid red;
2 years ago
height: 160rpx;
3 years ago
}
.listItemBottom{
2 years ago
height: 400rpx;
margin-top: 20rpx;
3 years ago
background-color: #141b29;
color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.buttomImg{
2 years ago
width: 300rpx;
height: 300rpx;
3 years ago
}
}
}
.icon{
z-index: 1;
position: absolute;
2 years ago
margin-top: -960rpx;
3 years ago
}
.bottomText{
color: #fff;
text-align: center;
2 years ago
font-size: 24rpx;
margin-top: 40rpx;
margin-bottom: 40rpx;
3 years ago
}
.cutline{
border: 1px solid #8f8f94;
}
3 years ago
}
</style>