Răsfoiți Sursa

fix: 场景联动加了手动的按钮,修复了页面一直 loading 的bug

yanglzh 1 an în urmă
părinte
comite
77e11b8fb2

+ 2 - 1
src/api/scene/index.ts

@@ -7,6 +7,7 @@ export default {
     getList: (data: any) => get('/scene/scene/list', data),
     del: (ids: number) => del('/scene/scene/delete', { ids }),
     status: (data: object) => post('/scene/scene/status', data),
+    run: (id: number) => post('/scene/scene/run', { id }),
     add: (data: any) => post('/scene/scene/add', data),
     edit: (data: any) => put('/scene/scene/edit', data),
     getDetail: (data: any) => get('/scene/scene/get', data),
@@ -16,7 +17,7 @@ export default {
     delDetail: (ids: number) => del('/scene/detail/delete', { ids }),
     getOneDetail: (data: any) => get('/scene/detail/list', data),
   },
-  log:{
+  log: {
     getList: (data: any) => get('/scene/scene_log/list', data),
     getDetail: (data: any) => get('/scene/scene_log/get', data),
     del: (ids: number) => del('/scene/scene_log/delete', { ids }),

+ 1 - 1
src/views/iot/scene/manage/detail.vue

@@ -139,7 +139,7 @@ export default defineComponent({
 			api.manage.getDetail({ "id": id }).then((res: any) => {
 				state.detail = res
 				getOneDetail();
-			}).catch(() => {
+			}).finally(() => {
 				state.loading = false
 			})
 		};

+ 10 - 3
src/views/iot/scene/manage/index.vue

@@ -54,12 +54,13 @@
 				</el-table-column>
 				<el-table-column prop="description" label="场景描述" show-overflow-tooltip v-col="'description'"></el-table-column>
 				<el-table-column prop="createdAt" label="创建时间" width="160" align="center" v-col="'createdAt'"></el-table-column>
-				<el-table-column label="操作" width="200" align="center">
+				<el-table-column label="操作" width="220" align="center">
 					<template #default="scope">
 						<el-button size="small" text type="primary" v-if="!scope.row.folderName" @click="toDetail(scope.row.id)">详情</el-button>
 						<el-button size="small" text type="warning" v-auth="'edit'" @click="addOrEdit(scope.row)">编辑</el-button>
 						<el-button size="small" text type="success" @click="onActionStatus(scope.row)" v-if="scope.row.status == 0" v-auth="'startOrStop'">启用</el-button>
 						<el-button size="small" text type="primary" @click="onActionStatus(scope.row)" v-if="scope.row.status > 0" v-auth="'startOrStop'">停用</el-button>
+						<el-button size="small" text type="danger" @click="run(scope.row)" v-if="scope.row.status > 0" v-auth="'startOrStop'">手动触发</el-button>
 						<el-button size="small" text type="info" v-auth="'del'" @click="del(scope.row)">删除</el-button>
 					</template>
 				</el-table-column>
@@ -102,15 +103,21 @@ const onActionStatus = (item: any) => {
 	if (item.status == 0) {
 		api.manage.status({ id: item.id, status: 1 }).then((res: any) => {
 			getList();
-			ElMessage.success(res.message || '操作成功');
+			ElMessage.success(res?.message || '操作成功');
 		});
 	} else {
 		api.manage.status({ id: item.id, status: 0 }).then((res: any) => {
 			getList();
-			ElMessage.success(res.message || '操作成功');
+			ElMessage.success(res?.message || '操作成功');
 		});
 	}
 }
+// 手动触发
+const run = (item: any) => {
+	api.manage.run(item.id).then((_res: any) => {
+		ElMessage.success('手动触发成功');
+	});
+}
 const del = (row: any) => {
 	ElMessageBox.confirm('是否确认删除场景名称为:"' + row.name + '"的数据项?', '提示', {
 		confirmButtonText: '确认',