Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
inspection-pad-web
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
专网
inspection-pad-web
Commits
4781a716
提交
4781a716
authored
7月 23, 2025
作者:
刘守彩
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: bugs
上级
a4ebaaec
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
562 行增加
和
534 行删除
+562
-534
log.js
api/log.js
+185
-150
table.js
api/sqllite/table.js
+5
-1
home.vue
pages/home/home.vue
+4
-3
operLog.vue
pages/index/operLog.vue
+8
-11
dczt.vue
pages/inspectionContent/components/dczt.vue
+3
-3
inspectionContentList.vue
pages/inspectionContent/inspectionContentList.vue
+3
-3
inspectionContentNew.vue
pages/inspectionContent/inspectionContentNew.vue
+1
-1
shared.js
pages/inspectionContent/shared.js
+2
-0
login.vue
pages/login/login.vue
+219
-216
sampleTable.vue
pages/report/sampleTable.vue
+129
-144
jf_table_new.png
static/img/add-img/jf_table_new.png
+0
-0
zI7Z5z3b.txt
zs/zI7Z5z3b.txt
+3
-2
没有找到文件。
api/log.js
浏览文件 @
4781a716
import
SqlliteDbUtil
from
'@/utils/sqllitedb'
import
SqlliteDbUtil
from
'@/utils/sqllitedb'
import
table
from
'./sqllite/table.js'
import
table
from
'./sqllite/table.js'
import
{
import
{
fixNullVal
fixNullVal
}
from
"@/utils/common"
;
}
from
"@/utils/common"
;
// 用户
// 用户
export
default
{
export
default
{
async
selectList
()
{
async
selectList
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
try
{
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
logListName
}
`
)
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
logListName
}
`
)
return
rs
return
rs
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
console
.
log
(
e
.
message
)
}
finally
{
}
finally
{
await
sqllitedb
.
closeDB
();
await
sqllitedb
.
closeDB
();
}
}
},
},
async
pageSelect
(
data
){
// async pageSelect(data){
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
// let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
let
pre
=
(
data
.
page
-
1
)
*
data
.
size
// let pre = (data.page -1) * data.size
let
nxt
=
data
.
size
// let nxt = data.size
try
{
// try {
let
count
=
await
sqllitedb
.
selectSQL
(
`select count(*) as total from
${
table
.
logListName
}
limit 1 `
)
// let count = await sqllitedb.selectSQL(`select count(*) as total from ${table.logListName} limit 1 `)
let
sql
=
`select * from
${
table
.
logListName
}
ORDER BY time desc limit
${
nxt
}
offset
${
pre
}
`
// let sql = `select * from ${table.logListName} ORDER BY time desc limit ${nxt} offset ${pre} `
let
rs
=
await
sqllitedb
.
selectSQL
(
sql
)
// let rs = await sqllitedb.selectSQL(sql)
console
.
log
(
'sql'
,
sql
)
// console.log('sql',sql, rs)
return
{
// return {
data
:
rs
||
[],
// data:rs || [],
total
:
count
[
0
].
total
||
0
// total:count[0].total || 0
}
// }
}
catch
(
e
)
{
// } catch (e) {
console
.
log
(
e
.
message
)
// console.log(e.message)
}
finally
{
// } finally {
await
sqllitedb
.
closeDB
();
// await sqllitedb.closeDB();
}
// }
},
// },
async
addlog
(
data
)
{
async
pageSelect
(
data
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
try
{
let
pre
=
(
data
.
page
-
1
)
*
data
.
size
const
values
=
`(
let
nxt
=
data
.
size
'
${
data
.
LastSynchronizationTime
||
""
}
',
'
${
data
.
avatar
||
""
}
',
// 拼接时间范围条件
'
${
data
.
detail
||
""
}
',
let
whereClause
=
"1=1"
'
${
data
.
isAdmin
}
',
'
${
data
.
level
}
',
if
(
data
.
startTime
&&
data
.
endTime
)
{
'
${
data
.
module
}
',
whereClause
+=
` AND time BETWEEN '
${
data
.
startTime
}
00:00:00' AND '
${
data
.
endTime
}
23:59:59'`
'
${
data
.
passWord
}
',
}
'
${
data
.
roleName
}
',
'
${
data
.
time
}
',
try
{
'
${
data
.
type
}
',
// 获取总数
'
${
data
.
unitName
}
',
let
countSql
=
`SELECT count(*) as total FROM
${
table
.
logListName
}
WHERE
${
whereClause
}
LIMIT 1`
'
${
data
.
user
}
',
let
count
=
await
sqllitedb
.
selectSQL
(
countSql
)
'
${
data
.
userId
}
',
${
data
.
userType
===
null
?
'NULL'
:
`'
${
data
.
userType
}
'`
}
// 获取分页数据
)`
let
sql
=
const
sql
=
`INSERT INTO
${
table
.
logListName
}
(
`SELECT * FROM
${
table
.
logListName
}
WHERE
${
whereClause
}
ORDER BY time DESC LIMIT
${
nxt
}
OFFSET
${
pre
}
`
LastSynchronizationTime,
let
rs
=
await
sqllitedb
.
selectSQL
(
sql
)
avatar,
detail,
console
.
log
(
'sql'
,
sql
,
rs
)
isAdmin,
level,
return
{
module,
data
:
rs
||
[],
passWord,
total
:
count
[
0
]?.
total
||
0
roleName,
}
time,
}
catch
(
e
)
{
type,
console
.
log
(
e
.
message
)
unitName,
}
finally
{
user,
await
sqllitedb
.
closeDB
()
userId,
}
userType
},
) VALUES
${
values
}
`
;
async
addlog
(
data
)
{
let
rs
=
await
sqllitedb
.
selectSQL
(
sql
)
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
return
rs
try
{
}
catch
(
e
)
{
const
values
=
`(
console
.
log
(
e
.
message
)
'
${
data
.
LastSynchronizationTime
||
""
}
',
}
finally
{
'
${
data
.
avatar
||
""
}
',
await
sqllitedb
.
closeDB
();
'
${
data
.
detail
||
""
}
',
}
'
${
data
.
isAdmin
}
',
},
'
${
data
.
level
}
',
'
${
data
.
module
}
',
async
remove
(
id
)
{
'
${
data
.
passWord
}
',
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
'
${
data
.
roleName
}
',
try
{
'
${
data
.
time
}
',
if
(
!
id
)
{
'
${
data
.
type
}
',
return
'
${
data
.
unitName
}
',
}
'
${
data
.
user
}
',
let
sql
=
`delete from
${
table
.
logListName
}
where id = '
${
id
}
'`
;
'
${
data
.
userId
}
',
await
sqllitedb
.
executeSQL
(
sql
);
${
data
.
userType
===
null
?
'NULL'
:
`'
${
data
.
userType
}
'`
}
}
catch
(
e
)
{
)`
console
.
log
(
e
.
message
)
const
sql
=
`INSERT INTO
${
table
.
logListName
}
(
}
finally
{
LastSynchronizationTime,
// await sqllitedb.closeDB();
avatar,
}
detail,
},
isAdmin,
async
info
(
id
)
{
level,
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
module,
let
sql
=
`select * from
${
table
.
logListName
}
where id = '
${
id
}
'`
;
passWord,
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
roleName,
if
(
res
&&
res
.
length
>
0
)
{
time,
return
res
[
0
]
type,
}
unitName,
},
user,
userId,
userType
async
saveBatch
(
list
)
{
) VALUES
${
values
}
`
;
if
(
list
.
length
===
0
)
{
let
rs
=
await
sqllitedb
.
selectSQL
(
sql
)
return
;
return
rs
}
}
catch
(
e
)
{
console
.
log
(
'开始保存用户信息....'
+
list
.
length
)
console
.
log
(
e
.
message
)
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
}
finally
{
try
{
await
sqllitedb
.
closeDB
();
for
(
let
data
of
list
)
{
}
let
column
=
''
},
let
values
=
''
let
idx
=
0
async
remove
(
id
)
{
for
(
let
attr
in
data
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
dataField
=
table
[
'user'
].
find
(
v
=>
{
try
{
if
(
v
.
field
===
attr
)
{
if
(
!
id
)
{
return
v
return
}
}
})
let
sql
=
`delete from
${
table
.
logListName
}
where id = '
${
id
}
'`
;
if
(
!
dataField
)
{
await
sqllitedb
.
executeSQL
(
sql
);
continue
}
catch
(
e
)
{
}
console
.
log
(
e
.
message
)
column
+=
dataField
.
field
+
','
}
finally
{
values
+=
"'"
+
fixNullVal
(
data
[
attr
])
+
"',"
// await sqllitedb.closeDB();
idx
++
}
}
},
async
info
(
id
)
{
column
=
column
.
endsWith
(
','
)
?
column
.
substring
(
0
,
column
.
length
-
1
)
:
column
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
values
=
values
.
endsWith
(
','
)
?
values
.
substring
(
0
,
values
.
length
-
1
)
:
values
let
sql
=
`select * from
${
table
.
logListName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
let
sql
=
`insert into
${
table
.
logListName
}
(
${
column
}
) values(
${
values
}
)`
if
(
res
&&
res
.
length
>
0
)
{
let
has
=
await
this
.
info
(
data
.
id
)
return
res
[
0
]
if
(
has
&&
has
.
id
)
{
}
await
this
.
remove
(
data
.
id
)
},
}
await
sqllitedb
.
executeSQL
(
sql
)
}
async
saveBatch
(
list
)
{
}
catch
(
e
)
{
if
(
list
.
length
===
0
)
{
console
.
log
(
e
.
message
)
return
;
}
finally
{
}
await
sqllitedb
.
closeDB
();
console
.
log
(
'开始保存用户信息....'
+
list
.
length
)
}
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
console
.
log
(
'导入完成...'
)
try
{
}
for
(
let
data
of
list
)
{
let
column
=
''
let
values
=
''
let
idx
=
0
for
(
let
attr
in
data
)
{
let
dataField
=
table
[
'user'
].
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
let
sql
=
`insert into
${
table
.
logListName
}
(
${
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
(
'导入完成...'
)
}
}
}
\ No newline at end of file
api/sqllite/table.js
浏览文件 @
4781a716
...
@@ -113,7 +113,11 @@ module.exports = {
...
@@ -113,7 +113,11 @@ module.exports = {
{
{
field
:
"signImg"
,
field
:
"signImg"
,
format
:
"TEXT"
,
format
:
"TEXT"
,
},
},
{
field
:
"dataSource"
,
format
:
"INTEGER DEFAULT 1"
}
],
],
// 机房、井道信息表
// 机房、井道信息表
...
...
pages/home/home.vue
浏览文件 @
4781a716
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<view
class=
"container"
>
<view
class=
"container"
>
<!-- 第一个模块 -->
<!-- 第一个模块 -->
<view
class=
"header"
>
<view
class=
"header"
>
<view
class=
"title"
>
杭州内网监管在线-运维在线
</view>
<view
class=
"title"
>
杭州内网监管在线-
山南数据中心
运维在线
</view>
<view
class=
"header-buttons"
>
<view
class=
"header-buttons"
>
<view
class=
"log-button"
@
click=
"lookLog"
v-if=
"isAdmin"
>
操作日志
</view>
<view
class=
"log-button"
@
click=
"lookLog"
v-if=
"isAdmin"
>
操作日志
</view>
<div
class=
"exit-button"
@
click=
"logOut"
>
<div
class=
"exit-button"
@
click=
"logOut"
>
...
@@ -188,12 +188,13 @@ export default {
...
@@ -188,12 +188,13 @@ export default {
left: 50%;
left: 50%;
transform: translateX(-50%);
transform: translateX(-50%);
ont-family: PingFangSC-Medium;
ont-family: PingFangSC-Medium;
font-size: 3
2
px;
font-size: 3
0
px;
color: #000000;
color: #000000;
text-align: center;
text-align: center;
line-height: 40px;
line-height: 40px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
font-weight: 500;
font-weight: 500;
white-space: nowrap;
}
}
.header-buttons {
.header-buttons {
...
...
pages/index/operLog.vue
浏览文件 @
4781a716
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
<!-- 搜索区域 -->
<!-- 搜索区域 -->
<view
class=
"search-com"
>
<view
class=
"search-com"
>
<view
class=
"search-com-left"
>
<view
class=
"search-com-left"
>
<uni-data-select
class=
"uni-search-item"
v-model=
"searchFrom.type"
:localdata=
"typeList"
<
!--
<
uni-data-select
class=
"uni-search-item"
v-model=
"searchFrom.type"
:localdata=
"typeList"
@
change=
"change"
placeholder=
"操作类型:全部"
:key=
"new Date().getTime()"
></uni-data-select>
@
change=
"change"
placeholder=
"操作类型:全部"
:key=
"new Date().getTime()"
></uni-data-select>
-->
<view
class=
"search-com-right"
>
<view
class=
"search-com-right"
>
<uni-datetime-picker
class=
"uni-datetime-picker"
type=
"daterange"
<uni-datetime-picker
class=
"uni-datetime-picker"
type=
"daterange"
...
@@ -148,13 +148,8 @@
...
@@ -148,13 +148,8 @@
},
},
timeChange
(
val
)
{
timeChange
(
val
)
{
let
temp
=
[...
val
];
this
.
searchForm
.
startTime
=
val
[
0
]
||
""
;
if
(
val
.
length
&&
val
[
0
]
==
val
[
1
])
{
this
.
searchForm
.
endTime
=
val
[
1
]
||
""
;
temp
[
1
]
=
`
${
temp
[
1
]}
23:59:59`
;
}
this
.
searchForm
.
startTime
=
temp
[
0
]
||
""
;
this
.
searchForm
.
endTime
=
temp
[
1
]
||
""
;
this
.
getData
();
this
.
getData
();
},
},
...
@@ -173,11 +168,13 @@
...
@@ -173,11 +168,13 @@
}
=
this
.
searchForm
;
}
=
this
.
searchForm
;
let
data
=
{
let
data
=
{
page
:
2
,
page
:
2
,
size
:
10
size
:
10
,
}
}
let
res
=
await
this
.
$logApi
.
pageSelect
({
let
res
=
await
this
.
$logApi
.
pageSelect
({
page
:
this
.
pageCurrent
,
page
:
this
.
pageCurrent
,
size
:
this
.
pageSize
size
:
this
.
pageSize
,
startTime
,
endTime
})
})
if
(
res
)
{
if
(
res
)
{
this
.
total
=
res
.
total
this
.
total
=
res
.
total
...
...
pages/inspectionContent/components/dczt.vue
浏览文件 @
4781a716
...
@@ -140,7 +140,7 @@ export default {
...
@@ -140,7 +140,7 @@ export default {
conclusion
:
""
,
conclusion
:
""
,
settingLabel
:
"设定电池电压"
,
settingLabel
:
"设定电池电压"
,
settingLabelShow
:
"设定电压"
,
settingLabelShow
:
"设定电压"
,
setting
:
this
.
jfType
===
"3"
?
"2V-2.35V"
:
"2V-2.3
5V"
,
//设定温度值
setting
:
"10V-1
5V"
,
//设定温度值
// value: "", //输入温度
// value: "", //输入温度
unit
:
"V"
,
//单位
unit
:
"V"
,
//单位
photos
:
[],
photos
:
[],
...
@@ -155,7 +155,7 @@ export default {
...
@@ -155,7 +155,7 @@ export default {
conclusion
:
""
,
conclusion
:
""
,
settingLabel
:
"设定电池温度"
,
settingLabel
:
"设定电池温度"
,
settingLabelShow
:
"设定温度"
,
settingLabelShow
:
"设定温度"
,
setting
:
"10℃-
40
℃"
,
//设定湿度值
setting
:
"10℃-
35
℃"
,
//设定湿度值
// value: "", //输入湿度
// value: "", //输入湿度
unit
:
"℃"
,
//单位
unit
:
"℃"
,
//单位
photos
:
[],
photos
:
[],
...
@@ -170,7 +170,7 @@ export default {
...
@@ -170,7 +170,7 @@ export default {
conclusion
:
""
,
conclusion
:
""
,
settingLabel
:
"设定电池内阻"
,
settingLabel
:
"设定电池内阻"
,
settingLabelShow
:
"设定内阻"
,
settingLabelShow
:
"设定内阻"
,
setting
:
this
.
jfType
===
"3"
?
"<
50mΩ"
:
"<5
0mΩ"
,
//设定湿度值
setting
:
this
.
jfType
===
"3"
?
"<
10mΩ"
:
"<1
0mΩ"
,
//设定湿度值
// value: "", //输入湿度
// value: "", //输入湿度
unit
:
"mΩ"
,
//单位
unit
:
"mΩ"
,
//单位
photos
:
[],
photos
:
[],
...
...
pages/inspectionContent/inspectionContentList.vue
浏览文件 @
4781a716
...
@@ -282,7 +282,7 @@ export default {
...
@@ -282,7 +282,7 @@ export default {
options
:
{},
//存储数据
options
:
{},
//存储数据
backValue
:
""
,
backValue
:
""
,
all_data
:
[],
//所有数据
all_data
:
[],
//所有数据
jfType
:
"
0
"
,
//机房类型
jfType
:
"
2
"
,
//机房类型
allIsSubmitOne
:
false
,
allIsSubmitOne
:
false
,
startDialogData
:
{
startDialogData
:
{
text
:
[],
text
:
[],
...
@@ -547,7 +547,7 @@ export default {
...
@@ -547,7 +547,7 @@ export default {
}
}
console
.
log
(
"this.detailsItem"
,
this
.
detailsItem
);
console
.
log
(
"this.detailsItem"
,
this
.
detailsItem
);
},
},
startDialogBtn
(
name
=
"山南UPS间"
,
jfType
=
"
0
"
,
value
=
"1"
)
{
startDialogBtn
(
name
=
"山南UPS间"
,
jfType
=
"
2
"
,
value
=
"1"
)
{
let
item
=
this
.
findTargetObject
(
this
.
listData
);
let
item
=
this
.
findTargetObject
(
this
.
listData
);
console
.
log
(
"即将操作的机房"
,
item
);
console
.
log
(
"即将操作的机房"
,
item
);
...
@@ -563,7 +563,7 @@ export default {
...
@@ -563,7 +563,7 @@ export default {
this
.
value
=
value
;
this
.
value
=
value
;
this
.
$refs
.
startDialog
.
open
();
this
.
$refs
.
startDialog
.
open
();
},
},
startDialog
(
name
=
"山南UPS间"
,
jfType
=
"
0
"
,
value
=
"1"
)
{
startDialog
(
name
=
"山南UPS间"
,
jfType
=
"
2
"
,
value
=
"1"
)
{
this
.
name
=
name
;
this
.
name
=
name
;
this
.
jfType
=
jfType
;
this
.
jfType
=
jfType
;
this
.
value
=
value
;
this
.
value
=
value
;
...
...
pages/inspectionContent/inspectionContentNew.vue
浏览文件 @
4781a716
...
@@ -210,7 +210,7 @@ export default {
...
@@ -210,7 +210,7 @@ export default {
},
//弹窗文案
},
//弹窗文案
listData
:
[],
listData
:
[],
name
:
""
,
name
:
""
,
jfType
:
"
0
"
,
jfType
:
"
2
"
,
value
:
"1"
,
value
:
"1"
,
paramsObjFirst
:
{},
paramsObjFirst
:
{},
all_data
:
[],
all_data
:
[],
...
...
pages/inspectionContent/shared.js
浏览文件 @
4781a716
...
@@ -34,6 +34,7 @@ export function dataToSql(data) {
...
@@ -34,6 +34,7 @@ export function dataToSql(data) {
createTime
:
data
.
id
?
data
.
createTime
:
`
${
new
Date
().
getTime
()}
`
,
createTime
:
data
.
id
?
data
.
createTime
:
`
${
new
Date
().
getTime
()}
`
,
updateTime
:
`
${
new
Date
().
getTime
()}
`
,
updateTime
:
`
${
new
Date
().
getTime
()}
`
,
inspectionData
:
data
.
originData
,
inspectionData
:
data
.
originData
,
dataSource
:
data
.
dataSource
};
};
console
.
log
(
"dataToSql"
,
send
);
console
.
log
(
"dataToSql"
,
send
);
return
send
;
return
send
;
...
@@ -85,6 +86,7 @@ export function sqlToData(sqlData) {
...
@@ -85,6 +86,7 @@ export function sqlToData(sqlData) {
inspectionNumber
,
// 已巡检数量
inspectionNumber
,
// 已巡检数量
allIsSubmitOne
,
// 是否全部填写完成
allIsSubmitOne
,
// 是否全部填写完成
isSign
:
!!
sqlData
.
signImg
,
// 是否有签名
isSign
:
!!
sqlData
.
signImg
,
// 是否有签名
dataSource
:
sqlData
.
dataSource
};
};
return
ret
;
return
ret
;
...
...
pages/login/login.vue
浏览文件 @
4781a716
<
template
>
<
template
>
<!-- 登录页 -->
<!-- 登录页 -->
<view
class=
"content"
>
<view
class=
"content"
>
<view
class=
"login_wrap"
>
<view
class=
"login_wrap"
>
<view
class=
"top-module"
>
<view
class=
"top-module"
>
<image
src=
"@/static/logo.png"
mode=
"aspectFit"
alt=
""
/>
<image
src=
"@/static/logo.png"
mode=
"aspectFit"
alt=
""
/>
<view
class=
"title"
>
杭州内网监管在线-运维在线
</view>
<view
class=
"title"
>
</view>
杭州内网监管在线-山南数据中心运维在线
<view
class=
"form_wrap"
>
</view>
<view
class=
"input_wrap"
>
</view>
<uni-easyinput
class=
"log-input"
clearSize=
"0"
v-model=
"person.account"
prefixIcon=
"person"
<view
class=
"form_wrap"
>
placeholder=
"用户名"
></uni-easyinput>
<view
class=
"input_wrap"
>
<uni-easyinput
v-if=
"passwordVisible"
class=
"log-input"
prefixIcon=
"locked"
clearSize=
"0"
<uni-easyinput
class=
"log-input"
clearSize=
"0"
v-model=
"person.account"
prefixIcon=
"person"
v-model=
"person.pwd"
@
iconClick=
"togglePasswordVisible"
:placeholder=
"passwordPlaceholder"
placeholder=
"用户名"
></uni-easyinput>
:passwordIcon=
"false"
:type=
"passwordVisible ? 'text' : 'password'"
></uni-easyinput>
<uni-easyinput
v-if=
"passwordVisible"
class=
"log-input"
prefixIcon=
"locked"
clearSize=
"0"
v-model=
"person.pwd"
<uni-easyinput
v-else
class=
"log-input"
prefixIcon=
"locked-filled"
clearSize=
"0"
v-model=
"person.pwd"
@
iconClick=
"togglePasswordVisible"
:placeholder=
"passwordPlaceholder"
:passwordIcon=
"false"
@
iconClick=
"togglePasswordVisible"
:placeholder=
"passwordPlaceholder"
:passwordIcon=
"false"
:type=
"passwordVisible ? 'text' : 'password'"
></uni-easyinput>
:type=
"passwordVisible ? 'text' : 'password'"
></uni-easyinput>
<uni-easyinput
v-else
class=
"log-input"
prefixIcon=
"locked-filled"
clearSize=
"0"
v-model=
"person.pwd"
</view>
@
iconClick=
"togglePasswordVisible"
:placeholder=
"passwordPlaceholder"
:passwordIcon=
"false"
<view
class=
"login_btn"
@
click=
"login"
>
:type=
"passwordVisible ? 'text' : 'password'"
></uni-easyinput>
<view
class=
"login_btn_text"
>
登录
</view>
</view>
</view>
<view
class=
"login_btn"
@
click=
"login"
>
</view>
<view
class=
"login_btn_text"
>
登录
</view>
</view>
</view>
</view>
</view>
</
template
>
</view>
</view>
<
script
>
</
template
>
import
userApi
from
"@/api/user.js"
;
import
logApi
from
"@/api/log.js"
;
<
script
>
import
SqlliteDbUtil
from
"@/utils/sqllitedb"
;
import
userApi
from
"@/api/user.js"
;
import
table
from
"@/api/sqllite/table.js"
;
import
logApi
from
"@/api/log.js"
;
import
{
import
SqlliteDbUtil
from
"@/utils/sqllitedb"
;
getUserList
import
table
from
"@/api/sqllite/table.js"
;
}
from
"@/utils/systemCofig"
;
import
{
import
{
getUserList
LOG_TYPE_ENUM
,
}
from
"@/utils/systemCofig"
;
getLogContent
,
import
{
addLog
,
LOG_TYPE_ENUM
,
readLogData
,
getLogContent
,
}
from
"@/utils/IoReadingAndWriting.js"
;
addLog
,
export
default
{
readLogData
,
components
:
{},
}
from
"@/utils/IoReadingAndWriting.js"
;
data
()
{
export
default
{
return
{
components
:
{},
person
:
{
data
()
{
account
:
"管理员"
,
// "管理员",
return
{
pwd
:
"Gly@124"
// Gly@124",
person
:
{
},
account
:
"管理员"
,
// "管理员",
backButtonPress
:
0
,
pwd
:
"Gly@124"
// Gly@124",
personList
:
[],
},
passwordVisible
:
false
,
// 是否显示密码
backButtonPress
:
0
,
db
:
null
,
personList
:
[],
};
passwordVisible
:
false
,
// 是否显示密码
},
db
:
null
,
computed
:
{
};
// 动态密码输入框 placeholder
},
passwordPlaceholder
()
{
computed
:
{
return
this
.
passwordVisible
?
"密码"
:
"********"
;
// 动态密码输入框 placeholder
},
passwordPlaceholder
()
{
},
return
this
.
passwordVisible
?
"密码"
:
"********"
;
},
created
()
{},
},
onShow
()
{},
async
mounted
()
{},
created
()
{},
// 定义返回退出
onShow
()
{},
onBackPress
(
options
)
{
async
mounted
()
{},
this
.
backButtonPress
++
;
// 定义返回退出
if
(
this
.
backButtonPress
>
1
)
{
onBackPress
(
options
)
{
uni
.
setStorageSync
(
"oper_record"
,
this
.
$store
.
state
.
oper_record
);
this
.
backButtonPress
++
;
uni
.
setStorageSync
(
"all_data"
,
this
.
$store
.
state
.
all_data
);
if
(
this
.
backButtonPress
>
1
)
{
uni
.
setStorageSync
(
"now_user"
,
this
.
$store
.
state
.
now_user
);
uni
.
setStorageSync
(
"oper_record"
,
this
.
$store
.
state
.
oper_record
);
uni
.
setStorageSync
(
uni
.
setStorageSync
(
"all_data"
,
this
.
$store
.
state
.
all_data
);
"last_time"
,
uni
.
setStorageSync
(
"now_user"
,
this
.
$store
.
state
.
now_user
);
this
.
$store
.
state
.
now_user
.
LastSynchronizationTime
uni
.
setStorageSync
(
);
"last_time"
,
plus
.
runtime
.
quit
();
this
.
$store
.
state
.
now_user
.
LastSynchronizationTime
}
else
{
);
plus
.
nativeUI
.
toast
(
"再划一次退出应用"
);
plus
.
runtime
.
quit
();
}
}
else
{
setTimeout
(
function
()
{
plus
.
nativeUI
.
toast
(
"再划一次退出应用"
);
this
.
backButtonPress
=
0
;
}
},
1000
);
setTimeout
(
function
()
{
return
true
;
this
.
backButtonPress
=
0
;
},
},
1000
);
methods
:
{
return
true
;
// 切换密码显示/隐藏
},
togglePasswordVisible
()
{
methods
:
{
this
.
passwordVisible
=
!
this
.
passwordVisible
;
// 切换密码显示/隐藏
},
togglePasswordVisible
()
{
// 点击登录
this
.
passwordVisible
=
!
this
.
passwordVisible
;
},
// 点击登录
async
login
()
{
async
login
()
{
userApi
.
login
(
this
.
person
).
then
((
res
)
=>
{
userApi
.
login
(
this
.
person
).
then
((
res
)
=>
{
if
(
res
.
data
)
{
if
(
res
.
data
)
{
this
.
personList
=
res
.
data
;
this
.
personList
=
res
.
data
;
this
.
$store
.
commit
(
"SET_USER"
,
this
.
personList
);
this
.
$store
.
commit
(
"SET_USER"
,
this
.
personList
);
uni
.
setStorageSync
(
"now_user"
,
this
.
personList
);
uni
.
setStorageSync
(
"now_user"
,
this
.
personList
);
uni
.
setStorageSync
(
uni
.
setStorageSync
(
"last_time"
,
"last_time"
,
this
.
personList
.
LastSynchronizationTime
||
""
this
.
personList
.
LastSynchronizationTime
||
""
);
);
const
logContent
=
getLogContent
(
const
logContent
=
getLogContent
(
LOG_TYPE_ENUM
.
login
,
LOG_TYPE_ENUM
.
login
,
""
,
""
,
"其他"
"其他"
);
);
this
.
$logApi
.
addlog
(
logContent
)
this
.
$logApi
.
addlog
(
logContent
)
const
log_list
=
this
.
$store
.
state
.
log_list
;
const
log_list
=
this
.
$store
.
state
.
log_list
;
log_list
.
push
(
logContent
);
log_list
.
push
(
logContent
);
this
.
$store
.
commit
(
"SET_LOG_LIST"
,
log_list
);
this
.
$store
.
commit
(
"SET_LOG_LIST"
,
log_list
);
addLog
(
log_list
).
then
((
res
)
=>
{});
addLog
(
log_list
).
then
((
res
)
=>
{});
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
"/pages/home/home"
,
url
:
"/pages/home/home"
,
});
});
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
title
:
"账号密码错误,请重新输入"
,
title
:
"账号密码错误,请重新输入"
,
icon
:
"none"
,
icon
:
"none"
,
duration
:
2000
,
duration
:
2000
,
});
});
}
}
});
});
},
},
},
},
};
};
</
script
>
</
script
>
<
style
scoped
lang=
"less"
>
<
style
scoped
lang=
"less"
>
.content {
.content {
width: 100vw;
width: 100vw;
height: 100vh;
height: 100vh;
// background-color: red;
// background-color: red;
background-image: url("../../static/img/logbg.png");
background-image: url("../../static/img/logbg.png");
background-size: 100% 100%;
background-size: 100% 100%;
background-repeat: no-repeat;
background-repeat: no-repeat;
display: flex;
display: flex;
justify-content: center;
justify-content: center;
align-items: center;
align-items: center;
.top-module {
.top-module {
width: 350px;
width: 350px;
margin-bottom:
48px;
margin-bottom:
20px;
text-align: center;
text-align: center;
image {
image {
width: 88px;
width: 88px;
height: 88px;
height: 88px;
}
}
.title {
.title {
font-size:
26px;
font-size:
18px;
color: #000000;
color: #000000;
line-height: 34px;
line-height: 34px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
}
}
}
}
.login_wrap {}
.login_wrap {}
.log-input {
.log-input {
width: 350px;
width: 350px;
margin-bottom: 24px;
margin-bottom: 24px;
background: #fff;
background: #fff;
color: #4a4a4a;
color: #4a4a4a;
}
}
/deep/.is-input-border {
/deep/.is-input-border {
border-radius: 2px !important;
border-radius: 2px !important;
height: 40px !important;
height: 40px !important;
}
}
/deep/.uni-easyinput__content {
/deep/.uni-easyinput__content {
background-color: rgba(0, 0, 0, 0) !important;
background-color: rgba(0, 0, 0, 0) !important;
}
}
/deep/.uni-easyinput__placeholder-class {
/deep/.uni-easyinput__placeholder-class {
color: #4a4a4a;
color: #4a4a4a;
}
}
/deep/.is-focused {
/deep/.is-focused {
border: 1px solid #4a4a4a !important;
border: 1px solid #4a4a4a !important;
.uniui-eye-filled {
.uniui-eye-filled {
color: #4a4a4a !important;
color: #4a4a4a !important;
}
}
.uniui-eye-slash-filled {
.uniui-eye-slash-filled {
color: #4a4a4a !important;
color: #4a4a4a !important;
}
}
}
}
/deep/.uni-input-input {
/deep/.uni-input-input {
color: #4a4a4a !important;
color: #4a4a4a !important;
}
}
/deep/.uniui-clear {
/deep/.uniui-clear {
color: #4a4a4a !important;
color: #4a4a4a !important;
}
}
.login_btn {
.login_btn {
background: #3774f6;
background: #3774f6;
box-shadow: 0px 2px 14px 0px rgba(51, 104, 246, 0.24);
box-shadow: 0px 2px 14px 0px rgba(51, 104, 246, 0.24);
border-radius: 3px;
border-radius: 3px;
.login_btn_text {
.login_btn_text {
width: 350px;
width: 350px;
height: 40px;
height: 40px;
background-color: #3774f6;
background-color: #3774f6;
box-shadow: 0px 1px 4px 0px rgba(84, 116, 232, 0.16);
box-shadow: 0px 1px 4px 0px rgba(84, 116, 232, 0.16);
border-radius: 2px;
border-radius: 2px;
display: flex;
display: flex;
align-items: center;
align-items: center;
justify-content: center;
justify-content: center;
color: #fff;
color: #fff;
}
}
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
pages/report/sampleTable.vue
浏览文件 @
4781a716
<
template
>
<
template
>
<view
class=
"sampleTable"
>
<view
class=
"sampleTable"
>
<uni-nav-bar
<uni-nav-bar
:fixed=
"true"
background-color=
"rgba(214, 240, 255, 0.0)"
status-bar
rightWidth=
"300"
>
:fixed=
"true"
<block
slot=
"left"
>
background-color=
"rgba(214, 240, 255, 0.0)"
<view
class=
""
@
click=
"back"
>
status-bar
<text
class=
"iconfont icon-fanhui"
></text>
rightWidth=
"300"
</view>
>
</block>
<block
slot=
"left"
>
</uni-nav-bar>
<view
class=
""
@
click=
"back"
>
<text
class=
"iconfont icon-fanhui"
></text
<view
class=
"main"
>
></view>
<!-- 占位---不可删除 -->
</block>
<view
class=
"seize-seat"
>
</view>
</uni-nav-bar>
<view
class=
"container box-shaow-box"
>
<view
class=
"main"
>
<view
v-if=
"isJF"
class=
"image-item top-image"
>
<!-- 占位---不可删除 -->
<image
src=
"@/static/img/add-img/jf_table_new.png"
mode=
"widthFix"
></image>
<view
class=
"seize-seat"
>
</view>
</view>
<view
class=
"container box-shaow-box"
>
<view
v-else
class=
"image-item top-image"
>
<view
v-if=
"isJF"
class=
"image-item top-image"
>
<image
src=
"@/static/img/add-img/jd_table.png"
mode=
"widthFix"
></image>
<image
</view>
src=
"@/static/img/add-img/jf_table.png"
</view>
mode=
"widthFix"
</view>
></image>
</view>
</view>
</
template
>
<view
v-else
class=
"image-item top-image"
>
<
script
>
<image
export
default
{
src=
"@/static/img/add-img/jd_table.png"
data
()
{
mode=
"widthFix"
return
{
></image>
isJF
:
false
,
</view>
};
</view>
},
</view>
onNavigationBarButtonTap
(
val
)
{
</view>
uni
.
navigateBack
();
</
template
>
},
onLoad
(
options
)
{
<
script
>
this
.
isJF
=
options
.
isJF
==
1
;
export
default
{
},
data
()
{
methods
:
{
return
{
checkImage
(
val
)
{
isJF
:
false
,
let
res
=
""
;
};
res
=
`/static/img/report-table/report
${
val
+
1
}
.png`
;
},
return
res
;
onNavigationBarButtonTap
(
val
)
{
},
uni
.
navigateBack
();
back
()
{
},
uni
.
navigateBack
();
onLoad
(
options
)
{
},
this
.
isJF
=
options
.
isJF
==
1
;
},
},
};
methods
:
{
</
script
>
checkImage
(
val
)
{
let
res
=
""
;
<
style
lang=
"less"
scoped
>
res
=
`/static/img/report-table/report
${
val
+
1
}
.png`
;
.sampleTable {
return
res
;
width: 100%;
},
height: 100%;
back
()
{
background-image: linear-gradient(90deg,
uni
.
navigateBack
();
#e9f7fe 0%,
},
#dceffe 40%,
},
#d5ebfd 66%,
};
#c9e8fe 100%);
</
script
>
.main {
<
style
lang=
"less"
scoped
>
margin-top: -44px;
.sampleTable {
width: 100%;
width: 100%;
height: 100%;
background-size: 100% 40rpx;
background-image: linear-gradient(
background-repeat: no-repeat;
90deg,
#e9f7fe 0%,
.container {
#dceffe 40%,
margin: 0 auto;
#d5ebfd 66%,
height: calc(100vh - 44px - var(--status-bar-height) - 20px);
#c9e8fe 100%
padding: 23.53rpx 17.65rpx;
);
padding-bottom: 0;
.main {
overflow: auto;
margin-top: -44px;
display: flex;
width: 100%;
flex-wrap: wrap;
justify-sampletable: space-between;
background-size: 100% 40rpx;
background-repeat: no-repeat;
.image-item {
text-align: center;
.container {
width: 80%;
margin: 0 auto;
height: 100%;
width: 730rpx;
background-color: #ffffff;
height: calc(100vh - 44px - var(--status-bar-height) - 20px);
border-radius: 4px;
padding: 23.53rpx 17.65rpx;
margin: 0 auto;
padding-bottom: 0;
}
// width: 341.18rpx;
.top-image {
overflow: auto;
height: 288.24rpx;
display: flex;
}
flex-wrap: wrap;
justify-sampletable: space-between;
image {
width: 100%;
.image-item {
box-shadow: 0px 0px 9.41rpx 0px rgba(84, 116, 232, 0.2);
text-align: center;
}
width: 60%;
}
height: 100%;
}
background-color: #ffffff;
border-radius: 4px;
.seize-seat {
margin: 0 auto;
height: 50px;
}
width: 100%;
background-image: linear-gradient(90deg,
.top-image {
#e9f7fe 0%,
height: 288.24rpx;
#dceffe 40%,
}
#d5ebfd 66%,
#c9e8fe 100%);
image {
}
width: 100%;
box-shadow: 0px 0px 9.41rpx 0px rgba(84, 116, 232, 0.2);
// 导航栏样式
// object-fit: contain;
.uni-nav-bar-text {
}
height: 36px;
}
width: 36px;
}
background: #ffffff;
border: 0.4px solid rgba(224, 224, 224, 1);
.seize-seat {
border-radius: 18px;
height: 50px;
border-radius: 50%;
width: 100%;
color: #333;
background-image: linear-gradient(
text-align: center;
90deg,
#e9f7fe 0%,
.iconfont {
#dceffe 40%,
font-size: 20px;
#d5ebfd 66%,
line-height: 36px;
#c9e8fe 100%
}
);
}
}
}
// 导航栏样式
</
style
>
.uni-nav-bar-text {
\ No newline at end of file
height: 36px;
width: 36px;
background: #ffffff;
border: 0.4px solid rgba(224, 224, 224, 1);
border-radius: 18px;
border-radius: 50%;
color: #333;
text-align: center;
.iconfont {
font-size: 20px;
line-height: 36px;
}
}
}
</
style
>
static/img/add-img/jf_table_new.png
0 → 100644
浏览文件 @
4781a716
481.5 KB
zs/zI7Z5z3b.txt
浏览文件 @
4781a716
zI7Z5z3b
别名:__uni__a11bfd5
\ No newline at end of file
密码:zI7Z5z3b
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论