diff --git a/apps/web-antd/src/views/iot/device/device/detail/modules/config.vue b/apps/web-antd/src/views/iot/device/device/detail/modules/config.vue
index d44620289..4b1706841 100644
--- a/apps/web-antd/src/views/iot/device/device/detail/modules/config.vue
+++ b/apps/web-antd/src/views/iot/device/device/detail/modules/config.vue
@@ -6,7 +6,7 @@ import { computed, ref, watchEffect } from 'vue';
import { IotDeviceMessageMethodEnum } from '@vben/constants';
-import { Alert, Button, message, Textarea } from 'ant-design-vue';
+import { Alert, Button, message, Popconfirm, Textarea } from 'ant-design-vue';
import { sendDeviceMessage, updateDevice } from '#/api/iot/device/device';
@@ -160,14 +160,13 @@ async function updateDeviceConfig() {
保存
-
+
+
diff --git a/apps/web-antd/src/views/iot/product/product/detail/modules/header.vue b/apps/web-antd/src/views/iot/product/product/detail/modules/header.vue
index 3abdc099f..c11137085 100644
--- a/apps/web-antd/src/views/iot/product/product/detail/modules/header.vue
+++ b/apps/web-antd/src/views/iot/product/product/detail/modules/header.vue
@@ -7,7 +7,13 @@ import { useAccess } from '@vben/access';
import { useVbenModal } from '@vben/common-ui';
import { ProductStatusEnum } from '@vben/constants';
-import { Button, Card, Descriptions, message, Modal } from 'ant-design-vue';
+import {
+ Button,
+ Card,
+ Descriptions,
+ message,
+ Popconfirm,
+} from 'ant-design-vue';
import {
syncProductPropertyTable,
@@ -61,41 +67,23 @@ function openEditForm(row: IotProductApi.Product) {
}
/** 发布产品 */
-function handlePublish(product: IotProductApi.Product) {
- Modal.confirm({
- title: '确认发布',
- content: `确认要发布产品「${product.name}」吗?`,
- async onOk() {
- await updateProductStatus(product.id!, ProductStatusEnum.PUBLISHED);
- message.success('发布成功');
- emit('refresh');
- },
- });
+async function handlePublish(product: IotProductApi.Product) {
+ await updateProductStatus(product.id!, ProductStatusEnum.PUBLISHED);
+ message.success('发布成功');
+ emit('refresh');
}
/** 撤销发布 */
-function handleUnpublish(product: IotProductApi.Product) {
- Modal.confirm({
- title: '确认撤销发布',
- content: `确认要撤销发布产品「${product.name}」吗?`,
- async onOk() {
- await updateProductStatus(product.id!, ProductStatusEnum.UNPUBLISHED);
- message.success('撤销发布成功');
- emit('refresh');
- },
- });
+async function handleUnpublish(product: IotProductApi.Product) {
+ await updateProductStatus(product.id!, ProductStatusEnum.UNPUBLISHED);
+ message.success('撤销发布成功');
+ emit('refresh');
}
/** 同步物模型超级表结构 */
-function handleSyncPropertyTable(product: IotProductApi.Product) {
- Modal.confirm({
- title: '确认同步',
- content: `确认要同步产品「${product.name}」的物模型超级表结构吗?`,
- async onOk() {
- await syncProductPropertyTable(product.id!);
- message.success('同步成功');
- },
- });
+async function handleSyncPropertyTable(product: IotProductApi.Product) {
+ await syncProductPropertyTable(product.id!);
+ message.success('同步成功');
}
@@ -115,32 +103,33 @@ function handleSyncPropertyTable(product: IotProductApi.Product) {
>
编辑
-
-
+
+
- 撤销发布
-
-
+
+
- 同步物模型表结构
-
+
+
diff --git a/apps/web-antd/src/views/iot/rule/scene/index.vue b/apps/web-antd/src/views/iot/rule/scene/index.vue
index b5d7d1024..3260bea5e 100644
--- a/apps/web-antd/src/views/iot/rule/scene/index.vue
+++ b/apps/web-antd/src/views/iot/rule/scene/index.vue
@@ -372,7 +372,10 @@ const [Grid, gridApi] = useVbenVxeGrid({
row.status === CommonStatusEnum.ENABLE
? 'ant-design:stop-outlined'
: 'ant-design:check-circle-outlined',
- onClick: handleToggleStatus.bind(null, row),
+ popConfirm: {
+ title: `确认${row.status === CommonStatusEnum.ENABLE ? '停用' : '启用'}场景规则「${row.name}」吗?`,
+ confirm: handleToggleStatus.bind(null, row),
+ },
},
{
label: $t('common.edit'),
diff --git a/apps/web-ele/src/views/iot/device/device/detail/modules/config.vue b/apps/web-ele/src/views/iot/device/device/detail/modules/config.vue
index 0d61a0cfe..e29070aa0 100644
--- a/apps/web-ele/src/views/iot/device/device/detail/modules/config.vue
+++ b/apps/web-ele/src/views/iot/device/device/detail/modules/config.vue
@@ -6,7 +6,13 @@ import { computed, ref, watchEffect } from 'vue';
import { IotDeviceMessageMethodEnum } from '@vben/constants';
-import { ElAlert, ElButton, ElInput, ElMessage } from 'element-plus';
+import {
+ ElAlert,
+ ElButton,
+ ElInput,
+ ElMessage,
+ ElPopconfirm,
+} from 'element-plus';
import { sendDeviceMessage, updateDevice } from '#/api/iot/device/device';
@@ -162,14 +168,17 @@ async function updateDeviceConfig() {
保存
编辑
-
- 配置推送
-
+
+
+ 配置推送
+
+
+
diff --git a/apps/web-ele/src/views/iot/product/product/detail/modules/header.vue b/apps/web-ele/src/views/iot/product/product/detail/modules/header.vue
index 521d9e083..b974bda1a 100644
--- a/apps/web-ele/src/views/iot/product/product/detail/modules/header.vue
+++ b/apps/web-ele/src/views/iot/product/product/detail/modules/header.vue
@@ -13,7 +13,7 @@ import {
ElDescriptions,
ElDescriptionsItem,
ElMessage,
- ElMessageBox,
+ ElPopconfirm,
} from 'element-plus';
import {
@@ -69,7 +69,6 @@ function openEditForm(row: IotProductApi.Product) {
/** 发布产品 */
async function handlePublish(product: IotProductApi.Product) {
- await ElMessageBox.confirm(`确认要发布产品「${product.name}」吗?`, '确认发布');
await updateProductStatus(product.id!, ProductStatusEnum.PUBLISHED);
ElMessage.success('发布成功');
emit('refresh');
@@ -77,10 +76,6 @@ async function handlePublish(product: IotProductApi.Product) {
/** 撤销发布 */
async function handleUnpublish(product: IotProductApi.Product) {
- await ElMessageBox.confirm(
- `确认要撤销发布产品「${product.name}」吗?`,
- '确认撤销发布',
- );
await updateProductStatus(product.id!, ProductStatusEnum.UNPUBLISHED);
ElMessage.success('撤销发布成功');
emit('refresh');
@@ -88,10 +83,6 @@ async function handleUnpublish(product: IotProductApi.Product) {
/** 同步物模型超级表结构 */
async function handleSyncPropertyTable(product: IotProductApi.Product) {
- await ElMessageBox.confirm(
- `确认要同步产品「${product.name}」的物模型超级表结构吗?`,
- '确认同步',
- );
await syncProductPropertyTable(product.id!);
ElMessage.success('同步成功');
}
@@ -113,32 +104,39 @@ async function handleSyncPropertyTable(product: IotProductApi.Product) {
>
编辑
-
- 发布
-
-
+ 发布
+
+
+
- 撤销发布
-
-
+ 撤销发布
+
+
+
- 同步物模型表结构
-
+
+ 同步物模型表结构
+
+
diff --git a/apps/web-ele/src/views/iot/rule/scene/index.vue b/apps/web-ele/src/views/iot/rule/scene/index.vue
index 06710a57a..5f86e2620 100644
--- a/apps/web-ele/src/views/iot/rule/scene/index.vue
+++ b/apps/web-ele/src/views/iot/rule/scene/index.vue
@@ -15,7 +15,15 @@ import {
import { IconifyIcon } from '@vben/icons';
import { CronUtils, formatDateTime } from '@vben/utils';
-import { ElCard, ElCol, ElLoading, ElMessage, ElRow, ElTag, ElTooltip } from 'element-plus';
+import {
+ ElCard,
+ ElCol,
+ ElLoading,
+ ElMessage,
+ ElRow,
+ ElTag,
+ ElTooltip,
+} from 'element-plus';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
@@ -368,7 +376,10 @@ const [Grid, gridApi] = useVbenVxeGrid({
row.status === CommonStatusEnum.ENABLE
? 'ant-design:stop-outlined'
: 'ant-design:check-circle-outlined',
- onClick: handleToggleStatus.bind(null, row),
+ popConfirm: {
+ title: `确认${row.status === CommonStatusEnum.ENABLE ? '停用' : '启用'}场景规则「${row.name}」吗?`,
+ confirm: handleToggleStatus.bind(null, row),
+ },
},
{
label: $t('common.edit'),