diff --git a/src/api/safety/clouddeviceposition.ts b/src/api/safety/clouddeviceposition.ts
new file mode 100644
index 0000000..c90df2f
--- /dev/null
+++ b/src/api/safety/clouddeviceposition.ts
@@ -0,0 +1,11 @@
+import request from '/@/utils/request';
+
+/**
+ * 获取所有设备位置(校门)列表
+ */
+export const listAll = () => {
+ return request({
+ url: '/safety/clouddeviceposition/listAll',
+ method: 'get',
+ });
+};
\ No newline at end of file
diff --git a/src/api/stuwork/dormliveapply.ts b/src/api/stuwork/dormliveapply.ts
index 6568ca3..ff95f46 100644
--- a/src/api/stuwork/dormliveapply.ts
+++ b/src/api/stuwork/dormliveapply.ts
@@ -72,3 +72,32 @@ export const exportData = (query?: any) => {
responseType: 'blob',
});
};
+
+/**
+ * 审批留宿申请
+ * @param id 申请ID
+ * @param auditStatus 审核状态(2-通过,3-不通过)
+ * @param auditRemark 审核备注
+ */
+export const auditApply = (id: string, auditStatus: string, auditRemark?: string) => {
+ return request({
+ url: '/stuwork/dormliveapply/audit',
+ method: 'post',
+ params: { id, auditStatus, auditRemark },
+ });
+};
+
+/**
+ * 批量审批留宿申请
+ * @param ids 申请ID列表
+ * @param auditStatus 审核状态(2-通过,3-不通过)
+ * @param auditRemark 审核备注
+ */
+export const batchAuditApply = (ids: string[], auditStatus: string, auditRemark?: string) => {
+ return request({
+ url: '/stuwork/dormliveapply/batchAudit',
+ method: 'post',
+ data: ids,
+ params: { auditStatus, auditRemark },
+ });
+};
diff --git a/src/views/stuwork/classattendance/index.vue b/src/views/stuwork/classattendance/index.vue
index 9a5704c..27fe342 100644
--- a/src/views/stuwork/classattendance/index.vue
+++ b/src/views/stuwork/classattendance/index.vue
@@ -98,11 +98,22 @@
{{ formatStudentStatus(scope.row.stuStatus) }}
-
+
-