feat(user): 使用微信原生 Picker 替换所在地选择弹层
- 删除 NutUI Address 相关导入、状态及地区数据转换逻辑 - 新增派生 regionValue 用于绑定微信原生 Picker 的 value - 将 handleRegionChange 调整为处理微信 Picker 的事件 - 将所在地选择 UI 修改为微信原生 Picker 包裹的视图结构 - 地图定位失败使用弹窗提示,引导用户手动选择或重试 - 移除手动打开地区选择器的函数及 NutUI 组件 - 保留 RegionData 用于文本智能识别解析 - 编译通过,提升在无地图或无权限环境下的地区选择稳定性
This commit is contained in:
23
src/api/share.ts
Normal file
23
src/api/share.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { generateMiniProgramCode } from '@/api/shop/shopInvite'
|
||||
|
||||
/**
|
||||
* 生成「分享海报」用的小程序码(二维码)图片地址。
|
||||
*
|
||||
* - scene 复用现有 uid_${inviterId} 约定,与邀请裂变逻辑一致;
|
||||
* - page 指向被分享的页面(小程序码扫码后落地页)。
|
||||
*
|
||||
* 注意:当前后端 /wx-login/getOrderQRCodeUnlimited/{scene} 仅消费 scene,
|
||||
* 若希望扫码后直达指定页面而非默认页,需后端读取并转发 page 参数。
|
||||
*
|
||||
* @param page 被分享页路径,如 pages/shop/product-detail
|
||||
* @param inviterId 当前登录用户 id(用于裂变归因),未登录可省略
|
||||
*/
|
||||
export function generateShareCode(page: string, inviterId?: number | string) {
|
||||
const scene = inviterId ? `uid_${inviterId}` : 'share'
|
||||
return generateMiniProgramCode({
|
||||
page,
|
||||
scene,
|
||||
width: 200,
|
||||
envVersion: 'release',
|
||||
})
|
||||
}
|
||||
@@ -111,7 +111,12 @@ export interface InviteRecordParam {
|
||||
*/
|
||||
export async function generateMiniProgramCode(data: MiniProgramCodeParam) {
|
||||
try {
|
||||
const url = '/wx-login/getOrderQRCodeUnlimited/' + data.scene;
|
||||
let url = '/wx-login/getOrderQRCodeUnlimited/' + data.scene;
|
||||
// 透传 page,便于后端按要求生成指向指定页的小程序码
|
||||
// (当前后端仅使用 scene,若需扫码直达指定页,后端需读取并转发 page 到微信 getwxacodeunlimit)
|
||||
if (data.page) {
|
||||
url += `?page=${encodeURIComponent(data.page)}`;
|
||||
}
|
||||
// 由于接口直接返回图片buffer,我们直接构建完整的URL
|
||||
return `${BaseUrl}${url}`;
|
||||
} catch (error: any) {
|
||||
|
||||
Reference in New Issue
Block a user