Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
inspection-pad-web
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
专网
inspection-pad-web
Commits
6ca835ae
提交
6ca835ae
authored
4月 08, 2025
作者:
JaxBBLL
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' of
https://git.yfzx.zjtys.com.cn/privateNetwork/inspection-pad-web
into dev
上级
10febf10
1d5ebf7f
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
350 行增加
和
232 行删除
+350
-232
assRoom.js
api/assRoom.js
+106
-74
hoistway.js
api/hoistway.js
+30
-9
inspect.js
api/inspect.js
+139
-108
user.js
api/user.js
+75
-41
没有找到文件。
api/assRoom.js
浏览文件 @
6ca835ae
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
.
assRoomName
}
`
);
return
rs
;
},
async
selectRoomList
(
roomType
=
1
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
assRoomName
}
where roomType =
${
roomType
}
`
);
return
rs
;
},
async
selectList
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
assRoomName
}
`
);
return
rs
;
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
async
info
(
id
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
let
sql
=
`select * from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
];
}
return
null
;
},
async
remove
(
id
)
{
if
(
!
id
)
{
return
;
}
let
sql
=
`delete from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
await
sqllitedb
.
executeSQL
(
sql
);
},
async
saveBatch
(
list
)
{
if
(
list
.
length
===
0
)
{
return
;
}
console
.
log
(
'开始保存巡检信息....'
+
list
)
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
[
'assRoom'
].
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
.
assRoomName
}
(
${
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
selectRoomList
(
roomType
=
1
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
assRoomName
}
where roomType =
${
roomType
}
`
);
return
rs
;
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
info
(
id
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
sql
=
`select * from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
];
}
return
null
;
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
remove
(
id
)
{
if
(
!
id
)
{
return
;
}
let
sql
=
`delete from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
try
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
await
sqllitedb
.
executeSQL
(
sql
);
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
saveBatch
(
list
)
{
if
(
list
.
length
===
0
)
{
return
;
}
console
.
log
(
'开始保存巡检信息....'
+
list
)
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
[
'assRoom'
].
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
.
assRoomName
}
(
${
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/hoistway.js
浏览文件 @
6ca835ae
...
...
@@ -9,24 +9,45 @@ export default {
async
selectList
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
assRoomName
}
`
)
return
rs
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
assRoomName
}
`
)
return
rs
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
remove
(
id
)
{
if
(
!
id
)
{
return
}
let
sql
=
`delete from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
await
sqllitedb
.
executeSQL
(
sql
);
try
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
await
sqllitedb
.
executeSQL
(
sql
);
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
info
(
id
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
sql
=
`select * from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
]
try
{
let
sql
=
`select * from
${
table
.
assRoomName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
]
}
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
saveBatch
(
list
)
{
if
(
list
.
length
===
0
)
{
...
...
@@ -41,7 +62,7 @@ export default {
let
idx
=
0
for
(
let
attr
in
data
)
{
let
dataField
=
table
[
'assBuilding'
].
find
(
v
=>
{
if
(
v
.
field
===
attr
)
{
return
v
}
...
...
api/inspect.js
浏览文件 @
6ca835ae
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
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
);
debugger
;
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
selectList
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
inspectionRecordName
}
`
);
return
rs
;
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
finally
{
await
sqllitedb
.
closeDB
();
}
column
=
column
.
endsWith
(
","
)
?
column
.
substring
(
0
,
column
.
length
-
1
)
:
column
;
values
=
values
.
endsWith
(
","
)
?
values
.
substring
(
0
,
values
.
length
-
1
)
:
values
;
},
async
selectDataForTime
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`SELECT *,strftime( '%Y年%m月',createTime) AS yearMonth FROM
${
table
.
inspectionRecordName
}
order by createTime desc`
);
return
rs
;
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
finally
{
await
sqllitedb
.
closeDB
();
}
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
}
(
},
async
info
(
id
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
try
{
let
sql
=
`select * from
${
table
.
inspectionRecordName
}
where id = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
debugger
;
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
];
}
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
remove
(
id
)
{
if
(
!
id
)
{
return
;
}
let
sql
=
`delete from
${
table
.
inspectionRecordName
}
where id = '
${
id
}
'`
;
try
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
();
await
sqllitedb
.
executeSQL
(
sql
);
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
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
;
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,
...
...
@@ -115,24 +145,24 @@ export default {
'
${
JSON
.
stringify
(
data
.
inspectionData
)}
'
);
`
;
let
result
=
await
sqllitedb
.
executeReturnDataSQL
(
sql
);
console
.
log
(
result
,
"有有有有有有"
);
return
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
let
result
=
await
sqllitedb
.
executeReturnDataSQL
(
sql
);
console
.
log
(
result
,
"有有有有有有"
);
return
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
}
',
...
...
@@ -147,12 +177,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/user.js
浏览文件 @
6ca835ae
...
...
@@ -9,67 +9,101 @@ export default {
async
selectList
()
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
userName
}
`
)
return
rs
try
{
let
rs
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
userName
}
`
)
return
rs
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
login
(
data
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
{
account
,
pwd
}
=
data
const
sql
=
`select * from
${
table
.
userName
}
where user = '
${
account
}
'`
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
try
{
let
{
account
,
pwd
}
=
data
const
sql
=
`select * from
${
table
.
userName
}
where user = '
${
account
}
'`
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
const
user
=
res
[
0
]
return
{
data
:
user
,
msg
:
'登录成功'
};
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
const
user
=
res
[
0
]
return
{
data
:
user
,
msg
:
'登录成功'
};
},
async
remove
(
id
)
{
if
(
!
id
)
{
return
}
let
sql
=
`delete from
${
table
.
userName
}
where userId = '
${
id
}
'`
;
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
await
sqllitedb
.
executeSQL
(
sql
);
try
{
if
(
!
id
)
{
return
}
let
sql
=
`delete from
${
table
.
userName
}
where userId = '
${
id
}
'`
;
await
sqllitedb
.
executeSQL
(
sql
);
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
info
(
id
)
{
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
let
sql
=
`select * from
${
table
.
userName
}
where userId = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
]
try
{
let
sql
=
`select * from
${
table
.
userName
}
where userId = '
${
id
}
'`
;
let
res
=
await
sqllitedb
.
selectSQL
(
sql
);
if
(
res
&&
res
.
length
>
0
)
{
return
res
[
0
]
}
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
changePwd
(
data
)
{
let
{
userName
,
oldPwd
,
newPwd
,
userId
}
=
data
let
sqllitedb
=
await
SqlliteDbUtil
.
initSqlliteDB
()
const
current
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
userName
}
where userId = '
${
userId
}
' and user = '
${
userName
}
'`
);
if
(
current
.
passWord
!==
oldPwd
)
{
return
{
data
:
false
,
msg
:
'原密码错误'
};
}
const
update
=
await
sqllitedb
.
executeSQL
(
`UPDATE
${
table
.
userName
}
SET passWord = '
${
newPwd
}
'
WHERE userId = '
${
userId
}
'`
);
try
{
let
{
userName
,
oldPwd
,
newPwd
,
userId
}
=
data
const
current
=
await
sqllitedb
.
selectSQL
(
`select * from
${
table
.
userName
}
where userId = '
${
userId
}
' and user = '
${
userName
}
'`
);
if
(
current
.
passWord
!==
oldPwd
)
{
return
{
data
:
false
,
msg
:
'原密码错误'
};
}
const
update
=
await
sqllitedb
.
executeSQL
(
`UPDATE
${
table
.
userName
}
SET passWord = '
${
newPwd
}
'
WHERE userId = '
${
userId
}
'`
);
return
{
data
:
true
,
msg
:
'恭喜您,密码更新成功。'
};
}
catch
(
e
)
{
console
.
log
(
e
.
message
)
}
finally
{
await
sqllitedb
.
closeDB
();
}
},
async
saveBatch
(
list
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论