提交 b5d355e2 authored 作者: JaxBBLL's avatar JaxBBLL

fix

import SqlliteDbUtil from "@/utils/sqllitedb";
import table from "./sqllite/table.js";
import { fixNullVal } from "@/utils/common";
import {
fixNullVal
} from "@/utils/common";
// 巡检
export default {
async selectList() {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
let rs = await sqllitedb.selectSQL(
`select * from ${table.inspectionRecordName}`
);
return rs;
},
async selectList() {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
let rs = await sqllitedb.selectSQL(
`select * from ${table.inspectionRecordName}`
);
return rs;
},
async selectDataForTime() {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
let rs = await sqllitedb.selectSQL(
`SELECT *,strftime( '%Y年%m月',createTime) AS yearMonth FROM ${table.inspectionRecordName} order by createTime desc`
);
return rs;
},
async info(id) {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
let sql = `select * from ${table.inspectionRecordName} where id = '${id}'`;
let res = await sqllitedb.selectSQL(sql);
if (res && res.length > 0) {
return res[0];
}
},
async remove(id) {
if (!id) {
return;
}
let sql = `delete from ${table.inspectionRecordName} where id = '${id}'`;
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
await sqllitedb.executeSQL(sql);
},
async saveBatch(list) {
if (list.length === 0) {
return;
}
console.log("开始保存用户信息...." + list.length);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
for (let data of list) {
let column = "";
let values = "";
let idx = 0;
for (let attr in data) {
let dataField = table["inspectionRecord"].find((v) => {
if (v.field === attr) {
return v;
}
});
if (!dataField) {
continue;
}
column += dataField.field + ",";
values += "'" + fixNullVal(data[attr]) + "',";
idx++;
}
async info(id) {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
let sql = `select * from ${table.inspectionRecordName} where id = '${id}'`;
let res = await sqllitedb.selectSQL(sql);
if (res && res.length > 0) {
return res[0];
}
},
async remove(id) {
if (!id) {
return;
}
let sql = `delete from ${table.inspectionRecordName} where id = '${id}'`;
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
await sqllitedb.executeSQL(sql);
},
async saveBatch(list) {
if (list.length === 0) {
return;
}
console.log("开始保存用户信息...." + list.length);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
for (let data of list) {
let column = "";
let values = "";
let idx = 0;
for (let attr in data) {
let dataField = table["inspectionRecord"].find((v) => {
if (v.field === attr) {
return v;
}
});
if (!dataField) {
continue;
}
column += dataField.field + ",";
values += "'" + fixNullVal(data[attr]) + "',";
idx++;
}
column = column.endsWith(",") ?
column.substring(0, column.length - 1) :
column;
values = values.endsWith(",") ?
values.substring(0, values.length - 1) :
values;
column = column.endsWith(",")
? column.substring(0, column.length - 1)
: column;
values = values.endsWith(",")
? values.substring(0, values.length - 1)
: values;
let sql = `insert into ${table.inspectionRecordName}(${column}) values(${values})`;
let has = await this.info(data.id);
if (has && has.id) {
await this.remove(data.id);
}
await sqllitedb.executeSQL(sql);
}
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("导入完成...");
},
async save(data) {
console.log("开始保存巡检记录", data);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
let sql = `insert into ${table.inspectionRecordName}(
let sql = `insert into ${table.inspectionRecordName}(${column}) values(${values})`;
let has = await this.info(data.id);
if (has && has.id) {
await this.remove(data.id);
}
await sqllitedb.executeSQL(sql);
}
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("导入完成...");
},
async save(data) {
console.log("开始保存巡检记录", data);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
let sql = `insert into ${table.inspectionRecordName}(
inspectionType,
inspectionCode,
recordName,
......@@ -90,7 +98,7 @@ export default {
createBy,
createTime,
updateTime,
signImg,
signImg,
inspectionData
) values(
'${data.inspectionType}',
......@@ -106,23 +114,26 @@ export default {
'${data.updateTime}',
'${data.signImg}',
'${JSON.stringify(data.inspectionData)}'
)`;
await sqllitedb.executeSQL(sql);
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("导入完成...");
},
async update(data) {
console.log("开始更新巡检记录", data);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
if (!data.id) {
throw new Error("更新操作需要提供 id");
}
let sql = `UPDATE ${table.inspectionRecordName} SET
);
`;
debugger
let result = await sqllitedb.executeReturnDataSQL(sql);
console.log(result, '有有有有有有')
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("导入完成...");
},
async update(data) {
console.log("开始更新巡检记录", data);
let sqllitedb = await SqlliteDbUtil.initSqlliteDB();
try {
if (!data.id) {
throw new Error("更新操作需要提供 id");
}
let sql = `UPDATE ${table.inspectionRecordName} SET
inspectionType = '${data.inspectionType}',
inspectionCode = '${data.inspectionCode}',
recordName = '${data.recordName}',
......@@ -137,12 +148,12 @@ export default {
updateTime = '${data.updateTime}',
inspectionData = '${JSON.stringify(data.inspectionData)}'
WHERE id = ${data.id}`;
await sqllitedb.executeSQL(sql);
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("更新完成...");
},
};
await sqllitedb.executeSQL(sql);
} catch (e) {
console.log(e.message);
} finally {
await sqllitedb.closeDB();
}
console.log("更新完成...");
},
};
\ No newline at end of file
......@@ -14,13 +14,13 @@ export default {
// app初始化
async init() {
uni.showLoading({
title: '正在初始化...',
})
// uni.showLoading({
// title: '正在初始化...',
// })
// 初始化目录
await this.initDir()
// await this.initDir()
// 初始化数据库
this.initSqlLite()
this.initSqlLite()
let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
let isInit = await SqlliteDbUtil.checkIfDataImported(sqllitedb)
if (!isInit) {
......
......@@ -51,7 +51,7 @@ module.exports = {
inspectionRecordName: "INSPECTION_RECORD",
inspectionRecord: [{
field: "id",
format: "INTEGER PRIMARY KEY AUTOINCREMENT",
format: "INTEGER PRIMARY KEY AUTOINCREMENT",
},
{
field: "inspectionType",
......
......@@ -17,7 +17,7 @@
<text>编号:</text>
<text class="code-num">{{ details.inspectionCode }}</text>
<text>巡检日期:</text>
<text class="code-num">{{ details.submitTime }}</text>
<text class="code-num">{{ details.inspectionTime }}</text>
</view>
</view>
<view class="img">
......
......@@ -12,7 +12,7 @@
<image
class="bg-img"
mode="aspectFill"
src="@/static/img/add-img/home1.png"
src="@/static/img/add-img/defaultAvatar.png"
></image>
</view>
<view class="card-item" @click="toSyncPage">
......
......@@ -2,8 +2,11 @@
<!-- 首页 -->
<view class="container">
<view class="flex">
<navigator url="/pages/test/index" hover-class="navigator-hover">
<button type="default" class="uni-btn">跳转TEST</button>
</navigator>
<navigator
url="/pages/inspectionContent/inspectionContentList?uid=1&backValue=home"
url="/pages/inspectionContent/inspectionContentList?uid=1"
hover-class="navigator-hover"
>
<button type="default" class="uni-btn">测试巡检</button>
......@@ -30,7 +33,7 @@
<view class="profile-left">
<view class="avatar">
<image
src="@/static/img/add-img/home1.png"
src="@/static/img/add-img/defaultAvatar.png"
mode="aspectFit"
></image>
<view class="change-password" @click="updatePassword"
......
......@@ -2,7 +2,7 @@
<view class="home-page">
<view class="left-tab">
<view class="user-info">
<image class="user-img" src="@/static/img/add-img/home1.png"></image>
<image class="user-img" src="@/static/img/add-img/defaultAvatar.png"></image>
<text class="text">{{ userName }}</text>
</view>
......
......@@ -18,11 +18,8 @@
<CommonUpload
v-model="item.photos"
:max-count="9999"
@input="onPhotoChange"
@change="onPhotoChange"
>
<template #tip>
请对检查项进行拍照留存。发现“异常、告警”时,需拍照留存。
</template>
</CommonUpload>
</view>
</view>
......@@ -115,7 +112,10 @@ export default {
// 处理弹窗确认
handlePopupConfirm(summary) {
this.itemData.detail[this.currentIndex].conclusion = summary; // 回显到文字显示区域
this.$emit("sync", this.itemData);
this.$emit("sync", {
conclusion: summary,
photos: this.itemData.detail[this.currentIndex].photos,
});
},
// 处理】数据
getFromData() {
......@@ -163,7 +163,10 @@ export default {
},
onPhotoChange(val) {
this.itemData.detail[this.currentIndex].photos = val;
this.$emit("sync", this.itemData);
this.$emit("sync", {
conclusion: this.itemData.detail[this.currentIndex].conclusion,
photos: val,
});
},
},
};
......
......@@ -167,7 +167,6 @@ import xfxt from "./components/xfxt.vue"; //消防系统
import xlqk from "./components/xlqk.vue"; //线路情况
import qt from "./components/qt.vue"; //其它
import startDialog from "./components/dialog.vue";
import { cloneDeep } from "lodash";
export default {
components: {
......@@ -488,51 +487,15 @@ export default {
return true;
}
}
// 所有 inspectionResult 都为 0,返回 false(正常)
return false;
},
realSave(params, isSubmit) {
const send = dataToSql(params);
realSave(data) {
const send = dataToSql(data);
const api = this.uid ? inspectApi.update : inspectApi.save;
api(this.uid ? { id: this.uid, ...send } : send).then((res) => {
console.log("保存成功");
let logContent = "";
if (this.uid) {
params.uid = this.uid;
logContent = getLogContent(
LOG_TYPE_ENUM.edit,
`${params.recordName}(${params.inspectionCode})`,
"巡检模块"
);
} else {
this.uid = params.uid = new Date().getTime(); // 唯一标识 pad 端使用
logContent = getLogContent(
LOG_TYPE_ENUM.add,
`${params.recordName}(${params.inspectionCode})`,
"巡检模块"
);
}
// 更新日志
const log_list = this.$store.state.log_list;
logContent.inspectionType = params.inspectionType;
log_list.push(logContent);
this.$store.commit("SET_LOG_LIST", log_list);
addLog(log_list).then((res) => {
console.log("日志文件写入成功");
});
if (isSubmit) {
this.startDialog();
} else {
uni.showToast({
title: "暂存成功",
icon: "none",
});
}
console.log("保存成功",res);
});
},
// 提交
......@@ -549,13 +512,70 @@ export default {
}
const params = this.getParams(isSubmit); //数据获取
console.log("提交时获取一次", params);
this.realSave(params, isSubmit);
},
startDialog() {
console.log("startDialog", this.listData);
let allIsSubmitOne = this.listData.every((item) => item.isSubmit == 1);
this.realSave(params);
// const all_data = this.$store.state.all_data; //获取全部数据
let logContent = "";
console.log("all_data", this.all_data);
if (this.uid) {
const index = this.all_data.findIndex(
(element) => element.uid == this.uid
);
params.uid = this.uid;
this.all_data[index] = params;
logContent = getLogContent(
LOG_TYPE_ENUM.edit,
`${params.recordName}(${params.inspectionCode})`,
"巡检模块"
);
} else {
this.uid = params.uid = new Date().getTime(); // 唯一标识 pad 端使用
this.all_data.push(params);
logContent = getLogContent(
LOG_TYPE_ENUM.add,
`${params.recordName}(${params.inspectionCode})`,
"巡检模块"
);
}
// 更新巡检list
const userInfo = this.userInfo;
console.log("all_data存储", this.all_data);
this.$store.commit("SET_ALL_DATA", this.all_data);
const inspectList = this.all_data.filter(
(item) => item.createByName == userInfo.user
);
console.log("inspectList", inspectList);
writeInspectionData(inspectList, userInfo.user);
// 更新日志
const log_list = this.$store.state.log_list;
logContent.inspectionType = params.inspectionType;
log_list.push(logContent);
this.$store.commit("SET_LOG_LIST", log_list);
addLog(log_list).then((res) => {
console.log("日志文件写入成功");
});
// 清空基础缓存信息
// this.$store.commit("SET_TEMP_DATA", {}); // 缓存[巡检信息]
// uni.showToast({
// title: isSubmit ? "提交成功" : "保存草稿成功",
// icon: "success",
// });
if (isSubmit) {
this.startDialog();
} else {
uni.showToast({
title: "暂存成功",
icon: "none",
});
}
},
startDialog() {
let allIsSubmitOne = this.listData.every((item) => item.isSubmit === 1);
this.allIsSubmitOne = allIsSubmitOne;
console.log("是否全部完成", allIsSubmitOne);
console.log("this.listData", this.listData);
......@@ -731,10 +751,12 @@ export default {
this.switchTab((this.activeTab + 1) % this.tabs.length);
},
setQtValue(data) {
console.log("setQtValue", data);
this.detailsInfo.originData.forEach((item) => {
if (item.details) {
item.details.qt = data;
if (item.details && item.details.qt && item.details.qt.detail) {
item.details.qt.detail.forEach((current) => {
item.conclusion = data.conclusion;
item.photos = data.photos;
});
}
});
console.log("setQtValue", this.detailsInfo);
......
......@@ -63,7 +63,6 @@ export function sqlToData(sqlData) {
originData,
inspectionNumber,
allIsSubmitOne,
isSign: !!sqlData.signImg,
};
return ret;
......
<template>
<!-- 巡检管理 -->
<view class="inspection-management">
<uni-nav-bar
:fixed="true"
background-color="rgba(214, 240, 255, 0.0)"
status-bar
rightWidth="300"
>
<block slot="left">
<view class="" @click="back">
<text class="iconfont icon-fanhui"></text>
</view>
</block>
<block slot="right" class="nav-right">
<view class="header-buttons">
<view class="button" @click="clickInspection(1)">机房巡检</view>
<view class="button" @click="clickInspection(2)">井道巡检</view>
</view>
</block>
</uni-nav-bar>
<!-- 搜索项 -->
<SearchCom @change="change" />
<!-- 结果 -->
<view class="inspection-management-content">
<view class="count-tatal">
<text class="num">{{ countNum || 0 }}</text>
<text calss="">查询结果</text>
</view>
<view class="month-list">
<!-- 每月记录 -->
<view
class="month-record-item"
v-for="(item, index) in list"
:key="index"
>
<view v-if="(item.list || []).length" class="seconed-title">
{{ item.submitTime || item.time }}
</view>
<view class="inspect-list">
<InspectionItem
v-for="ele in item.list"
:key="ele.uid"
:details="ele"
/>
</view>
</view>
<Empty v-if="list.length == 0" />
</view>
</view>
<!-- 开始巡检 -->
<!-- <view class="inspection-button" @click="toPage">开始巡检</view> -->
<view class="inspection-button" @click="openDialog(true)">同步数据</view
><!-- 打包弹窗 -->
<Dialog
v-show="isDialog && list.length"
:list="list"
@close="openDialog(false)"
></Dialog>
</view>
<!-- 巡检管理 -->
<view class="inspection-management">
<uni-nav-bar :fixed="true" background-color="rgba(214, 240, 255, 0.0)" status-bar rightWidth="300">
<block slot="left">
<view class="" @click="back">
<text class="iconfont icon-fanhui"></text>
</view>
</block>
<block slot="right" class="nav-right">
<view class="header-buttons">
<view class="button" @click="clickInspection(1)">机房巡检</view>
<view class="button" @click="clickInspection(2)">井道巡检</view>
</view>
</block>
</uni-nav-bar>
<!-- 搜索项 -->
<!-- <SearchCom @change="change" /> -->
<!-- 结果 -->
<view class="inspection-management-content">
<view class="count-tatal">
<text class="num">{{ countNum || 0 }}</text>
<text calss="">查询结果</text>
</view>
<view class="month-list">
<!-- 每月记录 -->
<view class="month-record-item" v-for="(item, index) in list" :key="index">
<view v-if="(item || []).length" class="seconed-title">
{{ '2025-04'}}
</view>
<view class="inspect-list">
<InspectionItem :details="item" />
</view>
</view>
<Empty v-if="list.length == 0" />
</view>
</view>
<!-- 开始巡检 -->
<!-- <view class="inspection-button" @click="toPage">开始巡检</view> -->
<view class="inspection-button" @click="openDialog(true)">同步数据</view><!-- 打包弹窗 -->
<Dialog v-show="isDialog && list.length" :list="list" @close="openDialog(false)"></Dialog>
</view>
</template>
<script>
import SearchCom from "@/components/searchCom/index.vue";
import InspectionItem from "@/components/inspectionItem/index.vue";
import { getDarft } from "@/request/index.js";
import Dialog from "./dialog.vue";
import { getAllInspections } from "@/request/index.js";
import Empty from "@/components/empty/index.vue";
export default {
components: {
SearchCom,
InspectionItem,
Dialog,
Empty,
},
data() {
return {
isDialog: false, //
list: [], // 展示数据
all_data: [], // 所有数据
searchForm: {
// 搜索条件
},
countNum: 0, // 统计查询总数
};
},
mounted() {
uni.showLoading();
getAllInspections()
.then((res) => {
this.all_data = res;
this.init();
uni.hideLoading();
})
.catch((error) => {
if (0 == error.code) {
uni.showToast({
title: error.msg,
icon: "none",
duration: 1000,
});
}
this.all_data = [];
uni.hideLoading();
});
},
computed: {
userInfo() {
return this.$store.state.now_user || {};
},
},
methods: {
// 返回
back() {
uni.navigateTo({
url: "/pages/home/home",
});
},
clickInspection(type) {
if (type == 1) {
uni.navigateTo({
url: "/pages/inspectionContent/inspectionContentList",
});
} else {
uni.navigateTo({
url: "/pages/shaftInspection/shaftInspectionList",
});
}
},
init() {
const all_data = this.all_data || [];
// this.isPackedDataBtn =
// all_data.filter((item) => item.synchronization == 0).length > 0;
const { inspectionTime = [] } = this.searchForm;
const startTime = inspectionTime[0];
const endTime = inspectionTime[1];
// 第一步: 筛选有效的时间范围
const timeFrame = all_data.filter((item) => {
if (!inspectionTime.length) {
return true;
} else {
return (
new Date(startTime).getTime() <=
new Date(item.submitTime).getTime() &&
new Date(item.submitTime).getTime() <= new Date(endTime).getTime()
);
}
});
// 属于同一个月的数据 聚合
const tempAllData = {};
timeFrame.forEach((item) => {
const val = tempAllData[item.submitMonth] || [];
if (val.length) {
tempAllData[item.submitMonth].push(item);
} else {
tempAllData[item.submitMonth] = [item];
}
});
const keys = Object.keys(tempAllData);
// 第二步: 根据搜索条件过滤
const list = keys.map((key) => {
return {
time: key,
list: this.coverData(tempAllData[key]),
};
});
this.countNum = 0;
list.forEach((item) => {
this.countNum += item.list.length;
});
this.list = list;
console.log("this.list", this.list);
},
coverData(arr = []) {
console.log("arr", arr);
const {
isException = "",
inspectionType = "",
synchronization = "",
} = this.searchForm;
return arr.filter((item) => {
return (
(!isException ||
isException == "all" ||
item.isException == isException) &&
(!inspectionType ||
inspectionType == "all" ||
item.inspectionType == inspectionType) &&
(!synchronization ||
synchronization == "all" ||
item.synchronization == synchronization)
);
});
},
openDialog(show) {
this.isDialog = show;
if (!show) {
this.init();
}
},
change(e) {
this.searchForm = e;
this.init();
},
toPage() {
uni.showLoading();
getDarft()
.then((res) => {
const darf_data = res || {};
if (darf_data.inspectionType == 1) {
uni.navigateTo({
url: `/pages/inspectionContent/inspectionContent?isDarf=1`,
});
} else if (darf_data.inspectionType == 2) {
uni.navigateTo({
url: `/pages/shaftInspection/shaftInspection?isDarf=1`,
});
} else {
uni.navigateTo({
url: "/pages/inspection/inspFirst",
});
}
uni.hideLoading();
})
.catch((error) => {
if (error.code == 0) {
uni.showToast({
title: error.msg,
icon: "none",
duration: 1000,
});
}
uni.navigateTo({
url: "/pages/inspection/inspFirst",
});
uni.hideLoading();
});
},
},
};
import SearchCom from "@/components/searchCom/index.vue";
import InspectionItem from "@/components/inspectionItem/index.vue";
import {
getDarft
} from "@/request/index.js";
import Dialog from "./dialog.vue";
import {
getAllInspections
} from "@/request/index.js";
import Empty from "@/components/empty/index.vue";
import inspectApi from "@/api/inspect";
export default {
components: {
SearchCom,
InspectionItem,
Dialog,
Empty,
},
data() {
return {
isDialog: false, //
list: [], // 展示数据
all_data: [], // 所有数据
searchForm: {
// 搜索条件
},
countNum: 0, // 统计查询总数
};
},
async mounted() {
// this.getInspectRecord()
let res = await inspectApi.selectDataForTime()
this.list = res
console.log(res.length, '永远永远永远永远=---=>')
},
computed: {
userInfo() {
return this.$store.state.now_user || {};
},
},
methods: {
async getInspectRecord() {
let res = await inspectApi.selectList()
console.log('阿斗者', res)
this.list = res || []
this.countNum = this.list.length
},
// 返回
back() {
uni.navigateTo({
url: "/pages/home/home",
});
},
clickInspection(type) {
if (type == 1) {
uni.navigateTo({
url: "/pages/inspectionContent/inspectionContentList",
});
} else {
uni.navigateTo({
url: "/pages/shaftInspection/shaftInspectionList",
});
}
},
init() {
const all_data = this.all_data || [];
// this.isPackedDataBtn =
// all_data.filter((item) => item.synchronization == 0).length > 0;
const {
inspectionTime = []
} = this.searchForm;
const startTime = inspectionTime[0];
const endTime = inspectionTime[1];
// 第一步: 筛选有效的时间范围
const timeFrame = all_data.filter((item) => {
if (!inspectionTime.length) {
return true;
} else {
return (
new Date(startTime).getTime() <=
new Date(item.submitTime).getTime() &&
new Date(item.submitTime).getTime() <= new Date(endTime).getTime()
);
}
});
// 属于同一个月的数据 聚合
const tempAllData = {};
timeFrame.forEach((item) => {
const val = tempAllData[item.submitMonth] || [];
if (val.length) {
tempAllData[item.submitMonth].push(item);
} else {
tempAllData[item.submitMonth] = [item];
}
});
const keys = Object.keys(tempAllData);
// 第二步: 根据搜索条件过滤
const list = keys.map((key) => {
return {
time: key,
list: this.coverData(tempAllData[key]),
};
});
this.countNum = 0;
list.forEach((item) => {
this.countNum += item.list.length;
});
this.list = list;
console.log("this.list", this.list);
},
coverData(arr = []) {
console.log("arr", arr);
const {
isException = "",
inspectionType = "",
synchronization = "",
} = this.searchForm;
return arr.filter((item) => {
return (
(!isException ||
isException == "all" ||
item.isException == isException) &&
(!inspectionType ||
inspectionType == "all" ||
item.inspectionType == inspectionType) &&
(!synchronization ||
synchronization == "all" ||
item.synchronization == synchronization)
);
});
},
openDialog(show) {
this.isDialog = show;
if (!show) {
this.init();
}
},
change(e) {
this.searchForm = e;
this.init();
},
toPage() {
uni.showLoading();
getDarft()
.then((res) => {
const darf_data = res || {};
if (darf_data.inspectionType == 1) {
uni.navigateTo({
url: `/pages/inspectionContent/inspectionContent?isDarf=1`,
});
} else if (darf_data.inspectionType == 2) {
uni.navigateTo({
url: `/pages/shaftInspection/shaftInspection?isDarf=1`,
});
} else {
uni.navigateTo({
url: "/pages/inspection/inspFirst",
});
}
uni.hideLoading();
})
.catch((error) => {
if (error.code == 0) {
uni.showToast({
title: error.msg,
icon: "none",
duration: 1000,
});
}
uni.navigateTo({
url: "/pages/inspection/inspFirst",
});
uni.hideLoading();
});
},
},
};
</script>
<style scoped lang="less">
.uni-nav-bar-text {
height: 28.8px;
width: 28.8px;
background: #ffffff;
border: 0.32px solid rgba(224, 224, 224, 1);
border-radius: 14.4px;
color: #333;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
z-index: 999;
.iconfont {
font-size: 16px;
line-height: 28.8px;
}
}
.nav-right {
width: 192px;
}
.header-buttons {
display: flex;
align-items: center;
margin-left: auto;
.button {
width: 89.6px;
height: 28.8px;
background: #ffffff;
border-radius: 14.4px;
margin-left: 12.8px;
font-family: PingFangSC-Regular;
font-size: 12.8px;
color: #000000;
line-height: 28.8px;
font-weight: 400;
text-align: center;
}
}
.inspection-management {
background-image: linear-gradient(115deg, #e8f0fb 0%, #e1ebfa 100%);
padding: 0 25.6px;
.inspection-management-content {
.count-tatal {
font-family: PingFangSC-Medium;
margin: 12.8px 0px 19.2px;
font-size: 11.2px;
color: #4a4a4a;
font-weight: 400;
height: 22.4px;
line-height: 22.4px;
.num {
font-size: 16px;
color: #3774f6;
line-height: 22.4px;
font-weight: 500;
margin-right: 1.6px;
}
}
.month-list {
height: calc(100vh - 20.8px - 12.8px - 6.4px - 28.8px - 49.6px - 25px);
overflow: auto;
// padding-bottom: 112px;
.seconed-title {
font-size: 16px;
color: #000000;
line-height: 22.4px;
font-weight: 500;
margin-bottom: 9.6px;
}
.month-record-item {
margin-bottom: 19.2px;
&:last-of-type {
margin: 0;
}
.inspect-list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
}
}
}
.inspection-button {
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 48px;
width: 192px;
height: 38.4px;
left: 50%;
color: #fff;
transform: translateX(-50%);
background-image: linear-gradient(180deg, #3773f6 0%, #2c57f6 99%);
box-shadow: 0px 8px 19.2px 0px rgba(51, 104, 246, 0.24);
border-radius: 21.6px;
}
}
</style>
.uni-nav-bar-text {
height: 28.8px;
width: 28.8px;
background: #ffffff;
border: 0.32px solid rgba(224, 224, 224, 1);
border-radius: 14.4px;
color: #333;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
z-index: 999;
.iconfont {
font-size: 16px;
line-height: 28.8px;
}
}
.nav-right {
width: 192px;
}
.header-buttons {
display: flex;
align-items: center;
margin-left: auto;
.button {
width: 89.6px;
height: 28.8px;
background: #ffffff;
border-radius: 14.4px;
margin-left: 12.8px;
font-family: PingFangSC-Regular;
font-size: 12.8px;
color: #000000;
line-height: 28.8px;
font-weight: 400;
text-align: center;
}
}
.inspection-management {
background-image: linear-gradient(115deg, #e8f0fb 0%, #e1ebfa 100%);
padding: 0 25.6px;
.inspection-management-content {
.count-tatal {
font-family: PingFangSC-Medium;
margin: 12.8px 0px 19.2px;
font-size: 11.2px;
color: #4a4a4a;
font-weight: 400;
height: 22.4px;
line-height: 22.4px;
.num {
font-size: 16px;
color: #3774f6;
line-height: 22.4px;
font-weight: 500;
margin-right: 1.6px;
}
}
.month-list {
height: calc(100vh - 20.8px - 12.8px - 6.4px - 28.8px - 49.6px - 25px);
overflow: auto;
// padding-bottom: 112px;
.seconed-title {
font-size: 16px;
color: #000000;
line-height: 22.4px;
font-weight: 500;
margin-bottom: 9.6px;
}
.month-record-item {
margin-bottom: 19.2px;
&:last-of-type {
margin: 0;
}
.inspect-list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
}
}
}
.inspection-button {
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 48px;
width: 192px;
height: 38.4px;
left: 50%;
color: #fff;
transform: translateX(-50%);
background-image: linear-gradient(180deg, #3773f6 0%, #2c57f6 99%);
box-shadow: 0px 8px 19.2px 0px rgba(51, 104, 246, 0.24);
border-radius: 21.6px;
}
}
</style>
\ No newline at end of file
......@@ -24,7 +24,7 @@
<view class="profile-left">
<view class="avatar">
<image
src="@/static/img/add-img/home1.png"
src="@/static/img/add-img/defaultAvatar.png"
mode="aspectFit"
></image>
</view>
......
......@@ -12,7 +12,7 @@
<view class="profile-box">
<view class="profile-left">
<view class="avatar">
<image src="@/static/img/add-img/home1.png" mode="aspectFit"></image>
<image src="@/static/img/add-img/defaultAvatar.png" mode="aspectFit"></image>
</view>
<view class="info">
<view class="username">井道巡检</view>
......@@ -54,7 +54,7 @@
</view>
</view>
<view class="tip">
<image class="tip-icon" src="@/static/img/add-img/home1.png" mode="aspectFit"></image>请点击“需巡检井道”执行巡检
<image class="tip-icon" src="@/static/img/add-img/defaultAvatar.png" mode="aspectFit"></image>请点击“需巡检井道”执行巡检
</view>
<view class="tab-content">
<!-- 操作区域 -->
......
......@@ -18,7 +18,7 @@
<view class="profile-left">
<view class="avatar">
<image
src="@/static/img/add-img/home1.png"
src="@/static/img/add-img/defaultAvatar.png"
mode="aspectFit"
></image>
</view>
......
import _Path from "@/constant/ioPath";
export default class SqlliteDB {
// 数据库名称
dbName = "inspect";
open = false;
inst = null;
static async initSqlliteDB() {
if (!this.inst) {
this.inst = new SqlliteDB();
await this.inst.openDB();
return this.inst;
}
return this.inst;
}
// 打开数据库 不存在则创建,否则打开
async openDB() {
if (this.isOpen()) {
console.log("isOpen");
return;
}
console.log("db path:" + _Path.getDbPath() + `${this.dbName}.db`);
let that = this;
return new Promise((resolve, reject) => {
plus.sqlite.openDatabase({
name: this.dbName,
path: _Path.getDbPath() + `${this.dbName}.db`,
success(res) {
that.open = true;
resolve();
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 检查数据库
async checkDB() {
if (!this.open) {
if (!this.isOpen()) {
await this.openDB();
}
}
}
// 关闭数据库
async closeDB() {
let open = await this.openDB();
return new Promise((resolve, reject) => {
if (!open) {
resolve();
} else {
plus.sqlite.closeDatabase({
name: this.dbName,
success(res) {
this.inst = null;
this.open = false;
resolve();
},
fail(e) {
reject(e);
},
});
}
});
}
// 是否打开了数据库
isOpen() {
return plus.sqlite.isOpenDatabase({
name: this.dbName,
path: `_doc/db/${this.dbName}.db`,
});
}
// 创建表
async createTable(tableName, filedList) {
if (!tableName || !filedList || filedList.length === 0) {
throw new Error("数据库创建失败");
}
let fieldSql = "";
console.log(filedList, "filedList--------------------->>>>");
filedList.map((val, idx) => {
fieldSql = fieldSql + '"' + val.field + '" ' + val.format;
if (idx !== filedList.length - 1) {
fieldSql = fieldSql + ",";
}
});
return this.executeSQL(
`CREATE TABLE IF NOT EXISTS ${tableName}(${fieldSql})`
);
}
// 移除表
// async removeTable(tableName) {
// return this.executeSQL(`DROP TABLE IF EXISTS ${tableName}`);
// }
// 清空表
async deleteTable(tableName) {
return this.executeSQL(`DELETE FROM ${tableName}`);
}
// 增删改使用
async executeSQL(sql) {
// console.log('excuteSQL:' + sql)
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(res) {
resolve();
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 查询使用
async selectSQL(sql) {
await this.checkDB();
// console.log('selectSQL:' + sql)
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success(res) {
// console.log("数据", res);
resolve(res);
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 事务
async openTransaction(open) {
let oper = "open";
if (open) {
oper = open;
}
return new Promise((resolve, reject) => {
plus.sqlite.transaction({
name: this.dbName,
operation: oper,
success: function (e) {
resolve();
},
fail: function (e) {
reject(e.message);
},
});
});
}
async rollbackTransaction() {
this.openTransaction("rollback");
}
async commitTransaction() {
this.openTransaction("commit");
}
static async checkIfDataImported(sqllitedb) {
// 假设有一个表或字段来记录数据导入状态
let result = await sqllitedb.selectSQL('SELECT value FROM SYS_CONFIG WHERE key = "data_imported"');
return result && result.length > 0 && result[0].value === 'true';
}
static async markDataAsImported(sqllitedb) {
await sqllitedb.executeSQL('INSERT OR REPLACE INTO SYS_CONFIG (key, value) VALUES ("data_imported", "true")');
}
}
// 数据库名称
dbName = "inspect";
open = false;
inst = null;
static async initSqlliteDB() {
if (!this.inst) {
this.inst = new SqlliteDB();
await this.inst.openDB();
return this.inst;
}
return this.inst;
}
// 打开数据库 不存在则创建,否则打开
async openDB() {
if (this.isOpen()) {
console.log("isOpen");
return;
}
console.log("db path:" + _Path.getDbPath() + `${this.dbName}.db`);
let that = this;
return new Promise((resolve, reject) => {
plus.sqlite.openDatabase({
name: this.dbName,
path: _Path.getDbPath() + `${this.dbName}.db`,
success(res) {
that.open = true;
resolve();
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 检查数据库
async checkDB() {
if (!this.open) {
if (!this.isOpen()) {
await this.openDB();
}
}
}
// 关闭数据库
async closeDB() {
let open = await this.openDB();
return new Promise((resolve, reject) => {
if (!open) {
resolve();
} else {
plus.sqlite.closeDatabase({
name: this.dbName,
success(res) {
this.inst = null;
this.open = false;
resolve();
},
fail(e) {
reject(e);
},
});
}
});
}
// 是否打开了数据库
isOpen() {
return plus.sqlite.isOpenDatabase({
name: this.dbName,
path: `_doc/db/${this.dbName}.db`,
});
}
// 创建表
async createTable(tableName, filedList) {
if (!tableName || !filedList || filedList.length === 0) {
throw new Error("数据库创建失败");
}
let fieldSql = "";
console.log(filedList, "filedList--------------------->>>>");
filedList.map((val, idx) => {
fieldSql = fieldSql + '"' + val.field + '" ' + val.format;
if (idx !== filedList.length - 1) {
fieldSql = fieldSql + ",";
}
});
return this.executeSQL(
`CREATE TABLE IF NOT EXISTS ${tableName}(${fieldSql})`
);
}
// 移除表
// async removeTable(tableName) {
// return this.executeSQL(`DROP TABLE IF EXISTS ${tableName}`);
// }
// 清空表
async deleteTable(tableName) {
return this.executeSQL(`DELETE FROM ${tableName}`);
}
// 增删改使用
async executeSQL(sql) {
// console.log('excuteSQL:' + sql)
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(res) {
console.log('SQL execution result:', res);
resolve(res); // 暂时直接返回,方便调试
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 增删改返回最后增加的id
async executeReturnDataSQL(sql) {
console.log('Executing SQL:', sql);
let _ = this
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: _.dbName,
sql: sql,
success(res) {
const queryLastInsertIdSql = "SELECT last_insert_rowid() AS lastId";
plus.sqlite.selectSql({
name: _.dbName,
sql: queryLastInsertIdSql,
success(result) {
if (result && result.length > 0) {
let lastInsertId = result[0].lastId;
console.log('Last Insert ID:', lastInsertId);
resolve({ success: true, lastInsertId: lastInsertId });
} else {
resolve({ success: true, lastInsertId: null });
}
},
fail(e) {
reject(e);
},
});
},
fail(e) {
console.error('SQL execution failed:', e.message);
reject(e);
},
});
});
}
// 查询使用
async selectSQL(sql) {
await this.checkDB();
// console.log('selectSQL:' + sql)
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success(res) {
// console.log("数据", res);
resolve(res);
},
fail(e) {
console.log(e.message);
reject(e);
},
});
});
}
// 事务
async openTransaction(open) {
let oper = "open";
if (open) {
oper = open;
}
return new Promise((resolve, reject) => {
plus.sqlite.transaction({
name: this.dbName,
operation: oper,
success: function(e) {
resolve();
},
fail: function(e) {
reject(e.message);
},
});
});
}
async rollbackTransaction() {
this.openTransaction("rollback");
}
async commitTransaction() {
this.openTransaction("commit");
}
static async checkIfDataImported(sqllitedb) {
// 假设有一个表或字段来记录数据导入状态
let result = await sqllitedb.selectSQL('SELECT value FROM SYS_CONFIG WHERE key = "data_imported"');
return result && result.length > 0 && result[0].value === 'true';
}
static async markDataAsImported(sqllitedb) {
await sqllitedb.executeSQL(
'INSERT OR REPLACE INTO SYS_CONFIG (key, value) VALUES ("data_imported", "true")');
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论