提交 df3105f5 编写于 作者: 齐天丞's avatar 齐天丞

更新console

上级 00707df3
......@@ -2,10 +2,19 @@
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
"version": "0.0",
"configurations": [{
"type": "uniCloud",
"default": {
"launchtype": "local"
}
}
"app-plus" :
{
"launchtype" : "local"
},
"default" :
{
"launchtype" : "local"
},
"h5" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}
import App from './App'
import { usqlite } from '@/uni_modules/onemue-USQLite/js_sdk/usqlite.js'
uni.$sql = usqlite;
Vue.prototype.dbOptions = {
name: 'demo',
path: '_doc/demo.db'
}
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
App.mpType = 'app'
const app = new Vue({
...App
})
......
......@@ -17,7 +17,9 @@
"delay" : 0
},
/* 模块配置 */
"modules" : {},
"modules" : {
"SQLite" : {}
},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
......
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
// {
// "path": "pages/index/index",
// "style": {
// "navigationBarTitleText": "uSQLite"
// }
// },
{
"path": "uni_modules/onemue-usqlite-console/components/onemue-usqlite-console/onemue-usqlite-console",
"style": {
"navigationBarTitleText": "uSQLite-console"
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
"navigationBarTitleText": "uSQLite"
}
}
],
......
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
<view class="plus-item" v-for="(plusInem, index) in plus" :key="index">
<view class="plus-left">
{{ plusInem.name }}
</view>
<view class="plus-right">
{{ plusInem.describe }}
<br />
<button type="default" @click="plusFunc" v-for="(plusFunc, plusFuncName, index) in plusInem.function"
:key="index">
{{ plusFuncName }}
</button>
</view>
</view>
<usql-console>aaa</usql-console>
</view>
</template>
<script>
import usqlConsole from '@/uni_modules/onemue-usqlite-console/components/onemue-usqlite-console/onemue-usqlite-console'
// Vue.use(usqlCnsole)
export default {
components: {
'usql-console': usqlConsole
},
data() {
return {
title: 'Hello'
}
sqlMode: null,
sqlOptions: {
name: 'demo',
path: '_doc/demo.db'
},
plus: [{
name: "介绍",
describe: "这是uSQLite",
},
{
name: "版本",
describe: "v 0.0.0",
},
{
name: "SQLite",
describe: "SQLite 封装的方法",
function: {
"链接数据库": this.connectDatabase,
"检测是否链接数据库": this.isConnect,
"创建Model": this.createModel,
"检测Model": this.isModel,
"查询所有表": this.getTables,
"添加数据": this.insert,
"查询操作": this.find,
"分页查询": this.limit,
"条件查询": this.whereFind,
"修改操作": this.updata,
"条件修改": this.whereUpdata,
"删除操作": this.delete,
"条件删除": this.whereDelete,
"清空操作": this.drop,
"执行自定义SQL语句": this.diySQL,
"链式调用": this.links,
"console": this.console
},
},
],
};
},
onLoad() {
},
methods: {
connectDatabase: function() {
uni.$sql.connect(this.sqlOptions, function(err, results) {
if (err) {
console.log(err);
return;
}
console.log(results);
})
},
isConnect: function() {
console.log(plus.sqlite.isOpenDatabase(this.sqlOptions))
},
createModel: function() {
this.sqlModel = uni.$sql.model(
'sqlModel2', {
id: 'String',
content: 'String',
// N_a: Number,
B_b: Boolean
}
);
// console.log(this.sqlModel);
},
isModel: function() {
// console.log('e, r');
this.sqlModel.isExist(function(e, r) {
console.log(e, r);
if (e) {
console.log(e);
return;
}
console.log(r)
})
},
getTables: function() {
plus.sqlite.selectSql({
name: this.sqlOptions.name,
sql: "select * FROM sqlite_master where type='table'",
success(e) {
console.log(e)
},
fail(e) {
console.log(e)
}
})
},
insert: function() {
this.sqlModel.insert({
id: Math.random().toString(16).slice(2),
content: 'this is content:' + Math.random().toString(16).slice(2),
// number: 666,
B_b: Math.random() > 0.5 ? true : false
}, function(err, results) {
if (err) {
console.log(err);
return;
}
console.log(results);
});
},
find: function() {
this.sqlModel.find(function(err, r) {
if (err) {
console.log(err);
return;
}
console.log(r)
})
},
limit: function() {
this.sqlModel.limit({
where: null,
number: 2,
count: 2
}, function(e, r) {
console.log(e, r)
});
},
whereFind: function() {
this.sqlModel.find('B_b = "false"', function(e, r) {
console.log(e, r)
});
},
updata: function() {
this.sqlModel.update({
content: 'This is the updated'
}, function(e, r) {
console.log(e, r);
});
},
whereUpdata: function() {
this.sqlModel.update('B_b = "true"', {
B_b: '!false'
}, function(e, r) {
console.log(e, r);
});
},
delete: function() {
this.sqlModel.delete(function(e, r) {
console.log(e, r);
})
},
whereDelete: function() {
this.sqlModel.delete('B_b="false"', function(e, r) {
console.log(e, r);
})
},
drop: function() {
this.sqlModel.drop(function(e, r) {
console.log(e, r);
})
},
diySQL: function() {
this.sqlModel.sql('SELECT * FROM sqlModel2', function(e, r) {
console.log(e, r);
})
},
links: function() {
this.sqlModel
.update({
content: 'This is the updated'
}, function(e, r) {
console.log('P1: ' + e, r);
})
.sql('SELECT * FROM sqlModel2', function(e, r) {
console.log('P2: ' + e, r);
})
},
console: function() {
}
}
}
},
};
</script>
<style>
.content {
/* *{
background: #3333;
} */
.plus-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 0.8rem;
line-height: 0.8rem;
padding: 0.4rem;
border-bottom: 1rpx #eee solid;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
.plus-item:last-child {
border: none;
}
.text-area {
display: flex;
justify-content: center;
.plus-left {
width: calc(30% - 8px);
text-align: right;
padding-right: 8px;
}
.plus-right {
width: 70%;
text-align: left;
}
.title {
font-size: 36rpx;
color: #8f8f94;
.plus-item button {
font-size: 0.8rem;
height: 2.0rem;
line-height: 2.0rem;
display: block;
background: #eee;
border-width: 0;
margin-top: 4px;
}
</style>
## 1.0.0(2021-12-16)
基于 html5-Plus的 sqlite 数据库方法封装
1. 封装了简单的增删改查方法
2. 使用ORM方式操作数据
3. 可以使用链式调用
4. 支持原生语法
/**
* 处理SQLite SQLite 是 APP 才有的内容 所以 需要同一套API 满足 setStorage 的API
* 方便多平台开发
* time:2021-12-16 16:30:00
* version:1.0.0
* by: onemue
*/
// 我们考虑在数据中存放一些例如:社区APP 存放一些帖子信息等等内容,实现断网信息保留等功能。
// 参考 mysql-ithm
// URL: https://github.com/kxzkane/mysql-ithm/blob/master/index.js
// CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
//数据库配置
let options = {};
let tableSQL = '';
let databaseName = '';
let isConnect = false;
class Model {
constructor(name, option, db) {
this.name = name;
this.option = option;
this.db = db;
let self = this;
self.isExist(function(e, r){
if (!r) {
self.create();
}
})
}
/**
* @description: 查询数据
* @param {} options:可选参数
* @param {Function} callback :(err,results)=>{}
*/
find(options, callback) {
var sql = '';
let self = this;
if (!callback) {
sql = `SELECT * FROM ${this.name}`;
callback = options;
} else if (options.constructor == Array) {
sql = `SELECT ${options.join()} FROM ${this.name}`;
} else {
sql = `SELECT * FROM ${this.name} WHERE ${options}`;
};
plus.sqlite.selectSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
})
return this;
}
/**
* @description: 分页查询
* @param {Object} options : { where:查询条件, number: 当前页数 , count : 每页数量 }
* @return:
*/
limit(options, callback) {
var sql = '';
let self = this;
if (!options.where) {
sql = `SELECT * FROM ${this.name} LIMIT ${options.count} OFFSET ${(options.number - 1) * options.count}`
} else {
sql =
`SELECT * FROM ${this.name} WHERE ${options.where} LIMIT ${options.count} OFFSET ${(options.number - 1) * options.count}`;
};
plus.sqlite.selectSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
})
return this;
}
/**
* @description: 插入数据
* @param {Object} obj:对象或者数组
* @param {Function} callback :(err,results)=>{}
*/
insert(obj, callback) {
let self = this;
if (!true) {
// todo
} else {
if (Array.isArray(obj)) {
for (var i = 0; i < obj.length; i++) {
this.insertObj(obj[i], callback)
}
} else {
this.insertObj(obj, callback)
}
}
return this;
}
insertObj(obj, callback) {
let keys = [];
let values = '';
let self = this;
for (var key in obj) {
keys.push(key);
values += `"${obj[key]}",`;
};
values = values.replace(/,$/, '');
let sql = `INSERT INTO ${this.name} (${keys.join()}) VALUES (${values})`;
console.log(sql);
plus.sqlite.executeSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
})
return this;
}
/**
* @description: 更新数据
* @param {Object} option:可选参数 更新条件 // TODO 更新条件
* @param {Object} obj: 修改后的数据
* @param {Function} callback :(err,results)=>{}
*/
update(option, obj, callback) {
let sql = '';
let self = this;
if (arguments.length == 2) {
callback = obj;
obj = option;
sql = `UPDATE ${this.name} SET `;
for (var key in obj) {
sql += `${key}='${obj[key]}', `;
};
sql = sql.replace(/(, )$/, '');
} else {
sql = `UPDATE ${this.name} SET `;
for (var key in obj) {
sql += `${key}='${obj[key]}', `;
};
sql = sql.replace(/(, )$/, '');
sql += ` WHERE ${option}`;
};
plus.sqlite.executeSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
})
return this;
}
/**
* @description: 删除数据
* @param {Object} option:可选参数 删除条件
* @param {Function} callback :(err,results)=>{}
*/
delete(option, callback) {
var sql = '';
let self = this;
if (!callback) {
sql = `DELETE FROM ${this.name}`;
callback = option;
} else {
sql = `DELETE FROM ${this.name} WHERE ${option}`;
};
plus.sqlite.executeSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
})
return this;
}
/**
* @description: 执行sql语句
* @param {String} sql : sql语句
* @param {Function} callback :(err,results)=>{}
*/
sql(sql, callback) {
let self = this;
plus.sqlite.selectSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
});
return this;
}
/**
* @description: 删除model表格 (慎用!)
* @param {type}
* @return:
*/
drop(callback) {
var sql = `DROP TABLE ${this.name}`;
let self = this;
plus.sqlite.selectSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
});
return this;
}
connect(callback) {
let sql = `SELETE count(*) AS isTable FROM sqlite_master WHERE type='table' AND name='${this.name}'`;
let self = this;
plus.sqlite.selectSql({
name: self.db,
sql: sql,
success(e) {
callback(null, e);
},
fail(e) {
callback(e);
}
});
return this;
}
isExist(callback) {
let self = this;
// return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: self.db,
sql: `select count(*) as isExist FROM sqlite_master where type='table' and name='${this.name}'`,
success(e) {
callback(null, e[0].isExist ? true : false)
},
fail(e) {
console.log(e)
callback(e)
// reject(e);
}
})
return this;
}
create(callback) {
let self = this;
this.tableSQL = usqlite.modelSql(self.name, self.option);
plus.sqlite.executeSql({
name: self.db,
sql: self.tableSQL,
success(e) {
callback(null, e);
},
fail(e) {
callback(e)
}
})
return this;
}
}
usqlite = {
/**
* @description:连接数据库
* @param {String} name: 数据库名称*
* @param {String} path: 数据库路径*
* @param {Function} callback :(err,results)=>{}
* @return:
*/
connect({
name = '',
path = ''
}, callback) {
options = {
name, // 数据库名称*
path, // 数据库路径*
};
plus.sqlite.openDatabase({
name: options.name, //数据库名称
path: options.path, //数据库地址
success(e) {
isConnect = true;
callback(null, e);
},
fail(e) {
callback(e);
}
})
},
/**
* @description:关闭数据库
* @param {Function} callback :(err,results)=>{}
* @return:
*/
close(callback) {
plus.sqlite.closeDatabase({
name: options.name, //数据库名称
path: options.path, //数据库地址
success(e) {
isConnect = false;
callback(null, e);
},
fail(e) {
callback(e);
}
});
},
/**
* @description:创建model (表格模型对象)
* @param {String} name:表格名称
* @param {Object} options:表格数据结构
* @return: Model对象:负责数据库增删改查
*/
model(name, option) {
return new Model(name, option, options.name);
},
/**
* @description 生成创建model的modelSql
* @param {Object} name
* @param {Object} option
*/
modelSql(name, option) {
let str = '`usql_id` integer PRIMARY KEY,'; // usql_id 为自增主键
for (var key in option) {
if (option[key] == Number) {
str += `'${key}' numeric,`;
} else if (option[key] == Date) {
str += `'${key}' timestamp,`;
} else {
str += `'${key}' varchar,`;
}
};
str = str.replace(/,$/, '');
return `CREATE TABLE '${name}' (${str})`;
}
}
export var usqlite;
{
"id": "onemue-USQLite",
"displayName": "onemue-USQLite",
"version": "1.0.0",
"description": "基于ORM技术,使用对象的方式来操作sqlite数据库,而无需编写任何sql语句.",
"keywords": [
"USQLite,数据库操作"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"category": [
"JS SDK",
"通用 SDK"
],
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "sqlite"
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"Vue": {
"vue2": "y",
"vue3": "u"
},
"App": {
"app-vue": "y",
"app-nvue": "n"
},
"H5-mobile": {
"Safari": "n",
"Android Browser": "n",
"微信浏览器(Android)": "n",
"QQ浏览器(Android)": "n"
},
"H5-pc": {
"Chrome": "n",
"IE": "n",
"Edge": "n",
"Firefox": "n",
"Safari": "n"
},
"小程序": {
"微信": "n",
"阿里": "n",
"百度": "n",
"字节跳动": "n",
"QQ": "n"
},
"快应用": {
"华为": "n",
"联盟": "n"
}
}
}
}
}
\ No newline at end of file
# onemue-USQLite
**文档有所欠缺,会尽快处理更新**
**后续会对其他平台进行兼容,尽管其他平台可能没有sqlite,仍然会兼容当前api存储在其他地方**
### 技术亮点
1. 基于ORM技术,使用对象的方式来操作sqlite数据库,而无需编写任何sql语句
2. 支持数据库的常规操作增删改查,API极为简洁,且高效智能。
3. 支持条件查询 与 分页查询
4. 支持原生sql语句,如果我们的框架无法满足您的需求,我们也提供了特殊的API可以直接使用sql语句来操作
5. 支持链式语法
### 使用方法
#### 挂载方法
```js
// main.js
import { usqlite } from '@/uni_modules/onemue-USQLite/js_sdk/usqlite.js'
uni.$sql = usqlite;
```
#### 链接数据库
```js
//如果数据库存在则连接,不存在则会自动创建数据库
uni.$sql.connect({
name: 'local',// 数据库名称
path:'_doc/local.db', // 路径
});
```
#### 创建Model模型
```js
//3.创建Model(表格模型:负责增删改查)
//如果table表格存在则连接,不存在则自动创建
let studentModel = uni.$sql.model('student',{
name:String,
age:Number
});
```
#### 调用 API 执行操作
```js
//4.调用API:添加数据
studentModel.insert({name:'张三10',age:30},(err,results)=>{
console.log(err);
console.log(results);
if(!err) console.log('增加成功');
});
```
### API 文档
#### 1.1 增加操作
```js
studentModel.insert({name:'张三10',age:30},(err,results)=>{
console.log(err);
console.log(results);
if(!err) console.log('增加成功');
});
```
**批量增加**
```js
var arr = [];
for (var i = 1; i <= 10; i++) {
arr.push({ name: '张三', age: 30 })
}
studentModel.insert(arr, (err, results) => {
console.log(err);
console.log(results);
if (!err) console.log('增加成功');
});
```
#### 1.2-查询操作
**1-查询所有数据**
```js
//2.1 查询所有数据
studentModel.find((err,results)=>{
console.log(results);
});
```
**2-查询数据库指定字段数据**
```js
//2.2 根据数据库字段查询部分数据
// ['name'] : 将要查询的字段放入数组中
studentModel.find(['name'],(err,results)=>{
console.log(results);
});
```
**3-条件查询**
```js
//2.3 根据条件查询数据
// 'id=1' : 查询id为1的数据 (查询条件可以参考sql语句)
//例如 'age>10' : 查询age超过10的数据
//例如 'name>"张三"' : 查询名字为张三的数据,注意字符串添加引号
studentModel.find('id>21',(err,results)=>{
console.log(results);
});
```
**4-分页查询**
```js
//2.4 分页查询
// 第一个参数options对象有三个属性 {where:分页查询条件(可选), number:页数 , count:每页数量}
studentModel.limit({where:'age>28',number:1,count:10},(err,results)=>{
console.log(results);
});
```
#### 1.3-修改操作
**1-修改所有数据**
```js
//3.1 将数据库中所有的name字段值:修改为李四
studentModel.update({name:'李四'},(err,results)=>{
console.log(results);
});
```
**2-条件修改**
```js
//3.2 将数据库中 id = 1 的数据,age修改为30
studentModel.update('id=1',{age:30},(err,results)=>{
console.log(results);
});
//3.3 将数据库中所有 age < 20 的数据,name修改为王五
studentModel.update('age<20',{name:'王五'},(err,results)=>{
console.log(results);
});
```
#### 1.4-删除操作
```js
//4.1 删除所有 age>30 的数据
studentModel.delete('age>20',(err,results)=>{
console.log(results);
});
//4.2 清空表中所有数据
studentModel.delete((err,results)=>{
console.log(results);
});
```
#### 1.5-执行自定义SQL语句
```js
studentModel.sql('insert into student(name,age) values("andy",20)',(err,results)=>{
console.log(results);
});
```
#### 1.5-删除表格(慎用)
```js
studentModel.drop((err,results)=>{
console.log(results);
});
```
#### 1.6-创建表格(慎用)
```js
studentModel.create((err,results)=>{
console.log(results);
});
```
#### 1.7-数据库是否存在Model对应的数据表(慎用)
```js
studentModel.isExist((err,results)=>{
console.log(results);
});
```
#### 1.7-链式语法支持
```js
studentModel.insert({name:'张三22',age:22},(err,results)=>{
console.log(err);
console.log(results);
})
.find('name="张三22"',(err,results)=>{
console.log(err);
console.log(results);
});
```
\ No newline at end of file
<template>
<view class="pages">
<view class="tools">
{{isConnect?'已连接':'未连接'}}
{{consoleText}}
</view>
<view class="tab-list-visual">
<view class="tab-list" >
<view class="tab-item" :class="thisTableIndex==tableIndex?'this':''" v-for="tableItem,tableIndex in tableList" :key="tableIndex" @click="changeTable(tableIndex, tableItem.name)">
{{tableItem.name}}
</view>
</view>
</view>
<view class="table-content-visual">
<table class="table-content">
<td class="header" v-for="(cols,cIndex) in currentTableData[0]" :key="'cols-header-'+cIndex" @tap="tdTap(rIndex, cIndex, cols)">
<view class="">
{{cIndex=='usql_id'?'':cIndex}}
</view>
</td>
<tr v-for="(row,rIndex) in currentTableData" :key="'rows-'+rIndex">
<td :class="cIndex=='usql_id'?'id':'content'" v-for="(cols,cIndex) in row" :key="'cols-'+rIndex+'-'+cIndex" @tap="tdTap(rIndex, cIndex, cols)">
<view class="data">
<view :class="(rIndex==thisrIndex&&cIndex==thiscIndex&&cIndex!='usql_id')?'hied':'show'">
{{cols}}
</view>
<input :class="(rIndex==thisrIndex&&cIndex==thiscIndex&&cIndex!='usql_id')?'show':'hied'" type="text" v-model="thisValue" @blur="changeValue(rIndex, cIndex, thisValue)">
</view>
</td>
</tr>
</table>
</view>
</view>
</template>
<script>
import { usqlite } from '@/uni_modules/onemue-USQLite/js_sdk/usqlite.js'
export default {
data() {
return {
isConnect: false,
consoleText: '',
tableList: [],
thisTableIndex: 0,
thisTableName: '',
thisSqlModel: null,
thisrIndex: null,
thiscIndex: null,
thisValue: null,
currentTableData: [],
}
},
onShow() {
let self = this;
self.consoleText = usqlite;
usqlite.connect(this.dbOptions, function(e, r){
if(e){
if(e.code == -1402){
self.isConnect = true;
self.getTable();
}else{
console.log('this is error');
console.log(e);
self.consoleText = e;
}
return;
}
self.getTable();
self.isConnect = true;
console.log('链接成功');
})
},
methods:{
tdTap(rows, cols, content){
console.log(rows, cols, content);
this.thiscIndex = cols;
this.thisrIndex = rows;
this.thisValue = content;
},
changeTable(index, name){
this.thisTableIndex = index;
this.thisTableName = name;
this.getTableData();
},
changeValue(rows, cols, content){
this.thiscIndex = null;
this.thisrIndex = null;
this.thisValue = null;
let option = {};
if(this.currentTableData[rows][cols]==content){
console.log('no change');
return;
}
let options = this.currentTableData[rows];
let str = '';
let self = this;
for(var key in options){
str += `${key} = '${options[key]}' AND `
}
str = str.replace(/AND $/, '');
option[cols] = content;
this.thisSqlModel.update(str, option, function(e, r){
if(e){
return;
}
self.getTableData();
});
},
getTable(){
let self = this;
plus.sqlite.selectSql({
name: this.dbOptions.name,
sql: "select * FROM sqlite_master where type='table'",
success(e) {
self.tableList = e;
if(!self.thisTableName){
self.thisTableName = e[self.thisTableIndex].name;
self.getTableData();
}
console.log(e);
},
fail(e) {
console.log(e)
}
})
},
getTableData(){
let self = this;
let thisTableName = self.thisTableName;
console.log(self.thisTableName);
let thisSqlModel = usqlite.model(thisTableName)
this.thisSqlModel = thisSqlModel;
this.thisSqlModel.find(function(err, r) {
if (err) {
console.log(err);
return;
}
self.currentTableData = r;
})
}
}
}
</script>
<style scoped>
.tools{
position: sticky;
top: 0;
line-height: 2em;
height: 2em;
background: #FFFFFF;
}
.tab-list-visual{
position: sticky;
top: 2em;
line-height: 2em;
height: 2em;
background: #FFFFFF;
}
.tab-list-visual{
overflow: auto;
border: #333333 1px solid;
border-width: 1px 0 1px 0;
}
.tab-list{
display: flex;
}
.tab-list .tab-item{
padding: 0 4px;
line-height: 2em;
border-right: #eee 1px solid;
white-space: nowrap;
}
.tab-list .tab-item:last-child{
border-right: #eee 1px none;
}
.tab-list .tab-item.this{
background: #eee;
}
.table-content-visual{
overflow: auto;
}
.table-content {border-collapse:collapse;}
.table-content td.content,
.table-content td.header{
padding: 2px;
border: #eee 1px solid;
margin: 0;
white-space: nowrap;
}
.table-content td.content:hover{
background: #eee;
}
.data .show{
display: block;
}
.data .hied{
display: none;
}
</style>
{
"id": "onemue-usqlite-console",
"displayName": "onemue-usqlite-console",
"version": "1.0.0",
"description": "onemue-usqlite-console",
"keywords": [
"onemue-usqlite-console"
],
"repository": "",
"engines": {
"HBuilderX": "^3.1.0"
},
"dcloudext": {
"category": [
"前端组件",
"通用组件",
"sqlite"
],
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "",
"data": "",
"permissions": ""
},
"npmurl": ""
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "u",
"aliyun": "u"
},
"client": {
"Vue": {
"vue2": "u",
"vue3": "u"
},
"App": {
"app-vue": "u",
"app-nvue": "u"
},
"H5-mobile": {
"Safari": "u",
"Android Browser": "u",
"微信浏览器(Android)": "u",
"QQ浏览器(Android)": "u"
},
"H5-pc": {
"Chrome": "u",
"IE": "u",
"Edge": "u",
"Firefox": "u",
"Safari": "u"
},
"小程序": {
"微信": "u",
"阿里": "u",
"百度": "u",
"字节跳动": "u",
"QQ": "u"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}
\ No newline at end of file
# onemue-usqlite-console
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
因为 它太大了无法显示 source diff 。你可以改为 查看blob
此差异已折叠。
!function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=43)}([function(e,t){e.exports={}},function(e,t,n){"use strict";function a(e,t,n,a,o,r,i,s,c,u){var l,f="function"==typeof e?e.options:e;if(c){f.components||(f.components={});var d=Object.prototype.hasOwnProperty;for(var p in c)d.call(c,p)&&!d.call(f.components,p)&&(f.components[p]=c[p])}if(u&&((u.beforeCreate||(u.beforeCreate=[])).unshift((function(){this[u.__module]=this})),(f.mixins||(f.mixins=[])).push(u)),t&&(f.render=t,f.staticRenderFns=n,f._compiled=!0),a&&(f.functional=!0),r&&(f._scopeId="data-v-"+r),i?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},f._ssrRegister=l):o&&(l=s?function(){o.call(this,this.$root.$options.shadowRoot)}:o),l)if(f.functional){f._injectStyles=l;var g=f.render;f.render=function(e,t){return l.call(t),g(e,t)}}else{var h=f.beforeCreate;f.beforeCreate=h?[].concat(h,l):[l]}return{exports:e,options:f}}n.d(t,"a",(function(){return a}))},function(e,t,n){"use strict";var a;Object.defineProperty(t,"__esModule",{value:!0}),t.weexPlus=t.default=void 0,a="function"==typeof getUni?getUni:function(){var e=function(e){return"function"==typeof e},t=function(e){return e.then((function(e){return[null,e]})).catch((function(e){return[e]}))},n=/^\$|^on|^create|Sync$|Manager$|^pause/,a=["os","getCurrentSubNVue","getSubNVueById","stopRecord","stopVoice","stopBackgroundAudio","stopPullDownRefresh","hideKeyboard","hideToast","hideLoading","showNavigationBarLoading","hideNavigationBarLoading","canIUse","navigateBack","closeSocket","pageScrollTo","drawCanvas"],r=function(e){return(!n.test(e)||"createBLEConnection"===e)&&!~a.indexOf(e)},i=function(n){return function(){for(var a=arguments.length,o=Array(a>1?a-1:0),r=1;r<a;r++)o[r-1]=arguments[r];var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(i.success)||e(i.fail)||e(i.complete)?n.apply(void 0,[i].concat(o)):t(new Promise((function(e,t){n.apply(void 0,[Object.assign({},i,{success:e,fail:t})].concat(o)),Promise.prototype.finally=function(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){throw n}))}))}})))}},s=[],c=void 0;function u(e){s.forEach((function(t){return t({origin:c,data:e})}))}var l=o.webview.currentWebview().id,f=new BroadcastChannel("UNI-APP-SUBNVUE");function d(e){var t=o.webview.getWebviewById(e);return t&&!t.$processed&&function(e){e.$processed=!0;var t=o.webview.currentWebview().id===e.id,n="uniNView"===e.__uniapp_origin_type&&e.__uniapp_origin_id,a=e.id;if(e.postMessage=function(e){n?f.postMessage({data:e,to:t?n:a}):_({type:"UniAppSubNVue",data:e})},e.onMessage=function(e){s.push(e)},e.__uniapp_mask_id){c=e.__uniapp_host;var r=e.__uniapp_mask,i=o.webview.getWebviewById(e.__uniapp_mask_id);i=i.parent()||i;var u=e.show,l=e.hide,d=e.close,p=function(){i.setStyle({mask:r})},g=function(){i.setStyle({mask:"none"})};e.show=function(){p();for(var t=arguments.length,n=Array(t),a=0;a<t;a++)n[a]=arguments[a];return u.apply(e,n)},e.hide=function(){g();for(var t=arguments.length,n=Array(t),a=0;a<t;a++)n[a]=arguments[a];return l.apply(e,n)},e.close=function(){g();for(var t=arguments.length,n=Array(t),a=0;a<t;a++)n[a]=arguments[a];return d.apply(e,n)}}}(t),t}f.onmessage=function(e){e.data.to===l&&u(e.data.data)};var p=weex.requireModule("plus"),g=weex.requireModule("globalEvent"),h=0,v={};g.addEventListener("plusMessage",(function(e){"UniAppJsApi"===e.data.type?y(e.data.id,e.data.data):"UniAppSubNVue"===e.data.type?u(e.data.data,e.data.options):"onNavigationBarButtonTap"===e.data.type?"function"==typeof b&&b(e.data.data):"onNavigationBarSearchInputChanged"===e.data.type?"function"==typeof S&&S(e.data.data):"onNavigationBarSearchInputConfirmed"===e.data.type?"function"==typeof C&&C(e.data.data):"onNavigationBarSearchInputClicked"===e.data.type&&"function"==typeof w&&w(e.data.data)}));var y=function(e,t){var n=v[e];n?(n(t),n.keepAlive||delete v[e]):console.error("callback["+e+"] is undefined")},m=function(t){var n,a,o=t.id,r=t.type,i=t.params;v[o]=(a=function(t){e(n)?n(t):n&&(~t.errMsg.indexOf(":ok")?e(n.success)&&n.success(t):~t.errMsg.indexOf(":fail")&&e(n.fail)&&n.fail(t),e(n.complete)&&n.complete(t))},(e(n=i)||n&&e(n.callback))&&(a.keepAlive=!0),a),p.postMessage({id:o,type:r,params:i},"__uniapp__service")};function _(e){p.postMessage(e,"__uniapp__service")}var A=function(e){return function(t){m({id:h++,type:e,params:t})}},b=void 0,S=void 0,C=void 0,w=void 0;function E(e){b=e}function M(e){S=e}function k(e){C=e}function O(e){w=e}function B(e){return weex.requireModule(e)}var I=weex.requireModule("dom"),P=weex.requireModule("globalEvent"),T=[];function D(e){"function"==typeof e&&(this.isUniAppReady?e():T.push(e))}P.addEventListener("plusMessage",(function(e){"UniAppReady"===e.data.type&&(D.isUniAppReady=!0,T.length&&(T.forEach((function(e){return e()})),T=[]))}));var N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x=weex.requireModule("stream"),U=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/x-www-form-urlencoded";return"object"===(void 0===e?"undefined":N(e))?"POST"===t.toUpperCase()&&"application/json"===n.toLowerCase()?JSON.stringify(e):Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&"):e},R=weex.requireModule("plusstorage"),V=weex.requireModule("clipboard"),F=function(){if("function"==typeof getUniEmitter)return getUniEmitter;var e={$on:function(){console.warn("uni.$on failed")},$off:function(){console.warn("uni.$off failed")},$once:function(){console.warn("uni.$once failed")},$emit:function(){console.warn("uni.$emit failed")}};return function(){return e}}();function L(e,t,n){return e[t].apply(e,n)}var j=Object.freeze({loadFontFace:function(t){var n=t.family,a=t.source,o=(t.desc,t.success),r=(t.fail,t.complete);I.addRule("fontFace",{fontFamily:n,src:a.replace(/"/g,"'")});var i={errMsg:"loadFontFace:ok",status:"loaded"};e(o)&&o(i),e(r)&&r(i)},ready:D,request:function(t){var n=t.url,a=t.data,o=t.header,r=t.method,i=void 0===r?"GET":r,s=t.dataType,c=void 0===s?"json":s,u=(t.responseType,t.success),l=t.fail,f=t.complete,d=!1,p=!1,g={};if(o)for(var h in o)p||"content-type"!==h.toLowerCase()?g[h]=o[h]:(p=!0,g["Content-Type"]=o[h]);return"GET"===i&&a&&(n=n+(~n.indexOf("?")?"&"===n.substr(-1)||"?"===n.substr(-1)?"":"&":"?")+U(a)),x.fetch({url:n,method:i,headers:g,type:"json"===c?"json":"text",body:"GET"!==i?U(a,i,g["Content-Type"]):""},(function(t){var n=t.status,a=(t.ok,t.statusText,t.data),o=t.headers,r={};!n||-1===n||d?(r.errMsg="request:fail",e(l)&&l(r)):(r.data=a,r.statusCode=n,r.header=o,e(u)&&u(r)),e(f)&&f(r)})),{abort:function(){d=!0}}},getStorage:function(t){var n=t.key,a=(t.data,t.success),o=t.fail,r=t.complete;R.getItem(n+"__TYPE",(function(t){if("success"===t.result){var i=t.data;R.getItem(n,(function(t){if("success"===t.result){var n=t.data;i&&n?("String"!==i&&(n=JSON.parse(n)),e(a)&&a({errMsg:"getStorage:ok",data:n})):(t.errMsg="setStorage:fail",e(o)&&o(t))}else t.errMsg="setStorage:fail",e(o)&&o(t);e(r)&&r(t)}))}else t.errMsg="setStorage:fail",e(o)&&o(t),e(r)&&r(t)}))},setStorage:function(t){var n=t.key,a=t.data,o=t.success,r=t.fail,i=t.complete,s="String";"object"===(void 0===a?"undefined":N(a))&&(s="Object",a=JSON.stringify(a)),R.setItem(n,a,(function(t){"success"===t.result?R.setItem(n+"__TYPE",s,(function(t){"success"===t.result?e(o)&&o({errMsg:"setStorage:ok"}):(t.errMsg="setStorage:fail",e(r)&&r(t))})):(t.errMsg="setStorage:fail",e(r)&&r(t)),e(i)&&i(t)}))},removeStorage:function(t){var n=t.key,a=(t.data,t.success),o=t.fail,r=t.complete;R.removeItem(n,(function(t){"success"===t.result?e(a)&&a({errMsg:"removeStorage:ok"}):(t.errMsg="removeStorage:fail",e(o)&&o(t)),e(r)&&r(t)})),R.removeItem(n+"__TYPE")},clearStorage:function(e){e.key,e.data,e.success,e.fail,e.complete},getClipboardData:function(t){var n=t.success,a=(t.fail,t.complete);V.getString((function(t){var o={errMsg:"getClipboardData:ok",data:t.data};e(n)&&n(o),e(a)&&a(o)}))},setClipboardData:function(t){var n=t.data,a=t.success,o=(t.fail,t.complete),r={errMsg:"setClipboardData:ok"};V.setString(n),e(a)&&a(r),e(o)&&o(r)},onSubNVueMessage:u,getSubNVueById:d,getCurrentSubNVue:function(){return d(o.webview.currentWebview().id)},$on:function(){return L(F(),"$on",[].concat(Array.prototype.slice.call(arguments)))},$off:function(){return L(F(),"$off",[].concat(Array.prototype.slice.call(arguments)))},$once:function(){return L(F(),"$once",[].concat(Array.prototype.slice.call(arguments)))},$emit:function(){return L(F(),"$emit",[].concat(Array.prototype.slice.call(arguments)))}}),$={os:{nvue:!0}},J={};return"undefined"!=typeof Proxy?J=new Proxy({},{get:function(e,t){if("os"===t)return{nvue:!0};if("postMessage"===t)return _;if("requireNativePlugin"===t)return B;if("onNavigationBarButtonTap"===t)return E;if("onNavigationBarSearchInputChanged"===t)return M;if("onNavigationBarSearchInputConfirmed"===t)return k;if("onNavigationBarSearchInputClicked"===t)return O;var n=j[t];return n||(n=A(t)),r(t)?i(n):n}}):(Object.keys($).forEach((function(e){J[e]=$[e]})),J.postMessage=_,J.requireNativePlugin=B,J.onNavigationBarButtonTap=E,J.onNavigationBarSearchInputChanged=M,J.onNavigationBarSearchInputConfirmed=k,J.onNavigationBarSearchInputClicked=O,Object.keys({uploadFile:!0,downloadFile:!0,chooseImage:!0,previewImage:!0,getImageInfo:!0,saveImageToPhotosAlbum:!0,chooseVideo:!0,saveVideoToPhotosAlbum:!0,saveFile:!0,getSavedFileList:!0,getSavedFileInfo:!0,removeSavedFile:!0,openDocument:!0,setStorage:!0,getStorage:!0,getStorageInfo:!0,removeStorage:!0,clearStorage:!0,getLocation:!0,chooseLocation:!0,openLocation:!0,getSystemInfo:!0,getNetworkType:!0,makePhoneCall:!0,scanCode:!0,setScreenBrightness:!0,getScreenBrightness:!0,setKeepScreenOn:!0,vibrateLong:!0,vibrateShort:!0,addPhoneContact:!0,showToast:!0,showLoading:!0,hideToast:!0,hideLoading:!0,showModal:!0,showActionSheet:!0,setNavigationBarTitle:!0,setNavigationBarColor:!0,navigateTo:!0,redirectTo:!0,reLaunch:!0,switchTab:!0,navigateBack:!0,getProvider:!0,login:!0,getUserInfo:!0,share:!0,requestPayment:!0,subscribePush:!0,unsubscribePush:!0,onPush:!0,offPush:!0}).forEach((function(e){var t=j[e];t||(t=A(e)),r(e)?J[e]=i(t):J[e]=t}))),J};var o=new WeexPlus(weex);t.weexPlus=o;var r=a(weex,o,BroadcastChannel);t.default=r},function(e,t,n){Vue.prototype.__$appStyle__={},Vue.prototype.__merge_style&&Vue.prototype.__merge_style(n(4).default,Vue.prototype.__$appStyle__)},function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);t.default=o.a},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={onLoad:function(){this.initMessage()},methods:{initMessage:function(){var t=this,n=e.webview.currentWebview().extras||{},a=n.from,o=(n.callback,n.runtime),r=n.data,i=void 0===r?{}:r,s=n.useGlobalEvent;this.__from=a,this.__runtime=o,this.__page=e.webview.currentWebview().id,this.__useGlobalEvent=s,this.data=JSON.parse(JSON.stringify(i)),e.key.addEventListener("backbutton",(function(){"function"==typeof t.onClose?t.onClose():e.webview.currentWebview().close("auto")}));var c=this,u=function(e){var t=e.data&&e.data.__message;t&&c.__onMessageCallback&&c.__onMessageCallback(t.data)};this.__useGlobalEvent?weex.requireModule("globalEvent").addEventListener("plusMessage",u):new BroadcastChannel(this.__page).onmessage=u},postMessage:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=JSON.parse(JSON.stringify({__message:{__page:this.__page,data:t,keep:n}})),o=this.__from;if("v8"===this.__runtime)if(this.__useGlobalEvent)e.webview.postMessageToUniNView(a,o);else{var r=new BroadcastChannel(o);r.postMessage(a)}else{var i=e.webview.getWebviewById(o);i&&i.evalJS("__plusMessage&&__plusMessage(".concat(JSON.stringify({data:a}),")"))}},onMessage:function(e){this.__onMessageCallback=e}}};t.default=n}).call(this,n(2).weexPlus)},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={data:function(){return{locale:"en",fallbackLocale:"en",localization:{en:{done:"OK",cancel:"Cancel"},zh:{done:"完成",cancel:"取消"},"zh-hans":{},"zh-hant":{},messages:{}}}},onLoad:function(){this.initLocale()},created:function(){this.initLocale()},methods:{initLocale:function(){if(!this.__initLocale){this.__initLocale=!0;var t=(e.webview.currentWebview().extras||{}).data||{};if(t.messages&&(this.localization.messages=t.messages),t.locale)this.locale=t.locale.toLowerCase();else{var n=e.os.language.toLowerCase().split("/")[0].replace("_","-").split("-"),a=n[1];a&&(n[1]={chs:"hans",cn:"hans",sg:"hans",cht:"hant",tw:"hant",hk:"hant",mo:"hant"}[a]||a),n.length=n.length>2?2:n.length,this.locale=n.join("-")}}},localize:function(e){var t=this.locale,n=t.split("-")[0],a=this.fallbackLocale,o=this.localization;function r(e){return o[e]||{}}return r("messages")[e]||r(t)[e]||r(n)[e]||r(a)[e]||e}}};t.default=n}).call(this,n(2).weexPlus)},,,function(e,t,n){"use strict";var a=n(33),o=n(18),r=n(1);var i=Object(r.a)(o.default,a.b,a.c,!1,null,null,"6af04a36",!1,a.a,void 0);(function(e){this.options.style||(this.options.style={}),Vue.prototype.__merge_style&&Vue.prototype.__$appStyle__&&Vue.prototype.__merge_style(Vue.prototype.__$appStyle__,this.options.style),Vue.prototype.__merge_style?Vue.prototype.__merge_style(n(38).default,this.options.style):Object.assign(this.options.style,n(38).default)}).call(i),t.default=i.exports},,,,,,,,,function(e,t,n){"use strict";var a=n(19),o=n.n(a);t.default=o.a},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,o=i(n(5)),r=i(n(6));function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=e.barcode,u={qrCode:[c.QR,c.AZTEC,c.MAXICODE],barCode:[c.EAN13,c.EAN8,c.UPCA,c.UPCE,c.CODABAR,c.CODE128,c.CODE39,c.CODE93,c.ITF,c.RSS14,c.RSSEXPANDED],datamatrix:[c.DATAMATRIX],pdf417:[c.PDF417]},l=(s(a={},c.QR,"QR_CODE"),s(a,c.EAN13,"EAN_13"),s(a,c.EAN8,"EAN_8"),s(a,c.DATAMATRIX,"DATA_MATRIX"),s(a,c.UPCA,"UPC_A"),s(a,c.UPCE,"UPC_E"),s(a,c.CODABAR,"CODABAR"),s(a,c.CODE39,"CODE_39"),s(a,c.CODE93,"CODE_93"),s(a,c.CODE128,"CODE_128"),s(a,c.ITF,"CODE_25"),s(a,c.PDF417,"PDF_417"),s(a,c.AZTEC,"AZTEC"),s(a,c.RSS14,"RSS_14"),s(a,c.RSSEXPANDED,"RSSEXPANDED"),a),f={mixins:[o.default,r.default],data:{filters:[0,2,1],backgroud:"#000000",frameColor:"#118ce9",scanbarColor:"#118ce9",enabledFlash:!1,flashImage0:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABjklEQVRoQ+1ZbVHEQAx9TwE4ABTcOQAknANQAKcAUAAOAAXgAHAACsDCKQiTmbYDzJZtNt2bFrJ/m6+Xl2yyU2LmhzOPH/8PgIjcADirxNyapNoffMwMiMgzgMPBHmyCLySPLCoBwJKtAbJbYaBmD1yRvBwAtBMxl5DF+DZkiwCIyBLAzsgBbki+Wm2WAlCaL6zOMvKnJO+sNksB7ALQbO1ZHfbIv5FUVs2nCIB6EZETALdmj2mFY5I6X8ynGEADQllYmL1+VzBfnV/VvQB0aj45ARyQ/Ci14QLQsOBZLe5JaikWnzEA7AN4L4hgA2Dpyb76dANwsOCq/TZhASAYKGie0a7R1lDPI0ebtF0NUi+4yfdAtxr3PEMnD6BbD0QkNfACQO05EAwMuaBqDrIVycdmTpwDuP4R0OR7QFftVRP0g+49cwOQq4DJMxAAchmofY3m/EcJBQOZbTRKKJeBKKEoIePvpFRJ1VzmciUccyCa+C81cerBkuuB7sGTE/zt+yhN7AnAqxsAvBn06n8CkyPwMZKwm+UAAAAASUVORK5CYII=",flashImage1:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAMFBMVEUAAAA3kvI3lfY2k/VAl+43k/U3k/Q4k/M3kvI3k/M4k/Q4lPU2lPU2k/Vdq843k/WWSpNKAAAAD3RSTlMAwD+QINCAcPBgUDDgoBAE044kAAAAdklEQVQ4y2OgOrD/DwffUSTkERIfyZXAtOMbca7iVoKDDSgSbAijJqBI8J2HiX9FM2s+TOITmgQrTEIATYIJJuEA5mJ68S+Gg/0hEi0YEoxQK2gs0WyPQyKBGYeEAhPtJRaw45AIccXpwVEJekuwQyQWMFAfAACeDBJY9aXa3QAAAABJRU5ErkJggg==",autoDecodeCharSet:!1,localization:{en:{fail:"Recognition failure","flash.on":"Tap to turn light on","flash.off":"Tap to turn light off"},zh:{fail:"识别失败","flash.on":"轻触照亮","flash.off":"轻触关闭"}}},onLoad:function(){var e=this,t=this.data,n=t.scanType;this.autoDecodeCharSet=t.autoDecodeCharSet;var a=[];Array.isArray(n)&&n.length&&n.forEach((function(e){var t=u[e];t&&(a=a.concat(t))})),a.length||(a=a.concat(u.qrCode).concat(u.barCode).concat(u.datamatrix).concat(u.pdf417)),this.filters=a,this.onMessage((function(t){e.gallery()}))},onUnload:function(){this.cancel()},methods:{start:function(){this.$refs.barcode.start({conserve:!0,filename:"_doc/barcode/"})},scan:function(t){var n=this;c.scan(t,(function(e,t,a,o){n.scanSuccess(e,t,a,o)}),(function(){e.nativeUI.toast(n.localize("fail"))}),this.filters,this.autoDecodeCharSet)},cancel:function(){this.$refs.barcode.cancel()},gallery:function(){var t=this;e.gallery.pick((function(e){t.scan(e)}),(function(n){n.code!==("android"===weex.config.env.platform.toLowerCase()?12:-2)&&e.nativeUI.toast(t.localize("fail"))}),{multiple:!1,system:!1,filename:"_doc/uniapp_temp/gallery/",permissionAlert:!0})},onmarked:function(e){var t=e.detail;this.scanSuccess(t.code,t.message,t.file,t.charSet)},scanSuccess:function(e,t,n,a){this.postMessage({event:"marked",detail:{scanType:l[e],result:t,charSet:a||"utf8",path:n||""}})},onerror:function(e){this.postMessage({event:"fail",message:JSON.stringify(e)})},setFlash:function(){this.enabledFlash=!this.enabledFlash,this.$refs.barcode.setFlash(this.enabledFlash)}}};t.default=f}).call(this,n(2).weexPlus)},function(e,t){e.exports={content:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"#000000"},barcode:{position:"absolute",left:0,top:0,right:0,bottom:0,zIndex:1},"set-flash":{alignItems:"center",justifyContent:"center",transform:"translateY(80px)",zIndex:2},"image-flash":{width:"26",height:"26",marginBottom:"2"},"image-flash-text":{fontSize:"10",color:"#FFFFFF"}}},,,,,,,,,,,,,function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("scroll-view",{staticStyle:{flexDirection:"column"},attrs:{scrollY:!0,enableBackToTop:!0,bubble:"true"}},[n("view",{staticClass:["content"]},[n("barcode",{ref:"barcode",staticClass:["barcode"],attrs:{autostart:"true",backgroud:e.backgroud,frameColor:e.frameColor,scanbarColor:e.scanbarColor,filters:e.filters,autoDecodeCharset:e.autoDecodeCharSet},on:{marked:e.onmarked,error:e.onerror}}),n("view",{staticClass:["set-flash"],on:{click:e.setFlash}},[n("u-image",{staticClass:["image-flash"],attrs:{src:e.enabledFlash?e.flashImage1:e.flashImage0,resize:"stretch"}}),n("u-text",{staticClass:["image-flash-text"]},[e._v(e._s(e.enabledFlash?e.localize("flash.off"):e.localize("flash.on")))])],1)],1)])},o=[];n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){}))},,,,,function(e,t,n){"use strict";n.r(t);var a=n(20),o=n.n(a);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);t.default=o.a},,,,,function(e,t,n){"use strict";n.r(t);n(3);var a=n(9);a.default.mpType="page",a.default.route="template/__uniappscan",a.default.el="#root",new Vue(a.default)}]);
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["uni_modules/onemue-usqlite-console/components/onemue-usqlite-console/onemue-usqlite-console","pages/index/index"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"USQLite","compilerVersion":"3.2.16","entryPagePath":"uni_modules/onemue-usqlite-console/components/onemue-usqlite-console/onemue-usqlite-console","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/uni_modules/onemue-usqlite-console/components/onemue-usqlite-console/onemue-usqlite-console","meta":{"isQuit":true},"window":{"navigationBarTitleText":"uSQLite-console"}},{"path":"/pages/index/index","meta":{},"window":{"navigationBarTitleText":"uSQLite"}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "app-config": 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // run deferred modules from other chunks
/******/ checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ([]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__DA7BC2C","name":"USQLite","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"SQLite":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.2.16","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册