From e9cb162aea5872e6d829c137ffc34309049e41cc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 28 May 2026 10:53:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=BC=B9=E7=AA=97=E8=B0=83=E7=94=A8=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BC=80=E5=8F=91=E4=BB=A3=E7=90=86=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/ai/image/manager/index.vue | 29 +++-- .../src/views/ai/knowledge/document/index.vue | 29 +++-- .../src/views/ai/knowledge/segment/index.vue | 25 ++-- .../src/views/ai/music/manager/index.vue | 29 +++-- .../crm/business/components/detail-list.vue | 36 +++--- .../src/views/crm/clue/detail/index.vue | 25 ++-- .../crm/contact/components/detail-list.vue | 36 +++--- .../src/views/crm/customer/detail/index.vue | 108 ++++++++---------- .../src/views/crm/permission/modules/list.vue | 38 +++--- .../src/views/erp/finance/account/index.vue | 29 +++-- .../src/views/erp/stock/warehouse/index.vue | 29 +++-- .../src/views/mall/product/comment/index.vue | 31 +++-- .../src/views/mall/product/spu/index.vue | 33 +++--- .../mall/promotion/coupon/template/index.vue | 25 ++-- .../mall/promotion/seckill/config/index.vue | 29 +++-- .../views/mall/trade/brokerage/user/index.vue | 33 +++--- .../src/views/mes/dv/checkplan/index.vue | 10 +- apps/web-antd/src/views/mes/md/item/index.vue | 23 ++-- .../src/views/mes/pro/route/index.vue | 10 +- .../components/work-record-status-bar.vue | 6 +- apps/web-antd/src/views/pay/app/index.vue | 31 +++-- apps/web-antd/src/views/system/user/index.vue | 25 ++-- .../src/views/crm/clue/detail/index.vue | 25 ++-- .../src/views/crm/customer/detail/index.vue | 108 ++++++++---------- .../src/views/mall/product/spu/index.vue | 33 +++--- .../src/views/ai/image/manager/index.vue | 29 +++-- .../src/views/ai/knowledge/document/index.vue | 29 +++-- .../src/views/ai/knowledge/segment/index.vue | 25 ++-- .../src/views/ai/music/manager/index.vue | 29 +++-- .../crm/business/components/detail-list.vue | 36 +++--- .../src/views/crm/clue/detail/index.vue | 25 ++-- .../crm/contact/components/detail-list.vue | 36 +++--- .../src/views/crm/customer/detail/index.vue | 108 ++++++++---------- .../src/views/crm/permission/modules/list.vue | 38 +++--- .../src/views/erp/finance/account/index.vue | 29 +++-- .../src/views/erp/stock/warehouse/index.vue | 29 +++-- .../src/views/mall/product/comment/index.vue | 31 +++-- .../src/views/mall/product/spu/index.vue | 33 +++--- .../mall/promotion/coupon/template/index.vue | 25 ++-- .../mall/promotion/seckill/config/index.vue | 29 +++-- .../views/mall/trade/brokerage/user/index.vue | 33 +++--- .../src/views/mes/dv/checkplan/index.vue | 10 +- apps/web-ele/src/views/mes/md/item/index.vue | 35 ++---- .../web-ele/src/views/mes/pro/route/index.vue | 20 +--- .../components/work-record-status-bar.vue | 6 +- apps/web-ele/src/views/pay/app/index.vue | 31 +++-- apps/web-ele/src/views/system/user/index.vue | 25 ++-- 47 files changed, 689 insertions(+), 837 deletions(-) diff --git a/apps/web-antd/src/views/ai/image/manager/index.vue b/apps/web-antd/src/views/ai/image/manager/index.vue index 62087c743..04d048e80 100644 --- a/apps/web-antd/src/views/ai/image/manager/index.vue +++ b/apps/web-antd/src/views/ai/image/manager/index.vue @@ -38,24 +38,21 @@ async function handleUpdatePublicStatusChange( row: AiImageApi.Image, ): Promise { const text = newStatus ? '公开' : '私有'; - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确认要将该图片切换为【${text}】吗?`, - }) - .then(async () => { - // 更新图片状态 - await updateImage({ - id: row.id, - publicStatus: newStatus, - }); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新图片状态 + await updateImage({ + id: row.id, + publicStatus: newStatus, }); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/ai/knowledge/document/index.vue b/apps/web-antd/src/views/ai/knowledge/document/index.vue index e1dd551fa..5d21febd3 100644 --- a/apps/web-antd/src/views/ai/knowledge/document/index.vue +++ b/apps/web-antd/src/views/ai/knowledge/document/index.vue @@ -76,24 +76,21 @@ async function handleStatusChange( newStatus: number, row: AiKnowledgeDocumentApi.KnowledgeDocument, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.name}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新文档状态 - await updateKnowledgeDocumentStatus({ - id: row.id, - status: newStatus, - }); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新文档状态 + await updateKnowledgeDocumentStatus({ + id: row.id, + status: newStatus, }); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/ai/knowledge/segment/index.vue b/apps/web-antd/src/views/ai/knowledge/segment/index.vue index 363e6b1ad..2f9955e64 100644 --- a/apps/web-antd/src/views/ai/knowledge/segment/index.vue +++ b/apps/web-antd/src/views/ai/knowledge/segment/index.vue @@ -64,21 +64,18 @@ async function handleStatusChange( newStatus: number, row: AiKnowledgeSegmentApi.KnowledgeSegment, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将片段 ${row.id} 的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新片段状态 - await updateKnowledgeSegmentStatus(row.id!, newStatus); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新片段状态 + await updateKnowledgeSegmentStatus(row.id!, newStatus); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/ai/music/manager/index.vue b/apps/web-antd/src/views/ai/music/manager/index.vue index bfd4d4502..6d03547cd 100644 --- a/apps/web-antd/src/views/ai/music/manager/index.vue +++ b/apps/web-antd/src/views/ai/music/manager/index.vue @@ -38,24 +38,21 @@ async function handleUpdatePublicStatusChange( row: AiMusicApi.Music, ): Promise { const text = newStatus ? '公开' : '私有'; - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确认要将该音乐切换为【${text}】吗?`, - }) - .then(async () => { - // 更新音乐状态 - await updateMusic({ - id: row.id, - publicStatus: newStatus, - }); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新音乐状态 + await updateMusic({ + id: row.id, + publicStatus: newStatus, }); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/crm/business/components/detail-list.vue b/apps/web-antd/src/views/crm/business/components/detail-list.vue index 712b55e82..87f36d459 100644 --- a/apps/web-antd/src/views/crm/business/components/detail-list.vue +++ b/apps/web-antd/src/views/crm/business/components/detail-list.vue @@ -74,28 +74,24 @@ async function handleDeleteContactBusinessList() { message.error('请先选择商机后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`, - }) - .then(async () => { - const res = await deleteContactBusinessList({ - contactId: props.bizId, - businessIds: checkedRows.value.map((item) => item.id), - }); - if (res) { - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error($t('ui.actionMessage.operationFailed'))); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + const res = await deleteContactBusinessList({ + contactId: props.bizId, + businessIds: checkedRows.value.map((item) => item.id), }); + if (!res) { + throw new Error($t('ui.actionMessage.operationFailed')); + } + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 查看商机详情 */ diff --git a/apps/web-antd/src/views/crm/clue/detail/index.vue b/apps/web-antd/src/views/crm/clue/detail/index.vue index 02c356400..98117c0e4 100644 --- a/apps/web-antd/src/views/crm/clue/detail/index.vue +++ b/apps/web-antd/src/views/crm/clue/detail/index.vue @@ -83,21 +83,18 @@ function handleTransfer() { /** 转化为客户 */ async function handleTransform(): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: '确定将该线索转化为客户吗?', - }) - .then(async () => { - // 转化为客户 - await transformClue(clueId.value); - // 提示并返回成功 - message.success('转化客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 转化为客户 + await transformClue(clueId.value); + // 提示并返回成功 + message.success('转化客户成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-antd/src/views/crm/contact/components/detail-list.vue b/apps/web-antd/src/views/crm/contact/components/detail-list.vue index 832f80473..7e408cf3a 100644 --- a/apps/web-antd/src/views/crm/contact/components/detail-list.vue +++ b/apps/web-antd/src/views/crm/contact/components/detail-list.vue @@ -71,28 +71,24 @@ async function handleDeleteContactBusinessList() { message.error('请先选择联系人后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`, - }) - .then(async () => { - const res = await deleteBusinessContactList({ - businessId: props.bizId, - contactIds: checkedRows.value.map((item) => item.id), - }); - if (res) { - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error($t('ui.actionMessage.operationFailed'))); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + const res = await deleteBusinessContactList({ + businessId: props.bizId, + contactIds: checkedRows.value.map((item) => item.id), }); + if (!res) { + throw new Error($t('ui.actionMessage.operationFailed')); + } + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 创建商机联系人关联 */ diff --git a/apps/web-antd/src/views/crm/customer/detail/index.vue b/apps/web-antd/src/views/crm/customer/detail/index.vue index 925d1a5ac..8faf13e93 100644 --- a/apps/web-antd/src/views/crm/customer/detail/index.vue +++ b/apps/web-antd/src/views/crm/customer/detail/index.vue @@ -100,41 +100,35 @@ function handleTransfer() { } /** 锁定客户 */ -function handleLock(lockStatus: boolean): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleLock(lockStatus: boolean): Promise { + try { + await confirm({ content: `确定锁定客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 锁定客户 - await lockCustomer(customerId.value, lockStatus); - // 提示并返回成功 - message.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 锁定客户 + await lockCustomer(customerId.value, lockStatus); + // 提示并返回成功 + message.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); + return true; } /** 领取客户 */ -function handleReceive(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleReceive(): Promise { + try { + await confirm({ content: `确定领取客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 领取客户 - await receiveCustomer([customerId.value]); - // 提示并返回成功 - message.success('领取客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 领取客户 + await receiveCustomer([customerId.value]); + // 提示并返回成功 + message.success('领取客户成功'); + return true; } /** 分配客户 */ @@ -143,42 +137,36 @@ function handleDistributeForm() { } /** 客户放入公海 */ -function handlePutPool(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handlePutPool(): Promise { + try { + await confirm({ content: `确定将客户【${customer.value.name}】放入公海吗?`, - }) - .then(async () => { - // 放入公海 - await putCustomerPool(customerId.value); - // 提示并返回成功 - message.success('放入公海成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 放入公海 + await putCustomerPool(customerId.value); + // 提示并返回成功 + message.success('放入公海成功'); + return true; } /** 更新成交状态操作 */ async function handleUpdateDealStatus(): Promise { - return new Promise((resolve, reject) => { - const dealStatus = !customer.value.dealStatus; - confirm({ + const dealStatus = !customer.value.dealStatus; + try { + await confirm({ content: `确定更新成交状态为【${dealStatus ? '已成交' : '未成交'}】吗?`, - }) - .then(async () => { - // 更新成交状态 - await updateCustomerDealStatus(customerId.value, dealStatus); - // 提示并返回成功 - message.success('更新成交状态成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新成交状态 + await updateCustomerDealStatus(customerId.value, dealStatus); + // 提示并返回成功 + message.success('更新成交状态成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-antd/src/views/crm/permission/modules/list.vue b/apps/web-antd/src/views/crm/permission/modules/list.vue index 13f0fb723..2a2789ff9 100644 --- a/apps/web-antd/src/views/crm/permission/modules/list.vue +++ b/apps/web-antd/src/views/crm/permission/modules/list.vue @@ -94,32 +94,28 @@ function handleEdit() { } /** 删除团队成员 */ -function handleDelete() { +async function handleDelete() { if (checkedRows.value.length === 0) { message.error('请先选择团队成员后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${checkedRows.value.map((item) => item.nickname).join(',')}移出团队吗?`, - }) - .then(async () => { - const res = await deletePermissionBatch( - checkedRows.value.map((item) => item.id!), - ); - if (res) { - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error('移出失败')); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + const res = await deletePermissionBatch( + checkedRows.value.map((item) => item.id!), + ); + if (!res) { + throw new Error('移出失败'); + } + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 退出团队 */ diff --git a/apps/web-antd/src/views/erp/finance/account/index.vue b/apps/web-antd/src/views/erp/finance/account/index.vue index 4ceb7abba..2a91dbe9a 100644 --- a/apps/web-antd/src/views/erp/finance/account/index.vue +++ b/apps/web-antd/src/views/erp/finance/account/index.vue @@ -65,23 +65,20 @@ async function handleDefaultStatusChange( newStatus: boolean, row: ErpAccountApi.Account, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '设置' : '取消'; - confirm({ + const text = newStatus ? '设置' : '取消'; + try { + await confirm({ content: `确认要${text}"${row.name}"默认吗?`, - }) - .then(async () => { - // 更新默认状态 - await updateAccountDefaultStatus(row.id!, newStatus); - // 提示并返回成功 - message.success(`${text}默认成功`); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新默认状态 + await updateAccountDefaultStatus(row.id!, newStatus); + // 提示并返回成功 + message.success(`${text}默认成功`); + handleRefresh(); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/erp/stock/warehouse/index.vue b/apps/web-antd/src/views/erp/stock/warehouse/index.vue index e567fd2ec..560918fb5 100644 --- a/apps/web-antd/src/views/erp/stock/warehouse/index.vue +++ b/apps/web-antd/src/views/erp/stock/warehouse/index.vue @@ -63,23 +63,20 @@ async function handleDefaultStatusChange( newStatus: boolean, row: ErpWarehouseApi.Warehouse, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '设置' : '取消'; - confirm({ + const text = newStatus ? '设置' : '取消'; + try { + await confirm({ content: `确认要${text}"${row.name}"默认吗?`, - }) - .then(async () => { - // 更新默认状态 - await updateWarehouseDefaultStatus(row.id!, newStatus); - // 提示并返回成功 - message.success(`${text}默认成功`); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新默认状态 + await updateWarehouseDefaultStatus(row.id!, newStatus); + // 提示并返回成功 + message.success(`${text}默认成功`); + handleRefresh(); + return true; } const [FormModal, formModalApi] = useVbenModal({ diff --git a/apps/web-antd/src/views/mall/product/comment/index.vue b/apps/web-antd/src/views/mall/product/comment/index.vue index 8a5071615..e10ae6326 100644 --- a/apps/web-antd/src/views/mall/product/comment/index.vue +++ b/apps/web-antd/src/views/mall/product/comment/index.vue @@ -63,25 +63,22 @@ async function handleStatusChange( newStatus: boolean, row: MallCommentApi.Comment, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '展示' : '隐藏'; - confirm({ + const text = newStatus ? '展示' : '隐藏'; + try { + await confirm({ content: `确认要${text}该评论吗?`, - }) - .then(async () => { - // 更新状态 - await updateCommentVisible({ - id: row.id!, - visible: newStatus, - }); - // 提示并返回成功 - message.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateCommentVisible({ + id: row.id!, + visible: newStatus, }); + // 提示并返回成功 + message.success(`${text}成功`); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/mall/product/spu/index.vue b/apps/web-antd/src/views/mall/product/spu/index.vue index dbeefd6d7..205bc8174 100644 --- a/apps/web-antd/src/views/mall/product/spu/index.vue +++ b/apps/web-antd/src/views/mall/product/spu/index.vue @@ -107,26 +107,23 @@ async function handleStatusChange( newStatus: number, row: MallSpuApi.Spu, ): Promise { - return new Promise((resolve, reject) => { - // 二次确认 - const text = newStatus ? '上架' : '下架'; - confirm({ + // 二次确认 + const text = newStatus ? '上架' : '下架'; + try { + await confirm({ content: `确认要${text + row.name}吗?`, - }) - .then(async () => { - // 更新状态 - await updateStatus({ - id: row.id!, - status: newStatus, - }); - // 提示并返回成功 - message.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateStatus({ + id: row.id!, + status: newStatus, }); + // 提示并返回成功 + message.success(`${text}成功`); + return true; } /** 添加到仓库 / 回收站的状态 */ diff --git a/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue b/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue index 050a4fb6b..b6a01d3c7 100644 --- a/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue +++ b/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue @@ -60,21 +60,18 @@ async function handleStatusChange( newStatus: number, row: MallCouponTemplateApi.CouponTemplate, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.name}的状态切换为【${newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'}】吗?`, - }) - .then(async () => { - // 更新优惠券模板状态 - await updateCouponTemplateStatus(row.id!, newStatus); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新优惠券模板状态 + await updateCouponTemplateStatus(row.id!, newStatus); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue b/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue index 932e0235f..61dbd8319 100644 --- a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue +++ b/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue @@ -59,23 +59,20 @@ async function handleStatusChange( newStatus: number, row: MallSeckillConfigApi.SeckillConfig, ): Promise { - return new Promise((resolve, reject) => { - // 二次确认 - const text = row.status === 0 ? '启用' : '停用'; - confirm({ + // 二次确认 + const text = row.status === 0 ? '启用' : '停用'; + try { + await confirm({ content: `确认要${text + row.name}吗?`, - }) - .then(async () => { - // 更新状态 - await updateSeckillConfigStatus(row.id, newStatus); - // 提示并返回成功 - message.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateSeckillConfigStatus(row.id, newStatus); + // 提示并返回成功 + message.success(`${text}成功`); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue index eb263d892..26682725d 100644 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue +++ b/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue @@ -87,26 +87,23 @@ async function handleBrokerageEnabledChange( newEnabled: boolean, row: MallBrokerageUserApi.BrokerageUser, ): Promise { - return new Promise((resolve, reject) => { - const text = newEnabled ? '开通' : '关闭'; - confirm({ + const text = newEnabled ? '开通' : '关闭'; + try { + await confirm({ content: `你要将${row.nickname}的推广资格切换为【${text}】吗?`, - }) - .then(async () => { - // 更新推广资格 - await updateBrokerageEnabled({ - id: row.id!, - enabled: newEnabled, - }); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新推广资格 + await updateBrokerageEnabled({ + id: row.id!, + enabled: newEnabled, }); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/mes/dv/checkplan/index.vue b/apps/web-antd/src/views/mes/dv/checkplan/index.vue index e3fd69f70..f20a5d5ac 100644 --- a/apps/web-antd/src/views/mes/dv/checkplan/index.vue +++ b/apps/web-antd/src/views/mes/dv/checkplan/index.vue @@ -113,13 +113,19 @@ function getTableActions(row: MesDvCheckPlanApi.CheckPlan): ActionItem[] { label: '启用', type: 'link', auth: ['mes:dv-check-plan:update'], - onClick: handleEnable.bind(null, row), + popConfirm: { + title: `确认启用"${row.name}"点检保养方案?启用后将不可修改或删除。`, + confirm: handleEnable.bind(null, row), + }, } : { label: '停用', type: 'link', auth: ['mes:dv-check-plan:update'], - onClick: handleDisable.bind(null, row), + popConfirm: { + title: `确认停用"${row.name}"点检保养方案?`, + confirm: handleDisable.bind(null, row), + }, }, ); return actions; diff --git a/apps/web-antd/src/views/mes/md/item/index.vue b/apps/web-antd/src/views/mes/md/item/index.vue index 98132ab9e..cc3756a9c 100644 --- a/apps/web-antd/src/views/mes/md/item/index.vue +++ b/apps/web-antd/src/views/mes/md/item/index.vue @@ -96,19 +96,16 @@ async function handleStatusChange( newStatus: number, row: MesMdItemApi.Item, ): Promise { - return new Promise((resolve, reject) => { - Modal.confirm({ - content: `确认要将“${row.name}”物料切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - async onOk() { - await updateItemStatus(row.id!, newStatus); - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }, - onCancel() { - reject(new Error('取消操作')); - }, - }); - }); + try { + await confirm( + `确认要将"${row.name}"物料切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, + ); + } catch { + return false; + } + await updateItemStatus(row.id!, newStatus); + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antd/src/views/mes/pro/route/index.vue b/apps/web-antd/src/views/mes/pro/route/index.vue index 9a2f8d80c..c19854837 100644 --- a/apps/web-antd/src/views/mes/pro/route/index.vue +++ b/apps/web-antd/src/views/mes/pro/route/index.vue @@ -55,9 +55,13 @@ async function handleStatusChange( newStatus: number, row: MesProRouteApi.Route, ): Promise { - await confirm( - `确认要将"${row.name}"工艺路线切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - ); + try { + await confirm( + `确认要将"${row.name}"工艺路线切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, + ); + } catch { + return false; + } await updateRouteStatus(row.id!, newStatus); message.success($t('ui.actionMessage.operationSuccess')); return true; diff --git a/apps/web-antd/src/views/mes/pro/workrecord/components/work-record-status-bar.vue b/apps/web-antd/src/views/mes/pro/workrecord/components/work-record-status-bar.vue index 25c367826..52cd0ce2f 100644 --- a/apps/web-antd/src/views/mes/pro/workrecord/components/work-record-status-bar.vue +++ b/apps/web-antd/src/views/mes/pro/workrecord/components/work-record-status-bar.vue @@ -55,7 +55,11 @@ async function handleClockIn() { /** 下工 */ async function handleClockOut() { - await confirm('确认下工当前工作站?'); + try { + await confirm('确认下工当前工作站?'); + } catch { + return; + } await clockOutWorkRecord(); message.success('下工成功'); await loadMyWorkstation(); diff --git a/apps/web-antd/src/views/pay/app/index.vue b/apps/web-antd/src/views/pay/app/index.vue index 671aa1aa1..92fbc6f64 100644 --- a/apps/web-antd/src/views/pay/app/index.vue +++ b/apps/web-antd/src/views/pay/app/index.vue @@ -65,25 +65,22 @@ async function handleStatusChange( newStatus: number, row: PayAppApi.App, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'; - confirm({ + const text = newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'; + try { + await confirm({ content: `确认要${text + row.name}应用吗?`, - }) - .then(async () => { - // 更新状态 - await updateAppStatus({ - id: row.id!, - status: newStatus, - }); - // 提示并返回成功 - message.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateAppStatus({ + id: row.id!, + status: newStatus, }); + // 提示并返回成功 + message.success(`${text}成功`); + return true; } /** 生成渠道配置按钮 */ diff --git a/apps/web-antd/src/views/system/user/index.vue b/apps/web-antd/src/views/system/user/index.vue index 5d1267a8f..0da0f2d0d 100644 --- a/apps/web-antd/src/views/system/user/index.vue +++ b/apps/web-antd/src/views/system/user/index.vue @@ -138,21 +138,18 @@ async function handleStatusChange( newStatus: number, row: SystemUserApi.User, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.username}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新用户状态 - await updateUserStatus(row.id!, newStatus); - // 提示并返回成功 - message.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新用户状态 + await updateUserStatus(row.id!, newStatus); + // 提示并返回成功 + message.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-antdv-next/src/views/crm/clue/detail/index.vue b/apps/web-antdv-next/src/views/crm/clue/detail/index.vue index a0e430e20..18a762864 100644 --- a/apps/web-antdv-next/src/views/crm/clue/detail/index.vue +++ b/apps/web-antdv-next/src/views/crm/clue/detail/index.vue @@ -83,21 +83,18 @@ function handleTransfer() { /** 转化为客户 */ async function handleTransform(): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: '确定将该线索转化为客户吗?', - }) - .then(async () => { - // 转化为客户 - await transformClue(clueId.value); - // 提示并返回成功 - message.success('转化客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 转化为客户 + await transformClue(clueId.value); + // 提示并返回成功 + message.success('转化客户成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-antdv-next/src/views/crm/customer/detail/index.vue b/apps/web-antdv-next/src/views/crm/customer/detail/index.vue index 6678e382e..c7ffc4a10 100644 --- a/apps/web-antdv-next/src/views/crm/customer/detail/index.vue +++ b/apps/web-antdv-next/src/views/crm/customer/detail/index.vue @@ -100,41 +100,35 @@ function handleTransfer() { } /** 锁定客户 */ -function handleLock(lockStatus: boolean): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleLock(lockStatus: boolean): Promise { + try { + await confirm({ content: `确定锁定客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 锁定客户 - await lockCustomer(customerId.value, lockStatus); - // 提示并返回成功 - message.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 锁定客户 + await lockCustomer(customerId.value, lockStatus); + // 提示并返回成功 + message.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); + return true; } /** 领取客户 */ -function handleReceive(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleReceive(): Promise { + try { + await confirm({ content: `确定领取客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 领取客户 - await receiveCustomer([customerId.value]); - // 提示并返回成功 - message.success('领取客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 领取客户 + await receiveCustomer([customerId.value]); + // 提示并返回成功 + message.success('领取客户成功'); + return true; } /** 分配客户 */ @@ -143,42 +137,36 @@ function handleDistributeForm() { } /** 客户放入公海 */ -function handlePutPool(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handlePutPool(): Promise { + try { + await confirm({ content: `确定将客户【${customer.value.name}】放入公海吗?`, - }) - .then(async () => { - // 放入公海 - await putCustomerPool(customerId.value); - // 提示并返回成功 - message.success('放入公海成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 放入公海 + await putCustomerPool(customerId.value); + // 提示并返回成功 + message.success('放入公海成功'); + return true; } /** 更新成交状态操作 */ async function handleUpdateDealStatus(): Promise { - return new Promise((resolve, reject) => { - const dealStatus = !customer.value.dealStatus; - confirm({ + const dealStatus = !customer.value.dealStatus; + try { + await confirm({ content: `确定更新成交状态为【${dealStatus ? '已成交' : '未成交'}】吗?`, - }) - .then(async () => { - // 更新成交状态 - await updateCustomerDealStatus(customerId.value, dealStatus); - // 提示并返回成功 - message.success('更新成交状态成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新成交状态 + await updateCustomerDealStatus(customerId.value, dealStatus); + // 提示并返回成功 + message.success('更新成交状态成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-antdv-next/src/views/mall/product/spu/index.vue b/apps/web-antdv-next/src/views/mall/product/spu/index.vue index 0cb69a42f..40e9dd1da 100644 --- a/apps/web-antdv-next/src/views/mall/product/spu/index.vue +++ b/apps/web-antdv-next/src/views/mall/product/spu/index.vue @@ -107,26 +107,23 @@ async function handleStatusChange( newStatus: number, row: MallSpuApi.Spu, ): Promise { - return new Promise((resolve, reject) => { - // 二次确认 - const text = newStatus ? '上架' : '下架'; - confirm({ + // 二次确认 + const text = newStatus ? '上架' : '下架'; + try { + await confirm({ content: `确认要${text + row.name}吗?`, - }) - .then(async () => { - // 更新状态 - await updateStatus({ - id: row.id!, - status: newStatus, - }); - // 提示并返回成功 - message.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateStatus({ + id: row.id!, + status: newStatus, }); + // 提示并返回成功 + message.success(`${text}成功`); + return true; } /** 添加到仓库 / 回收站的状态 */ diff --git a/apps/web-ele/src/views/ai/image/manager/index.vue b/apps/web-ele/src/views/ai/image/manager/index.vue index 72830e7a9..6544bc146 100644 --- a/apps/web-ele/src/views/ai/image/manager/index.vue +++ b/apps/web-ele/src/views/ai/image/manager/index.vue @@ -37,24 +37,21 @@ async function handleUpdatePublicStatusChange( row: AiImageApi.Image, ): Promise { const text = newStatus ? '公开' : '私有'; - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确认要将该图片切换为【${text}】吗?`, - }) - .then(async () => { - // 更新图片状态 - await updateImage({ - id: row.id, - publicStatus: newStatus, - }); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新图片状态 + await updateImage({ + id: row.id, + publicStatus: newStatus, }); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/ai/knowledge/document/index.vue b/apps/web-ele/src/views/ai/knowledge/document/index.vue index df0fc7142..2e8ca97c4 100644 --- a/apps/web-ele/src/views/ai/knowledge/document/index.vue +++ b/apps/web-ele/src/views/ai/knowledge/document/index.vue @@ -75,24 +75,21 @@ async function handleStatusChange( newStatus: number, row: AiKnowledgeDocumentApi.KnowledgeDocument, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.name}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新文档状态 - await updateKnowledgeDocumentStatus({ - id: row.id, - status: newStatus, - }); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新文档状态 + await updateKnowledgeDocumentStatus({ + id: row.id, + status: newStatus, }); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/ai/knowledge/segment/index.vue b/apps/web-ele/src/views/ai/knowledge/segment/index.vue index 980a904e4..b74f75542 100644 --- a/apps/web-ele/src/views/ai/knowledge/segment/index.vue +++ b/apps/web-ele/src/views/ai/knowledge/segment/index.vue @@ -63,21 +63,18 @@ async function handleStatusChange( newStatus: number, row: AiKnowledgeSegmentApi.KnowledgeSegment, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将片段 ${row.id} 的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新片段状态 - await updateKnowledgeSegmentStatus(row.id!, newStatus); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新片段状态 + await updateKnowledgeSegmentStatus(row.id!, newStatus); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/ai/music/manager/index.vue b/apps/web-ele/src/views/ai/music/manager/index.vue index d0e04cb57..d4d966d40 100644 --- a/apps/web-ele/src/views/ai/music/manager/index.vue +++ b/apps/web-ele/src/views/ai/music/manager/index.vue @@ -37,24 +37,21 @@ async function handleUpdatePublicStatusChange( row: AiMusicApi.Music, ): Promise { const text = newStatus ? '公开' : '私有'; - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确认要将该音乐切换为【${text}】吗?`, - }) - .then(async () => { - // 更新音乐状态 - await updateMusic({ - id: row.id, - publicStatus: newStatus, - }); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新音乐状态 + await updateMusic({ + id: row.id, + publicStatus: newStatus, }); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/crm/business/components/detail-list.vue b/apps/web-ele/src/views/crm/business/components/detail-list.vue index e57ac8f0c..c89172b11 100644 --- a/apps/web-ele/src/views/crm/business/components/detail-list.vue +++ b/apps/web-ele/src/views/crm/business/components/detail-list.vue @@ -74,28 +74,24 @@ async function handleDeleteContactBusinessList() { ElMessage.error('请先选择商机后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`, - }) - .then(async () => { - const res = await deleteContactBusinessList({ - contactId: props.bizId, - businessIds: checkedRows.value.map((item) => item.id), - }); - if (res) { - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error($t('ui.actionMessage.operationFailed'))); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + const res = await deleteContactBusinessList({ + contactId: props.bizId, + businessIds: checkedRows.value.map((item) => item.id), }); + if (!res) { + throw new Error($t('ui.actionMessage.operationFailed')); + } + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 查看商机详情 */ diff --git a/apps/web-ele/src/views/crm/clue/detail/index.vue b/apps/web-ele/src/views/crm/clue/detail/index.vue index e7e6f8d22..0d95f5edb 100644 --- a/apps/web-ele/src/views/crm/clue/detail/index.vue +++ b/apps/web-ele/src/views/crm/clue/detail/index.vue @@ -84,21 +84,18 @@ function handleTransfer() { /** 转化为客户 */ async function handleTransform(): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: '确定将该线索转化为客户吗?', - }) - .then(async () => { - // 转化为客户 - await transformClue(clueId.value); - // 提示并返回成功 - ElMessage.success('转化客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 转化为客户 + await transformClue(clueId.value); + // 提示并返回成功 + ElMessage.success('转化客户成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-ele/src/views/crm/contact/components/detail-list.vue b/apps/web-ele/src/views/crm/contact/components/detail-list.vue index b49e768ac..71f65066d 100644 --- a/apps/web-ele/src/views/crm/contact/components/detail-list.vue +++ b/apps/web-ele/src/views/crm/contact/components/detail-list.vue @@ -71,28 +71,24 @@ async function handleDeleteContactBusinessList() { ElMessage.error('请先选择联系人后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `确定要将${checkedRows.value.map((item) => item.name).join(',')}解除关联吗?`, - }) - .then(async () => { - const res = await deleteBusinessContactList({ - businessId: props.bizId, - contactIds: checkedRows.value.map((item) => item.id), - }); - if (res) { - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error($t('ui.actionMessage.operationFailed'))); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + const res = await deleteBusinessContactList({ + businessId: props.bizId, + contactIds: checkedRows.value.map((item) => item.id), }); + if (!res) { + throw new Error($t('ui.actionMessage.operationFailed')); + } + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 创建商机联系人关联 */ diff --git a/apps/web-ele/src/views/crm/customer/detail/index.vue b/apps/web-ele/src/views/crm/customer/detail/index.vue index 77c0e1b9c..594a7c9a0 100644 --- a/apps/web-ele/src/views/crm/customer/detail/index.vue +++ b/apps/web-ele/src/views/crm/customer/detail/index.vue @@ -101,41 +101,35 @@ function handleTransfer() { } /** 锁定客户 */ -function handleLock(lockStatus: boolean): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleLock(lockStatus: boolean): Promise { + try { + await confirm({ content: `确定锁定客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 锁定客户 - await lockCustomer(customerId.value, lockStatus); - // 提示并返回成功 - ElMessage.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 锁定客户 + await lockCustomer(customerId.value, lockStatus); + // 提示并返回成功 + ElMessage.success(lockStatus ? '锁定客户成功' : '解锁客户成功'); + return true; } /** 领取客户 */ -function handleReceive(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handleReceive(): Promise { + try { + await confirm({ content: `确定领取客户【${customer.value.name}】吗?`, - }) - .then(async () => { - // 领取客户 - await receiveCustomer([customerId.value]); - // 提示并返回成功 - ElMessage.success('领取客户成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 领取客户 + await receiveCustomer([customerId.value]); + // 提示并返回成功 + ElMessage.success('领取客户成功'); + return true; } /** 分配客户 */ @@ -144,42 +138,36 @@ function handleDistributeForm() { } /** 客户放入公海 */ -function handlePutPool(): Promise { - return new Promise((resolve, reject) => { - confirm({ +async function handlePutPool(): Promise { + try { + await confirm({ content: `确定将客户【${customer.value.name}】放入公海吗?`, - }) - .then(async () => { - // 放入公海 - await putCustomerPool(customerId.value); - // 提示并返回成功 - ElMessage.success('放入公海成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 放入公海 + await putCustomerPool(customerId.value); + // 提示并返回成功 + ElMessage.success('放入公海成功'); + return true; } /** 更新成交状态操作 */ async function handleUpdateDealStatus(): Promise { - return new Promise((resolve, reject) => { - const dealStatus = !customer.value.dealStatus; - confirm({ + const dealStatus = !customer.value.dealStatus; + try { + await confirm({ content: `确定更新成交状态为【${dealStatus ? '已成交' : '未成交'}】吗?`, - }) - .then(async () => { - // 更新成交状态 - await updateCustomerDealStatus(customerId.value, dealStatus); - // 提示并返回成功 - ElMessage.success('更新成交状态成功'); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新成交状态 + await updateCustomerDealStatus(customerId.value, dealStatus); + // 提示并返回成功 + ElMessage.success('更新成交状态成功'); + return true; } /** 加载数据 */ diff --git a/apps/web-ele/src/views/crm/permission/modules/list.vue b/apps/web-ele/src/views/crm/permission/modules/list.vue index 957f0dd8b..21eec5726 100644 --- a/apps/web-ele/src/views/crm/permission/modules/list.vue +++ b/apps/web-ele/src/views/crm/permission/modules/list.vue @@ -94,32 +94,28 @@ function handleEdit() { } /** 删除团队成员 */ -function handleDelete() { +async function handleDelete() { if (checkedRows.value.length === 0) { ElMessage.error('请先选择团队成员后操作!'); return; } - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${checkedRows.value.map((item) => item.nickname).join(',')}移出团队吗?`, - }) - .then(async () => { - const res = await deletePermissionBatch( - checkedRows.value.map((item) => item.id!), - ); - if (res) { - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - } else { - reject(new Error('移出失败')); - } - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + const res = await deletePermissionBatch( + checkedRows.value.map((item) => item.id!), + ); + if (!res) { + throw new Error('移出失败'); + } + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } /** 退出团队 */ diff --git a/apps/web-ele/src/views/erp/finance/account/index.vue b/apps/web-ele/src/views/erp/finance/account/index.vue index 1f5493980..47c1e45a2 100644 --- a/apps/web-ele/src/views/erp/finance/account/index.vue +++ b/apps/web-ele/src/views/erp/finance/account/index.vue @@ -64,23 +64,20 @@ async function handleDefaultStatusChange( newStatus: boolean, row: ErpAccountApi.Account, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '设置' : '取消'; - confirm({ + const text = newStatus ? '设置' : '取消'; + try { + await confirm({ content: `确认要${text}"${row.name}"默认吗?`, - }) - .then(async () => { - // 更新默认状态 - await updateAccountDefaultStatus(row.id!, newStatus); - // 提示并返回成功 - ElMessage.success(`${text}默认成功`); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新默认状态 + await updateAccountDefaultStatus(row.id!, newStatus); + // 提示并返回成功 + ElMessage.success(`${text}默认成功`); + handleRefresh(); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/erp/stock/warehouse/index.vue b/apps/web-ele/src/views/erp/stock/warehouse/index.vue index 48669e1f8..5373fc1f2 100644 --- a/apps/web-ele/src/views/erp/stock/warehouse/index.vue +++ b/apps/web-ele/src/views/erp/stock/warehouse/index.vue @@ -62,23 +62,20 @@ async function handleDefaultStatusChange( newStatus: boolean, row: ErpWarehouseApi.Warehouse, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '设置' : '取消'; - confirm({ + const text = newStatus ? '设置' : '取消'; + try { + await confirm({ content: `确认要${text}"${row.name}"默认吗?`, - }) - .then(async () => { - // 更新默认状态 - await updateWarehouseDefaultStatus(row.id!, newStatus); - // 提示并返回成功 - ElMessage.success(`${text}默认成功`); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新默认状态 + await updateWarehouseDefaultStatus(row.id!, newStatus); + // 提示并返回成功 + ElMessage.success(`${text}默认成功`); + handleRefresh(); + return true; } const [FormModal, formModalApi] = useVbenModal({ diff --git a/apps/web-ele/src/views/mall/product/comment/index.vue b/apps/web-ele/src/views/mall/product/comment/index.vue index 3c39a767c..ea8baced0 100644 --- a/apps/web-ele/src/views/mall/product/comment/index.vue +++ b/apps/web-ele/src/views/mall/product/comment/index.vue @@ -62,25 +62,22 @@ async function handleStatusChange( newStatus: boolean, row: MallCommentApi.Comment, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus ? '展示' : '隐藏'; - confirm({ + const text = newStatus ? '展示' : '隐藏'; + try { + await confirm({ content: `确认要${text}该评论吗?`, - }) - .then(async () => { - // 更新状态 - await updateCommentVisible({ - id: row.id!, - visible: newStatus, - }); - // 提示并返回成功 - ElMessage.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateCommentVisible({ + id: row.id!, + visible: newStatus, }); + // 提示并返回成功 + ElMessage.success(`${text}成功`); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/mall/product/spu/index.vue b/apps/web-ele/src/views/mall/product/spu/index.vue index f206c5f92..9d436759c 100644 --- a/apps/web-ele/src/views/mall/product/spu/index.vue +++ b/apps/web-ele/src/views/mall/product/spu/index.vue @@ -106,26 +106,23 @@ async function handleStatusChange( newStatus: number, row: MallSpuApi.Spu, ): Promise { - return new Promise((resolve, reject) => { - // 二次确认 - const text = newStatus ? '上架' : '下架'; - confirm({ + // 二次确认 + const text = newStatus ? '上架' : '下架'; + try { + await confirm({ content: `确认要${text + row.name}吗?`, - }) - .then(async () => { - // 更新状态 - await updateStatus({ - id: row.id!, - status: newStatus, - }); - // 提示并返回成功 - ElMessage.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateStatus({ + id: row.id!, + status: newStatus, }); + // 提示并返回成功 + ElMessage.success(`${text}成功`); + return true; } /** 添加到仓库 / 回收站的状态 */ diff --git a/apps/web-ele/src/views/mall/promotion/coupon/template/index.vue b/apps/web-ele/src/views/mall/promotion/coupon/template/index.vue index cbe999341..dcda02261 100644 --- a/apps/web-ele/src/views/mall/promotion/coupon/template/index.vue +++ b/apps/web-ele/src/views/mall/promotion/coupon/template/index.vue @@ -59,21 +59,18 @@ async function handleStatusChange( newStatus: number, row: MallCouponTemplateApi.CouponTemplate, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.name}的状态切换为【${newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'}】吗?`, - }) - .then(async () => { - // 更新优惠券模板状态 - await updateCouponTemplateStatus(row.id!, newStatus); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新优惠券模板状态 + await updateCouponTemplateStatus(row.id!, newStatus); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue b/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue index 073c763c2..068bf5209 100644 --- a/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue +++ b/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue @@ -56,23 +56,20 @@ async function handleStatusChange( newStatus: number, row: MallSeckillConfigApi.SeckillConfig, ): Promise { - return new Promise((resolve, reject) => { - // 二次确认 - const text = row.status === 0 ? '启用' : '停用'; - confirm({ + // 二次确认 + const text = row.status === 0 ? '启用' : '停用'; + try { + await confirm({ content: `确认要${text + row.name}吗?`, - }) - .then(async () => { - // 更新状态 - await updateSeckillConfigStatus(row.id, newStatus); - // 提示并返回成功 - ElMessage.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateSeckillConfigStatus(row.id, newStatus); + // 提示并返回成功 + ElMessage.success(`${text}成功`); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/mall/trade/brokerage/user/index.vue b/apps/web-ele/src/views/mall/trade/brokerage/user/index.vue index 5b7d958dc..a8ad43da0 100644 --- a/apps/web-ele/src/views/mall/trade/brokerage/user/index.vue +++ b/apps/web-ele/src/views/mall/trade/brokerage/user/index.vue @@ -86,26 +86,23 @@ async function handleBrokerageEnabledChange( newEnabled: boolean, row: MallBrokerageUserApi.BrokerageUser, ): Promise { - return new Promise((resolve, reject) => { - const text = newEnabled ? '开通' : '关闭'; - confirm({ + const text = newEnabled ? '开通' : '关闭'; + try { + await confirm({ content: `你要将${row.nickname}的推广资格切换为【${text}】吗?`, - }) - .then(async () => { - // 更新推广资格 - await updateBrokerageEnabled({ - id: row.id!, - enabled: newEnabled, - }); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - handleRefresh(); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新推广资格 + await updateBrokerageEnabled({ + id: row.id!, + enabled: newEnabled, }); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + handleRefresh(); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/mes/dv/checkplan/index.vue b/apps/web-ele/src/views/mes/dv/checkplan/index.vue index 84e58e38e..4b0713f73 100644 --- a/apps/web-ele/src/views/mes/dv/checkplan/index.vue +++ b/apps/web-ele/src/views/mes/dv/checkplan/index.vue @@ -112,14 +112,20 @@ function getTableActions(row: MesDvCheckPlanApi.CheckPlan): ActionItem[] { type: 'warning', link: true, auth: ['mes:dv-check-plan:update'], - onClick: handleEnable.bind(null, row), + popConfirm: { + title: `确认启用"${row.name}"点检保养方案?启用后将不可修改或删除。`, + confirm: handleEnable.bind(null, row), + }, } : { label: '停用', type: 'warning', link: true, auth: ['mes:dv-check-plan:update'], - onClick: handleDisable.bind(null, row), + popConfirm: { + title: `确认停用"${row.name}"点检保养方案?`, + confirm: handleDisable.bind(null, row), + }, }, ); return actions; diff --git a/apps/web-ele/src/views/mes/md/item/index.vue b/apps/web-ele/src/views/mes/md/item/index.vue index f6e290fe8..51f876e12 100644 --- a/apps/web-ele/src/views/mes/md/item/index.vue +++ b/apps/web-ele/src/views/mes/md/item/index.vue @@ -5,18 +5,12 @@ import type { MesMdItemTypeApi } from '#/api/mes/md/item/type'; import { ref } from 'vue'; -import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; +import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { DICT_TYPE } from '@vben/constants'; import { getDictLabel } from '@vben/hooks'; import { downloadFileFromBlobPart } from '@vben/utils'; -import { - ElButton, - ElCard, - ElLoading, - ElMessage, - ElMessageBox, -} from 'element-plus'; +import { ElButton, ElCard, ElLoading, ElMessage } from 'element-plus'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { @@ -101,21 +95,16 @@ async function handleStatusChange( newStatus: number, row: MesMdItemApi.Item, ): Promise { - return new Promise((resolve, reject) => { - ElMessageBox.confirm( - `确认要将“${row.name}”物料切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - '提示', - { type: 'warning' }, - ) - .then(async () => { - await updateItemStatus(row.id!, newStatus); - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + try { + await confirm( + `确认要将"${row.name}"物料切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, + ); + } catch { + return false; + } + await updateItemStatus(row.id!, newStatus); + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({ diff --git a/apps/web-ele/src/views/mes/pro/route/index.vue b/apps/web-ele/src/views/mes/pro/route/index.vue index 51f4e8ff3..ae7e8962a 100644 --- a/apps/web-ele/src/views/mes/pro/route/index.vue +++ b/apps/web-ele/src/views/mes/pro/route/index.vue @@ -3,18 +3,12 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { MesProRouteApi } from '#/api/mes/pro/route'; import { useAccess } from '@vben/access'; -import { DocAlert, Page, useVbenModal } from '@vben/common-ui'; +import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui'; import { CommonStatusEnum, DICT_TYPE } from '@vben/constants'; import { getDictLabel } from '@vben/hooks'; import { downloadFileFromBlobPart } from '@vben/utils'; -import { - ElButton, - ElLoading, - ElMessage, - ElMessageBox, - ElTooltip, -} from 'element-plus'; +import { ElButton, ElLoading, ElMessage, ElTooltip } from 'element-plus'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { @@ -62,17 +56,15 @@ async function handleStatusChange( row: MesProRouteApi.Route, ): Promise { try { - await ElMessageBox.confirm( + await confirm( `确认要将"${row.name}"工艺路线切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - '提示', - { type: 'warning' }, ); - await updateRouteStatus(row.id!, newStatus); - ElMessage.success($t('ui.actionMessage.operationSuccess')); - return true; } catch { return false; } + await updateRouteStatus(row.id!, newStatus); + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } /** 删除(仅停用状态可删除) */ diff --git a/apps/web-ele/src/views/mes/pro/workrecord/components/work-record-status-bar.vue b/apps/web-ele/src/views/mes/pro/workrecord/components/work-record-status-bar.vue index 499dc51d7..53bceb42d 100644 --- a/apps/web-ele/src/views/mes/pro/workrecord/components/work-record-status-bar.vue +++ b/apps/web-ele/src/views/mes/pro/workrecord/components/work-record-status-bar.vue @@ -55,7 +55,11 @@ async function handleClockIn() { /** 下工 */ async function handleClockOut() { - await confirm('确认下工当前工作站?'); + try { + await confirm('确认下工当前工作站?'); + } catch { + return; + } await clockOutWorkRecord(); ElMessage.success('下工成功'); await loadMyWorkstation(); diff --git a/apps/web-ele/src/views/pay/app/index.vue b/apps/web-ele/src/views/pay/app/index.vue index 57920fe12..c538e16bd 100644 --- a/apps/web-ele/src/views/pay/app/index.vue +++ b/apps/web-ele/src/views/pay/app/index.vue @@ -64,25 +64,22 @@ async function handleStatusChange( newStatus: number, row: PayAppApi.App, ): Promise { - return new Promise((resolve, reject) => { - const text = newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'; - confirm({ + const text = newStatus === CommonStatusEnum.ENABLE ? '启用' : '停用'; + try { + await confirm({ content: `确认要${text + row.name}应用吗?`, - }) - .then(async () => { - // 更新状态 - await updateAppStatus({ - id: row.id!, - status: newStatus, - }); - // 提示并返回成功 - ElMessage.success(`${text}成功`); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); + }); + } catch { + return false; + } + // 更新状态 + await updateAppStatus({ + id: row.id!, + status: newStatus, }); + // 提示并返回成功 + ElMessage.success(`${text}成功`); + return true; } /** 生成渠道配置按钮 */ diff --git a/apps/web-ele/src/views/system/user/index.vue b/apps/web-ele/src/views/system/user/index.vue index e56a89878..2c0ebcbb6 100644 --- a/apps/web-ele/src/views/system/user/index.vue +++ b/apps/web-ele/src/views/system/user/index.vue @@ -136,21 +136,18 @@ async function handleStatusChange( newStatus: number, row: SystemUserApi.User, ): Promise { - return new Promise((resolve, reject) => { - confirm({ + try { + await confirm({ content: `你要将${row.username}的状态切换为【${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}】吗?`, - }) - .then(async () => { - // 更新用户状态 - await updateUserStatus(row.id!, newStatus); - // 提示并返回成功 - ElMessage.success($t('ui.actionMessage.operationSuccess')); - resolve(true); - }) - .catch(() => { - reject(new Error('取消操作')); - }); - }); + }); + } catch { + return false; + } + // 更新用户状态 + await updateUserStatus(row.id!, newStatus); + // 提示并返回成功 + ElMessage.success($t('ui.actionMessage.operationSuccess')); + return true; } const [Grid, gridApi] = useVbenVxeGrid({