数据库

dev2
wangchen 2023-07-26 14:31:09 +08:00
commit 8c2dc6500d
9 changed files with 956 additions and 251 deletions

290
common/sqlite.js 100644
View File

@ -0,0 +1,290 @@
module.exports = {
dbName: 'dianji_chat',
dbPath: '_doc/dianji_chat.db',
dbTable: 'dianji_chat',
dbIsOpen: false,
sqlData: [],
executeSqlCeshi(sql) {
return new Promise((resolve, reject) => {
// 打开数据库
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success: function(e) {
resolve(e); // 成功回调
},
fail: function(e) {
console.log('selectSql failed: ' + JSON.stringify(e));
}
});
})
},
// 判断数据库是否打开
isOpen() {
// 数据库打开了就返回 true,否则返回 false
var open = plus.sqlite.isOpenDatabase({
name: this.dbName, // 数据库名称
path: this.dbPath // 数据库地址
})
return open;
},
// 创建数据库 或 有该数据库就打开
openSqlite() {
return new Promise((resolve, reject) => {
// 打开数据库
plus.sqlite.openDatabase({
name: this.dbName,
path: this.dbPath,
success(e) {
resolve(e); // 成功回调
},
fail(e) {
reject(e); // 失败回调
}
})
})
},
// 关闭数据库
closeSqlite() {
return new Promise((resolve, reject) => {
plus.sqlite.closeDatabase({
name: this.dbName,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库建表 sql:'CREATE TABLE IF NOT EXISTS dbTable("id" varchar(50),"name" TEXT)
// 创建 CREATE TABLE IF NOT EXISTS 、 dbTable 是表名,不能用数字开头、括号里是表格的表头
createTable(dbTable, data) {
return new Promise((resolve, reject) => {
// executeSql: 执行增删改等操作的SQL语句
plus.sqlite.executeSql({
name: this.dbName,
name: "gather",
sql: `CREATE TABLE IF NOT EXISTS ${dbTable}(${data})`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库删表 sql:'DROP TABLE dbTable'
dropTable(dbTable) {
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: this.dbName,
sql: `DROP TABLE ${dbTable}`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 向表格里添加数据 sql:'INSERT INTO dbTable VALUES('x','x','x')' 对应新增
// 或者 sql:'INSERT INTO dbTable ('x','x','x') VALUES('x','x','x')' 具体新增
// 插入 INSERT INTO 、 dbTable 是表名、根据表头列名插入列值
insertTableData(dbTable, data, condition) {
// 判断有没有传参
if (dbTable !== undefined && data !== undefined) {
// 判断传的参是否有值
var bol = (JSON.stringify(data) == "{}");
if (!bol) {
if (condition == undefined) {
var sql = `INSERT INTO ${dbTable} VALUES('${data}')`;
} else {
var sql = `INSERT INTO ${dbTable} (${condition}) VALUES(${data})`;
}
return new Promise((resolve, reject) => {
// 表格添加数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => {
reject("错误添加")
})
}
} else {
return new Promise((resolve, reject) => {
reject("错误添加")
})
}
},
// 根据条件向表格里添加数据 有数据更新、无数据插入
// (建表时需要设置主键) 例如 --- "roomid" varchar(50) PRIMARY KEY
insertOrReplaceData(dbTable, data, condition) {
// 判断有没有传参
if (dbTable !== undefined && data !== undefined) {
if (condition == undefined) {
var sql = `INSERT OR REPLACE INTO ${dbTable} VALUES('${data}')`;
} else {
var sql = `INSERT OR REPLACE INTO ${dbTable} (${condition}) VALUES(${data})`;
}
// console.log(sql);
return new Promise((resolve, reject) => {
// 表格添加数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => {
reject("错误添加")
})
}
},
// 查询获取数据库里的数据 sql:'SELECT * FROM dbTable WHERE lname = 'lvalue''
// 查询 SELECT * FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
// selectTableData(dbTable, uname, namevalue, upass, passvalue,urrn,rrnvalue) {
selectTableData(dbTable, uname, namevalue) {
if (dbTable !== undefined) {
// // 第一个是表单名称,后两个参数是列表名,用来检索
// if (uname !== undefined && upass !== undefined && urrn!==undefined) {
// // 三个检索条件
// var sql = `SELECT * FROM ${dbTable} WHERE ${uname} = '${namevalue}' AND ${upass} = '${passvalue}' AND ${urrn}='${rrnvalue}'`;
// }
// if (uname !== undefined && upass !== undefined &&urrn==undefined) {
// // 两个检索条件
// var sql = `SELECT * FROM ${dbTable} WHERE ${uname} = '${namevalue}' AND ${upass} = '${passvalue}'`;
// }
if (uname !== undefined) {
// 一个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${uname} = '${namevalue}'`;
// console.log(sql);
}
if (uname == undefined) {
var sql = `SELECT * FROM ${dbTable}`;
}
return new Promise((resolve, reject) => {
// 表格查询数据 执行查询的SQL语句
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => {
reject("错误查询")
});
}
},
// 删除表里的数据 sql:'DELETE FROM dbTable WHERE lname = 'lvalue''
// 删除 DELETE FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
// deleteTableData(dbTable, lname, lvalue, ww, ee) {
deleteTableData(dbTable, lname, lvalue) {
console.log("lname:" + lname + "," + "lvalue" + lvalue);
if (dbTable !== undefined) {
if (lname == undefined) {
var sql = `DELETE FROM ${dbTable}`;
} else {
// if (ww !== undefined) {
// // 两个检索条件
// var sql = `DELETE FROM ${dbTable} WHERE ${lname} = '${lvalue}' AND ${ww} = '${ee}'`;
// } else {
// 一个检索条件
var sql = `DELETE FROM ${dbTable} WHERE ${lname} = '${lvalue}'`;
// }
}
return new Promise((resolve, reject) => {
// 删除表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => {
reject("错误删除")
});
}
},
// 修改数据表里的数据 sql:"UPDATE dbTable SET 列名 = '列值',列名 = '列值' WHERE lname = 'lvalue'"
// 修改 UPDATE 、 dbTable 是表名, data: 要修改的列名=修改后列值, lname,lvalue 是查询条件的列名和列值
updateTableData(dbTable, data, lname, lvalue) {
if (lname == undefined) {
var sql = `UPDATE ${dbTable} SET ${data}`;
} else {
var sql = `UPDATE ${dbTable} SET ${data} WHERE ${lname} = '${lvalue}'`;
}
// WHERE 前面是要修改的列名、列值,后面是条件的列名、列值
return new Promise((resolve, reject) => {
// 修改表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 获取指定数据条数 sql:"SELECT * FROM dbTable ORDER BY 'id' DESC LIMIT 15 OFFSET 'num'"
// dbTable 表名, ORDER BY 代表排序默认正序, id 是排序的条件 DESC 代表倒序,从最后一条数据开始拿
// LIMIT 15 OFFSET '${num}',这句的意思是跳过 num 条拿 15 条数据, num 为跳过多少条数据是动态值
// 例 初始num设为0就从最后的数据开始拿15条下次不拿刚获取的数据所以可以让num为15这样就能一步一步的拿完所有的数据
pullSQL(dbTable, id, num) {
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: this.dbName,
sql: `SELECT * FROM ${dbTable} ORDER BY '${id}' DESC LIMIT 15 OFFSET '${num}'`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
}

View File

@ -23,6 +23,11 @@
场位监控
</view>
</navigator>
<navigator url="/pages/test/ceshi" open-type="redirect">
<view class="item" :class="path==5?'active':''">
测试
</view>
</navigator>
</view>
</template>
<script>
@ -43,7 +48,7 @@
};
</script>
<style>
<style lang="less" scoped>
.sidebar {
width: 100px;
background-color: #f2f2f2;

View File

@ -17,7 +17,9 @@
"delay" : 0
},
/* */
"modules" : {},
"modules" : {
"SQLite" : {}
},
/* */
"distribute" : {
/* android */

View File

@ -92,7 +92,11 @@
{
"path": "pages/shipWork/untieAdd",
"style": {
"navigationBarTitleText": "系解缆信息"
"navigationBarTitleText": "系解缆信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
},
{
@ -104,7 +108,11 @@
{
"path": "pages/shipWork/supplyAdd",
"style": {
"navigationBarTitleText": "供给信息"
"navigationBarTitleText": "供给信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
},
{
@ -116,7 +124,11 @@
{
"path": "pages/shipWork/workAssignAdd",
"style": {
"navigationBarTitleText": "指导员作业布置信息"
"navigationBarTitleText": "指导员作业布置信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/notice",
@ -127,7 +139,11 @@
{
"path": "pages/shipWork/noticeAdd",
"style": {
"navigationBarTitleText": "船舶装卸通知书信息"
"navigationBarTitleText": "船舶装卸通知书信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/opinion",
@ -137,7 +153,11 @@
}, {
"path": "pages/shipWork/opinionAdd",
"style": {
"navigationBarTitleText": "质量意见征询信息"
"navigationBarTitleText": "质量意见征询信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/abnormal",
@ -147,7 +167,11 @@
}, {
"path": "pages/shipWork/abnormalAdd",
"style": {
"navigationBarTitleText": "异常情况信息"
"navigationBarTitleText": "异常情况信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/mafi",
@ -157,7 +181,11 @@
}, {
"path": "pages/shipWork/mafiAdd",
"style": {
"navigationBarTitleText": "MAFI清单信息"
"navigationBarTitleText": "MAFI清单信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/patrol",
@ -167,7 +195,11 @@
}, {
"path": "pages/shipWork/patrolAdd",
"style": {
"navigationBarTitleText": "安全巡检信息"
"navigationBarTitleText": "安全巡检信息",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
}, {
"path": "pages/shipWork/shipInfo",
@ -202,14 +234,18 @@
"navigationBarTitleText": "编辑货物质量",
"usingComponents": {
"van-icon": "/wxcomponents/vant/dist/icon/index",
"van-button": "/wxcomponents/vant/dist/button/index"
"van-button": "/wxcomponents/vant/dist/button/index",
"van-uploader": "/wxcomponents/vant/dist/uploader/index"
}
}
},
{
"path": "pages/monitor/details",
"style": {
"navigationBarTitleText": "质损详情"
"navigationBarTitleText": "质损详情",
"usingComponents": {
"van-button": "/wxcomponents/vant/dist/button/index"
}
}
},
{
@ -217,6 +253,12 @@
"style": {
"navigationBarTitleText": "签名"
}
},
{
"path": "pages/test/ceshi",
"style": {
"navigationBarTitleText": "测试"
}
}
],
"tabBar": {

View File

@ -8,100 +8,100 @@
<view class="formTitle">
基本信息
</view>
<ul>
<li class="flexLi">
<view class="ul">
<view class="li flexLi">
<p class="liTitle">质损发生环节</p>
<view class="rightInfo">
<p>客户反馈</p>
<p>这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的描述
</p>
</view>
</li>
<li>
</view>
<view class="li">
<p class="liTitle">板车照片</p>
<view class="picture">
<img src="../../static/images/testImg.jpg" alt="" v-for="item in 3">
<image src="../../static/images/testImg.jpg" v-for="item in 3"></image>
</view>
</li>
<li>
</view>
<view class="li">
<p class="liTitle">板车车牌照</p>
<view class="picture">
<img src="../../static/images/testImg.jpg" alt="" v-for="item in 3">
<image src="../../static/images/testImg.jpg" v-for="item in 3"></image>
</view>
</li>
<li class="flexLi">
</view>
<view class="li flexLi">
<p class="liTitle">质损负责人</p>
<p>张砰砰</p>
</li>
<li class="flexLi">
</view>
<view class="li flexLi">
<p class="liTitle">签名</p>
<p>张砰砰</p>
</li>
</ul>
</view>
</view>
<view class="formTitle">
质损信息
</view>
<ul class="zsInfo">
<li>
<view class="ul zsInfo">
<view class="li">
<p>车架号/条形码</p>
<p>1000000000</p>
</li>
<li>
</view>
<view class="li">
<p>船名/航次</p>
<p>运程10/HC98685976</p>
</li>
<li>
</view>
<view class="li">
<p>车型</p>
<p>1000000000</p>
</li>
<li>
</view>
<view class="li">
<p>品牌</p>
<p>这是一个品牌</p>
</li>
<li>
</view>
<view class="li">
<p>场位</p>
<p>1000000000</p>
</li>
<li>
</view>
<view class="li">
<p>质损时间</p>
<p>2023/09/08 23:00:00</p>
</li>
<li>
</view>
<view class="li">
<p>质损货物品类</p>
<p>商品车</p>
</li>
<li class="imgLi">
<img src="../../static/images/car1.png" alt="">
<img src="../../static/images/car2.png" alt="">
<img src="../../static/images/car3.png" alt="">
<img src="../../static/images/car4.png" alt="">
<img src="../../static/images/car5.png" alt="">
</li>
<li class="tsLi">
</view>
<view class="li imgLi">
<image src="../../static/images/car1.png"></image>
<image src="../../static/images/car2.png"></image>
<image src="../../static/images/car3.png"></image>
<image src="../../static/images/car4.png"></image>
<image src="../../static/images/car5.png"></image>
</view>
<view class="li tsLi">
<p>质损概况</p>
<p>其他 这是一段关于其他的描述</p>
</li>
<li class="tsLi">
</view>
<view class="li tsLi">
<p>损伤情况</p>
<p>磕伤点状</p>
</li>
<li class="tsLi">
</view>
<view class="li tsLi">
<p>处置情况</p>
<p>取消发运</p>
</li>
<li class="zpLi">
</view>
<view class="li zpLi">
<p class="liTitle">质损照片</p>
<view class="picture">
<img src="../../static/images/testImg.jpg" alt="" v-for="item in 6">
<image src="../../static/images/testImg.jpg" v-for="item in 6"></image>
</view>
</li>
<li class="zpLi">
</view>
<view class="li zpLi">
<p class="liTitle">车架号图片</p>
<view class="picture">
<img src="../../static/images/testImg.jpg" alt="" v-for="item in 9">
<image src="../../static/images/testImg.jpg" alt="" v-for="item in 9"></image>
</view>
</li>
</ul>
</view>
</view>
<view class="btnList">
<van-button type="default" @click="cancel"></van-button>
</view>
@ -147,14 +147,14 @@
font-weight: bold;
}
ul {
.ul {
margin-bottom: 30px;
.flexLi {
display: flex;
}
li {
.li {
margin-top: 30px;
.liTitle {
@ -175,7 +175,7 @@
display: flex;
flex-wrap: wrap;
img {
image {
width: 120px;
height: 120px;
margin: 10px;
@ -189,7 +189,7 @@
display: flex;
flex-wrap: wrap;
li {
.li {
width: 48%;
display: flex;
@ -210,24 +210,29 @@
.imgLi {
width: 100%;
flex-wrap: wrap;
height: 400px;
img:nth-of-type(1) {
image {
height: auto;
}
image:nth-of-type(1) {
width: 25%;
}
img:nth-of-type(2) {
image:nth-of-type(2) {
width: 25%;
}
img:nth-of-type(3) {
image:nth-of-type(3) {
width: 50%;
}
img:nth-of-type(4) {
image:nth-of-type(4) {
width: 50%;
}
img:nth-of-type(5) {
image:nth-of-type(5) {
width: 50%;
}
}

View File

@ -4,30 +4,21 @@
<view class="formTitle">
基本信息
</view>
<ul>
<li class="hjLi">
<p class="liTitle"><span class="required">*</span>资损发生环节</p>
<van-radio-group class="radioList" v-model="radio" direction="horizontal">
<van-radio name="收车交接">收车交接</van-radio>
<van-radio name="卸船(舱内)">卸船舱内</van-radio>
<van-radio name="卸船(场地)">卸船场地</van-radio>
<van-radio name="移车">移车</van-radio>
<van-radio name="交接检查">交接检查</van-radio>
<van-radio name="查验">查验</van-radio>
<van-radio name="巡场">巡场</van-radio>
<van-radio name="提货交接">提货交接</van-radio>
<van-radio name="装船(舱内)">装船舱内</van-radio>
<van-radio name="装船(场地)">装船场地</van-radio>
<van-radio name="理货">理货</van-radio>
<van-radio name="退关">退关</van-radio>
<van-radio name="退运">退运</van-radio>
<van-radio name="直装">直装</van-radio>
<van-radio name="客户反馈" class="radioInput">客户反馈
</van-radio>
<van-radio name="其他">其他</van-radio>
</van-radio-group>
</li>
<li>
<view class="ul">
<view class="li">
<p class="liTitle"><text class="required">*</text>资损发生环节</p>
<radio-group class="radioList" @change="radioChange">
<label class="radioBox" v-for="(item, index) in radioList" :key="item.value">
<view>
<radio :value="item.value" :checked="index === current" />
</view>
<view>{{item.name}}</view>
</label>
</radio-group>
</view>
<view class="li">
<p class="liTitle">板车照片</p>
<van-uploader>
<van-button icon="plus" type="info">图片上传</van-button>
@ -35,8 +26,8 @@
<view class="picture">
<uni-file-picker limit="9" title="最多选择9张图片"></uni-file-picker>
</view>
</li>
<li>
</view>
<view class="li">
<p class="liTitle">板车车牌照</p>
<van-uploader>
<van-button icon="plus" type="info">图片上传</van-button>
@ -44,108 +35,105 @@
<view class="picture">
<uni-file-picker limit="9" title="最多选择9张图片"></uni-file-picker>
</view>
</li>
<li class="zisun">
<p class="liTitle"><span class="required">*</span>责损负责人:</p>
<van-field v-model="lossHead" placeholder="请输入" />
</li>
<li class="zisun">
<p class="liTitle"><span class="required">*</span>签名:</p>
</view>
<view class="li zisun">
<p class="liTitle"><text class="required">*</text>责损负责人:</p>
<uni-easyinput class="inputBox" v-model="lossHead" placeholder="请输入"></uni-easyinput>
</view>
<view class="li zisun">
<p class="liTitle"><text class="required">*</text>签名:</p>
<p class="sign" @click="sign"></p>
</li>
</ul>
</view>
</view>
<view class="formTitle">
质损信息
</view>
<ul class="zsInfo">
<li>
<p class="liTitle"><span class="required">*</span>车架号/条形码:</p>
<van-field v-model="carValue" placeholder="请输入" />
</li>
<li>
<p class="liTitle"><span class="required">*</span>船名航次:</p>
<view class="ul zsInfo">
<view class="li">
<p class="liTitle"><text class="required">*</text>车架号/条形码:</p>
<uni-easyinput class="inputBox" v-model="carValue" placeholder="请输入"></uni-easyinput>
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>船名航次:</p>
<uni-data-select v-model="shipValue" :localdata="shipList" @change="shipChange"></uni-data-select>
</li>
<li>
<p class="liTitle"><span class="required">*</span>车型:</p>
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>车型:</p>
<uni-data-select v-model="carModel" :localdata="carList" @change="carChange"></uni-data-select>
</li>
<li>
<p class="liTitle"><span class="required">*</span>品牌:</p>
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>品牌:</p>
<uni-data-select v-model="brandValue" :localdata="brandList"
@change="brandChange"></uni-data-select>
</li>
<li>
<p class="liTitle"><span class="required">*</span>场位:</p>
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>场位:</p>
<uni-data-select v-model="fieldValue" :localdata="fieldList"
@change="fieldChange"></uni-data-select>
</li>
<li>
<p class="liTitle"><span class="required">*</span>质损时间:</p>
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>质损时间:</p>
<uni-datetime-picker type="datetime" v-model="zsDate" @change="dateChange" />
</li>
<li class="zsLi">
<p class="liTitle"><span class="required">*</span>质损货物品类:</p>
<van-radio-group class="radioList" v-model="zsRadio" direction="horizontal">
<van-radio name="商品车">商品车</van-radio>
<van-radio name="特种车">特种车</van-radio>
<van-radio name="备件/件杂货">备件/件杂货</van-radio>
<van-radio name="其他">其他
<template>
<van-field v-model="other" placeholder="请输入" />
</template>
</van-radio>
</van-radio-group>
</li>
<li class="imgLi">
<img src="../../static/images/car1.png" alt="">
<img src="../../static/images/car2.png" alt="">
<img src="../../static/images/car3.png" alt="">
<img src="../../static/images/car4.png" alt="">
<img src="../../static/images/car5.png" alt="">
</li>
<li class="zsLi">
<p class="liTitle"><span class="required">*</span>资损概况:</p>
<van-checkbox-group class="radioList" v-model="result1">
<van-checkbox name="碰撞">碰撞</van-checkbox>
<van-checkbox name="追尾">追尾</van-checkbox>
<van-checkbox name="短装/卸">短装/</van-checkbox>
<van-checkbox name="其他">其他
<template>
<van-field v-model="other1" placeholder="请输入" />
</template>
</van-checkbox>
</van-checkbox-group>
</li>
<li class="zsLi">
<p class="liTitle"><span class="required">*</span>损伤情况:</p>
<van-checkbox-group class="radioList" v-model="result2">
<van-checkbox name="磕伤(点状)">磕伤点状</van-checkbox>
<van-checkbox name="擦伤(面状)">擦伤面状</van-checkbox>
<van-checkbox name="划伤(线状)">划伤线状</van-checkbox>
<van-checkbox name="凹陷(凹状)">凹陷凹状</van-checkbox>
<van-checkbox name="其他">其他
<template>
<van-field v-model="other2" placeholder="请输入" />
</template>
</van-checkbox>
</van-checkbox-group>
</li>
<li class="zsLi">
<p class="liTitle"><span class="required">*</span>处置情况:</p>
<van-checkbox-group class="radioList" v-model="result3">
<van-checkbox name="带伤发运">带伤发运</van-checkbox>
<van-checkbox name="取消发运">取消发运</van-checkbox>
<van-checkbox name="补装/卸">补装/</van-checkbox>
<van-checkbox name="短装/卸">短装/</van-checkbox>
<van-checkbox name="其他">其他
<template>
<van-field v-model="other3" placeholder="请输入" />
</template>
</van-checkbox>
</van-checkbox-group>
</li>
<li class="tpLi">
</view>
<view class="li zsLi">
<p class="liTitle"><text class="required">*</text>质损货物品类:</p>
<radio-group @change="radioChange2" class="radioList2">
<label class="radioBox" v-for="(item, index) in radioList2" :key="item.value">
<view>
<radio :value="item.value" :checked="index === current2" />
</view>
<view class="boxInfo">{{item.name}}<uni-easyinput class="inputBox" v-model="other"
placeholder="请输入" v-if="item.name == '其他'"></uni-easyinput></view>
</label>
</radio-group>
</view>
<view class="li imageLi">
<image src="../../static/images/car1.png"></image>
<image src="../../static/images/car2.png"></image>
<image src="../../static/images/car3.png"></image>
<image src="../../static/images/car4.png"></image>
<image src="../../static/images/car5.png"></image>
</view>
<view class="li zsLi">
<p class="liTitle"><text class="required">*</text>资损概况:</p>
<checkbox-group class="radioList2" @change="checkboxChange">
<label class="radioBox" v-for="item in checklist" :key="item.value">
<view>
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="boxInfo">{{item.name}}<uni-easyinput class="inputBox" v-model="other1"
placeholder="请输入" v-if="item.name == '其他'"></uni-easyinput>
</view>
</label>
</checkbox-group>
</view>
<view class="li zsLi">
<p class="liTitle"><text class="required">*</text>损伤情况:</p>
<checkbox-group class="radioList2" @change="checkboxChange2">
<label class="radioBox" v-for="item in checklist2" :key="item.value">
<view>
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="boxInfo">{{item.name}}<uni-easyinput class="inputBox" v-model="other2"
placeholder="请输入" v-if="item.name == '其他'"></uni-easyinput>
</view>
</label>
</checkbox-group>
</view>
<view class="li zsLi">
<p class="liTitle"><text class="required">*</text>处置情况:</p>
<checkbox-group class="radioList2" @change="checkboxChange3">
<label class="radioBox" v-for="item in checklist3" :key="item.value">
<view>
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="boxInfo">{{item.name}}<uni-easyinput class="inputBox" v-model="other3"
placeholder="请输入" v-if="item.name == '其他'"></uni-easyinput>
</view>
</label>
</checkbox-group>
</view>
<view class="li tpLi">
<p class="liTitle">资损照片</p>
<van-uploader>
<van-button icon="plus" type="info">图片上传</van-button>
@ -153,8 +141,8 @@
<view class="picture">
<uni-file-picker limit="9" title="最多选择9张图片"></uni-file-picker>
</view>
</li>
<li class="tpLi">
</view>
<view class="li tpLi">
<p class="liTitle">车架号图片</p>
<van-uploader>
<van-button icon="plus" type="info">图片上传</van-button>
@ -162,8 +150,8 @@
<view class="picture">
<uni-file-picker limit="9" title="最多选择9张图片"></uni-file-picker>
</view>
</li>
</ul>
</view>
</view>
<view class="btnList">
<van-button type="default" @click="cancel"></van-button>
<van-button type="info">提交</van-button>
@ -175,11 +163,66 @@
<script>
export default {
name: "monEdit",
data() {
return {
//
radio: '', //
lossHead: "", //
radioList: [{
value: "1",
name: "收车交接"
},
{
value: "2",
name: "卸船(舱内)"
}, {
value: "3",
name: "卸船(场地)"
}, {
value: "4",
name: "移车"
}, {
value: "5",
name: "交接检查"
}, {
value: "6",
name: "查验"
}, {
value: "7",
name: "巡场"
}, {
value: "8",
name: "提货交接"
}, {
value: "9",
name: "装船(舱内)"
}, {
value: "10",
name: "装船(场地)"
}, {
value: "11",
name: "装船(场地)"
}, {
value: "12",
name: "理货"
}, {
value: "13",
name: "退关"
}, {
value: "14",
name: "退运"
}, {
value: "15",
name: "直装"
}, {
value: "16",
name: "客户反馈"
}, {
value: "17",
name: "其他"
},
],
current: "",
//
carValue: "", //
@ -240,18 +283,168 @@
},
],
zsDate: "", //
zsRadio: "", //
radioList2: [{
value: "1",
name: "商品车"
},
{
value: "2",
name: "特种车"
},
{
value: "3",
name: "备件/件杂货"
},
{
value: "4",
name: "其他"
}
],
current2: "",
other: "", //
result1: [], //
checkValue: [], //
checklist: [{ //
value: "碰撞",
name: "碰撞",
},
{
value: "追尾",
name: "追尾",
},
{
value: "短装/卸",
name: "短装/卸",
},
{
value: "其他",
name: "其他",
}
],
other1: "", //
result2: [], //
checkValue2: [], //
checklist2: [{
value: "磕伤(点状)",
name: "磕伤(点状)",
},
{
value: "擦伤(面状)",
name: "擦伤(面状)",
}, {
value: "划伤(线状)",
name: "划伤(线状)",
}, {
value: "凹陷(凹状)",
name: "凹陷(凹状)",
}, {
value: "其他",
name: "其他",
}
],
other2: "", //
result3: [], //
checkValue3: [], //
checklist3: [{ //
value: "带伤发运",
name: "带伤发运",
},
{
value: "取消发运",
name: "取消发运",
},
{
value: "补装/卸",
name: "补装/卸",
}, {
value: "短装/卸",
name: "短装/卸",
},
{
value: "其他",
name: "其他",
}
],
other3: "", //
}
},
onLoad() {},
methods: {
radioChange: function(evt) {
for (let i = 0; i < this.radioList.length; i++) {
if (this.radioList[i].value === evt.detail.value) {
this.current = i;
break;
}
}
},
radioChange2: function(evt) {
for (let i = 0; i < this.radioList2.length; i++) {
if (this.radioList2[i].value === evt.detail.value) {
this.current2 = i;
break;
}
}
},
checkboxChange(e) {
var items = this.checklist,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
const item = items[i]
if (values.includes(item.value)) {
this.$set(item, 'checked', true)
} else {
this.$set(item, 'checked', false)
}
}
let newArr = []
this.checklist.forEach(v => {
if (v.checked) {
newArr.push(v.name)
}
})
this.checkValue = newArr.filter((v, index) => {
return newArr.indexOf(v) === index
})
},
checkboxChange2(e) {
var items = this.checklist2,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
const item = items[i]
if (values.includes(item.value)) {
this.$set(item, 'checked', true)
} else {
this.$set(item, 'checked', false)
}
}
let newArr = []
this.checklist2.forEach(v => {
if (v.checked) {
newArr.push(v.name)
}
})
this.checkValue2 = newArr.filter((v, index) => {
return newArr.indexOf(v) === index
})
},
checkboxChange3(e) {
var items = this.checklist3,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
const item = items[i]
if (values.includes(item.value)) {
this.$set(item, 'checked', true)
} else {
this.$set(item, 'checked', false)
}
}
let newArr = []
this.checklist3.forEach(v => {
if (v.checked) {
newArr.push(v.name)
}
})
this.checkValue3 = newArr.filter((v, index) => {
return newArr.indexOf(v) === index
})
},
//
sign() {
uni.navigateTo({
@ -305,10 +498,10 @@
font-weight: bold;
}
ul {
.ul {
margin-top: 10px;
li {
.li {
margin-bottom: 20px;
.liTitle {
@ -323,35 +516,20 @@
.radioList {
display: flex;
flex-wrap: wrap;
margin-top: 20px;
.radioBox {
display: flex;
width: 14%;
margin-top: 10px;
}
}
/deep/.van-field__control {
color: #6a6a6a;
}
/deep/.van-field__control::-webkit-input-placeholder {
color: #6a6a6a;
}
}
.hjLi {
/deep/.van-radio {
min-width: 15%;
margin-top: 10px;
}
}
.zisun {
display: flex;
/deep/.van-field {
width: 300px;
}
.liTitle {
margin-top: 10px;
}
@ -365,7 +543,12 @@
height: 120px !important;
padding-top: 0;
}
}
.inputBox {
/deep/.is-input-border {
width: 345px;
}
}
.sign {
@ -382,7 +565,7 @@
justify-content: space-between;
flex-wrap: wrap;
li {
.li {
width: 48%;
display: flex;
@ -392,10 +575,6 @@
font-size: 16px;
}
/deep/.van-field {
width: calc(100% - 120px);
}
/deep/.uni-select {
background-color: #fff;
height: 44px;
@ -405,31 +584,30 @@
.zsLi {
width: 100%;
line-height: 36px;
.liTitle {
width: 120px;
}
.radioList {
margin-top: 0;
.radioList2 {
display: flex;
}
/deep/.van-radio__label {
.radioBox {
display: flex;
margin-left: 10px;
.boxInfo {
display: flex;
line-height: 44px;
}
/deep/.van-checkbox__label {
display: flex;
line-height: 44px;
}
/deep/.is-input-border {
width: 240px;
}
/deep/.van-checkbox {
margin-right: 10px;
}
/deep/.van-cell {
margin-left: 10px;
width: 250px;
/deep/.uni-easyinput {
margin-left: 10px;
}
}
}
}
@ -443,27 +621,32 @@
}
}
.imgLi {
.imageLi {
width: 100%;
flex-wrap: wrap;
height: 400px;
img:nth-of-type(1) {
image {
height: auto;
}
image:nth-of-type(1) {
width: 25%;
}
img:nth-of-type(2) {
image:nth-of-type(2) {
width: 25%;
}
img:nth-of-type(3) {
image:nth-of-type(3) {
width: 50%;
}
img:nth-of-type(4) {
image:nth-of-type(4) {
width: 50%;
}
img:nth-of-type(5) {
image:nth-of-type(5) {
width: 50%;
}
}

View File

@ -153,7 +153,7 @@
};
</script>
<style>
<style lang="less" scoped>
.container {
display: flex;
}

View File

@ -182,8 +182,8 @@
//
search() {
this.itemList = [{
uploadTime: "1",
uploadStatusDesc: "2",
uploadTime: "2022-12-11 12:00:08",
uploadStatusDesc: "已上传",
actualBerthageName: "3",
planBerthageName: "4",
outTradeTypeName: "5",
@ -503,6 +503,7 @@
.fitem {
flex: 1;
margin: 10px 20px;
background-color: #fff;
}
}
}

View File

@ -0,0 +1,177 @@
<template>
<view class="">
<!-- <div>{{odb}}</div> -->
<div>
<button type="default" @click="isOpenDatabase"></button>
<button type="default" @click="openDatabase"></button>
<button type="default" @click="closeDatabase"></button>
<button type="default" @click="createChatTable"></button>
<button type="default" @click="dropTable"></button>
<button type="default" @click="transaction"></button>
<button type="default" @click="insertChatRow"></button>
<button type="default" @click="insertListChatRow"></button>
<button type="default" @click="deleteChatRow"></button>
<button type="default" @click="selectSql"></button>
</div>
<div v-for="item in sqlData" :key="item.id">
<text>{{item.id}}</text>
<text>{{item.content}}</text>
</div>
</view>
</template>
<script>
import Sqlite from "../../common/sqlite.js"
export default {
data() {
return {
dbName: 'dianji_chat',
dbPath: '_doc/dianji_chat.db',
dbTable: 'dianji_chat',
dbIsOpen: false,
sqlData: [],
chatText: {
id: 1,
fromId: '123',
toId: '321',
content: '你好!',
flag: 1
},
chatText1: [{
id: 11,
fromId: '123',
toId: '321',
content: '你好!',
flag: 1
},
{
id: 12,
fromId: '123',
toId: '321',
content: '你好!',
flag: 1
}
],
}
},
onLoad() {
// console.log('Sqlite:',Sqlite)
// this.open();
},
methods: {
// async open(){
// let odb=await Sqlite.openSqlite();
// this.odb=odb;
// console.log('',odb)
// },
createChatTable() {
let sql = 'CREATE TABLE if not exists ' + this.dbTable +
' ( "id" varchar(32) NOT NULL,"content" varchar(1024),"fromId" varchar(32), "toId" varchar(32), "flag" varchar(2), PRIMARY KEY ("id"));'
this.executeSql(sql)
},
openDatabase() {
plus.sqlite.openDatabase({
name: this.dbName,
path: this.dbPath,
success: function(e) {
console.log('打开数据库成功')
},
fail: function(e) {
console.log(e, '打开数据库失败')
}
});
},
isOpenDatabase() {
let res = plus.sqlite.isOpenDatabase({
name: this.dbName,
path: this.dbPath
});
if (res) {
uni.showToast({
icon: 'none',
title: '数据库已打开'
});
return;
} else {
uni.showToast({
icon: 'none',
title: '数据库未打开'
});
return;
}
},
closeDatabase() {
plus.sqlite.closeDatabase({
name: this.dbName,
success: function(e) {
console.log(JSON.stringify(e), 'closeDatabase dianji_chat success!');
},
fail: function(e) {
console.log('closeDatabase failed: ' + JSON.stringify(e));
}
});
},
insertChatRow() {
let data = this.chatText
data.id++
let sql = "insert into " + this.dbTable + " values('" + data.id + "','" + data.content +
"','" + data.fromId + "','" + data.toId + "'," + data.flag + ")";
this.executeSql(sql)
},
insertListChatRow() {
let data = this.chatText1
let sql = '';
for (let i = 0; i < data.length; i++) {
sql = "insert into " + this.dbTable + " values('" + data[i].id + "','" + data[i].content +
"','" + data[i].fromId + "','" + data[i].toId + "'," + data[i].flag + ")";
this.executeSql(sql)
}
},
deleteChatRow() {
let sql = "delete from " + this.dbTable;
this.executeSql(sql)
},
selectSql() {
let curPage = 1
let pageSize = 20
let fromId = '123'
let sql = 'select * from ' + this.dbTable + ' where fromId=' + fromId +
' limit ' + pageSize + ' offset ' + (curPage - 1) * pageSize;
this.executeSql(sql)
},
dropTable() {
let sql = 'DROP TABLE ' + this.dbTable + ';'
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success: function(e) {
console.log("删除数据表成功");
},
fail: function(e) {
console.log('executeSql failed: ' + JSON.stringify(e));
}
})
},
transaction() {
plus.sqlite.transaction({
name: this.dbName,
operation: 'begin',
success: function(e) {
console.log('transaction success!');
},
fail: function(e) {
console.log('transaction failed: ' + JSON.stringify(e));
}
});
},
executeSql(sql) {
let a = Sqlite.executeSqlCeshi(sql)
console.log(a);
},
}
}
</script>
<style>
</style>