diff --git a/src/pages/category/index.vue b/src/pages/category/index.vue index d794dfd..7a23c1b 100644 --- a/src/pages/category/index.vue +++ b/src/pages/category/index.vue @@ -121,20 +121,33 @@ export default { } }, deleteCategory(cat) { - uni.showModal({ - title: '确认删除', - content: `确定要删除 "${cat.name}" 吗?`, - success: async (res) => { - if (res.confirm) { - try { - await productApi.deleteCategory(cat.categoryId) - uni.showToast({ title: '删除成功', icon: 'success' }) - this.loadCategories() - } catch (e) { - uni.showToast({ title: '删除失败', icon: 'none' }) + // 先检查该分类下是否有商品 + uni.showLoading({ title: '检查中...' }) + productApi.getProducts({ categoryId: cat.categoryId, page: 1, pageSize: 1 }).then(res => { + uni.hideLoading() + if (res.records && res.records.length > 0) { + uni.showToast({ title: '该分类下有商品,无法删除', icon: 'none' }) + return + } + + uni.showModal({ + title: '确认删除', + content: `确定要删除 "${cat.name}" 吗?`, + success: async (res) => { + if (res.confirm) { + try { + await productApi.deleteCategory(cat.categoryId) + uni.showToast({ title: '删除成功', icon: 'success' }) + this.loadCategories() + } catch (e) { + uni.showToast({ title: '删除失败', icon: 'none' }) + } } } - } + }) + }).catch(() => { + uni.hideLoading() + uni.showToast({ title: '检查失败', icon: 'none' }) }) } }