Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
inspection-pad-web
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
专网
inspection-pad-web
Commits
3419a7e0
提交
3419a7e0
authored
4月 08, 2025
作者:
zs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
表结构更改
上级
691cf0cd
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
698 行增加
和
657 行删除
+698
-657
inspect.js
api/inspect.js
+113
-101
init.js
api/sqllite/init.js
+5
-5
table.js
api/sqllite/table.js
+1
-1
index.vue
components/inspectionItem/index.vue
+1
-1
content.vue
pages/home/content.vue
+1
-1
home.vue
pages/home/home.vue
+1
-1
homeCopy.vue
pages/home/homeCopy.vue
+1
-1
inspectionContentList.vue
pages/inspectionContent/inspectionContentList.vue
+2
-2
inspectionContentNew.vue
pages/inspectionContent/inspectionContentNew.vue
+1
-1
index.vue
pages/inspectionManagement/index.vue
+350
-357
shaftInspectionList.vue
pages/shaftInspection/shaftInspectionList.vue
+1
-1
shaftInspectionNew - 副本.vue
pages/shaftInspection/shaftInspectionNew - 副本.vue
+2
-2
shaftInspectionNew.vue
pages/shaftInspection/shaftInspectionNew.vue
+1
-1
defaultAvatar.png
static/img/add-img/defaultAvatar.png
+0
-0
sqllitedb.js
utils/sqllitedb.js
+218
-182
没有找到文件。
api/inspect.js
浏览文件 @
3419a7e0
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
api/sqllite/init.js
浏览文件 @
3419a7e0
...
...
@@ -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
)
{
...
...
api/sqllite/table.js
浏览文件 @
3419a7e0
...
...
@@ -51,7 +51,7 @@ module.exports = {
inspectionRecordName
:
"INSPECTION_RECORD"
,
inspectionRecord
:
[{
field
:
"id"
,
format
:
"INTEGER
PRIMARY KEY AUTOINCREMENT"
,
format
:
"INTEGER PRIMARY KEY AUTOINCREMENT"
,
},
{
field
:
"inspectionType"
,
...
...
components/inspectionItem/index.vue
浏览文件 @
3419a7e0
...
...
@@ -17,7 +17,7 @@
<text>
编号:
</text>
<text
class=
"code-num"
>
{{
details
.
inspectionCode
}}
</text>
<text>
巡检日期:
</text>
<text
class=
"code-num"
>
{{
details
.
submit
Time
}}
</text>
<text
class=
"code-num"
>
{{
details
.
inspection
Time
}}
</text>
</view>
</view>
<view
class=
"img"
>
...
...
pages/home/content.vue
浏览文件 @
3419a7e0
...
...
@@ -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"
>
...
...
pages/home/home.vue
浏览文件 @
3419a7e0
...
...
@@ -33,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"
...
...
pages/home/homeCopy.vue
浏览文件 @
3419a7e0
...
...
@@ -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>
...
...
pages/inspectionContent/inspectionContentList.vue
浏览文件 @
3419a7e0
...
...
@@ -22,7 +22,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>
...
...
@@ -164,7 +164,7 @@
<view
class=
"first-row"
>
<image
class=
"icon"
src=
"@/static/img/add-img/
home1
.png"
src=
"@/static/img/add-img/
defaultAvatar
.png"
></image>
<text
class=
"status"
>
{{
card
.
statusLable
}}
</text>
</view>
...
...
pages/inspectionContent/inspectionContentNew.vue
浏览文件 @
3419a7e0
...
...
@@ -495,7 +495,7 @@ export default {
const
send
=
dataToSql
(
data
);
const
api
=
this
.
uid
?
inspectApi
.
update
:
inspectApi
.
save
;
api
(
this
.
uid
?
{
id
:
this
.
uid
,
...
send
}
:
send
).
then
((
res
)
=>
{
console
.
log
(
"保存成功"
);
console
.
log
(
"保存成功"
,
res
);
});
},
// 提交
...
...
pages/inspectionManagement/index.vue
浏览文件 @
3419a7e0
<
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
pages/shaftInspection/shaftInspectionList.vue
浏览文件 @
3419a7e0
...
...
@@ -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>
...
...
pages/shaftInspection/shaftInspectionNew - 副本.vue
浏览文件 @
3419a7e0
...
...
@@ -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"
>
<!-- 操作区域 -->
...
...
pages/shaftInspection/shaftInspectionNew.vue
浏览文件 @
3419a7e0
...
...
@@ -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>
...
...
static/img/add-img/defaultAvatar.png
0 → 100644
浏览文件 @
3419a7e0
18.9 KB
utils/sqllitedb.js
浏览文件 @
3419a7e0
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论