From 91c27ecf61bc7404bb8f4eff8334399920b67fc1 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Mar 2026 16:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=92=8C=E6=9F=A5=E7=9C=8B=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/product/product-management/edit.uvue | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pages/mall/admin/product/product-management/edit.uvue b/pages/mall/admin/product/product-management/edit.uvue index fca3ec19..d867fcbf 100644 --- a/pages/mall/admin/product/product-management/edit.uvue +++ b/pages/mall/admin/product/product-management/edit.uvue @@ -192,7 +192,7 @@ const formData = ref({ onMounted(async () => { await ensureSupabaseReady() - const mId = supa.getSession().user?.id as string | null + const mId = supa.getSession().user?.getString('id') ?? null if (!mId) { uni.showToast({ title: '商家未获取到信息,请重新登录', icon: 'none' }) return @@ -376,7 +376,7 @@ async function doSaveProduct(targetStatus: number) { // 必须获取正确的 merchant_id,并且存在 if (!formData.value.merchant_id || formData.value.merchant_id.startsWith('merchant_123')) { - const mId = supa.getSession().user?.id as string | null + const mId = supa.getSession().user?.getString('id') ?? null if (!mId) { uni.showToast({ title: '未获取到商家信息,请重新登录', icon: 'none' }) return @@ -399,10 +399,10 @@ async function doSaveProduct(targetStatus: number) { formData.value.published_at = null } - const payload = { + const payload : UTSJSONObject = { merchant_id: formData.value.merchant_id, name: formData.value.name, - category_id: formData.value.category_id || null, + category_id: formData.value.category_id, base_price: Number(formData.value.base_price), main_image_url: formData.value.image_urls.length > 0 ? formData.value.image_urls[0] : '', // 首图同步 image_urls: formData.value.image_urls, @@ -414,6 +414,11 @@ async function doSaveProduct(targetStatus: number) { attributes: formData.value.attributes, published_at: formData.value.published_at } + // 新建商品时自动生成唯一的 product_code + if (!formData.value.id) { + const uid = Math.random().toString(36).substring(2, 10).toUpperCase() + payload['product_code'] = `P${Date.now()}${uid}` + } let result; if (formData.value.id) { @@ -422,8 +427,9 @@ async function doSaveProduct(targetStatus: number) { .update(payload) .eq('id', formData.value.id) .eq('merchant_id', formData.value.merchant_id) + .execute() } else { - result = await supa.from('ml_products').insert([payload]) + result = await supa.from('ml_products').insert([payload]).execute() } uni.hideLoading()