diff --git a/components/supadb/aksupa.uts b/components/supadb/aksupa.uts index c96b9faa..8dad3a69 100644 --- a/components/supadb/aksupa.uts +++ b/components/supadb/aksupa.uts @@ -703,14 +703,17 @@ export class AkSupa { if (this.apikey == null || this.apikey.trim() === '' || this.apikey === 'your-anon-key') { throw new Error('Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)'); } + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + const reqData = new UTSJSONObject() + reqData.set('email', email) + reqData.set('password', password) const res = await AkReq.request({ url: this.baseUrl + '/auth/v1/token?grant_type=password', method: 'POST', - headers: { - apikey: this.apikey, - 'Content-Type': 'application/json' - } as UTSJSONObject, - data: { email, password } as UTSJSONObject, + headers: headers, + data: reqData, contentType: 'application/json' }, false); // 如果响应不是 2xx(例如 401),提取后端错误信息并抛出,便于上层显示具体原因 @@ -720,7 +723,14 @@ export class AkSupa { try { if (res.data != null) { const obj = new UTSJSONObject(res.data); - msg = obj.getString('message') ?? obj.getString('error') ?? obj.getString('msg') ?? obj.getString('description') ?? obj.getString('error_description') ?? msg; + const rawMsg = obj.getString('message') ?? obj.getString('error') ?? obj.getString('msg') ?? obj.getString('description') ?? obj.getString('error_description') ?? ''; + + // 核心修复:在这里拦截英文错误并转换为中文 + if (rawMsg.includes('Invalid login credentials')) { + msg = '用户名或密码错误'; + } else if (rawMsg != '') { + msg = rawMsg; + } } } catch (e) { // ignore @@ -763,15 +773,26 @@ export class AkSupa { }; } - async signUp(email : string, password : string) : Promise { + async signUp(email : string, password : string, options : UTSJSONObject | null = null) : Promise { + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + const data = new UTSJSONObject() + data.set('email', email) + data.set('password', password) + + if (options != null) { + const dataField = options.getJSON('data') + if (dataField != null) { + data.set('data', dataField) + } + } + const res = await AkReq.request({ url: this.baseUrl + '/auth/v1/signup', method: 'POST', - headers: { - apikey: this.apikey, - 'Content-Type': 'application/json' - } as UTSJSONObject, - data: { email, password } as UTSJSONObject, + headers: headers, + data: data, contentType: 'application/json' }, false); return res.data as UTSJSONObject; @@ -786,11 +807,10 @@ export class AkSupa { */ async select(table : string, filter ?: string | null, options ?: AkSupaSelectOptions) : Promise> { let url = this.baseUrl + '/rest/v1/' + table; - let headers = { - apikey: this.apikey, - 'Content-Type': 'application/json', - Authorization: `Bearer ${AkReq.getToken() ?? ''}` - } as UTSJSONObject; + let headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + headers.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`) let params : string[] = []; if (options != null) { if (options.columns != null && !(options.columns == "")) params.push('select=' + encodeURIComponent(options.columns ?? "")); @@ -876,20 +896,17 @@ async select_uts(table : string, filter ?: UTSJSONObject | null, options ?: AkSu */ async insert(table : string, row : UTSJSONObject | Array) : Promise> { const url = this.baseUrl + '/rest/v1/' + table; - const headers = { - apikey: this.apikey, - 'Content-Type': 'application/json', - Authorization: `Bearer ${AkReq.getToken() ?? ''}`, - Prefer: 'return=representation' - } as UTSJSONObject; + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + headers.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`) + headers.set('Prefer', 'return=representation') - // 如果是数组,直接传递;如果是单个对象,也直接传递 - // Supabase REST API 原生支持两种格式 let reqOptions : AkReqOptions = { url, method: 'POST', headers, - data: row, // 可以是单个对象或数组 + data: row, contentType: 'application/json' }; return await this.requestWithAutoRefresh(reqOptions); @@ -907,12 +924,11 @@ async update(table : string, filter : string | null, values : UTSJSONObject) : P if (filter!=null && filter !== "") { url += '?' + filter; } - const headers = { - apikey: this.apikey, - 'Content-Type': 'application/json', - Authorization: `Bearer ${AkReq.getToken() ?? ''}`, - Prefer: 'return=representation' - } as UTSJSONObject; + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + headers.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`) + headers.set('Prefer', 'return=representation') let reqOptions : AkReqOptions = { url, method: 'PATCH', @@ -934,12 +950,11 @@ async delete(table : string, filter : string | null) : Promise */ async rpc(functionName : string, params ?: UTSJSONObject) : Promise> { - const url = `${this.baseUrl}/rest/v1/rpc/${functionName}`; - const headers = { - apikey: this.apikey, - 'Content-Type': 'application/json', - Authorization: `Bearer ${AkReq.getToken() ?? ''}` - } as UTSJSONObject; + const url = this.baseUrl + '/rest/v1/rpc/' + functionName; + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + headers.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`) let reqOptions : AkReqOptions = { url, method: 'POST', headers, - data: params ?? {}, + data: params ?? new UTSJSONObject(), contentType: 'application/json' }; return await this.requestWithAutoRefresh(reqOptions); @@ -998,14 +1012,16 @@ async delete(table : string, filter : string | null) : Promise { if (this.session == null || this.session?.refresh_token == null) return false; try { + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + const data = new UTSJSONObject() + data.set('refresh_token', this.session?.refresh_token) const res = await AkReq.request({ url: this.baseUrl + '/auth/v1/token?grant_type=refresh_token', method: 'POST', - headers: { - apikey: this.apikey, - 'Content-Type': 'application/json' - } as UTSJSONObject, - data: { refresh_token: this.session?.refresh_token } as UTSJSONObject, + headers: headers, + data: data, contentType: 'application/json' }, false); if (res.status == 200 && (res.data != null)) { @@ -1034,6 +1050,23 @@ async delete(table : string, filter : string | null) : Promise { + const headers = new UTSJSONObject() + headers.set('apikey', this.apikey) + headers.set('Content-Type', 'application/json') + headers.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`) + const data = new UTSJSONObject() + data.set('data', metadata) + const res = await AkReq.request({ + url: this.baseUrl + '/auth/v1/user', + method: 'PUT', + headers: headers, + data: data, + contentType: 'application/json' + }, false); + return res.data as UTSJSONObject; + } + // AkSupa类内新增:自动刷新封装 async requestWithAutoRefresh(reqOptions : AkReqOptions, isRetry = false) : Promise> { let res = await AkReq.request(reqOptions, false); diff --git a/doc_mall/consumer/MULTI_ROLE_LOGIN_ARCHITECTURE.md b/doc_mall/consumer/MULTI_ROLE_LOGIN_ARCHITECTURE.md new file mode 100644 index 00000000..fdf27b13 --- /dev/null +++ b/doc_mall/consumer/MULTI_ROLE_LOGIN_ARCHITECTURE.md @@ -0,0 +1,100 @@ +# 多端、多角色登录架构设计与权限控制方案 (RFC) + +## 1. 业务背景 +本项目包含多个业务线(如:商城、学校管理、配送中心等)及多种用户角色(如:消费者、学生、教师、配送员等)。为减少重复开发并保持用户体验一致,各端统一共用一套登录模板。 + +当前面临挑战: +1. **角色误判**:新用户注册后被分配了错误的角色(如:注册商城用户却分配了学生角色)。 +2. **越权访问**:RLS 策略未对角色进行细分,导致特定操作在特定角色下报 403 权限错误。 +3. **分流逻辑耦合**:登录成功后的跳转逻辑分散在各页面,难以维护。 + +--- + +## 2. 架构设计核心:解耦登录与业务角色 + +### 2.1 统一身份中心 (Auth) +- 依然使用 Supabase Auth 作为认证源。 +- 登录仅负责:验证凭证 -> 获取 JWT -> 建立 Session。 + +### 2.2 业务配置化分流 +在 `utils/store.uts` 或专门的导航服务中维护角色首页映射表。 + +```typescript +// 路由分流映射配置 +export const ROLE_HOME_PAGES = { + 'admin': '/pages/mall/admin/index', + 'consumer': '/pages/mall/consumer/index', + 'teacher': '/pages/school/teacher/index', + 'student': '/pages/school/student/index', + 'delivery': '/pages/mall/delivery/index' +} + +/** + * 根据角色执行自动导航 + */ +export function navigateToRoleHome(role: string) { + const target = ROLE_HOME_PAGES[role] || '/pages/mall/consumer/index'; + uni.reLaunch({ url: target }); +} +``` + +--- + +## 3. 注册阶段的角色控制 + +### 3.1 显式角色声明 +注册时,根据当前所属的应用端,向 `ensureUserProfile` 传递预期的 `defaultRole`。 + +- **商城端注册**:默认传 `consumer` +- **学校端注册**:默认传 `student` + +### 3.2 修补逻辑建议 (utils/sapi.uts) +在 `insert` 进 `ak_users` 表时,必须显式包含 `role` 字段。 + +```typescript +const newUserData = new UTSJSONObject() +newUserData.set('id', userId) +newUserData.set('email', email) +newUserData.set('role', finalRole) // 显式写入业务角色 +``` + +--- + +## 4. 数据库 RLS 策略完善 (SQL 示例) + +### 4.1 用户资料表 (ak_users) +确保用户只能更新自己的资料,但不能绕过逻辑修改自己的 `role`。 + +```sql +-- 开启 RLS +ALTER TABLE ak_users ENABLE ROW LEVEL SECURITY; + +-- 允许用户查看自己的资料 +CREATE POLICY "Users can view own data" ON ak_users +FOR SELECT TO authenticated +USING (auth.uid() = id); +``` + +### 4.2 业务表角色锁 (以 ml_shopping_cart 为例) +只有角色为 `consumer` 的用户才能执行购物车操作。 + +```sql +-- 只有消费者可以插入购物车 +CREATE POLICY "Only consumers can use cart" +ON ml_shopping_cart +FOR INSERT TO authenticated +WITH CHECK ( + auth.uid() = user_id AND + EXISTS ( + SELECT 1 FROM ak_users + WHERE id = auth.uid() AND role = 'consumer' + ) +); +``` + +--- + +## 5. 迁移与修复建议 +1. **现状修正**:检查 Supabase 后台 `ak_users` 表,手动或批量修改 `student` 角色的消费者用户为 `consumer`。 +2. **清理缓存**:小程序环境下需清理本地 `user_id` 缓存后重新登录,以刷新受限角色。 +3. **URL 规范**:建议将各端的页面放入对应的分层目录中(如 `/pages/mall/...`, `/pages/school/...`),便于权限隔离。 diff --git a/pages/main/cart.uvue b/pages/main/cart.uvue index 2a031ce7..3a446d51 100644 --- a/pages/main/cart.uvue +++ b/pages/main/cart.uvue @@ -334,35 +334,55 @@ const updateRecommendList = (recommends: Product[]) => { const refreshRecommend = async () => { try { - // 鷻加随机偏移量, const randomOffset = Math.floor(Math.random() * 1000) - const hotResp = await supabaseService.searchProducts('', recommendPage.value, 6, 'sales') - const recommends = hotResp.data + // 1. 模拟市面加载感,锁定按钮防止连续快速点击 + if (loading.value) return + loading.value = true - // 如果新页码没有数据,重置为第一页再试一次 - if (recommends.length === 0 && recommendPage.value > 1) { - recommendPage.value = 1 - const firstPageResp = await supabaseService.searchProducts('', 1, 6, 'sales') - const firstRecommends = firstPageResp.data - - if (firstRecommends.length > 0) { - updateRecommendList(firstRecommends) - uni.showToast({ - title: '已重置推荐', - icon: 'none' - }) - } - return + uni.showLoading({ + title: '正在挑选...', + mask: true + }) + + // 2. 模拟市面“随机性”逻辑: + // 淘宝京东不会按顺序翻页,而是跳跃选取页码,并打乱排序规则 + const maxOffsetPages = 20 // 假设数据库中至少有 20 页热推商品 + const sorts = ['sales', 'price_asc', 'rating'] + + // 随机页码 + 随机排序 = 每次点击都有新发现 + const nextRandomPage = Math.floor(Math.random() * maxOffsetPages) + 1 + const randomSort = sorts[Math.floor(Math.random() * sorts.length)] + + console.log(`[refreshRecommend] 换一批: 随机页=${nextRandomPage}, 随机排=${randomSort}`) + + const hotResp = await supabaseService.searchProducts('', nextRandomPage, 6, randomSort) + let recommends = hotResp.data + + // 3. 兜底逻辑:如果随机到的页码没数据,回退到第 1 页 + if (recommends.length === 0) { + const fallbackResp = await supabaseService.searchProducts('', 1, 6, 'sales') + recommends = fallbackResp.data } + // 4. 前端打乱 (Shuffle):即使是同一页数据,乱序排布也会增加“新鲜感” if (recommends.length > 0) { + recommends.sort(() => Math.random() - 0.5) updateRecommendList(recommends) + + uni.hideLoading() uni.showToast({ - title: '已更新推荐', - icon: 'none' + title: '已为你换一批好物', + icon: 'none', + duration: 1000 }) + } else { + uni.hideLoading() } } catch (error) { + uni.hideLoading() console.error('刷新推荐失败:', error) + uni.showToast({ title: '加载失败,请重试', icon: 'none' }) + } finally { + loading.value = false } } diff --git a/pages/main/profile.uvue b/pages/main/profile.uvue index c6462290..737da113 100644 --- a/pages/main/profile.uvue +++ b/pages/main/profile.uvue @@ -95,6 +95,10 @@ 👑 会员中心 + + ⚙️ + 设置 + @@ -102,7 +106,7 @@ 我的订单 - 查看更多 > + 查看更多 ❯ @@ -144,7 +148,7 @@ 🏪 {{ getOrderShopName(order) }} - + {{ getOrderStatusText(order.status) }} diff --git a/pages/mall/consumer/chat.uvue b/pages/mall/consumer/chat.uvue index f2f6bef8..6aa6ce9e 100644 --- a/pages/mall/consumer/chat.uvue +++ b/pages/mall/consumer/chat.uvue @@ -4,7 +4,7 @@ - + @@ -566,7 +566,7 @@ const goBack = () => { } .back-icon { - font-size: 24px; + font-size: 20px; color: #333; } diff --git a/pages/mall/consumer/doc/MULTI_TERMINAL_REGISTRATION_GUIDE.md b/pages/mall/consumer/doc/MULTI_TERMINAL_REGISTRATION_GUIDE.md new file mode 100644 index 00000000..8c37d46a --- /dev/null +++ b/pages/mall/consumer/doc/MULTI_TERMINAL_REGISTRATION_GUIDE.md @@ -0,0 +1,85 @@ +# 多端用户注册与身份识别实现指南 (Multi-Terminal Registration Guide) + +本档说明了如何在当前的 Supabase 架构下实现“消费者端”、“商家端”及“管理端”的统一注册逻辑,并确保用户身份(Role)在入库时能够自动、准确地被识别。 + +## 1. 核心架构原理 + +系统采用 **“前端声明意图 + 后端自动触发”** 的模式: +1. **前端 App**:在调用接口注册时,通过 `raw_user_meta_data` 声明用户的目标角色(如 `consumer` 或 `merchant`)。 +2. **Supabase Auth**:接收并存储这些元数据。 +3. **数据库触发器 (Trigger)**:在 `auth.users` 产生新记录的一瞬间,由数据库自动读取元数据,并将用户信息连带其正确的角色属性同步到业务表 `ak_users` 中。 + +--- + +## 2. 前端实现步骤 (代码参考) + +在各端 App 的注册逻辑中,需在调用 `signUp` 接口时传递 `options.data`。 + +### 消费者端 (Consumer App) +在 `pages/user/register.uvue` 中: +```typescript +const options = new UTSJSONObject() +const metaData = new UTSJSONObject() +metaData.set('user_role', 'consumer') // 核心:声明为消费者 +options.set('data', metaData) + +const result = await supa.signUp(email, password, options) +``` + +### 商家端 (Merchant App) +在商家端的注册页面中,只需修改 `user_role` 的值: +```typescript +metaData.set('user_role', 'merchant') // 核心:声明为商家 +``` + +--- + +## 3. 数据库实现步骤 (SQL 设置) + +为了让数据库能够“看碟下菜”,必须在 Supabase SQL Editor 中运行以下脚本,安装/更新智能触发器: + +```sql +-- 1. 创建或更新处理函数 +CREATE OR REPLACE FUNCTION public.handle_new_user() +RETURNS trigger AS $$ +BEGIN + -- 向业务表插入数据,并智能识别角色 + INSERT INTO public.ak_users (id, auth_id, email, role, nickname, status) + VALUES ( + NEW.id, + NEW.id, -- 统一使用 Auth ID + NEW.email, + -- 核心逻辑:读取 metadata 中的 user_role,如果没有传则默认为 'consumer' + COALESCE(NEW.raw_user_meta_data->>'user_role', 'consumer'), + -- 默认昵称取邮箱前缀 + split_part(NEW.email, '@', 1), + 1 -- 默认激活状态 + ); + RETURN NEW; +END; +$$ LANGUAGE plpgsql SECURITY DEFINER; + +-- 2. 绑定触发器 +DROP TRIGGER IF EXISTS on_auth_user_created ON auth.users; +CREATE TRIGGER on_auth_user_created + AFTER INSERT ON auth.users + FOR EACH ROW EXECUTE FUNCTION public.handle_new_user(); +``` + +--- + +## 4. 三端互不干扰的优势 + +* **全自动入库**:一旦 SQL 触发器设置完成,前端不再需要手动调用 `ensureUserProfile` 或 `insert` 接口,减少了网络请求和前端报错几率。 +* **物理隔离与 RLS 安全**:通过 `ak_users` 表的 RLS 策略(`auth.uid() = id`),确保即使用户通过 API 尝试修改他人数据,也会被数据库直接拦截。 +* **统一维护**:所有端的注册逻辑在数据库层面是统一的,未来若需增加新角色(如 `admin_manager`),只需修改触发器逻辑即可,无需大规模重构代码。 + +--- + +## 5. 开发建议 + +* **强制校验**:在生产环境下,可以在触发器内增加校验逻辑,防止普通用户通过伪造元数据获得 `admin` 角色。 +* **日志排查**:如果新用户注册后 `ak_users` 表没有数据,请检查 Supabase 控制台的 `Database -> Logs`,查看触发器执行是否有报错(通常是唯一索引冲突导致)。 + +--- +*最后更新时间:2026-03-10* diff --git a/pages/mall/consumer/doc/PRODUCTION_REMAINING_PREPARATION_GUIDE.md b/pages/mall/consumer/doc/PRODUCTION_REMAINING_PREPARATION_GUIDE.md new file mode 100644 index 00000000..2e81b8b3 --- /dev/null +++ b/pages/mall/consumer/doc/PRODUCTION_REMAINING_PREPARATION_GUIDE.md @@ -0,0 +1,76 @@ +# 电商平台生产环境上线准备清单 (Production Readiness Checklist) + +本指南旨在指导开发者在将“消费者端”和“商家端”推向实际生产环境时,所需准备的各项核心服务申请、资质认定及技术对接点。 + +--- + +## 1. 身份认证与登录系统 (Identity & Login) + +为了提供丝滑的登录体验,需申请以下第三方服务: + +### A. 微信登录 (WeChat Login) +* **主体要求**:必须是企业或个体工商户(个人主体无法开通部分权限)。 +* **准备工作**: + * 在 [微信开放平台](https://open.weixin.qq.com/) 注册账号并完成 **开发者资质认证** (300元/年)。 + * 创建一个“移动应用”获取 `AppID` 和 `AppSecret`。 + * 在 [Supabase 控制台](https://supabase.com/dashboard/project/_/auth/providers) 启用 **WeChat Provider** 并填入上述秘钥。 +* **注意**:如果是微信小程序环境,需在 [微信公众平台](https://mp.weixin.qq.com/) 另外申请小程序账号。 + +### B. 手机短信验证码 (SMS Authentication) +* **推荐方案**:阿里云短信、腾讯云短信 或 Twilio。 +* **准备工作**: + * **签名申请**:如“【XX商城】”,需提交营业执照审核。 + * **模板申请**:如“验证码${code},您正在进行登录操作,5分钟内有效。” + * **Supabase 对接**:在 Auth -> Providers -> Phone 开启,并配置短信服务商提供的 API 秘钥。 + +--- + +## 2. 支付与结算系统 (Payments & Settlement) + +支付是电商的命脉,涉及非常严格的合规性审核。 + +### A. 消费者端:支付方式与钱包提醒 +* **资质准备**: + * **微信支付**:在 [微信支付商户平台](https://pay.weixin.qq.com/) 申请“商户号”,需关联上述微信 AppID。 + * **支付宝**:在 [支付宝开放平台](https://open.alipay.com/) 申请“APP支付”或“小程序支付”能力。 +* **钱包逻辑实现**: + * **余额系统**:在数据库中建立 `user_wallets` 表,记录 `balance`(余额)和 `points`(积分)。 + * **支付拦截器**:用户下单时,需通过后端逻辑(Edge Functions)校验余额是否足够,不足时弹出“余额不足,请充值”或“引导去微信支付”。 + * **变动提醒**:每当发生消费或退款,需通过 **微信模板消息** 或 **App 推送** 发送钱包变动实时通知。 + +### B. 商家端:收款账号与提现 +* **资金流控制**:生产环境下,资金通常先进入平台大账户(二清合规性建议)。 +* **提现准备**: + * **实名认证**:商家入驻时必须上传 **身份证**、**营业执照**、**开户许可证**。 + * **打款接口**:需要申请“微信支付-企业付款到零钱”或“支付宝-单笔转账到账户”能力。 + * **手续费逻辑**:需确定平台抽成比例(佣金),在商家点击提现时自动计算并扣除。 + +--- + +## 3. 服务器与合规性 (Infrastructure & Compliance) + +* **域名备案**:在中国境内运营,必须完成 **ICP 备案**。 +* **HTTPS 证书**:所有生产接口必须使用 SSL 证书(不能使用 HTTP)。 +* **隐私政策与用户协议**:必须在 App 登录页面显著位置提供,且符合 GDPR 或国内网络安全法规定。 +* **CDN 存储**:商品图片和视频应存放在对象存储(如 Supabase Storage + 自定义 CDN 域名),以保证加载速度。 + +--- + +## 4. 商家入驻所需材料模板 + +建议在商家端后台提供以下材料的上传入口: +1. **负责人身份证正反面**。 +2. **统一社会信用代码证**。 +3. **银行结算账户信息(开户行、支行名称、账号、持卡人姓名)**。 +4. **行业特许经营许可**(如卖食品需要《食品经营许可证》)。 + +--- + +## 5. 技术架构建议 (Production Stack) + +* **数据库保护**:开启 Supabase 的 **RLS (行级安全策略)**,防止数据越权读取。 +* **日志记录**:接入 **Sentry** 或 **阿里云日志服务**,记录生产环境中的所有前端报错(尤其是支付环节)。 +* **压力测试**:上线前需进行接口压力测试,确保在促销活动期间数据库连接数不会爆满。 + +--- +*生成日期:2026-03-10* diff --git a/pages/mall/consumer/member/index.uvue b/pages/mall/consumer/member/index.uvue index 600a9cf9..7b383692 100644 --- a/pages/mall/consumer/member/index.uvue +++ b/pages/mall/consumer/member/index.uvue @@ -97,7 +97,7 @@ {{ getLevelName(log.old_level) }} → {{ getLevelName(log.new_level) }} - {{ log.reason || '系统升级' }} + {{ log.reason != null && log.reason != '' ? log.reason : '系统升级' }} {{ formatDate(log.created_at) }} @@ -154,7 +154,7 @@ const loadMemberInfo = async (): Promise => { try { const result = await supabaseService.getUserMemberInfo() - memberInfo.value = { + const info: MemberInfo = { member_level: result.getNumber('member_level') ?? 0, level_name: result.getString('level_name') ?? '普通会员', discount: result.getNumber('discount') ?? 1.0, @@ -172,14 +172,16 @@ const loadMemberInfo = async (): Promise => { } else { nextLevelObj = JSON.parse(JSON.stringify(nextLevelRaw)) as UTSJSONObject } - memberInfo.value.next_level = { + const nextLevel: MemberLevel = { id: nextLevelObj.getNumber('id') ?? 0, name: nextLevelObj.getString('name') ?? '', min_amount: nextLevelObj.getNumber('min_amount') ?? 0, discount: 1.0, description: null } + info.next_level = nextLevel } + memberInfo.value = info } catch (e) { console.error('加载会员信息失败:', e) } diff --git a/pages/mall/consumer/message-detail.uvue b/pages/mall/consumer/message-detail.uvue index 0ca59c23..f062f51e 100644 --- a/pages/mall/consumer/message-detail.uvue +++ b/pages/mall/consumer/message-detail.uvue @@ -29,6 +29,7 @@ \r\n\r\n\r\n","import { initRuntimeSocket } from './socket'\n\nexport function initRuntimeSocketService(): Promise {\n const hosts: string = process.env.UNI_SOCKET_HOSTS\n const port: string = process.env.UNI_SOCKET_PORT\n const id: string = process.env.UNI_SOCKET_ID\n if (hosts == '' || port == '' || id == '') return Promise.resolve(false)\n let socketTask: SocketTask | null = null\n __registerWebViewUniConsole(\n (): string => {\n return process.env.UNI_CONSOLE_WEBVIEW_EVAL_JS_CODE\n },\n (data: string) => {\n socketTask?.send({\n data,\n } as SendSocketMessageOptions)\n }\n )\n return Promise.resolve()\n .then((): Promise => {\n return initRuntimeSocket(hosts, port, id).then((socket): boolean => {\n if (socket == null) {\n return false\n }\n socketTask = socket\n return true\n })\n })\n .catch((): boolean => {\n return false\n })\n}\n\ninitRuntimeSocketService()\n","// ak-req 类型定义\r\nexport type AkReqOptions = {\r\n url: string;\r\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' |'HEAD';\r\n data?: UTSJSONObject | Array;\r\n headers?: UTSJSONObject;\r\n timeout?: number;\r\n contentType?: string; // 新增,支持顶级 contentType\r\n // 可选:重试设置(仅网络错误/超时触发)。默认重试 0 次\r\n retryCount?: number; // 最大重试次数,默认 0\r\n retryDelayMs?: number; // 首次重试延迟,默认 300ms,指数退避\r\n};\r\n// 上传参数类型定义\r\nexport type AkReqUploadOptions = {\r\n url: string,\r\n filePath: string,\r\n name: string,\r\n formData?: UTSJSONObject,\r\n headers?: UTSJSONObject,\r\n apikey?: string,\r\n timeout?: number,\r\n // 进度回调,0-100(注意:H5/APP 平台支持不同)\r\n onProgress?: (progress: number, transferredBytes?: number, totalBytes?: number) => void,\r\n // 可选:重试设置(仅网络错误/超时触发)。默认 0\r\n retryCount?: number,\r\n retryDelayMs?: number\r\n};\r\n\r\nexport type AkReqResponse = {\r\n status: number;\r\n data: T | Array | null; // 支持 null\r\n headers: UTSJSONObject;\r\n error: UniError | null;\r\n total:number |null;\r\n page: number |null;\r\n limit: number |null;\r\n hasmore:boolean |null;\r\n origin: any | null;\r\n};\r\n\r\nexport class AkReqError extends Error {\r\n code: number;\r\n constructor(message: string, code: number = 0) {\r\n super(message);\r\n this.code = code;\r\n this.name = 'AkReqError';\r\n }\r\n}\r\n","// Supabase 配置\r\n// 内网环境 - 本地部署的 Supabase\r\n// IP: 192.168.1.62\r\n// Kong HTTP Port: 8000\r\n\r\n//export const SUPA_URL: string = 'http://192.168.1.61:18000'\r\n//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'\r\nexport const SUPA_URL: string = 'http://119.146.131.237:9126'\r\nexport const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'\r\n\r\n// WebSocket 实时连接(内网使用 ws:// 而非 wss://)\r\nexport const WS_URL: string = 'ws://119.146.131.237:9126/realtime/v1/websocket'\r\n//export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'\r\n\r\n// 备用配置(已注释,如需切换可取消注释)\r\n// 开发环境 - 其他内网地址\r\n// export const SUPA_URL: string = 'http://192.168.0.150:8080'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'ws://192.168.0.150:8080/realtime/v1/websocket'\r\n\r\n// 生产环境 - Supabase 云服务(已注释)\r\n// export const SUPA_URL: string = 'https://ak3.oulog.com'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'wss://ak3.oulog.com/realtime/v1/websocket'\r\n\r\n// 指向你的 Supabase 服务(开发/私有部署)\r\n// export const SUPA_URL: string = 'http://192.168.1.64:3000'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'ws://192.168.1.64:3000/realtime/v1'\r\n\r\n// 路由配置\r\nexport const HOME_REDIRECT: string = '/pages/main/index'\r\nexport const TABORPAGE: string = '/pages/main/index'\r\n\r\n// 测试模式:放开任意跳转(禁用启动页/登录/401 的强制重定向)\r\nexport const IS_TEST_MODE: boolean = true","// i18n 国际化配置\r\n// 这是一个简化的 i18n 实现,用于支持多语言切换\r\n\r\n// 语言资源\r\nconst messages: UTSJSONObject = new UTSJSONObject()\r\n\r\n// 默认语言\r\nconst defaultLocale = 'zh-CN'\r\n\r\n// 当前语言(响应式)\r\nlet currentLocale = defaultLocale\r\n\r\n// 翻译函数\r\nfunction t(key: string, values: UTSJSONObject | null = null, locale: string | null = null): string {\r\n\tconst targetLocale = locale ?? currentLocale\r\n\t// 这里应该从 messages 中获取翻译,简化实现直接返回 key\r\n\t// 实际项目中应该加载语言资源文件\r\n\treturn key\r\n}\r\n\r\n// 创建响应式 locale 对象\r\nclass LocaleWrapper {\r\n get value(): string {\r\n return currentLocale\r\n }\r\n set value(newLocale: string) {\r\n currentLocale = newLocale\r\n }\r\n}\r\nconst localeObj = new LocaleWrapper()\r\n\r\n// I18n Global Context\r\nclass I18nGlobal {\r\n\tt(key: string, values: UTSJSONObject | null = null, locale: string | null = null): string {\r\n\t\treturn t(key, values, locale)\r\n\t}\r\n\tlocale: LocaleWrapper = localeObj\r\n}\r\n\r\n// I18n Instance\r\nclass I18nInstance {\r\n\tglobal: I18nGlobal = new I18nGlobal()\r\n}\r\n\r\n// 导出 i18n 对象\r\nconst i18n = new I18nInstance()\r\nexport default i18n\r\n","// 通用 UTSJSONObject 转任意 type 的函数\r\n// UTS 2024\r\n\r\nimport i18n from '@/uni_modules/i18n/index.uts';\r\n\r\n/**\r\n * 切换应用语言设置\r\n * @param locale 语言代码,如 'zh-CN' 或 'en-US'\r\n */\r\nexport function switchLocale(locale: string) {\r\n // 设置存储\r\n uni.setStorageSync('uVueI18nLocale', locale);\r\n \r\n // 设置 i18n 语言\r\n try {\r\n if (i18n != null && i18n.global != null) {\r\n i18n.global.locale.value = locale;\r\n }\r\n } catch (err) {\r\n __f__('error','at utils/utils.uts:20','Failed to switch locale:', err);\r\n }\r\n}\r\n\r\n/**\r\n * 获取当前语言设置\r\n * @returns 当前语言代码\r\n */\r\nexport function getCurrentLocale(): string {\r\n const locale = uni.getStorageSync('uVueI18nLocale') as string;\r\n if (locale == null || locale == '') {\r\n return 'zh-CN';\r\n }\r\n return locale;\r\n}\r\n\r\n/**\r\n * 确保语言设置正确初始化\r\n */\r\nexport function ensureLocaleInitialized() {\r\n const currentLocale = getCurrentLocale();\r\n if (currentLocale == null || currentLocale == '') {\r\n switchLocale('zh-CN');\r\n }\r\n}\r\n/**\r\n * 将任意错误对象转换为标准的 UniError\r\n * @param error 任意类型的错误对象\r\n * @param defaultMessage 默认错误消息\r\n * @returns 标准化的 UniError 对象\r\n */\r\nexport function toUniError(error: any, defaultMessage: string = '操作失败'): UniError {\r\n // 如果已经是 UniError,直接返回\r\n if (error instanceof UniError) {\r\n return error\r\n }\r\n let errorMessage = defaultMessage\r\n let errorCode = -1\r\n \r\n try {\r\n // 如果是普通 Error 对象\r\n if (error instanceof Error) {\r\n errorMessage = error.message != null && error.message != '' ? error.message : defaultMessage\r\n }\r\n // 如果是字符串\r\n else if (typeof error === 'string') {\r\n errorMessage = error\r\n } // 如果是对象,尝试提取错误信息\r\n else if (error != null && typeof error === 'object') {\r\n const errorObj = error as UTSJSONObject\r\n let message: string = ''\r\n \r\n // 逐个检查字段,避免使用 || 操作符\r\n if (errorObj['message'] != null) {\r\n const msgValue = errorObj['message']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['errMsg'] != null) {\r\n const msgValue = errorObj['errMsg']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['error'] != null) {\r\n const msgValue = errorObj['error']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['details'] != null) {\r\n const msgValue = errorObj['details']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['msg'] != null) {\r\n const msgValue = errorObj['msg']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n }\r\n \r\n if (message != '') {\r\n errorMessage = message\r\n }\r\n \r\n // 尝试提取错误码\r\n let code: number = 0\r\n if (errorObj['code'] != null) {\r\n const codeValue = errorObj['code']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n } else if (errorObj['errCode'] != null) {\r\n const codeValue = errorObj['errCode']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n } else if (errorObj['status'] != null) {\r\n const codeValue = errorObj['status']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n }\r\n \r\n if (code != 0) {\r\n errorCode = code\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/utils.uts:128','Error converting to UniError:', e)\r\n errorMessage = defaultMessage\r\n }\r\n // 创建标准 UniError\r\n const uniError = new UniError('AppError', errorCode, errorMessage)\r\n return uniError\r\n}\r\n\r\n/**\r\n * 响应式状态管理\r\n * @returns 响应式状态对象\r\n */\r\nexport function responsiveState() {\r\n const screenInfo = uni.getSystemInfoSync()\r\n const screenWidth = screenInfo.screenWidth\r\n \r\n return {\r\n isLargeScreen: screenWidth >= 768,\r\n isSmallScreen: screenWidth < 576,\r\n screenWidth: screenWidth,\r\n cardColumns: screenWidth >= 768 ? 3 : screenWidth >= 576 ? 2 : 1\r\n }\r\n}\r\n\r\nexport function goToLogin(redirectUrl?: string | null) {\r\n try {\r\n const target = redirectUrl != null && redirectUrl.length > 0 ? redirectUrl : ''\r\n if (target.length > 0) {\r\n const redirect = encodeURIComponent(target)\r\n uni.navigateTo({ url: `/pages/user/login?redirect=${redirect}` })\r\n } else {\r\n uni.navigateTo({ url: '/pages/user/login' })\r\n }\r\n } catch (e) {\r\n uni.navigateTo({ url: '/pages/user/login' })\r\n }\r\n}\r\n\r\n/**\r\n * 兼容 UTS Android 的剪贴板写入\r\n * @param text 要写入剪贴板的文本\r\n */\r\nexport function setClipboard(text: string): void {\r\n\r\n\r\n\r\n}\r\n\r\n/**\r\n * 格式化时间,显示为相对时间(如:刚刚,几小时前)\r\n * @param dateStr ISO 格式的日期字符串\r\n * @returns 格式化后的相对时间字符串\r\n */\r\nexport function formatTime(dateStr: string): string {\r\n if (dateStr == '') return ''\r\n try {\r\n const date = new Date(dateStr)\r\n const now = new Date()\r\n const diff = now.getTime() - date.getTime()\r\n const hours = Math.floor(diff / (1000 * 60 * 60))\r\n \r\n if (hours < 1) {\r\n return '刚刚'\r\n } else if (hours < 24) {\r\n return `${hours}小时前`\r\n } else {\r\n return `${Math.floor(hours / 24)}天前`\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/utils.uts:197','formatTime error:', e)\r\n return dateStr.replace('T', ' ').split('.')[0]\r\n }\r\n}\r\n\r\n","import { AkReqResponse, AkReqUploadOptions, AkReq } from '@/uni_modules/ak-req/index.uts'\r\nimport type { AkReqOptions } from '@/uni_modules/ak-req/index.uts'\r\nimport { toUniError } from '@/utils/utils.uts'\r\n\r\nexport type AkSupaSignInResult = {\r\n\taccess_token : string;\r\n\trefresh_token : string;\r\n\texpires_at : number;\r\n\tuser : UTSJSONObject | null;\r\n\ttoken_type ?: string;\r\n\texpires_in ?: number;\r\n\traw : UTSJSONObject;\r\n}\r\n\r\n// Count 选项枚举\r\nexport type CountOption = 'exact' | 'planned' | 'estimated';\r\n\r\n// 定义查询选项类型,兼容 UTS\r\nexport type AkSupaSelectOptions = {\r\n\tlimit ?: number;\r\n\torder ?: string;\r\n\tgetcount ?: string; // 保持向后兼容\r\n\tcount ?: CountOption; // 新增:更清晰的 count 选项\r\n\thead ?: boolean; // 新增:head 模式,只返回元数据\r\n\tcolumns ?: string;\r\n\tsingle ?: boolean; // 新增,支持 single-object\r\n\trangeFrom ?: number; // 新增:range 分页起始位置\r\n\trangeTo ?: number; // 新增:range 分页结束位置\r\n};\r\n\r\n// 新增:order方法参数类型\r\nexport type OrderOptions = {\r\n\tascending ?: boolean;\r\n};\r\n\r\n// 新增类型定义,便于 getSession 返回类型复用\r\nexport type AkSupaSessionInfo = {\r\n\tsession : AkSupaSignInResult | null;\r\n\tuser : UTSJSONObject | null;\r\n};\r\n\r\n// 链式请求构建器\r\n// 强类型条件定义\r\ntype AkSupaCondition = {\r\n\tfield : string; // 已经 encodeURIComponent 过\r\n\top : string;\r\n\tvalue : any;\r\n\tlogic : string; // 'and' | 'or'\r\n};\r\n\r\nexport class AkSupaQueryBuilder {\r\n\tprivate _supa : AkSupa;\r\n\tprivate _table : string;\r\n\tprivate _filter : UTSJSONObject | null = null;\r\n\tprivate _options : AkSupaSelectOptions = {};\r\n\tprivate _values : UTSJSONObject | Array | null = null;\r\n\tprivate _single : boolean = false;\r\n\tprivate _conditions : Array = [];\r\n\tprivate _nextLogic : string = 'and';\r\n\t// 新增:记录当前操作类型\r\n\tprivate _action : 'select' | 'insert' | 'update' | 'delete' | 'rpc' | null = null;\r\n\tprivate _orString : string | null = null; // 新增:支持 or 字符串\r\n\tprivate _rpcFunction : string | null = null;\r\n\tprivate _rpcParams : UTSJSONObject | null = null;\r\n\tprivate _page : number = 1; // 新增:当前页码\r\n\r\n\tconstructor(supa : AkSupa, table : string) {\r\n\t\tthis._supa = supa;\r\n\t\tthis._table = table;\r\n\t}\r\n\r\n\t// 链式条件方法\r\n\teq(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'eq', value); }\r\n\tneq(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'neq', value); }\r\n\tgt(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'gt', value); }\r\n\tgte(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'gte', value); }\r\n\tlt(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'lt', value); }\r\n\tlte(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'lte', value); }\r\n\tlike(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'like', value); }\r\n\tilike(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'ilike', value); }\r\n\tin(field : string, value : any[]) : AkSupaQueryBuilder { return this._addCond(field, 'in', value); }\r\n\tis(field : string, value : any | null) : AkSupaQueryBuilder { return this._addCond(field, 'is', value); }\r\n\tcontains(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'cs', value); }\r\n\tcontainedBy(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'cd', value); }\r\n\tnot(field : string, opOrValue : any, value: any | null = null) : AkSupaQueryBuilder {\r\n\t\tif (value != null) {\r\n\t\t\t// 三元形式:field, operator, value\r\n\t\t\t// 例如 not('badge', 'is', null) -> badge=not.is.null\r\n\t\t\tconst combinedOp = 'not.' + opOrValue;\r\n\t\t\t// 将 null 转换为字符串 'null',避免构造对象时缺少 value 属性\r\n\t\t\tlet safeValue = value;\r\n\t\t\tif (value === null) {\r\n\t\t\t\tsafeValue = 'null';\r\n\t\t\t}\r\n\t\t\treturn this._addCond(field, combinedOp, safeValue);\r\n\t\t} else {\r\n\t\t\t// 二元形式:field, value\r\n\t\t\tlet safeValue = opOrValue;\r\n\t\t\tif (opOrValue === null) {\r\n\t\t\t\tsafeValue = 'null';\r\n\t\t\t}\r\n\t\t\treturn this._addCond(field, 'not', safeValue);\r\n\t\t}\r\n\t}\r\n\r\n\tand() : AkSupaQueryBuilder { this._nextLogic = 'and'; return this; }\r\n\tor(str ?: string) : AkSupaQueryBuilder {\r\n\t\tif (typeof str == 'string') {\r\n\t\t\tthis._orString = str;\r\n\t\t} else {\r\n\t\t\tthis._nextLogic = 'or';\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _addCond(afield : string, op : string, value : any | null) : AkSupaQueryBuilder {\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:117','add cond:', op, afield, value)\r\n\t\tconst field = encodeURIComponent(afield)!!\r\n\t\t// 将 null 转换为字符串 'null',避免构造对象时缺少 value 属性\r\n\t\tlet safeValue = value;\r\n\t\tif (value === null) {\r\n\t\t\tsafeValue = 'null';\r\n\t\t}\r\n\t\tthis._conditions.push({ field, op, value: safeValue, logic: this._nextLogic });\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:125',this._conditions)\r\n\t\tthis._nextLogic = 'and';\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 支持原有 where 方式\r\n\twhere(filter : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._filter = filter;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpage(page : number) : AkSupaQueryBuilder {\r\n\t\tthis._page = page;\r\n\t\t// 如果已设置 limit,则自动设置 range\r\n\t\tlet limit = 0;\r\n\t\tif (typeof this._options.limit == 'number') {\r\n\t\t\tlimit = this._options.limit ?? 0;\r\n\t\t}\r\n\t\tif (limit > 0) {\r\n\t\t\tconst from = (page - 1) * limit;\r\n\t\t\tconst to = from + limit - 1;\r\n\t\t\tthis.range(from, to);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tlimit(limit : number) : AkSupaQueryBuilder {\r\n\t\tthis._options.limit = limit;\r\n\t\t// 总是为 limit 设置对应的 range,确保限制生效\r\n\t\tconst from = (this._page - 1) * limit;\r\n\t\tconst to = from + limit - 1;\r\n\t\tthis.range(from, to);\r\n\t\treturn this;\r\n\t}\r\n\r\n\torder(order : string, options ?: OrderOptions) : AkSupaQueryBuilder {\r\n\t\tif (options != null && options.ascending == false) {\r\n\t\t\tthis._options.order = order + '.desc';\r\n\t\t} else {\r\n\t\t\tthis._options.order = order + '.asc';\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tcolumns(columns : string) : AkSupaQueryBuilder {\r\n\t\tthis._options.columns = columns;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 新增:专门的 count 方法\r\n\tcount(option : CountOption = 'exact') : AkSupaQueryBuilder {\r\n\t\tthis._options.count = option;\r\n\t\tthis._options.head = true; // count 操作默认使用 head 模式\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 新增:便捷的 count 方法\r\n\tcountExact() : AkSupaQueryBuilder {\r\n\t\treturn this.count('exact');\r\n\t}\r\n\r\n\tcountEstimated() : AkSupaQueryBuilder {\r\n\t\treturn this.count('estimated');\r\n\t}\r\n\r\n\tcountPlanned() : AkSupaQueryBuilder {\r\n\t\treturn this.count('planned');\r\n\t}\r\n\r\n\t// 新增:head 模式方法\r\n\thead(enable : boolean = true) : AkSupaQueryBuilder {\r\n\t\tthis._options.head = enable;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tvalues(values : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._values = values;\r\n\t\treturn this;\r\n\t}\r\n\tsingle() : AkSupaQueryBuilder {\r\n\t\tthis._single = true;\r\n\t\treturn this;\r\n\t}\r\n\trange(from : number, to : number) : AkSupaQueryBuilder {\r\n\t\tthis._options.rangeFrom = from;\r\n\t\tthis._options.rangeTo = to;\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:209','设置 range:', from, 'to', to);\r\n\t\treturn this;\r\n\t}\r\n\t// 将 _conditions 强类型直接转换为 Supabase/PostgREST 查询字符串(不再用 UTSJSONObject 做中转)\r\n\tprivate _buildFilter() : string | null {\r\n\t\tif (this._conditions.length == 0 && (this._orString==null || this._orString == \"\")) {\r\n\t\t\t// 兼容 where(filter) 方式\r\n\t\t\tif (this._filter == null) return null;\r\n\t\t\t// 兼容旧的 UTSJSONObject filter\r\n\t\t\treturn buildSupabaseFilterQuery(this._filter);\r\n\t\t}\r\n\r\n\t\t// 先分组 and/or,全部用 AkSupaCondition 强类型\r\n\t\tconst ands: AkSupaCondition[] = [];\r\n\t\tconst ors: AkSupaCondition[] = [];\r\n\t\tfor (const c of this._conditions) {\r\n\t\t\tif (c.logic == \"or\") {\r\n\t\t\t\tors.push(c);\r\n\t\t\t} else {\r\n\t\t\t\tands.push(c);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst params: string[] = [];\r\n\t\t// 处理 and 条件\r\n\t\tfor (const cond of ands) {\r\n\t\t\tconst k = cond.field;\r\n\t\t\tconst op = cond.op;\r\n\t\t\tconst val = cond.value;\r\n\t\t\tif ((op == 'in' || op == 'not.in') && Array.isArray(val)) {\r\n\t\t\t\tparams.push(`${k}=${op}.(${val.map(x => typeof x == 'object' ? encodeURIComponent(JSON.stringify(x)) : encodeURIComponent(x.toString())).join(',')})`);\r\n\t\t\t} else if ((op == 'is' || op == 'not.is') && (val == null || val == 'null')) {\r\n\t\t\t\tparams.push(`${k}=${op}.null`);\r\n\t\t\t} else {\r\n\t\t\t\tconst opvalstr: string = (typeof val == 'object') ? JSON.stringify(val) : (val as string);\r\n\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(opvalstr)}`);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// 处理 or 条件\r\n\t\tif (ors.length > 0) {\r\n\t\t\tconst orStr = ors.map(o => {\r\n\t\t\t\tconst k = o.field;\r\n\t\t\t\tconst op = o.op;\r\n\t\t\t\tconst val = o.value;\r\n\t\t\t\tif (op == \"in\" && Array.isArray(val)) {\r\n\t\t\t\t\treturn `${k}.in.(${val.map(x => encodeURIComponent(x as string)).join(\",\")})`;\r\n\t\t\t\t}\r\n\t\t\t\tif (op == \"is\" && (val == null)) {\r\n\t\t\t\t\treturn `${k}.is.null`;\r\n\t\t\t\t}\r\n\t\t\t\treturn `${k}.${op}.${encodeURIComponent(val as string)}`;\r\n\t\t\t}).join(\",\");\r\n\t\t\tparams.push(`or=(${orStr})`);\r\n\t\t}\r\n\t\tif (this._orString!=null && this._orString !== \"\") {\r\n\t\t\tparams.push(`or=(${encodeURIComponent(this._orString!!)})`);\r\n\t\t}\r\n\t\treturn params.length > 0 ? params.join('&') : null;\r\n\t}\r\n\r\n\tselect(columns : string = \"*\", opt : UTSJSONObject | null = null) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'select';\r\n\t\tif (columns != null) {\r\n\t\t\tthis._options.columns = columns;\r\n\t\t}\r\n\t\tif (opt != null) {\r\n\t\t\t// 合并 opt 到 this._options\r\n\t\t\tObject.assign(this._options, opt);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tinsert(values : UTSJSONObject | Array) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'insert';\r\n\t\t// 检查是否为空\r\n\t\tif (Array.isArray(values)) {\r\n\t\t\tif (values.length == 0) throw toUniError('No values set for insert', 'Insert操作缺少数据');\r\n\t\t} else {\r\n\t\t\tif (UTSJSONObject.keys(values).length == 0) throw toUniError('No values set for insert', 'Insert操作缺少数据');\r\n\t\t}\r\n\t\tthis._values = values;\r\n\t\treturn this;\r\n\t}\r\n\tupdate(values : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'update';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:293','ak update', this._action)\r\n\t\tif (UTSJSONObject.keys(values).length == 0) throw toUniError('No values set for update', '更新操作缺少数据');\r\n\t\tthis._values = values;\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:296','ak update', values)\r\n\t\treturn this;\r\n\t}\r\n\tdelete() : AkSupaQueryBuilder {\r\n\t\tthis._action = 'delete';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:301','delete action now')\r\n\t\tconst filter = this._buildFilter();\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:303',filter)\r\n\t\tif (filter == null) throw toUniError('No filter set for delete', '删除操作缺少筛选条件');\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:305','delete action')\r\n\t\treturn this;\r\n\t}\r\n\r\n\trpc(functionName : string, params ?: UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'rpc';\r\n\t\tthis._rpcFunction = functionName;\r\n\t\tthis._rpcParams = params;\r\n\t\treturn this;\r\n\t}\r\n\t// 链式请求最终执行方法 - 返回 UTSJSONObject\r\n\tasync execute() : Promise> {\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:317','execute')\r\n\t\tconst filter = this._buildFilter();\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:319','execute', filter)\r\n\t\tlet res : any;\r\n\t\tswitch (this._action) {\r\n\t\t\tcase 'select': {\r\n\t\t\t\t// 传递 single 状态到 options\r\n\t\t\t\tif (this._single) {\r\n\t\t\t\t\tthis._options.single = true;\r\n\t\t\t\t\t// 如果是 single 请求,自动设置 limit 为 1\r\n\t\t\t\t\tif (this._options.limit == null) {\r\n\t\t\t\t\t\tthis._options.limit = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:330',this._options)\r\n\t\t\t\t}\t\t\t\t// 保证分页统计\r\n\t\t\t\tif (this._options.limit != null) {\r\n\t\t\t\t\tif (this._options.getcount == null && this._options.count == null) {\r\n\t\t\t\t\t\tthis._options.count = 'exact'; // 优先使用新的 count 选项\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tres = await this._supa.select(this._table, filter, this._options);\r\n\t\t\t\t// 解析 content-range header\r\n\t\t\t\tlet total = 0;\r\n\t\t\t\tlet hasmore = false;\r\n\t\t\t\tconst page = this._page;\r\n\t\t\t\tlet resdata = res.data\r\n\t\t\t\tlet limit = 0;\r\n\t\t\t\tif (typeof this._options.limit == 'number') {\r\n\t\t\t\t\tlimit = this._options.limit ?? 0;\r\n\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\tlimit = resdata.length;\r\n\t\t\t\t}\r\n\t\t\t\tlet contentRange : string | null = null;\r\n\t\t\t\tif (res.headers != null) {\r\n\t\t\t\t\tlet theheader = res.headers as UTSJSONObject\r\n\t\t\t\t\tif (typeof theheader.get == 'function') {\r\n\r\n\t\t\t\t\t\tcontentRange = theheader.get('content-range') as string | null;\r\n\t\t\t\t\t} else if (typeof theheader['content-range'] == 'string') {\r\n\t\t\t\t\t\tcontentRange = theheader['content-range'] as string;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (contentRange != null) {\r\n\t\t\t\t\tconst match = /\\/(\\d+)$/.exec(contentRange);\r\n\t\t\t\t\tif (match != null) {\r\n\t\t\t\t\t\ttotal = parseInt(match[1] ?? \"0\");\r\n\t\t\t\t\t\thasmore = (page * limit) < total;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (total == 0) {\r\n\t\t\t\t\t// 使用 JSON 序列化访问 res 对象\r\n\t\t\t\t\tconst resStr = JSON.stringify(res)\r\n\t\t\t\t\tconst resParsed = JSON.parse(resStr)\r\n\t\t\t\t\tif (resParsed != null) {\r\n\t\t\t\t\t\tconst resObj = resParsed as UTSJSONObject\r\n\t\t\t\t\t\tconst countVal = resObj.getNumber('count')\r\n\t\t\t\t\t\tif (countVal != null) {\r\n\t\t\t\t\t\t\ttotal = countVal\r\n\t\t\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\t\t\ttotal = resdata.length\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttotal = 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\t\ttotal = resdata.length\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttotal = 0\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (!hasmore) hasmore = (page * limit) < total;\t\t\t\t// 如果是 head 模式,只返回 count 信息\r\n\t\t\t\tif (this._options.head == true) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdata: null, // head 模式不返回数据\r\n\t\t\t\t\t\ttotal,\r\n\t\t\t\t\t\tpage,\r\n\t\t\t\t\t\tlimit,\r\n\t\t\t\t\t\thasmore: false, // head 模式不需要分页信息\r\n\t\t\t\t\t\torigin: res,\r\n\t\t\t\t\t\tstatus: res.status,\r\n\t\t\t\t\t\theaders: res.headers,\r\n\t\t\t\t\t\terror: res.error\r\n\t\t\t\t\t} as AkReqResponse;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdata: res.data,\r\n\t\t\t\t\ttotal,\r\n\t\t\t\t\tpage,\r\n\t\t\t\t\tlimit,\r\n\t\t\t\t\thasmore,\r\n\t\t\t\t\torigin: res,\r\n\t\t\t\t\tstatus: res.status,\r\n\t\t\t\t\theaders: res.headers,\r\n\t\t\t\t\terror: res.error\r\n\t\t\t\t} as AkReqResponse;\r\n\t\t\t}\r\n\t\t\tcase 'insert': {\r\n\t\t\t\tconst insertValues = this._values;\r\n\t\t\t\tif (insertValues == null) throw toUniError('No values set for insert', '插入操作缺少数据');\r\n\t\t\t\tres = await this._supa.insert(this._table, insertValues);\r\n\t\t\t\tbreak;\r\n\t\t\t} case 'update': {\r\n\t\t\t\tconst updateValues = this._values;\r\n\t\t\t\tif (updateValues == null) throw toUniError('No values set for update', '更新操作缺少数据');\r\n\t\t\t\tif (filter == null) throw toUniError('No filter set for update', '更新操作缺少筛选条件');\r\n\t\t\t\t// Update操作只支持单个对象,不支持数组\r\n\t\t\t\tif (Array.isArray(updateValues)) throw toUniError('Update does not support array values', '更新操作不支持数组数据');\r\n\t\t\t\tres = await this._supa.update(this._table, filter, updateValues as UTSJSONObject);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'delete': {\r\n\t\t\t\tif (filter == null) throw toUniError('No filter set for delete', '删除操作缺少筛选条件');\r\n\t\t\t\tres = await this._supa.delete(this._table, filter);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'rpc': {\r\n\t\t\t\tif (this._rpcFunction == null) throw toUniError('No RPC function specified', 'RPC调用缺少函数名');\r\n\t\t\t\tres = await this._supa.rpc(this._rpcFunction as string, this._rpcParams);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\tres = await this._supa.select(this._table, filter, this._options);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// 保证 data 字段存在(不能赋null,赋空对象或空字符串)\r\n\t\tif (res[\"data\"] == null) res[\"data\"] = {};\r\n\t\treturn res;\r\n\t}\t// 新增:支持类型转换的执行方法\r\n\tasync executeAs() : Promise> {\r\n\t\tconst result = await this.execute();\r\n\r\n\t\tif (result.data == null) {\r\n\t\t\treturn result as AkReqResponse;\r\n\t\t}\r\n\r\n\t\tlet convertedData : any | null = null;\r\n\r\n\t\ttry {\r\n\t\t\tif (Array.isArray(result.data)) {\r\n\t\t\t\tconst dataArray = result.data;\r\n\t\t\t\tconst convertedArray : Array = [];\r\n\t\t\t\tfor (let i = 0; i < dataArray.length; i++) {\r\n\t\t\t\t\tconst item = dataArray[i];\r\n\t\t\t\t\tif (item instanceof UTSJSONObject) {\r\n\r\n\t\t\t\t\t\tconst parsed = item.parse();\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t__f__('warn','at components/supadb/aksupa.uts:470','转换失败,使用原始对象:', item);\r\n\t\t\t\t\t\t\tconvertedArray.push(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst jsonObj = new UTSJSONObject(item);\r\n\r\n\t\t\t\t\t\tconst parsed = jsonObj.parse();\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t__f__('warn','at components/supadb/aksupa.uts:485','转换失败,使用原始对象:', item);\r\n\t\t\t\t\t\t\tconvertedArray.push(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconvertedData = convertedArray;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tconst convertedArray : Array = [];\r\n\t\t\t\tif (result.data instanceof UTSJSONObject) {\r\n\t\t\t\t\tconst parsed = result.data.parse();\r\n\r\n\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:501','转换失败:', result.data)\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst jsonObj = new UTSJSONObject(result.data);\r\n\t\t\t\t\tconst parsed = jsonObj.parse();\r\n\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:510','转换失败:', result.data)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconvertedData = convertedArray;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t__f__('warn','at components/supadb/aksupa.uts:516','数据类型转换失败,使用原始数据:', e);\r\n\t\t\t__f__('log','at components/supadb/aksupa.uts:517',result.data)\r\n\t\t\tconvertedData = result.data as any;\r\n\t\t}\r\n\t\tresult.data = convertedData\r\n\t\treturn result as AkReqResponse;\r\n\r\n\t}\r\n}\r\n\r\n// 新增:链式 Storage 上传\r\nexport class AkSupaStorageUploadBuilder {\r\n\tprivate _supa : AkSupa;\r\n\tprivate _bucket : string = '';\r\n\tprivate _path : string = '';\r\n private _file : string = '';\r\n\tprivate _options : UTSJSONObject = {};\r\n\r\n\tconstructor(supa : AkSupa, bucket : string) {\r\n\t\tthis._supa = supa;\r\n\t\tthis._bucket = bucket;\r\n\t}\r\n\r\n\tpath(path : string) : AkSupaStorageUploadBuilder {\r\n\t\tthis._path = path;\r\n\t\treturn this;\r\n\t}\r\n\r\n file(file : string) : AkSupaStorageUploadBuilder {\r\n\t\tthis._file = file;\r\n\t\treturn this;\r\n\t}\r\n\r\n\toptions(options : UTSJSONObject) : AkSupaStorageUploadBuilder {\r\n\t\tthis._options = options;\r\n\t\treturn this;\r\n\t}\r\n\tasync upload() : Promise> {\r\n if (this._bucket == '' || this._path == '' || this._file == '') {\r\n\t\t\tthrow toUniError('bucket, path, file are required', '上传文件缺少必要参数');\r\n\t\t}\r\n\t\tconst url = `${this._supa.baseUrl}/storage/v1/object/${this._bucket}/${this._path}`;\r\n\t\tconst apikey = this._supa.apikey;\r\n\t\t// 适配 uni.uploadFile\r\n\t\tconst uploadOptions : AkReqUploadOptions = {\r\n\t\t\turl,\r\n\t\t\tfilePath: this._file, // 这里假设 file 是本地路径\r\n\t\t\tname: 'file', // 默认字段名\r\n\t\t\theaders: {},\r\n\t\t\tapikey,\r\n\t\t\tformData: this._options\r\n\t\t};\r\n\t\treturn await AkReq.upload(uploadOptions);\r\n\t}\r\n}\r\n\r\n// 新增:明确的 StorageBucket 类,支持链式 upload\r\nclass AkSupaStorageBucket {\r\n\tprivate supa : AkSupa;\r\n\tprivate bucket : string;\r\n\tconstructor(supa : AkSupa, bucket : string) {\r\n\t\tthis.supa = supa;\r\n\t\tthis.bucket = bucket;\r\n\t}\r\n\tasync upload(path : string, filePath : string, options ?: UTSJSONObject) : Promise> {\r\n\t\tconst url = `${this.supa.baseUrl}/storage/v1/object/${this.bucket}/${path}`;\r\n\t\tlet headers : UTSJSONObject = { apikey: this.supa.apikey };\r\n\t\tconst formData : UTSJSONObject = {};\r\n\t\tif (options != null && typeof options == 'object') {\r\n\t\t\tif (typeof options.get == 'function' && options.get('x-upsert') != null) {\r\n\t\t\t\theaders['x-upsert'] = options.get('x-upsert');\r\n\t\t\t}\r\n\t\t\tconst keys = UTSJSONObject.keys(options);\r\n\t\t\tfor (let i = 0; i < keys.length; i++) {\r\n\t\t\t\tconst k = keys[i];\r\n\t\t\t\tif (k != 'x-upsert') formData[k] = options.get(k);\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst token = AkReq.getToken();\r\n\t\tif (token != null && !(token == '')) {\r\n\t\t\theaders['Authorization'] = `Bearer ${token}`;\r\n\t\t}\r\n\t\treturn await AkReq.upload({\r\n\t\t\turl,\r\n\t\t\tfilePath,\r\n\t\t\tname: 'file',\r\n\t\t\tapikey: this.supa.apikey,\r\n\t\t\tformData,\r\n\t\t\theaders\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport class AkSupaStorageApi {\r\n\tprivate _supa : AkSupa;\r\n\tconstructor(supa : AkSupa) {\r\n\t\tthis._supa = supa;\r\n\t}\r\n\tfrom(bucket : string) : AkSupaStorageBucket {\r\n\t\treturn new AkSupaStorageBucket(this._supa, bucket);\r\n\t}\r\n}\r\n\r\nexport class AkSupa {\r\n\tbaseUrl : string;\r\n\tapikey : string;\r\n\tsession : AkSupaSignInResult | null = null;\r\n\tuser : UTSJSONObject | null = null;\r\n\tstorage : AkSupaStorageApi;\r\n\r\n\tconstructor(baseUrl : string, apikey : string) {\r\n\t\tthis.baseUrl = baseUrl;\r\n\t\tthis.apikey = apikey;\r\n\t\tthis.storage = new AkSupaStorageApi(this);\r\n\t\t// [CHANGE][2026-01-30] hydrate user/session from persisted token (see docs: components/supadb/docs/CHANGELOG.md)\r\n\t\ttry {\r\n\t\t\tthis.hydrateSessionFromStorage();\r\n\t\t} catch (e) {\r\n\t\t\t// ignore\r\n\t\t}\r\n\t}\r\n\r\n\t// [CHANGE][2026-01-30] hydrate user from /auth/v1/user when token exists in storage\r\n\tasync hydrateSessionFromStorage() : Promise {\r\n\t\ttry {\r\n\t\t\tconst token = AkReq.getToken();\r\n\t\t\tif (token == null || token == '') return false;\r\n\t\t\tconst res = await AkReq.request({\r\n\t\t\t\turl: this.baseUrl + '/auth/v1/user',\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t\tAuthorization: `Bearer ${token}`,\r\n\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t} as UTSJSONObject\r\n\t\t\t}, false);\r\n\t\t\tconst status = res.status ?? 0;\r\n\t\t\tif (!(status >= 200 && status < 400)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tlet user: UTSJSONObject | null = null;\r\n\t\t\ttry {\r\n\t\t\t\tuser = new UTSJSONObject(res.data);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tuser = null;\r\n\t\t\t}\r\n\t\t\tif (user == null) return false;\r\n\t\t\tthis.user = user;\r\n\t\t\t// 仅补齐最小 session 结构,供 getSession / UI 判断登录态使用\r\n\t\t\tif (this.session == null) {\r\n\t\t\t\tthis.session = {\r\n\t\t\t\t\taccess_token: token,\r\n\t\t\t\t\trefresh_token: AkReq.getRefreshToken() ?? '',\r\n\t\t\t\t\texpires_at: AkReq.getExpiresAt() ?? 0,\r\n\t\t\t\t\tuser: user,\r\n\t\t\t\t\ttoken_type: 'bearer',\r\n\t\t\t\t\texpires_in: 0,\r\n\t\t\t\t\traw: user\r\n\t\t\t\t} as AkSupaSignInResult;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync resetPassword(email : string) : Promise {\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/recover',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t} as UTSJSONObject,\r\n\t\t\tdata: { email } as UTSJSONObject,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\r\n\t\t// Supabase returns 200 when the reset email is sent successfully\r\n\t\treturn res.status == 200;\r\n\t}\r\n\tasync signOut() {\r\n\t\tthis.session = null\r\n\t\tthis.user = null\r\n\t}\r\n\tasync signIn(email : string, password : string) : Promise {\r\n\t\t// 提前检查 apikey 配置是否为占位符,避免发送无效请求导致 401\r\n\t\tif (this.apikey == null || this.apikey.trim() === '' || this.apikey === 'your-anon-key') {\r\n\t\t\tthrow new Error('Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)');\r\n\t\t}\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/token?grant_type=password',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t} as UTSJSONObject,\r\n\t\t\tdata: { email, password } as UTSJSONObject,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\t\t// 如果响应不是 2xx(例如 401),提取后端错误信息并抛出,便于上层显示具体原因\r\n\t\tconst status = res.status ?? 0;\r\n\t\tif (!(status >= 200 && status < 400)) {\r\n\t\t\tlet msg = 'user.login.login_failed';\r\n\t\t\ttry {\r\n\t\t\t\tif (res.data != null) {\r\n\t\t\t\t\tconst obj = new UTSJSONObject(res.data);\r\n\t\t\t\t\tmsg = obj.getString('message') ?? obj.getString('error') ?? obj.getString('msg') ?? obj.getString('description') ?? obj.getString('error_description') ?? msg;\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// ignore\r\n\t\t\t}\r\n\t\t\tthrow new Error(msg);\r\n\t\t}\r\n\t\t// 解析成功的返回体\r\n\t\tlet data: UTSJSONObject;\r\n\t\ttry {\r\n\t\t\tdata = new UTSJSONObject(res.data);\r\n\t\t} catch (e) {\r\n\t\t\tdata = new UTSJSONObject({});\r\n\t\t}\r\n\t\tconst access_token = data.getString('access_token') ?? '';\r\n\t\tconst refresh_token = data.getString('refresh_token') ?? '';\r\n\t\tconst expires_at = data.getNumber('expires_at') ?? 0;\r\n\t\tconst user = data.getJSON('user');\r\n\t\tAkReq.setToken(access_token, refresh_token, expires_at);\r\n\t\tconst session : AkSupaSignInResult = {\r\n\t\t\taccess_token: access_token,\r\n\t\t\trefresh_token: refresh_token,\r\n\t\t\texpires_at: expires_at,\r\n\t\t\tuser: user,\r\n\t\t\ttoken_type: data.getString('token_type') ?? '',\r\n\t\t\texpires_in: data.getNumber('expires_in') ?? 0,\r\n\t\t\traw: data\r\n\t\t};\r\n\t\tthis.session = session;\r\n\t\tthis.user = user;\r\n\t\treturn session;\r\n\t}\r\n\r\n\t/**\r\n\t * 获取当前 session 和 user\r\n\t */\r\n\tgetSession() : AkSupaSessionInfo {\r\n\t\treturn {\r\n\t\t\tsession: this.session,\r\n\t\t\tuser: this.user\r\n\t\t};\r\n\t}\r\n\r\n\tasync signUp(email : string, password : string) : Promise {\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/signup',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t} as UTSJSONObject,\r\n\t\t\tdata: { email, password } as UTSJSONObject,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\t\treturn res.data as UTSJSONObject;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * 查询表数据(GET方式,支持多条件、limit等,filter自动转为supabase风格query)\r\n\t * filter 支持:\r\n\t * { usr_id: { lt: 800 }, name: { ilike: '%foo%' }, status: 'active', age: { gte: 18, lte: 30 } }\r\n\t * 操作符支持 eq, neq, lt, lte, gt, gte, like, ilike, in, is, not, contains, containedBy, range, fts, plfts, phfts, wfts\r\n\t */\r\nasync select(table : string, filter ?: string | null, options ?: AkSupaSelectOptions) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tlet headers = {\r\n\t\tapikey: this.apikey,\r\n\t\t'Content-Type': 'application/json',\r\n\t\tAuthorization: `Bearer ${AkReq.getToken() ?? ''}`\r\n\t} as UTSJSONObject;\r\n\tlet params : string[] = [];\r\n\tif (options != null) {\r\n\t\tif (options.columns != null && !(options.columns == \"\")) params.push('select=' + encodeURIComponent(options.columns ?? \"\"));\r\n\t\tif (options.limit != null) {\r\n\t\t\tparams.push('limit=' + options.limit);\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:799','设置 limit 参数:', options.limit);\r\n\t\t}\r\n\t\tif (options.order != null && !(options.order == \"\")) params.push('order=' + encodeURIComponent(options.order ?? \"\"));\r\n\t\tif (options.rangeFrom != null && options.rangeTo != null) {\r\n\t\t\theaders['Range'] = `${options.rangeFrom}-${options.rangeTo}`;\r\n\t\t\theaders['Range-Unit'] = 'items';\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:805','设置 Range 头部:', `${options.rangeFrom}-${options.rangeTo}`);\r\n\t\t}\r\n\r\n\t\t// 向后兼容:支持旧的 getcount 参数\r\n\t\tlet countOption = options.count ?? options.getcount;\r\n\t\tif (countOption != null) {\r\n\t\t\theaders['Prefer'] = `count=${countOption}`;\r\n\t\t}\r\n\t\t// 新增:head 模式支持\r\n\t\tif (options.head == true) {\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:815','使用 head 模式,只返回元数据');\r\n\t\t\t// HEAD 请求用于只获取 count,不返回数据\r\n\t\t\tif (headers['Prefer'] != null) {\r\n\t\t\t\theaders['Prefer'] = (headers['Prefer'] as string) + ',return=minimal';\r\n\t\t\t} else {\r\n\t\t\t\theaders['Prefer'] = 'return=minimal';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.single == true) {\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:825','使用 single() 模式');\r\n\t\t\tif (headers['Prefer'] != null) {\r\n\t\t\t\theaders['Prefer'] = (headers['Prefer'] as string) + ',return=representation,single-object';\r\n\t\t\t} else {\r\n\t\t\t\theaders['Prefer'] = 'return=representation,single-object';\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// 确保有 select 参数\r\n\t\tif (options.columns == null) {\r\n\t\t\tparams.push('select=*');\r\n\t\t} else if (options.columns == \"\") {\r\n\t\t\tparams.push('select=*');\r\n\t\t}\r\n\t} else {\r\n\t\tparams.push('select=*');\r\n\t}\r\n\t// 直接用 string filter\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\tparams.push(filter!!);\r\n\t}\r\n\tif (params.length > 0) {\r\n\t\turl += '?' + params.join('&');\r\n\t}\r\n\r\n\t//__f__('log','at components/supadb/aksupa.uts:850',url)\r\n\r\n\t// 确定HTTP方法:如果是head模式,使用HEAD方法\r\n\tlet httpMethod: 'GET' | 'HEAD' = 'GET';\r\n\tif (options != null && options.head == true) {\r\n\t\thttpMethod = 'HEAD';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:856','使用 HEAD 方法进行 count 查询');\r\n\t}\r\n\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: httpMethod,\r\n\t\theaders\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\nasync select_uts(table : string, filter ?: UTSJSONObject | null, options ?: AkSupaSelectOptions) : Promise> {\r\n\tconst filter_str = buildSupabaseFilterQuery(filter)\r\n\treturn this.select(table,filter_str,options)\r\n}\r\n\t/**\r\n\t * 插入表数据\r\n\t * @param table 表名\r\n\t * @param row 插入对象\r\n\t * @returns 插入结果\r\n\t */\r\n\tasync insert(table : string, row : UTSJSONObject | Array) : Promise> {\r\n\t\tconst url = this.baseUrl + '/rest/v1/' + table;\r\n\t\tconst headers = {\r\n\t\t\tapikey: this.apikey,\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\tAuthorization: `Bearer ${AkReq.getToken() ?? ''}`,\r\n\t\t\tPrefer: 'return=representation'\r\n\t\t} as UTSJSONObject;\r\n\r\n\t\t// 如果是数组,直接传递;如果是单个对象,也直接传递\r\n\t\t// Supabase REST API 原生支持两种格式\r\n\t\tlet reqOptions : AkReqOptions = {\r\n\t\t\turl,\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders,\r\n\t\t\tdata: row, // 可以是单个对象或数组\r\n\t\t\tcontentType: 'application/json'\r\n\t\t};\r\n\t\treturn await this.requestWithAutoRefresh(reqOptions);\r\n\t}\r\n\r\n\t/**\r\n\t * 更新表数据\r\n\t * @param table 表名\r\n\t * @param filter 过滤条件对象\r\n\t * @param values 更新内容对象\r\n\t * @returns 更新结果\r\n\t */\r\nasync update(table : string, filter : string | null, values : UTSJSONObject) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\turl += '?' + filter;\r\n\t}\r\n\tconst headers = {\r\n\t\tapikey: this.apikey,\r\n\t\t'Content-Type': 'application/json',\r\n\t\tAuthorization: `Bearer ${AkReq.getToken() ?? ''}`,\r\n\t\tPrefer: 'return=representation'\r\n\t} as UTSJSONObject;\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: 'PATCH',\r\n\t\theaders,\r\n\t\tdata: values,\r\n\t\tcontentType: 'application/json'\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\n\t/**\r\n\t * 删除表数据\r\n\t * @param table 表名\r\n\t * @param filter 过滤条件对象\r\n\t * @returns 删除结果\r\n\t */\r\nasync delete(table : string, filter : string | null) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\turl += '?' + filter;\r\n\t}\r\n\tconst headers = {\r\n\t\tapikey: this.apikey,\r\n\t\t'Content-Type': 'application/json',\r\n\t\tAuthorization: `Bearer ${AkReq.getToken() ?? ''}`,\r\n\t\tPrefer: 'return=representation'\r\n\t} as UTSJSONObject;\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: 'DELETE',\r\n\t\theaders,\r\n\t\tcontentType: 'application/json'\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\n\t/**\r\n\t * 调用 Supabase/PostgREST RPC (function)\r\n\t * @param functionName 函数名\r\n\t * @param params 参数对象\r\n\t * @returns AkReqResponse\r\n\t */\r\n\tasync rpc(functionName : string, params ?: UTSJSONObject) : Promise> {\r\n\t\tconst url = `${this.baseUrl}/rest/v1/rpc/${functionName}`;\r\n\t\tconst headers = {\r\n\t\t\tapikey: this.apikey,\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\tAuthorization: `Bearer ${AkReq.getToken() ?? ''}`\r\n\t\t} as UTSJSONObject;\r\n\t\tlet reqOptions : AkReqOptions = {\r\n\t\t\turl,\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders,\r\n\t\t\tdata: params ?? {},\r\n\t\t\tcontentType: 'application/json'\r\n\t\t};\r\n\t\treturn await this.requestWithAutoRefresh(reqOptions);\r\n\t}\r\n\t/**\r\n\t * 兼容 supabase-js 风格\r\n\t * @param tableName 表名\r\n\t */\r\n\tfrom(tableName : string) : AkSupaQueryBuilder {\r\n\t\treturn new AkSupaQueryBuilder(this, tableName);\r\n\t}\r\n\r\n /**\r\n * 创建实时订阅通道 (兼容 Supabase Realtime 接口,目前使用轮询模拟)\r\n * @param topic 通道名称,如 public:table\r\n */\r\n channel(topic: string): AkSupaRealtimeChannel {\r\n return new AkSupaRealtimeChannel(this, topic);\r\n }\r\n \r\n /**\r\n * 移除通道\r\n */\r\n removeChannel(channel: AkSupaRealtimeChannel): Promise {\r\n channel.unsubscribe();\r\n return Promise.resolve('ok');\r\n }\r\n\t// AkSupa类内新增:自动刷新session\r\n\tasync refreshSession() : Promise {\r\n\t\tif (this.session == null || this.session?.refresh_token == null) return false;\r\n\t\ttry {\r\n\t\t\tconst res = await AkReq.request({\r\n\t\t\t\turl: this.baseUrl + '/auth/v1/token?grant_type=refresh_token',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t} as UTSJSONObject,\r\n\t\t\t\tdata: { refresh_token: this.session?.refresh_token } as UTSJSONObject,\r\n\t\t\t\tcontentType: 'application/json'\r\n\t\t\t}, false);\r\n\t\t\tif (res.status == 200 && (res.data != null)) {\r\n\t\t\t\tconst data = res.data as UTSJSONObject;\r\n\t\t\t\tconst access_token = data.getString('access_token') ?? '';\r\n\t\t\t\tconst refresh_token = data.getString('refresh_token') ?? '';\r\n\t\t\t\tconst expires_at = data.getNumber('expires_at') ?? 0;\r\n\t\t\t\tconst user = data.getJSON('user');\r\n\t\t\t\tthis.session = {\r\n\t\t\t\t\taccess_token,\r\n\t\t\t\t\trefresh_token,\r\n\t\t\t\t\texpires_at,\r\n\t\t\t\t\tuser,\r\n\t\t\t\t\ttoken_type: data.getString('token_type') ?? '',\r\n\t\t\t\t\texpires_in: data.getNumber('expires_in') ?? 0,\r\n\t\t\t\t\traw: data\r\n\t\t\t\t};\r\n\t\t\t\tthis.user = user;\r\n\t\t\t\t// 更新本地token\r\n\t\t\t\tAkReq.setToken(access_token, refresh_token, expires_at);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t// AkSupa类内新增:自动刷新封装\r\n\tasync requestWithAutoRefresh(reqOptions : AkReqOptions, isRetry = false) : Promise> {\r\n\t\tlet res = await AkReq.request(reqOptions, false);\r\n\t\t// JWT过期:Supabase风格\r\n\t\tconst isJwtExpired = (res.status == 401); //res != null && res.data != null && typeof res.data == 'object' && (res.data as UTSJSONObject)?.getString('code') == 'PGRST301';\r\n\t\t// 401未授权\r\n\t\tconst isUnauthorized = (res.status == 401);\r\n\t\tif ((isJwtExpired || isUnauthorized) && !isRetry) {\r\n\t\t\tconst ok = await this.refreshSession();\r\n\t\t\tif (ok) {\r\n\t\t\t\tlet headers = reqOptions.headers\r\n\t\t\t\tif (headers == null) {\r\n\t\t\t\t\theaders = new UTSJSONObject()\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof headers.set == 'function') {\r\n\t\t\t\t\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\t\t\t\t\treqOptions.headers = headers\r\n\t\t\t\t}\r\n\r\n\t\t\t\tres = await AkReq.request(reqOptions, false);\r\n\t\t\t} else {\r\n\t\t\t\tuni.removeStorageSync('user_id');\r\n\t\t\t\tuni.removeStorageSync('token');\r\n\r\n\t\t\t\t//uni.reLaunch({ url: '/pages/user/login' });\r\n __f__('log','at components/supadb/aksupa.uts:1062','登录已过期,请重新登录');\r\n\t\t\t\tthrow toUniError('登录已过期,请重新登录', '用户认证失败');\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n}\r\n\r\n// 工具函数:将 UTSJSONObject filter 转为 Supabase/PostgREST 查询字符串\r\nfunction buildSupabaseFilterQuery(filter : UTSJSONObject | null) : string {\r\n\t//__f__('log','at components/supadb/aksupa.uts:1072',filter)\r\n\tif (filter == null) return \"\";\r\n\t// 类型保护:如果不是 UTSJSONObject,自动包裹\r\n\tif (typeof filter.get !== 'function') {\r\n\t\ttry {\r\n\t\t\tfilter = new UTSJSONObject(filter as any)\r\n\t\t} catch (e) {\r\n\t\t\t__f__('warn','at components/supadb/aksupa.uts:1079','filter 不是 UTSJSONObject,且无法转换', filter)\r\n\t\t\treturn ''\r\n\t\t}\r\n\t}\r\n\tconst params : string[] = [];\r\n\tconst keys : string[] = UTSJSONObject.keys(filter);\r\n\tfor (let i = 0; i < keys.length; i++) {\r\n\t\tconst k = keys[i];\r\n\t\tconst v = filter.get(k);\r\n\t\tif (k == 'or' && typeof v == 'string') {\r\n\t\t\tparams.push(`or=(${v})`);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tif (v != null && typeof v == 'object' && typeof (v as UTSJSONObject).get == 'function') {\r\n\t\t\tconst vObj = v as UTSJSONObject;\r\n\t\t\tconst opKeys = UTSJSONObject.keys(vObj);\r\n\t\t\tfor (let j = 0; j < opKeys.length; j++) {\r\n\t\t\t\tconst op = opKeys[j];\r\n\t\t\t\tconst opVal = vObj.get(op);\r\n\t\t\t\tif ((op == 'in' || op == 'not.in') && Array.isArray(opVal)) {\r\n\t\t\t\t\tparams.push(`${k}=${op}.(${opVal.map(x => typeof x == 'object' ? encodeURIComponent(JSON.stringify(x)) : encodeURIComponent(x.toString())).join(',')})`);\r\n\t\t\t\t} else if (op == 'is' && (opVal == null || opVal == 'null')) {\r\n\t\t\t\t\tparams.push(`${k}=is.null`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst opvalstr : string = (typeof opVal == 'object') ? JSON.stringify(opVal) : (opVal as string);\r\n\t\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(opvalstr)}`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (v != null && typeof v == 'object') {\r\n\t\t\tconst vObj = v as UTSJSONObject;\r\n\t\t\tconst opKeys = UTSJSONObject.keys(vObj);\r\n\t\t\tfor (let j = 0; j < opKeys.length; j++) {\r\n\t\t\t\tconst op = opKeys[j];\r\n\t\t\t\tconst opVal = vObj.get(op);\r\n\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(!(opVal == null) ? (typeof opVal == 'object' ? JSON.stringify(opVal) : opVal.toString()) : '')}`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparams.push(`${k}=eq.${encodeURIComponent(!(v == null) ? v.toString() : '')}`);\r\n\t\t}\r\n\t}\r\n\treturn params.join('&');\r\n}\r\n\r\n/**\r\n * 创建 Supabase 客户端实例\r\n * @param url 项目 URL\r\n * @param key 项目匿名密钥 (Anon Key)\r\n */\r\nexport function createClient(url : string, key : string) : AkSupa {\r\n\treturn new AkSupa(url, key);\r\n}\r\n\r\n// 模拟 Realtime Channel 类 (Polling Fallback)\r\nexport class AkSupaRealtimeChannel {\r\n private _supa: AkSupa;\r\n private _topic: string;\r\n private _timer: number = 0;\r\n private _callback: ((payload: any) => void) | null = null;\r\n private _table: string = '';\r\n private _lastTime: string = new Date().toISOString(); \r\n private _isSubscribed: boolean = false;\r\n\r\n constructor(supa: AkSupa, topic: string) {\r\n this._supa = supa;\r\n this._topic = topic;\r\n }\r\n\r\n // 绑定事件 (仅支持 postgres_changes INSERT)\r\n on(type: string, filter: UTSJSONObject, callback: (payload: any) => void): AkSupaRealtimeChannel {\r\n // 解析 table\r\n const table = filter.getString('table');\r\n if (table != null) {\r\n this._table = table;\r\n }\r\n this._callback = callback;\r\n return this;\r\n }\r\n\r\n // 开始订阅\r\n subscribe(callback?: (status: string, err: any | null) => void): AkSupaRealtimeChannel {\r\n if (this._isSubscribed) return this;\r\n this._isSubscribed = true;\r\n \r\n // 初始回调\r\n if (callback != null) {\r\n callback('SUBSCRIBED', null);\r\n }\r\n\r\n // 如果没有指定 table,无法轮询\r\n if (this._table == '') {\r\n __f__('warn','at components/supadb/aksupa.uts:1169','Realtime check: No table specified for polling.');\r\n return this;\r\n }\r\n\r\n // 开始轮询 (每3秒)\r\n this._timer = setInterval(() => {\r\n this._checkUpdates();\r\n }, 3000);\r\n\r\n return this;\r\n }\r\n\r\n // 停止订阅\r\n unsubscribe() {\r\n if (this._timer > 0) {\r\n clearInterval(this._timer);\r\n this._timer = 0;\r\n }\r\n this._isSubscribed = false;\r\n }\r\n\r\n // 检查更新\r\n private async _checkUpdates() {\r\n if (!this._isSubscribed || this._table == '') return;\r\n \r\n try {\r\n const now = new Date().toISOString();\r\n \r\n const res = await this._supa\r\n .from(this._table)\r\n .select('*')\r\n .gt('created_at', this._lastTime)\r\n .order('created_at', { ascending: true })\r\n .execute();\r\n \r\n if (res.error == null && res.data != null) {\r\n let list: any[] = [];\r\n if (Array.isArray(res.data)) {\r\n list = res.data as any[];\r\n }\r\n \r\n if (list.length > 0) {\r\n // 更新最后时间\r\n const lastItem = list[list.length - 1];\r\n let lastTimeStr: string | null = null;\r\n \r\n if (lastItem instanceof UTSJSONObject) {\r\n lastTimeStr = lastItem.getString('created_at');\r\n } else {\r\n // 尝试转 json\r\n const j = JSON.parse(JSON.stringify(lastItem)) as UTSJSONObject;\r\n lastTimeStr = j.getString('created_at');\r\n }\r\n \r\n if (lastTimeStr != null) {\r\n this._lastTime = lastTimeStr;\r\n } else {\r\n this._lastTime = now;\r\n }\r\n\r\n // 触发回调\r\n if (this._callback != null) {\r\n // 模拟 Realtime payload\r\n list.forEach(item => {\r\n const payload = {\r\n new: item,\r\n eventType: 'INSERT',\r\n old: null\r\n };\r\n this._callback?.(payload);\r\n });\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at components/supadb/aksupa.uts:1244','Realtime polling error:', e);\r\n }\r\n }\r\n}\r\n\r\nexport default AkSupa;\r\n","// /components/supadb/aksupainstance.uts\r\nimport { createClient } from './aksupa.uts'\r\nimport { SUPA_URL, SUPA_KEY } from '@/ak/config.uts'\r\n\r\n// 创建单一真实的 Supabase 客户端实例 (使用 config.uts 配置)\r\n// Create single source of truth client using config\r\nconst supaInstance = createClient(SUPA_URL, SUPA_KEY)\r\n\r\n// 导出默认实例 (供 login.uvue 等使用)\r\nexport default supaInstance\r\n\r\n// 导出命名实例 'supabase' (供 store.uts 使用)\r\nexport const supabase = supaInstance\r\n\r\n// 导出 isSupabaseReady 状态\r\nexport const isSupabaseReady = true\r\n\r\n// 兼容 ensureSupabaseReady\r\nexport async function ensureSupabaseReady() {\r\n return true\r\n}\r\n\r\n// 检查连接状态的函数\r\nexport function checkConnection() {\r\n return Promise.resolve(true)\r\n}\r\n\r\n// 兼容 supaReady Promise\r\nexport const supaReady = Promise.resolve(true)\r\n\r\n// 如果有其他需要导出的函数,可以这样导出:\r\nexport function initializeSupabase(url: string, key: string) {\r\n return createClient(url, key)\r\n}\r\n","// 电商商城系统类型定义 - UTS Android 兼容\r\n\r\n// 用户类型\r\nexport type UserType = {\r\n\tid: string\r\n\tphone: string\r\n\temail: string | null\r\n\tnickname: string | null\r\n\tavatar_url: string | null\r\n\tgender: number\r\n\tuser_type: number\r\n\tstatus: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 商城用户扩展信息类型\r\nexport type MallUserProfileType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tuser_type: number\r\n\tstatus: number\r\n\treal_name: string | null\r\n\tid_card: string | null\r\n\tcredit_score: number\r\n\tmall_role: string\r\n\tverification_status: number\r\n\tverification_data: UTSJSONObject | null\r\n\tbusiness_license: string | null\r\n\tshop_category: string | null\r\n\tservice_areas: UTSJSONObject | null\r\n\temergency_contact: string | null\r\n\tpreferences: UTSJSONObject | null\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 用户地址类型\r\nexport type UserAddressType = {\r\n\tid: string\r\n\tuser_id: string\r\n\treceiver_name: string\r\n\treceiver_phone: string\r\n\tprovince: string\r\n\tcity: string\r\n\tdistrict: string\r\n\taddress_detail: string\r\n\tpostal_code: string | null\r\n\tis_default: boolean\r\n\tlabel: string | null\r\n\tcoordinates: string | null\r\n\tdelivery_instructions: string | null\r\n\tbusiness_hours: string | null\r\n\tstatus: number\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 商家类型\r\nexport type MerchantType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tshop_name: string\r\n\tshop_logo: string | null\r\n\tshop_banner: string | null\r\n\tshop_description: string | null\r\n\tcontact_name: string\r\n\tcontact_phone: string\r\n\tshop_status: number\r\n\trating: number\r\n\ttotal_sales: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 商品类型\r\nexport type ProductType = {\r\n\tid: string\r\n\tmerchant_id: string\r\n\tcategory_id: string\r\n\tname: string\r\n\tdescription: string | null\r\n\timages: Array\r\n\tprice: number\r\n\toriginal_price: number | null\r\n\tstock: number\r\n\tsales: number\r\n\tstatus: number\r\n\tcreated_at: string\r\n\t// 药品相关字段\r\n\tspecification?: string | null // 规格说明\r\n\tusage?: string | null // 用法用量\r\n\tside_effects?: string | null // 副作用\r\n\tprecautions?: string | null // 注意事项\r\n\texpiry_date?: string | null // 有效期\r\n\tstorage_conditions?: string | null // 储存条件\r\n\tapproval_number?: string | null // 批准文号\r\n\ttags?: Array | null // 商品标签\r\n}\r\n\r\n// 商品SKU类型\r\nexport type ProductSkuType = {\r\n\tid: string\r\n\tproduct_id: string\r\n\tsku_code: string\r\n\tspecifications: UTSJSONObject | null\r\n\tprice: number\r\n\tstock: number\r\n\timage_url: string | null\r\n\tstatus: number\r\n}\r\n\r\n// 购物车类型\r\nexport type CartItemType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tproduct_id: string\r\n\tsku_id: string\r\n\tquantity: number\r\n\tselected: boolean\r\n\tproduct: ProductType | null\r\n\tsku: ProductSkuType | null\r\n}\r\n\r\n// 订单类型\r\nexport type OrderType = {\r\n\tid: string\r\n\torder_no: string\r\n\tuser_id: string\r\n\tmerchant_id: string\r\n\tstatus: number\r\n\ttotal_amount: number\r\n\tdiscount_amount: number\r\n\tdelivery_fee: number\r\n\tactual_amount: number\r\n\tpayment_method: number | null\r\n\tpayment_status: number\r\n\tdelivery_address: UTSJSONObject\r\n\tcreated_at: string\r\n}\r\n\r\n// 订单商品类型\r\nexport type OrderItemType = {\r\n\tid: string\r\n\torder_id: string\r\n\tproduct_id: string\r\n\tsku_id: string\r\n\tproduct_name: string\r\n\tsku_specifications: UTSJSONObject | null\r\n\tprice: number\r\n\tquantity: number\r\n\ttotal_amount: number\r\n}\r\n\r\n// 配送员类型\r\nexport type DeliveryDriverType = {\r\n\tid: string\r\n\tuser_id: string\r\n\treal_name: string\r\n\tid_card: string\r\n\tdriver_license: string | null\r\n\tvehicle_type: number\r\n\tvehicle_number: string | null\r\n\twork_status: number\r\n\tcurrent_location: UTSJSONObject | null\r\n\tservice_areas: Array\r\n\trating: number\r\n\ttotal_orders: number\r\n\tauth_status: number\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 配送任务类型\r\nexport type DeliveryTaskType = {\r\n\tid: string\r\n\torder_id: string\r\n\tdriver_id: string | null\r\n\tpickup_address: UTSJSONObject\r\n\tdelivery_address: UTSJSONObject\r\n\tdistance: number | null\r\n\testimated_time: number | null\r\n\tdelivery_fee: number\r\n\tstatus: number\r\n\tpickup_time: string | null\r\n\tdelivered_time: string | null\r\n\tdelivery_code: string | null\r\n\tremark: string | null\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 优惠券模板类型\r\nexport type CouponTemplateType = {\r\n\tid: string\r\n\tname: string\r\n\tdescription: string | null\r\n\tcoupon_type: number\r\n\tdiscount_type: number\r\n\tdiscount_value: number\r\n\tmin_order_amount: number\r\n\tmax_discount_amount: number | null\r\n\ttotal_quantity: number | null\r\n\tper_user_limit: number\r\n\tusage_limit: number\r\n\tmerchant_id: string | null\r\n\tcategory_ids: Array\r\n\tproduct_ids: Array\r\n\tuser_type_limit: number | null\r\n\tstart_time: string\r\n\tend_time: string\r\n\tstatus: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 用户优惠券类型\r\nexport type UserCouponType = {\r\n\tid: string\r\n\tuser_id: string\r\n\ttemplate_id: string\r\n\tcoupon_code: string\r\n\tstatus: number\r\n\tused_at: string | null\r\n\torder_id: string | null\r\n\treceived_at: string\r\n\texpire_at: string\r\n}\r\n\r\n// 分页数据类型\r\nexport type PageDataType = {\r\n\tdata: Array\r\n\ttotal: number\r\n\tpage: number\r\n\tpageSize: number\r\n\thasMore: boolean\r\n}\r\n\r\n// API响应类型\r\nexport type ApiResponseType = {\r\n\tsuccess: boolean\r\n\tdata: T | null\r\n\tmessage: string\r\n\tcode: number\r\n}\r\n\r\n// 订单状态枚举\r\nexport const ORDER_STATUS = {\r\n\tPENDING_PAYMENT: 1,\r\n\tPAID: 2,\r\n\tSHIPPED: 3,\r\n\tDELIVERED: 4,\r\n\tCOMPLETED: 5,\r\n\tCANCELLED: 6,\r\n\tREFUNDING: 7,\r\n\tREFUNDED: 8\r\n}\r\n\r\n// 优惠券类型枚举\r\nexport const COUPON_TYPE = {\r\n\tDISCOUNT_AMOUNT: 1, // 满减券\r\n\tDISCOUNT_PERCENT: 2, // 折扣券\r\n\tFREE_SHIPPING: 3, // 免运费券\r\n\tNEWBIE: 4, // 新人券\r\n\tMEMBER: 5, // 会员券\r\n\tCATEGORY: 6, // 品类券\r\n\tMERCHANT: 7, // 商家券\r\n\tLIMITED_TIME: 8 // 限时券\r\n}\r\n\r\n// 支付方式枚举\r\nexport const PAYMENT_METHOD = {\r\n\tWECHAT: 1,\r\n\tALIPAY: 2,\r\n\tUNIONPAY: 3,\r\n\tBALANCE: 4\r\n}\r\n\r\n// 配送状态枚举\r\nexport const DELIVERY_STATUS = {\r\n\tPENDING: 1,\r\n\tASSIGNED: 2,\r\n\tPICKED_UP: 3,\r\n\tIN_TRANSIT: 4,\r\n\tDELIVERED: 5,\r\n\tFAILED: 6\r\n}\r\n\r\n// 用户类型枚举\r\nexport const MALL_USER_TYPE = {\r\n\tCONSUMER: 1, // 消费者\r\n\tMERCHANT: 2, // 商家\r\n\tDELIVERY: 3, // 配送员\r\n\tSERVICE: 4, // 客服\r\n\tADMIN: 5 // 管理员\r\n}\r\n\r\n// 用户状态枚举\r\nexport const USER_STATUS = {\r\n\tNORMAL: 1, // 正常\r\n\tFROZEN: 2, // 冻结\r\n\tCANCELLED: 3, // 注销\r\n\tPENDING: 4 // 待审核\r\n} as const\r\n\r\n// 认证状态枚举\r\nexport const VERIFICATION_STATUS = {\r\n\tUNVERIFIED: 0, // 未认证\r\n\tVERIFIED: 1, // 已认证\r\n\tFAILED: 2 // 认证失败\r\n}\r\n\r\n// 地址标签枚举\r\nexport const ADDRESS_LABEL = {\r\n\tHOME: 'home', // 家\r\n\tOFFICE: 'office', // 公司\r\n\tSCHOOL: 'school', // 学校\r\n\tOTHER: 'other' // 其他\r\n}\r\n\r\n// 收藏类型枚举\r\nexport const FAVORITE_TYPE = {\r\n\tPRODUCT: 'product', // 商品\r\n\tSHOP: 'shop' // 店铺\r\n}\r\n\r\n// =========================\r\n// 订阅相关类型与枚举\r\n// =========================\r\n\r\n// 订阅周期枚举\r\nexport const SUBSCRIPTION_PERIOD = {\r\n\tMONTHLY: 'monthly',\r\n\tYEARLY: 'yearly'\r\n}\r\n\r\n// 订阅状态枚举\r\nexport const SUBSCRIPTION_STATUS = {\r\n\tTRIAL: 'trial',\r\n\tACTIVE: 'active',\r\n\tPAST_DUE: 'past_due',\r\n\tCANCELED: 'canceled',\r\n\tEXPIRED: 'expired'\r\n}\r\n\r\n// 软件订阅方案类型\r\nexport type SubscriptionPlanType = {\r\n\tid: string\r\n\tplan_code: string\r\n\tname: string\r\n\tdescription: string | null\r\n\tfeatures: UTSJSONObject | null // { featureKey: description }\r\n\tprice: number // 单位:元(或分,取决于后端;前端以显示为准)\r\n\tcurrency: string | null // 'CNY' | 'USD' ...\r\n\tbilling_period: string // 'monthly' | 'yearly'\r\n\ttrial_days: number | null\r\n\tis_active: boolean\r\n\tsort_order?: number | null\r\n\tcreated_at?: string\r\n\tupdated_at?: string\r\n}\r\n\r\n// 用户订阅记录类型\r\nexport type UserSubscriptionType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tplan_id: string\r\n\tstatus: string\r\n\tstart_date: string\r\n\tend_date: string | null\r\n\tnext_billing_date: string | null\r\n\tauto_renew: boolean\r\n\tcancel_at_period_end?: boolean | null\r\n\tmetadata?: UTSJSONObject | null\r\n\tcreated_at?: string\r\n\tupdated_at?: string\r\n}\r\n\r\n// 用户基础信息类型 (兼容 pages/user/types.uts)\r\nexport type UserProfile = {\r\n id?: string;\r\n username: string;\r\n email: string;\r\n gender?: string;\r\n birthday?: string;\r\n height_cm?: number;\r\n weight_kg?: number;\r\n bio?: string;\r\n avatar_url?: string;\r\n preferred_language?: string;\r\n role?: string;\r\n school_id?: string;\r\n grade_id?: string;\r\n class_id?: string;\r\n created_at?: string;\r\n updated_at?: string;\r\n}\r\n\r\nexport type UserStats = {\r\n trainings: number;\r\n points: number;\r\n streak: number;\r\n}\r\n\r\n// 足迹项类型\r\nexport type FootprintItemType = {\r\n id: string\r\n name: string\r\n price: number\r\n original_price: number | null\r\n image: string\r\n sales: number\r\n shopId: string\r\n shopName: string\r\n viewTime: number\r\n}\r\n\r\n// =========================\r\n// 积分相关类型\r\n// =========================\r\n\r\n// 签到记录类型\r\nexport type SigninRecordType = {\r\n id: string\r\n user_id: string\r\n signin_date: string\r\n points_earned: number\r\n bonus_points: number\r\n continuous_days: number\r\n created_at: string\r\n}\r\n\r\n// 签到结果类型\r\nexport type SigninResultType = {\r\n success: boolean\r\n points: number\r\n continuous_days: number\r\n bonus_points: number\r\n total_points: number\r\n message: string\r\n}\r\n\r\n// 积分兑换商品类型\r\nexport type PointProductType = {\r\n id: string\r\n name: string\r\n description: string | null\r\n image_url: string | null\r\n product_type: string\r\n points_required: number\r\n original_price: number | null\r\n stock: number\r\n status: number\r\n sort_order: number\r\n created_at: string\r\n}\r\n\r\n// 积分兑换记录类型\r\nexport type PointExchangeType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n quantity: number\r\n points_used: number\r\n status: number\r\n tracking_no: string | null\r\n address_snapshot: UTSJSONObject | null\r\n created_at: string\r\n product: PointProductType | null\r\n}\r\n\r\n// 积分规则类型\r\nexport type PointRuleType = {\r\n id: string\r\n rule_type: string\r\n rule_name: string\r\n points: number\r\n description: string | null\r\n config: UTSJSONObject | null\r\n status: number\r\n}\r\n\r\n// 积分概览类型\r\nexport type PointsOverviewType = {\r\n current_points: number\r\n total_earned: number\r\n total_used: number\r\n expiring_points: number\r\n expiring_date: string | null\r\n}\r\n\r\n// =========================\r\n// 评价相关类型\r\n// =========================\r\n\r\n// 商品评价类型(扩展)\r\nexport type ProductReviewType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n order_id: string\r\n order_item_id: string | null\r\n rating: number\r\n content: string | null\r\n images: string[]\r\n videos: string[]\r\n tags: string[]\r\n is_anonymous: boolean\r\n like_count: number\r\n is_edited: boolean\r\n append_content: string | null\r\n append_at: string | null\r\n append_images: string[]\r\n reply: string | null\r\n reply_time: string | null\r\n created_at: string\r\n updated_at: string\r\n user_name: string | null\r\n user_avatar: string | null\r\n is_liked: boolean\r\n}\r\n\r\n// 评价统计类型\r\nexport type ReviewStatsType = {\r\n total_count: number\r\n avg_rating: number\r\n good_rate: number\r\n rating_distribution: Map\r\n tags: ReviewTagType[]\r\n}\r\n\r\n// 评价标签类型\r\nexport type ReviewTagType = {\r\n name: string\r\n count: number\r\n}\r\n\r\n// 评价点赞类型\r\nexport type ReviewLikeType = {\r\n id: string\r\n review_id: string\r\n user_id: string\r\n created_at: string\r\n}\r\n\r\n// 评价举报类型\r\nexport type ReviewReportType = {\r\n id: string\r\n review_id: string\r\n user_id: string\r\n reason: string\r\n description: string | null\r\n status: number\r\n handle_result: string | null\r\n created_at: string\r\n}\r\n\r\n// 配送员评价类型\r\nexport type DeliveryRatingType = {\r\n id: string\r\n order_id: string\r\n delivery_user_id: string\r\n user_id: string\r\n rating: number\r\n content: string | null\r\n created_at: string\r\n}\r\n\r\n// 我的评价列表项类型\r\nexport type MyReviewItemType = {\r\n id: string\r\n product_id: string\r\n product_name: string\r\n product_image: string\r\n rating: number\r\n content: string | null\r\n images: string[]\r\n created_at: string\r\n can_append: boolean\r\n can_edit: boolean\r\n}\r\n\r\n// =========================\r\n// 推销模式相关类型\r\n// =========================\r\n\r\n// 用户余额类型\r\nexport type UserBalanceType = {\r\n id: string\r\n user_id: string\r\n balance: number\r\n frozen_balance: number\r\n total_earned: number\r\n total_withdrawn: number\r\n updated_at: string\r\n}\r\n\r\n// 余额变动记录类型\r\nexport type BalanceRecordType = {\r\n id: string\r\n user_id: string\r\n type: string\r\n amount: number\r\n balance_before: number\r\n balance_after: number\r\n related_id: string | null\r\n description: string | null\r\n operator_id: string | null\r\n created_at: string\r\n}\r\n\r\n// 分享记录类型\r\nexport type ShareRecordType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n order_id: string\r\n order_item_id: string | null\r\n share_code: string\r\n product_name: string\r\n product_image: string | null\r\n product_price: number\r\n required_count: number\r\n current_count: number\r\n status: number\r\n reward_amount: number | null\r\n created_at: string\r\n completed_at: string | null\r\n expired_at: string | null\r\n}\r\n\r\n// 二级购买记录类型\r\nexport type SecondaryPurchaseType = {\r\n id: string\r\n share_record_id: string\r\n buyer_id: string\r\n order_id: string\r\n quantity: number\r\n unit_price: number\r\n created_at: string\r\n}\r\n\r\n// 免单奖励记录类型\r\nexport type FreeOrderRewardType = {\r\n id: string\r\n user_id: string\r\n share_record_id: string\r\n amount: number\r\n status: number\r\n balance_record_id: string | null\r\n cleared_at: string | null\r\n cleared_by: string | null\r\n created_at: string\r\n}\r\n\r\n// 会员等级类型\r\nexport type MemberLevelType = {\r\n id: number\r\n name: string\r\n min_amount: number\r\n discount: number\r\n icon: string | null\r\n description: string | null\r\n sort_order: number\r\n status: number\r\n}\r\n\r\n// 用户会员信息类型\r\nexport type UserMemberInfoType = {\r\n member_level: number\r\n level_name: string\r\n discount: number\r\n total_spent: number\r\n next_level: MemberLevelType | null\r\n progress_percent: number\r\n manual_level: boolean\r\n}\r\n\r\n// 会员等级变更记录类型\r\nexport type MemberLevelLogType = {\r\n id: string\r\n user_id: string\r\n old_level: number\r\n new_level: number\r\n reason: string | null\r\n operator_id: string | null\r\n created_at: string\r\n}\r\n","// 设备信息类型\r\nexport type DeviceInfo = {\r\n\tid: string\r\n\tdevice_name?: string\r\n\tstatus?: string // 'online' | 'offline' | 其他状态\r\n\tuser_id?: string\r\n\t// 可根据实际需求添加更多字段\r\n}\r\n\r\n// 设备查询参数类型\r\nexport type DeviceParams = {\r\n\tuser_id: string\r\n\t// 可根据实际需求添加更多查询参数\r\n}\r\n","import supabase, { supaReady } from '@/components/supadb/aksupainstance.uts'\r\nimport type { UserProfile } from '@/types/mall-types.uts'\r\n\r\n/**\r\n * 确保用户资料存在,如果不存在则创建基础资料\r\n * @param sessionUser 会话用户对象 (UTSJSONObject)\r\n * @returns 创建的用户资料,如果创建失败则返回 null\r\n */\r\nexport async function ensureUserProfile(sessionUser: UTSJSONObject): Promise {\r\n\ttry {\r\n\t\tawait supaReady\r\n \r\n\t\t// 从 sessionUser 中获取用户ID和邮箱\r\n\t\tconst userId = sessionUser.getString('id')\r\n\t\tconst email = sessionUser.getString('email') ?? ''\r\n\t\t\r\n\t\tif (userId == null || userId === '') {\r\n\t\t\t__f__('error','at utils/sapi.uts:18','无法获取用户ID')\r\n\t\t\treturn null\r\n\t\t}\r\n\t\t\r\n\t\t// 检查用户是否已存在(ak_users 通过 auth_id 关联 auth.users.id)\r\n\t\tconst checkRes = await supabase.from('ak_users')\r\n\t\t\t.select('*', {})\r\n\t\t\t.eq('auth_id', userId)\r\n\t\t\t.single()\r\n\t\t\t.execute()\r\n\t\t\r\n\t\t__f__('log','at utils/sapi.uts:29','ensureUserProfile check ak_users:', {\r\n\t\t\tstatus: checkRes.status,\r\n\t\t\thasData: checkRes.data != null\r\n\t\t})\r\n\t\t\r\n\t\tif (checkRes.status >= 200 && checkRes.status < 300 && checkRes.data != null) {\r\n\t\t\t// 用户已存在,返回现有资料(H5 下 checkRes.data 可能是 plain object,不一定是 UTSJSONObject)\r\n\t\t\tconst data = checkRes.data\r\n\t\t\tlet existingUser: UTSJSONObject\r\n\t\t\tif (data instanceof UTSJSONObject) {\r\n\t\t\t\texistingUser = data\r\n\t\t\t} else {\r\n\t\t\t\texistingUser = new UTSJSONObject(data)\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tid: existingUser.getString('id') ?? '',\r\n\t\t\t\tusername: existingUser.getString('username') ?? '',\r\n\t\t\t\temail: existingUser.getString('email') ?? email,\r\n\t\t\t\tgender: existingUser.getString('gender'),\r\n\t\t\t\tbirthday: existingUser.getString('birthday'),\r\n\t\t\t\theight_cm: existingUser.getNumber('height_cm'),\r\n\t\t\t\tweight_kg: existingUser.getNumber('weight_kg'),\r\n\t\t\t\tbio: existingUser.getString('bio'),\r\n\t\t\t\tavatar_url: existingUser.getString('avatar_url'),\r\n\t\t\t\tpreferred_language: existingUser.getString('preferred_language'),\r\n\t\t\t\trole: existingUser.getString('role') ?? 'consumer',\r\n\t\t\t\tcreated_at: existingUser.getString('created_at'),\r\n\t\t\t\tupdated_at: existingUser.getString('updated_at')\r\n\t\t\t} as UserProfile\r\n\t\t}\r\n\t\t\r\n\t\t// 用户不存在,创建新用户资料\r\n\t\tconst newUserData = new UTSJSONObject()\r\n\t\tnewUserData.set('id', userId)\r\n\t\tnewUserData.set('email', email)\r\n\t\tnewUserData.set('username', email.split('@')[0] ?? 'user') // 默认用户名为邮箱前缀\r\n\t\t\r\n\t\tconst insertRes = await supabase.from('ak_users')\r\n\t\t\t.insert(newUserData)\r\n\t\t\t.select('*', {})\r\n\t\t\t.single()\r\n\t\t\t.execute()\r\n\t\t\r\n\t\t__f__('log','at utils/sapi.uts:72','ensureUserProfile insert ak_users status:', insertRes.status)\r\n\t\t\r\n\t\tif (insertRes.status >= 200 && insertRes.status < 300 && insertRes.data != null) {\r\n\t\t\tconst rawData = insertRes.data\r\n\t\t\tconst newUser = (rawData instanceof UTSJSONObject)\r\n\t\t\t\t? (rawData as UTSJSONObject)\r\n\t\t\t\t: new UTSJSONObject(rawData)\r\n\t\t\treturn {\r\n\t\t\t\tid: newUser.getString('id') ?? '',\r\n\t\t\t\tusername: newUser.getString('username') ?? '',\r\n\t\t\t\temail: newUser.getString('email') ?? email,\r\n\t\t\t\tgender: newUser.getString('gender'),\r\n\t\t\t\tbirthday: newUser.getString('birthday'),\r\n\t\t\t\theight_cm: newUser.getNumber('height_cm'),\r\n\t\t\t\tweight_kg: newUser.getNumber('weight_kg'),\r\n\t\t\t\tbio: newUser.getString('bio'),\r\n\t\t\t\tavatar_url: newUser.getString('avatar_url'),\r\n\t\t\t\tpreferred_language: newUser.getString('preferred_language'),\r\n\t\t\t\trole: newUser.getString('role') ?? 'consumer',\r\n\t\t\t\tcreated_at: newUser.getString('created_at'),\r\n\t\t\t\tupdated_at: newUser.getString('updated_at')\r\n\t\t\t} as UserProfile\r\n\t\t} else {\r\n\t\t\t__f__('error','at utils/sapi.uts:95','创建用户资料失败:', insertRes.status)\r\n\t\t\treturn null\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('error','at utils/sapi.uts:99','ensureUserProfile 异常:', error)\r\n\t\treturn null\r\n\t}\r\n}\r\n","import supa, { supaReady } from '@/components/supadb/aksupainstance.uts'\r\nimport type { UserProfile, UserStats } from '@/types/mall-types.uts'\r\nimport type { DeviceInfo } from '@/pages/sense/types.uts'\r\nimport { SenseDataService, type DeviceParams } from '@/pages/sense/senseDataService.uts'\r\nimport { reactive } from 'vue'\r\nimport { ensureUserProfile } from './sapi.uts'\r\n\r\n// 设备状态类型\r\nexport type DeviceState = {\r\n\tdevices : Array\r\n\tcurrentDevice : DeviceInfo | null\r\n\tisLoading : boolean\r\n\tlastUpdated : number | null\r\n}\r\n\r\n//定义一个大写的State类型\r\nexport type State = {\r\n\tglobalNum : number\r\n\tuserProfile ?: UserProfile\r\n\tisLoggedIn : boolean // 新增字段\r\n\tdeviceState : DeviceState // 新增设备状态\r\n\t// 如有需要,可增加更多属性\r\n}\r\n\r\n// 实例化为state\r\nexport const state = reactive({\r\n\tglobalNum: 0,\r\n\tuserProfile: { username: '', email: '' },\r\n\tisLoggedIn: false,\r\n\tdeviceState: {\r\n\t\tdevices: [],\r\n\t\tcurrentDevice: null,\r\n\t\tisLoading: false,\r\n\t\tlastUpdated: null\r\n\t} as DeviceState\r\n} as State)\r\n// 定义修改属性值的方法\r\nexport const setGlobalNum = (num : number) => {\r\n\tstate.globalNum = num\r\n}\r\n// 新增:设置登录状态的方法\r\nexport const setIsLoggedIn = (val : boolean) => {\r\n\tstate.isLoggedIn = val\r\n}\r\n// 定义全局设置用户信息的方法\r\nexport const setUserProfile = (profile : UserProfile) => {\r\n\tstate.userProfile = profile\r\n}\r\n\r\n// 获取当前用户信息(含补全 profile)\r\nexport async function getCurrentUser() : Promise {\r\n\ttry {\r\n\t\tawait supaReady\r\n\t} catch (_) {}\r\n\r\n\tconst sessionInfo = supa.getSession()\r\n\tif (sessionInfo.user == null) {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\r\n\tconst userId = sessionInfo.user?.getString(\"id\")\r\n\tif (userId == null) {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\t// 查询 ak_users 表补全 profile\r\n\tconst res = await supa.from('ak_users').select('*', {}).eq('id', userId).execute()\r\n\t__f__('log','at utils/store.uts:69',res)\r\n\tif (res.status >= 200 && res.status < 300 && (res.data != null)) {\r\n\t\tlet user : UTSJSONObject | null = null;\r\n\t\tconst data = res.data as any;\r\n\t\tif (Array.isArray(data)) {\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tuser = data[0] as UTSJSONObject;\r\n\t\t\t}\r\n\t\t} else if (data != null) {\r\n\t\t\tuser = data as UTSJSONObject;\r\n\t\t} __f__('log','at utils/store.uts:79',user)\r\n\t\tif (user == null) {\r\n\t\t\t__f__('log','at utils/store.uts:81','用户资料为空,尝试创建基础资料...')\t\t\t// 如果用户资料为空,尝试创建基础用户资料\r\n\t\t\tconst sessionUser = sessionInfo.user\r\n\t\t\tif (sessionUser != null) {\r\n\t\t\t\tconst createdProfile = await ensureUserProfile(sessionUser)\r\n\t\t\t\tif (createdProfile != null) {\r\n\t\t\t\t\tstate.userProfile = createdProfile\r\n\t\t\t\t\tstate.isLoggedIn = true\r\n\t\t\t\t\treturn createdProfile\r\n\t\t\t\t} else {\r\n\t\t\t\t\t__f__('error','at utils/store.uts:90','创建用户资料失败')\r\n\t\t\t\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\t\t\t\tstate.isLoggedIn = false\r\n\t\t\t\t\treturn null\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t__f__('error','at utils/store.uts:96','会话用户信息为空')\r\n\t\t\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\t\t\tstate.isLoggedIn = false\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\t\t}\r\n\t\t__f__('log','at utils/store.uts:102',user)\r\n\t\t// 直接用 getString/getNumber,无需兜底属性\t\t\r\n\t\tconst profile : UserProfile = {\r\n\t\t\tid: user.getString('id'),\r\n\t\t\tusername: user.getString('username') ?? \"\",\r\n\t\t\temail: user.getString('email') ?? \"\",\r\n\t\t\tgender: user.getString('gender'),\r\n\t\t\tbirthday: user.getString('birthday'),\r\n\t\t\theight_cm: user.getNumber('height_cm'),\r\n\t\t\tweight_kg: user.getNumber('weight_kg'),\r\n\t\t\tbio: user.getString('bio'),\r\n\t\t\tavatar_url: user.getString('avatar_url'),\r\n\t\t\tpreferred_language: user.getString('preferred_language'),\r\n\t\t\trole: user.getString('role'),\r\n\t\t\tschool_id: user.getString('school_id'),\r\n\t\t\tgrade_id: user.getString('grade_id'),\r\n\t\t\tclass_id: user.getString('class_id')\r\n\t\t}\r\n\t\tstate.userProfile = profile\r\n\t\tstate.isLoggedIn = true // 登录成功\r\n\t\treturn profile\r\n\t} else {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\r\n}\r\n\r\n// 登出并清空用户信息\r\nexport function logout() {\r\n\tsupa.signOut()\r\n\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\tstate.isLoggedIn = false // 登出\r\n}\r\n\r\n// 获取当前用户ID(优先级:state.userProfile.id > session > localStorage)\r\nexport function getCurrentUserId() : string {\r\n\ttry {\r\n\t\tconst profile = state.userProfile\r\n\t\tif (profile != null && profile.id != null) {\r\n\t\t\tconst profileId = profile.id\r\n\t\t\tif (profileId != null) {\r\n\t\t\t\treturn profileId\r\n\t\t\t}\r\n\t\t}\r\n\t} catch (e) { }\r\n\ttry {\r\n\t\tconst session = supa.getSession()\r\n\t\tif (session != null) {\r\n\t\t\tconst curuser = session.user\r\n\t\t\tconst userId = curuser?.getString('id')\r\n\t\t\tif (userId != null) return userId\r\n\t\t}\r\n\t} catch (e) { }\r\n\treturn ''\r\n}\r\n\r\n// 获取当前用户的class_id\r\nexport function getCurrentUserClassId() : string | null {\r\n\ttry {\r\n\t\tconst profile = state.userProfile\r\n\t\tif (profile != null && profile.class_id != null) {\r\n\t\t\treturn profile.class_id\r\n\t\t}\r\n\t} catch (e) {\r\n\t\t__f__('error','at utils/store.uts:167','获取用户class_id失败:', e)\r\n\t}\r\n\treturn null\r\n}\r\n\r\n// User store API for component compatibility\r\nexport function getUserStore() {\r\n\treturn {\r\n\t\tgetUserId() : string | null {\r\n\t\t\tconst sessionInfo = supa.getSession()\r\n\t\t\treturn sessionInfo.user?.getString(\"id\") ?? null\r\n\t\t},\r\n\r\n\t\tgetUserName() : string | null {\r\n\t\t\treturn state.userProfile?.username ?? null\r\n\t\t},\r\n\r\n\t\tgetUserRole() : string | null {\r\n\t\t\t// Default role logic - can be enhanced based on your needs\r\n\t\t\tconst sessionInfo = supa.getSession()\r\n\t\t\tif (sessionInfo.user == null) return null\r\n\r\n\t\t\t// You can add role detection logic here\r\n\t\t\t// For now, return a default role\r\n\t\t\treturn 'teacher' // or determine from user profile/database\r\n\t\t},\r\n\r\n\t\tgetProfile() : UserProfile | null {\r\n\t\t\treturn state.userProfile\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// ========== 设备状态管理方法 ==========\r\n\r\n/**\r\n * 设置设备加载状态\r\n */\r\nexport const setDeviceLoading = (loading : boolean) => {\r\n\tstate.deviceState.isLoading = loading\r\n}\r\n\r\n/**\r\n * 设置设备列表\r\n */\r\nexport const setDevices = (devices : Array) => {\r\n\tstate.deviceState.devices = devices\r\n\tstate.deviceState.lastUpdated = Date.now()\r\n}\r\n\r\n/**\r\n * 添加设备到列表\r\n */\r\nexport const addDevice = (device : DeviceInfo) => {\r\n\tconst existingIndex = state.deviceState.devices.findIndex(d => d.id === device.id)\r\n\tif (existingIndex >= 0) {\r\n\t\t// 更新现有设备\r\n\t\tstate.deviceState.devices[existingIndex] = device\r\n\t} else {\r\n\t\t// 添加新设备\r\n\t\tstate.deviceState.devices.push(device)\r\n\t}\r\n\tstate.deviceState.lastUpdated = Date.now()\r\n}\r\n\r\n/**\r\n * 从列表中移除设备\r\n */\r\nexport const removeDevice = (deviceId : string) => {\r\n\tconst index = state.deviceState.devices.findIndex(d => d.id === deviceId)\r\n\tif (index >= 0) {\r\n\t\tstate.deviceState.devices.splice(index, 1)\r\n\t\t// 如果移除的是当前设备,清空当前设备\r\n\t\tif (state.deviceState.currentDevice?.id === deviceId) {\r\n\t\t\tstate.deviceState.currentDevice = null\r\n\t\t}\r\n\t\tstate.deviceState.lastUpdated = Date.now()\r\n\t}\r\n}\r\n\r\n/**\r\n * 更新设备信息\r\n */\r\nexport const updateDevice = (device : DeviceInfo) => {\r\n\tconst index = state.deviceState.devices.findIndex(d => d.id === device.id)\r\n\tif (index >= 0) {\r\n\t\tstate.deviceState.devices[index] = device\r\n\t\t// 如果更新的是当前设备,也更新当前设备\r\n\t\tif (state.deviceState.currentDevice?.id === device.id) {\r\n\t\t\tstate.deviceState.currentDevice = device\r\n\t\t}\r\n\t\tstate.deviceState.lastUpdated = Date.now()\r\n\t}\r\n}\r\n\r\n/**\r\n * 设置当前选中的设备\r\n */\r\nexport const setCurrentDevice = (device : DeviceInfo | null) => {\r\n\tstate.deviceState.currentDevice = device\r\n}\r\n\r\n/**\r\n * 根据设备ID获取设备信息\r\n */\r\nexport const getDeviceById = (deviceId : string) : DeviceInfo | null => {\r\n\treturn state.deviceState.devices.find(d => d.id === deviceId) ?? null\r\n}\r\n\r\n/**\r\n * 获取在线设备列表\r\n */\r\nexport const getOnlineDevices = () : Array => {\r\n\treturn state.deviceState.devices.filter(d => d.status === 'online')\r\n}\r\n\r\n/**\r\n * 从服务器加载设备列表\r\n */\r\nexport const loadDevices = async (forceRefresh : boolean) : Promise => {\r\n\tconst userId = getCurrentUserId()\r\n\tif (userId == null || userId === '') {\r\n\t\t__f__('log','at utils/store.uts:289','用户未登录,无法加载设备列表')\r\n\t\treturn false\r\n\t}\r\n\r\n\t// 如果不是强制刷新且数据较新(5分钟内),直接返回\r\n\tconst now = Date.now()\r\n\tconst lastUpdated = state.deviceState.lastUpdated\r\n\tif (forceRefresh == false && lastUpdated != null && (now - lastUpdated < 5 * 60 * 1000)) {\r\n\t\t__f__('log','at utils/store.uts:297','设备数据较新,跳过刷新')\r\n\t\treturn true\r\n\t}\r\n\tsetDeviceLoading(true)\r\n\ttry {\r\n\t\tconst result = await SenseDataService.getDevices({ user_id: userId })\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\tconst devices = result.data as Array\r\n\t\t\tsetDevices(devices)\r\n\t\t\t__f__('log','at utils/store.uts:306',`加载设备列表成功,共${devices.length}个设备`)\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:309','加载设备列表失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:313','加载设备列表异常:', error)\r\n\t\treturn false\r\n\t} finally {\r\n\t\tsetDeviceLoading(false)\r\n\t}\r\n}\r\n\r\n/**\r\n * 从服务器加载设备列表 - 带默认参数的重载版本\r\n */\r\nexport const loadDevicesWithDefault = async () : Promise => {\r\n\treturn await loadDevices(false)\r\n}\r\n\r\n/**\r\n * 绑定新设备\r\n */\r\nexport const bindNewDevice = async (deviceData : UTSJSONObject) : Promise => {\r\n\tconst userId = getCurrentUserId()\r\n\tif (userId == null) {\r\n\t\t__f__('log','at utils/store.uts:333','用户未登录,无法绑定设备')\r\n\t\treturn false\r\n\t}\r\n\r\n\t// 确保设备数据中包含用户ID\r\n\tdeviceData.set('user_id', userId)\r\n\ttry {\r\n\t\tconst result = await SenseDataService.bindDevice(deviceData)\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\t// 添加到本地状态\r\n\t\t\taddDevice(result.data as DeviceInfo)\r\n\t\t\tconst deviceName = (result.data as DeviceInfo).device_name ?? '未知设备'\r\n\t\t\t__f__('log','at utils/store.uts:345','设备绑定成功:', deviceName)\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:348','设备绑定失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:352','设备绑定异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n/**\r\n * 解绑设备\r\n */\r\nexport const unbindDevice = async (deviceId : string) : Promise => {\r\n\ttry {\r\n\t\tconst result = await SenseDataService.unbindDevice(deviceId)\r\n\t\tif (result.error === null) {\r\n\t\t\t// 从本地状态中移除\r\n\t\t\tremoveDevice(deviceId)\r\n\t\t\t__f__('log','at utils/store.uts:366','设备解绑成功')\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:369','设备解绑失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:373','设备解绑异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n/**\r\n * 更新设备配置\r\n */\r\nexport const updateDeviceConfig = async (deviceId : string, configData : UTSJSONObject) : Promise => {\r\n\ttry {\r\n\t\tconst result = await SenseDataService.updateDevice(deviceId, configData)\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\t// 更新本地状态\r\n\t\t\tupdateDevice(result.data as DeviceInfo)\r\n\t\t\t__f__('log','at utils/store.uts:387','设备配置更新成功')\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:390','设备配置更新失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:394','设备配置更新异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n// ========== 设备管理 API ==========\r\n\r\n/**\r\n * 获取设备管理相关的API\r\n */\r\nexport function getDeviceStore() {\r\n\treturn {\r\n\t\t// 获取设备状态\r\n\t\tgetDevices() : Array {\r\n\t\t\treturn state.deviceState.devices\r\n\t\t},\r\n\r\n\t\tgetCurrentDevice() : DeviceInfo | null {\r\n\t\t\treturn state.deviceState.currentDevice\r\n\t\t},\r\n\r\n\t\tisLoading() : boolean {\r\n\t\t\treturn state.deviceState.isLoading\r\n\t\t},\r\n\t\tgetLastUpdated() : number | null {\r\n\t\t\treturn state.deviceState.lastUpdated\r\n\t\t},\r\n\r\n\t\t// 设备操作方法\r\n\t\tasync loadDevices(forceRefresh : boolean) : Promise {\r\n\t\t\treturn await loadDevices(forceRefresh)\r\n\t\t},\r\n\r\n\t\tasync refreshDevices() : Promise {\r\n\t\t\treturn await loadDevicesWithDefault()\r\n\t\t},\r\n\r\n\t\tasync bindDevice(deviceData : UTSJSONObject) : Promise {\r\n\t\t\treturn await bindNewDevice(deviceData)\r\n\t\t},\r\n\r\n\t\tasync unbindDevice(deviceId : string) : Promise {\r\n\t\t\treturn await unbindDevice(deviceId)\r\n\t\t},\r\n\r\n\t\tasync updateDevice(deviceId : string, configData : UTSJSONObject) : Promise {\r\n\t\t\treturn await updateDeviceConfig(deviceId, configData)\r\n\t\t},\r\n\r\n\t\t// 设备查询方法\r\n\t\tgetDeviceById(deviceId : string) : DeviceInfo | null {\r\n\t\t\treturn getDeviceById(deviceId)\r\n\t\t},\r\n\r\n\t\tgetOnlineDevices() : Array {\r\n\t\t\treturn getOnlineDevices()\r\n\t\t},\r\n\r\n\t\t// 设备选择\r\n\t\tsetCurrentDevice(device : DeviceInfo | null) {\r\n\t\t\tsetCurrentDevice(device)\r\n\t\t}\r\n\t}\r\n}","import 'D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts';// 简化的main.uts,移除i18n依赖\r\nimport { createSSRApp } from 'vue'\r\nimport App from './App.uvue'\r\nimport i18n from '@/uni_modules/i18n/index.uts'\r\n\r\nexport function createApp() {\r\n const app = createSSRApp(App)\r\n \r\n // 注册 i18n 全局属性,使组件可以使用 $t 方法\r\n\tapp.config.globalProperties.$t = (key: string, values?: any, locale?: string): string => {\r\n\t\tif (i18n.global == null) {\r\n\t\t\t__f__('error','at main.uts:12','i18n is not initialized')\r\n\t\t\treturn key\r\n\t\t}\r\n const params = values as UTSJSONObject | null\r\n\t\tconst res = i18n.global.t(key, params, locale)\r\n if (res.length > 0) {\r\n return res\r\n }\r\n return key\r\n\t}\r\n \r\n return { app }\r\n}\r\n\nexport function main(app: IApp) {\n definePageRoutes();\n defineAppConfig();\n (createApp()['app'] as VueApp).mount(app, GenUniApp());\n}\n\nexport class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {\n override name: string = \"mall\"\n override appid: string = \"__UNI__EC68BC3\"\n override versionName: string = \"1.0.0\"\n override versionCode: string = \"100\"\n override uniCompilerVersion: string = \"4.87\"\n \n constructor() { super() }\n}\n\nimport GenPagesUserLoginClass from './pages/user/login.uvue'\nimport GenPagesUserBootClass from './pages/user/boot.uvue'\nimport GenPagesUserRegisterClass from './pages/user/register.uvue'\nimport GenPagesUserForgotPasswordClass from './pages/user/forgot-password.uvue'\nimport GenPagesUserTermsClass from './pages/user/terms.uvue'\nimport GenPagesUserCenterClass from './pages/user/center.uvue'\nimport GenPagesUserProfileClass from './pages/user/profile.uvue'\nimport GenPagesUserChangePasswordClass from './pages/user/change-password.uvue'\nimport GenPagesUserBindPhoneClass from './pages/user/bind-phone.uvue'\nimport GenPagesUserBindEmailClass from './pages/user/bind-email.uvue'\nimport GenPagesMainIndexClass from './pages/main/index.uvue'\nimport GenPagesMainCategoryClass from './pages/main/category.uvue'\nimport GenPagesMainMessagesClass from './pages/main/messages.uvue'\nimport GenPagesMainCartClass from './pages/main/cart.uvue'\nimport GenPagesMainProfileClass from './pages/main/profile.uvue'\nimport GenPagesMallConsumerSettingsClass from './pages/mall/consumer/settings.uvue'\nimport GenPagesMallConsumerWalletClass from './pages/mall/consumer/wallet.uvue'\nimport GenPagesMallConsumerWithdrawClass from './pages/mall/consumer/withdraw.uvue'\nimport GenPagesMallConsumerSearchClass from './pages/mall/consumer/search.uvue'\nimport GenPagesMallConsumerProductDetailClass from './pages/mall/consumer/product-detail.uvue'\nimport GenPagesMallConsumerShopDetailClass from './pages/mall/consumer/shop-detail.uvue'\nimport GenPagesMallConsumerCouponsClass from './pages/mall/consumer/coupons.uvue'\nimport GenPagesMallConsumerFavoritesClass from './pages/mall/consumer/favorites.uvue'\nimport GenPagesMallConsumerFootprintClass from './pages/mall/consumer/footprint.uvue'\nimport GenPagesMallConsumerAddressListClass from './pages/mall/consumer/address-list.uvue'\nimport GenPagesMallConsumerAddressEditClass from './pages/mall/consumer/address-edit.uvue'\nimport GenPagesMallConsumerCheckoutClass from './pages/mall/consumer/checkout.uvue'\nimport GenPagesMallConsumerPaymentClass from './pages/mall/consumer/payment.uvue'\nimport GenPagesMallConsumerPaymentSuccessClass from './pages/mall/consumer/payment-success.uvue'\nimport GenPagesMallConsumerOrdersClass from './pages/mall/consumer/orders.uvue'\nimport GenPagesMallConsumerOrderDetailClass from './pages/mall/consumer/order-detail.uvue'\nimport GenPagesMallConsumerLogisticsClass from './pages/mall/consumer/logistics.uvue'\nimport GenPagesMallConsumerReviewClass from './pages/mall/consumer/review.uvue'\nimport GenPagesMallConsumerRefundClass from './pages/mall/consumer/refund.uvue'\nimport GenPagesMallConsumerApplyRefundClass from './pages/mall/consumer/apply-refund.uvue'\nimport GenPagesMallConsumerRefundReviewClass from './pages/mall/consumer/refund-review.uvue'\nimport GenPagesMallConsumerChatClass from './pages/mall/consumer/chat.uvue'\nimport GenPagesMallConsumerSubscriptionFollowedShopsClass from './pages/mall/consumer/subscription/followed-shops.uvue'\nimport GenPagesMallConsumerPointsIndexClass from './pages/mall/consumer/points/index.uvue'\nimport GenPagesMallConsumerPointsSigninClass from './pages/mall/consumer/points/signin.uvue'\nimport GenPagesMallConsumerPointsExchangeClass from './pages/mall/consumer/points/exchange.uvue'\nimport GenPagesMallConsumerPointsExchangeRecordsClass from './pages/mall/consumer/points/exchange-records.uvue'\nimport GenPagesMallConsumerProductReviewsClass from './pages/mall/consumer/product-reviews.uvue'\nimport GenPagesMallConsumerMyReviewsClass from './pages/mall/consumer/my-reviews.uvue'\nimport GenPagesMallConsumerBalanceIndexClass from './pages/mall/consumer/balance/index.uvue'\nimport GenPagesMallConsumerShareIndexClass from './pages/mall/consumer/share/index.uvue'\nimport GenPagesMallConsumerShareDetailClass from './pages/mall/consumer/share/detail.uvue'\nimport GenPagesMallConsumerMemberIndexClass from './pages/mall/consumer/member/index.uvue'\nimport GenPagesMallConsumerMessageDetailClass from './pages/mall/consumer/message-detail.uvue'\nimport GenPagesMallConsumerRedPacketsIndexClass from './pages/mall/consumer/red-packets/index.uvue'\nimport GenPagesMallConsumerBankCardsIndexClass from './pages/mall/consumer/bank-cards/index.uvue'\nimport GenPagesMallConsumerBankCardsAddClass from './pages/mall/consumer/bank-cards/add.uvue'\nfunction definePageRoutes() {\n__uniRoutes.push({ path: \"pages/user/login\", component: GenPagesUserLoginClass, meta: { isQuit: true } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户登录\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/boot\", component: GenPagesUserBootClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/register\", component: GenPagesUserRegisterClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"注册\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/forgot-password\", component: GenPagesUserForgotPasswordClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"忘记密码\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/terms\", component: GenPagesUserTermsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户协议与隐私政策\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/center\", component: GenPagesUserCenterClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户中心\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/profile\", component: GenPagesUserProfileClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"个人资料\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/change-password\", component: GenPagesUserChangePasswordClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"修改密码\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/bind-phone\", component: GenPagesUserBindPhoneClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"绑定手机\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/bind-email\", component: GenPagesUserBindEmailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"绑定邮箱\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/index\", component: GenPagesMainIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"首页\"],[\"navigationStyle\",\"custom\"],[\"enablePullDownRefresh\",false]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/category\", component: GenPagesMainCategoryClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"分类\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/messages\", component: GenPagesMainMessagesClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"消息\"],[\"navigationStyle\",\"custom\"],[\"enablePullDownRefresh\",true]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/cart\", component: GenPagesMainCartClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"购物车\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/profile\", component: GenPagesMainProfileClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/settings\", component: GenPagesMallConsumerSettingsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"设置\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/wallet\", component: GenPagesMallConsumerWalletClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的钱包\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/withdraw\", component: GenPagesMallConsumerWithdrawClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"余额提现\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/search\", component: GenPagesMallConsumerSearchClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"搜索\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/product-detail\", component: GenPagesMallConsumerProductDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"商品详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/shop-detail\", component: GenPagesMallConsumerShopDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"店铺详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/coupons\", component: GenPagesMallConsumerCouponsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的优惠券\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/favorites\", component: GenPagesMallConsumerFavoritesClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的收藏\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/footprint\", component: GenPagesMallConsumerFootprintClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的足迹\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/address-list\", component: GenPagesMallConsumerAddressListClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"收货地址\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/address-edit\", component: GenPagesMallConsumerAddressEditClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"编辑地址\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/checkout\", component: GenPagesMallConsumerCheckoutClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"确认订单\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/payment\", component: GenPagesMallConsumerPaymentClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"收银台\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/payment-success\", component: GenPagesMallConsumerPaymentSuccessClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"支付成功\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/orders\", component: GenPagesMallConsumerOrdersClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的订单\"],[\"enablePullDownRefresh\",true]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/order-detail\", component: GenPagesMallConsumerOrderDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"订单详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/logistics\", component: GenPagesMallConsumerLogisticsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"物流详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/review\", component: GenPagesMallConsumerReviewClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"评价晒单\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/refund\", component: GenPagesMallConsumerRefundClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"退款/售后\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/apply-refund\", component: GenPagesMallConsumerApplyRefundClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"申请售后\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/refund-review\", component: GenPagesMallConsumerRefundReviewClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"服务评价\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/chat\", component: GenPagesMallConsumerChatClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"客服聊天\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/subscription/followed-shops\", component: GenPagesMallConsumerSubscriptionFollowedShopsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"关注店铺\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/points/index\", component: GenPagesMallConsumerPointsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"积分管理\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/points/signin\", component: GenPagesMallConsumerPointsSigninClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"每日签到\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/points/exchange\", component: GenPagesMallConsumerPointsExchangeClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"积分兑换\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/points/exchange-records\", component: GenPagesMallConsumerPointsExchangeRecordsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"兑换记录\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/product-reviews\", component: GenPagesMallConsumerProductReviewsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"商品评价\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/my-reviews\", component: GenPagesMallConsumerMyReviewsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的评价\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/balance/index\", component: GenPagesMallConsumerBalanceIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的余额\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/share/index\", component: GenPagesMallConsumerShareIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的分享\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/share/detail\", component: GenPagesMallConsumerShareDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"分享详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/member/index\", component: GenPagesMallConsumerMemberIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"会员中心\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/message-detail\", component: GenPagesMallConsumerMessageDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"消息详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/red-packets/index\", component: GenPagesMallConsumerRedPacketsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的红包\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/bank-cards/index\", component: GenPagesMallConsumerBankCardsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"银行卡管理\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/bank-cards/add\", component: GenPagesMallConsumerBankCardsAddClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"添加银行卡\"]]) } as UniPageRoute)\n}\nconst __uniTabBar: Map | null = _uM([[\"color\",\"#999999\"],[\"selectedColor\",\"#ff5000\"],[\"backgroundColor\",\"#ffffff\"],[\"borderStyle\",\"black\"],[\"list\",[_uM([[\"pagePath\",\"pages/main/index\"],[\"text\",\"首页\"],[\"iconPath\",\"static/tabbar/home.png\"],[\"selectedIconPath\",\"static/tabbar/home.png\"]]),_uM([[\"pagePath\",\"pages/main/category\"],[\"text\",\"分类\"],[\"iconPath\",\"static/tabbar/category.png\"],[\"selectedIconPath\",\"static/tabbar/category.png\"]]),_uM([[\"pagePath\",\"pages/main/messages\"],[\"text\",\"消息\"],[\"iconPath\",\"static/tabbar/message.png\"],[\"selectedIconPath\",\"static/tabbar/message.png\"]]),_uM([[\"pagePath\",\"pages/main/cart\"],[\"text\",\"购物车\"],[\"iconPath\",\"static/tabbar/cart.png\"],[\"selectedIconPath\",\"static/tabbar/cart.png\"]]),_uM([[\"pagePath\",\"pages/main/profile\"],[\"text\",\"我的\"],[\"iconPath\",\"static/tabbar/user.png\"],[\"selectedIconPath\",\"static/tabbar/user.png\"]])]]])\nconst __uniLaunchPage: Map = _uM([[\"url\",\"pages/user/login\"],[\"style\",_uM([[\"navigationBarTitleText\",\"用户登录\"],[\"navigationStyle\",\"custom\"]])]])\nfunction defineAppConfig(){\n __uniConfig.entryPagePath = '/pages/user/login'\n __uniConfig.globalStyle = _uM([[\"navigationBarTextStyle\",\"black\"],[\"navigationBarTitleText\",\"mall\"],[\"navigationBarBackgroundColor\",\"#FFFFFF\"],[\"backgroundColor\",\"#F8F8F8\"]])\n __uniConfig.getTabBarConfig = ():Map | null => _uM([[\"color\",\"#999999\"],[\"selectedColor\",\"#ff5000\"],[\"backgroundColor\",\"#ffffff\"],[\"borderStyle\",\"black\"],[\"list\",[_uM([[\"pagePath\",\"pages/main/index\"],[\"text\",\"首页\"],[\"iconPath\",\"static/tabbar/home.png\"],[\"selectedIconPath\",\"static/tabbar/home.png\"]]),_uM([[\"pagePath\",\"pages/main/category\"],[\"text\",\"分类\"],[\"iconPath\",\"static/tabbar/category.png\"],[\"selectedIconPath\",\"static/tabbar/category.png\"]]),_uM([[\"pagePath\",\"pages/main/messages\"],[\"text\",\"消息\"],[\"iconPath\",\"static/tabbar/message.png\"],[\"selectedIconPath\",\"static/tabbar/message.png\"]]),_uM([[\"pagePath\",\"pages/main/cart\"],[\"text\",\"购物车\"],[\"iconPath\",\"static/tabbar/cart.png\"],[\"selectedIconPath\",\"static/tabbar/cart.png\"]]),_uM([[\"pagePath\",\"pages/main/profile\"],[\"text\",\"我的\"],[\"iconPath\",\"static/tabbar/user.png\"],[\"selectedIconPath\",\"static/tabbar/user.png\"]])]]])\n __uniConfig.tabBar = __uniConfig.getTabBarConfig()\n __uniConfig.conditionUrl = ''\n __uniConfig.uniIdRouter = new Map()\n \n __uniConfig.ready = true\n}\n","import supa from '@/components/supadb/aksupainstance.uts'\r\nimport type { AkReqResponse } from '@/uni_modules/ak-req/index.uts'\r\n\r\nconst OLD_URL = '192.168.1.61:18000'\r\nconst NEW_URL = '119.146.131.237:9126'\r\n\r\nfunction fixImageUrl(url: string | null): string {\r\n if (url == null) return ''\r\n if (url.indexOf(OLD_URL) >= 0) {\r\n return url.replace(OLD_URL, NEW_URL)\r\n }\r\n return url\r\n}\r\n\r\nfunction fixImageUrls(urls: any): string[] {\r\n if (urls == null) return []\r\n if (Array.isArray(urls)) {\r\n const result: string[] = []\r\n const arr = urls as any[]\r\n for (let i = 0; i < arr.length; i++) {\r\n const fixed = fixImageUrl(arr[i] as string)\r\n if (fixed !== '') result.push(fixed)\r\n }\r\n return result\r\n }\r\n return []\r\n}\r\n\r\n// 使用单例 Supabase 客户端\r\n// const supa = createClient(SUPA_URL, SUPA_KEY)\r\n\r\n// 辅助函数:安全获取字符串值\r\nfunction safeGetString(obj: UTSJSONObject, key: string): string {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return ''\r\n if (typeof rawVal == 'string') return rawVal as string\r\n if (typeof rawVal == 'number') return (rawVal as number).toString()\r\n if (typeof rawVal == 'boolean') return (rawVal as boolean) ? 'true' : 'false'\r\n return ''\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:42','safeGetString error for key:', key, e)\r\n return ''\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取数值\r\nfunction safeGetNumber(obj: UTSJSONObject, key: string): number {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return 0\r\n if (typeof rawVal == 'number') return rawVal as number\r\n if (typeof rawVal == 'string') {\r\n const parsed = parseFloat(rawVal as string)\r\n return isNaN(parsed) ? 0 : parsed\r\n }\r\n return 0\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:59','safeGetNumber error for key:', key, e)\r\n return 0\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取布尔值\r\nfunction safeGetBoolean(obj: UTSJSONObject, key: string): boolean {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return false\r\n if (typeof rawVal == 'boolean') return rawVal as boolean\r\n if (typeof rawVal == 'string') return (rawVal as string) === 'true'\r\n if (typeof rawVal == 'number') return (rawVal as number) !== 0\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:74','safeGetBoolean error for key:', key, e)\r\n return false\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取字符串数组\r\nfunction safeGetStringArray(obj: UTSJSONObject, key: string): string[] {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal != null && Array.isArray(rawVal)) {\r\n return rawVal as string[]\r\n }\r\n return [] as string[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:88','safeGetStringArray error for key:', key, e)\r\n return [] as string[]\r\n }\r\n}\r\n\r\n// 辅助函数:从原始数据解析商品\r\nfunction parseProductFromRaw(item: any): Product {\r\n try {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = itemObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val === 'string') return val\r\n if (typeof val === 'number') return val.toString()\r\n if (typeof val === 'boolean') return val ? 'true' : 'false'\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = itemObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val === 'number') return val\r\n if (typeof val === 'string') {\r\n const parsed = parseFloat(val)\r\n return isNaN(parsed) ? 0 : parsed\r\n }\r\n return 0\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = itemObj.get(key)\r\n if (val == null) return false\r\n if (typeof val === 'boolean') return val\r\n if (typeof val === 'string') return val === 'true'\r\n if (typeof val === 'number') return val !== 0\r\n return false\r\n }\r\n \r\n const getSafeStringArray = (key: string): string[] => {\r\n const val = itemObj.get(key)\r\n if (val != null && Array.isArray(val)) {\r\n return val as string[]\r\n }\r\n return []\r\n }\r\n \r\n const mainImageUrl = fixImageUrl(getSafeString('main_image_url'))\r\n const imageUrls = fixImageUrls(getSafeStringArray('image_urls'))\r\n \r\n return {\r\n id: getSafeString('id'),\r\n name: getSafeString('name'),\r\n description: getSafeString('description'),\r\n base_price: getSafeNumber('base_price'),\r\n price: getSafeNumber('base_price'),\r\n original_price: getSafeNumber('market_price'),\r\n market_price: getSafeNumber('market_price'),\r\n main_image_url: mainImageUrl,\r\n image_url: mainImageUrl,\r\n images: imageUrls,\r\n category_id: getSafeString('category_id'),\r\n brand_id: getSafeString('brand_id'),\r\n merchant_id: getSafeString('merchant_id'),\r\n total_stock: getSafeNumber('total_stock'),\r\n stock: getSafeNumber('total_stock'),\r\n sale_count: getSafeNumber('sale_count'),\r\n status: getSafeNumber('status'),\r\n is_featured: getSafeBoolean('is_featured'),\r\n is_new: getSafeBoolean('is_new'),\r\n is_hot: getSafeBoolean('is_hot'),\r\n specification: getSafeString('specification'),\r\n usage: getSafeString('usage'),\r\n side_effects: getSafeString('side_effects'),\r\n precautions: getSafeString('precautions'),\r\n expiry_date: getSafeString('expiry_date'),\r\n storage_conditions: getSafeString('storage_conditions'),\r\n approval_number: getSafeString('approval_number'),\r\n created_at: getSafeString('created_at')\r\n } as Product\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:169','parseProductFromRaw error:', e)\r\n return {\r\n id: '',\r\n name: '',\r\n description: '',\r\n base_price: 0,\r\n price: 0,\r\n original_price: 0,\r\n market_price: 0,\r\n main_image_url: '',\r\n image_url: '',\r\n images: [] as string[],\r\n category_id: '',\r\n brand_id: '',\r\n merchant_id: '',\r\n total_stock: 0,\r\n stock: 0,\r\n sale_count: 0,\r\n status: 0,\r\n is_featured: false,\r\n is_new: false,\r\n is_hot: false,\r\n specification: '',\r\n usage: '',\r\n side_effects: '',\r\n precautions: '',\r\n expiry_date: '',\r\n storage_conditions: '',\r\n approval_number: '',\r\n created_at: ''\r\n } as Product\r\n }\r\n}\r\n\r\n// 类型定义\r\nexport type Brand = {\r\n id: string\r\n name: string\r\n logo_url: string\r\n description: string\r\n}\r\n\r\nexport type Category = {\r\n id: string\r\n name: string\r\n icon: string\r\n description: string\r\n color: string\r\n parent_id?: string\r\n level?: number\r\n slug?: string\r\n created_at?: string\r\n}\r\n\r\nexport type Product = {\r\n id: string\r\n category_id: string\r\n merchant_id: string\r\n name: string\r\n subtitle?: string\r\n description?: string\r\n base_price?: number\r\n market_price?: number\r\n cost_price?: number\r\n main_image_url?: string\r\n image_url?: string\r\n image_urls?: string\r\n video_urls?: string\r\n images?: string[]\r\n sale_count?: number\r\n view_count?: number\r\n total_stock?: number\r\n available_stock?: number\r\n is_hot?: boolean\r\n is_new?: boolean\r\n is_featured?: boolean\r\n status?: number\r\n rating_avg?: number\r\n rating_count?: number\r\n rating?: number\r\n review_count?: number\r\n brand_id?: string\r\n shop_id?: string\r\n tags?: string\r\n attributes?: string\r\n specification?: string\r\n usage?: string\r\n side_effects?: string\r\n precautions?: string\r\n expiry_date?: string\r\n storage_conditions?: string\r\n approval_number?: string\r\n created_at?: string\r\n updated_at?: string\r\n price?: number\r\n original_price?: number\r\n stock?: number\r\n sales?: number\r\n cover?: string\r\n brand_name?: string\r\n category_name?: string\r\n shop_name?: string\r\n merchant_name?: string\r\n}\r\n\r\nexport type Shop = {\r\n id: string\r\n merchant_id: string\r\n shop_name: string\r\n shop_logo?: string\r\n shop_banner?: string\r\n description?: string\r\n contact_name?: string\r\n contact_phone?: string\r\n rating_avg?: number\r\n total_sales?: number\r\n product_count?: number\r\n total_sales_count?: number\r\n created_at?: string\r\n}\r\n\r\nexport type CartItem = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n sku_id?: string\r\n merchant_id?: string\r\n quantity: number\r\n selected: boolean\r\n product_name?: string\r\n product_image?: string\r\n product_price?: number\r\n product_specification?: string\r\n shop_id?: string\r\n shop_name?: string\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type UserAddress = {\r\n id: string\r\n user_id: string\r\n recipient_name: string\r\n phone: string\r\n province: string\r\n city: string\r\n district: string\r\n detail_address: string\r\n postal_code?: string\r\n is_default: boolean\r\n label?: string\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type UserCoupon = {\r\n id: string\r\n user_id: string\r\n template_id: string\r\n coupon_code: string\r\n status: number // 1: unused, 2: used, 3: expired\r\n received_at: string\r\n expire_at: string\r\n used_at?: string\r\n // join fields from template or view\r\n template_name?: string\r\n amount?: number\r\n min_spend?: number\r\n name?: string\r\n title?: string\r\n}\r\n\r\nexport type ChatRoom = {\r\n id: string\r\n user_id: string\r\n merchant_id: string\r\n shop_name: string\r\n shop_logo?: string\r\n last_message?: string\r\n last_message_at?: string\r\n unread_count: number\r\n is_top: boolean\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type Notification = {\r\n id: string\r\n user_id: string\r\n type: string\r\n title: string\r\n content: string\r\n icon_url?: string\r\n link_url?: string\r\n is_read: boolean\r\n extra_data?: string\r\n created_at?: string\r\n}\r\n\r\nexport type ChatMessage = {\r\n id: string\r\n session_id?: string\r\n sender_id?: string\r\n receiver_id?: string\r\n content: string\r\n msg_type: string\r\n is_read: boolean\r\n is_from_user: boolean\r\n extra_data?: string\r\n created_at?: string\r\n}\r\n\r\nexport type PaginatedResponse = {\r\n data: T[]\r\n total: number\r\n page: number\r\n limit: number\r\n hasmore: boolean\r\n}\r\n\r\nexport type ProductSku = {\r\n id: string\r\n product_id: string\r\n sku_code: string\r\n specifications: string // JSON string\r\n price: number\r\n market_price?: number\r\n cost_price?: number\r\n stock?: number\r\n warning_stock?: number\r\n image_url?: string\r\n weight?: number\r\n status?: number\r\n created_at?: string\r\n}\r\n\r\nexport type AddAddressParams = {\r\n recipient_name: string\r\n phone: string\r\n province: string\r\n city: string\r\n district: string\r\n detail_address: string\r\n postal_code?: string\r\n is_default?: boolean\r\n label?: string\r\n}\r\n\r\nexport type UpdateAddressParams = {\r\n recipient_name?: string\r\n phone?: string\r\n province?: string\r\n city?: string\r\n district?: string\r\n detail_address?: string\r\n postal_code?: string\r\n is_default?: boolean\r\n label?: string\r\n}\r\n\r\nexport type CreateOrderParams = {\r\n merchant_id: string\r\n product_amount: number\r\n shipping_fee: number\r\n total_amount: number\r\n shipping_address: any\r\n items: any[]\r\n}\r\n\r\nexport type ShopOrderParams = {\r\n shipping_address: any\r\n shopGroups: any[]\r\n deliveryFee: number\r\n discountAmount: number\r\n}\r\n\r\nexport type ShopOrderResponse = {\r\n success: boolean\r\n orderIds: string[]\r\n error?: string\r\n}\r\n\r\nexport type RefundResponse = {\r\n success: boolean\r\n message: string\r\n}\r\n\r\nexport type ConfirmReceiptResponse = {\r\n success: boolean\r\n error?: string\r\n}\r\n\r\nclass SupabaseService {\r\n // 获取当前用户ID\r\n public getCurrentUserId(): string | null {\r\n try {\r\n // 1. 优先从 Supabase 会话获取\r\n const session = supa.getSession()\r\n if (session != null && session.user != null) {\r\n return session.user.getString('id')\r\n }\r\n \r\n // 2. 尝试从 Storage 恢复 Session (针对 App 重启后内存丢失的情况)\r\n // 注意:这里无法异步调用 hydrate,所以只能依赖 UI 层或 init 层的预加载\r\n // 但我们可以返回本地存储 ID 作为 fallback,前提是 Token 有效\r\n \r\n // 后备:尝试从本地存储获取\r\n const userId = uni.getStorageSync('user_id')\r\n return userId != null ? userId as string : null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:479','获取用户ID失败:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 确保会话有效 (异步)\r\n async ensureSession(): Promise {\r\n let session = supa.getSession()\r\n if (session.user == null) {\r\n __f__('log','at utils/supabaseService.uts:488','Session user is null, attempting to hydrate from storage...')\r\n await supa.hydrateSessionFromStorage()\r\n session = supa.getSession()\r\n }\r\n \r\n if (session.user != null) {\r\n // 同步 user_id 到 storage 保持一致\r\n const uid = session.user!!.getString('id')\r\n if (uid != null) {\r\n uni.setStorageSync('user_id', uid)\r\n return uid\r\n }\r\n }\r\n return this.getCurrentUserId()\r\n }\r\n\r\n // 获取所有分类\r\n async getCategories(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .order('name', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:514','获取分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const categories: Category[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const catObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = catObj.get('id')\r\n const nameVal = catObj.get('name')\r\n const iconVal = catObj.get('icon')\r\n const iconUrlVal = catObj.get('icon_url')\r\n const descVal = catObj.get('description')\r\n const colorVal = catObj.get('color')\r\n const parentIdVal = catObj.get('parent_id')\r\n const levelVal = catObj.get('level')\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: (typeof iconVal == 'string') ? (iconVal as string) : ((typeof iconUrlVal == 'string') ? (iconUrlVal as string) : ''),\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#4CAF50',\r\n parent_id: (typeof parentIdVal == 'string') ? (parentIdVal as string) : null,\r\n level: (typeof levelVal == 'number') ? (levelVal as number) : 0\r\n } as Category\r\n categories.push(cat)\r\n }\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:550','获取分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 根据ID获取单个分类\r\n async getCategoryById(categoryId: string): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .eq('id', categoryId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:566','获取分类失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return null\r\n }\r\n \r\n // 处理数组返回值\r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n return null\r\n }\r\n \r\n const item = rawList[0]\r\n const catObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = catObj.get('id')\r\n const nameVal = catObj.get('name')\r\n const iconVal = catObj.get('icon')\r\n const iconUrlVal = catObj.get('icon_url')\r\n const descVal = catObj.get('description')\r\n const colorVal = catObj.get('color')\r\n const parentIdVal = catObj.get('parent_id')\r\n const levelVal = catObj.get('level')\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: (typeof iconVal == 'string') ? (iconVal as string) : ((typeof iconUrlVal == 'string') ? (iconUrlVal as string) : ''),\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#4CAF50',\r\n parent_id: (typeof parentIdVal == 'string') ? (parentIdVal as string) : null,\r\n level: (typeof levelVal == 'number') ? (levelVal as number) : 0\r\n } as Category\r\n return cat\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:603','获取分类异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 获取一级分类\r\n async getParentCategories(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .is('parent_id', null)\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:619','获取一级分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n\r\n const categories: Category[] = []\r\n const rawList = rawData as Array\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const icon = this.getCategoryIcon(item)\r\n \r\n // 安全获取属性\r\n const idVal = item['id']\r\n const nameVal = item['name']\r\n const descVal = item['description']\r\n const colorVal = item['color']\r\n const slugVal = item['slug']\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: icon,\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#ff5000',\r\n level: 1,\r\n slug: (typeof slugVal == 'string') ? (slugVal as string) : ''\r\n }\r\n categories.push(cat)\r\n }\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:654','获取一级分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取子分类\r\n async getSubCategories(parentId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:662','[getSubCategories] 开始获取子分类, parentId:', parentId)\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:669','[getSubCategories] 查询完成')\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:672','获取子分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:678','[getSubCategories] 数据为空')\r\n return []\r\n }\r\n\r\n const categories: Category[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:684','[getSubCategories] 原始数据条数:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 parent_id\r\n const itemParentId = safeGetString(itemObj, 'parent_id')\r\n const isMatch = (itemParentId.length > 0 && itemParentId == parentId)\r\n if (!isMatch) {\r\n continue\r\n }\r\n \r\n const icon = this.getCategoryIcon(itemObj)\r\n const cat: Category = {\r\n id: safeGetString(itemObj, 'id'),\r\n name: safeGetString(itemObj, 'name'),\r\n icon: icon,\r\n description: safeGetString(itemObj, 'description'),\r\n color: safeGetString(itemObj, 'color').length > 0 ? safeGetString(itemObj, 'color') : '#ff5000',\r\n level: 2,\r\n parent_id: safeGetString(itemObj, 'parent_id'),\r\n slug: safeGetString(itemObj, 'slug')\r\n }\r\n categories.push(cat)\r\n }\r\n __f__('log','at utils/supabaseService.uts:710','[getSubCategories] 返回分类数量:', categories.length)\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:713','获取子分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取分类图标的辅助方法\r\n getCategoryIcon(item: UTSJSONObject): string {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const icon = safeGetString(itemObj, 'icon')\r\n if (icon.length > 0) {\r\n return icon\r\n }\r\n const iconUrl = safeGetString(itemObj, 'icon_url')\r\n if (iconUrl.length > 0) {\r\n return iconUrl\r\n }\r\n const name = safeGetString(itemObj, 'name')\r\n if (name.includes('数码') || name.includes('电器') || name.includes('手机')) return '📱'\r\n if (name.includes('服装') || name.includes('衣服') || name.includes('鞋')) return '👕'\r\n if (name.includes('食品') || name.includes('水果') || name.includes('零食')) return '🍎'\r\n if (name.includes('美妆') || name.includes('护肤') || name.includes('化妆')) return '💄'\r\n if (name.includes('母婴') || name.includes('婴儿') || name.includes('儿童')) return '👶'\r\n if (name.includes('家居') || name.includes('家具') || name.includes('装饰')) return '🏠'\r\n if (name.includes('图书') || name.includes('文具')) return '📚'\r\n if (name.includes('运动') || name.includes('户外') || name.includes('健身')) return '⚽'\r\n if (name.includes('医药') || name.includes('保健') || name.includes('健康')) return '💊'\r\n return '📦'\r\n }\r\n\r\n // 获取所有品牌\r\n async getBrands(): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:745','[getBrands] 开始获取品牌数据...')\r\n const response = await supa\r\n .from('ml_brands')\r\n .select('id, name, logo_url, description, is_active')\r\n .order('name', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:753','获取品牌失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:759','[getBrands] 数据为空')\r\n return []\r\n }\r\n \r\n const brands: Brand[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:765','[getBrands] 数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const brandObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = brandObj.get('id')\r\n const nameVal = brandObj.get('name')\r\n const logoVal = brandObj.get('logo_url')\r\n const descVal = brandObj.get('description')\r\n const isActiveVal = brandObj.get('is_active')\r\n \r\n let isActiveBool: boolean = true\r\n if (isActiveVal != null) {\r\n if (typeof isActiveVal == 'boolean') {\r\n isActiveBool = isActiveVal as boolean\r\n } else if (typeof isActiveVal == 'number') {\r\n isActiveBool = (isActiveVal as number) === 1\r\n }\r\n }\r\n if (!isActiveBool) {\r\n continue\r\n }\r\n \r\n const brand: Brand = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n logo_url: (typeof logoVal == 'string') ? (logoVal as string) : '',\r\n description: (typeof descVal == 'string') ? (descVal as string) : ''\r\n } as Brand\r\n brands.push(brand)\r\n }\r\n __f__('log','at utils/supabaseService.uts:796','[getBrands] 返回品牌数量:', brands.length)\r\n return brands\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:799','获取品牌异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取指定分类的商品\r\n async getProductsByCategory(\r\n categoryId: string, \r\n page: number = 1, \r\n limit: number = 20\r\n ): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:811','[getProductsByCategory] 开始查询,分类ID:', categoryId, '页码:', page)\r\n \r\n // 在数据库层面进行分类过滤\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('category_id', categoryId)\r\n .eq('status', '1') // 使用字符串 '1' 而不是整数 1\r\n .order('sale_count', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:824','[getProductsByCategory] 查询完成,total:', response.total)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:827','获取商品失败:', response.error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:850','[getProductsByCategory] 返回数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n \r\n return {\r\n data: products,\r\n total: response.total ?? products.length,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:865','获取商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 根据商品ID获取SKU列表\r\n async getProductSkus(productId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:879','[getProductSkus] 开始获取SKU,商品ID:', productId)\r\n const response = await supa\r\n .from('ml_product_skus')\r\n .select('*')\r\n .eq('product_id', productId)\r\n .eq('status', '1')\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:888','获取商品SKU失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const skus: ProductSku[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:897','[getProductSkus] 获取到SKU数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const skuObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const rawId = skuObj.get('id')\r\n const rawSkuCode = skuObj.get('sku_code')\r\n const rawProdId = skuObj.get('product_id')\r\n const rawPrice = skuObj.get('price')\r\n const rawStock = skuObj.get('stock')\r\n const rawImageUrl = skuObj.get('image_url')\r\n const rawSpecs = skuObj.get('specifications')\r\n \r\n let specsStr = ''\r\n if (rawSpecs != null) {\r\n try {\r\n if (typeof rawSpecs == 'string') {\r\n specsStr = rawSpecs as string\r\n } else {\r\n specsStr = JSON.stringify(rawSpecs)\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:920','解析SKU规格失败', e)\r\n }\r\n }\r\n \r\n const sku: ProductSku = {\r\n id: (typeof rawId == 'string') ? (rawId as string) : '',\r\n product_id: (typeof rawProdId == 'string') ? (rawProdId as string) : '',\r\n sku_code: (typeof rawSkuCode == 'string') ? (rawSkuCode as string) : '',\r\n specifications: specsStr,\r\n price: (typeof rawPrice == 'number') ? (rawPrice as number) : 0,\r\n stock: (typeof rawStock == 'number') ? (rawStock as number) : 0,\r\n image_url: (typeof rawImageUrl == 'string') ? (rawImageUrl as string) : '',\r\n status: 1\r\n }\r\n skus.push(sku)\r\n }\r\n return skus\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:938','获取商品SKU异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 搜索商品\r\n async searchProducts(\r\n keyword: string, \r\n page: number = 1, \r\n limit: number = 20,\r\n sortBy: string = 'sales',\r\n ascending: boolean = false\r\n ): Promise> {\r\n try {\r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n \r\n // 根据sortBy和ascending设置排序\r\n if (sortBy === 'price') {\r\n query = query.order('base_price', { ascending })\r\n } else if (sortBy === 'sales' || sortBy === 'sale_count') {\r\n query = query.order('sale_count', { ascending: false }) // 销量总是降序\r\n } else {\r\n // 默认按销量降序\r\n query = query.order('sale_count', { ascending: false })\r\n }\r\n \r\n const response = await query\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:972','搜索商品失败:', response.error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n const keywordLower = keyword.toLowerCase()\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = prodObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 手动过滤关键词\r\n const name = safeGetString(prodObj, 'name').toLowerCase()\r\n const desc = safeGetString(prodObj, 'description').toLowerCase()\r\n const subtitle = safeGetString(prodObj, 'subtitle').toLowerCase()\r\n const brandName = safeGetString(prodObj, 'brand_name').toLowerCase()\r\n \r\n if (name.indexOf(keywordLower) === -1 && \r\n desc.indexOf(keywordLower) === -1 && \r\n subtitle.indexOf(keywordLower) === -1 && \r\n brandName.indexOf(keywordLower) === -1) {\r\n continue\r\n }\r\n \r\n products.push(parseProductFromRaw(item))\r\n }\r\n \r\n return {\r\n data: products,\r\n total: response.total ?? products.length,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1033','搜索商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 搜索店铺\r\n async searchShops(\r\n keyword: string,\r\n page: number = 1,\r\n limit: number = 20\r\n ): Promise> {\r\n try {\r\n const response = await supa\r\n .from('ml_shops')\r\n .select('*', { count: 'exact' })\r\n .ilike('shop_name', `%${keyword}%`)\r\n .order('product_count', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1061','搜索店铺失败:', response.error)\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n\r\n const rawData = response.data\r\n if (rawData == null) {\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n\r\n const shops: Shop[] = []\r\n const dataList = rawData as any[]\r\n for (let i = 0; i < dataList.length; i++) {\r\n const item = dataList[i]\r\n const shopObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = shopObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 手动创建 Shop 对象,避免安卓端类型转换错误\r\n const shop: Shop = {\r\n id: shopObj.getString('id') ?? '',\r\n merchant_id: shopObj.getString('merchant_id') ?? '',\r\n shop_name: shopObj.getString('shop_name') ?? '',\r\n shop_logo: shopObj.getString('shop_logo'),\r\n shop_banner: shopObj.getString('shop_banner'),\r\n description: shopObj.getString('description'),\r\n contact_name: shopObj.getString('contact_name'),\r\n contact_phone: shopObj.getString('contact_phone'),\r\n rating_avg: shopObj.getNumber('rating_avg'),\r\n total_sales: shopObj.getNumber('total_sales'),\r\n product_count: shopObj.getNumber('product_count'),\r\n total_sales_count: shopObj.getNumber('total_sales_count'),\r\n created_at: shopObj.getString('created_at')\r\n }\r\n shops.push(shop)\r\n }\r\n\r\n return {\r\n data: shops,\r\n total: response.total ?? shops.length,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1111','搜索店铺异常:', error)\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n }\r\n\r\n // 获取单个商品详情\r\n async getProductById(productId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1119','[getProductById] 开始获取商品详情,ID:', productId)\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('*')\r\n .eq('id', productId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1128','获取商品详情失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1134','[getProductById] 数据为空')\r\n return null\r\n }\r\n \r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n __f__('log','at utils/supabaseService.uts:1140','[getProductById] 未找到商品')\r\n return null\r\n }\r\n \r\n const item = rawList[0]\r\n const product = parseProductFromRaw(item)\r\n __f__('log','at utils/supabaseService.uts:1146','[getProductById] 成功获取商品:', product.name)\r\n return product\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1149','获取商品详情异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // --- 关注店铺相关 ---\r\n\r\n // 检查是否已关注店铺\r\n async isShopFollowed(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .select('id', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n \r\n return (res.total != null && res.total! > 0)\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1169','Check follow error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 关注店铺\r\n async followShop(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .insert({\r\n user_id: userId,\r\n shop_id: shopId\r\n })\r\n .execute()\r\n \r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1187','Follow shop error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 取消关注\r\n async unfollowShop(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .eq('shop_id', shopId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n \r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1204','Unfollow shop error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 获取我关注的店铺列表\r\n async getFollowedShops(userId: string): Promise {\r\n try {\r\n // 关联查询店铺信息\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .select('*, ml_shops(*)') \r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1221','getFollowedShops error:', res.error)\r\n return []\r\n }\r\n \r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1227','getFollowedShops exception:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 根据商户ID获取店铺信息\r\n async getShopByMerchantId(merchantId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1235','[getShopByMerchantId] 开始获取店铺信息,merchantId:', merchantId)\r\n // 1. Try querying by merchant_id\r\n let response = await supa\r\n .from('ml_shops')\r\n .select('*')\r\n .eq('merchant_id', merchantId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error == null && response.data != null && (response.data as any[]).length > 0) {\r\n const shopData = (response.data as any[])[0]\r\n const shop = this.parseShopFromRaw(shopData)\r\n __f__('log','at utils/supabaseService.uts:1247','[getShopByMerchantId] 通过 merchant_id 找到店铺:', shop.shop_name)\r\n return shop\r\n }\r\n\r\n // 2. Fallback: Try querying by id (Maybe the passed ID is the Shop ID?)\r\n __f__('log','at utils/supabaseService.uts:1252','getShopByMerchantId: merchant_id not found, trying id...', merchantId)\r\n response = await supa\r\n .from('ml_shops')\r\n .select('*')\r\n .eq('id', merchantId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (response.error == null && response.data != null && (response.data as any[]).length > 0) {\r\n __f__('log','at utils/supabaseService.uts:1261','Found shop by ID instead of MerchantID')\r\n const shopData = (response.data as any[])[0]\r\n const shop = this.parseShopFromRaw(shopData)\r\n return shop\r\n }\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1268','获取店铺信息失败:', response.error)\r\n }\r\n return null\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1272','获取店铺信息异常:', error)\r\n return null\r\n }\r\n }\r\n \r\n // 解析店铺数据\r\n parseShopFromRaw(item: any): Shop {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = itemObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = itemObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n return {\r\n id: getSafeString('id'),\r\n merchant_id: getSafeString('merchant_id'),\r\n shop_name: getSafeString('shop_name'),\r\n shop_logo: getSafeString('shop_logo'),\r\n shop_banner: getSafeString('shop_banner'),\r\n description: getSafeString('description'),\r\n contact_name: getSafeString('contact_name'),\r\n contact_phone: getSafeString('contact_phone'),\r\n rating_avg: getSafeNumber('rating_avg'),\r\n total_sales: getSafeNumber('total_sales'),\r\n product_count: getSafeNumber('product_count'),\r\n total_sales_count: getSafeNumber('total_sales_count'),\r\n created_at: getSafeString('created_at')\r\n } as Shop\r\n }\r\n\r\n // 根据商户ID获取商品列表\r\n async getProductsByMerchantId(merchantId: string, page: number = 1, limit: number = 20): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1315','getProductsByMerchantId querying for:', merchantId)\r\n \r\n // 1. Try fetching from view strictly first\r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('merchant_id', merchantId)\r\n // .eq('status', 1) // Temporarily disabled status check to see if products exist at all\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const response = await query.execute()\r\n \r\n // 检查视图结果:如果有错误 OR 数据为空,都尝试去查原始表\r\n if (response.error != null || (response.data != null && (response.data as any[]).length === 0)) {\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1332','获取商户商品失败 (View):', response.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:1334','View returned 0 products, trying raw table fallback...')\r\n }\r\n \r\n // Fallback: Try raw table\r\n __f__('log','at utils/supabaseService.uts:1338','Falling back to raw ml_products table...')\r\n const query2 = supa\r\n .from('ml_products')\r\n .select('*', { count: 'exact' })\r\n .eq('merchant_id', merchantId)\r\n // .eq('status', 1) // Also disabled here\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const res2 = await query2.execute()\r\n if (res2.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1350','获取商户商品失败 (Raw):', res2.error)\r\n return {data:[] as Product[], total:0, page, limit, hasmore:false}\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1354',`Fallback (Raw) found: ${(res2.data as any[]).length} products`)\r\n \r\n const mappedData: Product[] = []\r\n const rawData = res2.data as any[]\r\n for(let i = 0; i < rawData.length; i++) {\r\n const item = JSON.parse(JSON.stringify(rawData[i])) as UTSJSONObject\r\n const images: string[] = []\r\n \r\n const mainImageUrl = fixImageUrl(item.getString('main_image_url'))\r\n if (mainImageUrl != null && mainImageUrl !== '') {\r\n images.push(mainImageUrl)\r\n }\r\n\r\n const imageUrlsRaw = item.get('image_urls')\r\n if (imageUrlsRaw != null) {\r\n try {\r\n if (Array.isArray(imageUrlsRaw)) {\r\n const arr = imageUrlsRaw as string[]\r\n if (arr.length > 0 && images.length === 0) {\r\n for (let j = 0; j < arr.length; j++) {\r\n const fixedUrl = fixImageUrl(arr[j])\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const rawUrlStr = imageUrlsRaw as string\r\n if (rawUrlStr.startsWith('[')) {\r\n const parsed = JSON.parse(rawUrlStr)\r\n if (Array.isArray(parsed) && images.length === 0) {\r\n for (let j = 0; j < parsed.length; j++) {\r\n const fixedUrl = fixImageUrl(parsed[j] as string)\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const fixedUrl = fixImageUrl(rawUrlStr)\r\n if (fixedUrl !== '' && images.indexOf(fixedUrl) === -1) images.push(fixedUrl)\r\n }\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:1394','解析图片数组失败:', e)\r\n }\r\n }\r\n \r\n if (images.length === 0) {\r\n images.push('/static/default-product.png')\r\n }\r\n \r\n let safePrice = item.getNumber('base_price')\r\n if (safePrice == null) {\r\n const p = item.getNumber('price')\r\n safePrice = p != null ? p : 0\r\n }\r\n \r\n let safeOriginalPrice = item.getNumber('market_price')\r\n if (safeOriginalPrice == null) {\r\n const op = item.getNumber('original_price')\r\n safeOriginalPrice = op != null ? op : safePrice\r\n }\r\n \r\n let safeStock = item.getNumber('total_stock')\r\n if (safeStock == null) {\r\n let as_ = item.getNumber('available_stock')\r\n if (as_ == null) {\r\n const s = item.getNumber('stock')\r\n safeStock = s != null ? s : 0\r\n } else {\r\n safeStock = as_\r\n }\r\n }\r\n \r\n let safeSales = item.getNumber('sale_count')\r\n if (safeSales == null) {\r\n const s = item.getNumber('sales')\r\n safeSales = s != null ? s : 0\r\n }\r\n \r\n const product: Product = {\r\n id: item.getString('id') ?? '',\r\n category_id: item.getString('category_id') ?? '',\r\n merchant_id: item.getString('merchant_id') ?? '',\r\n name: item.getString('name') ?? '',\r\n description: item.getString('description') ?? '',\r\n images: images,\r\n price: safePrice,\r\n original_price: safeOriginalPrice,\r\n stock: safeStock,\r\n sales: safeSales,\r\n status: item.getNumber('status') ?? 1,\r\n created_at: item.getString('created_at') ?? '',\r\n base_price: safePrice,\r\n market_price: safeOriginalPrice,\r\n main_image_url: images.length > 0 ? images[0] : '',\r\n sale_count: safeSales,\r\n total_stock: safeStock\r\n } as Product\r\n mappedData.push(product)\r\n }\r\n\r\n return {\r\n data: mappedData,\r\n total: res2.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: res2.hasmore ?? false\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1462',`Merchant products found: ${(response.data as any[]).length}`)\r\n \r\n const viewData = response.data as any[]\r\n const parsedProducts: Product[] = []\r\n for (let i = 0; i < viewData.length; i++) {\r\n parsedProducts.push(parseProductFromRaw(viewData[i]))\r\n }\r\n \r\n return {\r\n data: parsedProducts,\r\n total: response.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1478','获取商户商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 根据店铺ID获取商品列表(新增)\r\n async getProductsByShopId(shopId: string, page: number = 1, limit: number = 20): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1492','getProductsByShopId querying for:', shopId)\r\n \r\n // 1. Try fetching from view with shop_id\r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const response = await query.execute()\r\n \r\n // 检查视图结果:如果有错误 OR 数据为空,都尝试去查原始表\r\n if (response.error != null || (response.data != null && (response.data as any[]).length === 0)) {\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1508','获取店铺商品失败 (View):', response.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:1510','View returned 0 products, trying raw table fallback...')\r\n }\r\n \r\n // Fallback: Try raw table with shop_id\r\n __f__('log','at utils/supabaseService.uts:1514','Falling back to raw ml_products table with shop_id...')\r\n const query2 = supa\r\n .from('ml_products')\r\n .select('*', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const res2 = await query2.execute()\r\n if (res2.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1525','获取店铺商品失败 (Raw):', res2.error)\r\n return {data:[] as Product[], total:0, page, limit, hasmore:false}\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1529',`Fallback (Raw) found: ${(res2.data as any[]).length} products`)\r\n \r\n const mappedData: Product[] = []\r\n const rawData = res2.data as any[]\r\n for(let i = 0; i < rawData.length; i++) {\r\n const item = JSON.parse(JSON.stringify(rawData[i])) as UTSJSONObject\r\n const images: string[] = []\r\n \r\n const mainImageUrl = fixImageUrl(item.getString('main_image_url'))\r\n if (mainImageUrl != null && mainImageUrl !== '') {\r\n images.push(mainImageUrl)\r\n }\r\n\r\n const imageUrlsRaw = item.get('image_urls')\r\n if (imageUrlsRaw != null) {\r\n try {\r\n if (Array.isArray(imageUrlsRaw)) {\r\n const arr = imageUrlsRaw as string[]\r\n if (arr.length > 0 && images.length === 0) {\r\n for (let j = 0; j < arr.length; j++) {\r\n const fixedUrl = fixImageUrl(arr[j])\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const rawUrlStr = imageUrlsRaw as string\r\n if (rawUrlStr.startsWith('[')) {\r\n const parsed = JSON.parse(rawUrlStr)\r\n if (Array.isArray(parsed) && images.length === 0) {\r\n for (let j = 0; j < parsed.length; j++) {\r\n const fixedUrl = fixImageUrl(parsed[j] as string)\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const fixedUrl = fixImageUrl(rawUrlStr)\r\n if (fixedUrl !== '' && images.indexOf(fixedUrl) === -1) images.push(fixedUrl)\r\n }\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:1569','解析图片数组失败:', e)\r\n }\r\n }\r\n \r\n if (images.length === 0) {\r\n images.push('/static/default-product.png')\r\n }\r\n \r\n let safePrice = item.getNumber('base_price')\r\n if (safePrice == null) {\r\n const p = item.getNumber('price')\r\n safePrice = p != null ? p : 0\r\n }\r\n \r\n let safeOriginalPrice = item.getNumber('market_price')\r\n if (safeOriginalPrice == null) {\r\n const op = item.getNumber('original_price')\r\n safeOriginalPrice = op != null ? op : safePrice\r\n }\r\n \r\n let safeStock = item.getNumber('total_stock')\r\n if (safeStock == null) {\r\n let as_ = item.getNumber('available_stock')\r\n if (as_ == null) {\r\n const s = item.getNumber('stock')\r\n safeStock = s != null ? s : 0\r\n } else {\r\n safeStock = as_\r\n }\r\n }\r\n \r\n let safeSales = item.getNumber('sale_count')\r\n if (safeSales == null) {\r\n const s = item.getNumber('sales')\r\n safeSales = s != null ? s : 0\r\n }\r\n \r\n const product: Product = {\r\n id: item.getString('id') ?? '',\r\n category_id: item.getString('category_id') ?? '',\r\n merchant_id: item.getString('merchant_id') ?? '',\r\n name: item.getString('name') ?? '',\r\n description: item.getString('description') ?? '',\r\n images: images,\r\n price: safePrice,\r\n original_price: safeOriginalPrice,\r\n stock: safeStock,\r\n sales: safeSales,\r\n status: item.getNumber('status') ?? 1,\r\n created_at: item.getString('created_at') ?? '',\r\n base_price: safePrice,\r\n market_price: safeOriginalPrice,\r\n main_image_url: images.length > 0 ? images[0] : '',\r\n sale_count: safeSales,\r\n total_stock: safeStock\r\n } as Product\r\n mappedData.push(product)\r\n }\r\n\r\n return {\r\n data: mappedData,\r\n total: res2.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: res2.hasmore ?? false\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1637',`Shop products found: ${(response.data as any[]).length}`)\r\n \r\n const viewData = response.data as any[]\r\n const parsedProducts: Product[] = []\r\n for (let i = 0; i < viewData.length; i++) {\r\n parsedProducts.push(parseProductFromRaw(viewData[i]))\r\n }\r\n \r\n return {\r\n data: parsedProducts,\r\n total: response.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1653','获取店铺商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 获取热销商品(按销量排序)\r\n async getHotProducts(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1667','[getHotProducts] 开始获取热销商品...')\r\n \r\n // 在数据库层面过滤 status,获取更多数据以便手动过滤 is_hot\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 使用字符串 '1'\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 5) // 获取更多数据以便过滤\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1679','获取热销商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n __f__('log','at utils/supabaseService.uts:1684','[getHotProducts] 原始数据条数:', rawData != null ? (rawData as any[]).length : 0)\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1686','[getHotProducts] 数据为空')\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 is_hot\r\n const rawIsHot = prodObj.get('is_hot')\r\n let isHotBool: boolean = false\r\n if (typeof rawIsHot == 'boolean') {\r\n isHotBool = rawIsHot as boolean\r\n } else if (typeof rawIsHot == 'number') {\r\n isHotBool = (rawIsHot as number) == 1\r\n }\r\n if (!isHotBool) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n \r\n // 达到目标数量就停止\r\n if (products.length >= limit) break\r\n }\r\n __f__('log','at utils/supabaseService.uts:1711','[getHotProducts] 最终返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1714','获取热销商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取按销量排序的商品(所有商品,不限制 is_hot)\r\n async getProductsBySales(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1722','[getProductsBySales] 开始获取销量排序商品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1732','获取销量排序商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n __f__('log','at utils/supabaseService.uts:1747','[getProductsBySales] 返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1750','获取销量排序商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取按价格排序的商品(升序:从低到高)\r\n async getProductsByPrice(limit: number = 10, ascending: boolean = true): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 在数据库层面过滤\r\n .order('base_price', { ascending })\r\n .limit(limit)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1767','获取价格排序商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1784','获取价格排序商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取新品(按创建时间排序,最新的在前)\r\n async getProductsByNewest(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1792','[getProductsByNewest] 开始获取新品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1')\r\n .order('created_at', { ascending: false })\r\n .limit(limit * 5)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1802','获取新品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 is_new\r\n const rawIsNew = prodObj.get('is_new')\r\n let isNewBool: boolean = false\r\n if (typeof rawIsNew == 'boolean') {\r\n isNewBool = rawIsNew as boolean\r\n } else if (typeof rawIsNew == 'number') {\r\n isNewBool = (rawIsNew as number) == 1\r\n }\r\n if (!isNewBool) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n // 如果 is_new 商品不足,补充普通商品\r\n if (products.length < limit) {\r\n __f__('log','at utils/supabaseService.uts:1833','[getProductsByNewest] is_new商品不足,补充普通商品')\r\n const addedIds = new Set()\r\n for (let i = 0; i < products.length; i++) {\r\n addedIds.add(products[i].id)\r\n }\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawId = prodObj.get('id')\r\n const itemId = (typeof rawId == 'string') ? (rawId as string) : ''\r\n \r\n if (!addedIds.has(itemId)) {\r\n products.push(parseProductFromRaw(item))\r\n addedIds.add(itemId)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1853','[getProductsByNewest] 返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1856','获取新品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取推荐商品(is_featured=true)\r\n async getRecommendedProducts(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1864','[getRecommendedProducts] 开始获取推荐商品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 在数据库层面过滤\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 5) // 获取更多数据以便过滤 is_featured\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:1873','[getRecommendedProducts] 查询完成')\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1876','获取推荐商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1882','[getRecommendedProducts] 数据为空')\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:1888','[getRecommendedProducts] 数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawFeatured = prodObj.get('is_featured')\r\n \r\n let isFeaturedBool: boolean = false\r\n if (typeof rawFeatured == 'boolean') {\r\n isFeaturedBool = rawFeatured as boolean\r\n } else if (typeof rawFeatured == 'number') {\r\n isFeaturedBool = (rawFeatured as number) == 1\r\n }\r\n if (!isFeaturedBool) {\r\n continue\r\n }\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1910','获取推荐商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取特价商品(这里假设没有specific flag, just use logic or tag if exists, defaulting to hot for now or just skip)\r\n // Modify to use compatible logic if badge column doesn't exist\r\n async getDiscountProducts(limit: number = 10): Promise {\r\n return [] as Product[] // 暂无特价字段\r\n }\r\n\r\n // 获取当前用户的购物车商品(关联商品和店铺信息)\r\n async getCartItems(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:1926','用户未登录,无法获取购物车')\r\n return []\r\n }\r\n\r\n // 查询购物车表,并关联商品表(使用内联关联)\r\n // 注意:使用 !inner 进行内连接,或者 left join (默认)\r\n // 修改查询语法以符合 PostgREST 规范\r\n // 尝试简化查询,先只查购物车,再查商品,避免复杂的嵌套查询导致 400 错误\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1942','获取购物车失败:', response.error)\r\n return []\r\n }\r\n \r\n const cartData = response.data as any[]\r\n // __f__('log','at utils/supabaseService.uts:1947','Raw Cart Data:', JSON.stringify(cartData))\r\n \r\n if (cartData == null || cartData.length === 0) {\r\n return []\r\n }\r\n\r\n // 收集所有 product_id 和 sku_id\r\n const productIds: string[] = []\r\n const skuIds: string[] = []\r\n for (let i = 0; i < cartData.length; i++) {\r\n let item = cartData[i]\r\n let pid: string = ''\r\n let sid: string = ''\r\n if (item instanceof UTSJSONObject) {\r\n pid = item.getString('product_id') ?? ''\r\n sid = item.getString('sku_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n pid = itemObj.getString('product_id') ?? ''\r\n sid = itemObj.getString('sku_id') ?? ''\r\n }\r\n if (pid !== '' && !productIds.includes(pid)) {\r\n productIds.push(pid)\r\n }\r\n if (sid !== '' && !skuIds.includes(sid)) {\r\n skuIds.push(sid)\r\n }\r\n }\r\n\r\n // 批量查询商品详情 (使用视图关联店铺信息,修复字段名 specification -> attributes)\r\n const productMap = new Map()\r\n \r\n if (productIds.length > 0) {\r\n // Convert string array to any array for .in()\r\n const productIdsAny: any[] = []\r\n for(let i=0; i()\r\n if (skuIds.length > 0) {\r\n const skuIdsAny: any[] = []\r\n for(let i=0; i 0) {\r\n productPrice = skuPrice\r\n }\r\n const skuImg = sku.getString('image_url')\r\n if (skuImg != null && skuImg !== '') {\r\n productImage = skuImg\r\n }\r\n \r\n const specRaw = sku.get('specifications')\r\n if (specRaw != null) {\r\n // 优先使用SKU的规格\r\n if (typeof specRaw === 'string') {\r\n productSpec = specRaw\r\n } else if (specRaw instanceof UTSJSONObject) {\r\n const keys = ['规格', '颜色', '尺码', '容量', '版本', '型号']\r\n const result: string[] = []\r\n for (let k = 0; k < keys.length; k++) {\r\n const key = keys[k]\r\n const val = specRaw.get(key)\r\n if (val != null && val !== '') {\r\n result.push(`${val}`)\r\n }\r\n }\r\n if (result.length > 0) {\r\n productSpec = result.join(' ')\r\n } else {\r\n // Fallback for other keys\r\n const allKeys = UTSJSONObject.keys(specRaw)\r\n const parts: string[] = []\r\n for(let k = 0; k < allKeys.length; k++) {\r\n let val = specRaw.get(allKeys[k])\r\n if (val != null) {\r\n parts.push(`${val}`)\r\n }\r\n }\r\n productSpec = parts.join(' ')\r\n }\r\n } else {\r\n try {\r\n let jsonStr = JSON.stringify(specRaw)\r\n productSpec = jsonStr.replace(/[\"{}]/g, '').replace(/,/g, ' ').replace(/:/g, ' ')\r\n } catch (e) {}\r\n }\r\n }\r\n } else {\r\n const sObj = JSON.parse(JSON.stringify(sku)) as UTSJSONObject\r\n const skuPrice = sObj.getNumber('price') ?? 0\r\n if (skuPrice > 0) productPrice = skuPrice\r\n\r\n const skuImg = sObj.getString('image_url') ?? ''\r\n if (skuImg !== '') productImage = skuImg\r\n\r\n const specRaw = sObj.get('specifications')\r\n if (specRaw != null) {\r\n // 优先使用SKU的规格\r\n if (typeof specRaw === 'string') {\r\n productSpec = specRaw\r\n } else if (specRaw instanceof UTSJSONObject) {\r\n const keys = ['规格', '颜色', '尺码', '容量', '版本', '型号']\r\n const result: string[] = []\r\n for (let k = 0; k < keys.length; k++) {\r\n const key = keys[k]\r\n const val = specRaw.get(key)\r\n if (val != null && val !== '') {\r\n result.push(`${val}`)\r\n }\r\n }\r\n if (result.length > 0) {\r\n productSpec = result.join(' ')\r\n } else {\r\n // Fallback for other keys\r\n const allKeys = UTSJSONObject.keys(specRaw)\r\n const parts: string[] = []\r\n for(let k = 0; k < allKeys.length; k++) {\r\n let val = specRaw.get(allKeys[k])\r\n if (val != null) {\r\n parts.push(`${val}`)\r\n }\r\n }\r\n productSpec = parts.join(' ')\r\n }\r\n } else {\r\n try {\r\n let jsonStr = JSON.stringify(specRaw)\r\n productSpec = jsonStr.replace(/[\"{}]/g, '').replace(/,/g, ' ').replace(/:/g, ' ')\r\n } catch (e) {}\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n \r\n let shopIdStr = merchantId != '' ? merchantId : 'unknown_shop'\r\n\r\n \r\n cartItems.push({\r\n id: itemId,\r\n user_id: userIdVal,\r\n product_id: productId,\r\n sku_id: skuId,\r\n merchant_id: merchantId,\r\n quantity: quantity,\r\n selected: selected,\r\n product_name: productName,\r\n product_image: productImage,\r\n product_price: productPrice,\r\n product_specification: productSpec,\r\n shop_id: shopIdStr,\r\n shop_name: shopNameStr,\r\n created_at: createdAt,\r\n updated_at: updatedAt\r\n } as CartItem)\r\n }\r\n }\r\n \r\n return cartItems\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2291','获取购物车异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取用户通知 (系统、活动、订单)\r\n async getUserNotifications(type: string | null = null): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2299','[getUserNotifications] 开始获取通知')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n let query = supa\r\n .from('ml_notifications')\r\n .select('*')\r\n .eq('user_id', userId)\r\n \r\n if (type != null) {\r\n query = query.eq('type', type)\r\n }\r\n \r\n const response = await query.order('created_at', { ascending: false }).execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2315','获取通知失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const notifications: Notification[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2324','[getUserNotifications] 获取到通知数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const noteObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = noteObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = noteObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = noteObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val\r\n if (typeof val == 'number') return (val as number) == 1\r\n return false\r\n }\r\n \r\n const note: Notification = {\r\n id: getSafeString('id'),\r\n user_id: getSafeString('user_id'),\r\n type: getSafeString('type'),\r\n title: getSafeString('title'),\r\n content: getSafeString('content'),\r\n is_read: getSafeBoolean('is_read'),\r\n icon_url: getSafeString('icon_url'),\r\n link_url: getSafeString('link_url'),\r\n extra_data: getSafeString('extra_data'),\r\n created_at: getSafeString('created_at')\r\n }\r\n notifications.push(note)\r\n }\r\n return notifications\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2368','获取通知异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取聊天会话列表\r\n async getChatRooms(): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2376','[getChatRooms] 开始获取聊天会话')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const response = await supa\r\n .from('ml_chat_rooms')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('updated_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2388','获取聊天会话失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const rooms: ChatRoom[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2397','[getChatRooms] 获取到会话数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const roomObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = roomObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = roomObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = roomObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val\r\n if (typeof val == 'number') return (val as number) == 1\r\n return false\r\n }\r\n \r\n const room: ChatRoom = {\r\n id: getSafeString('id'),\r\n user_id: getSafeString('user_id'),\r\n merchant_id: getSafeString('merchant_id'),\r\n shop_name: getSafeString('shop_name'),\r\n shop_logo: getSafeString('shop_logo'),\r\n last_message: getSafeString('last_message'),\r\n last_message_at: getSafeString('last_message_at'),\r\n unread_count: getSafeNumber('unread_count'),\r\n is_top: getSafeBoolean('is_top'),\r\n created_at: getSafeString('created_at'),\r\n updated_at: getSafeString('updated_at')\r\n }\r\n rooms.push(room)\r\n }\r\n return rooms\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2442','获取聊天会话异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取用户聊天消息\r\n async getUserChatMessages(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .select('*')\r\n .or(`sender_id.eq.${userId},receiver_id.eq.${userId}`)\r\n .order('created_at', { ascending: false })\r\n .limit(50)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2462','获取聊天记录失败:', response.error)\r\n return []\r\n }\r\n return response.data as ChatMessage[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2467','获取聊天记录异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取与特定商家的聊天记录 (合并版本)\r\n async getChatMessages(merchantId: string, page: number = 1, pageSize: number = 20): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2475','[getChatMessages] 开始获取聊天记录,merchantId:', merchantId, 'page:', page)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const fromIndex = (page - 1) * pageSize\r\n const toIndex = fromIndex + pageSize - 1\r\n\r\n // 使用 or 组合精确条件查询:(我发给商家) OR (商家发给我)\r\n const queryStr = `and(sender_id.eq.${userId},receiver_id.eq.${merchantId}),and(sender_id.eq.${merchantId},receiver_id.eq.${userId})`\r\n \r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .select('*')\r\n .or(queryStr)\r\n .order('created_at', { ascending: false }) // 最新在前\r\n .range(fromIndex, toIndex)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2494','getChatMessages error:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const messages: ChatMessage[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2503','[getChatMessages] 获取到消息数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const msgObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = msgObj.get(key)\r\n if (val == null) return ''\r\n return val.toString()\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = msgObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val as boolean\r\n return (val.toString() == '1' || val.toString() == 'true')\r\n }\r\n \r\n const msg: ChatMessage = {\r\n id: getSafeString('id'),\r\n session_id: getSafeString('session_id'),\r\n sender_id: getSafeString('sender_id'),\r\n receiver_id: getSafeString('receiver_id'),\r\n content: getSafeString('content'),\r\n msg_type: getSafeString('msg_type'),\r\n is_read: getSafeBoolean('is_read'),\r\n is_from_user: getSafeBoolean('is_from_user'),\r\n extra_data: getSafeString('extra_data'),\r\n created_at: getSafeString('created_at')\r\n }\r\n messages.push(msg)\r\n }\r\n return messages\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2538','获取聊天记录异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 发送聊天消息\r\n async sendChatMessage(content: string, toId: string | null = null, type: string = 'text'): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const payload = {\r\n sender_id: userId,\r\n content: content,\r\n msg_type: type,\r\n is_from_user: true,\r\n created_at: new Date().toISOString()\r\n } as UTSJSONObject\r\n if (toId != null) {\r\n payload.set('receiver_id', toId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert(payload)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2566','发送消息失败:', response.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2571','发送消息异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 模拟客服回复\r\n async simulateServiceReply(content: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert({\r\n receiver_id: userId,\r\n content: content,\r\n msg_type: 'text',\r\n is_from_user: false,\r\n created_at: new Date().toISOString()\r\n })\r\n .execute()\r\n return response.error == null\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n // 添加商品到购物车\r\n async addToCart(productId: string, quantity: number = 1, skuId: string = '', merchantId: string = ''): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2603','用户未登录,无法添加商品到购物车')\r\n return false\r\n }\r\n \r\n const realSkuId = (skuId != null && skuId.length > 0) ? skuId : null\r\n const realMerchantId = (merchantId != null && merchantId.length > 0) ? merchantId : null\r\n\r\n // 检查商品是否已在购物车中\r\n // 注意:必须处理 sku_id 为空的情况,使用 is.null 过滤器\r\n let query = supa\r\n .from('ml_shopping_cart')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .eq('product_id', productId)\r\n \r\n if (realSkuId != null) {\r\n query = query.eq('sku_id', realSkuId)\r\n } else {\r\n query = query.is('sku_id', null)\r\n }\r\n\r\n const existingResponse = await query.single().execute()\r\n\r\n let existingItem: any | null = null\r\n \r\n if (existingResponse.data != null) {\r\n const rawData = existingResponse.data as any\r\n if (Array.isArray(rawData)) {\r\n if (rawData.length > 0) {\r\n existingItem = rawData[0]\r\n }\r\n } else {\r\n existingItem = rawData\r\n }\r\n }\r\n\r\n let response: AkReqResponse\r\n if (existingItem != null) {\r\n // 商品已存在,更新数量\r\n __f__('log','at utils/supabaseService.uts:2642','Found existing cart item:', JSON.stringify(existingItem))\r\n\r\n // 确保 existingItem.id 存在\r\n let itemId: string | null = null\r\n let itemQty: any | null = null\r\n\r\n if (existingItem instanceof UTSJSONObject) {\r\n itemId = existingItem.getString('id')\r\n itemQty = existingItem.getNumber('quantity')\r\n } else {\r\n const obj = JSON.parse(JSON.stringify(existingItem)) as UTSJSONObject\r\n itemId = obj.getString('id')\r\n itemQty = obj.getNumber('quantity')\r\n }\r\n\r\n if (itemId != null) {\r\n let currentQty = 0\r\n if (typeof itemQty === 'number') {\r\n currentQty = itemQty as number\r\n } else {\r\n const qStr = `${itemQty ?? 0}`\r\n currentQty = parseInt(qStr)\r\n }\r\n const newQty = currentQty + quantity\r\n\r\n response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n quantity: newQty,\r\n merchant_id: realMerchantId,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', itemId)\r\n .execute()\r\n } else {\r\n __f__('error','at utils/supabaseService.uts:2677','购物车已有商品但缺少ID,无法更新. Data:', JSON.stringify(existingItem))\r\n return false\r\n }\r\n } else {\r\n // 商品不存在,添加新记录\r\n const cartPayload = new UTSJSONObject()\r\n cartPayload.set('user_id', userId)\r\n cartPayload.set('product_id', productId)\r\n cartPayload.set('sku_id', realSkuId)\r\n cartPayload.set('quantity', quantity)\r\n cartPayload.set('selected', true)\r\n cartPayload.set('created_at', new Date().toISOString())\r\n cartPayload.set('updated_at', new Date().toISOString())\r\n if (realMerchantId != null) {\r\n cartPayload.set('merchant_id', realMerchantId)\r\n }\r\n \r\n response = await supa\r\n .from('ml_shopping_cart')\r\n .insert(cartPayload)\r\n .execute()\r\n }\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2701','添加商品到购物车失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2707','添加商品到购物车异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新购物车商品数量\r\n async updateCartItemQuantity(cartItemId: string, quantity: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2717','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n if (quantity < 1) {\r\n // 数量小于1时删除商品\r\n return await this.deleteCartItem(cartItemId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n quantity: quantity,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2737','更新购物车商品数量失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2743','更新购物车商品数量异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新购物车商品选中状态\r\n async updateCartItemSelection(cartItemId: string, selected: boolean): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2753','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n selected: selected,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2768','更新购物车商品选中状态失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2774','更新购物车商品选中状态异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 批量更新购物车商品选中状态\r\n async batchUpdateCartItemSelection(cartItemIds: string[], selected: boolean): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2782','[batchUpdateCartItemSelection] 开始批量更新')\r\n __f__('log','at utils/supabaseService.uts:2783','[batchUpdateCartItemSelection] cartItemIds:', JSON.stringify(cartItemIds))\r\n __f__('log','at utils/supabaseService.uts:2784','[batchUpdateCartItemSelection] cartItemIds length:', cartItemIds.length)\r\n __f__('log','at utils/supabaseService.uts:2785','[batchUpdateCartItemSelection] selected:', selected)\r\n \r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2789','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n selected: selected,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('user_id', userId)\r\n .in('id', cartItemIds as any[])\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:2803','[batchUpdateCartItemSelection] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:2804','[batchUpdateCartItemSelection] response.data:', JSON.stringify(response.data))\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2807','批量更新购物车商品选中状态失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2813','批量更新购物车商品选中状态异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 删除购物车商品\r\n async deleteCartItem(cartItemId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2821','正在执行删除购物车商品,ID:', cartItemId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2824','用户未登录,无法删除购物车商品')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2836','删除购物车商品失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2842','删除购物车商品异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 批量删除购物车商品\r\n async batchDeleteCartItems(cartItemIds: string[]): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2850','[batchDeleteCartItems] 开始删除, ids:', cartItemIds.length)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2853','用户未登录,无法删除购物车商品')\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:2857','[batchDeleteCartItems] userId:', userId)\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('user_id', userId)\r\n .in('id', cartItemIds as any[])\r\n .delete()\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:2865','[batchDeleteCartItems] response.error:', response.error)\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2867','批量删除购物车商品失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:2871','[batchDeleteCartItems] 删除成功')\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2874','批量删除购物车商品异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 清空购物车\r\n async clearCart(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2884','用户未登录,无法清空购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2895','清空购物车失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2901','清空购物车异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 获取当前用户的所有地址\r\n async getAddresses(): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:2910','[getAddresses] 用户未登录,无法获取地址')\r\n return []\r\n }\r\n\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2915','[getAddresses] 查询地址, userId:', userId)\r\n \r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('is_default', { ascending: false })\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:2925','[getAddresses] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:2926','[getAddresses] response.data:', JSON.stringify(response.data))\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2929','[getAddresses] 获取地址失败:', response.error)\r\n return []\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n return []\r\n }\r\n \r\n const result: UserAddress[] = []\r\n const rawData = data as any[]\r\n for (let i = 0; i < rawData.length; i++) {\r\n const item = rawData[i]\r\n let itemObj: UTSJSONObject\r\n if (item instanceof UTSJSONObject) {\r\n itemObj = item as UTSJSONObject\r\n } else {\r\n itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n const addr: UserAddress = {\r\n id: itemObj.getString('id') ?? '',\r\n user_id: itemObj.getString('user_id') ?? '',\r\n recipient_name: itemObj.getString('receiver_name') ?? itemObj.getString('recipient_name') ?? '',\r\n phone: itemObj.getString('receiver_phone') ?? itemObj.getString('phone') ?? '',\r\n province: itemObj.getString('province') ?? '',\r\n city: itemObj.getString('city') ?? '',\r\n district: itemObj.getString('district') ?? '',\r\n detail_address: itemObj.getString('address_detail') ?? itemObj.getString('detail_address') ?? '',\r\n is_default: itemObj.getBoolean('is_default') ?? false,\r\n label: itemObj.getString('label') ?? '',\r\n created_at: itemObj.getString('created_at') ?? '',\r\n updated_at: itemObj.getString('updated_at') ?? ''\r\n }\r\n result.push(addr)\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:2966','[getAddresses] 返回地址数量:', result.length)\r\n return result\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2969','[getAddresses] 获取地址异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 根据ID获取地址详情\r\n async getAddressById(addressId: string): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:2978','用户未登录,无法获取地址')\r\n return null\r\n }\r\n\r\n try {\r\n const query = supa\r\n .from('ml_user_addresses')\r\n .select('*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail')\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .single()\r\n \r\n const response = await query.execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2993','获取地址详情失败:', response.error)\r\n return null\r\n }\r\n \r\n return response.data as UserAddress\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2999','获取地址详情异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 添加新地址\r\n async addAddress(address: AddAddressParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3009','用户未登录,无法添加地址')\r\n return false\r\n }\r\n\r\n // 如果设置为默认地址,需要先取消其他默认地址\r\n if (address.is_default == true) {\r\n await this.clearDefaultAddress(userId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .insert({\r\n user_id: userId,\r\n receiver_name: address.recipient_name,\r\n receiver_phone: address.phone,\r\n province: address.province,\r\n city: address.city,\r\n district: address.district,\r\n address_detail: address.detail_address,\r\n postal_code: address.postal_code ?? null,\r\n is_default: address.is_default ?? false,\r\n created_at: new Date().toISOString(),\r\n updated_at: new Date().toISOString()\r\n })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3036','添加地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3042','添加地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新地址\r\n async updateAddress(addressId: string, address: UpdateAddressParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3052','用户未登录,无法更新地址')\r\n return false\r\n }\r\n\r\n // 如果设置为默认地址,需要先取消其他默认地址\r\n if (address.is_default == true) {\r\n await this.clearDefaultAddress(userId)\r\n }\r\n \r\n // 构造更新数据,映射字段名到数据库列名\r\n const updateData = {}\r\n if (address.recipient_name != null) updateData['receiver_name'] = address.recipient_name\r\n if (address.phone != null) updateData['receiver_phone'] = address.phone\r\n if (address.province != null) updateData['province'] = address.province\r\n if (address.city != null) updateData['city'] = address.city\r\n if (address.district != null) updateData['district'] = address.district\r\n if (address.detail_address != null) updateData['address_detail'] = address.detail_address\r\n if (address.postal_code != null) updateData['postal_code'] = address.postal_code\r\n if (address.is_default != null) updateData['is_default'] = address.is_default\r\n if (address.label != null) updateData['label'] = address.label\r\n updateData['updated_at'] = new Date().toISOString()\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .update(updateData)\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3082','更新地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3088','更新地址异常:', error)\r\n return false\r\n }\r\n }\r\n \r\n // 确认收货\r\n async confirmReceipt(orderId: string): Promise {\r\n __f__('log','at utils/supabaseService.uts:3095','[confirmReceipt] 开始确认收货, orderId:', orderId)\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:3098','[confirmReceipt] userId:', userId)\r\n if (userId == null) {\r\n return { success: false, error: '用户未登录' }\r\n }\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('order_status', 4)\r\n updateData.set('delivered_at', new Date().toISOString())\r\n updateData.set('completed_at', new Date().toISOString())\r\n updateData.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3109','[confirmReceipt] 准备更新订单状态, updateData:', JSON.stringify(updateData))\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updateData)\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3118','[confirmReceipt] response.status:', response.status)\r\n __f__('log','at utils/supabaseService.uts:3119','[confirmReceipt] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:3120','[confirmReceipt] response.data:', JSON.stringify(response.data))\r\n \r\n // 检查 HTTP 状态码\r\n if (response.status != null && response.status >= 400) {\r\n // 尝试从 response.data 中提取错误信息\r\n let errorMsg = '请求失败'\r\n if (response.data != null) {\r\n try {\r\n const errorData = response.data as UTSJSONObject\r\n const msg = errorData.getString('message')\r\n if (msg != null) {\r\n errorMsg = msg\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:3137','[confirmReceipt] HTTP错误:', response.status, errorMsg)\r\n return { success: false, error: errorMsg }\r\n }\r\n \r\n if (response.error != null) {\r\n return { success: false, error: response.error.message }\r\n }\r\n \r\n // 检查 response.data 是否包含错误代码\r\n if (response.data != null) {\r\n try {\r\n const respData = response.data as UTSJSONObject\r\n const errorCode = respData.getString('code')\r\n if (errorCode != null) {\r\n const errorMsg = respData.getString('message') ?? '数据库错误'\r\n __f__('log','at utils/supabaseService.uts:3152','[confirmReceipt] 数据库错误:', errorCode, errorMsg)\r\n return { success: false, error: errorMsg }\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n \r\n // 检查是否有数据被更新\r\n if (response.data == null || (Array.isArray(response.data) && response.data.length === 0)) {\r\n __f__('log','at utils/supabaseService.uts:3162','[confirmReceipt] 没有数据被更新,可能订单不存在或无权限')\r\n return { success: false, error: '订单不存在或无权限更新' }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3166','[confirmReceipt] 确认收货成功')\r\n return { success: true }\r\n } catch (e: any) {\r\n __f__('error','at utils/supabaseService.uts:3169','[confirmReceipt] 异常:', e)\r\n return { success: false, error: e.message }\r\n }\r\n }\r\n\r\n // 取消订单\r\n async cancelOrder(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 5,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3193','取消订单失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3199','取消订单异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除订单\r\n async deleteOrder(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .delete()\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3220','删除订单失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3226','删除订单异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 确认收货\r\n async confirmOrderReceived(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 4,\r\n shipping_status: 3,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3251','确认收货失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3257','确认收货异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除地址\r\n async deleteAddress(addressId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3265','正在执行删除地址,ID:', addressId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3268','用户未登录,无法删除地址')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3280','删除地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3286','删除地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 清除默认地址(内部使用)\r\n private async clearDefaultAddress(userId: string): Promise {\r\n try {\r\n await supa\r\n .from('ml_user_addresses')\r\n .update({\r\n is_default: false,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('user_id', userId)\r\n .eq('is_default', true)\r\n .execute()\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3304','清除默认地址异常:', error)\r\n }\r\n }\r\n\r\n // 获取用户资料\r\n async getUserProfile(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return null\r\n \r\n // 联合查询 auth user 和 profile\r\n // 由于 Supabase auth table 不可直接访问,这里查询 ml_user_profiles\r\n // 注意:使用 limit(1) 替代 single() 以避免 Android 端类型转换错误\r\n const response = await supa\r\n .from('ml_user_profiles')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n // 如果不存在 profile,可能只有 auth user,这里暂时返回空或创建默认\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return null\r\n \r\n // 作为数组处理\r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) return null\r\n \r\n return rawList[0]\r\n } catch (e) {\r\n return null\r\n }\r\n }\r\n \r\n // 创建订单\r\n async createOrder(orderData: CreateOrderParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3347','CreateOrder: User not logged in')\r\n return null\r\n }\r\n \r\n const orderNo = 'ML' + Date.now() + Math.floor(Math.random() * 1000)\r\n \r\n let merchantId = orderData.merchant_id\r\n __f__('log','at utils/supabaseService.uts:3354','[CreateOrder] 原始 merchant_id:', merchantId)\r\n if (merchantId == null || merchantId == '' || merchantId == 'unknown') {\r\n __f__('warn','at utils/supabaseService.uts:3356','[CreateOrder] merchant_id 为空或无效,将使用 userId 作为 fallback')\r\n merchantId = userId\r\n }\r\n __f__('log','at utils/supabaseService.uts:3359','[CreateOrder] 最终使用的 merchant_id:', merchantId)\r\n \r\n let shippingAddrStr = '{}'\r\n if (orderData.shipping_address != null) {\r\n if (typeof orderData.shipping_address === 'string') {\r\n shippingAddrStr = orderData.shipping_address\r\n } else {\r\n shippingAddrStr = JSON.stringify(orderData.shipping_address)\r\n }\r\n }\r\n \r\n const orderPayload = new UTSJSONObject()\r\n orderPayload.set('user_id', userId)\r\n orderPayload.set('merchant_id', merchantId)\r\n orderPayload.set('order_no', orderNo)\r\n orderPayload.set('product_amount', orderData.product_amount)\r\n orderPayload.set('shipping_fee', orderData.shipping_fee)\r\n orderPayload.set('total_amount', orderData.total_amount)\r\n orderPayload.set('paid_amount', 0)\r\n orderPayload.set('shipping_address', shippingAddrStr)\r\n orderPayload.set('order_status', 1)\r\n orderPayload.set('payment_status', 1)\r\n orderPayload.set('shipping_status', 1)\r\n orderPayload.set('created_at', new Date().toISOString())\r\n orderPayload.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3385','[CreateOrder] 插入订单数据:', JSON.stringify(orderPayload))\r\n __f__('log','at utils/supabaseService.uts:3386','[CreateOrder] 期望的订单号:', orderNo)\r\n \r\n const orderResponse = await supa\r\n .from('ml_orders')\r\n .insert(orderPayload)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3393','[CreateOrder] insert 完成')\r\n __f__('log','at utils/supabaseService.uts:3394','[CreateOrder] orderResponse.error:', orderResponse.error)\r\n \r\n if (orderResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3397','[CreateOrder] 创建订单失败:', orderResponse.error)\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3401','[CreateOrder] 开始查询新创建的订单, order_no:', orderNo)\r\n \r\n const queryResponse = await supa\r\n .from('ml_orders')\r\n .select('id, order_no')\r\n .eq('order_no', orderNo)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3409','[CreateOrder] queryResponse.error:', queryResponse.error)\r\n __f__('log','at utils/supabaseService.uts:3410','[CreateOrder] queryResponse.data:', JSON.stringify(queryResponse.data))\r\n \r\n if (queryResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3413','[CreateOrder] 查询订单失败:', queryResponse.error)\r\n return null\r\n }\r\n \r\n const queryData = queryResponse.data as any\r\n let orderId = ''\r\n \r\n __f__('log','at utils/supabaseService.uts:3420','[CreateOrder] queryData 类型:', typeof queryData, '是否数组:', Array.isArray(queryData))\r\n \r\n if (Array.isArray(queryData) && queryData.length > 0) {\r\n __f__('log','at utils/supabaseService.uts:3423','[CreateOrder] queryData 长度:', queryData.length)\r\n const firstItemRaw = queryData[0]\r\n __f__('log','at utils/supabaseService.uts:3425','[CreateOrder] firstItemRaw 类型:', typeof firstItemRaw)\r\n \r\n // 将 firstItemRaw 转换为可访问的对象\r\n const firstItemStr = JSON.stringify(firstItemRaw)\r\n const firstItemParsed = JSON.parse(firstItemStr)\r\n if (firstItemParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3431','[CreateOrder] 解析订单数据失败')\r\n return null\r\n }\r\n const firstItem = firstItemParsed as UTSJSONObject\r\n orderId = (firstItem.getString('id') ?? '') as string\r\n __f__('log','at utils/supabaseService.uts:3436','[CreateOrder] 找到新创建的订单, id:', orderId)\r\n } else {\r\n __f__('error','at utils/supabaseService.uts:3438','[CreateOrder] 未找到新创建的订单,插入可能失败')\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3442','[CreateOrder] 订单创建成功, orderId:', orderId)\r\n \r\n const orderItems: UTSJSONObject[] = []\r\n __f__('log','at utils/supabaseService.uts:3445','[CreateOrder] orderData.items 类型:', typeof orderData.items, '是否数组:', Array.isArray(orderData.items))\r\n \r\n if (orderData.items == null) {\r\n __f__('error','at utils/supabaseService.uts:3448','[CreateOrder] orderData.items 为 null!')\r\n return orderId\r\n }\r\n \r\n const rawItems = orderData.items as any[]\r\n __f__('log','at utils/supabaseService.uts:3453','[CreateOrder] rawItems 长度:', rawItems.length)\r\n \r\n if (rawItems.length === 0) {\r\n __f__('warn','at utils/supabaseService.uts:3456','[CreateOrder] rawItems 为空数组,没有商品项需要插入')\r\n return orderId\r\n }\r\n \r\n for(let i = 0; i < rawItems.length; i++) {\r\n const rawItem = rawItems[i]\r\n const itemStr = JSON.stringify(rawItem)\r\n const itemParsed = JSON.parse(itemStr)\r\n if (itemParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3465','[CreateOrder] 商品项解析失败')\r\n continue\r\n }\r\n const item = itemParsed as UTSJSONObject\r\n\r\n const itemJson = new UTSJSONObject()\r\n \r\n let pId = item.get('product_id')\r\n if (pId == null) {\r\n pId = item.get('id')\r\n }\r\n const productId = (pId ?? '') as string\r\n \r\n itemJson.set('order_id', orderId)\r\n itemJson.set('product_id', productId)\r\n \r\n const skuIdVal = item.get('sku_id')\r\n if (skuIdVal != null && skuIdVal !== '') {\r\n itemJson.set('sku_id', skuIdVal as string)\r\n }\r\n \r\n const productName = (item.get('product_name') ?? '') as string\r\n itemJson.set('product_name', productName)\r\n \r\n const sName = item.get('sku_name')\r\n itemJson.set('sku_name', (sName ?? '') as string)\r\n \r\n const specVal = item.get('specifications')\r\n let skuSnapshot = '{}'\r\n if (specVal != null) {\r\n if (typeof specVal === 'string') {\r\n skuSnapshot = specVal as string\r\n } else {\r\n skuSnapshot = JSON.stringify(specVal)\r\n }\r\n }\r\n itemJson.set('sku_snapshot', skuSnapshot)\r\n itemJson.set('specifications', skuSnapshot)\r\n \r\n const img1 = item.get('product_image')\r\n const img2 = item.get('image_url')\r\n let imgUrl = ((img1 ?? img2 ?? '') as string)\r\n while (imgUrl.indexOf('`') >= 0) {\r\n imgUrl = imgUrl.replace('`', '')\r\n }\r\n itemJson.set('image_url', imgUrl)\r\n\r\n const iPrice = item.getNumber('price') ?? 0\r\n const iQty = item.getNumber('quantity') ?? 1\r\n itemJson.set('price', iPrice)\r\n itemJson.set('quantity', iQty)\r\n itemJson.set('total_amount', iPrice * iQty)\r\n itemJson.set('created_at', new Date().toISOString())\r\n \r\n orderItems.push(itemJson)\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3522','[CreateOrder] 插入订单项数量:', orderItems.length)\r\n \r\n for (let j: number = 0; j < orderItems.length; j++) {\r\n __f__('log','at utils/supabaseService.uts:3525','[CreateOrder] 开始插入订单项', j)\r\n const itemJson = orderItems[j]\r\n // 将 UTSJSONObject 转换为普通对象\r\n __f__('log','at utils/supabaseService.uts:3528','[CreateOrder] 序列化订单项...')\r\n const itemObjStr = JSON.stringify(itemJson)\r\n __f__('log','at utils/supabaseService.uts:3530','[CreateOrder] 订单项 JSON:', itemObjStr)\r\n const itemObjParsed = JSON.parse(itemObjStr)\r\n __f__('log','at utils/supabaseService.uts:3532','[CreateOrder] itemObjParsed 类型:', typeof itemObjParsed)\r\n if (itemObjParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3534','[CreateOrder] 订单项转换失败')\r\n continue\r\n }\r\n \r\n // 使用 UTSJSONObject 而不是 Record\r\n const itemObj = itemObjParsed as UTSJSONObject\r\n __f__('log','at utils/supabaseService.uts:3540','[CreateOrder] 执行 insert...')\r\n \r\n const itemsResponse = await supa\r\n .from('ml_order_items')\r\n .insert(itemObj)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3547','[CreateOrder] insert 完成, error:', itemsResponse.error) \r\n if (itemsResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3549','[CreateOrder] 创建订单项失败:', itemsResponse.error)\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3553','[CreateOrder] 订单项创建成功')\r\n \r\n const cartItemIds: string[] = []\r\n for(let i = 0; i < rawItems.length; i++) {\r\n const rawItem = rawItems[i]\r\n const itemParsed = JSON.parse(JSON.stringify(rawItem))\r\n if (itemParsed == null) continue\r\n const item = itemParsed as UTSJSONObject\r\n const iid = item.getString('id')\r\n if (iid != null && iid.length > 10) {\r\n cartItemIds.push(iid)\r\n }\r\n }\r\n \r\n if (cartItemIds.length > 0) {\r\n await this.batchDeleteCartItems(cartItemIds)\r\n }\r\n \r\n return orderId\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3573','[CreateOrder] 创建订单异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 批量通过店铺创建订单\r\n async createOrdersByShop(params: ShopOrderParams): Promise {\r\n try {\r\n const orderIds: string[] = []\r\n const groups = params.shopGroups as any[]\r\n \r\n let grandTotal = 0.0\r\n for(let k = 0; k < groups.length; k++) {\r\n const g = JSON.parse(JSON.stringify(groups[k])) as UTSJSONObject\r\n const gItemsRaw = g.get('items')\r\n if (gItemsRaw == null) continue\r\n const gItems = gItemsRaw as any[]\r\n \r\n for(let gi = 0; gi < gItems.length; gi++) {\r\n const it = JSON.parse(JSON.stringify(gItems[gi])) as UTSJSONObject\r\n const itPrice = it.getNumber('price') ?? 0\r\n const itQty = it.getNumber('quantity') ?? 1\r\n grandTotal += itPrice * itQty\r\n }\r\n }\r\n \r\n // 为每个店铺创建一个订单\r\n for (let i = 0; i < groups.length; i++) {\r\n const group = JSON.parse(JSON.stringify(groups[i])) as UTSJSONObject\r\n const shopItemsRaw = group.get('items')\r\n if (shopItemsRaw == null) continue\r\n const shopItems = shopItemsRaw as any[]\r\n \r\n let productAmount = 0.0\r\n for(let j = 0; j < shopItems.length; j++) {\r\n const sItem = JSON.parse(JSON.stringify(shopItems[j])) as UTSJSONObject\r\n const siPrice = sItem.getNumber('price') ?? 0\r\n const siQty = sItem.getNumber('quantity') ?? 1\r\n productAmount += siPrice * siQty\r\n }\r\n \r\n // 简单平摊运费和优惠 (实际逻辑可能更复杂)\r\n const ratio = grandTotal > 0 ? (productAmount / grandTotal) : 0\r\n const shopShippingFee = params.deliveryFee * ratio\r\n const shopDiscount = params.discountAmount * ratio\r\n const shopTotal = productAmount + shopShippingFee - shopDiscount\r\n \r\n const mId = group.getString('merchant_id')\r\n const sId = group.getString('shopId')\r\n const shopName = group.getString('shopName')\r\n\r\n __f__('log','at utils/supabaseService.uts:3624','[createOrdersByShop] 店铺组信息:', {\r\n merchant_id: mId,\r\n shopId: sId,\r\n shopName: shopName\r\n })\r\n\r\n const finalMerchantId = (mId != null && mId != '') ? mId : (sId ?? '')\r\n __f__('log','at utils/supabaseService.uts:3631','[createOrdersByShop] 最终使用的 merchant_id:', finalMerchantId)\r\n \r\n // 将 shopItems 转换为普通对象数组\r\n const plainItems: any[] = []\r\n for(let k = 0; k < shopItems.length; k++) {\r\n const plainItemRaw = JSON.parse(JSON.stringify(shopItems[k]))\r\n if (plainItemRaw != null) {\r\n plainItems.push(plainItemRaw as any)\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:3641','[createOrdersByShop] plainItems 数量:', plainItems.length)\r\n\r\n const orderId = await this.createOrder({\r\n merchant_id: finalMerchantId,\r\n product_amount: productAmount,\r\n shipping_fee: shopShippingFee,\r\n total_amount: shopTotal,\r\n shipping_address: params.shipping_address,\r\n items: plainItems\r\n })\r\n \r\n if (orderId != null) {\r\n orderIds.push(orderId)\r\n } else {\r\n return { success: false, orderIds, error: `店铺 ${shopName} 订单创建失败` }\r\n }\r\n }\r\n \r\n return { success: true, orderIds }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3661','批量创建订单异常:', e)\r\n return { success: false, orderIds: [], error: '系统异常' }\r\n }\r\n }\r\n\r\n // 获取订单列表\r\n async getOrders(status: number = 0): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 关联查询店铺表获取店铺名称\r\n let query = supa\r\n .from('ml_orders')\r\n .select('*, ml_order_items(*), ml_shops(shop_name)')\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n \r\n if (status > 0) {\r\n query = query.eq('order_status', status)\r\n }\r\n \r\n const response = await query.execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3688','[getOrders] response.error:', response.error)\r\n if (response.data != null && Array.isArray(response.data)) {\r\n __f__('log','at utils/supabaseService.uts:3690','[getOrders] 订单数量:', response.data.length)\r\n }\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3694','获取订单列表失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 修复订单项中的图片URL\r\n const orders = data as any[]\r\n for (let i = 0; i < orders.length; i++) {\r\n const order = orders[i]\r\n const orderStr = JSON.stringify(order)\r\n const orderObj = JSON.parse(orderStr) as UTSJSONObject\r\n const itemsRaw = orderObj.get('ml_order_items')\r\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\r\n const items = itemsRaw as any[]\r\n for (let j = 0; j < items.length; j++) {\r\n const item = items[j]\r\n const itemStr = JSON.stringify(item)\r\n const itemObj = JSON.parse(itemStr) as UTSJSONObject\r\n const imgUrl = itemObj.getString('image_url')\r\n if (imgUrl != null) {\r\n itemObj['image_url'] = fixImageUrl(imgUrl)\r\n }\r\n const prodImg = itemObj.getString('product_image')\r\n if (prodImg != null) {\r\n itemObj['product_image'] = fixImageUrl(prodImg)\r\n }\r\n items[j] = itemObj\r\n }\r\n orderObj['ml_order_items'] = items\r\n orders[i] = orderObj\r\n }\r\n }\r\n \r\n return orders\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3735','获取订单列表异常:', error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n \r\n // 获取订单详情\r\n async getOrderDetail(orderId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3744','[getOrderDetail] 开始获取订单详情,orderId:', orderId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return null\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .select('*, ml_order_items(*)')\r\n .eq('id', orderId)\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3756','[getOrderDetail] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:3757','[getOrderDetail] response.data:', JSON.stringify(response.data))\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3760','[getOrderDetail] 获取订单详情失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:3766','[getOrderDetail] 数据为空')\r\n return null\r\n }\r\n \r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n __f__('log','at utils/supabaseService.uts:3772','[getOrderDetail] 未找到订单')\r\n return null\r\n }\r\n \r\n const orderData = rawList[0]\r\n __f__('log','at utils/supabaseService.uts:3777','[getOrderDetail] 成功获取订单')\r\n \r\n const orderObj = JSON.parse(JSON.stringify(orderData)) as UTSJSONObject\r\n \r\n const result = new UTSJSONObject()\r\n result.set('id', orderObj.get('id') ?? '')\r\n result.set('order_no', orderObj.get('order_no') ?? '')\r\n result.set('order_status', orderObj.get('order_status') ?? 1)\r\n result.set('user_id', orderObj.get('user_id') ?? '')\r\n result.set('merchant_id', orderObj.get('merchant_id') ?? '')\r\n result.set('product_amount', orderObj.get('product_amount') ?? 0)\r\n result.set('shipping_fee', orderObj.get('shipping_fee') ?? 0)\r\n result.set('total_amount', orderObj.get('total_amount') ?? 0)\r\n result.set('paid_amount', orderObj.get('paid_amount') ?? 0)\r\n result.set('discount_amount', orderObj.get('discount_amount') ?? 0)\r\n result.set('payment_method', orderObj.get('payment_method') ?? '')\r\n result.set('payment_status', orderObj.get('payment_status') ?? 1)\r\n result.set('shipping_status', orderObj.get('shipping_status') ?? 1)\r\n result.set('created_at', orderObj.get('created_at') ?? '')\r\n result.set('paid_at', orderObj.get('paid_at') ?? '')\r\n result.set('shipped_at', orderObj.get('shipped_at') ?? '')\r\n result.set('completed_at', orderObj.get('completed_at') ?? '')\r\n result.set('shipping_address', orderObj.get('shipping_address'))\r\n result.set('ml_order_items', orderObj.get('ml_order_items'))\r\n // 添加物流信息\r\n result.set('tracking_no', orderObj.get('tracking_no') ?? '')\r\n result.set('carrier_name', orderObj.get('carrier_name') ?? '')\r\n result.set('delivered_at', orderObj.get('delivered_at') ?? '')\r\n \r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3808','[getOrderDetail] 获取订单详情异常:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 支付订单\r\n async payOrder(orderId: string, paymentMethod: string, amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3818','[payOrder] 用户未登录')\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3822','[payOrder] 开始更新订单状态, orderId:', orderId, 'userId:', userId)\r\n \r\n const updatePayload = new UTSJSONObject()\r\n updatePayload.set('order_status', 2)\r\n updatePayload.set('payment_status', 1)\r\n updatePayload.set('payment_method', paymentMethod)\r\n updatePayload.set('payment_time', new Date().toISOString())\r\n updatePayload.set('paid_amount', amount)\r\n updatePayload.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3832','[payOrder] 更新数据:', JSON.stringify(updatePayload))\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updatePayload)\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3842','[payOrder] 更新订单失败:', response.error)\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3846','[payOrder] 订单状态更新成功')\r\n\r\n if (paymentMethod === 'balance') {\r\n __f__('log','at utils/supabaseService.uts:3849','[payOrder] 余额支付,暂不扣减余额')\r\n }\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3854','[payOrder] 支付异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 根据ID获取订单信息\r\n async getOrderById(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3864','[getOrderById] 用户未登录')\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3868','[getOrderById] 查询订单, orderId:', orderId)\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .select('*')\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3878','[getOrderById] 查询订单失败:', response.error)\r\n return null\r\n }\r\n \r\n const data = response.data as any[]\r\n if (data == null || data.length === 0) {\r\n __f__('log','at utils/supabaseService.uts:3884','[getOrderById] 未找到订单')\r\n return null\r\n }\r\n \r\n const orderRaw = data[0]\r\n let orderObj: UTSJSONObject\r\n if (orderRaw instanceof UTSJSONObject) {\r\n orderObj = orderRaw as UTSJSONObject\r\n } else {\r\n orderObj = JSON.parse(JSON.stringify(orderRaw)) as UTSJSONObject\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3896','[getOrderById] 订单数据:', JSON.stringify(orderObj))\r\n return orderObj\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3899','[getOrderById] 查询异常:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 提交售后申请\r\n async createRefund(data: any): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3907','[createRefund] 开始处理退款申请')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:3910','[createRefund] 用户未登录')\r\n return { success: false, message: '请先登录' }\r\n }\r\n \r\n const d = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n const orderId = d.getString('order_id') ?? ''\r\n const refundType = d.getNumber('refund_type')\r\n const refundReason = d.getString('refund_reason')\r\n const refundAmount = d.getNumber('refund_amount')\r\n const description = d.getString('description')\r\n const images = d.getArray('images')\r\n \r\n __f__('log','at utils/supabaseService.uts:3922','[createRefund] orderId:', orderId)\r\n __f__('log','at utils/supabaseService.uts:3923','[createRefund] refundType:', refundType)\r\n __f__('log','at utils/supabaseService.uts:3924','[createRefund] refundReason:', refundReason)\r\n __f__('log','at utils/supabaseService.uts:3925','[createRefund] refundAmount:', refundAmount)\r\n\r\n const payload = {\r\n user_id: userId,\r\n order_id: orderId,\r\n refund_no: 'REF' + Date.now() + Math.floor(Math.random() * 1000),\r\n refund_type: refundType,\r\n refund_reason: refundReason,\r\n refund_amount: refundAmount,\r\n description: description ?? '',\r\n images: images ?? ([] as any[]),\r\n status: 1 // Pending\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3939','[createRefund] 准备插入 ml_refunds')\r\n const response = await supa\r\n .from('ml_refunds')\r\n .insert(payload)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3945','[createRefund] insert response.error:', response.error)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3948','提交售后失败:', response.error)\r\n return { success: false, message: '提交失败: ' + (response.error.message ?? '未知错误') }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3952','[createRefund] 插入成功,更新订单状态')\r\n // 更新订单状态为退款中\r\n const updateResponse = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 6, // 退款中\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3963','[createRefund] update response.error:', updateResponse.error)\r\n \r\n if (updateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3966','更新订单状态失败:', updateResponse.error)\r\n // 不影响退款申请结果,只记录错误\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3970','[createRefund] 完成,返回成功')\r\n return { success: true, message: '申请提交成功' }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3973','提交售后异常:', e)\r\n return { success: false, message: '系统异常' }\r\n }\r\n }\r\n\r\n // 取消退款申请\r\n async cancelRefund(orderId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3981','[cancelRefund] 开始取消退款申请, orderId:', orderId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return { success: false, message: '请先登录' }\r\n }\r\n \r\n // 更新退款记录状态为已取消\r\n const refundUpdateResponse = await supa\r\n .from('ml_refunds')\r\n .update({\r\n status: 4, // 已取消\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('order_id', orderId)\r\n .eq('user_id', userId)\r\n .eq('status', 1) // 只能取消待处理的退款\r\n .execute()\r\n \r\n if (refundUpdateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4000','取消退款记录失败:', refundUpdateResponse.error)\r\n return { success: false, message: '取消失败: ' + (refundUpdateResponse.error.message ?? '未知错误') }\r\n }\r\n \r\n // 恢复订单状态为已完成(假设之前是已完成状态)\r\n const orderUpdateResponse = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 4, // 已完成\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n if (orderUpdateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4015','恢复订单状态失败:', orderUpdateResponse.error)\r\n // 不影响取消退款结果,只记录错误\r\n }\r\n \r\n return { success: true, message: '已取消退款申请' }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4021','取消退款异常:', e)\r\n return { success: false, message: '系统异常' }\r\n }\r\n }\r\n\r\n // 再次购买\r\n async rePurchase(order: any): Promise {\r\n try {\r\n // 将 order 转换为 UTSJSONObject 以安全访问属性\r\n const orderObj = JSON.parse(JSON.stringify(order)) as UTSJSONObject\r\n // 尝试获取 ml_order_items 或 items\r\n let itemsKey = 'ml_order_items'\r\n let itemsRaw = orderObj.get(itemsKey)\r\n \r\n if (itemsRaw == null) {\r\n itemsKey = 'items'\r\n itemsRaw = orderObj.get(itemsKey)\r\n }\r\n \r\n if (itemsRaw == null) return false\r\n \r\n // 断言为数组\r\n const items = itemsRaw as any[]\r\n if (items.length === 0) return false\r\n\r\n // 简单的循环添加,实际项目中可以优化为批量插入\r\n for (let i = 0; i < items.length; i++) {\r\n // 同样,item 也是 UTSJSONObject 或支持访问的对象\r\n const item = JSON.parse(JSON.stringify(items[i])) as UTSJSONObject\r\n const productId = item.getString('product_id') \r\n const skuId = item.getString('sku_id')\r\n // 数量可能是数字或字符串\r\n const quantity = item.getNumber('quantity') ?? 1\r\n \r\n if (productId != null) {\r\n await this.addToCart(productId, quantity, skuId ?? '', '')\r\n }\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4061','rePurchase error', e)\r\n return false\r\n }\r\n }\r\n\r\n // 申请售后 (Legacy/Simple update)\r\n async applyRefund(orderId: string, reason: string): Promise {\r\n try {\r\n // 更新订单状态为 退款中 (6)\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 6,\r\n cancel_reason: reason,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n return response.error === null\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n // 获取售后记录列表\r\n async getRefunds(statusList: number[] = [], page: number = 1, pageSize: number = 10): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n let query = supa\r\n .from('ml_refunds')\r\n .select(`\r\n *,\r\n order:ml_orders!inner (\r\n order_no,\r\n created_at,\r\n ml_order_items (\r\n product_id,\r\n product_name,\r\n image_url\r\n )\r\n )\r\n `)\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n\r\n if (statusList.length > 0) {\r\n // 显式转换为 any[] 以匹配 .in 方法的参数要求\r\n const anyList = statusList as any[]\r\n query = query.in('status', anyList)\r\n }\r\n\r\n query = query.range((page - 1) * pageSize, page * pageSize - 1)\r\n\r\n const response = await query.execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4123','获取售后列表失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return data\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4136','获取售后列表异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n async deleteRefund(refundId: string): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_refunds')\r\n .delete()\r\n .eq('id', refundId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4151','删除退款记录失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4157','删除退款记录异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n async getUserBalanceNumber(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4165','[Supabase] getUserBalance userId:', userId)\r\n if (userId == null) return 0\r\n \r\n // 优先查 ml_user_wallets\r\n const walletRes = await supa\r\n .from('ml_user_wallets')\r\n .select('balance')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n \r\n if (walletRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4177','[Supabase] getUserBalance error:', walletRes.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4179','[Supabase] getUserBalance data:', walletRes.data)\r\n }\r\n\r\n if (walletRes.error == null && walletRes.data != null) {\r\n let data = walletRes.data\r\n // 如果是数组,取第一项\r\n if (Array.isArray(data)) {\r\n const arr = data as any[]\r\n if (arr.length > 0) {\r\n data = arr[0]\r\n }\r\n }\r\n\r\n let val:number = 0\r\n if (data instanceof UTSJSONObject) {\r\n val = data.getNumber('balance') ?? 0\r\n // 尝试字符串转换,防止精度丢失导致转为string\r\n if (val === 0 && data.getString('balance') != null) {\r\n val = parseFloat(data.getString('balance')!)\r\n }\r\n return val\r\n } else {\r\n // 对于 Map 或 loose object\r\n const jsonObj = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n val = jsonObj.getNumber('balance') ?? 0\r\n if (val === 0 && jsonObj.getString('balance') != null) {\r\n val = parseFloat(jsonObj.getString('balance')!)\r\n }\r\n return val\r\n }\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4211','[Supabase] Wallet table empty, checking profile...')\r\n\r\n // Fallback to profile\r\n const profile = await this.getUserProfile()\r\n if (profile != null) {\r\n if (profile instanceof UTSJSONObject) {\r\n return profile.getNumber('balance') ?? 0\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(profile)) as UTSJSONObject\r\n return pObj.getNumber('balance') ?? 0\r\n }\r\n }\r\n return 0\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:4225','[Supabase] getUserBalance exception:', e)\r\n return 0\r\n }\r\n }\r\n \r\n // 获取用户积分\r\n async getUserPoints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4234','[Supabase] getUserPoints userId:', userId)\r\n if (userId == null) return 0\r\n \r\n // 查 ml_user_points\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('points')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4246','[Supabase] getUserPoints error:', res.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4248','[Supabase] getUserPoints data:', res.data)\r\n }\r\n\r\n if (res.error == null && res.data != null) {\r\n let data = res.data\r\n // 如果是数组,取第一项\r\n if (Array.isArray(data)) {\r\n const arr = data as any[]\r\n if (arr.length > 0) {\r\n data = arr[0]\r\n }\r\n }\r\n\r\n if (data instanceof UTSJSONObject) {\r\n return data.getNumber('points') ?? 0\r\n } else {\r\n // 尝试转为 UTSJSONObject\r\n const jsonObj = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n const val = jsonObj.getNumber('points')\r\n if (val != null) return val\r\n\r\n return 0\r\n }\r\n }\r\n \r\n // Fallback check profile if needed\r\n const profile = await this.getUserProfile()\r\n if (profile != null) {\r\n if (profile instanceof UTSJSONObject) {\r\n return profile.getNumber('points') ?? 0\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(profile)) as UTSJSONObject\r\n return pObj.getNumber('points') ?? 0\r\n }\r\n }\r\n \r\n return 0\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4286','[Supabase] getUserPoints exception:', e)\r\n return 0\r\n }\r\n }\r\n\r\n // 获取钱包交易记录\r\n async getTransactions(page: number = 1, limit: number = 20): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const from = (page - 1) * limit\r\n const to = from + limit - 1\r\n\r\n const response = await supa\r\n .from('ml_wallet_transactions')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .range(from, to)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4312','获取交易记录失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4325','获取交易记录异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n \r\n // 获取积分记录\r\n async getPointRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const res = await supa\r\n .from('ml_point_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (res.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户红包\r\n async getUserRedPackets(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_user_red_packets')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4380','获取红包失败:', res.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4391','获取红包异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户银行卡\r\n async getUserBankCards(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4414','获取银行卡失败:', res.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4425','获取银行卡异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 余额充值 (调用 RPC)\r\n async rechargeBalance(amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa.rpc('recharge_wallet', { \r\n p_user_id: userId,\r\n p_amount: amount \r\n })\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4443','充值失败RPC:', res.error)\r\n return false\r\n }\r\n \r\n // 简单判断: 如果没有error且data里success为true\r\n const data = res.data\r\n if (data instanceof UTSJSONObject) {\r\n return data.getBoolean('success') ?? false\r\n }\r\n // 如果返回不是对象,作为失败处理\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4455','充值异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 余额提现 (调用 RPC)\r\n async withdrawBalance(amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa.rpc('withdraw_wallet', { \r\n p_user_id: userId,\r\n p_amount: amount \r\n })\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4472','提现失败RPC:', res.error)\r\n return false\r\n }\r\n \r\n const data = res.data\r\n if (data instanceof UTSJSONObject) {\r\n return data.getBoolean('success') ?? false\r\n }\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4482','提现异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 添加银行卡\r\n async addBankCard(card: UTSJSONObject): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n // 补全 user_id\r\n card.set('user_id', userId)\r\n \r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .insert(card)\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4502','添加银行卡失败:', res.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4507','添加银行卡异常:', e)\r\n return false\r\n }\r\n }\r\n \r\n // 删除银行卡\r\n async deleteBankCard(cardId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .eq('id', cardId)\r\n .eq('user_id', userId!)\r\n .delete()\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4526','删除银行卡失败:', res.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4531','删除银行卡异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 收藏相关\r\n async checkFavorite(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4540',`[CheckFav] Checking for User: ${userId}, Product: ${productId}`)\r\n \r\n if (userId == null) return false\r\n \r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .select('*') // Select all to verify data\r\n .eq('user_id', userId!)\r\n .eq('target_id', productId)\r\n .eq('target_type', '1') // 使用字符串 '1'\r\n .limit(1)\r\n .execute()\r\n \r\n // __f__('log','at utils/supabaseService.uts:4553',`[CheckFav] Response: ${JSON.stringify(response)}`)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4556',`[CheckFav] Error: ${JSON.stringify(response.error)}`)\r\n return false\r\n }\r\n \r\n const data = response.data\r\n if (Array.isArray(data)) {\r\n if ((data as any[]).length > 0) {\r\n // Double check: ensure the returned item actually matches the product ID\r\n // This guards against potential query filter failures\r\n const item = data[0]\r\n let targetId = ''\r\n if (item instanceof UTSJSONObject) {\r\n targetId = item.getString('target_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n targetId = itemObj.getString('target_id') ?? ''\r\n }\r\n \r\n if (targetId != '' && targetId != productId) {\r\n __f__('error','at utils/supabaseService.uts:4575',`[CheckFav] ID Mismatch! Query ${productId}, Got ${targetId}`)\r\n return false\r\n }\r\n \r\n return true\r\n }\r\n } else if (data instanceof UTSJSONObject) {\r\n // Handle single object return case (though limit(1) usually returns array)\r\n let targetId = data.getString('target_id') ?? ''\r\n if (targetId !== '' && targetId !== productId) {\r\n return false\r\n }\r\n return true\r\n }\r\n \r\n return false\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:4592',`[CheckFav] Exception: ${e}`)\r\n return false\r\n }\r\n }\r\n \r\n async toggleFavorite(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n __f__('log','at utils/supabaseService.uts:4602',`[ToggleFav] Toggling for ${productId}`)\r\n \r\n // Check if exists\r\n const exists = await this.checkFavorite(productId)\r\n __f__('log','at utils/supabaseService.uts:4606',`[ToggleFav] Current status: ${exists}`)\r\n \r\n if (exists) {\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .eq('user_id', userId!)\r\n .eq('target_id', productId)\r\n .eq('target_type', '1')\r\n .delete()\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4618','取消收藏失败:', response.error)\r\n return true // 仍然是收藏状态\r\n }\r\n return false // 已取消收藏\r\n } else {\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .insert({\r\n user_id: userId,\r\n target_id: productId,\r\n target_type: '1',\r\n created_at: new Date().toISOString()\r\n })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4634','添加收藏失败:', response.error)\r\n return false // 添加失败,仍未收藏\r\n }\r\n return true // 已收藏\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4640','切换收藏状态异常:', e)\r\n // 发生异常时,尝试查询当前状态返回\r\n return await this.checkFavorite(productId)\r\n }\r\n }\r\n \r\n async getFavorites(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 第一步:查询收藏列表\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('target_type', '1')\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const favorites = response.data as any[]\r\n if (favorites == null || favorites.length === 0) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 第二步:收集商品ID\r\n const productIds: string[] = []\r\n for (let i = 0; i < favorites.length; i++) {\r\n let item: any = favorites[i]\r\n let itemObj: UTSJSONObject\r\n if (item instanceof UTSJSONObject) {\r\n itemObj = item as UTSJSONObject\r\n } else {\r\n itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n // target_id 可能是 Integer 或 String 类型,需要安全转换\r\n const targetIdRaw = itemObj.get('target_id')\r\n let pid = ''\r\n if (targetIdRaw != null) {\r\n if (typeof targetIdRaw === 'string') {\r\n pid = targetIdRaw as string\r\n } else if (typeof targetIdRaw === 'number') {\r\n pid = (targetIdRaw as number).toString()\r\n }\r\n }\r\n if (pid !== '') productIds.push(pid)\r\n }\r\n \r\n if (productIds.length === 0) return []\r\n \r\n // 第三步:批量查询商品详情\r\n const anyProductIds = productIds as any[]\r\n const productRes = await supa\r\n .from('ml_products')\r\n .select('id, name, main_image_url, base_price, sale_count')\r\n .in('id', anyProductIds)\r\n .execute()\r\n \r\n if (productRes.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const products = productRes.data as any[]\r\n const productMap = new Map()\r\n \r\n for (let i = 0; i < products.length; i++) {\r\n // 显式声明类型为 any\r\n let p: any = products[i]\r\n let pid = ''\r\n if (p instanceof UTSJSONObject) {\r\n pid = p.getString('id') ?? ''\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(p)) as UTSJSONObject\r\n pid = pObj.getString('id') ?? ''\r\n }\r\n if (pid !== '') productMap.set(pid, p)\r\n }\r\n \r\n // 第四步:组合数据\r\n const result: any[] = []\r\n for (let i = 0; i < favorites.length; i++) {\r\n let item: any = favorites[i]\r\n let newItem: UTSJSONObject\r\n \r\n if (item instanceof UTSJSONObject) {\r\n newItem = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n } else {\r\n newItem = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n // target_id 可能是 Integer 或 String 类型,需要安全转换\r\n const targetIdRaw = newItem.get('target_id')\r\n let targetId = ''\r\n if (targetIdRaw != null) {\r\n if (typeof targetIdRaw === 'string') {\r\n targetId = targetIdRaw as string\r\n } else if (typeof targetIdRaw === 'number') {\r\n targetId = (targetIdRaw as number).toString()\r\n }\r\n }\r\n \r\n if (targetId !== '') {\r\n const product = productMap.get(targetId)\r\n if (product != null) {\r\n newItem.set('ml_products', product)\r\n result.push(newItem)\r\n }\r\n }\r\n }\r\n \r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4761','获取收藏列表异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取足迹列表\r\n async getFootprints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:4771','[getFootprints] 用户未登录')\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4776','[getFootprints] 查询足迹, userId:', userId)\r\n\r\n // 1. 获取足迹记录\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('updated_at', { ascending: false })\r\n .limit(50)\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:4787','[getFootprints] 足迹查询 error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:4788','[getFootprints] 足迹查询 data:', JSON.stringify(response.data))\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4791','[getFootprints] 获取足迹失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const footprints = response.data as any[]\r\n if (footprints == null || footprints.length === 0) {\r\n __f__('log','at utils/supabaseService.uts:4798','[getFootprints] 没有足迹记录')\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4803','[getFootprints] 足迹记录数量:', footprints.length)\r\n\r\n // 2. 收集商品ID\r\n const productIds: string[] = []\r\n for (let i = 0; i < footprints.length; i++) {\r\n let item = footprints[i]\r\n let pid = ''\r\n if (item instanceof UTSJSONObject) {\r\n pid = item.getString('product_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n pid = itemObj.getString('product_id') ?? ''\r\n }\r\n if (pid !== '' && !productIds.includes(pid)) productIds.push(pid)\r\n }\r\n\r\n if (productIds.length === 0) return []\r\n \r\n const productIdsAny: any[] = []\r\n for(let i=0; i()\r\n for(let i=0; i {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:4936','[addFootprint] 用户未登录')\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:4940','[addFootprint] 添加足迹, userId:', userId, 'productId:', productId)\r\n \r\n // 检查是否已存在\r\n const checkRes = await supa\r\n .from('ml_user_footprints')\r\n .select('id')\r\n .eq('user_id', userId!)\r\n .eq('product_id', productId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:4950','[addFootprint] 检查结果 error:', checkRes.error)\r\n __f__('log','at utils/supabaseService.uts:4951','[addFootprint] 检查结果 data:', JSON.stringify(checkRes.data))\r\n\r\n const checkData = checkRes.data as any[]\r\n const exists = checkData != null && Array.isArray(checkData) && checkData.length > 0\r\n \r\n if (checkRes.error == null && exists) {\r\n __f__('log','at utils/supabaseService.uts:4957','[addFootprint] 足迹已存在,更新时间')\r\n // 更新时间\r\n const updateRes = await supa\r\n .from('ml_user_footprints')\r\n .update({ updated_at: new Date().toISOString() })\r\n .eq('user_id', userId!)\r\n .eq('product_id', productId)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:4965','[addFootprint] 更新结果 error:', updateRes.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4967','[addFootprint] 足迹不存在,插入新记录')\r\n // 插入新记录\r\n const insertPayload = new UTSJSONObject()\r\n insertPayload.set('user_id', userId!)\r\n insertPayload.set('product_id', productId)\r\n insertPayload.set('created_at', new Date().toISOString())\r\n insertPayload.set('updated_at', new Date().toISOString())\r\n \r\n const insertRes = await supa\r\n .from('ml_user_footprints')\r\n .insert(insertPayload)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:4979','[addFootprint] 插入结果 error:', insertRes.error)\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4983','[addFootprint] 添加足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除单个足迹\r\n async deleteFootprint(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:4993','[deleteFootprint] 用户未登录')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .eq('product_id', productId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5005','[deleteFootprint] 删除足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5009','[deleteFootprint] 删除足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5012','[deleteFootprint] 删除足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 批量删除足迹\r\n async deleteFootprints(productIds: string[]): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:5022','[deleteFootprints] 用户未登录')\r\n return false\r\n }\r\n\r\n const idsAny: any[] = []\r\n for (let i = 0; i < productIds.length; i++) {\r\n idsAny.push(productIds[i])\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .in('product_id', idsAny)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5039','[deleteFootprints] 批量删除足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5043','[deleteFootprints] 批量删除足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5046','[deleteFootprints] 批量删除足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 清空所有足迹\r\n async clearFootprints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:5056','[clearFootprints] 用户未登录')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5067','[clearFootprints] 清空足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5071','[clearFootprints] 清空足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5074','[clearFootprints] 清空足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n async getAddressList(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .select('*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail')\r\n .eq('user_id', userId!)\r\n .order('is_default', { ascending: false })\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5096','获取地址列表失败:', response.error)\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n return response.data as UserAddress[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5102','获取地址列表异常:', e)\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 设置默认地址\r\n async setDefaultAddress(addressId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:5113','用户未登录,无法设置默认地址')\r\n return false\r\n }\r\n\r\n // 先取消所有默认地址\r\n await this.clearDefaultAddress(userId!)\r\n\r\n // 设置新的默认地址\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .update({\r\n is_default: true,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', addressId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5132','设置默认地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:5138','设置默认地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 获取用户优惠券列表\r\n async getUserCoupons(status: number = 1): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n\r\n // 假设有一个视图或者直接关联 ml_user_coupons 和 ml_coupon_templates\r\n // 这里简化处理,尝试直接从 ml_user_coupons 读取,并且加入 template 信息\r\n // 如果没有 view,可能需要改为两个查询或者使用 left join\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .select('*, template:ml_coupon_templates(name, amount, min_spend)')\r\n .eq('user_id', userId!)\r\n .eq('status', status.toString())\r\n .order('expire_at', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5164','获取优惠券失败:', response.error)\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n\r\n // 安全处理返回数据 - 安卓端可能是 UTSJSONObject 或 UTSArray\r\n const rawData: any[] = []\r\n const respData = response.data\r\n __f__('log','at utils/supabaseService.uts:5172','[getUserCoupons] 原始数据类型:', typeof respData, '是否数组:', Array.isArray(respData))\r\n if (respData != null) {\r\n if (Array.isArray(respData)) {\r\n const arr = respData as any[]\r\n __f__('log','at utils/supabaseService.uts:5176','[getUserCoupons] 数组长度:', arr.length)\r\n for (let i = 0; i < arr.length; i++) {\r\n rawData.push(arr[i])\r\n }\r\n } else if (respData instanceof UTSJSONObject) {\r\n // 单个对象情况,包装成数组\r\n __f__('log','at utils/supabaseService.uts:5182','[getUserCoupons] 单个对象,包装成数组')\r\n rawData.push(respData)\r\n } else {\r\n // 尝试 JSON 转换\r\n try {\r\n const parsed = JSON.parse(JSON.stringify(respData))\r\n __f__('log','at utils/supabaseService.uts:5188','[getUserCoupons] JSON转换后是否数组:', Array.isArray(parsed))\r\n if (Array.isArray(parsed)) {\r\n __f__('log','at utils/supabaseService.uts:5190','[getUserCoupons] 转换后数组长度:', parsed.length)\r\n for (let i = 0; i < parsed.length; i++) {\r\n rawData.push(parsed[i])\r\n }\r\n }\r\n } catch (parseErr) {\r\n __f__('error','at utils/supabaseService.uts:5196','解析优惠券数据异常:', parseErr)\r\n }\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:5200','[getUserCoupons] 最终rawData长度:', rawData.length)\r\n\r\n // 映射数据,将 template 的字段展平\r\n const coupons: UserCoupon[] = []\r\n for (let i = 0; i < rawData.length; i++) {\r\n const item = rawData[i]\r\n let template: any | null = null\r\n let itemId = ''\r\n let itemUserId = ''\r\n let itemTmplId = ''\r\n let itemCode = ''\r\n let itemStatus = 0\r\n let itemRecv = ''\r\n let itemExpire = ''\r\n \r\n if (item instanceof UTSJSONObject) {\r\n template = item.get('template') as any | null\r\n itemId = item.getString('id') ?? ''\r\n itemUserId = item.getString('user_id') ?? ''\r\n itemTmplId = item.getString('template_id') ?? ''\r\n itemCode = item.getString('coupon_code') ?? ''\r\n itemStatus = item.getNumber('status') ?? 0\r\n itemRecv = item.getString('received_at') ?? ''\r\n itemExpire = item.getString('expire_at') ?? ''\r\n } else {\r\n const iObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n template = iObj.get('template') as any | null\r\n itemId = iObj.getString('id') ?? ''\r\n itemUserId = iObj.getString('user_id') ?? ''\r\n itemTmplId = iObj.getString('template_id') ?? ''\r\n itemCode = iObj.getString('coupon_code') ?? ''\r\n itemStatus = iObj.getNumber('status') ?? 0\r\n itemRecv = iObj.getString('received_at') ?? ''\r\n itemExpire = iObj.getString('expire_at') ?? ''\r\n }\r\n \r\n if (template == null) template = new UTSJSONObject()\r\n \r\n let tName = ''\r\n let tAmount = 0\r\n let tMin = 0\r\n \r\n if (template instanceof UTSJSONObject) {\r\n tName = template.getString('name') ?? '优惠券'\r\n tAmount = template.getNumber('amount') ?? 0\r\n tMin = template.getNumber('min_spend') ?? 0\r\n } else {\r\n const tObj = JSON.parse(JSON.stringify(template)) as UTSJSONObject\r\n tName = tObj.getString('name') ?? '优惠券'\r\n tAmount = tObj.getNumber('amount') ?? 0\r\n tMin = tObj.getNumber('min_spend') ?? 0\r\n }\r\n\r\n // 创建真正的 UserCoupon 对象,而不是 UTSJSONObject\r\n const couponItem: UserCoupon = {\r\n id: itemId,\r\n user_id: itemUserId,\r\n template_id: itemTmplId,\r\n coupon_code: itemCode,\r\n status: itemStatus,\r\n received_at: itemRecv,\r\n expire_at: itemExpire,\r\n template_name: tName,\r\n amount: tAmount,\r\n min_spend: tMin\r\n }\r\n \r\n coupons.push(couponItem)\r\n }\r\n\r\n return coupons\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5272','获取优惠券异常:', e)\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取可用优惠券数量\r\n async getUserCouponCount(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return 0\r\n\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .select('id', { count: 'exact' })\r\n .eq('user_id', userId!)\r\n .eq('status', '1')\r\n .gt('expire_at', new Date().toISOString())\r\n .limit(1)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n return 0\r\n }\r\n return response.total ?? 0\r\n } catch (e) {\r\n return 0\r\n }\r\n }\r\n\r\n // 获取店铺/商品可用优惠券\r\n async getAvailableCoupons(merchantId: string): Promise {\r\n return this.fetchShopCoupons(merchantId)\r\n }\r\n\r\n // ALIAS for Cache busting: 获取店铺优惠券\r\n async fetchShopCoupons(merchantId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5310','[fetchShopCoupons] 开始获取优惠券,merchantId:', merchantId)\r\n // 查询该商家的优惠券 + 平台通用券 (merchant_id is null)\r\n // 注意:这里简化逻辑,实际可能需要联合查询用户是否已领取\r\n const response = await supa\r\n .from('ml_coupon_templates')\r\n .select('*')\r\n .or(`merchant_id.eq.${merchantId},merchant_id.is.null`)\r\n .eq('status', '1') // 使用字符串 '1'\r\n .gt('end_time', new Date().toISOString())\r\n .order('discount_value', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5323','Fetch coupons failed:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n __f__('log','at utils/supabaseService.uts:5333','[fetchShopCoupons] 获取到优惠券数量:', (data as any[]).length)\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5336','Fetch coupons error:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 领取优惠券\r\n async claimCoupon(templateId: string, userId: string): Promise {\r\n return this.claimShopCoupon(templateId, userId)\r\n }\r\n\r\n // ALIAS for Cache busting\r\n async claimShopCoupon(templateId: string, userId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5350','Claiming coupon templateId:', templateId, 'userId:', userId)\r\n\r\n // 1. Fetch template details to get merchant_id and validity\r\n const tmplRes = await supa\r\n .from('ml_coupon_templates')\r\n .select('*')\r\n .eq('id', templateId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (tmplRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5361','Claim Coupon: Template query error', tmplRes.error)\r\n return false\r\n }\r\n\r\n // Null check for data\r\n if (tmplRes.data == null) {\r\n __f__('error','at utils/supabaseService.uts:5367','Claim Coupon: Template data response is null')\r\n return false\r\n }\r\n \r\n const dataList = tmplRes.data as any[]\r\n if (dataList.length === 0) {\r\n __f__('error','at utils/supabaseService.uts:5373','Claim Coupon: Template not found (empty list)')\r\n return false\r\n }\r\n\r\n const template = dataList[0]\r\n \r\n // Safe property access\r\n let validDays = 0\r\n let endTimeStr: string | null = null\r\n let merchantId: string | null = null\r\n \r\n if (template instanceof UTSJSONObject) {\r\n validDays = template.getNumber('valid_days') ?? 0\r\n endTimeStr = template.getString('end_time')\r\n merchantId = template.getString('merchant_id')\r\n } else {\r\n const tJson = JSON.parse(JSON.stringify(template)) as UTSJSONObject\r\n validDays = tJson.getNumber('valid_days') ?? 0\r\n endTimeStr = tJson.getString('end_time')\r\n merchantId = tJson.getString('merchant_id')\r\n }\r\n \r\n // Calculate expire_at\r\n let expireAt = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString()\r\n if (validDays > 0) {\r\n expireAt = new Date(Date.now() + (validDays * 24 * 60 * 60 * 1000)).toISOString()\r\n } else if (endTimeStr != null && endTimeStr !== '') {\r\n expireAt = endTimeStr\r\n }\r\n \r\n // Handle UUID fields: Empty string is not valid UUID, must be null\r\n if (merchantId != null && merchantId.length === 0) {\r\n merchantId = null\r\n }\r\n\r\n // 2. Insert into user coupons with merchant_id\r\n const insertData = {\r\n user_id: userId,\r\n template_id: templateId,\r\n merchant_id: merchantId, // Important for shop filtering: null for platform coupons\r\n coupon_code: 'C' + Date.now() + Math.floor(Math.random() * 1000), \r\n status: 1, \r\n expire_at: expireAt,\r\n received_at: new Date().toISOString()\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:5419','Claim Coupon Insert Payload:', JSON.stringify(insertData))\r\n\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .insert(insertData)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5427','Claim Coupon: Insert failed:', JSON.stringify(response.error))\r\n // 尝试降级:如果 merchant_id 报错,尝试不带 merchant_id (仅调试用,或兼容旧表结构)\r\n if (JSON.stringify(response.error).includes('merchant_id')) {\r\n __f__('log','at utils/supabaseService.uts:5430','Retrying without merchant_id...')\r\n const fallbackData = {\r\n user_id: userId,\r\n template_id: templateId,\r\n coupon_code: 'C' + Date.now() + Math.random().toString().substring(2,6),\r\n status: 1,\r\n expire_at: expireAt,\r\n received_at: new Date().toISOString()\r\n }\r\n const res2 = await supa.from('ml_user_coupons').insert(fallbackData).execute()\r\n if (res2.error == null) return true\r\n }\r\n return false\r\n }\r\n return true\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:5446','Claim coupon error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==========================================\r\n // 聊天相关方法\r\n // ==========================================\r\n\r\n // 发送消息\r\n async sendMessage(merchantId: string, content: string, msgType: string = 'text'): Promise {\r\n // 确保 session 有效\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:5460',\"sendMessage failed: user not logged in or session lost\")\r\n return false\r\n }\r\n\r\n try {\r\n // Debug check\r\n // const session = supa.getSession()\r\n // __f__('log','at utils/supabaseService.uts:5467',\"Sending check: UserID\", userId, \"AuthID:\", session.user?.getString('id'))\r\n \r\n const msg = {\r\n sender_id: userId!,\r\n receiver_id: merchantId,\r\n content: content,\r\n msg_type: msgType,\r\n is_read: false,\r\n is_from_user: true\r\n }\r\n \r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert(msg)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5484','sendMessage error:', response.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5489','sendMessage exception:', e)\r\n return false\r\n }\r\n }\r\n \r\n // 标记会话已读\r\n async markRead(merchantId: string): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n try {\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .update({ is_read: true })\r\n .eq('sender_id', merchantId)\r\n .eq('receiver_id', userId)\r\n .eq('is_read', false)\r\n .execute() \r\n\r\n if (response.error != null) return false\r\n } catch (e) { return false }\r\n return true\r\n }\r\n\r\n // 提交商品评价\r\n async submitProductReviews(reviews: Array): Promise {\r\n try {\r\n for (let i: number = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .insert(review)\r\n .execute() \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5522','提交商品评价失败:', response.error)\r\n return false\r\n }\r\n }\r\n return true\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5528','提交商品评价失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // 提交店铺评价\r\n async submitShopReview(review: UTSJSONObject): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_shop_reviews')\r\n .insert(review)\r\n .execute() \r\n return response.error == null\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5542','提交店铺评价失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // 更新订单状态\r\n async updateOrderStatus(orderId: string, status: number): Promise {\r\n try {\r\n const updateData = new UTSJSONObject()\r\n updateData.set('order_status', status)\r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updateData) \r\n .eq('id', orderId)\r\n .execute() \r\n return response.error == null\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5559','更新订单状态失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // ==================== 智能推荐相关API ====================\r\n\r\n // 获取热搜词(全站搜索频率最高的关键词)\r\n async getHotKeywords(limit: number = 10): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_search_history')\r\n .select('keyword')\r\n .order('created_at', { ascending: false })\r\n .limit(100)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n // 统计关键词频率\r\n const keywordCount = new Map()\r\n const rawList = response.data as any[]\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const keyword = safeGetString(itemObj, 'keyword').toLowerCase().trim()\r\n if (keyword.length > 0) {\r\n const count = keywordCount.get(keyword) ?? 0\r\n keywordCount.set(keyword, count + 1)\r\n }\r\n }\r\n \r\n // 按频率排序并返回前N个 - UTS兼容方式\r\n // 将Map转换为数组进行排序\r\n type KeywordEntry = {\r\n keyword: string\r\n count: number\r\n }\r\n const entryArray: KeywordEntry[] = []\r\n \r\n // 使用forEach遍历Map(UTS支持)\r\n keywordCount.forEach((value: number, key: string) => {\r\n entryArray.push({\r\n keyword: key,\r\n count: value\r\n })\r\n })\r\n \r\n // 按count降序排序\r\n entryArray.sort((a: KeywordEntry, b: KeywordEntry): number => {\r\n return b.count - a.count\r\n })\r\n \r\n // 取前limit个并提取关键词\r\n const sortedKeywords: string[] = []\r\n const maxCount = Math.min(entryArray.length, limit)\r\n for (let i = 0; i < maxCount; i++) {\r\n sortedKeywords.push(entryArray[i].keyword)\r\n }\r\n \r\n return sortedKeywords\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5623','获取热搜词失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 获取用户搜索历史\r\n async getUserSearchHistory(limit: number = 10): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return [] as string[]\r\n }\r\n \r\n const response = await supa\r\n .from('ml_search_history')\r\n .select('keyword')\r\n .order('created_at', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n const keywords: string[] = []\r\n const rawList = response.data as any[]\r\n const seen = new Set()\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawUserId = itemObj.get('user_id')\r\n const itemUserId = (typeof rawUserId == 'string') ? (rawUserId as string) : ''\r\n \r\n // 只获取当前用户的搜索历史\r\n if (itemUserId !== userId) continue\r\n \r\n const keyword = safeGetString(itemObj, 'keyword').trim()\r\n if (keyword.length > 0 && !seen.has(keyword)) {\r\n keywords.push(keyword)\r\n seen.add(keyword)\r\n if (keywords.length >= limit) break\r\n }\r\n }\r\n \r\n return keywords\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5670','获取用户搜索历史失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 获取用户浏览历史中的商品分类\r\n async getUserBrowseCategories(limit: number = 5): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return [] as string[]\r\n }\r\n \r\n const response = await supa\r\n .from('ml_browse_history')\r\n .select('product_id')\r\n .order('created_at', { ascending: false })\r\n .limit(20)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n // 获取浏览过的商品ID\r\n const productIds: string[] = []\r\n const rawList = response.data as any[]\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 user_id\r\n const rawUserId = itemObj.get('user_id')\r\n const itemUserId = (typeof rawUserId == 'string') ? (rawUserId as string) : ''\r\n if (itemUserId !== userId) continue\r\n \r\n const productId = safeGetString(itemObj, 'product_id')\r\n if (productId.length > 0) {\r\n productIds.push(productId)\r\n }\r\n }\r\n \r\n if (productIds.length === 0) {\r\n return [] as string[]\r\n }\r\n \r\n // 查询这些商品的分类\r\n const prodResponse = await supa\r\n .from('ml_products')\r\n .select('category_id')\r\n .limit(50)\r\n .execute()\r\n \r\n if (prodResponse.error != null || prodResponse.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n const categoryIds: string[] = []\r\n const prodList = prodResponse.data as any[]\r\n for (let i = 0; i < prodList.length; i++) {\r\n const prodItem = prodList[i]\r\n const prodObj = JSON.parse(JSON.stringify(prodItem)) as UTSJSONObject\r\n const prodId = safeGetString(prodObj, 'id')\r\n \r\n // 只统计浏览过的商品\r\n let found = false\r\n for (let j = 0; j < productIds.length; j++) {\r\n if (productIds[j] == prodId) {\r\n found = true\r\n break\r\n }\r\n }\r\n if (!found) continue\r\n \r\n const catId = safeGetString(prodObj, 'category_id')\r\n if (catId.length > 0 && categoryIds.indexOf(catId) < 0) {\r\n categoryIds.push(catId)\r\n if (categoryIds.length >= limit) break\r\n }\r\n }\r\n \r\n return categoryIds\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5753','获取用户浏览分类失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 智能推荐:综合用户搜索历史、浏览历史、热销商品\r\n async getSmartRecommendations(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5761','[getSmartRecommendations] 开始获取智能推荐...')\r\n \r\n const products: Product[] = []\r\n const addedIds = new Set()\r\n \r\n // 1. 根据用户搜索历史推荐商品(权重最高)\r\n const searchHistory = await this.getUserSearchHistory(5)\r\n __f__('log','at utils/supabaseService.uts:5768','[getSmartRecommendations] 用户搜索历史:', searchHistory)\r\n \r\n if (searchHistory.length > 0) {\r\n // 根据搜索关键词查找商品\r\n const keywordProducts = await this.searchProductsByKeywords(searchHistory, limit)\r\n for (let i = 0; i < keywordProducts.length; i++) {\r\n const prod = keywordProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n }\r\n }\r\n }\r\n \r\n // 2. 根据用户浏览历史推荐相似分类商品\r\n if (products.length < limit) {\r\n const browseCategories = await this.getUserBrowseCategories(3)\r\n __f__('log','at utils/supabaseService.uts:5785','[getSmartRecommendations] 用户浏览分类:', browseCategories)\r\n \r\n if (browseCategories.length > 0) {\r\n const categoryProducts = await this.getProductsByCategories(browseCategories, limit - products.length)\r\n for (let i = 0; i < categoryProducts.length; i++) {\r\n const prod = categoryProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 3. 补充热销商品\r\n if (products.length < limit) {\r\n const hotProducts = await this.getHotProducts(limit - products.length + 5)\r\n for (let i = 0; i < hotProducts.length; i++) {\r\n const prod = hotProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n // 4. 如果还不够,用普通商品补充\r\n if (products.length < limit) {\r\n const moreProducts = await this.getProductsByPrice(limit - products.length + 5, false)\r\n for (let i = 0; i < moreProducts.length; i++) {\r\n const prod = moreProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:5825','[getSmartRecommendations] 返回商品数量:', products.length)\r\n return products.slice(0, limit)\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5828','获取智能推荐失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 根据关键词列表搜索商品\r\n async searchProductsByKeywords(keywords: string[], limit: number): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as Product[]\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = response.data as any[]\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = prodObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 检查是否匹配任何关键词\r\n const name = safeGetString(prodObj, 'name').toLowerCase()\r\n const desc = safeGetString(prodObj, 'description').toLowerCase()\r\n \r\n let matched = false\r\n for (let j = 0; j < keywords.length; j++) {\r\n const keyword = keywords[j].toLowerCase()\r\n if (name.indexOf(keyword) >= 0 || desc.indexOf(keyword) >= 0) {\r\n matched = true\r\n break\r\n }\r\n }\r\n \r\n if (!matched) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n return products\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5883','根据关键词搜索商品失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 根据分类列表获取商品\r\n async getProductsByCategories(categoryIds: string[], limit: number): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as Product[]\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = response.data as any[]\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = prodObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 手动过滤 category_id\r\n const rawCatId = prodObj.get('category_id')\r\n const itemCatId = (typeof rawCatId == 'string') ? (rawCatId as string) : ''\r\n \r\n let matched = false\r\n for (let j = 0; j < categoryIds.length; j++) {\r\n if (itemCatId == categoryIds[j]) {\r\n matched = true\r\n break\r\n }\r\n }\r\n \r\n if (!matched) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n return products\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5937','根据分类获取商品失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 记录用户搜索行为\r\n async recordSearch(keyword: string, resultCount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n const searchRecord = new UTSJSONObject()\r\n searchRecord.set('keyword', keyword)\r\n searchRecord.set('result_count', resultCount)\r\n if (userId != null) {\r\n searchRecord.set('user_id', userId)\r\n }\r\n \r\n await supa\r\n .from('ml_search_history')\r\n .insert(searchRecord)\r\n .execute()\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5958','记录搜索失败:', e)\r\n }\r\n }\r\n\r\n // 记录用户浏览行为\r\n async recordBrowse(productId: string, duration: number = 0): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return\r\n \r\n const browseRecord = new UTSJSONObject()\r\n browseRecord.set('user_id', userId)\r\n browseRecord.set('product_id', productId)\r\n browseRecord.set('browse_duration', duration)\r\n browseRecord.set('created_at', new Date().toISOString())\r\n \r\n // UTS Android不支持upsert,使用insert\r\n await supa\r\n .from('ml_browse_history')\r\n .insert(browseRecord)\r\n .execute()\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5980','记录浏览失败:', e)\r\n }\r\n }\r\n\r\n // ==================== 签到相关API ====================\r\n\r\n // 用户签到\r\n async signin(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('points', 0)\r\n result.set('continuous_days', 0)\r\n result.set('bonus_points', 0)\r\n result.set('total_points', 0)\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n const today = new Date()\r\n const todayStr = today.toISOString().split('T')[0]\r\n const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000)\r\n const yesterdayStr = yesterday.toISOString().split('T')[0]\r\n\r\n // 检查今天是否已签到\r\n const checkRes = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', todayStr)\r\n .execute()\r\n\r\n if (checkRes.error != null) {\r\n result.set('message', '查询签到状态失败')\r\n return result\r\n }\r\n\r\n const checkData = checkRes.data as any[]\r\n if (checkData != null && checkData.length > 0) {\r\n result.set('message', '今天已签到')\r\n return result\r\n }\r\n\r\n // 查询昨天是否签到,计算连续天数\r\n const yesterdayRes = await supa\r\n .from('ml_signin_records')\r\n .select('continuous_days')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', yesterdayStr)\r\n .execute()\r\n\r\n let continuousDays = 1\r\n if (yesterdayRes.error == null && yesterdayRes.data != null) {\r\n const yData = yesterdayRes.data as any[]\r\n if (yData.length > 0) {\r\n const yItem = yData[0]\r\n let yDays = 0\r\n if (yItem instanceof UTSJSONObject) {\r\n yDays = yItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const yObj = JSON.parse(JSON.stringify(yItem)) as UTSJSONObject\r\n yDays = yObj.getNumber('continuous_days') ?? 0\r\n }\r\n continuousDays = yDays + 1\r\n }\r\n }\r\n\r\n // 计算积分\r\n let pointsEarned = 5 // 每日签到基础积分\r\n let bonusPoints = 0\r\n\r\n if (continuousDays >= 30) {\r\n bonusPoints = 100\r\n } else if (continuousDays >= 7) {\r\n bonusPoints = 20\r\n }\r\n\r\n const totalPointsEarned = pointsEarned + bonusPoints\r\n\r\n // 插入签到记录\r\n const signinRecord = new UTSJSONObject()\r\n signinRecord.set('user_id', userId!)\r\n signinRecord.set('signin_date', todayStr)\r\n signinRecord.set('points_earned', pointsEarned)\r\n signinRecord.set('bonus_points', bonusPoints)\r\n signinRecord.set('continuous_days', continuousDays)\r\n\r\n const insertRes = await supa\r\n .from('ml_signin_records')\r\n .insert(signinRecord)\r\n .execute()\r\n\r\n if (insertRes.error != null) {\r\n result.set('message', '签到失败')\r\n return result\r\n }\r\n\r\n // 更新用户积分\r\n await this.addPoints(userId!, totalPointsEarned, 'signin', '每日签到')\r\n\r\n // 获取最新积分\r\n const newPoints = await this.getUserPoints()\r\n\r\n result.set('success', true)\r\n result.set('points', pointsEarned)\r\n result.set('continuous_days', continuousDays)\r\n result.set('bonus_points', bonusPoints)\r\n result.set('total_points', newPoints)\r\n result.set('message', '签到成功')\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6096','签到异常:', e)\r\n result.set('message', '签到异常')\r\n return result\r\n }\r\n }\r\n\r\n // 获取签到记录(当月)\r\n async getSigninRecords(year: number, month: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const startDate = `${year}-${month.toString().padStart(2, '0')}-01`\r\n const endDate = month === 12 \r\n ? `${year + 1}-01-01` \r\n : `${year}-${(month + 1).toString().padStart(2, '0')}-01`\r\n\r\n const response = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .gte('signin_date', startDate)\r\n .lt('signin_date', endDate)\r\n .order('signin_date', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6132','获取签到记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取今日签到状态\r\n async getTodaySigninStatus(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('signed', false)\r\n result.set('continuous_days', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const today = new Date().toISOString().split('T')[0]\r\n\r\n // 检查今天是否签到\r\n const todayRes = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', today)\r\n .execute()\r\n\r\n if (todayRes.error == null && todayRes.data != null) {\r\n const tData = todayRes.data as any[]\r\n if (tData.length > 0) {\r\n const tItem = tData[0]\r\n let cDays = 0\r\n if (tItem instanceof UTSJSONObject) {\r\n cDays = tItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const tObj = JSON.parse(JSON.stringify(tItem)) as UTSJSONObject\r\n cDays = tObj.getNumber('continuous_days') ?? 0\r\n }\r\n result.set('signed', true)\r\n result.set('continuous_days', cDays)\r\n return result\r\n }\r\n }\r\n\r\n // 今天未签到,获取最近的连续签到天数\r\n const lastRes = await supa\r\n .from('ml_signin_records')\r\n .select('continuous_days, signin_date')\r\n .eq('user_id', userId!)\r\n .order('signin_date', { ascending: false })\r\n .limit(1)\r\n .execute()\r\n\r\n if (lastRes.error == null && lastRes.data != null) {\r\n const lData = lastRes.data as any[]\r\n if (lData.length > 0) {\r\n const lItem = lData[0]\r\n let lastDate = ''\r\n let lastDays = 0\r\n if (lItem instanceof UTSJSONObject) {\r\n lastDate = lItem.getString('signin_date') ?? ''\r\n lastDays = lItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const lObj = JSON.parse(JSON.stringify(lItem)) as UTSJSONObject\r\n lastDate = lObj.getString('signin_date') ?? ''\r\n lastDays = lObj.getNumber('continuous_days') ?? 0\r\n }\r\n\r\n const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString().split('T')[0]\r\n if (lastDate === yesterday) {\r\n result.set('continuous_days', lastDays)\r\n }\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6208','获取签到状态失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // ==================== 积分兑换相关API ====================\r\n\r\n // 获取积分兑换商品列表\r\n async getPointProducts(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_point_products')\r\n .select('*')\r\n .eq('status', 1)\r\n .gt('stock', 0)\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6233','获取积分商品失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 积分兑换\r\n async exchangeProduct(productId: string, quantity: number, addressSnapshot: UTSJSONObject | null): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n // 获取商品信息\r\n const productRes = await supa\r\n .from('ml_point_products')\r\n .select('*')\r\n .eq('id', productId)\r\n .single()\r\n .execute()\r\n\r\n if (productRes.error != null || productRes.data == null) {\r\n result.set('message', '商品不存在')\r\n return result\r\n }\r\n\r\n const productRaw = productRes.data\r\n let pointsRequired = 0\r\n let stock = 0\r\n let productType = ''\r\n \r\n // 检查是否是数组,如果是则取第一个元素\r\n let productObj: UTSJSONObject | null = null\r\n if (Array.isArray(productRaw)) {\r\n const arr = productRaw as any[]\r\n if (arr.length > 0) {\r\n const firstItem = arr[0]\r\n if (firstItem instanceof UTSJSONObject) {\r\n productObj = firstItem\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(firstItem)) as UTSJSONObject\r\n }\r\n }\r\n } else {\r\n if (productRaw instanceof UTSJSONObject) {\r\n productObj = productRaw\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(productRaw)) as UTSJSONObject\r\n }\r\n }\r\n \r\n // 使用 UTSJSONObject 方法访问属性\r\n if (productObj != null) {\r\n pointsRequired = productObj.getNumber('points_required') ?? 0\r\n stock = productObj.getNumber('stock') ?? 0\r\n productType = productObj.getString('product_type') ?? ''\r\n }\r\n\r\n const totalPoints = pointsRequired * quantity\r\n\r\n // 检查库存\r\n if (stock < quantity) {\r\n result.set('message', '库存不足')\r\n return result\r\n }\r\n\r\n // 检查积分\r\n const userPoints = await this.getUserPoints()\r\n if (userPoints < totalPoints) {\r\n result.set('message', '积分不足')\r\n return result\r\n }\r\n\r\n // 创建兑换记录\r\n const exchangeRecord = new UTSJSONObject()\r\n exchangeRecord.set('user_id', userId!)\r\n exchangeRecord.set('product_id', productId)\r\n exchangeRecord.set('quantity', quantity)\r\n exchangeRecord.set('points_used', totalPoints)\r\n exchangeRecord.set('status', 0)\r\n if (addressSnapshot != null && productType === 'physical') {\r\n exchangeRecord.set('address_snapshot', JSON.stringify(addressSnapshot))\r\n }\r\n\r\n const insertRes = await supa\r\n .from('ml_point_exchanges')\r\n .insert(exchangeRecord)\r\n .execute()\r\n\r\n if (insertRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6329','[exchangeProduct] 创建兑换记录失败:', insertRes.error)\r\n result.set('message', '兑换失败')\r\n return result\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:6334','[exchangeProduct] 兑换记录创建成功')\r\n\r\n // 扣减库存\r\n __f__('log','at utils/supabaseService.uts:6337','[exchangeProduct] 准备扣减库存')\r\n __f__('log','at utils/supabaseService.uts:6338','[exchangeProduct] productId 类型:', typeof productId)\r\n __f__('log','at utils/supabaseService.uts:6339','[exchangeProduct] productId 值:', productId)\r\n __f__('log','at utils/supabaseService.uts:6340','[exchangeProduct] 当前库存:', stock, ', 扣减数量:', quantity)\r\n \r\n // 使用 UTSJSONObject 替代 Record\r\n const stockUpdateData = new UTSJSONObject()\r\n stockUpdateData.set('stock', stock - quantity)\r\n \r\n __f__('log','at utils/supabaseService.uts:6346','[exchangeProduct] stockUpdateData:', stockUpdateData)\r\n __f__('log','at utils/supabaseService.uts:6347','[exchangeProduct] stockUpdateData 类型:', typeof stockUpdateData)\r\n \r\n // 先查询确认商品存在\r\n const checkProduct = await supa\r\n .from('ml_point_products')\r\n .select('id, stock')\r\n .eq('id', productId)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:6355','[exchangeProduct] 查询商品结果:', checkProduct.data, 'error:', checkProduct.error)\r\n \r\n const stockUpdateRes = await supa\r\n .from('ml_point_products')\r\n .update(stockUpdateData)\r\n .eq('id', productId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:6363','[exchangeProduct] 库存更新结果 error:', stockUpdateRes.error)\r\n __f__('log','at utils/supabaseService.uts:6364','[exchangeProduct] 库存更新结果 data:', stockUpdateRes.data)\r\n \r\n if (stockUpdateRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6367','[exchangeProduct] 扣减库存失败:', stockUpdateRes.error)\r\n }\r\n\r\n // 扣减积分\r\n __f__('log','at utils/supabaseService.uts:6371','[exchangeProduct] 准备扣减积分, userId:', userId, ', 积分:', totalPoints)\r\n const deductResult = await this.deductPoints(userId!, totalPoints, 'redeem', '积分兑换商品')\r\n __f__('log','at utils/supabaseService.uts:6373','[exchangeProduct] 积分扣减结果:', deductResult)\r\n \r\n if (!deductResult) {\r\n __f__('error','at utils/supabaseService.uts:6376','[exchangeProduct] 扣减积分失败')\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:6379','[exchangeProduct] 兑换流程完成')\r\n result.set('success', true)\r\n result.set('message', '兑换成功')\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6384','积分兑换异常:', e)\r\n result.set('message', '兑换异常')\r\n return result\r\n }\r\n }\r\n\r\n // 获取兑换记录\r\n async getExchangeRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_point_exchanges')\r\n .select('*, product:ml_point_products(name, image_url, product_type)')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6413','获取兑换记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 评价相关API ====================\r\n\r\n // 获取商品评价列表\r\n async getProductReviews(productId: string, page: number = 1, limit: number = 10, rating: number = 0, hasImage: boolean = false): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('total', 0)\r\n result.set('page', page)\r\n result.set('limit', limit)\r\n result.set('data', [] as any[])\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n \r\n let query = supa\r\n .from('ml_product_reviews')\r\n .select('*, user:auth.users!ml_product_reviews_user_id_fkey(raw_user_meta_data)', { count: 'exact' })\r\n .eq('product_id', productId)\r\n\r\n if (rating > 0) {\r\n query = query.eq('rating', rating)\r\n }\r\n\r\n if (hasImage) {\r\n query = query.neq('images', '[]')\r\n }\r\n\r\n const offset = (page - 1) * limit\r\n const response = await query\r\n .order('created_at', { ascending: false })\r\n .range(offset, offset + limit - 1)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6452','获取评价列表失败:', response.error)\r\n return result\r\n }\r\n\r\n const total = response.total ?? 0\r\n const reviews = response.data as any[]\r\n\r\n // 处理评价数据\r\n const processedReviews: any[] = []\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const processed = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n\r\n // 处理用户信息\r\n const userRaw = processed.get('user')\r\n let userName = '匿名用户'\r\n let userAvatar = ''\r\n\r\n if (userRaw != null) {\r\n let userData: UTSJSONObject\r\n if (userRaw instanceof UTSJSONObject) {\r\n userData = userRaw as UTSJSONObject\r\n } else {\r\n userData = JSON.parse(JSON.stringify(userRaw)) as UTSJSONObject\r\n }\r\n const metaData = userData.get('raw_user_meta_data')\r\n if (metaData != null) {\r\n let metaObj: UTSJSONObject\r\n if (metaData instanceof UTSJSONObject) {\r\n metaObj = metaData as UTSJSONObject\r\n } else {\r\n metaObj = JSON.parse(JSON.stringify(metaData)) as UTSJSONObject\r\n }\r\n userName = metaObj.getString('nickname') ?? metaObj.getString('name') ?? '匿名用户'\r\n userAvatar = metaObj.getString('avatar_url') ?? ''\r\n }\r\n }\r\n\r\n // 检查是否匿名\r\n const isAnonymous = processed.getBoolean('is_anonymous') ?? false\r\n if (isAnonymous) {\r\n userName = '匿名用户'\r\n userAvatar = ''\r\n }\r\n\r\n processed.set('user_name', userName)\r\n processed.set('user_avatar', userAvatar)\r\n\r\n // 检查当前用户是否点赞\r\n let isLiked = false\r\n if (userId != null) {\r\n const likeRes = await supa\r\n .from('ml_review_likes')\r\n .select('id')\r\n .eq('review_id', processed.getString('id') ?? '')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n if (likeRes.error == null && likeRes.data != null) {\r\n const likeData = likeRes.data as any[]\r\n isLiked = likeData.length > 0\r\n }\r\n }\r\n processed.set('is_liked', isLiked)\r\n\r\n processedReviews.push(processed)\r\n }\r\n\r\n result.set('total', total)\r\n result.set('data', processedReviews)\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6524','获取评价列表异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取商品评价统计\r\n async getReviewStats(productId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('total_count', 0)\r\n result.set('avg_rating', 0)\r\n result.set('good_rate', 0)\r\n result.set('rating_distribution', new UTSJSONObject())\r\n result.set('tags', [] as any[])\r\n\r\n try {\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .select('rating')\r\n .eq('product_id', productId)\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n return result\r\n }\r\n\r\n const reviews = response.data as any[]\r\n const totalCount = reviews.length\r\n\r\n if (totalCount === 0) return result\r\n\r\n let totalRating = 0\r\n let goodCount = 0\r\n const distribution: Map = new Map()\r\n distribution.set(1, 0)\r\n distribution.set(2, 0)\r\n distribution.set(3, 0)\r\n distribution.set(4, 0)\r\n distribution.set(5, 0)\r\n\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n let rating = 0\r\n if (review instanceof UTSJSONObject) {\r\n rating = review.getNumber('rating') ?? 0\r\n } else {\r\n const rObj = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n rating = rObj.getNumber('rating') ?? 0\r\n }\r\n\r\n totalRating += rating\r\n if (rating >= 4) goodCount++\r\n\r\n const currentCount = distribution.get(rating) ?? 0\r\n distribution.set(rating, currentCount + 1)\r\n }\r\n\r\n const avgRating = Math.round((totalRating / totalCount) * 10) / 10\r\n const goodRate = Math.round((goodCount / totalCount) * 100)\r\n\r\n const distObj = new UTSJSONObject()\r\n distribution.forEach((value: number, key: number) => {\r\n distObj.set(key.toString(), value)\r\n })\r\n\r\n result.set('total_count', totalCount)\r\n result.set('avg_rating', avgRating)\r\n result.set('good_rate', goodRate)\r\n result.set('rating_distribution', distObj)\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6595','获取评价统计异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 评价点赞\r\n async toggleReviewLike(reviewId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('is_liked', false)\r\n result.set('like_count', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return result\r\n }\r\n\r\n // 检查是否已点赞\r\n const checkRes = await supa\r\n .from('ml_review_likes')\r\n .select('id')\r\n .eq('review_id', reviewId)\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n let isLiked = false\r\n if (checkRes.error == null && checkRes.data != null) {\r\n const checkData = checkRes.data as any[]\r\n isLiked = checkData.length > 0\r\n }\r\n\r\n if (isLiked) {\r\n // 取消点赞\r\n await supa\r\n .from('ml_review_likes')\r\n .eq('review_id', reviewId)\r\n .eq('user_id', userId!)\r\n .delete()\r\n .execute()\r\n\r\n // 更新点赞数 - 直接查询并更新\r\n const currentCountRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n \r\n if (currentCountRes.error == null && currentCountRes.data != null) {\r\n let currentCount = 0\r\n if (currentCountRes.data instanceof UTSJSONObject) {\r\n currentCount = currentCountRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const countObj = JSON.parse(JSON.stringify(currentCountRes.data)) as UTSJSONObject\r\n currentCount = countObj.getNumber('like_count') ?? 0\r\n }\r\n \r\n const updateData = new UTSJSONObject()\r\n updateData.set('like_count', Math.max(0, currentCount - 1))\r\n await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .execute()\r\n }\r\n\r\n result.set('is_liked', false)\r\n } else {\r\n // 添加点赞\r\n const likeRecord = new UTSJSONObject()\r\n likeRecord.set('review_id', reviewId)\r\n likeRecord.set('user_id', userId!)\r\n\r\n await supa\r\n .from('ml_review_likes')\r\n .insert(likeRecord)\r\n .execute()\r\n\r\n // 更新点赞数 - 直接查询并更新\r\n const currentCountRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n \r\n if (currentCountRes.error == null && currentCountRes.data != null) {\r\n let currentCount = 0\r\n if (currentCountRes.data instanceof UTSJSONObject) {\r\n currentCount = currentCountRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const countObj = JSON.parse(JSON.stringify(currentCountRes.data)) as UTSJSONObject\r\n currentCount = countObj.getNumber('like_count') ?? 0\r\n }\r\n \r\n const updateData = new UTSJSONObject()\r\n updateData.set('like_count', currentCount + 1)\r\n await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .execute()\r\n }\r\n\r\n result.set('is_liked', true)\r\n }\r\n\r\n // 获取最新点赞数\r\n const reviewRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n\r\n if (reviewRes.error == null && reviewRes.data != null) {\r\n let likeCount = 0\r\n if (reviewRes.data instanceof UTSJSONObject) {\r\n likeCount = reviewRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const rObj = JSON.parse(JSON.stringify(reviewRes.data)) as UTSJSONObject\r\n likeCount = rObj.getNumber('like_count') ?? 0\r\n }\r\n result.set('like_count', likeCount)\r\n }\r\n\r\n result.set('success', true)\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6726','评价点赞异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取我的评价列表\r\n async getMyReviews(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .select(`\r\n *,\r\n product:ml_products!ml_product_reviews_product_id_fkey(name, main_image_url)\r\n `)\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const reviews = response.data as any[]\r\n const result: any[] = []\r\n\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const processed = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n\r\n // 处理商品信息\r\n const productRaw = processed.get('product')\r\n let productName = ''\r\n let productImage = ''\r\n if (productRaw != null) {\r\n let productObj: UTSJSONObject\r\n if (productRaw instanceof UTSJSONObject) {\r\n productObj = productRaw as UTSJSONObject\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(productRaw)) as UTSJSONObject\r\n }\r\n productName = productObj.getString('name') ?? ''\r\n productImage = productObj.getString('main_image_url') ?? ''\r\n }\r\n processed.set('product_name', productName)\r\n processed.set('product_image', productImage)\r\n\r\n // 计算是否可追加评价(7天内)\r\n const createdAt = processed.getString('created_at') ?? ''\r\n const createdTime = new Date(createdAt).getTime()\r\n const now = Date.now()\r\n const sevenDays = 7 * 24 * 60 * 60 * 1000\r\n const canAppend = (now - createdTime) < sevenDays && (processed.getString('append_content') ?? '') === ''\r\n processed.set('can_append', canAppend)\r\n\r\n // 计算是否可编辑(24小时内)\r\n const oneDay = 24 * 60 * 60 * 1000\r\n const canEdit = (now - createdTime) < oneDay\r\n processed.set('can_edit', canEdit)\r\n\r\n result.push(processed)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6797','获取我的评价失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 追加评价\r\n async appendReview(reviewId: string, content: string, images: string[]): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('append_content', content)\r\n updateData.set('append_images', JSON.stringify(images))\r\n updateData.set('append_at', new Date().toISOString())\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n return response.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6823','追加评价失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除评价\r\n async deleteReview(reviewId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .delete()\r\n .eq('id', reviewId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n return response.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6843','删除评价失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==================== 积分辅助方法 ====================\r\n\r\n // 增加积分\r\n private async addPoints(userId: string, points: number, type: string, description: string): Promise {\r\n try {\r\n // 获取当前积分\r\n const currentPoints = await this.getUserPoints()\r\n const newPoints = currentPoints + points\r\n const totalEarned = await this.getTotalEarned()\r\n\r\n // 检查用户积分记录是否存在\r\n const checkRes = await supa\r\n .from('ml_user_points')\r\n .select('user_id')\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n\r\n const exists = checkRes.error == null && checkRes.data != null && (checkRes.data as any[]).length > 0\r\n\r\n if (exists) {\r\n // 更新现有记录\r\n const updateData = new UTSJSONObject()\r\n updateData.set('points', newPoints)\r\n updateData.set('total_earned', totalEarned + points)\r\n updateData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .update(updateData)\r\n .eq('user_id', userId)\r\n .execute()\r\n } else {\r\n // 插入新记录\r\n const insertData = new UTSJSONObject()\r\n insertData.set('user_id', userId)\r\n insertData.set('points', newPoints)\r\n insertData.set('total_earned', points)\r\n insertData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .insert(insertData)\r\n .execute()\r\n }\r\n\r\n // 记录积分变动\r\n const record = new UTSJSONObject()\r\n record.set('user_id', userId)\r\n record.set('points', points)\r\n record.set('type', type)\r\n record.set('description', description)\r\n\r\n await supa\r\n .from('ml_point_records')\r\n .insert(record)\r\n .execute()\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6908','增加积分失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 扣减积分\r\n private async deductPoints(userId: string, points: number, type: string, description: string): Promise {\r\n try {\r\n const currentPoints = await this.getUserPoints()\r\n const newPoints = currentPoints - points\r\n\r\n if (newPoints < 0) return false\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('points', newPoints)\r\n updateData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .update(updateData)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n const record = new UTSJSONObject()\r\n record.set('user_id', userId)\r\n record.set('points', -points)\r\n record.set('type', type)\r\n record.set('description', description)\r\n\r\n await supa\r\n .from('ml_point_records')\r\n .insert(record)\r\n .execute()\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6944','扣减积分失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 获取历史累计积分\r\n private async getTotalEarned(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return 0\r\n\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('total_earned')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n\r\n if (res.error == null && res.data != null) {\r\n if (res.data instanceof UTSJSONObject) {\r\n return res.data.getNumber('total_earned') ?? 0\r\n } else {\r\n const obj = JSON.parse(JSON.stringify(res.data)) as UTSJSONObject\r\n return obj.getNumber('total_earned') ?? 0\r\n }\r\n }\r\n return 0\r\n } catch (e) {\r\n return 0\r\n }\r\n }\r\n\r\n // ==================== 积分过期相关API ====================\r\n\r\n // 获取即将过期积分\r\n async getExpiringPoints(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('expiring_points', 0)\r\n result.set('expiring_date', null)\r\n result.set('details', [] as any[])\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n // 查询30天内即将过期的积分记录\r\n const now = new Date()\r\n const thirtyDaysLater = new Date(now.getTime() + 30 * 24 * 60 * 60 * 1000)\r\n const nowStr = now.toISOString()\r\n const laterStr = thirtyDaysLater.toISOString()\r\n\r\n const res = await supa\r\n .from('ml_point_records')\r\n .select('points, description, expires_at, created_at')\r\n .eq('user_id', userId!)\r\n .gt('points', 0)\r\n .eq('is_expired', false)\r\n .not('expires_at', 'is', null)\r\n .gte('expires_at', nowStr)\r\n .lte('expires_at', laterStr)\r\n .order('expires_at', { ascending: true })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:7008','获取即将过期积分失败:', res.error)\r\n return result\r\n }\r\n\r\n if (res.data != null && Array.isArray(res.data)) {\r\n const records = res.data as any[]\r\n let totalExpiring = 0\r\n let earliestDate: string | null = null\r\n const details: any[] = []\r\n\r\n for (let i = 0; i < records.length; i++) {\r\n const record = records[i]\r\n let recordObj: UTSJSONObject\r\n if (record instanceof UTSJSONObject) {\r\n recordObj = record\r\n } else {\r\n recordObj = JSON.parse(JSON.stringify(record)) as UTSJSONObject\r\n }\r\n\r\n const points = recordObj.getNumber('points') ?? 0\r\n const expiresAt = recordObj.getString('expires_at') ?? ''\r\n\r\n totalExpiring += points\r\n\r\n if (earliestDate == null || expiresAt < earliestDate) {\r\n earliestDate = expiresAt\r\n }\r\n\r\n details.push({\r\n points: points,\r\n description: recordObj.getString('description'),\r\n expires_at: expiresAt,\r\n created_at: recordObj.getString('created_at') ?? ''\r\n })\r\n }\r\n\r\n result.set('expiring_points', totalExpiring)\r\n result.set('expiring_date', earliestDate != null ? earliestDate.split('T')[0] : null)\r\n result.set('details', details)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7051','获取即将过期积分异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取积分概览(包含即将过期积分)\r\n async getPointsOverview(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('current_points', 0)\r\n result.set('total_earned', 0)\r\n result.set('expiring_points', 0)\r\n result.set('expiring_date', null)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('points, total_earned, expiring_points, expiring_date')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n\r\n if (res.error == null && res.data != null) {\r\n let data: UTSJSONObject\r\n if (res.data instanceof UTSJSONObject) {\r\n data = res.data as UTSJSONObject\r\n } else {\r\n data = JSON.parse(JSON.stringify(res.data)) as UTSJSONObject\r\n }\r\n\r\n result.set('current_points', data.getNumber('points') ?? 0)\r\n result.set('total_earned', data.getNumber('total_earned') ?? 0)\r\n result.set('expiring_points', data.getNumber('expiring_points') ?? 0)\r\n result.set('expiring_date', data.getString('expiring_date'))\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7091','获取积分概览异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取过期提醒通知列表\r\n async getExpiryNotifications(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_point_expiry_notifications')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('is_sent', false)\r\n .order('expiry_date', { ascending: true })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7120','获取过期提醒失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 标记过期提醒为已读\r\n async markNotificationRead(notificationId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_point_expiry_notifications')\r\n .update({ is_sent: true, sent_at: new Date().toISOString() })\r\n .eq('id', notificationId)\r\n .execute()\r\n\r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7137','标记通知失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 手动触发积分维护任务(管理员功能)\r\n // 注意:UTS不支持rpc,此功能需要在Supabase后台手动执行或通过其他方式触发\r\n async triggerPointsMaintenance(): Promise {\r\n __f__('warn','at utils/supabaseService.uts:7145','triggerPointsMaintenance: UTS不支持rpc调用,请在Supabase后台手动执行 daily_points_maintenance()')\r\n return false\r\n }\r\n\r\n // ==================== 推销模式 - 商家配置API ====================\r\n\r\n // 获取商家推销配置\r\n async getMerchantPromotionConfig(merchantId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('promotion_enabled', false)\r\n result.set('share_free_enabled', false)\r\n result.set('distribution_enabled', false)\r\n result.set('required_count', 4)\r\n result.set('reward_type', 'product_price')\r\n result.set('fixed_reward_amount', 0)\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_merchant_promotion_config')\r\n .select('*')\r\n .eq('merchant_id', merchantId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n \r\n if (itemAny instanceof UTSJSONObject) {\r\n result.set('promotion_enabled', itemAny.getBoolean('promotion_enabled') ?? false)\r\n result.set('share_free_enabled', itemAny.getBoolean('share_free_enabled') ?? false)\r\n result.set('distribution_enabled', itemAny.getBoolean('distribution_enabled') ?? false)\r\n result.set('required_count', itemAny.getNumber('required_count') ?? 4)\r\n result.set('reward_type', itemAny.getString('reward_type') ?? 'product_price')\r\n result.set('fixed_reward_amount', itemAny.getNumber('fixed_reward_amount') ?? 0)\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7186','获取商家推销配置失败:', e)\r\n }\r\n\r\n return result\r\n }\r\n\r\n // 检查商家是否开启分享免单\r\n async isShareFreeEnabled(merchantId: string): Promise {\r\n try {\r\n const config = await this.getMerchantPromotionConfig(merchantId)\r\n const promotionEnabled = config.get('promotion_enabled')\r\n const shareFreeEnabled = config.get('share_free_enabled')\r\n return (promotionEnabled === true || promotionEnabled === 'true') && \r\n (shareFreeEnabled === true || shareFreeEnabled === 'true')\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7201','检查分享免单状态失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 余额相关API ====================\r\n\r\n // 获取用户余额\r\n async getUserBalance(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('balance', 0)\r\n result.set('frozen_balance', 0)\r\n result.set('total_earned', 0)\r\n result.set('total_withdrawn', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const res = await supa\r\n .from('ml_user_balance')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n if (itemAny instanceof UTSJSONObject) {\r\n result.set('balance', itemAny.getNumber('balance') ?? 0)\r\n result.set('frozen_balance', itemAny.getNumber('frozen_balance') ?? 0)\r\n result.set('total_earned', itemAny.getNumber('total_earned') ?? 0)\r\n result.set('total_withdrawn', itemAny.getNumber('total_withdrawn') ?? 0)\r\n }\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7243','获取用户余额失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取余额变动记录\r\n async getBalanceRecords(page: number = 1, limit: number = 20): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const offset = (page - 1) * limit\r\n const res = await supa\r\n .from('ml_balance_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .range(offset, offset + limit - 1)\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7273','获取余额记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 分享免单相关API ====================\r\n\r\n // 创建分享记录\r\n async createShareRecord(productId: string, orderId: string, orderItemId: string | null, productName: string, productImage: string | null, productPrice: number): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('share_code', '')\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n // 生成分享码\r\n const shareCode = this.generateShareCode()\r\n\r\n const insertData = new UTSJSONObject()\r\n insertData.set('user_id', userId)\r\n insertData.set('product_id', productId)\r\n insertData.set('order_id', orderId)\r\n insertData.set('order_item_id', orderItemId)\r\n insertData.set('share_code', shareCode)\r\n insertData.set('product_name', productName)\r\n insertData.set('product_image', productImage)\r\n insertData.set('product_price', productPrice)\r\n insertData.set('required_count', 4)\r\n insertData.set('current_count', 0)\r\n insertData.set('status', 0)\r\n\r\n const res = await supa\r\n .from('ml_share_records')\r\n .insert(insertData)\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:7317','[createShareRecord] 插入失败:', res.error)\r\n __f__('error','at utils/supabaseService.uts:7318','[createShareRecord] 插入数据:', JSON.stringify(insertData))\r\n result.set('message', '创建分享记录失败: ' + (res.error.message ?? '未知错误'))\r\n return result\r\n }\r\n\r\n // 获取插入记录的id\r\n let insertedId = ''\r\n if (res.data != null && Array.isArray(res.data) && res.data.length > 0) {\r\n const inserted = res.data[0]\r\n let insertedObj: UTSJSONObject | null = null\r\n if (inserted instanceof UTSJSONObject) {\r\n insertedObj = inserted\r\n } else {\r\n insertedObj = JSON.parse(JSON.stringify(inserted)) as UTSJSONObject\r\n }\r\n insertedId = insertedObj.getString('id') ?? ''\r\n }\r\n\r\n result.set('success', true)\r\n result.set('id', insertedId)\r\n result.set('share_code', shareCode)\r\n result.set('message', '分享创建成功')\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7342','创建分享记录失败:', e)\r\n result.set('message', '创建分享记录异常')\r\n return result\r\n }\r\n }\r\n\r\n // 生成分享码\r\n private generateShareCode(): string {\r\n const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'\r\n let result = ''\r\n for (let i = 0; i < 8; i++) {\r\n const randomIndex = Math.floor(Math.random() * chars.length)\r\n result += chars.charAt(randomIndex)\r\n }\r\n return result\r\n }\r\n\r\n // 验证分享码\r\n async validateShareCode(shareCode: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('valid', false)\r\n result.set('share_record', null)\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('share_code', shareCode)\r\n .eq('status', 0)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n result.set('valid', true)\r\n result.set('share_record', arr[0])\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7384','验证分享码失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取我的分享记录\r\n async getMyShareRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7412','获取分享记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取分享详情\r\n async getShareDetail(shareId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('share_record', null)\r\n result.set('secondary_purchases', [] as any[])\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('id', shareId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n result.set('share_record', arr[0])\r\n }\r\n }\r\n\r\n // 获取二级购买记录\r\n const purchasesRes = await supa\r\n .from('ml_secondary_purchases')\r\n .select('*')\r\n .eq('share_record_id', shareId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (purchasesRes.error == null && purchasesRes.data != null) {\r\n result.set('secondary_purchases', purchasesRes.data)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7453','获取分享详情失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取免单奖励记录\r\n async getFreeOrderRewards(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_free_order_rewards')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7481','获取免单奖励记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 会员等级相关API ====================\r\n\r\n // 获取会员等级列表\r\n async getMemberLevels(): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_member_levels')\r\n .select('*')\r\n .eq('status', 1)\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7506','获取会员等级列表失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户会员信息\r\n async getUserMemberInfo(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('member_level', 0)\r\n result.set('level_name', '普通会员')\r\n result.set('discount', 1.0)\r\n result.set('total_spent', 0)\r\n result.set('next_level', null)\r\n result.set('progress_percent', 0)\r\n result.set('manual_level', false)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n // 获取用户信息\r\n const userRes = await supa\r\n .from('ml_user_profiles')\r\n .select('member_level, total_spent, manual_level')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n let memberLevel = 0\r\n let totalSpent = 0\r\n let manualLevel = false\r\n\r\n if (userRes.error == null && userRes.data != null && Array.isArray(userRes.data)) {\r\n const arr = userRes.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n if (itemAny instanceof UTSJSONObject) {\r\n memberLevel = itemAny.getNumber('member_level') ?? 0\r\n totalSpent = itemAny.getNumber('total_spent') ?? 0\r\n manualLevel = itemAny.getBoolean('manual_level') ?? false\r\n }\r\n }\r\n }\r\n\r\n // 获取等级信息\r\n const levels = await this.getMemberLevels()\r\n let levelName = '普通会员'\r\n let discount = 1.0\r\n let nextLevel: UTSJSONObject | null = null\r\n let progressPercent = 0\r\n\r\n for (let i = 0; i < levels.length; i++) {\r\n const level = levels[i]\r\n const levelAny = level as any\r\n let levelId = 0\r\n let levelNameStr = ''\r\n let levelDiscount = 1.0\r\n let levelMinAmount = 0\r\n\r\n if (levelAny instanceof UTSJSONObject) {\r\n levelId = levelAny.getNumber('id') ?? 0\r\n levelNameStr = levelAny.getString('name') ?? ''\r\n levelDiscount = levelAny.getNumber('discount') ?? 1.0\r\n levelMinAmount = levelAny.getNumber('min_amount') ?? 0\r\n }\r\n\r\n if (levelId === memberLevel) {\r\n levelName = levelNameStr\r\n discount = levelDiscount\r\n }\r\n\r\n // 找下一等级\r\n if (levelId > memberLevel && nextLevel == null) {\r\n const nextLevelObj = new UTSJSONObject()\r\n nextLevelObj.set('id', levelId)\r\n nextLevelObj.set('name', levelNameStr)\r\n nextLevelObj.set('min_amount', levelMinAmount)\r\n nextLevel = nextLevelObj\r\n\r\n // 计算进度\r\n if (levelMinAmount > 0) {\r\n const currentLevelMinAmount = this.getCurrentLevelMinAmount(levels, memberLevel)\r\n const progressRange = levelMinAmount - currentLevelMinAmount\r\n const currentProgress = totalSpent - currentLevelMinAmount\r\n progressPercent = Math.min(100, Math.round((currentProgress / progressRange) * 100))\r\n }\r\n }\r\n }\r\n\r\n result.set('member_level', memberLevel)\r\n result.set('level_name', levelName)\r\n result.set('discount', discount)\r\n result.set('total_spent', totalSpent)\r\n result.set('next_level', nextLevel)\r\n result.set('progress_percent', progressPercent)\r\n result.set('manual_level', manualLevel)\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7607','获取用户会员信息失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取当前等级的最低消费金额\r\n private getCurrentLevelMinAmount(levels: any[], currentLevel: number): number {\r\n for (let i = 0; i < levels.length; i++) {\r\n const level = levels[i]\r\n const levelAny = level as any\r\n if (levelAny instanceof UTSJSONObject) {\r\n const levelId = levelAny.getNumber('id') ?? 0\r\n if (levelId === currentLevel) {\r\n return levelAny.getNumber('min_amount') ?? 0\r\n }\r\n }\r\n }\r\n return 0\r\n }\r\n\r\n // 获取会员等级变更记录\r\n async getMemberLevelLogs(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_member_level_logs')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7650','获取会员等级变更记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n}\r\n\r\n// 导出单例实例\r\nexport const supabaseService = new SupabaseService()\r\n\r\n// 默认导出\r\nexport default supabaseService\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["pages/mall/consumer/address-edit.uvue","uni_modules/ak-req/ak-req.uts","pages/user/terms.uvue","pages/main/index.uvue","pages/user/center.uvue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map index c704779d..5bb51bdc 100644 --- a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map +++ b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map @@ -1 +1 @@ -{"version":3,"sources":["pages/mall/consumer/address-list.uvue","uni_modules/ak-req/ak-req.uts","pages/user/terms.uvue","pages/user/login.uvue","pages/mall/consumer/index.uvue","pages/user/center.uvue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["pages/mall/consumer/address-list.uvue","uni_modules/ak-req/ak-req.uts","pages/user/terms.uvue","pages/user/login.uvue","pages/main/index.uvue","pages/user/center.uvue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map index 37def640..5d21e9ca 100644 --- a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map +++ b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map @@ -1 +1 @@ -{"version":3,"sources":["pages/mall/consumer/apply-refund.uvue","pages/user/change-password.uvue","pages/user/terms.uvue","pages/mall/consumer/index.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["pages/user/profile.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map b/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map index 105b286d..6f7ea574 100644 --- a/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map +++ b/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map @@ -1 +1 @@ -{"version":3,"sources":["pages/user/register.uvue","pages/user/login.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["pages/user/register.uvue","pages/user/login.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/src/.manifest.json b/unpackage/cache/.app-android/src/.manifest.json index 1a1d9118..46f81db2 100644 --- a/unpackage/cache/.app-android/src/.manifest.json +++ b/unpackage/cache/.app-android/src/.manifest.json @@ -1 +1,220 @@ -{"version":"1","env":{"compiler_version":"4.87"},"files":{"pages/user/forgot-password.kt":{"class":"GenPagesUserForgotPassword","md5":"305feeb7c31852b47942fd6e4b37ac887844add9"},"pages/mall/consumer/search.kt":{"class":"GenPagesMallConsumerSearch","md5":"bb2b964ee246efa6954d5004663018cd3c4ad0fa"},"pages/mall/consumer/review.kt":{"class":"GenPagesMallConsumerReview","md5":"145bf1a13bd2c3d378b640981460e3003021fded"},"pages/mall/consumer/points/index.kt":{"class":"GenPagesMallConsumerPointsIndex","md5":"793401ac4c9167277c23d6cf3e74b39c4e66bae1"},"pages/mall/consumer/cart.kt":{"md5":"df661c06f3831f4d3d199e8977c17ae47240321d","class":"GenPagesMallConsumerCart"},"pages/mall/consumer/category.kt":{"md5":"15ae6b990d5d1445bf4fca14d98b1eb2a481e21b","class":"GenPagesMallConsumerCategory"},"pages/user/bind-phone.kt":{"class":"GenPagesUserBindPhone","md5":"e1bf96825ebb2a94422a22c58cbc5103f08e43c0"},"pages/user/register.kt":{"md5":"e444fb6046165f02349e6d76e57d0c33ddf0c660","class":"GenPagesUserRegister"},"pages/main/index.kt":{"class":"GenPagesMainIndex","md5":"f1e63abdcbbc9a3f8693d170bd19c05896065458"},"pages/main/messages.kt":{"class":"GenPagesMainMessages","md5":"6ae6623d8dd7c026f2091597200f851ec579b112"},"pages/mall/consumer/address-list.kt":{"md5":"b15dd3c77b5cd61edf2992652d5731e6f2681670","class":"GenPagesMallConsumerAddressList"},"pages/mall/consumer/subscription/followed-shops.kt":{"class":"GenPagesMallConsumerSubscriptionFollowedShops","md5":"bd1ae6e966f29cccc6a342ffcbe6bf26f8b93635"},"pages/user/center.kt":{"md5":"6526d40e83a6d94c68a3da3b5c93665eb829646e","class":"GenPagesUserCenter"},"pages/main/category.kt":{"class":"GenPagesMainCategory","md5":"158d8fd3c82c24c247bb7de5828f824f00191883"},"pages/user/bind-email.kt":{"class":"GenPagesUserBindEmail","md5":"aee9fa605a8e6e4ee45803d08723ad6e295f06e0"},"pages/user/boot.kt":{"md5":"7bcdecc8ce1077d4f28d07bf9072cf9edd8c5ae9","class":"GenPagesUserBoot"},"pages/mall/consumer/coupons.kt":{"class":"GenPagesMallConsumerCoupons","md5":"f2693b608b4f2b5ceab78723b3c004416af18c9c"},"pages/mall/consumer/logistics.kt":{"class":"GenPagesMallConsumerLogistics","md5":"4a9de76a1377a6d2cbccbb158565b73c1f082464"},"pages/mall/consumer/my-reviews.kt":{"class":"GenPagesMallConsumerMyReviews","md5":"d8cfffb9bde1bc0acf26f8083fbd36cc321c5db7"},"pages/user/login.kt":{"md5":"9120433771cafb5fed0b80571532ffde1b032fe5","class":"GenPagesUserLogin"},"pages/mall/consumer/checkout.kt":{"class":"GenPagesMallConsumerCheckout","md5":"e946c913bbc210013f8e6e895a580faf6754f73e"},"pages/mall/consumer/payment-success.kt":{"class":"GenPagesMallConsumerPaymentSuccess","md5":"7c1060167dafa9efdafcd38b97296a14a0991956"},"pages/mall/consumer/message-detail.kt":{"md5":"81e0b06b9ecfc567953e2bac23b8036aec31dc43","class":"GenPagesMallConsumerMessageDetail"},"pages/mall/consumer/settings.kt":{"md5":"c42079233e1372d313641d5c38bcec024f2537cf","class":"GenPagesMallConsumerSettings"},"pages/user/terms.kt":{"class":"GenPagesUserTerms","md5":"de5c535d6211c15adb1e6116ec85dd32170e5f82"},"pages/mall/consumer/points/signin.kt":{"md5":"2403533854e723c4df006b96f56709fd3265aad2","class":"GenPagesMallConsumerPointsSignin"},"pages/mall/consumer/product-reviews.kt":{"md5":"ad0cecb7fd413943bd5260bafdf6930b3365990e","class":"GenPagesMallConsumerProductReviews"},"pages/mall/consumer/shop-detail.kt":{"class":"GenPagesMallConsumerShopDetail","md5":"89df465d10aa7cf9809faa5643edafebdcba4683"},"pages/user/profile.kt":{"md5":"896c229a32e5ab22e5c2c7386fa4e01fb9f41f94","class":"GenPagesUserProfile"},"pages/mall/consumer/profile.kt":{"md5":"2f1458dccb75f90c3674fff87f49b6a570b1d79b","class":"GenPagesMallConsumerProfile"},"pages/mall/consumer/favorites.kt":{"md5":"d49bd7c458c9ba69ff226b1b63a8766e7d84d9c6","class":"GenPagesMallConsumerFavorites"},"pages/user/change-password.kt":{"class":"GenPagesUserChangePassword","md5":"795ad70c7e0b3734eaf7e6e57dbb145a8f91ef80"},"pages/mall/consumer/address-edit.kt":{"class":"GenPagesMallConsumerAddressEdit","md5":"1ca333956ab57cc52f66bf9a7310a6f2c756403c"},"pages/mall/consumer/messages.kt":{"class":"GenPagesMallConsumerMessages","md5":"c87633ff0688963b4fc0fbbe545b9241e6383bee"},"pages/mall/consumer/refund-review.kt":{"class":"GenPagesMallConsumerRefundReview","md5":"4fbba416086db4f0d23a7ab2bc6b135c65169b0d"},"pages/mall/consumer/bank-cards/add.kt":{"md5":"3c6aac904a1936597085c45c7c4bedeaff363a9b","class":"GenPagesMallConsumerBankCardsAdd"},"pages/mall/consumer/apply-refund.kt":{"md5":"11094b38c60f9be8ff7e0130fe08a6cdfb06c3d4","class":"GenPagesMallConsumerApplyRefund"},"pages/mall/consumer/refund.kt":{"md5":"47eeae54219904cc2e821ef44611b1d2ebbb20f3","class":"GenPagesMallConsumerRefund"},"pages/mall/consumer/footprint.kt":{"md5":"d18e76a6f4a5818009730bd99b1ce573c0ae1b4b","class":"GenPagesMallConsumerFootprint"},"pages/mall/consumer/chat.kt":{"class":"GenPagesMallConsumerChat","md5":"7b8932f86cef4f8f5fa9de7b3d09e3a4de7d81e8"},"pages/mall/consumer/index.kt":{"class":"GenPagesMallConsumerIndex","md5":"695bd653e8e533007dda912ef597370a351d2e11"},"pages/mall/consumer/bank-cards/index.kt":{"md5":"911f58fed35c1d455d792f3ad433c9a40e01d124","class":"GenPagesMallConsumerBankCardsIndex"},"pages/mall/consumer/red-packets/index.kt":{"md5":"8bea2993c6a40d8a0d9189d29c81b93898b3ea02","class":"GenPagesMallConsumerRedPacketsIndex"},"pages/mall/consumer/product-detail.kt":{"class":"GenPagesMallConsumerProductDetail","md5":"d40dda448df1957b36d9893e82688c759d9ffebf"}}} \ No newline at end of file +{ + "version": "1", + "env": { + "compiler_version": "4.87" + }, + "files": { + "pages/user/terms.kt": { + "md5": "de5c535d6211c15adb1e6116ec85dd32170e5f82", + "class": "GenPagesUserTerms" + }, + "pages/user/profile.kt": { + "md5": "896c229a32e5ab22e5c2c7386fa4e01fb9f41f94", + "class": "GenPagesUserProfile" + }, + "pages/mall/consumer/favorites.kt": { + "md5": "d49bd7c458c9ba69ff226b1b63a8766e7d84d9c6", + "class": "GenPagesMallConsumerFavorites" + }, + "pages/mall/consumer/points/exchange-records.kt": { + "md5": "96a8432195fb87430cd18ad5e2d795ebc2baa3ac", + "class": "GenPagesMallConsumerPointsExchangeRecords" + }, + "pages/main/cart.kt": { + "md5": "07e6295efbc2b18600d2c7d3c717dd4e3841722a", + "class": "GenPagesMainCart" + }, + "pages/mall/consumer/member/index.kt": { + "class": "GenPagesMallConsumerMemberIndex", + "md5": "3e8700b326b183cffce39da0446cf511db13a811" + }, + "pages/mall/consumer/points/signin.kt": { + "md5": "2403533854e723c4df006b96f56709fd3265aad2", + "class": "GenPagesMallConsumerPointsSignin" + }, + "pages/mall/consumer/red-packets/index.kt": { + "class": "GenPagesMallConsumerRedPacketsIndex", + "md5": "8bea2993c6a40d8a0d9189d29c81b93898b3ea02" + }, + "pages/user/register.kt": { + "class": "GenPagesUserRegister", + "md5": "cac2bad3475defd9e06f3df5fa0942430e5710ad" + }, + "pages/mall/consumer/settings.kt": { + "md5": "5cfb71d1493b57cf05c156cc07255f46b45a4410", + "class": "GenPagesMallConsumerSettings" + }, + "pages/mall/consumer/wallet.kt": { + "md5": "2140cac52a62487e947b202e6b6b9c0952482492", + "class": "GenPagesMallConsumerWallet" + }, + "pages/user/center.kt": { + "class": "GenPagesUserCenter", + "md5": "6526d40e83a6d94c68a3da3b5c93665eb829646e" + }, + "pages/mall/consumer/orders.kt": { + "md5": "b3e78c0a1edae637a238995cd3d67158970f856c", + "class": "GenPagesMallConsumerOrders" + }, + "pages/mall/consumer/payment.kt": { + "md5": "0857c5b5aa8b636c67bdefdc903293a1667d3167", + "class": "GenPagesMallConsumerPayment" + }, + "pages/mall/consumer/my-reviews.kt": { + "md5": "17723028c5d523c96e425f35aebe3f241cf697e3", + "class": "GenPagesMallConsumerMyReviews" + }, + "pages/user/bind-email.kt": { + "class": "GenPagesUserBindEmail", + "md5": "aee9fa605a8e6e4ee45803d08723ad6e295f06e0" + }, + "pages/mall/consumer/share/index.kt": { + "class": "GenPagesMallConsumerShareIndex", + "md5": "1b119a43953990215ab63c2f4fd50bc82434008f" + }, + "pages/main/index.kt": { + "md5": "f1e63abdcbbc9a3f8693d170bd19c05896065458", + "class": "GenPagesMainIndex" + }, + "pages/mall/consumer/address-edit.kt": { + "class": "GenPagesMallConsumerAddressEdit", + "md5": "1ca333956ab57cc52f66bf9a7310a6f2c756403c" + }, + "pages/user/login.kt": { + "class": "GenPagesUserLogin", + "md5": "3b53bdedac151396037d01022803413ae84a6c39" + }, + "index.kt": { + "class": "", + "md5": "6afd9cf78c86b405ad97a12be437263c4423559e" + }, + "pages/main/profile.kt": { + "class": "GenPagesMainProfile", + "md5": "23dc50e73254a768a9e35bf880f4a914b3fcc0d1" + }, + "pages/mall/consumer/message-detail.kt": { + "class": "GenPagesMallConsumerMessageDetail", + "md5": "25f409cae55c141f830f06c11ed7bde73b125c3d" + }, + "pages/mall/consumer/refund-review.kt": { + "md5": "4fbba416086db4f0d23a7ab2bc6b135c65169b0d", + "class": "GenPagesMallConsumerRefundReview" + }, + "pages/mall/consumer/search.kt": { + "md5": "0959d2c76e77f95d9f591657c92870f46b99f7b1", + "class": "GenPagesMallConsumerSearch" + }, + "pages/mall/consumer/subscription/followed-shops.kt": { + "md5": "bd1ae6e966f29cccc6a342ffcbe6bf26f8b93635", + "class": "GenPagesMallConsumerSubscriptionFollowedShops" + }, + "pages/mall/consumer/bank-cards/index.kt": { + "md5": "911f58fed35c1d455d792f3ad433c9a40e01d124", + "class": "GenPagesMallConsumerBankCardsIndex" + }, + "pages/mall/consumer/apply-refund.kt": { + "md5": "11094b38c60f9be8ff7e0130fe08a6cdfb06c3d4", + "class": "GenPagesMallConsumerApplyRefund" + }, + "pages/mall/consumer/shop-detail.kt": { + "class": "GenPagesMallConsumerShopDetail", + "md5": "36d98d350cff333135e057b96f8f0bc8850b6591" + }, + "pages/main/messages.kt": { + "class": "GenPagesMainMessages", + "md5": "6ae6623d8dd7c026f2091597200f851ec579b112" + }, + "pages/user/change-password.kt": { + "class": "GenPagesUserChangePassword", + "md5": "795ad70c7e0b3734eaf7e6e57dbb145a8f91ef80" + }, + "pages/user/boot.kt": { + "class": "GenPagesUserBoot", + "md5": "7bcdecc8ce1077d4f28d07bf9072cf9edd8c5ae9" + }, + "pages/mall/consumer/order-detail.kt": { + "class": "GenPagesMallConsumerOrderDetail", + "md5": "c904a27ce7ff3368615b73236d774e5c3d3b3b95" + }, + "pages/mall/consumer/footprint.kt": { + "class": "GenPagesMallConsumerFootprint", + "md5": "d18e76a6f4a5818009730bd99b1ce573c0ae1b4b" + }, + "pages/mall/consumer/withdraw.kt": { + "class": "GenPagesMallConsumerWithdraw", + "md5": "13d6e5ad5200dd1d5873e060e8c79035bbee3b9a" + }, + "pages/mall/consumer/balance/index.kt": { + "md5": "36ea8796dae21baaf759b0c0fa06921245afe765", + "class": "GenPagesMallConsumerBalanceIndex" + }, + "pages/mall/consumer/bank-cards/add.kt": { + "md5": "3c6aac904a1936597085c45c7c4bedeaff363a9b", + "class": "GenPagesMallConsumerBankCardsAdd" + }, + "pages/main/category.kt": { + "class": "GenPagesMainCategory", + "md5": "158d8fd3c82c24c247bb7de5828f824f00191883" + }, + "pages/mall/consumer/logistics.kt": { + "md5": "4a9de76a1377a6d2cbccbb158565b73c1f082464", + "class": "GenPagesMallConsumerLogistics" + }, + "pages/mall/consumer/product-reviews.kt": { + "class": "GenPagesMallConsumerProductReviews", + "md5": "1c740244d6f367172fb31de41206271c989eaa78" + }, + "pages/mall/consumer/checkout.kt": { + "md5": "e946c913bbc210013f8e6e895a580faf6754f73e", + "class": "GenPagesMallConsumerCheckout" + }, + "pages/user/forgot-password.kt": { + "md5": "305feeb7c31852b47942fd6e4b37ac887844add9", + "class": "GenPagesUserForgotPassword" + }, + "pages/mall/consumer/points/index.kt": { + "class": "GenPagesMallConsumerPointsIndex", + "md5": "793401ac4c9167277c23d6cf3e74b39c4e66bae1" + }, + "pages/user/bind-phone.kt": { + "class": "GenPagesUserBindPhone", + "md5": "e1bf96825ebb2a94422a22c58cbc5103f08e43c0" + }, + "pages/mall/consumer/review.kt": { + "class": "GenPagesMallConsumerReview", + "md5": "145bf1a13bd2c3d378b640981460e3003021fded" + }, + "pages/mall/consumer/chat.kt": { + "class": "GenPagesMallConsumerChat", + "md5": "74d36c24e7987baf12b5e69cd4096e0666622b4f" + }, + "pages/mall/consumer/refund.kt": { + "class": "GenPagesMallConsumerRefund", + "md5": "270ae0904fe0f417570635b245e60f10399584fe" + }, + "pages/mall/consumer/coupons.kt": { + "class": "GenPagesMallConsumerCoupons", + "md5": "f2693b608b4f2b5ceab78723b3c004416af18c9c" + }, + "pages/mall/consumer/product-detail.kt": { + "class": "GenPagesMallConsumerProductDetail", + "md5": "8d2775958dda9844ac7caf9f92a3814252502850" + }, + "pages/mall/consumer/payment-success.kt": { + "class": "GenPagesMallConsumerPaymentSuccess", + "md5": "7c1060167dafa9efdafcd38b97296a14a0991956" + }, + "pages/mall/consumer/address-list.kt": { + "class": "GenPagesMallConsumerAddressList", + "md5": "b15dd3c77b5cd61edf2992652d5731e6f2681670" + }, + "pages/mall/consumer/points/exchange.kt": { + "md5": "9d8023cc6f8053187b6bfb274d6997ecb3be408a", + "class": "GenPagesMallConsumerPointsExchange" + }, + "pages/mall/consumer/share/detail.kt": { + "class": "GenPagesMallConsumerShareDetail", + "md5": "cd2b34e45ef148d4b003540b0af6822981f27087" + } + } +} \ No newline at end of file diff --git a/unpackage/cache/.app-android/src/index.kt b/unpackage/cache/.app-android/src/index.kt index 8a8f6024..13a45b21 100644 --- a/unpackage/cache/.app-android/src/index.kt +++ b/unpackage/cache/.app-android/src/index.kt @@ -231,17 +231,14 @@ open class AkReq : IUTSSourceMap { this.clearToken() return@w false } - var headers: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("headers", "uni_modules/ak-req/ak-req.uts", 74, 13)) { - } + var headers = UTSJSONObject(UTSSourceMapPosition("headers", "uni_modules/ak-req/ak-req.uts", 74, 13)) if (apikey != null && apikey !== "") { - headers = Object.assign(UTSJSONObject(), headers, object : UTSJSONObject() { - var apikey = apikey - }) as UTSJSONObject + headers.set("apikey", apikey) } + val reqData = UTSJSONObject(UTSSourceMapPosition("reqData", "uni_modules/ak-req/ak-req.uts", 78, 15)) + reqData.set("refresh_token", refreshToken) try { - val res = await(this.request(AkReqOptions(url = SUPA_URL + "/auth/v1/token?grant_type=refresh_token", method = "POST", data = (object : UTSJSONObject() { - var refresh_token = refreshToken - }), headers = headers, contentType = "application/json"), true)) + val res = await(this.request(AkReqOptions(url = SUPA_URL + "/auth/v1/token?grant_type=refresh_token", method = "POST", data = reqData, headers = headers, contentType = "application/json"), true)) val data = res.data as UTSJSONObject? var accessToken: String? = null var refreshTokenNew: String? = null @@ -275,13 +272,13 @@ open class AkReq : IUTSSourceMap { } await(this.refreshTokenIfNeeded(apikey)) } - val newHeaders = UTSJSONObject(UTSSourceMapPosition("newHeaders", "uni_modules/ak-req/ak-req.uts", 121, 15)) + val newHeaders = UTSJSONObject(UTSSourceMapPosition("newHeaders", "uni_modules/ak-req/ak-req.uts", 123, 15)) if (options.headers != null) { val originalHeaders = options.headers!! if (UTSAndroid.`typeof`(originalHeaders["getString"]) === "function") { - val apikey = originalHeaders.getString("apikey") - if (apikey != null) { - newHeaders.set("apikey", apikey) + val apikeyStr = originalHeaders.getString("apikey") + if (apikeyStr != null) { + newHeaders.set("apikey", apikeyStr) } val contentType = originalHeaders.getString("Content-Type") if (contentType != null) { @@ -297,6 +294,11 @@ open class AkReq : IUTSSourceMap { } } } + if (newHeaders.getString("apikey") == null) { + if (SUPA_KEY != null && SUPA_KEY != "") { + newHeaders.set("apikey", SUPA_KEY) + } + } val token = this.getToken() if (token != null && token != "") { newHeaders.set("Authorization", "Bearer " + token) @@ -308,7 +310,7 @@ open class AkReq : IUTSSourceMap { } } newHeaders.set("Accept", "application/json") - console.log("[AkReq.request] headers:", JSON.stringify(newHeaders), " at uni_modules/ak-req/ak-req.uts:165") + console.log("[AkReq.request] headers:", JSON.stringify(newHeaders), " at uni_modules/ak-req/ak-req.uts:175") val headers = newHeaders val timeout = options.timeout ?: 10000 val maxRetry = Math.max(0, options.retryCount ?: 0) @@ -326,7 +328,7 @@ open class AkReq : IUTSSourceMap { val strData = res.data as String if (strData.length > 0 && UTSRegExp("[^\\s]", "").test(strData)) { try { - data = UTSAndroid.consoleDebugError(JSON.parse(strData), " at uni_modules/ak-req/ak-req.uts:188") as UTSJSONObject + data = UTSAndroid.consoleDebugError(JSON.parse(strData), " at uni_modules/ak-req/ak-req.uts:196") as UTSJSONObject } catch (e: Throwable) { data = UTSJSONObject(object : UTSJSONObject() { var raw = strData @@ -437,7 +439,7 @@ open class AkReq : IUTSSourceMap { val task = uni_uploadFile(UploadFileOptions(url = options.url, filePath = options.filePath, name = options.name, formData = options.formData ?: UTSJSONObject(), header = headers, timeout = timeout, success = fun(res: UploadFileSuccess){ var parsed: UTSJSONObject? = null try { - parsed = UTSAndroid.consoleDebugError(JSON.parse(res.data), " at uni_modules/ak-req/ak-req.uts:302") as UTSJSONObject + parsed = UTSAndroid.consoleDebugError(JSON.parse(res.data), " at uni_modules/ak-req/ak-req.uts:310") as UTSJSONObject } catch (e: Throwable) { parsed = null @@ -1258,14 +1260,25 @@ open class AkSupa : IUTSSourceMap { if (this.apikey == null || this.apikey.trim() === "" || this.apikey === "your-anon-key") { throw UTSError("Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)") } - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=password", method = "POST", headers = _uO("apikey" to this.apikey, "Content-Type" to "application/json"), data = _uO("email" to email, "password" to password), contentType = "application/json"), false)) + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 692, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + val reqData = UTSJSONObject(UTSSourceMapPosition("reqData", "components/supadb/aksupa.uts", 695, 15)) + reqData.set("email", email) + reqData.set("password", password) + val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=password", method = "POST", headers = headers, data = reqData, contentType = "application/json"), false)) val status = res.status ?: 0 if (!(status >= 200 && status < 400)) { var msg = "user.login.login_failed" try { if (res.data != null) { - val obj = UTSJSONObject(res.data, UTSSourceMapPosition("obj", "components/supadb/aksupa.uts", 708, 27)) - msg = obj.getString("message") ?: obj.getString("error") ?: obj.getString("msg") ?: obj.getString("description") ?: obj.getString("error_description") ?: msg + val obj = UTSJSONObject(res.data, UTSSourceMapPosition("obj", "components/supadb/aksupa.uts", 711, 27)) + val rawMsg = obj.getString("message") ?: obj.getString("error") ?: obj.getString("msg") ?: obj.getString("description") ?: obj.getString("error_description") ?: "" + if (rawMsg.includes("Invalid login credentials")) { + msg = "用户名或密码错误" + } else if (rawMsg != "") { + msg = rawMsg + } } } catch (e: Throwable) {} @@ -1292,26 +1305,41 @@ open class AkSupa : IUTSSourceMap { open fun getSession(): AkSupaSessionInfo { return AkSupaSessionInfo(session = this.session, user = this.user) } - open fun signUp(email: String, password: String): UTSPromise { + open fun signUp(email: String, password: String, options: UTSJSONObject? = null): UTSPromise { return wrapUTSPromise(suspend w@{ - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/signup", method = "POST", headers = _uO("apikey" to this.apikey, "Content-Type" to "application/json"), data = _uO("email" to email, "password" to password), contentType = "application/json"), false)) + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 763, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 766, 15)) + data.set("email", email) + data.set("password", password) + if (options != null) { + val dataField = options.getJSON("data") + if (dataField != null) { + data.set("data", dataField) + } + } + val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/signup", method = "POST", headers = headers, data = data, contentType = "application/json"), false)) return@w res.data as UTSJSONObject }) } open fun select(table: String, filter: String?, options: AkSupaSelectOptions?): UTSPromise> { return wrapUTSPromise(suspend w@{ var url = this.baseUrl + "/rest/v1/" + table - var headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 773, 13), "apikey" to this.apikey, "Content-Type" to "application/json", "Authorization" to ("Bearer " + (AkReq.getToken() ?: ""))) + var headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 792, 13)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) var params: UTSArray = _uA() if (options != null) { if (options.columns != null && !(options.columns == "")) { - params.push("select=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.columns ?: ""), " at components/supadb/aksupa.uts:781")) + params.push("select=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.columns ?: ""), " at components/supadb/aksupa.uts:799")) } if (options.limit != null) { params.push("limit=" + options.limit!!) } if (options.order != null && !(options.order == "")) { - params.push("order=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.order ?: ""), " at components/supadb/aksupa.uts:787")) + params.push("order=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.order ?: ""), " at components/supadb/aksupa.uts:805")) } if (options.rangeFrom != null && options.rangeTo != null) { headers["Range"] = "" + options.rangeFrom!! + "-" + options.rangeTo!! @@ -1366,7 +1394,11 @@ open class AkSupa : IUTSSourceMap { open fun insert(table: String, row: Any): UTSPromise> { return wrapUTSPromise(suspend w@{ val url = this.baseUrl + "/rest/v1/" + table - val headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 862, 15), "apikey" to this.apikey, "Content-Type" to "application/json", "Authorization" to ("Bearer " + (AkReq.getToken() ?: "")), "Prefer" to "return=representation") + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 880, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) + headers.set("Prefer", "return=representation") var reqOptions = AkReqOptions(url = url, method = "POST", headers = headers, data = row, contentType = "application/json") return@w await(this.requestWithAutoRefresh(reqOptions)) }) @@ -1377,7 +1409,11 @@ open class AkSupa : IUTSSourceMap { if (filter != null && filter !== "") { url += "?" + filter } - val headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 891, 15), "apikey" to this.apikey, "Content-Type" to "application/json", "Authorization" to ("Bearer " + (AkReq.getToken() ?: "")), "Prefer" to "return=representation") + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 906, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) + headers.set("Prefer", "return=representation") var reqOptions = AkReqOptions(url = url, method = "PATCH", headers = headers, data = values, contentType = "application/json") return@w await(this.requestWithAutoRefresh(reqOptions)) }) @@ -1388,15 +1424,22 @@ open class AkSupa : IUTSSourceMap { if (filter != null && filter !== "") { url += "?" + filter } - val headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 917, 15), "apikey" to this.apikey, "Content-Type" to "application/json", "Authorization" to ("Bearer " + (AkReq.getToken() ?: "")), "Prefer" to "return=representation") + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 931, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) + headers.set("Prefer", "return=representation") var reqOptions = AkReqOptions(url = url, method = "DELETE", headers = headers, contentType = "application/json") return@w await(this.requestWithAutoRefresh(reqOptions)) }) } open fun rpc(functionName: String, params: UTSJSONObject?): UTSPromise> { return wrapUTSPromise(suspend w@{ - val url = "" + this.baseUrl + "/rest/v1/rpc/" + functionName - val headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 939, 15), "apikey" to this.apikey, "Content-Type" to "application/json", "Authorization" to ("Bearer " + (AkReq.getToken() ?: ""))) + val url = this.baseUrl + "/rest/v1/rpc/" + functionName + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 952, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) var reqOptions = AkReqOptions(url = url, method = "POST", headers = headers, data = params ?: UTSJSONObject(), contentType = "application/json") return@w await(this.requestWithAutoRefresh(reqOptions)) }) @@ -1417,7 +1460,12 @@ open class AkSupa : IUTSSourceMap { return@w false } try { - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=refresh_token", method = "POST", headers = _uO("apikey" to this.apikey, "Content-Type" to "application/json"), data = _uO("refresh_token" to this.session?.refresh_token), contentType = "application/json"), false)) + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 991, 19)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 994, 19)) + data.set("refresh_token", this.session?.refresh_token) + val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=refresh_token", method = "POST", headers = headers, data = data, contentType = "application/json"), false)) if (res.status == 200 && (res.data != null)) { val data = res.data as UTSJSONObject val access_token = data.getString("access_token") ?: "" @@ -1436,6 +1484,18 @@ open class AkSupa : IUTSSourceMap { } }) } + open fun updateUserMetadata(metadata: UTSJSONObject): UTSPromise { + return wrapUTSPromise(suspend w@{ + val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 1030, 15)) + headers.set("apikey", this.apikey) + headers.set("Content-Type", "application/json") + headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) + val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 1034, 15)) + data.set("data", metadata) + val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/user", method = "PUT", headers = headers, data = data, contentType = "application/json"), false)) + return@w res.data as UTSJSONObject + }) + } open fun requestWithAutoRefresh(reqOptions: AkReqOptions, isRetry: Boolean = false): UTSPromise> { return wrapUTSPromise(suspend w@{ var res = await(AkReq.request(reqOptions, false)) @@ -1456,7 +1516,7 @@ open class AkSupa : IUTSSourceMap { } else { uni_removeStorageSync("user_id") uni_removeStorageSync("token") - console.log("登录已过期,请重新登录", " at components/supadb/aksupa.uts:1062") + console.log("登录已过期,请重新登录", " at components/supadb/aksupa.uts:1095") throw toUniError("登录已过期,请重新登录", "用户认证失败") } } @@ -1474,7 +1534,7 @@ fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { filter = UTSJSONObject(filter as Any) } catch (e: Throwable) { - console.warn("filter 不是 UTSJSONObject,且无法转换", filter, " at components/supadb/aksupa.uts:1079") + console.warn("filter 不是 UTSJSONObject,且无法转换", filter, " at components/supadb/aksupa.uts:1112") return "" } } @@ -1501,9 +1561,9 @@ fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { if ((op == "in" || op == "not.in") && UTSArray.isArray(opVal)) { params.push("" + k + "=" + op + ".(" + (opVal as UTSArray).map(fun(x): String? { return if (UTSAndroid.`typeof`(x) == "object") { - UTSAndroid.consoleDebugError(encodeURIComponent(JSON.stringify(x)), " at components/supadb/aksupa.uts:1077") + UTSAndroid.consoleDebugError(encodeURIComponent(JSON.stringify(x)), " at components/supadb/aksupa.uts:1107") } else { - UTSAndroid.consoleDebugError(encodeURIComponent(x.toString()), " at components/supadb/aksupa.uts:1077") + UTSAndroid.consoleDebugError(encodeURIComponent(x.toString()), " at components/supadb/aksupa.uts:1107") } }).join(",") + ")") } else if (op == "is" && (opVal == null || opVal == "null")) { @@ -1514,7 +1574,7 @@ fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { } else { (opVal as String) } - params.push("" + k + "=" + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(opvalstr), " at components/supadb/aksupa.uts:1084")) + params.push("" + k + "=" + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(opvalstr), " at components/supadb/aksupa.uts:1114")) } j++ } @@ -1535,7 +1595,7 @@ fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { } } else { "" - }), " at components/supadb/aksupa.uts:1094")) + }), " at components/supadb/aksupa.uts:1124")) j++ } } @@ -1545,7 +1605,7 @@ fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { } else { "" } - ), " at components/supadb/aksupa.uts:1098")) + ), " at components/supadb/aksupa.uts:1128")) } i++ } @@ -1557,7 +1617,7 @@ fun createClient(url: String, key: String): AkSupa { } open class AkSupaRealtimeChannel : IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaRealtimeChannel", "components/supadb/aksupa.uts", 1112, 14) + return UTSSourceMapPosition("AkSupaRealtimeChannel", "components/supadb/aksupa.uts", 1142, 14) } private var _supa: AkSupa private var _topic: String @@ -1587,7 +1647,7 @@ open class AkSupaRealtimeChannel : IUTSSourceMap { callback("SUBSCRIBED", null) } if (this._table == "") { - console.warn("Realtime check: No table specified for polling.", " at components/supadb/aksupa.uts:1169") + console.warn("Realtime check: No table specified for polling.", " at components/supadb/aksupa.uts:1202") return this } this._timer = setInterval(fun(){ @@ -1622,7 +1682,7 @@ open class AkSupaRealtimeChannel : IUTSSourceMap { if (lastItem is UTSJSONObject) { lastTimeStr = (lastItem as UTSJSONObject).getString("created_at") } else { - val j = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(lastItem)), " at components/supadb/aksupa.uts:1188") as UTSJSONObject + val j = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(lastItem)), " at components/supadb/aksupa.uts:1218") as UTSJSONObject lastTimeStr = j.getString("created_at") } if (lastTimeStr != null) { @@ -1632,7 +1692,7 @@ open class AkSupaRealtimeChannel : IUTSSourceMap { } if (this._callback != null) { list.forEach(fun(item){ - val payload: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("payload", "components/supadb/aksupa.uts", 1201, 35)) { + val payload: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("payload", "components/supadb/aksupa.uts", 1231, 35)) { var `new` = item var eventType = "INSERT" var old = null @@ -1645,7 +1705,7 @@ open class AkSupaRealtimeChannel : IUTSSourceMap { } } catch (e: Throwable) { - console.error("Realtime polling error:", e, " at components/supadb/aksupa.uts:1244") + console.error("Realtime polling error:", e, " at components/supadb/aksupa.uts:1277") } }) } @@ -3112,42 +3172,87 @@ fun ensureUserProfile(sessionUser: UTSJSONObject): UTSPromise { console.error("无法获取用户ID", " at utils/sapi.uts:18") return@w null } - val checkRes = await(supaInstance.from("ak_users").select("*", UTSJSONObject()).eq("auth_id", userId).single().execute()) + val checkRes = await(supaInstance.from("ak_users").select("*", UTSJSONObject()).or("id.eq." + userId + ",auth_id.eq." + userId).execute()) console.log("ensureUserProfile check ak_users:", object : UTSJSONObject() { var status = checkRes.status var hasData = checkRes.data != null - }, " at utils/sapi.uts:29") - if (checkRes.status >= 200 && checkRes.status < 300 && checkRes.data != null) { - val data = checkRes.data + }, " at utils/sapi.uts:28") + val dataList = checkRes.data + if (checkRes.status >= 200 && checkRes.status < 300 && dataList != null && (dataList as UTSArray).length > 0) { var existingUser: UTSJSONObject - if (data is UTSJSONObject) { - existingUser = data as UTSJSONObject + val firstItem = (dataList as UTSArray)[0] + if (firstItem is UTSJSONObject) { + existingUser = firstItem as UTSJSONObject } else { - existingUser = UTSJSONObject(data) + existingUser = UTSJSONObject(firstItem) } - return@w UserProfile(id = existingUser.getString("id") ?: "", username = existingUser.getString("username") ?: "", email = existingUser.getString("email") ?: email, gender = existingUser.getString("gender"), birthday = existingUser.getString("birthday"), height_cm = existingUser.getNumber("height_cm"), weight_kg = existingUser.getNumber("weight_kg"), bio = existingUser.getString("bio"), avatar_url = existingUser.getString("avatar_url"), preferred_language = existingUser.getString("preferred_language"), role = existingUser.getString("role") ?: "consumer", created_at = existingUser.getString("created_at"), updated_at = existingUser.getString("updated_at")) + val currentRole = existingUser.getString("role") + val currentAuthId = existingUser.getString("auth_id") + if (currentRole == "student" || currentAuthId == null || currentAuthId == "") { + console.log("检测到旧数据异常,正在修复角色或关联ID...", " at utils/sapi.uts:49") + val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/sapi.uts", 43, 23)) + updateData.set("auth_id", userId) + updateData.set("role", "consumer") + await(supaInstance.from("ak_users").update(updateData).eq("id", userId).execute()) + try { + val meta = UTSJSONObject(UTSSourceMapPosition("meta", "utils/sapi.uts", 53, 27)) + meta.set("user_role", "consumer") + await(supaInstance.updateUserMetadata(meta)) + } + catch (e: Throwable) { + console.warn("同步 Auth 元数据失败:", e, " at utils/sapi.uts:66") + } + return@w UserProfile(id = userId, username = existingUser.getString("username") ?: email.split("@")[0], email = existingUser.getString("email") ?: email, role = "consumer") + } + return@w UserProfile(id = userId, username = existingUser.getString("username") ?: "", email = existingUser.getString("email") ?: email, gender = existingUser.getString("gender"), birthday = existingUser.getString("birthday"), height_cm = existingUser.getNumber("height_cm"), weight_kg = existingUser.getNumber("weight_kg"), bio = existingUser.getString("bio"), avatar_url = existingUser.getString("avatar_url"), preferred_language = existingUser.getString("preferred_language"), role = existingUser.getString("role") ?: "consumer", created_at = existingUser.getString("created_at"), updated_at = existingUser.getString("updated_at")) } - val newUserData = UTSJSONObject(UTSSourceMapPosition("newUserData", "utils/sapi.uts", 55, 15)) + val newUserData = UTSJSONObject(UTSSourceMapPosition("newUserData", "utils/sapi.uts", 85, 15)) newUserData.set("id", userId) + newUserData.set("auth_id", userId) newUserData.set("email", email) newUserData.set("username", email.split("@")[0] ?: "user") - val insertRes = await(supaInstance.from("ak_users").insert(newUserData).select("*", UTSJSONObject()).single().execute()) - console.log("ensureUserProfile insert ak_users status:", insertRes.status, " at utils/sapi.uts:72") - if (insertRes.status >= 200 && insertRes.status < 300 && insertRes.data != null) { - val rawData = insertRes.data + newUserData.set("role", "consumer") + newUserData.set("created_at", Date().toISOString()) + try { + val meta = UTSJSONObject(UTSSourceMapPosition("meta", "utils/sapi.uts", 94, 19)) + meta.set("user_role", "consumer") + await(supaInstance.updateUserMetadata(meta)) + } + catch (e: Throwable) { + console.warn("同步 Auth 元数据失败 (非致命):", e, " at utils/sapi.uts:110") + } + console.log("准备插入 ak_users, 目标 ID:", userId, " at utils/sapi.uts:113") + console.log("正在执行 insert 资料:", JSON.stringify(newUserData), " at utils/sapi.uts:114") + val insertRes = await(supaInstance.from("ak_users").insert(newUserData).select("*", UTSJSONObject()).execute()) + console.log("ensureUserProfile insert ak_users 完整结果:", JSON.stringify(insertRes), " at utils/sapi.uts:120") + if (insertRes.status >= 200 && insertRes.status < 300) { + val dataList = if ((insertRes.data != null)) { + (insertRes.data as UTSArray) + } else { + _uA() + } + val rawData = if (dataList.length > 0) { + dataList[0] + } else { + null + } + if (rawData == null) { + console.log("ensureUserProfile: 资料插入操作已完成(200),但未返回数据(可能是 RLS 限制)", " at utils/sapi.uts:127") + return@w UserProfile(id = userId, username = email.split("@")[0] ?: "user", email = email, role = "consumer", created_at = newUserData.getString("created_at")) + } val newUser = if ((rawData is UTSJSONObject)) { (rawData as UTSJSONObject) } else { UTSJSONObject(rawData) } - return@w UserProfile(id = newUser.getString("id") ?: "", username = newUser.getString("username") ?: "", email = newUser.getString("email") ?: email, gender = newUser.getString("gender"), birthday = newUser.getString("birthday"), height_cm = newUser.getNumber("height_cm"), weight_kg = newUser.getNumber("weight_kg"), bio = newUser.getString("bio"), avatar_url = newUser.getString("avatar_url"), preferred_language = newUser.getString("preferred_language"), role = newUser.getString("role") ?: "consumer", created_at = newUser.getString("created_at"), updated_at = newUser.getString("updated_at")) + return@w UserProfile(id = newUser.getString("id") ?: userId, username = newUser.getString("username") ?: email.split("@")[0], email = newUser.getString("email") ?: email, gender = newUser.getString("gender"), birthday = newUser.getString("birthday"), height_cm = newUser.getNumber("height_cm"), weight_kg = newUser.getNumber("weight_kg"), bio = newUser.getString("bio"), avatar_url = newUser.getString("avatar_url"), preferred_language = newUser.getString("preferred_language"), role = newUser.getString("role") ?: "consumer", created_at = newUser.getString("created_at"), updated_at = newUser.getString("updated_at")) } else { - console.error("创建用户资料失败:", insertRes.status, " at utils/sapi.uts:95") + console.error("创建用户资料失败:", insertRes.status, " at utils/sapi.uts:156") return@w null } } catch (error: Throwable) { - console.error("ensureUserProfile 异常:", error, " at utils/sapi.uts:99") + console.error("ensureUserProfile 异常:", error, " at utils/sapi.uts:160") return@w null } }) @@ -11897,7 +12002,7 @@ open class UserStatsType__1 ( open var level: Number, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserStatsType", "pages/main/profile.uvue", 283, 6) + return UTSSourceMapPosition("UserStatsType", "pages/main/profile.uvue", 287, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return UserStatsType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -11967,7 +12072,7 @@ open class OrderCountsType ( open var review: Number, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderCountsType", "pages/main/profile.uvue", 289, 6) + return UTSSourceMapPosition("OrderCountsType", "pages/main/profile.uvue", 293, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return OrderCountsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -12055,7 +12160,7 @@ open class ServiceCountsType ( open var favorites: Number, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ServiceCountsType", "pages/main/profile.uvue", 297, 6) + return UTSSourceMapPosition("ServiceCountsType", "pages/main/profile.uvue", 301, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return ServiceCountsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -12111,7 +12216,7 @@ open class ConsumptionStatsType ( open var save_amount: Number, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ConsumptionStatsType", "pages/main/profile.uvue", 302, 6) + return UTSSourceMapPosition("ConsumptionStatsType", "pages/main/profile.uvue", 306, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return ConsumptionStatsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -12187,7 +12292,7 @@ open class StatsPeriodType ( open var label: String, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("StatsPeriodType", "pages/main/profile.uvue", 309, 6) + return UTSSourceMapPosition("StatsPeriodType", "pages/main/profile.uvue", 313, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return StatsPeriodTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -12249,7 +12354,7 @@ open class OrderItemType ( open var items_count: Number, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderItemType", "pages/main/profile.uvue", 314, 6) + return UTSSourceMapPosition("OrderItemType", "pages/main/profile.uvue", 318, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return OrderItemTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -17600,7 +17705,7 @@ open class ReviewItem ( open var created_at: String, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ReviewItem", "pages/mall/consumer/product-reviews.uvue", 162, 6) + return UTSSourceMapPosition("ReviewItem", "pages/mall/consumer/product-reviews.uvue", 163, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return ReviewItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -17800,7 +17905,7 @@ open class StatsType__1 ( open var rating_distribution: Map, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("StatsType", "pages/mall/consumer/product-reviews.uvue", 179, 6) + return UTSSourceMapPosition("StatsType", "pages/mall/consumer/product-reviews.uvue", 180, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return StatsType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -18499,7 +18604,7 @@ open class ShareRecordType ( open var completed_at: String? = null, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ShareRecordType", "pages/mall/consumer/share/detail.uvue", 98, 6) + return UTSSourceMapPosition("ShareRecordType", "pages/mall/consumer/share/detail.uvue", 99, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return ShareRecordTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -18665,7 +18770,7 @@ open class BuyerType ( open var created_at: String, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("BuyerType", "pages/mall/consumer/share/detail.uvue", 112, 6) + return UTSSourceMapPosition("BuyerType", "pages/mall/consumer/share/detail.uvue", 113, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return BuyerTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -19089,7 +19194,7 @@ open class MessageType ( open var created_at: String, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MessageType", "pages/mall/consumer/message-detail.uvue", 34, 6) + return UTSSourceMapPosition("MessageType", "pages/mall/consumer/message-detail.uvue", 35, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return MessageTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) @@ -19213,7 +19318,7 @@ open class ExtraInfoItem ( open var value: String, ) : UTSReactiveObject(), IUTSSourceMap { override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ExtraInfoItem", "pages/mall/consumer/message-detail.uvue", 45, 6) + return UTSSourceMapPosition("ExtraInfoItem", "pages/mall/consumer/message-detail.uvue", 46, 6) } override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { return ExtraInfoItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) diff --git a/unpackage/cache/.app-android/src/pages/main/cart.kt b/unpackage/cache/.app-android/src/pages/main/cart.kt index 6e86cb17..c0f8838b 100644 --- a/unpackage/cache/.app-android/src/pages/main/cart.kt +++ b/unpackage/cache/.app-android/src/pages/main/cart.kt @@ -154,25 +154,44 @@ open class GenPagesMainCart : BasePage { val refreshRecommend = fun(): UTSPromise { return wrapUTSPromise(suspend w1@{ try { - val hotResp = await(supabaseService.searchProducts("", recommendPage.value, 6, "sales")) - val recommends = hotResp.data - if (recommends.length === 0 && recommendPage.value > 1) { - recommendPage.value = 1 - val firstPageResp = await(supabaseService.searchProducts("", 1, 6, "sales")) - val firstRecommends = firstPageResp.data - if (firstRecommends.length > 0) { - updateRecommendList(firstRecommends) - uni_showToast(ShowToastOptions(title = "已重置推荐", icon = "none")) - } + if (loading.value) { return@w1 } + loading.value = true + uni_showLoading(ShowLoadingOptions(title = "正在挑选...", mask = true)) + val maxOffsetPages: Number = 20 + val sorts = _uA( + "sales", + "price_asc", + "rating" + ) + val nextRandomPage = Math.floor(Math.random() * maxOffsetPages) + 1 + val randomSort = sorts[Math.floor(Math.random() * sorts.length)] + console.log("[refreshRecommend] 换一批: 随机页=" + nextRandomPage + ", 随机排=" + randomSort, " at pages/main/cart.uvue:355") + val hotResp = await(supabaseService.searchProducts("", nextRandomPage, 6, randomSort)) + var recommends = hotResp.data + if (recommends.length === 0) { + val fallbackResp = await(supabaseService.searchProducts("", 1, 6, "sales")) + recommends = fallbackResp.data + } if (recommends.length > 0) { + recommends.sort(fun(_a, _b): Number { + return Math.random() - 0.5 + }) updateRecommendList(recommends) - uni_showToast(ShowToastOptions(title = "已更新推荐", icon = "none")) + uni_hideLoading() + uni_showToast(ShowToastOptions(title = "已为你换一批好物", icon = "none", duration = 1000)) + } else { + uni_hideLoading() } } catch (error: Throwable) { - console.error("刷新推荐失败:", error, " at pages/main/cart.uvue:365") + uni_hideLoading() + console.error("刷新推荐失败:", error, " at pages/main/cart.uvue:382") + uni_showToast(ShowToastOptions(title = "加载失败,请重试", icon = "none")) + } + finally { + loading.value = false } }) } @@ -182,7 +201,7 @@ open class GenPagesMainCart : BasePage { try { val supabaseCartItems = await(supabaseService.getCartItems()) val transformedItems = supabaseCartItems.map(fun(item: CartItem): LocalCartItem { - console.log("CartItem raw: id=" + item.id + ", shop_id=" + item.shop_id + ", shop_name=" + item.shop_name + ", name=" + item.product_name + ", price=" + item.product_price, " at pages/main/cart.uvue:380") + console.log("CartItem raw: id=" + item.id + ", shop_id=" + item.shop_id + ", shop_name=" + item.shop_name + ", name=" + item.product_name + ", price=" + item.product_price, " at pages/main/cart.uvue:400") val shopId = if ((item.shop_id != null && item.shop_id !== "")) { item.shop_id!! } else { @@ -201,7 +220,7 @@ open class GenPagesMainCart : BasePage { , image = item.product_image ?: "/static/images/default-product.png", spec = item.product_specification ?: "标准规格", quantity = item.quantity ?: 1, selected = item.selected ?: false, productId = item.product_id ?: "", skuId = item.sku_id ?: "", merchantId = item.merchant_id ?: "") } ) - console.log("Transformed items count:", transformedItems.length, " at pages/main/cart.uvue:402") + console.log("Transformed items count:", transformedItems.length, " at pages/main/cart.uvue:422") cartItems.value = transformedItems var recommends = await(supabaseService.getRecommendedProducts(6)) if (recommends.length === 0) { @@ -217,7 +236,7 @@ open class GenPagesMainCart : BasePage { } } catch (error: Throwable) { - console.error("加载购物车数据失败:", error, " at pages/main/cart.uvue:431") + console.error("加载购物车数据失败:", error, " at pages/main/cart.uvue:451") cartItems.value = _uA() } finally { @@ -241,7 +260,7 @@ open class GenPagesMainCart : BasePage { cartItems.value = cartItems.value.slice() val success = await(supabaseService.updateCartItemSelection(itemId, newSelected)) if (!success) { - console.error("更新选中状态失败", " at pages/main/cart.uvue:454") + console.error("更新选中状态失败", " at pages/main/cart.uvue:474") cartItems.value[index].selected = !newSelected cartItems.value = cartItems.value.slice() uni_showToast(ShowToastOptions(title = "网络异常,请重试", icon = "none")) @@ -251,9 +270,9 @@ open class GenPagesMainCart : BasePage { } val toggleShopSelect = fun(shopId: String): UTSPromise { return wrapUTSPromise(suspend w1@{ - console.log("[toggleShopSelect] shopId:", shopId, " at pages/main/cart.uvue:464") - console.log("[toggleShopSelect] shopId length:", shopId.length, " at pages/main/cart.uvue:465") - console.log("[toggleShopSelect] cartItems.value.length:", cartItems.value.length, " at pages/main/cart.uvue:466") + console.log("[toggleShopSelect] shopId:", shopId, " at pages/main/cart.uvue:484") + console.log("[toggleShopSelect] shopId length:", shopId.length, " at pages/main/cart.uvue:485") + console.log("[toggleShopSelect] cartItems.value.length:", cartItems.value.length, " at pages/main/cart.uvue:486") val shopItems: UTSArray = _uA() run { var i: Number = 0 @@ -261,14 +280,14 @@ open class GenPagesMainCart : BasePage { val item = cartItems.value[i] val itemShopId = item.shopId val isMatch = compareStrings(itemShopId, shopId) - console.log("[toggleShopSelect] checking item:", item.id, "item.shopId:", itemShopId, "match:", isMatch, " at pages/main/cart.uvue:475") + console.log("[toggleShopSelect] checking item:", item.id, "item.shopId:", itemShopId, "match:", isMatch, " at pages/main/cart.uvue:495") if (isMatch) { shopItems.push(item) } i++ } } - console.log("[toggleShopSelect] shopItems count:", shopItems.length, " at pages/main/cart.uvue:480") + console.log("[toggleShopSelect] shopItems count:", shopItems.length, " at pages/main/cart.uvue:500") if (shopItems.length === 0) { return@w1 } @@ -284,7 +303,7 @@ open class GenPagesMainCart : BasePage { } } val newState = !allSelected - console.log("[toggleShopSelect] allSelected:", allSelected, "newState:", newState, " at pages/main/cart.uvue:493") + console.log("[toggleShopSelect] allSelected:", allSelected, "newState:", newState, " at pages/main/cart.uvue:513") val shopItemIds: UTSArray = _uA() run { var i: Number = 0 @@ -293,7 +312,7 @@ open class GenPagesMainCart : BasePage { i++ } } - console.log("[toggleShopSelect] shopItemIds:", shopItemIds, " at pages/main/cart.uvue:499") + console.log("[toggleShopSelect] shopItemIds:", shopItemIds, " at pages/main/cart.uvue:519") val newCartItems: UTSArray = _uA() run { var i: Number = 0 @@ -301,7 +320,7 @@ open class GenPagesMainCart : BasePage { val item = cartItems.value[i] val isMatch = compareStrings(item.shopId, shopId) if (isMatch) { - console.log("[toggleShopSelect] updating item:", item.id, "to selected:", newState, " at pages/main/cart.uvue:507") + console.log("[toggleShopSelect] updating item:", item.id, "to selected:", newState, " at pages/main/cart.uvue:527") val newItem = LocalCartItem(id = item.id, shopId = item.shopId, shopName = item.shopName, name = item.name, price = item.price, image = item.image, spec = item.spec, quantity = item.quantity, selected = newState, productId = item.productId, skuId = item.skuId, merchantId = item.merchantId) newCartItems.push(newItem) } else { @@ -313,7 +332,7 @@ open class GenPagesMainCart : BasePage { cartItems.value = newCartItems val success = await(supabaseService.batchUpdateCartItemSelection(shopItemIds, newState)) if (!success) { - console.error("批量更新店铺商品选中状态失败", " at pages/main/cart.uvue:535") + console.error("批量更新店铺商品选中状态失败", " at pages/main/cart.uvue:555") uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) loadCartData() } @@ -322,7 +341,7 @@ open class GenPagesMainCart : BasePage { val toggleSelectAll = fun(): UTSPromise { return wrapUTSPromise(suspend w1@{ val newSelectedState = !allSelected.value - val oldItems = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(cartItems.value)), " at pages/main/cart.uvue:550") as UTSArray + val oldItems = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(cartItems.value)), " at pages/main/cart.uvue:570") as UTSArray val selectedItems = cartItems.value.map(fun(item): LocalCartItem { item.selected = newSelectedState return item @@ -338,7 +357,7 @@ open class GenPagesMainCart : BasePage { } val success = await(supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState)) if (!success) { - console.error("批量更新选中状态失败", " at pages/main/cart.uvue:564") + console.error("批量更新选中状态失败", " at pages/main/cart.uvue:584") cartItems.value = oldItems uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) } @@ -361,7 +380,7 @@ open class GenPagesMainCart : BasePage { val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) updatingItems.value.`delete`(itemId) if (!success) { - console.error("更新商品数量失败", " at pages/main/cart.uvue:588") + console.error("更新商品数量失败", " at pages/main/cart.uvue:608") cartItems.value[index].quantity = newQuantity - 1 cartItems.value = cartItems.value.slice() uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) @@ -387,7 +406,7 @@ open class GenPagesMainCart : BasePage { val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) updatingItems.value.`delete`(itemId) if (!success) { - console.error("更新商品数量失败", " at pages/main/cart.uvue:613") + console.error("更新商品数量失败", " at pages/main/cart.uvue:633") cartItems.value[index].quantity = newQuantity + 1 cartItems.value = cartItems.value.slice() uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) @@ -401,7 +420,7 @@ open class GenPagesMainCart : BasePage { cartItems.value = cartItems.value.slice() uni_showToast(ShowToastOptions(title = "已移除", icon = "none")) } else { - console.error("删除商品失败", " at pages/main/cart.uvue:636") + console.error("删除商品失败", " at pages/main/cart.uvue:656") uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) } } @@ -438,7 +457,7 @@ open class GenPagesMainCart : BasePage { } uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) } else { - console.error("批量删除商品失败", " at pages/main/cart.uvue:685") + console.error("批量删除商品失败", " at pages/main/cart.uvue:705") uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) } } @@ -470,13 +489,13 @@ open class GenPagesMainCart : BasePage { uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) loadCartData() } else { - console.error("添加商品到购物车失败", " at pages/main/cart.uvue:733") + console.error("添加商品到购物车失败", " at pages/main/cart.uvue:753") uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) } } } catch (error: Throwable) { - console.error("添加商品到购物车异常:", error, " at pages/main/cart.uvue:741") + console.error("添加商品到购物车异常:", error, " at pages/main/cart.uvue:761") uni_hideLoading() uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) } @@ -499,19 +518,19 @@ open class GenPagesMainCart : BasePage { uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) } val navigateToProduct = fun(product: Any){ - console.log("navigateToProduct", product, " at pages/main/cart.uvue:770") - val productJson = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/main/cart.uvue:773") as UTSJSONObject + console.log("navigateToProduct", product, " at pages/main/cart.uvue:790") + val productJson = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/main/cart.uvue:793") as UTSJSONObject var productId = productJson.getString("productId") if (productId == null || productId == "") { productId = productJson.getString("id") } if (productId == null || productId == "") { - console.error("无法获取商品ID", product, " at pages/main/cart.uvue:782") + console.error("无法获取商品ID", product, " at pages/main/cart.uvue:802") return } var paramsArr: UTSArray = _uA() - paramsArr.push("id=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:788")) - paramsArr.push("productId=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:789")) + paramsArr.push("id=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:808")) + paramsArr.push("productId=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:809")) val price = productJson.getNumber("price") ?: 0 paramsArr.push("price=" + price) var originalPrice = productJson.getNumber("original_price") @@ -523,11 +542,11 @@ open class GenPagesMainCart : BasePage { } paramsArr.push("originalPrice=" + originalPrice) val name = productJson.getString("name") ?: "" - paramsArr.push("name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/main/cart.uvue:804")) + paramsArr.push("name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/main/cart.uvue:824")) val image = productJson.getString("image") ?: "/static/product1.jpg" - paramsArr.push("image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/main/cart.uvue:807")) + paramsArr.push("image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/main/cart.uvue:827")) val url = "/pages/mall/consumer/product-detail?" + paramsArr.join("&") - console.log("Navigate to:", url, " at pages/main/cart.uvue:810") + console.log("Navigate to:", url, " at pages/main/cart.uvue:830") uni_navigateTo(NavigateToOptions(url = url)) } val goToCheckout = fun(){ @@ -559,7 +578,7 @@ open class GenPagesMainCart : BasePage { uni_setStorageSync("checkout_items", JSON.stringify(selectedItems)) } catch (e: Throwable) { - console.error("存储结算数据失败", e, " at pages/main/cart.uvue:849") + console.error("存储结算数据失败", e, " at pages/main/cart.uvue:869") uni_showToast(ShowToastOptions(title = "系统异常,请重试", icon = "none")) return } diff --git a/unpackage/cache/.app-android/src/pages/main/profile.kt b/unpackage/cache/.app-android/src/pages/main/profile.kt index c742ec4e..6da05743 100644 --- a/unpackage/cache/.app-android/src/pages/main/profile.kt +++ b/unpackage/cache/.app-android/src/pages/main/profile.kt @@ -174,6 +174,12 @@ open class GenPagesMainProfile : BasePage { _cE("text", _uM("class" to "service-text"), "会员中心") ), 8, _uA( "onClick" + )), + _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToSettings), _uA( + _cE("text", _uM("class" to "service-icon"), "⚙️"), + _cE("text", _uM("class" to "service-text"), "设置") + ), 8, _uA( + "onClick" )) )) ), 4), @@ -183,7 +189,7 @@ open class GenPagesMainProfile : BasePage { _cE("text", _uM("class" to "view-all", "onClick" to fun(){ _ctx.goToOrders(_ctx.currentOrderTab) } - ), "查看更多 >", 8, _uA( + ), "查看更多 ❯", 8, _uA( "onClick" )) )), @@ -282,7 +288,7 @@ open class GenPagesMainProfile : BasePage { _cE("view", _uM("class" to "order-shop"), _uA( _cE("text", _uM("class" to "shop-icon"), "🏪"), _cE("text", _uM("class" to "shop-name"), _tD(_ctx.getOrderShopName(order)), 1), - _cE("text", _uM("class" to "shop-arrow"), "›") + _cE("text", _uM("class" to "shop-arrow"), " › ") )), _cE("view", _uM("class" to "status-row"), _uA( _cE("text", _uM("class" to _nC(_uA( @@ -475,7 +481,7 @@ open class GenPagesMainProfile : BasePage { var i: Number = 0 while(i < orders.length){ val rawItem = orders[i] - val o = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawItem)), " at pages/main/profile.uvue:426") as UTSJSONObject + val o = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawItem)), " at pages/main/profile.uvue:430") as UTSJSONObject var status = o.getNumber("status") if (status == null) { val orderStatus = o.getNumber("order_status") @@ -575,7 +581,7 @@ open class GenPagesMainProfile : BasePage { this.orderCounts = OrderCountsType(total = total, pending = pending, toship = toship, shipped = shipped, review = review) } catch (e: Throwable) { - console.error("加载订单异常", e, " at pages/main/profile.uvue:507") + console.error("加载订单异常", e, " at pages/main/profile.uvue:511") } }) } @@ -624,7 +630,7 @@ open class GenPagesMainProfile : BasePage { uAvatar = (profile as UTSJSONObject).getString("avatar_url") ?: "" uGender = (profile as UTSJSONObject).getNumber("gender") ?: 0 } else { - val profileObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at pages/main/profile.uvue:551") as UTSJSONObject + val profileObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at pages/main/profile.uvue:555") as UTSJSONObject uId = profileObj.getString("user_id") ?: "" uPhone = profileObj.getString("phone") ?: "" uEmail = profileObj.getString("email") ?: "" @@ -659,7 +665,7 @@ open class GenPagesMainProfile : BasePage { this.userStats = UserStatsType__1(points = points, balance = balanceValue, level = this.calculateLevel(points)) } catch (e: Throwable) { - console.error("加载用户信息失败", e, " at pages/main/profile.uvue:599") + console.error("加载用户信息失败", e, " at pages/main/profile.uvue:603") } }) } @@ -705,7 +711,7 @@ open class GenPagesMainProfile : BasePage { this.serviceCounts.coupons = count } catch (e: Throwable) { - console.error("获取优惠券数量失败", e, " at pages/main/profile.uvue:657") + console.error("获取优惠券数量失败", e, " at pages/main/profile.uvue:661") this.serviceCounts.coupons = 0 } }) @@ -876,7 +882,7 @@ open class GenPagesMainProfile : BasePage { val shopsRaw = order.ml_shops if (shopsRaw != null) { val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:776") + val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:780") if (shopParsed != null) { val shopObj = shopParsed as UTSJSONObject return shopObj.getString("merchant_id") ?: "" @@ -931,7 +937,7 @@ open class GenPagesMainProfile : BasePage { var i: Number = 0 while(i < items.length){ val itemStr = JSON.stringify(items[i]) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:831") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:835") if (itemParsed == null) { completed++ if (completed === total) { @@ -1025,7 +1031,7 @@ open class GenPagesMainProfile : BasePage { if (items.length > 0) { val firstItem = items[0] val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:933") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:937") if (itemParsed == null) { return "/static/product1.jpg" } @@ -1053,7 +1059,7 @@ open class GenPagesMainProfile : BasePage { if (items.length > 0) { val firstItem = items[0] val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:951") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:955") if (itemParsed == null) { return "精选商品" } @@ -1078,7 +1084,7 @@ open class GenPagesMainProfile : BasePage { if (items.length > 0) { val firstItem = items[0] val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:969") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:973") if (itemParsed == null) { return "" } @@ -1091,7 +1097,7 @@ open class GenPagesMainProfile : BasePage { val specStr = specRaw as String if (specStr.startsWith("{")) { try { - val specObj = UTSAndroid.consoleDebugError(JSON.parse(specStr), " at pages/main/profile.uvue:979") as UTSJSONObject + val specObj = UTSAndroid.consoleDebugError(JSON.parse(specStr), " at pages/main/profile.uvue:983") as UTSJSONObject val parts: UTSArray = _uA() val color = specObj.get("Color") if (color != null) { @@ -1128,7 +1134,7 @@ open class GenPagesMainProfile : BasePage { val shopsRaw = order.ml_shops if (shopsRaw != null) { val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:1010") + val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:1014") if (shopParsed != null) { val shopObj = shopParsed as UTSJSONObject val name = shopObj.getString("shop_name") @@ -1205,7 +1211,7 @@ open class GenPagesMainProfile : BasePage { if (items.length > 0) { val firstItem = items[0] val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:1096") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:1100") if (itemParsed == null) { return } @@ -1309,7 +1315,7 @@ open class GenPagesMainProfile : BasePage { } open var handleOrderUpdated = ::gen_handleOrderUpdated_fn open fun gen_handleOrderUpdated_fn(data: Any) { - console.log("收到订单更新事件:", data, " at pages/main/profile.uvue:1246") + console.log("收到订单更新事件:", data, " at pages/main/profile.uvue:1250") this.refreshData() val dataObj = data as UTSJSONObject val status = dataObj.getNumber("status") diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/cart.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/cart.kt deleted file mode 100644 index 40f83436..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/cart.kt +++ /dev/null @@ -1,786 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNIEC68BC3 -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerCart : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerCart) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerCart - val _cache = __ins.renderCache - val compareStrings = fun(a: String, b: String): Boolean { - console.log("[compareStrings] a length:", a.length, "b length:", b.length, " at pages/mall/consumer/cart.uvue:206") - console.log("[compareStrings] a type:", UTSAndroid.`typeof`(a), "b type:", UTSAndroid.`typeof`(b), " at pages/mall/consumer/cart.uvue:207") - console.log("[compareStrings] a value:", JSON.stringify(a), " at pages/mall/consumer/cart.uvue:208") - console.log("[compareStrings] b value:", JSON.stringify(b), " at pages/mall/consumer/cart.uvue:209") - if (a.length !== b.length) { - return false - } - run { - var i: Number = 0 - while(i < a.length){ - val aCode = a.charCodeAt(i) - val bCode = b.charCodeAt(i) - if (aCode != null && bCode != null && aCode !== bCode) { - console.log("[compareStrings] mismatch at index:", i, "a:", aCode, "b:", bCode, " at pages/mall/consumer/cart.uvue:216") - return false - } - i++ - } - } - return true - } - val cartItems = ref(_uA()) - val recommendProducts = ref(_uA()) - val recommendPage = ref(1) - val loading = ref(false) - val statusBarHeight = ref(0) - val isManageMode = ref(false) - val updatingItems = ref>(Set()) - val cartGroups = computed>(fun(): UTSArray { - console.log("[cartGroups] 计算购物车分组, cartItems count:", cartItems.value.length, " at pages/mall/consumer/cart.uvue:245") - val groups = Map() - cartItems.value.forEach(fun(item: LocalCartItem){ - console.log("[cartGroups] item:", item.id, "shopId:", item.shopId, "shopName:", item.shopName, " at pages/mall/consumer/cart.uvue:249") - val shopKey = item.shopId - if (!groups.has(shopKey)) { - groups.set(shopKey, CartGroup(shopId = item.shopId, shopName = item.shopName, merchantId = item.merchantId, items = _uA())) - } - val group = groups.get(shopKey) - if (group != null) { - group.items.push(item) - } - } - ) - val groupArray: UTSArray = _uA() - groups.forEach(fun(value: CartGroup){ - console.log("[cartGroups] group:", value.shopId, "items count:", value.items.length, " at pages/mall/consumer/cart.uvue:268") - groupArray.push(value) - } - ) - return groupArray - } - ) - val allSelected = computed(fun(): Boolean { - return cartItems.value.length > 0 && cartItems.value.every(fun(item: LocalCartItem): Boolean { - return item.selected - } - ) - } - ) - val selectedCount = computed(fun(): Number { - return cartItems.value.filter(fun(item: LocalCartItem): Boolean { - return item.selected - } - ).reduce(fun(sum: Number, item: LocalCartItem): Number { - return sum + item.quantity - } - , 0) - } - ) - val totalPrice = computed(fun(): String { - return cartItems.value.filter(fun(item: LocalCartItem): Boolean { - return item.selected - } - ).reduce(fun(sum: Number, item: LocalCartItem): Number { - return sum + item.price * item.quantity - } - , 0).toFixed(2) - } - ) - val isShopSelected = fun(shopId: String): Boolean { - val shopItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - if (compareStrings(cartItems.value[i].shopId, shopId)) { - shopItems.push(cartItems.value[i]) - } - i++ - } - } - if (shopItems.length === 0) { - return false - } - run { - var i: Number = 0 - while(i < shopItems.length){ - if (!shopItems[i].selected) { - return false - } - i++ - } - } - return true - } - val toggleManageMode = fun(){ - isManageMode.value = !isManageMode.value - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight ?: 0 - } - onMounted(fun(){ - initPage() - } - ) - val updateRecommendList = fun(recommends: UTSArray){ - recommendProducts.value = recommends.map(fun(p: Product): RecommendProduct { - return RecommendProduct(id = p.id, shopId = p.merchant_id ?: "unknown", shopName = p.shop_name ?: "商城推荐", name = p.name, price = p.base_price ?: p.market_price ?: 0, image = p.main_image_url ?: p.image_url ?: "/static/images/default-product.png", skuId = "", merchant_id = p.merchant_id ?: "") - } - ) - } - val refreshRecommend = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - recommendPage.value = recommendPage.value + 1 - val hotResp = await(supabaseService.searchProducts("", recommendPage.value, 6, "sales")) - val recommends = hotResp.data - if (recommends.length === 0 && recommendPage.value > 1) { - recommendPage.value = 1 - val firstPageResp = await(supabaseService.searchProducts("", 1, 6, "sales")) - val firstRecommends = firstPageResp.data - if (firstRecommends.length > 0) { - updateRecommendList(firstRecommends) - uni_showToast(ShowToastOptions(title = "已重置推荐", icon = "none")) - } - return@w1 - } - if (recommends.length > 0) { - updateRecommendList(recommends) - uni_showToast(ShowToastOptions(title = "已更新推荐", icon = "none")) - } - } - catch (error: Throwable) { - console.error("刷新推荐失败:", error, " at pages/mall/consumer/cart.uvue:368") - } - }) - } - val loadCartData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val supabaseCartItems = await(supabaseService.getCartItems()) - val transformedItems = supabaseCartItems.map(fun(item: CartItem): LocalCartItem { - console.log("CartItem raw: id=" + item.id + ", shop_id=" + item.shop_id + ", shop_name=" + item.shop_name + ", name=" + item.product_name + ", price=" + item.product_price, " at pages/mall/consumer/cart.uvue:383") - val shopId = if ((item.shop_id != null && item.shop_id !== "")) { - item.shop_id!! - } else { - "default_shop" - } - val shopName = if ((item.shop_name != null && item.shop_name !== "")) { - item.shop_name!! - } else { - "商城优选" - } - return LocalCartItem(id = item.id, shopId = shopId, shopName = shopName, name = item.product_name ?: "未知商品", price = if (item.product_price != null) { - item.product_price!! - } else { - 0 - } - , image = item.product_image ?: "/static/images/default-product.png", spec = item.product_specification ?: "标准规格", quantity = item.quantity ?: 1, selected = item.selected ?: false, productId = item.product_id ?: "", skuId = item.sku_id ?: "", merchantId = item.merchant_id ?: "") - } - ) - console.log("Transformed items count:", transformedItems.length, " at pages/mall/consumer/cart.uvue:405") - cartItems.value = transformedItems - var recommends = await(supabaseService.getRecommendedProducts(6)) - if (recommends.length === 0) { - val hotResp = await(supabaseService.searchProducts("", 1, 6, "sales")) - recommends = hotResp.data - } - if (recommends.length > 0) { - recommendProducts.value = recommends.map(fun(p: Product): RecommendProduct { - return RecommendProduct(id = p.id, shopId = p.merchant_id ?: "unknown", shopName = p.shop_name ?: "商城推荐", name = p.name, price = p.base_price ?: p.market_price ?: 0, image = p.main_image_url ?: p.image_url ?: "/static/images/default-product.png", skuId = "", merchant_id = p.merchant_id ?: "") - }) - } else { - recommendProducts.value = _uA() - } - } - catch (error: Throwable) { - console.error("加载购物车数据失败:", error, " at pages/mall/consumer/cart.uvue:434") - cartItems.value = _uA() - } - finally { - loading.value = false - } - }) - } - onShow__1(fun(){ - loadCartData() - } - ) - val toggleSelect = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend { - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - val newSelected = !cartItems.value[index].selected - cartItems.value[index].selected = newSelected - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemSelection(itemId, newSelected)) - if (!success) { - console.error("更新选中状态失败", " at pages/mall/consumer/cart.uvue:457") - cartItems.value[index].selected = !newSelected - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "网络异常,请重试", icon = "none")) - } - } - }) - } - val toggleShopSelect = fun(shopId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("[toggleShopSelect] shopId:", shopId, " at pages/mall/consumer/cart.uvue:467") - console.log("[toggleShopSelect] shopId length:", shopId.length, " at pages/mall/consumer/cart.uvue:468") - console.log("[toggleShopSelect] cartItems.value.length:", cartItems.value.length, " at pages/mall/consumer/cart.uvue:469") - val shopItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - val item = cartItems.value[i] - val itemShopId = item.shopId - val isMatch = compareStrings(itemShopId, shopId) - console.log("[toggleShopSelect] checking item:", item.id, "item.shopId:", itemShopId, "match:", isMatch, " at pages/mall/consumer/cart.uvue:478") - if (isMatch) { - shopItems.push(item) - } - i++ - } - } - console.log("[toggleShopSelect] shopItems count:", shopItems.length, " at pages/mall/consumer/cart.uvue:483") - if (shopItems.length === 0) { - return@w1 - } - var allSelected = true - run { - var i: Number = 0 - while(i < shopItems.length){ - if (!shopItems[i].selected) { - allSelected = false - break - } - i++ - } - } - val newState = !allSelected - console.log("[toggleShopSelect] allSelected:", allSelected, "newState:", newState, " at pages/mall/consumer/cart.uvue:496") - val shopItemIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < shopItems.length){ - shopItemIds.push(shopItems[i].id) - i++ - } - } - console.log("[toggleShopSelect] shopItemIds:", shopItemIds, " at pages/mall/consumer/cart.uvue:502") - val newCartItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - val item = cartItems.value[i] - val isMatch = compareStrings(item.shopId, shopId) - if (isMatch) { - console.log("[toggleShopSelect] updating item:", item.id, "to selected:", newState, " at pages/mall/consumer/cart.uvue:510") - val newItem = LocalCartItem(id = item.id, shopId = item.shopId, shopName = item.shopName, name = item.name, price = item.price, image = item.image, spec = item.spec, quantity = item.quantity, selected = newState, productId = item.productId, skuId = item.skuId, merchantId = item.merchantId) - newCartItems.push(newItem) - } else { - newCartItems.push(item) - } - i++ - } - } - cartItems.value = newCartItems - val success = await(supabaseService.batchUpdateCartItemSelection(shopItemIds, newState)) - if (!success) { - console.error("批量更新店铺商品选中状态失败", " at pages/mall/consumer/cart.uvue:538") - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - loadCartData() - } - }) - } - val toggleSelectAll = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val newSelectedState = !allSelected.value - val oldItems = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(cartItems.value)), " at pages/mall/consumer/cart.uvue:553") as UTSArray - val selectedItems = cartItems.value.map(fun(item): LocalCartItem { - item.selected = newSelectedState - return item - } - ) - cartItems.value = selectedItems - val itemIds = cartItems.value.map(fun(item): String { - return item.id - } - ) - if (itemIds.length === 0) { - return@w1 - } - val success = await(supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState)) - if (!success) { - console.error("批量更新选中状态失败", " at pages/mall/consumer/cart.uvue:567") - cartItems.value = oldItems - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val increaseQuantity = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (updatingItems.value.has(itemId)) { - return@w1 - } - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - updatingItems.value.add(itemId) - val newQuantity = cartItems.value[index].quantity + 1 - cartItems.value[index].quantity = newQuantity - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) - updatingItems.value.`delete`(itemId) - if (!success) { - console.error("更新商品数量失败", " at pages/mall/consumer/cart.uvue:591") - cartItems.value[index].quantity = newQuantity - 1 - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) - } - } - }) - } - val decreaseQuantity = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (updatingItems.value.has(itemId)) { - return@w1 - } - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - if (cartItems.value[index].quantity > 1) { - updatingItems.value.add(itemId) - val newQuantity = cartItems.value[index].quantity - 1 - cartItems.value[index].quantity = newQuantity - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) - updatingItems.value.`delete`(itemId) - if (!success) { - console.error("更新商品数量失败", " at pages/mall/consumer/cart.uvue:616") - cartItems.value[index].quantity = newQuantity + 1 - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) - } - } else { - uni_showModal(ShowModalOptions(title = "提示", content = "确定要从购物车移除该商品吗?", success = fun(res){ - if (res.confirm) { - supabaseService.deleteCartItem(itemId).then(fun(success){ - if (success) { - cartItems.value.splice(index, 1) - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "已移除", icon = "none")) - } else { - console.error("删除商品失败", " at pages/mall/consumer/cart.uvue:639") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - } - }) - } - val deleteSelectedItems = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (selectedCount.value === 0) { - uni_showToast(ShowToastOptions(title = "请选择要删除的商品", icon = "none")) - return@w1 - } - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除选中的 " + selectedCount.value + " 件商品吗?", success = fun(res){ - if (res.confirm) { - val selectedItemIds = cartItems.value.filter(fun(item): Boolean { - return item.selected - } - ).map(fun(item): String { - return item.id - } - ) - supabaseService.batchDeleteCartItems(selectedItemIds).then(fun(success){ - if (success) { - cartItems.value = cartItems.value.filter(fun(item): Boolean { - return !item.selected - }) - if (cartItems.value.length === 0) { - isManageMode.value = false - } - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - } else { - console.error("批量删除商品失败", " at pages/mall/consumer/cart.uvue:688") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - }) - } - val addToCart = fun(product: RecommendProduct): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val productId = product.id - val skuId = product.skuId - val merchantId = product.merchant_id - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, skuId, merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - loadCartData() - } else { - console.error("添加商品到购物车失败", " at pages/mall/consumer/cart.uvue:736") - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - catch (error: Throwable) { - console.error("添加商品到购物车异常:", error, " at pages/mall/consumer/cart.uvue:744") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - }) - } - val navigateToShop = fun(shopId: String, merchantId: Any){ - if (shopId == "" || shopId === "default_shop" || shopId === "unknown") { - return - } - var url = "/pages/mall/consumer/shop-detail?id=" + shopId - if (merchantId != null) { - val mId = "" + merchantId - if (mId !== "" && mId !== "null" && mId !== "undefined" && mId !== "false") { - url += "&merchantId=" + mId - } - } - uni_navigateTo(NavigateToOptions(url = url)) - } - val goShopping = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/index")) - } - val navigateToProduct = fun(product: Any){ - console.log("navigateToProduct", product, " at pages/mall/consumer/cart.uvue:773") - val productJson = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/mall/consumer/cart.uvue:776") as UTSJSONObject - var productId = productJson.getString("productId") - if (productId == null || productId == "") { - productId = productJson.getString("id") - } - if (productId == null || productId == "") { - console.error("无法获取商品ID", product, " at pages/mall/consumer/cart.uvue:785") - return - } - var paramsArr: UTSArray = _uA() - paramsArr.push("id=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/mall/consumer/cart.uvue:791")) - paramsArr.push("productId=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/mall/consumer/cart.uvue:792")) - val price = productJson.getNumber("price") ?: 0 - paramsArr.push("price=" + price) - var originalPrice = productJson.getNumber("original_price") - if (originalPrice == null) { - originalPrice = productJson.getNumber("originalPrice") - } - if (originalPrice == null) { - originalPrice = parseFloat((price * 1.2).toFixed(2)) - } - paramsArr.push("originalPrice=" + originalPrice) - val name = productJson.getString("name") ?: "" - paramsArr.push("name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/mall/consumer/cart.uvue:807")) - val image = productJson.getString("image") ?: "/static/product1.jpg" - paramsArr.push("image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/mall/consumer/cart.uvue:810")) - val url = "/pages/mall/consumer/product-detail?" + paramsArr.join("&") - console.log("Navigate to:", url, " at pages/mall/consumer/cart.uvue:813") - uni_navigateTo(NavigateToOptions(url = url)) - } - val goToCheckout = fun(){ - if (selectedCount.value === 0) { - uni_showToast(ShowToastOptions(title = "请选择商品", icon = "none")) - return - } - val selectedItems = cartItems.value.filter(fun(item): Boolean { - return item.selected - } - ).map(fun(item): UTSJSONObject { - return (object : UTSJSONObject() { - var id = item.id - var product_id = item.productId ?: item.id - var sku_id = item.skuId ?: item.id - var product_name = item.name - var shop_id = item.shopId - var shop_name = item.shopName - var merchant_id = item.merchantId - var product_image = item.image - var sku_specifications = item.spec - var price = item.price - var quantity = item.quantity - }) - } - ) - uni_setStorageSync("checkout_type", "cart") - try { - uni_setStorageSync("checkout_items", JSON.stringify(selectedItems)) - } - catch (e: Throwable) { - console.error("存储结算数据失败", e, " at pages/mall/consumer/cart.uvue:852") - uni_showToast(ShowToastOptions(title = "系统异常,请重试", icon = "none")) - return - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/checkout")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "cart-page"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "nav-container"), _uA( - _cE("text", _uM("class" to "nav-title"), "购物车"), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to toggleManageMode), _uA( - _cE("text", _uM("class" to "action-icon"), _tD(if (isManageMode.value) { - "✓" - } else { - "⚙️" - } - ), 1), - _cE("text", _uM("class" to "action-text"), _tD(if (isManageMode.value) { - "完成" - } else { - "管理" - } - ), 1) - )) - )) - )) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("scroll-view", _uM("scroll-y" to true, "class" to "cart-content", "show-scrollbar" to false, "enhanced" to true, "bounces" to true), _uA( - if (isTrue(!loading.value && cartItems.value.length === 0)) { - _cE("view", _uM("key" to 0, "class" to "empty-cart"), _uA( - _cE("text", _uM("class" to "empty-icon"), "🛒"), - _cE("text", _uM("class" to "empty-title"), "购物车是空的"), - _cE("text", _uM("class" to "empty-desc"), "快去挑选喜欢的商品吧"), - _cE("button", _uM("class" to "go-shopping-btn", "onClick" to goShopping), "去逛逛") - )) - } else { - _cE("view", _uM("key" to 1, "class" to "cart-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(cartGroups.value, fun(group, __key, __index, _cached): Any { - return _cE("view", _uM("key" to group.shopId, "class" to "shop-group"), _uA( - _cE("view", _uM("class" to "shop-header"), _uA( - _cE("view", _uM("class" to "shop-select", "onClick" to fun(){ - toggleShopSelect(group.shopId) - } - ), _uA( - if (isTrue(isShopSelected(group.shopId))) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - } - ), 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-icon", "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), "🏪", 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-name", "lines" to 1, "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), _tD(group.shopName), 9, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-arrow", "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), ">", 8, _uA( - "onClick" - )) - )), - _cE(Fragment, null, RenderHelpers.renderList(group.items, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "cart-item"), _uA( - _cE("view", _uM("class" to "item-select", "onClick" to fun(){ - toggleSelect(item.id) - } - ), _uA( - if (isTrue(item.selected)) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - } - ), 8, _uA( - "onClick" - )), - _cE("image", _uM("class" to "item-image", "src" to item.image, "mode" to "aspectFill", "onClick" to fun(){ - navigateToProduct(item) - } - ), null, 8, _uA( - "src", - "onClick" - )), - _cE("view", _uM("class" to "item-info"), _uA( - _cE("view", _uM("class" to "info-top"), _uA( - _cE("text", _uM("class" to "item-name", "lines" to 1), _tD(item.name), 1), - _cE("text", _uM("class" to "item-spec"), _tD(item.spec), 1) - )), - _cE("view", _uM("class" to "item-footer"), _uA( - _cE("text", _uM("class" to "item-price"), "¥" + _tD(item.price), 1), - _cE("view", _uM("class" to "quantity-control"), _uA( - _cE("text", _uM("class" to "quantity-btn", "onClick" to fun(){ - decreaseQuantity(item.id) - } - ), "-", 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "quantity-value"), _tD(item.quantity), 1), - _cE("text", _uM("class" to "quantity-btn", "onClick" to fun(){ - increaseQuantity(item.id) - } - ), "+", 8, _uA( - "onClick" - )) - )) - )) - )) - )) - } - ), 128) - )) - } - ), 128) - )) - } - , - if (cartItems.value.length > 0) { - _cE("view", _uM("key" to 2, "class" to "cart-action-bar"), _uA( - _cE("view", _uM("class" to "action-bar-content"), _uA( - _cE("view", _uM("class" to "action-left"), _uA( - _cE("view", _uM("class" to "select-all", "onClick" to toggleSelectAll), _uA( - if (isTrue(allSelected.value)) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - }, - _cE("text", _uM("class" to "select-all-text"), "全选") - )) - )), - _cE("view", _uM("class" to "action-right"), _uA( - if (isTrue(!isManageMode.value)) { - _cE("view", _uM("key" to 0, "class" to "total-info"), _uA( - _cE("text", _uM("class" to "total-text"), "合计:"), - _cE("text", _uM("class" to "total-price"), "¥" + _tD(totalPrice.value), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(!isManageMode.value)) { - _cE("button", _uM("key" to 1, "class" to "checkout-btn", "onClick" to goToCheckout), " 去结算(" + _tD(selectedCount.value) + ") ", 1) - } else { - _cE("button", _uM("key" to 2, "class" to "delete-btn", "onClick" to deleteSelectedItems), " 删除(" + _tD(selectedCount.value) + ") ", 1) - } - )) - )) - )) - } else { - _cC("v-if", true) - } - , - if (recommendProducts.value.length > 0) { - _cE("view", _uM("key" to 3, "class" to "recommend-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "猜你喜欢"), - _cE("view", _uM("class" to "refresh-btn", "onClick" to refreshRecommend), _uA( - _cE("text", _uM("class" to "refresh-icon"), "🔄"), - _cE("text", _uM("class" to "refresh-text"), "换一批") - )) - )), - _cE("view", _uM("class" to "recommend-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(recommendProducts.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "recommend-item", "onClick" to fun(){ - navigateToProduct(product) - }), _uA( - _cE("image", _uM("class" to "recommend-image", "src" to product.image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "recommend-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "recommend-bottom"), _uA( - _cE("text", _uM("class" to "recommend-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "recommend-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "recommend-add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("cart-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start", "flexShrink" to 0)), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#FFFFFF")), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "action-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4, "color" to "#FFFFFF")), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#FFFFFF", "fontWeight" to "bold")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "cart-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%", "paddingBottom" to 60)), "empty-cart" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20, "textAlign" to "center")), "empty-icon" to _pS(_uM("fontSize" to 80, "color" to "#dddddd", "marginBottom" to 20)), "empty-title" to _pS(_uM("fontSize" to 18, "color" to "#666666", "marginBottom" to 10)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-shopping-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "fontSize" to 16)), "cart-list" to _pS(_uM("backgroundColor" to "rgba(0,0,0,0)", "marginTop" to 10, "marginRight" to 10, "marginBottom" to 10, "marginLeft" to 10, "borderTopLeftRadius" to 0, "borderTopRightRadius" to 0, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "overflow" to "visible")), "shop-group" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 12, "overflow" to "hidden")), "shop-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-start", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "shop-select" to _pS(_uM("width" to 24, "height" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 8, "flexShrink" to 0)), "shop-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6, "flexShrink" to 0)), "shop-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "700", "color" to "#333333", "marginRight" to 4, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "shop-arrow" to _pS(_uM("fontSize" to 12, "color" to "#999999", "flexShrink" to 0)), "cart-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "alignItems" to "center", "height" to 100, "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "item-select" to _pS(_uM("width" to 30, "height" to "100%", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 5)), "selected-icon" to _pS(_uM("width" to 18, "height" to 18, "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9, "textAlign" to "center", "lineHeight" to "18px", "fontSize" to 12)), "unselected-icon" to _pS(_uM("width" to 18, "height" to 18, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9)), "item-image" to _pS(_uM("width" to 70, "height" to 70, "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "marginRight" to 10, "flexShrink" to 0)), "item-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between", "height" to 70, "overflow" to "hidden")), "info-top" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "item-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 2, "overflow" to "hidden", "fontWeight" to "bold", "textOverflow" to "ellipsis")), "item-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to "auto")), "item-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "width" to "100%")), "item-price" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold")), "quantity-control" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden", "height" to 28)), "quantity-btn" to _pS(_uM("width" to 28, "height" to 28, "textAlign" to "center", "lineHeight" to "28px", "fontSize" to 16, "color" to "#333333", "backgroundColor" to "#eeeeee")), "quantity-value" to _pS(_uM("minWidth" to 36, "textAlign" to "center", "fontSize" to 14, "lineHeight" to "28px", "color" to "#333333")), "recommend-section" to _pS(_uM("marginTop" to 20, "marginRight" to 10, "marginBottom" to 20, "marginLeft" to 10, "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-header" to _pS(_uM("marginBottom" to 15, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "refresh-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8)), "refresh-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4)), "refresh-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "recommend-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between")), "recommend-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "recommend-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "recommend-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis")), "recommend-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingRight" to 8)), "recommend-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "recommend-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "recommend-add-icon" to _pS(_uM("color" to "#FFFFFF", "fontSize" to 16, "lineHeight" to 1, "fontWeight" to "bold")), "cart-action-bar" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 10, "marginRight" to 10, "marginBottom" to 10, "marginLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "action-bar-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%")), "action-left" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "action-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-end", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0)), "total-info" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginRight" to 10, "flexShrink" to 1, "overflow" to "hidden")), "total-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginRight" to 2, "whiteSpace" to "nowrap", "flexShrink" to 0)), "total-price" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "checkout-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "fontSize" to 14, "whiteSpace" to "nowrap", "flexShrink" to 0, "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "delete-btn" to _pS(_uM("backgroundColor" to "#ff3b30", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 6, "paddingRight" to 20, "paddingBottom" to 6, "paddingLeft" to 20, "fontSize" to 14, "whiteSpace" to "nowrap", "flexShrink" to 0, "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "select-all" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "select-all-text" to _pS(_uM("marginLeft" to 8, "fontSize" to 14, "color" to "#333333", "whiteSpace" to "nowrap")), "@TRANSITION" to _uM("action-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/category.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/category.kt deleted file mode 100644 index f363841c..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/category.kt +++ /dev/null @@ -1,698 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNIEC68BC3 -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.scanCode as uni_scanCode -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerCategory : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerCategory) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerCategory - val _cache = __ins.renderCache - val statusBarHeight = ref(0) - val headerHeight = ref(44) - val primaryCategories = ref(_uA()) - val subCategories = ref(_uA()) - val productList = ref(_uA()) - val activePrimary = ref("") - val activeSubCategory = ref("") - val selectedParentId = ref("") - val cartCount = ref(3) - val hasMore = ref(true) - val hasLoadedFromParams = ref(false) - val currentPage = ref(1) - val loading = ref(false) - val scrollTop = ref(0) - val pendingCategoryId = ref("") - val currentCategoryName = ref("") - val currentCategoryDesc = ref("") - val pageParams = ref(UTSJSONObject() as Any) - fun gen_loadProducts_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (loading.value) { - return@w1 - } - if (activePrimary.value == "") { - console.warn("activePrimary为空,无法加载商品", " at pages/mall/consumer/category.uvue:161") - return@w1 - } - loading.value = true - try { - console.log("开始加载商品,分类ID:", activePrimary.value, "页码:", currentPage.value, " at pages/mall/consumer/category.uvue:167") - val response = await(supabaseService.getProductsByCategory(activePrimary.value, currentPage.value)) - console.log("商品加载结果:", object : UTSJSONObject() { - var dataCount = response.data.length - var total = response.total - var hasmore = response.hasmore - var page = currentPage.value - }, " at pages/mall/consumer/category.uvue:169") - if (currentPage.value == 1) { - productList.value = response.data - } else { - productList.value.push(*response.data.toTypedArray()) - } - hasMore.value = response.hasmore - var foundCat: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == activePrimary.value) { - foundCat = primaryCategories.value[i] - break - } - i++ - } - } - if (foundCat == null) { - run { - var i: Number = 0 - while(i < subCategories.value.length){ - if (subCategories.value[i].id == activePrimary.value) { - foundCat = subCategories.value[i] - break - } - i++ - } - } - } - if (foundCat != null) { - currentCategoryName.value = foundCat.name - currentCategoryDesc.value = foundCat.description - } - console.log("商品列表加载完成,当前总数量:", productList.value.length, " at pages/mall/consumer/category.uvue:205") - } - catch (error: Throwable) { - console.error("加载商品数据失败:", error, " at pages/mall/consumer/category.uvue:207") - if (currentPage.value == 1) { - productList.value = _uA() - } - } - finally { - loading.value = false - } - }) - } - val loadProducts = ::gen_loadProducts_fn - fun gen_loadSubCategories_fn(parentId: String): UTSPromise { - return wrapUTSPromise(suspend { - console.log("加载二级分类,父级ID:", parentId, " at pages/mall/consumer/category.uvue:218") - try { - val subCats = await(supabaseService.getSubCategories(parentId)) - console.log("获取到二级分类数量:", subCats.length, " at pages/mall/consumer/category.uvue:221") - val categories: UTSArray = _uA() - run { - var i: Number = 0 - while(i < subCats.length){ - val cat = subCats[i] - categories.push(LocalCategory(id = cat.id, name = cat.name, icon = cat.icon, description = cat.description, color = cat.color)) - i++ - } - } - subCategories.value = categories - } - catch (e: Throwable) { - console.error("加载二级分类失败:", e, " at pages/mall/consumer/category.uvue:236") - subCategories.value = _uA() - } - }) - } - val loadSubCategories = ::gen_loadSubCategories_fn - fun gen_isPrimaryActive_fn(categoryId: String): Boolean { - return selectedParentId.value == categoryId - } - val isPrimaryActive = ::gen_isPrimaryActive_fn - fun gen_isSubActive_fn(subCategoryId: String): Boolean { - return activeSubCategory.value == subCategoryId || activePrimary.value == subCategoryId - } - val isSubActive = ::gen_isSubActive_fn - fun gen_getPrimaryItemBgColor_fn(item: LocalCategory): String { - if (isPrimaryActive(item.id)) { - return item.color - } - return "transparent" - } - val getPrimaryItemBgColor = ::gen_getPrimaryItemBgColor_fn - fun gen_selectSubCategory_fn(subCategoryId: String): UTSPromise { - return wrapUTSPromise(suspend { - console.log("选择二级分类:", subCategoryId, " at pages/mall/consumer/category.uvue:261") - activeSubCategory.value = subCategoryId - currentPage.value = 1 - hasMore.value = true - activePrimary.value = subCategoryId - await(loadProducts()) - }) - } - val selectSubCategory = ::gen_selectSubCategory_fn - fun gen_selectPrimaryCategory_fn(reassignedOriginalCategoryId: String): UTSPromise { - var originalCategoryId = reassignedOriginalCategoryId - return wrapUTSPromise(suspend w1@{ - console.log("=== selectPrimaryCategory函数开始执行 ===", " at pages/mall/consumer/category.uvue:274") - console.log("传入的categoryId:", originalCategoryId, " at pages/mall/consumer/category.uvue:275") - if (originalCategoryId == "") { - console.error("categoryId为空,尝试使用第一个分类", " at pages/mall/consumer/category.uvue:278") - if (primaryCategories.value.length > 0) { - originalCategoryId = primaryCategories.value[0].id - } else { - console.error("没有可用的分类", " at pages/mall/consumer/category.uvue:282") - return@w1 - } - } - var targetParentId = originalCategoryId - var targetSubId = "" - console.log("当前一级分类列表长度:", primaryCategories.value.length, " at pages/mall/consumer/category.uvue:290") - var foundInPrimary: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == originalCategoryId) { - foundInPrimary = primaryCategories.value[i] - break - } - i++ - } - } - console.log("在一级分类中查找结果:", foundInPrimary != null, " at pages/mall/consumer/category.uvue:298") - if (foundInPrimary == null) { - console.log("传入的ID不在一级分类中,可能是二级分类ID,尝试查找父级分类", " at pages/mall/consumer/category.uvue:302") - try { - val categoryInfo = await(supabaseService.getCategoryById(originalCategoryId)) - if (categoryInfo != null && categoryInfo.parent_id != null && categoryInfo.parent_id != "") { - console.log("找到父级分类ID:", categoryInfo.parent_id, " at pages/mall/consumer/category.uvue:308") - console.log("查找父级分类ID:", categoryInfo.parent_id, " at pages/mall/consumer/category.uvue:311") - var parentInPrimary: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == categoryInfo.parent_id) { - parentInPrimary = primaryCategories.value[i] - break - } - i++ - } - } - console.log("父级分类查找结果:", parentInPrimary != null, " at pages/mall/consumer/category.uvue:319") - if (parentInPrimary != null) { - console.log("父级分类在列表中找到:", parentInPrimary.name, " at pages/mall/consumer/category.uvue:321") - targetParentId = categoryInfo.parent_id!! - targetSubId = originalCategoryId - } else { - console.log("父级分类不在列表中,使用第一个分类", " at pages/mall/consumer/category.uvue:325") - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - console.log("列表中的分类:", primaryCategories.value[i].id, primaryCategories.value[i].name, " at pages/mall/consumer/category.uvue:328") - i++ - } - } - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } else { - console.log("未找到父级分类,使用第一个分类", " at pages/mall/consumer/category.uvue:335") - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } - catch (e: Throwable) { - console.error("获取分类信息失败:", e, " at pages/mall/consumer/category.uvue:341") - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } - console.log("最终选中的一级分类ID:", targetParentId, " at pages/mall/consumer/category.uvue:348") - console.log("需要选中的二级分类ID:", targetSubId, " at pages/mall/consumer/category.uvue:349") - selectedParentId.value = targetParentId - activePrimary.value = targetParentId - await(loadSubCategories(targetParentId)) - if (targetSubId != "") { - activeSubCategory.value = targetSubId - } else { - if (subCategories.value.length > 0) { - activeSubCategory.value = subCategories.value[0].id - targetSubId = subCategories.value[0].id - console.log("默认选中第一个二级分类:", subCategories.value[0].name, " at pages/mall/consumer/category.uvue:366") - } else { - activeSubCategory.value = "" - } - } - var foundIndex: Number = -1 - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == targetParentId) { - foundIndex = i - break - } - i++ - } - } - if (foundIndex != -1) { - val systemInfo = uni_getSystemInfoSync() - var itemHeight: Number = 70 - if (systemInfo.windowWidth > 1025) { - itemHeight = 80 - } - val scrollViewHeight = systemInfo.windowHeight - systemInfo.statusBarHeight - 44 - val targetScrollTop = (foundIndex * itemHeight) - (scrollViewHeight / 2) + (itemHeight / 2) - scrollTop.value = Math.max(0, targetScrollTop) - console.log("滚动左侧菜单: index=" + foundIndex + ", target=" + scrollTop.value, " at pages/mall/consumer/category.uvue:392") - } - var foundCategory: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == targetParentId) { - foundCategory = primaryCategories.value[i] - break - } - i++ - } - } - if (foundCategory != null) { - currentCategoryName.value = foundCategory.name - currentCategoryDesc.value = foundCategory.description - } else { - console.log("分类信息未找到,使用第一个分类的信息", " at pages/mall/consumer/category.uvue:407") - if (primaryCategories.value.length > 0) { - val firstCategory = primaryCategories.value[0] - currentCategoryName.value = firstCategory.name - currentCategoryDesc.value = firstCategory.description - } - } - currentPage.value = 1 - hasMore.value = true - val categoryIdForProducts = if ((targetSubId != "")) { - targetSubId - } else { - targetParentId - } - activePrimary.value = categoryIdForProducts - await(loadProducts()) - }) - } - val selectPrimaryCategory = ::gen_selectPrimaryCategory_fn - fun gen_loadCategories_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - val categoriesData = await(supabaseService.getParentCategories()) - console.log("加载一级分类数据成功,数量:", categoriesData.length, " at pages/mall/consumer/category.uvue:428") - val categories: UTSArray = _uA() - run { - var i: Number = 0 - while(i < categoriesData.length){ - val cat = categoriesData[i] - val name = cat.name - console.log("一级分类:", cat.id, name, " at pages/mall/consumer/category.uvue:436") - if (name.includes("医药") || name.includes("健康")) { - console.log("过滤掉分类:", name, " at pages/mall/consumer/category.uvue:438") - i++ - continue - } - categories.push(LocalCategory(id = cat.id, name = cat.name, icon = cat.icon, description = cat.description, color = cat.color)) - i++ - } - } - console.log("最终一级分类列表数量:", categories.length, " at pages/mall/consumer/category.uvue:450") - if (categories.length > 0) { - primaryCategories.value = categories - if (pendingCategoryId.value != "") { - console.log("发现待处理的分类ID:", pendingCategoryId.value, " at pages/mall/consumer/category.uvue:457") - val idToSelect = pendingCategoryId.value - pendingCategoryId.value = "" - selectPrimaryCategory(idToSelect) - return@w1 - } - if (activePrimary.value != "") { - console.log("有预设的分类ID:", activePrimary.value, " at pages/mall/consumer/category.uvue:467") - val target = categories.find(fun(c: LocalCategory): Boolean { - return c.id == activePrimary.value - } - ) - if (target != null) { - console.log("找到目标分类,执行选中:", target.name, " at pages/mall/consumer/category.uvue:470") - selectPrimaryCategory(activePrimary.value) - return@w1 - } - } - val defaultCategory = categories.find(fun(c: LocalCategory): Boolean { - return c.name.includes("厨具") - }) ?: categories[0] - if (defaultCategory != null) { - console.log("设置默认分类:", defaultCategory.name, " at pages/mall/consumer/category.uvue:479") - selectPrimaryCategory(defaultCategory.id) - } - } else { - console.warn("从Supabase获取的分类数据为空", " at pages/mall/consumer/category.uvue:483") - } - } - catch (error: Throwable) { - console.error("加载分类数据失败:", error, " at pages/mall/consumer/category.uvue:486") - } - }) - } - val loadCategories = ::gen_loadCategories_fn - fun gen_loadMore_fn(): Unit { - if (hasMore.value && !loading.value) { - currentPage.value++ - loadProducts() - } - } - val loadMore = ::gen_loadMore_fn - onMounted(fun(){ - loadCategories().then(fun(){ - setTimeout(fun(){ - if (!hasLoadedFromParams.value && activePrimary.value != "") { - loadProducts() - } - } - , 300) - } - ) - } - ) - onShow__1(fun(){ - console.log("=== category页面onShow被调用 ===", " at pages/mall/consumer/category.uvue:511") - val savedCategoryId = uni_getStorageSync("selectedCategory") - console.log("onShow检查Storage:", savedCategoryId, " at pages/mall/consumer/category.uvue:515") - if (savedCategoryId != null && savedCategoryId != "") { - val targetId = savedCategoryId as String - console.log("onShow发现存储的分类ID:", targetId, " at pages/mall/consumer/category.uvue:519") - uni_removeStorageSync("selectedCategory") - if (primaryCategories.value.length > 0) { - if (activePrimary.value != targetId) { - console.log("onShow执行切换分类:", targetId, " at pages/mall/consumer/category.uvue:528") - selectPrimaryCategory(targetId) - } else { - console.log("当前已是目标分类:", targetId, " at pages/mall/consumer/category.uvue:531") - } - } else { - console.log("分类数据尚未加载,暂存ID等待加载", " at pages/mall/consumer/category.uvue:535") - pendingCategoryId.value = targetId - } - } - } - ) - onLoad__1(fun(options: Any){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - console.log("=== category页面onLoad被调用 ===", " at pages/mall/consumer/category.uvue:544") - var categoryId = "" - var categoryName = "" - val optObj = if ((options is UTSJSONObject)) { - (options as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(options ?: UTSJSONObject())), " at pages/mall/consumer/category.uvue:550") as UTSJSONObject) - } - val optCategoryId = optObj.getString("categoryId") ?: "" - if (optCategoryId !== "") { - categoryId = optCategoryId - categoryName = optObj.getString("name") ?: "" - console.log("✅ onLoad中找到分类参数:", categoryId, categoryName, " at pages/mall/consumer/category.uvue:555") - } - if (categoryId == "") { - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val rawPageOptions = currentPage.options ?: UTSJSONObject() - console.log("从getCurrentPages()获取参数:", rawPageOptions, " at pages/mall/consumer/category.uvue:564") - val pageOptObj = if ((rawPageOptions is UTSJSONObject)) { - (rawPageOptions as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawPageOptions)), " at pages/mall/consumer/category.uvue:565") as UTSJSONObject) - } - val pageCategoryId = pageOptObj.getString("categoryId") ?: "" - if (pageCategoryId !== "") { - categoryId = pageCategoryId - categoryName = pageOptObj.getString("name") ?: "" - console.log("✅ 从getCurrentPages()找到分类参数:", categoryId, categoryName, " at pages/mall/consumer/category.uvue:570") - } - } - } - if (categoryId != "") { - hasLoadedFromParams.value = true - console.log("✅ 准备选中分类:", categoryId, " at pages/mall/consumer/category.uvue:578") - console.log("分类名称:", categoryName ?: "未指定", " at pages/mall/consumer/category.uvue:579") - if (activePrimary.value !== categoryId) { - console.log("当前分类:", activePrimary.value, "与目标分类:", categoryId, "不同,需要更新", " at pages/mall/consumer/category.uvue:583") - console.log("准备调用selectPrimaryCategory函数...", " at pages/mall/consumer/category.uvue:584") - selectPrimaryCategory(categoryId) - } else { - console.log("当前分类已经是目标分类,但可能用户想要刷新页面", " at pages/mall/consumer/category.uvue:587") - console.log("当前分类:", activePrimary.value, "目标分类:", categoryId, " at pages/mall/consumer/category.uvue:588") - setTimeout(fun(){ - selectPrimaryCategory(categoryId) - }, 100) - } - } else { - console.log("⚠️ onLoad中未找到分类参数,将使用从数据库加载的第一个分类", " at pages/mall/consumer/category.uvue:596") - } - console.log("=== category页面onLoad执行完成 ===", " at pages/mall/consumer/category.uvue:600") - } - ) - fun gen_addToCart_fn(product: Product): UTSPromise { - return wrapUTSPromise(suspend w1@{ - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val pid = (product.id ?: "").toString() - val merchantId = product.merchant_id ?: "" - if (pid === "") { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "商品无效", icon = "none")) - return@w1 - } - val skus = await(supabaseService.getProductSkus(pid)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + pid)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(pid, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - cartCount.value++ - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请先登录", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/category.uvue:650") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val addToCart = ::gen_addToCart_fn - fun gen_navigateToSearch_fn(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search")) - } - val navigateToSearch = ::gen_navigateToSearch_fn - fun gen_navigateToCart_fn(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/cart")) - } - val navigateToCart = ::gen_navigateToCart_fn - fun gen_navigateToProduct_fn(product: Product): Unit { - val id = (product.id ?: "").toString() - if (id === "") { - return - } - val price = (product.base_price ?: 0).toString(10) - val originalPrice = (product.market_price ?: "").toString() - val name = UTSAndroid.consoleDebugError(encodeURIComponent(product.name ?: ""), " at pages/mall/consumer/category.uvue:664") - val image = UTSAndroid.consoleDebugError(encodeURIComponent(product.main_image_url ?: ""), " at pages/mall/consumer/category.uvue:665") - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + id + "&productId=" + id + "&price=" + price + "&originalPrice=" + originalPrice + "&name=" + name + "&image=" + image)) - } - val navigateToProduct = ::gen_navigateToProduct_fn - fun gen_onCamera_fn(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, sourceType = _uA( - "camera" - ), success = fun(res){ - console.log("相机拍摄成功:", res.tempFilePaths[0], " at pages/mall/consumer/category.uvue:678") - uni_showToast(ShowToastOptions(title = "已拍摄,正在识别...", icon = "loading")) - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "识别成功", icon = "success")) - } - , 1000) - } - , fail = fun(err){ - console.error("相机调用失败:", err, " at pages/mall/consumer/category.uvue:692") - } - )) - } - val onCamera = ::gen_onCamera_fn - fun gen_onScan_fn(): Unit { - uni_scanCode(ScanCodeOptions(success = fun(res){ - console.log("扫码成功:", res, " at pages/mall/consumer/category.uvue:701") - uni_showToast(ShowToastOptions(title = "扫码成功: " + res.result, icon = "none")) - } - , fail = fun(err){ - console.error("扫码失败:", err, " at pages/mall/consumer/category.uvue:708") - } - )) - } - val onScan = ::gen_onScan_fn - return fun(): Any? { - return _cE("view", _uM("class" to "category-page"), _uA( - _cE("view", _uM("class" to "search-bar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "search-container"), _uA( - _cE("view", _uM("class" to "search-box", "onClick" to navigateToSearch, "style" to _nS(_uM("height" to "30px"))), _uA( - _cE("text", _uM("class" to "search-placeholder"), "请输入药品名称、症状或品牌"), - _cE("view", _uM("class" to "nav-icon-btn", "onClick" to withModifiers(onScan, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-icon"), "🔳") - )), - _cE("view", _uM("class" to "nav-camera-btn", "onClick" to withModifiers(onCamera, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-camera-icon"), "📷") - )), - _cE("view", _uM("class" to "nav-inner-search-btn", "style" to _nS(_uM("height" to "22px"))), _uA( - _cE("text", _uM("class" to "nav-inner-search-text"), "搜索") - ), 4) - ), 4) - )) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "category-content"), _uA( - _cE("scroll-view", _uM("scroll-y" to true, "class" to "primary-category", "scroll-top" to scrollTop.value, "scroll-with-animation" to true), _uA( - _cE(Fragment, null, RenderHelpers.renderList(primaryCategories.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to _nC(_uA( - "primary-item", - _uM("active" to isPrimaryActive(item.id)) - )), "onClick" to fun(){ - selectPrimaryCategory(item.id) - } - , "style" to _nS(_uM("backgroundColor" to getPrimaryItemBgColor(item)))), _uA( - _cE("text", _uM("class" to "primary-icon"), _tD(item.icon), 1), - _cE("text", _uM("class" to "primary-name"), _tD(item.name), 1) - ), 14, _uA( - "onClick" - )) - } - ), 128) - ), 8, _uA( - "scroll-top" - )), - _cE("scroll-view", _uM("scroll-y" to true, "class" to "product-content", "onScrolltolower" to loadMore, "lower-threshold" to 50), _uA( - _cE("view", _uM("class" to "category-header"), _uA( - _cE("text", _uM("class" to "category-title"), _tD(currentCategoryName.value), 1), - _cE("text", _uM("class" to "category-desc"), _tD(currentCategoryDesc.value), 1) - )), - if (subCategories.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "sub-category-section"), _uA( - _cE("view", _uM("class" to "sub-category-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(subCategories.value, fun(sub, __key, __index, _cached): Any { - return _cE("view", _uM("key" to sub.id, "class" to _nC(_uA( - "sub-category-item", - _uM("active" to isSubActive(sub.id)) - )), "onClick" to fun(){ - selectSubCategory(sub.id) - }), _uA( - _cE("text", _uM("class" to "sub-category-icon"), _tD(sub.icon), 1), - _cE("text", _uM("class" to "sub-category-name"), _tD(sub.name), 1) - ), 10, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - if (productList.value.length > 0) { - _cE("view", _uM("key" to 1, "class" to "product-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(productList.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "product-card", "onClick" to fun(){ - navigateToProduct(product) - }), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.main_image_url, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.base_price ?: product.price ?: 0), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cE("view", _uM("key" to 2, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-icon"), "💊"), - _cE("text", _uM("class" to "empty-text"), "暂无相关药品"), - _cE("text", _uM("class" to "empty-desc"), "该分类下暂无商品,敬请期待") - )) - } - , - if (isTrue(hasMore.value)) { - _cE("view", _uM("key" to 3, "class" to "load-more"), _uA( - _cE("text", _uM("class" to "load-text"), "上拉加载更多") - )) - } else { - _cC("v-if", true) - } - ), 32) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("category-page" to _pS(_uM("width" to "100%", "height" to "100%", "overflow" to "hidden", "backgroundColor" to "#f8fafc", "display" to "flex", "flexDirection" to "column", "fontFamily" to "-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, sans-serif")), "search-bar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)")), "navbar-placeholder" to _pS(_uM("flexShrink" to 0)), "search-container" to _pS(_uM("height" to 44, "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%")), "search-box" to _pS(_uM("boxShadow:hover" to "0 2px 8px rgba(0, 0, 0, 0.1)", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "maxWidth" to 600, "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "width" to "100%", "height" to 32)), "search-placeholder" to _pS(_uM("fontSize" to 14, "color" to "#999999", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "nav-inner-search-text" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "fontWeight" to "normal")), "icon" to _pS(_uM("fontSize" to 22, "color" to "#FFFFFF")), "nav-icon-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-icon" to _pS(_uM("fontSize" to 18)), "nav-camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-camera-icon" to _pS(_uM("fontSize" to 20)), "nav-inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 24)), "cart-badge" to _pS(_uM("position" to "absolute", "top" to -5, "right" to -5, "backgroundImage" to "none", "backgroundColor" to "#FF5722", "color" to "#FFFFFF", "fontSize" to 10, "minWidth" to 18, "height" to 18, "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "category-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "display" to "flex", "flexDirection" to "row", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "maxWidth" to 1400, "marginLeft" to "auto", "marginRight" to "auto", "width" to "100%", "overflow" to "hidden")), "primary-category" to _pS(_uM("width" to 63, "height" to "100%", "marginRight" to 6, "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 6, "paddingRight" to 0, "paddingBottom" to 6, "paddingLeft" to 0, "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.08)", "flexShrink" to 0)), "primary-item" to _uM("" to _uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 12, "paddingRight" to 4, "paddingBottom" to 12, "paddingLeft" to 4, "marginTop" to 4, "marginRight" to 6, "marginBottom" to 4, "marginLeft" to 6, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "color" to "#666666", "textAlign" to "center", "transform:hover" to "translateY(-2px)"), ".active" to _uM("!color" to "#FFFFFF", "fontWeight" to "bold")), "primary-icon" to _pS(_uM("fontSize" to 20, "marginBottom" to 4, "marginRight" to 0, "textAlign" to "center")), "primary-name" to _pS(_uM("fontSize" to 11, "lineHeight" to 1.25)), "product-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0)), "category-header" to _pS(_uM("marginBottom" to 16, "paddingTop" to 16, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8, "backgroundColor" to "#f8fafc", "zIndex" to 10)), "category-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "category-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "sub-category-section" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "marginBottom" to 8)), "sub-category-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap", "width" to "100%", "justifyContent" to "space-between")), "sub-category-item" to _uM("" to _uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 8, "paddingRight" to 4, "paddingBottom" to 8, "paddingLeft" to 4, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 50), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000")), "sub-category-name" to _uM(".sub-category-item.active " to _uM("color" to "#FFFFFF"), "" to _uM("fontSize" to 11, "color" to "#333333", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis", "textAlign" to "center", "width" to "100%")), "sub-category-icon" to _pS(_uM("fontSize" to 16, "marginBottom" to 4)), "product-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "width" to "100%", "justifyContent" to "space-between")), "product-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "product-action" to _pS(_uM("marginTop" to 12)), "cart-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "fontSize" to 13, "fontWeight" to "bold", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#388E3C")), "cart-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 6)), "empty-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20, "textAlign" to "center")), "empty-icon" to _pS(_uM("fontSize" to 60, "color" to "#ff5000", "marginBottom" to 15)), "empty-text" to _pS(_uM("fontSize" to 18, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 8)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "load-more" to _pS(_uM("textAlign" to "center", "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "color" to "#999999", "fontSize" to 14)), "load-text" to _pS(_uM("paddingTop" to 8, "paddingRight" to 16, "paddingBottom" to 8, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20)), "@TRANSITION" to _uM("search-box" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "primary-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "cart-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt index 7ccd8f18..a84b4fe9 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt @@ -400,7 +400,7 @@ open class GenPagesMallConsumerChat : BasePage { return _cE("view", _uM("class" to "chat-page"), _uA( _cE("view", _uM("class" to "chat-header", "style" to _nS(_uM("paddingTop" to navPaddingTop.value))), _uA( _cE("view", _uM("class" to "header-back", "onClick" to goBack), _uA( - _cE("text", _uM("class" to "back-icon"), "‹") + _cE("text", _uM("class" to "back-icon"), "❮") )), _cE("view", _uM("class" to "header-info"), _uA( _cE("view", _uM("class" to "header-info-text-wrapper"), _uA( @@ -508,7 +508,7 @@ open class GenPagesMallConsumerChat : BasePage { } val styles0: Map>> get() { - return _uM("chat-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "chat-header" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "flexShrink" to 0)), "header-back" to _pS(_uM("width" to 40)), "back-icon" to _pS(_uM("fontSize" to 24, "color" to "#333333")), "header-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-info-text-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "chat-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 2)), "chat-status" to _pS(_uM("fontSize" to 12, "color" to "#34c759")), "action-icon" to _uM(".header-actions " to _uM("fontSize" to 20, "color" to "#333333", "width" to 40)), "action-icon-text" to _pS(_uM("textAlign" to "right", "width" to "100%")), "chat-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 20, "paddingLeft" to 10, "boxSizing" to "border-box")), "chat-messages" to _pS(_uM("display" to "flex", "flexDirection" to "column", "paddingBottom" to 80)), "message-item" to _uM(".system" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginBottom" to 20)), "system-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 5, "paddingRight" to 15, "paddingBottom" to 5, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "textAlign" to "center")), "time-divider" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginTop" to 20, "marginRight" to 0, "marginBottom" to 20, "marginLeft" to 0)), "time-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 3, "paddingRight" to 10, "paddingBottom" to 3, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "textAlign" to "center")), "message-wrapper" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 15), ".me" to _uM("justifyContent" to "flex-end")), "avatar" to _uM("" to _uM("width" to 40, "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 10, "flexShrink" to 0), ".me" to _uM("marginRight" to 0, "marginLeft" to 10)), "message-content-wrapper" to _pS(_uM("width" to 260, "display" to "flex", "flexDirection" to "column")), "message-bubble" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "position" to "relative", "boxShadow" to "0 1px 3px rgba(0, 0, 0, 0.05)"), ".me" to _uM("backgroundColor" to "#95ec69", "alignSelf" to "flex-end", "borderTopRightRadius" to 2)), "received-bubble" to _pS(_uM("alignSelf" to "flex-start", "borderTopLeftRadius" to 2)), "sender-name" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginBottom" to 2, "alignSelf" to "flex-start")), "message-text" to _pS(_uM("fontSize" to 15, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5, "whiteSpace" to "pre-wrap")), "message-time" to _pS(_uM("fontSize" to 11, "color" to "#999999", "textAlign" to "right")), "chat-input" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "flexShrink" to 0)), "input-tools" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 10)), "tool-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "color" to "#666666")), "input-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "message-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "fontSize" to 15, "marginRight" to 10, "minHeight" to 40, "maxHeight" to 100)), "send-button" to _uM("" to _uM("backgroundColor" to "#cccccc", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 8, "paddingRight" to 20, "paddingBottom" to 8, "paddingLeft" to 20, "fontSize" to 14, "minWidth" to 60, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease"), ".active" to _uM("backgroundColor" to "#ff5000")), "emoji-picker" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "height" to 200, "position" to "fixed", "bottom" to 80, "left" to 0, "right" to 0, "zIndex" to 99)), "emoji-category" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap")), "emoji-item" to _pS(_uM("fontSize" to 24, "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "width" to 45, "height" to 45, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "@TRANSITION" to _uM("send-button" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"))) + return _uM("chat-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "chat-header" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "flexShrink" to 0)), "header-back" to _pS(_uM("width" to 40)), "back-icon" to _pS(_uM("fontSize" to 20, "color" to "#333333")), "header-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-info-text-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "chat-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 2)), "chat-status" to _pS(_uM("fontSize" to 12, "color" to "#34c759")), "action-icon" to _uM(".header-actions " to _uM("fontSize" to 20, "color" to "#333333", "width" to 40)), "action-icon-text" to _pS(_uM("textAlign" to "right", "width" to "100%")), "chat-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 20, "paddingLeft" to 10, "boxSizing" to "border-box")), "chat-messages" to _pS(_uM("display" to "flex", "flexDirection" to "column", "paddingBottom" to 80)), "message-item" to _uM(".system" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginBottom" to 20)), "system-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 5, "paddingRight" to 15, "paddingBottom" to 5, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "textAlign" to "center")), "time-divider" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginTop" to 20, "marginRight" to 0, "marginBottom" to 20, "marginLeft" to 0)), "time-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 3, "paddingRight" to 10, "paddingBottom" to 3, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "textAlign" to "center")), "message-wrapper" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 15), ".me" to _uM("justifyContent" to "flex-end")), "avatar" to _uM("" to _uM("width" to 40, "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 10, "flexShrink" to 0), ".me" to _uM("marginRight" to 0, "marginLeft" to 10)), "message-content-wrapper" to _pS(_uM("width" to 260, "display" to "flex", "flexDirection" to "column")), "message-bubble" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "position" to "relative", "boxShadow" to "0 1px 3px rgba(0, 0, 0, 0.05)"), ".me" to _uM("backgroundColor" to "#95ec69", "alignSelf" to "flex-end", "borderTopRightRadius" to 2)), "received-bubble" to _pS(_uM("alignSelf" to "flex-start", "borderTopLeftRadius" to 2)), "sender-name" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginBottom" to 2, "alignSelf" to "flex-start")), "message-text" to _pS(_uM("fontSize" to 15, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5, "whiteSpace" to "pre-wrap")), "message-time" to _pS(_uM("fontSize" to 11, "color" to "#999999", "textAlign" to "right")), "chat-input" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "flexShrink" to 0)), "input-tools" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 10)), "tool-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "color" to "#666666")), "input-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "message-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "fontSize" to 15, "marginRight" to 10, "minHeight" to 40, "maxHeight" to 100)), "send-button" to _uM("" to _uM("backgroundColor" to "#cccccc", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 8, "paddingRight" to 20, "paddingBottom" to 8, "paddingLeft" to 20, "fontSize" to 14, "minWidth" to 60, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease"), ".active" to _uM("backgroundColor" to "#ff5000")), "emoji-picker" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "height" to 200, "position" to "fixed", "bottom" to 80, "left" to 0, "right" to 0, "zIndex" to 99)), "emoji-category" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap")), "emoji-item" to _pS(_uM("fontSize" to 24, "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "width" to 45, "height" to 45, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "@TRANSITION" to _uM("send-button" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"))) } var inheritAttrs = true var inject: Map> = _uM() diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/index.kt deleted file mode 100644 index fb374916..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/index.kt +++ /dev/null @@ -1,858 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNIEC68BC3 -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.scanCode as uni_scanCode -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerIndex - val _cache = __ins.renderCache - val statusBarHeight = ref(0) - val scrollHeight = ref(0) - val refreshing = ref(false) - val loading = ref(false) - val isFirstShow = ref(true) - val hasMore = ref(true) - val activeSort = ref("recommend") - val activeFilter = ref("recommend") - val currentPage = ref(1) - val priceAscending = ref(true) - val hotProducts = ref(_uA()) - val recommendedProducts = ref(_uA()) - val hotKeywords = ref(_uA()) - val isMobile = ref(false) - val showLoadMore = ref(false) - val showNavbar = ref(true) - val lastScrollTop = ref(0) - val scrollThreshold: Number = 30 - val scrollingUp = ref(false) - val categoryTab = ref("category") - val categories = ref(_uA()) - val brands = ref(_uA()) - val parentCategories = ref(_uA()) - val subCategories = ref(_uA()) - val selectedParentCategory = ref(null) - val showSubCategories = ref(false) - val sortTabs = _uA( - SortTab(id = "recommend", name = "智能推荐"), - SortTab(id = "sales", name = "销量"), - SortTab(id = "price", name = "价格"), - SortTab(id = "new", name = "新品"), - SortTab(id = "discount", name = "特价") - ) as UTSArray - val loadCategories = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val categoriesData = await(supabaseService.getParentCategories()) - parentCategories.value = categoriesData - categories.value = categoriesData - console.log("一级分类数据:", JSON.stringify(parentCategories.value), " at pages/mall/consumer/index.uvue:361") - } - catch (error: Throwable) { - console.error("加载分类数据失败:", error, " at pages/mall/consumer/index.uvue:363") - parentCategories.value = _uA() - categories.value = _uA() - } - }) - } - val loadSubCategories = fun(parentId: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - console.log("[loadSubCategories] 开始加载二级分类, parentId:", parentId, " at pages/mall/consumer/index.uvue:372") - val subData = await(supabaseService.getSubCategories(parentId)) - console.log("[loadSubCategories] 获取到二级分类数量:", subData.length, " at pages/mall/consumer/index.uvue:374") - console.log("[loadSubCategories] 二级分类数据:", JSON.stringify(subData), " at pages/mall/consumer/index.uvue:375") - subCategories.value = subData - } - catch (error: Throwable) { - console.error("加载子分类数据失败:", error, " at pages/mall/consumer/index.uvue:378") - subCategories.value = _uA() - } - }) - } - val onParentCategoryClick = fun(category: Category): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("[onParentCategoryClick] 点击一级分类:", category.name, "id:", category.id, " at pages/mall/consumer/index.uvue:385") - if (selectedParentCategory.value != null && selectedParentCategory.value!!.id === category.id) { - console.log("[onParentCategoryClick] 切换显示状态", " at pages/mall/consumer/index.uvue:389") - showSubCategories.value = !showSubCategories.value - return@w1 - } - selectedParentCategory.value = category - showSubCategories.value = true - console.log("[onParentCategoryClick] showSubCategories 设置为 true", " at pages/mall/consumer/index.uvue:397") - await(loadSubCategories(category.id)) - if (subCategories.value.length == 0) { - console.log("[onParentCategoryClick] 没有二级分类,直接跳转到分类页", " at pages/mall/consumer/index.uvue:404") - uni_setStorageSync("selectedCategory", category.id) - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/category")) - } - }) - } - val onSubCategoryClick = fun(category: Category): Unit { - uni_setStorageSync("selectedCategory", category.id) - val timestamp = Date.now() - val randomParam = Math.random().toString(36).substring(2, 8) - val url = "/pages/mall/consumer/category?categoryId=" + category.id + "&name=" + UTSAndroid.consoleDebugError(encodeURIComponent(category.name), " at pages/mall/consumer/index.uvue:418") + "×tamp=" + timestamp + "&random=" + randomParam - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/category")) - } - val loadBrands = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val brandsData = await(supabaseService.getBrands()) - brands.value = brandsData - } - catch (e: Throwable) { - console.error("加载品牌失败:", e, " at pages/mall/consumer/index.uvue:431") - brands.value = _uA() - } - }) - } - val getBrandIcon = fun(name: String): String { - if (name == null || name === "") { - return "🏢" - } - val iconKeys = _uA( - "感冒", - "发烧", - "咳嗽", - "消炎", - "维生素", - "钙片", - "胃药", - "止痛", - "过敏", - "皮肤", - "眼药水", - "口腔", - "血压", - "血糖", - "血脂", - "保健", - "养生", - "减肥", - "美容", - "母婴", - "儿童", - "老人", - "男性", - "女性", - "维生素C", - "维生素D", - "蛋白粉", - "鱼油", - "蜂胶", - "阿胶", - "红枣", - "枸杞", - "菊花", - "金银花", - "口罩", - "消毒液", - "体温计", - "创可贴", - "棉签", - "九芝堂", - "同仁堂", - "云南白药", - "东阿阿胶", - "太极", - "江中", - "三九", - "华素制药", - "汤臣倍健", - "白云山", - "修正", - "葵花", - "哈药", - "扬子江", - "恒瑞", - "复星", - "辉瑞", - "阿斯利康", - "罗氏", - "默沙东", - "赛诺菲", - "诺华", - "雅培", - "雀巢", - "蒙牛", - "伊利", - "海尔", - "美的", - "飞利浦", - "西门子", - "松下", - "苏泊尔", - "九阳", - "华为", - "小米", - "苹果", - "三星" - ) - val iconValues = _uA( - "💊", - "🌡️", - "😷", - "🔬", - "💊", - "🦴", - "🫁", - "💉", - "🌸", - "🧴", - "👁️", - "🦷", - "❤️", - "🩸", - "💓", - "🧬", - "🍵", - "⚖️", - "💅", - "👶", - "🧒", - "👴", - "♂️", - "♀️", - "🍊", - "☀️", - "🥛", - "🐟", - "🐝", - "🍯", - "🫘", - "🌿", - "🌼", - "🌸", - "😷", - "🧴", - "🌡️", - "🩹", - "🧺", - "📜", - "🏛️", - "⛰️", - "🍯", - "☯️", - "🌿", - "9️⃣", - "💊", - "💪", - "⛰️", - "🩹", - "🌻", - "🧪", - "🚢", - "🔬", - "⭐", - "🧬", - "🧪", - "🧬", - "💊", - "🧬", - "🔬", - "🏥", - "🥣", - "🐄", - "🥛", - "🏠", - "❄️", - "🪒", - "⚡", - "🔋", - "🍳", - "🥛", - "📱", - "🍚", - "🍎", - "📱" - ) - run { - var i: Number = 0 - while(i < iconKeys.length){ - if (name === iconKeys[i]) { - return iconValues[i] - } - i++ - } - } - run { - var i: Number = 0 - while(i < iconKeys.length){ - if (name.indexOf(iconKeys[i]) !== -1) { - return iconValues[i] - } - i++ - } - } - return "🏢" - } - val defaultLoadLimit: Number = 6 - val doLoadHotProducts = fun(targetLimit: Number, resolve: (value: Unit) -> Unit, reject: (reason: Any?) -> Unit): UTSPromise { - return wrapUTSPromise(suspend { - try { - var products: UTSArray = _uA() - val limit = targetLimit - console.log("加载热销商品,当前排序方式:", activeSort.value, "limit:", limit, " at pages/mall/consumer/index.uvue:476") - when (activeSort.value) { - "sales" -> - { - console.log("调用 getProductsBySales", " at pages/mall/consumer/index.uvue:480") - products = await(supabaseService.getProductsBySales(limit)) - } - "price" -> - { - console.log("调用 getProductsByPrice, 升序:", priceAscending.value, " at pages/mall/consumer/index.uvue:484") - products = await(supabaseService.getProductsByPrice(limit, priceAscending.value)) - } - "new" -> - { - console.log("调用 getProductsByNewest", " at pages/mall/consumer/index.uvue:488") - products = await(supabaseService.getProductsByNewest(limit)) - } - "recommend" -> - { - console.log("调用 getSmartRecommendations", " at pages/mall/consumer/index.uvue:492") - products = await(supabaseService.getSmartRecommendations(limit)) - } - "discount" -> - { - console.log("调用 getDiscountProducts", " at pages/mall/consumer/index.uvue:496") - products = await(supabaseService.getDiscountProducts(limit)) - } - else -> - { - console.log("调用默认 getProductsBySales", " at pages/mall/consumer/index.uvue:500") - products = await(supabaseService.getProductsBySales(limit)) - } - } - console.log("加载到的商品数量:", products.length, " at pages/mall/consumer/index.uvue:504") - if (products.length > 0) { - console.log("Sample Product Merchant IDs:", " at pages/mall/consumer/index.uvue:506") - run { - var i: Number = 0 - while(i < Math.min(products.length, 3)){ - val p = products[i] - console.log(" - Product: " + p.name + ", MerchantID: " + p.merchant_id, " at pages/mall/consumer/index.uvue:509") - i++ - } - } - } - hotProducts.value = products - } - catch (error: Throwable) { - console.error("加载热销商品失败:", error, " at pages/mall/consumer/index.uvue:514") - hotProducts.value = _uA() - } - }) - } - fun gen_loadHotProducts_fn(targetLimit: Number): UTSPromise { - return UTSPromise(fun(resolve, reject){ - doLoadHotProducts(targetLimit, resolve, reject) - } - ) - } - val loadHotProducts = ::gen_loadHotProducts_fn - val doLoadRecommendedProducts = fun(limit: Number, resolve: (value: Unit) -> Unit, reject: (reason: Any?) -> Unit): UTSPromise { - return wrapUTSPromise(suspend { - recommendedProducts.value = await(supabaseService.getRecommendedProducts(limit)) - resolve(Unit) - }) - } - fun gen_loadRecommendedProducts_fn(limit: Number): UTSPromise { - return UTSPromise(fun(resolve, reject){ - doLoadRecommendedProducts(limit, resolve, reject) - } - ) - } - val loadRecommendedProducts = ::gen_loadRecommendedProducts_fn - val loadHotKeywords = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val keywords = await(supabaseService.getHotKeywords(10)) - hotKeywords.value = keywords - console.log("加载热搜词:", keywords.length, "个", " at pages/mall/consumer/index.uvue:544") - } - catch (error: Throwable) { - console.error("加载热搜词失败:", error, " at pages/mall/consumer/index.uvue:546") - hotKeywords.value = _uA() - } - }) - } - val initData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - await(getCurrentUser()) - console.log("主页初始化:用户资料加载完成", " at pages/mall/consumer/index.uvue:563") - } - catch (error: Throwable) { - console.error("加载用户资料失败:", error, " at pages/mall/consumer/index.uvue:565") - } - await(loadCategories()) - await(loadBrands()) - await(loadHotKeywords()) - await(loadHotProducts(defaultLoadLimit)) - await(loadRecommendedProducts(defaultLoadLimit)) - }) - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - val screenWidth = systemInfo.screenWidth - isMobile.value = screenWidth < 768 - } - onMounted(fun(){ - initPage() - initData() - } - ) - onShow__1(fun(){ - console.log("=== index页面onShow被调用 ===", " at pages/mall/consumer/index.uvue:648") - console.log("主页重新显示,重置页面状态", " at pages/mall/consumer/index.uvue:649") - showNavbar.value = true - lastScrollTop.value = 0 - if (!isFirstShow.value) { - getCurrentUser().then(fun(profile){ - if (profile != null) { - console.log("主页onShow:用户资料更新成功", " at pages/mall/consumer/index.uvue:667") - } else { - console.log("主页onShow:用户资料为空,可能未登录", " at pages/mall/consumer/index.uvue:669") - } - }).`catch`(fun(error){ - console.error("主页onShow:加载用户资料失败:", error, " at pages/mall/consumer/index.uvue:672") - }) - } else { - isFirstShow.value = false - console.log("主页首次显示,跳过onShow中的用户资料检查,交由initData处理", " at pages/mall/consumer/index.uvue:676") - } - console.log("=== index页面onShow执行完成 ===", " at pages/mall/consumer/index.uvue:679") - } - ) - val handleScroll = fun(event: Any){ - val eventObj = event as UTSJSONObject - val detail = eventObj.get("detail") as UTSJSONObject - val scrollTop = detail.getNumber("scrollTop") ?: 0 - val currentTime = Date.now() - if (scrollTop > lastScrollTop.value) { - scrollingUp.value = false - if (scrollTop > scrollThreshold && showNavbar.value) { - showNavbar.value = false - } - } else if (scrollTop < lastScrollTop.value) { - scrollingUp.value = true - if (!showNavbar.value) { - showNavbar.value = true - } - } - if (scrollTop <= 10) { - showNavbar.value = true - } - lastScrollTop.value = scrollTop - } - val switchBrand = fun(brand: Brand){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search?keyword=" + UTSAndroid.consoleDebugError(encodeURIComponent(brand.name), " at pages/mall/consumer/index.uvue:756") + "&type=brand&brandId=" + brand.id)) - } - val switchSort = fun(sortId: String){ - if (sortId === "price" && activeSort.value === "price") { - priceAscending.value = !priceAscending.value - console.log("切换价格排序方向,升序:", priceAscending.value, " at pages/mall/consumer/index.uvue:765") - } else { - if (sortId !== "price") { - priceAscending.value = true - } - activeSort.value = sortId - } - hasMore.value = true - loadHotProducts(defaultLoadLimit) - } - val onRefresh = fun(): UTSPromise { - return wrapUTSPromise(suspend { - refreshing.value = true - try { - await(initData()) - } - catch (e: Throwable) { - console.error("刷新数据失败:", e, " at pages/mall/consumer/index.uvue:800") - } - finally { - setTimeout(fun(){ - refreshing.value = false - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "刷新成功", icon = "success")) - } - , 200) - } - , 800) - } - }) - } - val loadMore = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("=== 触发触底事件 ===", " at pages/mall/consumer/index.uvue:818") - if (loading.value) { - console.log("正在加载中,跳过", " at pages/mall/consumer/index.uvue:820") - return@w1 - } - showLoadMore.value = true - loading.value = true - try { - val currentCount = hotProducts.value.length - val nextPage = Math.floor(currentCount / 6) + 1 - val additionalLimit: Number = 6 - console.log("开始加载更多,当前数量:", currentCount, "页码:", nextPage, " at pages/mall/consumer/index.uvue:832") - var newProducts: UTSArray = _uA() - when (activeSort.value) { - "sales" -> - newProducts = await(supabaseService.getProductsBySales(currentCount + additionalLimit)) - "price" -> - newProducts = await(supabaseService.getProductsByPrice(currentCount + additionalLimit, priceAscending.value)) - "new" -> - newProducts = await(supabaseService.getProductsByNewest(currentCount + additionalLimit)) - "recommend" -> - newProducts = await(supabaseService.getSmartRecommendations(currentCount + additionalLimit)) - "discount" -> - newProducts = await(supabaseService.getDiscountProducts(currentCount + additionalLimit)) - else -> - newProducts = await(supabaseService.getProductsBySales(currentCount + additionalLimit)) - } - console.log("加载到的新商品数量:", newProducts.length, " at pages/mall/consumer/index.uvue:856") - if (newProducts.length <= currentCount) { - hasMore.value = false - uni_showToast(ShowToastOptions(title = "没有更多了", icon = "none")) - } else { - hotProducts.value = newProducts - } - } - catch (error: Throwable) { - console.error("加载更多失败:", error, " at pages/mall/consumer/index.uvue:870") - } - finally { - loading.value = false - setTimeout(fun(){ - showLoadMore.value = false - } - , 500) - } - }) - } - val addToCart = fun(product: Any): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val prodObj = if ((product is UTSJSONObject)) { - (product as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/mall/consumer/index.uvue:885") as UTSJSONObject) - } - val productId = prodObj.getString("id") ?: "" - val merchantId = prodObj.getString("merchant_id") ?: "" - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请先登录", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/index.uvue:922") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作异常", icon = "none")) - } - }) - } - val onScan = fun(): Unit { - uni_scanCode(ScanCodeOptions(success = fun(res){ - console.log("扫码成功:", res, " at pages/mall/consumer/index.uvue:935") - uni_showToast(ShowToastOptions(title = "扫码成功: " + res.result, icon = "none")) - } - , fail = fun(err){ - console.error("扫码失败:", err, " at pages/mall/consumer/index.uvue:942") - } - )) - } - val onCamera = fun(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, sourceType = _uA( - "camera" - ), success = fun(res){ - console.log("相机拍摄成功:", res.tempFilePaths[0], " at pages/mall/consumer/index.uvue:953") - uni_showToast(ShowToastOptions(title = "已拍摄,正在识别...", icon = "loading")) - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "识别成功", icon = "success")) - } - , 1000) - } - , fail = fun(err){ - console.error("相机调用失败:", err, " at pages/mall/consumer/index.uvue:966") - } - )) - } - val navigateToSearch = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search")) - } - val navigateToProduct = fun(product: Any){ - val prodObj = if ((product is UTSJSONObject)) { - (product as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/mall/consumer/index.uvue:976") as UTSJSONObject) - } - val productId = prodObj.getString("productId") ?: prodObj.getString("id") ?: "" - val name = prodObj.getString("name") ?: "" - val image = prodObj.getString("main_image_url") ?: prodObj.getString("image") ?: "/static/product1.jpg" - val price = (prodObj.getNumber("base_price") ?: prodObj.getNumber("price") ?: 0).toString(10) - val marketPrice = prodObj.getNumber("market_price") ?: prodObj.getNumber("original_price") ?: (parseFloat(price) * 1.2) - val originalPrice = marketPrice.toString(10) - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId + "&price=" + price + "&originalPrice=" + originalPrice + "&name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/mall/consumer/index.uvue:989") + "&image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/mall/consumer/index.uvue:989"))) - } - return fun(): Any? { - return _cE("view", _uM("class" to "medic-home"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px"), "transform" to if (showNavbar.value) { - "translateY(0)" - } else { - "translateY(-100%)" - } - ))), _uA( - _cE("view", _uM("class" to "search-container"), _uA( - _cE("view", _uM("class" to "search-box", "onClick" to navigateToSearch, "style" to _nS(_uM("height" to "30px"))), _uA( - _cE("text", _uM("class" to "search-placeholder"), "请输入药品名称、症状或品牌"), - _cE("view", _uM("class" to "nav-icon-btn", "onClick" to withModifiers(onScan, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-icon"), "🔳") - )), - _cE("view", _uM("class" to "nav-camera-btn", "onClick" to withModifiers(onCamera, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-camera-icon"), "📷") - )), - _cE("view", _uM("class" to "nav-inner-search-btn", "style" to _nS(_uM("height" to "22px"))), _uA( - _cE("text", _uM("class" to "nav-inner-search-text"), "搜索") - ), 4) - ), 4) - )) - ), 4), - _cE("scroll-view", _uM("direction" to "vertical", "class" to "main-scroll", "refresher-enabled" to "", "refresher-triggered" to refreshing.value, "lower-threshold" to 50, "onRefresherrefresh" to onRefresh, "onScrolltolower" to loadMore, "onScroll" to handleScroll), _uA( - _cE("view", _uM("class" to "smart-categories", "style" to _nS(_uM("marginTop" to ((statusBarHeight.value + 44 + 10) + "px")))), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("view", _uM("class" to "category-tabs-pills"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab-pill", - _uM("active" to (categoryTab.value == "category")) - )), "onClick" to fun(){ - categoryTab.value = "category" - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "智能分类") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-pill", - _uM("active" to (categoryTab.value == "brand")) - )), "onClick" to fun(){ - categoryTab.value = "brand" - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "品牌甄选") - ), 10, _uA( - "onClick" - )) - )), - _cE("text", _uM("class" to "section-desc"), "快速定位") - )), - if (categoryTab.value === "category") { - _cE("view", _uM("key" to 0, "class" to "category-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(parentCategories.value, fun(category, __key, __index, _cached): Any { - return _cE("view", _uM("key" to category.id, "class" to "category-card", "onClick" to fun(){ - onParentCategoryClick(category) - }, "style" to _nS(_uM("--card-color" to category.color))), _uA( - _cE("view", _uM("class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(category.icon), 1) - )), - _cE("text", _uM("class" to "card-name"), _tD(category.name), 1) - ), 12, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(categoryTab.value === "category" && showSubCategories.value && subCategories.value.length > 0)) { - _cE("view", _uM("key" to 1, "class" to "sub-category-grid"), _uA( - _cE("view", _uM("class" to "sub-category-header"), _uA( - _cE("text", _uM("class" to "sub-category-title"), _tD(selectedParentCategory.value?.name) + "分类", 1), - _cE("text", _uM("class" to "sub-category-close", "onClick" to fun(){ - showSubCategories.value = false - }), "✕", 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "sub-category-wrapper"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(subCategories.value, fun(subCat, __key, __index, _cached): Any { - return _cE("view", _uM("key" to subCat.id, "class" to "sub-category-card", "onClick" to fun(){ - onSubCategoryClick(subCat) - }), _uA( - _cE("view", _uM("class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(subCat.icon), 1) - )), - _cE("text", _uM("class" to "card-name"), _tD(subCat.name), 1) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - if (categoryTab.value === "brand") { - _cE("view", _uM("key" to 2, "class" to "category-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(brands.value, fun(brand, __key, __index, _cached): Any { - return _cE("view", _uM("key" to brand.id, "class" to "category-card", "onClick" to fun(){ - switchBrand(brand) - }, "style" to _nS(_uM("--card-color" to "#5785e5"))), _uA( - if (isTrue(brand.logo_url == null || brand.logo_url == "")) { - _cE("view", _uM("key" to 0, "class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(getBrandIcon(brand.name)), 1) - )) - } else { - _cE("image", _uM("key" to 1, "src" to brand.logo_url, "mode" to "aspectFit", "class" to "brand-logo", "style" to _nS(_uM("width" to "40px", "height" to "40px", "border-radius" to "20px"))), null, 12, _uA( - "src" - )) - }, - _cE("text", _uM("class" to "card-name"), _tD(brand.name), 1) - ), 12, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - ), 4), - _cE("view", _uM("class" to "hot-products"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("view", _uM("class" to "title-section"), _uA( - _cE("text", _uM("class" to "section-icon"), "🔥"), - _cE("text", _uM("class" to "section-title"), "热销商品") - )), - _cE("view", _uM("class" to "sort-tabs"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(sortTabs, fun(tab, __key, __index, _cached): Any { - return _cE("text", _uM("key" to tab.id, "class" to _nC(_uA( - "sort-tab", - _uM("active" to (activeSort.value === tab.id)) - )), "onClick" to fun(){ - switchSort(tab.id) - } - ), _tD(tab.name), 11, _uA( - "onClick" - )) - } - ), 64) - )) - )), - _cE("view", _uM("class" to "products-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(hotProducts.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "product-card", "onClick" to fun(){ - navigateToProduct(product) - } - ), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.main_image_url, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )), - if (isTrue(loading.value || showLoadMore.value)) { - _cE("view", _uM("key" to 0, "class" to "load-more-status"), _uA( - _cE("text", _uM("class" to "loading-text"), "正在加载更多商品...") - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "safe-area")) - ), 40, _uA( - "refresher-triggered" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0, - styles1 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("medic-home" to _pS(_uM("width" to "100%", "height" to "100%", "overflow" to "hidden", "backgroundImage" to "none", "backgroundColor" to "#f8fafc", "fontFamily" to "-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, sans-serif", "lineHeight" to 1.5, "display" to "flex", "flexDirection" to "column")), "main-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 1, "width" to "100%", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "maxWidth" to 1400, "marginLeft" to "auto", "marginRight" to "auto")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "cubic-bezier(0.4,0,0.2,1)")), "search-container" to _pS(_uM("height" to 44, "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%")), "search-box" to _pS(_uM("boxShadow:hover" to "0 2px 8px rgba(0, 0, 0, 0.1)", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "maxWidth" to 600, "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "width" to "100%", "height" to 32)), "search-placeholder" to _pS(_uM("fontSize" to 14, "color" to "#999999", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "nav-icon-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-icon" to _pS(_uM("fontSize" to 18)), "nav-inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 24)), "nav-inner-search-text" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "fontWeight" to "normal")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "nav-camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-camera-icon" to _pS(_uM("fontSize" to 20)), "smart-health-card" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #2196F3 0%, #1976D2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "color" to "#FFFFFF")), "health-content" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "health-header" to _pS(_uM("display" to "flex", "flexDirection" to "column", "marginBottom" to 12)), "health-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "marginBottom" to 4)), "health-subtitle" to _pS(_uM("fontSize" to 14, "opacity" to 0.9)), "health-tips" to _pS(_uM("display" to "flex", "flexWrap" to "wrap", "marginTop" to 8)), "tip-item" to _pS(_uM("fontSize" to 13, "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 12, "marginBottom" to 12)), "smart-categories" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "section-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginBottom" to 20, "flexDirection" to "column", "width" to "100%")), "category-tabs-pills" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#f0f2f5", "paddingTop" to 3, "paddingRight" to 3, "paddingBottom" to 3, "paddingLeft" to 3, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "alignItems" to "center")), "tab-pill" to _uM("" to _uM("paddingTop" to 6, "paddingRight" to 18, "paddingBottom" to 6, "paddingLeft" to 18, "borderTopLeftRadius" to 17, "borderTopRightRadius" to 17, "borderBottomRightRadius" to 17, "borderBottomLeftRadius" to 17, "transitionProperty" to "all", "transitionDuration" to "0.3s", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center"), ".active" to _uM("backgroundColor" to "#ffffff", "boxShadow" to "0 2px 8px rgba(0,0,0,0.08)")), "tab-text" to _uM("" to _uM("fontSize" to 14, "color" to "#888888", "fontWeight" to "normal"), ".tab-pill.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "section-title" to _uM("" to _uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#666666", "transitionProperty" to "color", "transitionDuration" to "0.3s"), ".active" to _uM("color" to "#ff5000", "fontSize" to 20)), "section-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "category-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 0, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "category-card" to _pS(_uM("width" to "18%", "marginTop" to 0, "marginRight" to "1%", "marginBottom" to 12, "marginLeft" to "1%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0)", "borderRightColor" to "rgba(0,0,0,0)", "borderBottomColor" to "rgba(0,0,0,0)", "borderLeftColor" to "rgba(0,0,0,0)", "position" to "relative", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)", "borderTopColor:hover" to "var(--card-color,#ff5000)", "borderRightColor:hover" to "var(--card-color,#ff5000)", "borderBottomColor:hover" to "var(--card-color,#ff5000)", "borderLeftColor:hover" to "var(--card-color,#ff5000)")), "sub-category-grid" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginTop" to 16)), "sub-category-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "paddingBottom" to 8, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e0e0e0")), "sub-category-title" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333")), "sub-category-close" to _pS(_uM("fontSize" to 16, "color" to "#999999", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8)), "sub-category-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "sub-category-card" to _pS(_uM("width" to "23%", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 10, "paddingRight" to 4, "paddingBottom" to 10, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#eeeeee", "borderRightColor" to "#eeeeee", "borderBottomColor" to "#eeeeee", "borderLeftColor" to "#eeeeee", "marginRight" to "2%", "marginBottom" to 10)), "card-icon" to _uM(".sub-category-card " to _uM("width" to 36, "height" to 36, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "marginBottom" to 6, "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), "" to _uM("width" to 44, "height" to 44, "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "background" to "var(--card-color, #ff5000)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 8)), "card-icon-text" to _uM(".sub-category-card " to _uM("fontSize" to 18), "" to _uM("fontSize" to 20, "color" to "#FFFFFF")), "card-name" to _uM(".sub-category-card " to _uM("fontSize" to 11, "color" to "#333333", "textAlign" to "center", "lines" to 1, "textOverflow" to "ellipsis"), "" to _uM("fontSize" to 12, "fontWeight" to "normal", "color" to "#333333", "marginBottom" to 4, "textAlign" to "center", "width" to "100%")), "card-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666", "textAlign" to "center")), "health-news" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "news-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "news-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "news-more" to _pS(_uM("fontSize" to 14, "color" to "#ff5000")), "news-swiper" to _pS(_uM("height" to 200, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "news-content" to _pS(_uM("position" to "relative", "height" to "100%", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "news-image" to _pS(_uM("width" to "100%", "height" to "100%", "display" to "flex")), "news-caption" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "lineHeight" to 1.4, "display" to "flex")), "smart-services" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "services-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 0, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "service-card" to _pS(_uM("width" to "47%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 20, "marginLeft" to "1.5%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "transform:hover" to "translateY(-4px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)")), "service-icon" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 30, "borderTopRightRadius" to 30, "borderBottomRightRadius" to 30, "borderBottomLeftRadius" to 30, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 12)), "service-icon-text" to _pS(_uM("fontSize" to 28, "color" to "#FFFFFF")), "service-name" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "service-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "hot-keywords-section" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20)), "keywords-list" to _pS(_uM("display" to "flex", "flexWrap" to "wrap", "marginTop" to 15)), "keyword-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 8, "paddingRight" to 16, "paddingBottom" to 8, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#fff0f0")), "keyword-rank" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 12, "fontWeight" to "bold", "color" to "#999999", "backgroundImage" to "none", "backgroundColor" to "#eeeeee", "marginRight" to 8), ".top-three" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff4757", "color" to "#FFFFFF")), "keyword-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "hot-products" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "title-section" to _pS(_uM("display" to "flex", "alignItems" to "center", "width" to "100%")), "section-icon" to _pS(_uM("fontSize" to 20, "color" to "#ff5000", "marginRight" to 8)), "sort-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start", "width" to "100%", "marginTop" to 12)), "sort-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 70, "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginRight" to 8, "backgroundImage:hover" to "none", "backgroundColor:hover" to "#f5f5f5"), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".active:hover" to _uM("backgroundImage" to "none", "backgroundColor" to "#e64a00")), "products-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "marginTop" to 20, "minHeight" to 500, "paddingBottom" to 20)), "product-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image" to _uM("" to _uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5"), ".product-image-container " to _uM("width" to "100%", "height" to "100%", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "cart-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "fontSize" to 13, "fontWeight" to "bold", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#388E3C")), "cart-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6, "color" to "#FFFFFF")), "cart-text" to _pS(_uM("fontSize" to 13)), "family-medicine" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "section-subtitle" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginLeft" to 12)), "family-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 20, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "family-item" to _pS(_uM("width" to "47%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 16, "marginLeft" to "1.5%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)")), "family-icon" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 12)), "family-icon-text" to _pS(_uM("fontSize" to 20, "color" to "#FFFFFF")), "family-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "family-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "smart-recommend" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "recommend-filters" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start", "width" to "100%", "marginTop" to 12)), "filter-item" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 80, "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginRight" to 8, "marginBottom" to 8, "backgroundImage:hover" to "none", "backgroundColor:hover" to "#f5f5f5"), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".active:hover" to _uM("backgroundImage" to "none", "backgroundColor" to "#e64a00")), "recommend-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 20, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "recommend-product" to _pS(_uM("width" to "97%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 20, "marginLeft" to "1.5%", "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transform:hover" to "translateY(-4px)", "boxShadow:hover" to "0 8px 24px rgba(0, 0, 0, 0.12)")), "product-image-container" to _pS(_uM("position" to "relative", "height" to 180)), "product-tags" to _pS(_uM("position" to "absolute", "top" to 12, "left" to 12, "display" to "flex", "flexDirection" to "row")), "product-tag" to _pS(_uM("paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF", "marginRight" to 8, "backgroundImage" to "none", "backgroundColor" to "rgba(76,175,80,0.9)")), "featured-tag" to _pS(_uM("paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF", "marginRight" to 8, "backgroundImage" to "none", "backgroundColor" to "rgba(255,87,34,0.9)")), "product-details" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "product-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4, "lineHeight" to 1.4, "display" to "flex")), "product-specification" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginBottom" to 12, "display" to "flex")), "product-rating" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 12, "fontSize" to 13)), "rating-stars" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginRight" to 8)), "star-icon" to _pS(_uM("fontSize" to 14, "color" to "#FFC107", "marginRight" to 2)), "rating-value" to _pS(_uM("fontWeight" to "bold", "color" to "#333333")), "reviews-count" to _pS(_uM("color" to "#666666"))) - } - val styles1: Map>> - get() { - return _uM("product-actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "marginTop" to 12)), "add-to-cart" to _pS(_uM("width" to 36, "height" to 36, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "backgroundImage" to "none", "backgroundColor" to "#ff5000", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#e64a00", "transform:hover" to "scale(1.1)")), "health-reminder" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #FF9800 0%, #F57C00 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 16, "paddingRight" to 20, "paddingBottom" to 16, "paddingLeft" to 20, "marginBottom" to 20, "color" to "#FFFFFF")), "reminder-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "reminder-icon" to _pS(_uM("fontSize" to 24, "marginRight" to 12)), "reminder-text" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "reminder-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "marginBottom" to 4)), "reminder-desc" to _pS(_uM("fontSize" to 13, "opacity" to 0.9)), "reminder-action" to _pS(_uM("paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-text" to _pS(_uM("fontSize" to 13, "fontWeight" to "bold")), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center")), "loading-spinner" to _pS(_uM("width" to 32, "height" to 32, "borderTopWidth" to 3, "borderRightWidth" to 3, "borderBottomWidth" to 3, "borderLeftWidth" to 3, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "marginBottom" to 12)), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "no-more" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "textAlign" to "center", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0", "marginTop" to 10)), "no-more-text" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "safe-area" to _pS(_uM("height" to 20, "width" to "100%")), "@TRANSITION" to _uM("smart-navbar" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "cubic-bezier(0.4,0,0.2,1)"), "search-box" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "tab-pill" to _uM("property" to "all", "duration" to "0.3s"), "section-title" to _uM("property" to "color", "duration" to "0.3s"), "category-card" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "service-card" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "keyword-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "sort-tab" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "cart-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "family-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "filter-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "recommend-product" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "add-to-cart" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "reminder-action" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt index 82b66e7b..7f35df3e 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt @@ -28,15 +28,7 @@ open class GenPagesMallConsumerMemberIndex : BasePage { return wrapUTSPromise(suspend { try { val result = await(supabaseService.getUserMemberInfo()) - memberInfo.value = object : UTSJSONObject() { - var member_level = result.getNumber("member_level") ?: 0 - var level_name = result.getString("level_name") ?: "普通会员" - var discount = result.getNumber("discount") ?: 1.0 - var total_spent = result.getNumber("total_spent") ?: 0 - var next_level = null - var progress_percent = result.getNumber("progress_percent") ?: 0 - var manual_level = result.getBoolean("manual_level") ?: false - } + val info = MemberInfo(member_level = result.getNumber("member_level") ?: 0, level_name = result.getString("level_name") ?: "普通会员", discount = result.getNumber("discount") ?: 1.0, total_spent = result.getNumber("total_spent") ?: 0, next_level = null, progress_percent = result.getNumber("progress_percent") ?: 0, manual_level = result.getBoolean("manual_level") ?: false) val nextLevelRaw = result.get("next_level") if (nextLevelRaw != null) { var nextLevelObj: UTSJSONObject? = null @@ -45,17 +37,13 @@ open class GenPagesMallConsumerMemberIndex : BasePage { } else { nextLevelObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(nextLevelRaw)), " at pages/mall/consumer/member/index.uvue:173") as UTSJSONObject } - memberInfo.value.next_level = object : UTSJSONObject() { - var id = nextLevelObj.getNumber("id") ?: 0 - var name = nextLevelObj.getString("name") ?: "" - var min_amount = nextLevelObj.getNumber("min_amount") ?: 0 - var discount: Number = 1.0 - var description = null - } + val nextLevel = MemberLevel(id = nextLevelObj.getNumber("id") ?: 0, name = nextLevelObj.getString("name") ?: "", min_amount = nextLevelObj.getNumber("min_amount") ?: 0, discount = 1.0, description = null) + info.next_level = nextLevel } + memberInfo.value = info } catch (e: Throwable) { - console.error("加载会员信息失败:", e, " at pages/mall/consumer/member/index.uvue:184") + console.error("加载会员信息失败:", e, " at pages/mall/consumer/member/index.uvue:186") } }) } @@ -72,7 +60,7 @@ open class GenPagesMallConsumerMemberIndex : BasePage { if (item is UTSJSONObject) { itemObj = item as UTSJSONObject } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:199") as UTSJSONObject + itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:201") as UTSJSONObject } parsed.push(MemberLevel(id = itemObj.getNumber("id") ?: 0, name = itemObj.getString("name") ?: "", min_amount = itemObj.getNumber("min_amount") ?: 0, discount = itemObj.getNumber("discount") ?: 1.0, description = itemObj.getString("description"))) i++ @@ -81,7 +69,7 @@ open class GenPagesMallConsumerMemberIndex : BasePage { levels.value = parsed } catch (e: Throwable) { - console.error("加载会员等级失败:", e, " at pages/mall/consumer/member/index.uvue:213") + console.error("加载会员等级失败:", e, " at pages/mall/consumer/member/index.uvue:215") } }) } @@ -99,7 +87,7 @@ open class GenPagesMallConsumerMemberIndex : BasePage { if (item is UTSJSONObject) { itemObj = item as UTSJSONObject } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:229") as UTSJSONObject + itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:231") as UTSJSONObject } parsed.push(LevelLog(id = itemObj.getString("id") ?: "", old_level = itemObj.getNumber("old_level") ?: 0, new_level = itemObj.getNumber("new_level") ?: 0, reason = itemObj.getString("reason"), created_at = itemObj.getString("created_at") ?: "")) i++ @@ -108,7 +96,7 @@ open class GenPagesMallConsumerMemberIndex : BasePage { logs.value = parsed } catch (e: Throwable) { - console.error("加载变更记录失败:", e, " at pages/mall/consumer/member/index.uvue:243") + console.error("加载变更记录失败:", e, " at pages/mall/consumer/member/index.uvue:245") } finally { logsLoading.value = false @@ -285,7 +273,12 @@ open class GenPagesMallConsumerMemberIndex : BasePage { return _cE("view", _uM("class" to "log-item", "key" to log.id), _uA( _cE("view", _uM("class" to "log-left"), _uA( _cE("text", _uM("class" to "log-change"), _tD(getLevelName(log.old_level)) + " → " + _tD(getLevelName(log.new_level)), 1), - _cE("text", _uM("class" to "log-reason"), _tD(log.reason || "系统升级"), 1) + _cE("text", _uM("class" to "log-reason"), _tD(if (log.reason != null && log.reason != "") { + log.reason + } else { + "系统升级" + } + ), 1) )), _cE("text", _uM("class" to "log-time"), _tD(formatDate(log.created_at)), 1) )) diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt index 957136cd..3263f649 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt @@ -13,6 +13,7 @@ import io.dcloud.uts.Set import io.dcloud.uts.UTSAndroid import kotlin.properties.Delegates import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo +import io.dcloud.uniapp.framework.onLoad as onLoad__1 import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData import io.dcloud.uniapp.extapi.showToast as uni_showToast open class GenPagesMallConsumerMessageDetail : BasePage { @@ -25,6 +26,64 @@ open class GenPagesMallConsumerMessageDetail : BasePage { val _cache = __ins.renderCache val message = ref(MessageType(id = "", type = "", title = "", content = "", icon_url = null, link_url = null, extra_data = null, created_at = "")) val extraInfo = ref(_uA()) + val formatLabel = fun(key: String): String { + if (key === "share_code") { + return "分享码" + } + if (key === "product_name") { + return "商品名称" + } + if (key === "reward_amount") { + return "奖励金额" + } + if (key === "order_no") { + return "订单号" + } + if (key === "buyer_name") { + return "购买者" + } + if (key === "quantity") { + return "数量" + } + return key + } + val parseExtraData = fun(data: Any){ + extraInfo.value = _uA() + if (data == null) { + return + } + try { + var dataObj: UTSJSONObject? = null + if (UTSAndroid.`typeof`(data) === "string") { + val parsed = UTSAndroid.consoleDebugError(JSON.parse(data as String), " at pages/mall/consumer/message-detail.uvue:82") + if (parsed != null) { + dataObj = parsed as UTSJSONObject + } + } else if (data is UTSJSONObject) { + dataObj = data as UTSJSONObject + } else { + dataObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(data)), " at pages/mall/consumer/message-detail.uvue:89") as UTSJSONObject + } + if (dataObj != null) { + val keys = UTSJSONObject.keys(dataObj) + run { + var i: Number = 0 + while(i < keys.length){ + val key = keys[i] as String + val value = dataObj.get(key) + if (value != null) { + val item = ExtraInfoItem(label = formatLabel(key), value = "" + value) + extraInfo.value.push(item) + } + i++ + } + } + } + } + catch (e: Throwable) { + console.error("解析extra_data失败:", e, " at pages/mall/consumer/message-detail.uvue:107") + } + } val loadMessage = fun(id: String): UTSPromise { return wrapUTSPromise(suspend { try { @@ -34,62 +93,19 @@ open class GenPagesMallConsumerMessageDetail : BasePage { } ) if (found != null) { - message.value = object : UTSJSONObject() { - var id = found.id - var type = found.type - var title = found.title - var content = found.content - var icon_url = found.icon_url - var link_url = found.link_url - var extra_data = found.extra_data - var created_at = found.created_at - } - if (found.extra_data != null) { - parseExtraData(found.extra_data) + val extraData = found.extra_data + val msg = MessageType(id = found.id, type = found.type, title = found.title, content = found.content, icon_url = found.icon_url, link_url = found.link_url, extra_data = extraData, created_at = found.created_at ?: "") + message.value = msg + if (extraData != null) { + parseExtraData(extraData) } } } catch (e: Throwable) { - console.error("加载消息失败:", e, " at pages/mall/consumer/message-detail.uvue:86") + console.error("加载消息失败:", e, " at pages/mall/consumer/message-detail.uvue:135") } }) } - val parseExtraData = fun(data: Any){ - extraInfo.value = _uA() - if (data == null) { - return - } - try { - var dataObj: Any = data - if (UTSAndroid.`typeof`(data) === "string") { - dataObj = UTSAndroid.consoleDebugError(JSON.parse(data as String), " at pages/mall/consumer/message-detail.uvue:98") - } - if (UTSAndroid.`typeof`(dataObj) === "object") { - val keys = Object.keys(dataObj) - run { - var i: Number = 0 - while(i < keys.length){ - val key = keys[i] - val value = dataObj[key] - if (value != null) { - extraInfo.value.push(object : UTSJSONObject() { - var label = formatLabel(key) - var value = String(value) - }) - } - i++ - } - } - } - } - catch (e: Throwable) { - console.error("解析extra_data失败:", e, " at pages/mall/consumer/message-detail.uvue:115") - } - } - val formatLabel = fun(key: String): String { - val labelMap = Record(share_code = "分享码", product_name = "商品名称", reward_amount = "奖励金额", order_no = "订单号", buyer_name = "购买者", quantity = "数量") - return labelMap[key] ?: key - } val formatTime = fun(timeStr: String): String { if (timeStr == null || timeStr === "") { return "" @@ -115,13 +131,11 @@ open class GenPagesMallConsumerMessageDetail : BasePage { } } } - onMounted(fun(){ - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val options = (currentPage as Any).options - if (options != null && options.id != null) { - loadMessage(options.id as String) + onLoad__1(fun(options){ + if (options != null) { + val idVal = options["id"] + if (idVal != null) { + loadMessage(idVal as String) } } } diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/messages.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/messages.kt deleted file mode 100644 index 98e410f8..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/messages.kt +++ /dev/null @@ -1,559 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNIEC68BC3 -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerMessages : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerMessages) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerMessages - val _cache = __ins.renderCache - val activeTab = ref("service") - val refreshing = ref(false) - val loading = ref(false) - val unreadCount = ref(12) - val statusBarHeight = ref(0) - val scrollTop = ref(0) - val scrollHeight = ref(0) - val messageTabs = reactive(_uA(MessageTab(id = "service", name = "客服消息", unread = 5), MessageTab(id = "system", name = "系统通知", unread = 3), MessageTab(id = "order", name = "订单消息", unread = 2), MessageTab(id = "promo", name = "优惠活动", unread = 2))) - val serviceMessages = reactive(_uA()) - val systemMessages = reactive(_uA()) - val orderMessages = reactive(_uA()) - val promoMessages = reactive(_uA()) - val currentMessages = computed>(fun(): UTSArray { - when (activeTab.value) { - "system" -> - return systemMessages - "order" -> - return orderMessages - "service" -> - return serviceMessages - "promo" -> - return promoMessages - else -> - return _uA() - } - } - ) - val formatTime = fun(isoString: String): String { - if (isoString == "") { - return "" - } - try { - return isoString.split("T")[0] - } - catch (e: Throwable) { - return isoString - } - } - val updateUnreadCount = fun(){ - var totalUnread: Number = 0 - var serviceUnread: Number = 0 - serviceMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - serviceUnread++ - } - } - ) - messageTabs[0].unread = serviceUnread - totalUnread += serviceUnread - var systemUnread: Number = 0 - systemMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - systemUnread++ - } - } - ) - messageTabs[1].unread = systemUnread - totalUnread += systemUnread - var orderUnread: Number = 0 - orderMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - orderUnread++ - } - } - ) - messageTabs[2].unread = orderUnread - totalUnread += orderUnread - var promoUnread: Number = 0 - promoMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - promoUnread++ - } - } - ) - messageTabs[3].unread = promoUnread - totalUnread += promoUnread - unreadCount.value = totalUnread - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - val windowHeight = systemInfo.windowHeight - scrollHeight.value = windowHeight - statusBarHeight.value - 44 - 42 - } - val loadMessages = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - serviceMessages.length = 0 - systemMessages.length = 0 - orderMessages.length = 0 - promoMessages.length = 0 - console.log("[loadMessages] 开始获取通知...", " at pages/mall/consumer/messages.uvue:358") - val notes = await(supabaseService.getUserNotifications()) - console.log("[loadMessages] 获取到通知数量:", notes.length, " at pages/mall/consumer/messages.uvue:360") - run { - var i: Number = 0 - while(i < notes.length){ - val note = notes[i] - console.log("[loadMessages] 通知类型:", note.type, "标题:", note.title, " at pages/mall/consumer/messages.uvue:365") - val item = MessageItem(id = note.id, title = note.title, content = note.content, time = formatTime(note.created_at ?: ""), read = note.is_read, type = note.type, avatar = note.icon_url, important = note.type == "system", coupon = "点击查看", expiry = "", claimed = false, order_no = "", status = "", statusText = "", role = "", lastMessage = "", online = false, unreadCount = 0, tags = _uA(), icon = "", color = "", active = false) - if (note.type == "system") { - systemMessages.push(item) - } else if (note.type == "order") { - orderMessages.push(item) - } else if (note.type == "promotion") { - item.type = "promo" - promoMessages.push(item) - } - i++ - } - } - console.log("[loadMessages] 系统消息:", systemMessages.length, "订单消息:", orderMessages.length, "优惠消息:", promoMessages.length, " at pages/mall/consumer/messages.uvue:402") - val rooms = await(supabaseService.getChatRooms()) - rooms.forEach(fun(room: ChatRoom){ - val msgItem = MessageItem(id = room.merchant_id, title = room.shop_name, role = "商家客服", content = room.last_message ?: "暂无消息", lastMessage = room.last_message ?: "暂无消息", time = formatTime(room.last_message_at ?: ""), read = room.unread_count === 0, type = "service", avatar = room.shop_logo ?: "/static/icons/shop-default.png", online = true, unreadCount = room.unread_count, tags = _uA(), icon = "🏪", color = "#FF9800", important = false, coupon = "", expiry = "", claimed = false, order_no = "", status = "", statusText = "", active = false) - serviceMessages.push(msgItem) - } - ) - if (serviceMessages.length === 0) { - val defaultService = MessageItem(id = "default_service", title = "平台客服", role = "智能助手", content = "有问题请随时联系我们", lastMessage = "欢迎咨询", time = "刚刚", read = true, type = "service", avatar = "/static/icons/service-avatar.png", online = true, unreadCount = 0, tags = _uA( - "自动回复" - ), icon = "🤖", color = "#2196F3", important = false, coupon = "", expiry = "", claimed = false, order_no = "", status = "", statusText = "", active = false) - serviceMessages.push(defaultService) - } - } - catch (e: Throwable) { - console.error("加载消息失败", e, " at pages/mall/consumer/messages.uvue:464") - } - finally { - updateUnreadCount() - loading.value = false - } - }) - } - onMounted(fun(){ - console.log("Messages Page Mounted", " at pages/mall/consumer/messages.uvue:473") - initPage() - } - ) - onShow__1(fun(){ - console.log("Messages Page Show", " at pages/mall/consumer/messages.uvue:478") - loadMessages() - } - ) - val switchTab = fun(tabId: String){ - activeTab.value = tabId - scrollTop.value = if (scrollTop.value === 0) { - 0.01 - } else { - 0 - } - } - val startChatWithService = fun(message: MessageItem){ - message.read = true - message.unreadCount = 0 - updateUnreadCount() - val merchantId = if (message.id === "default_service") { - "" - } else { - message.id - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchantId + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(message.title), " at pages/mall/consumer/messages.uvue:500"))) - } - val viewSystemMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/message-detail?id=" + message.id + "&type=system")) - } - val viewOrderMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?id=" + message.order_no)) - } - val viewPromoMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons")) - } - val claimCoupon = fun(message: MessageItem){ - if (message.claimed) { - uni_showToast(ShowToastOptions(title = "您已领取该优惠券", icon = "none")) - return - } - message.claimed = true - val claimedCouponsCount = uni_getStorageSync("claimedCoupons") - val count = if ((claimedCouponsCount != null)) { - (claimedCouponsCount as Number) - } else { - 0 - } - uni_setStorageSync("claimedCoupons", count + 1) - val myCoupons = uni_getStorageSync("myCoupons") - var couponsList: UTSArray = _uA() - if (myCoupons != null) { - try { - couponsList = UTSAndroid.consoleDebugError(JSON.parse(myCoupons as String), " at pages/mall/consumer/messages.uvue:571") as UTSArray - } - catch (e: Throwable) { - console.error("Failed to parse myCoupons", e, " at pages/mall/consumer/messages.uvue:573") - } - } - couponsList.push(object : UTSJSONObject() { - var title = message.title - var amount = message.coupon - var expiry = message.expiry - var id = message.id - }) - uni_setStorageSync("myCoupons", JSON.stringify(couponsList)) - uni_showToast(ShowToastOptions(title = "领取成功", icon = "success")) - } - val clearAllUnread = fun(){ - uni_showModal(ShowModalOptions(title = "确认操作", content = "确定要标记所有消息为已读吗?", success = fun(res){ - if (res.confirm) { - serviceMessages.forEach(fun(msg: MessageItem){ - msg.read = true - msg.unreadCount = 0 - } - ) - systemMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - orderMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - promoMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - messageTabs.forEach(fun(tab: MessageTab){ - tab.unread = 0 - } - ) - unreadCount.value = 0 - uni_showToast(ShowToastOptions(title = "已标记所有消息为已读", icon = "success")) - } - } - )) - } - val onRefresh = fun(){ - refreshing.value = true - setTimeout(fun(){ - loadMessages() - refreshing.value = false - uni_showToast(ShowToastOptions(title = "刷新成功", icon = "success")) - } - , 1000) - } - return fun(): Any? { - return _cE("view", _uM("class" to "messages-page"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "nav-container"), _uA( - _cE("text", _uM("class" to "nav-title"), "消息中心"), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to clearAllUnread), _uA( - _cE("text", _uM("class" to "action-icon"), "🧹"), - _cE("text", _uM("class" to "action-text"), "一键已读") - )) - )) - )) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "tabs-container"), _uA( - _cE("view", _uM("class" to "message-tabs"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(messageTabs, fun(tab, __key, __index, _cached): Any { - return _cE("view", _uM("key" to tab.id, "class" to _nC(_uA( - "tab-item", - _uM("active" to (activeTab.value === tab.id)) - )), "onClick" to fun(){ - switchTab(tab.id) - } - ), _uA( - _cE("text", _uM("class" to "tab-name"), _tD(tab.name), 1), - if (tab.unread > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(if (tab.unread > 99) { - "99+" - } else { - tab.unread - }), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - } - ), 128) - )) - )), - _cE("scroll-view", _uM("scroll-y" to "", "class" to "messages-content", "refresher-enabled" to "", "refresher-triggered" to refreshing.value, "onRefresherrefresh" to onRefresh, "scroll-top" to scrollTop.value), _uA( - if (activeTab.value === "service") { - _cE("view", _uM("key" to 0, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(serviceMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to _nC(_uA( - "message-item", - _uM("active" to message.active) - )), "onClick" to fun(){ - startChatWithService(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - if (isTrue(message.avatar)) { - _cE("image", _uM("key" to 0, "class" to "message-avatar", "src" to message.avatar, "mode" to "aspectFill"), null, 8, _uA( - "src" - )) - } else { - _cE("view", _uM("key" to 1, "class" to "message-icon-default", "style" to _nS(_uM("backgroundColor" to message.color))), _uA( - _cE("text", _uM("class" to "message-icon-text"), _tD(message.icon), 1) - ), 4) - }, - if (message.unreadCount > 0) { - _cE("view", _uM("key" to 2, "class" to "unread-dot")) - } else { - _cC("v-if", true) - }, - if (isTrue(message.online)) { - _cE("view", _uM("key" to 3, "class" to "online-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.role)) { - _cE("text", _uM("key" to 0, "class" to "message-role"), _tD(message.role), 1) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1), - if (message.unreadCount > 0) { - _cE("text", _uM("key" to 0, "class" to "message-unread-count"), _tD(if (message.unreadCount > 99) { - "99+" - } else { - message.unreadCount - }), 1) - } else { - _cC("v-if", true) - } - )) - )) - ), 10, _uA( - "onClick" - )) - }), 128), - _cE("view", _uM("class" to "service-tips"), _uA( - _cE("text", _uM("class" to "tip-icon"), "💡"), - _cE("text", _uM("class" to "tip-text"), "温馨提示:请勿相信任何要求转账、付款的信息,谨防诈骗") - )) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "system") { - _cE("view", _uM("key" to 1, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(systemMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to "message-item", "onClick" to fun(){ - viewSystemMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon-text"), "📢"), - if (isTrue(!message.read)) { - _cE("view", _uM("key" to 0, "class" to "unread-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.important)) { - _cE("text", _uM("key" to 0, "class" to "important-tag"), "重要") - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1) - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "order") { - _cE("view", _uM("key" to 2, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(orderMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to "message-item", "onClick" to fun(){ - viewOrderMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon-text"), "📦"), - if (isTrue(!message.read)) { - _cE("view", _uM("key" to 0, "class" to "unread-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.status)) { - _cE("view", _uM("key" to 0, "class" to _nC(_uA( - "order-status-tag", - message.status - ))), _tD(message.statusText), 3) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1) - )), - if (isTrue(message.order_no)) { - _cE("text", _uM("key" to 0, "class" to "order-no-text"), "订单号: " + _tD(message.order_no), 1) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "promo") { - _cE("view", _uM("key" to 3, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(promoMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to _nC(_uA( - "message-item", - _uM("unread" to !message.read) - )), "onClick" to fun(){ - viewPromoMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon"), "🎁") - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1), - if (isTrue(message.coupon)) { - _cE("view", _uM("key" to 0, "class" to "coupon-info", "onClick" to withModifiers(fun(){ - claimCoupon(message) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "coupon-text"), _tD(message.coupon) + "优惠券", 1), - _cE("text", _uM("class" to "coupon-expiry"), "有效期至 " + _tD(message.expiry), 1), - _cE("text", _uM("class" to "coupon-action"), _tD(if (message.claimed) { - "已领取" - } else { - "点击领取" - }), 1) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - ), 10, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && currentMessages.value.length === 0 && activeTab.value !== "service")) { - _cE("view", _uM("key" to 4, "class" to "empty-messages"), _uA( - _cE("text", _uM("class" to "empty-icon"), "💬"), - _cE("text", _uM("class" to "empty-title"), "暂无消息"), - _cE("text", _uM("class" to "empty-desc"), "暂时没有新消息") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "safe-area")) - ), 40, _uA( - "refresher-triggered", - "scroll-top" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("messages-page" to _pS(_uM("width" to "100%", "height" to "100%", "backgroundColor" to "#f8fafc", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start", "flexShrink" to 0)), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#FFFFFF", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "action-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4)), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#FFFFFF", "fontWeight" to "bold")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "tabs-container" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e0e0e0", "boxShadow" to "0 2px 4px rgba(0, 0, 0, 0.05)", "zIndex" to 900, "height" to 42, "flexShrink" to 0)), "message-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "height" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "justifyContent" to "space-between", "display::-webkit-scrollbar" to "none")), "tab-item" to _uM("" to _uM("paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "marginTop" to 0, "marginRight" to 2, "marginBottom" to 0, "marginLeft" to 2, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "position" to "relative", "height" to "100%", "borderBottomWidth" to 3, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0), ".active" to _uM("color" to "#ff5000", "borderBottomColor" to "#ff5000", "fontWeight" to "bold")), "tab-name" to _pS(_uM("fontSize" to 14, "overflow" to "hidden", "textOverflow" to "ellipsis")), "tab-badge" to _pS(_uM("backgroundColor" to "#FF5722", "color" to "#FFFFFF", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 5, "paddingBottom" to 1, "paddingLeft" to 5, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "minWidth" to 16, "textAlign" to "center", "fontWeight" to "bold", "marginLeft" to 4, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "height" to 16)), "messages-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "paddingBottom" to 20)), "customer-service-info" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.08)")), "service-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 10)), "service-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "service-status" to _uM("" to _uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "fontWeight" to "bold"), ".online" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#ff5000")), "service-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666", "lineHeight" to 1.5, "marginBottom" to 20)), "service-categories" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 6, "paddingRight" to 6, "paddingBottom" to 6, "paddingLeft" to 6)), "category-item" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "marginTop" to "1%", "marginRight" to "1%", "marginBottom" to "1%", "marginLeft" to "1%", "width" to "48%", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#e8f5e9", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 8px rgba(76, 175, 80, 0.2)")), "category-icon" to _pS(_uM("fontSize" to 24, "marginBottom" to 8)), "category-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "fontWeight" to "bold")), "message-section" to _pS(_uM("paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10)), "message-item" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "boxShadow" to "0 1px 4px rgba(0, 0, 0, 0.04)", "transitionProperty" to "opacity", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "opacity:active" to 0.7), ".unread" to _uM("backgroundColor" to "#FFFFFF")), "message-icon-wrapper" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "backgroundColor" to "#f8fafc", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 12, "flexShrink" to 0, "position" to "relative")), "message-icon-default" to _pS(_uM("width" to "100%", "height" to "100%", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "message-icon-text" to _pS(_uM("fontSize" to 22)), "message-avatar" to _pS(_uM("width" to "100%", "height" to "100%", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24)), "unread-dot" to _pS(_uM("position" to "absolute", "top" to 0, "right" to 0, "width" to 10, "height" to 10, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "borderTopWidth" to 1.5, "borderRightWidth" to 1.5, "borderBottomWidth" to 1.5, "borderLeftWidth" to 1.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#FFFFFF", "borderRightColor" to "#FFFFFF", "borderBottomColor" to "#FFFFFF", "borderLeftColor" to "#FFFFFF")), "online-dot" to _pS(_uM("position" to "absolute", "bottom" to 0, "right" to 0, "width" to 12, "height" to 12, "backgroundColor" to "#4cd964", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#FFFFFF", "borderRightColor" to "#FFFFFF", "borderBottomColor" to "#FFFFFF", "borderLeftColor" to "#FFFFFF")), "message-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0, "display" to "flex", "flexDirection" to "column")), "message-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 4)), "message-title-wrapper" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0, "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "message-title" to _pS(_uM("fontSize" to 16, "color" to "#1a1a1a", "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "message-role" to _pS(_uM("fontSize" to 10, "color" to "#ff5000", "backgroundImage" to "none", "backgroundColor" to "#fff0eb", "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginLeft" to 6, "flexShrink" to 0)), "message-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginLeft" to 10, "flexShrink" to 0)), "message-preview-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between")), "message-preview" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 13, "color" to "#666666", "lineHeight" to 1.4, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap", "marginRight" to 8)), "message-unread-count" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "minWidth" to 16, "height" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontWeight" to "bold", "flexShrink" to 0)), "last-message" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "message-tags" to _pS(_uM("display" to "flex", "flexWrap" to "wrap")), "message-tag" to _pS(_uM("fontSize" to 11, "color" to "#666666", "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "paddingTop" to 3, "paddingRight" to 8, "paddingBottom" to 3, "paddingLeft" to 8, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginRight" to 6, "marginBottom" to 4)), "order-info" to _pS(_uM("fontSize" to 12, "color" to "#ff5000", "backgroundColor" to "#FFF3E0", "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 8, "alignSelf" to "flex-start")), "order-status" to _uM("" to _uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginTop" to 8, "marginLeft" to 8, "alignSelf" to "flex-start"), ".shipping" to _uM("backgroundImage" to "none", "backgroundColor" to "#E3F2FD", "color" to "#2196F3"), ".processing" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#FF9800"), ".completed" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#ff5000")), "important-tag" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 8, "alignSelf" to "flex-start", "marginLeft" to 6, "flexShrink" to 0)), "coupon-info" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #FF9800, #FF5722)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "marginTop" to 8, "color" to "#FFFFFF")), "coupon-text" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "marginBottom" to 4)), "coupon-expiry" to _pS(_uM("fontSize" to 12, "opacity" to 0.9)), "coupon-action" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginTop" to 4, "alignSelf" to "flex-start")), "service-tips" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "display" to "flex", "alignItems" to "flex-start")), "tip-icon" to _pS(_uM("fontSize" to 18, "color" to "#FF9800", "flexShrink" to 0, "marginTop" to 2, "marginRight" to 10)), "tip-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "lineHeight" to 1.5)), "order-no-text" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginTop" to 4)), "order-status-tag" to _uM("" to _uM("fontSize" to 10, "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginLeft" to 6, "flexShrink" to 0), ".shipping" to _uM("backgroundImage" to "none", "backgroundColor" to "#e3f2fd", "color" to "#2196f3"), ".processing" to _uM("backgroundImage" to "none", "backgroundColor" to "#fff8e1", "color" to "#ffb300"), ".completed" to _uM("backgroundImage" to "none", "backgroundColor" to "#fff0eb", "color" to "#ff5000")), "empty-messages" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 100)), "empty-icon" to _pS(_uM("fontSize" to 60, "marginBottom" to 16, "opacity" to 0.3)), "empty-title" to _pS(_uM("fontSize" to 16, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 8)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "floating-action" to _pS(_uM("position" to "fixed", "bottom" to 20, "right" to 20, "zIndex" to 100)), "action-button" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff5000, #e64a00)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 12, "paddingRight" to 20, "paddingBottom" to 12, "paddingLeft" to 20, "display" to "flex", "alignItems" to "center", "boxShadow" to "0 4px 12px rgba(76, 175, 80, 0.3)", "fontWeight" to "bold")), "button-icon" to _pS(_uM("fontSize" to 18, "marginRight" to 8)), "button-text" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold")), "safe-area" to _pS(_uM("height" to 80)), "@TRANSITION" to _uM("action-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "tab-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "category-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "message-item" to _uM("property" to "opacity", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt index 504c5499..5e85fb97 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt @@ -82,7 +82,7 @@ open class GenPagesMallConsumerMyReviews : BasePage { return wrapUTSPromise(suspend { loading.value = true try { - val orders = await(supabaseService.getOrders("completed")) + val orders = await(supabaseService.getOrders(4)) val pending: UTSArray = _uA() run { var i: Number = 0 @@ -177,14 +177,6 @@ open class GenPagesMallConsumerMyReviews : BasePage { } }) } - val confirmDelete = fun(review: MyReviewItem): Unit { - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除这条评价吗?", success = fun(res){ - if (res.confirm) { - doDelete(review) - } - } - )) - } val doDelete = fun(review: MyReviewItem): UTSPromise { return wrapUTSPromise(suspend { uni_showLoading(ShowLoadingOptions(title = "删除中...")) @@ -201,7 +193,7 @@ open class GenPagesMallConsumerMyReviews : BasePage { } } catch (e: Throwable) { - console.error("删除评价失败:", e, " at pages/mall/consumer/my-reviews.uvue:359") + console.error("删除评价失败:", e, " at pages/mall/consumer/my-reviews.uvue:347") uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) } finally { @@ -209,6 +201,14 @@ open class GenPagesMallConsumerMyReviews : BasePage { } }) } + val confirmDelete = fun(review: MyReviewItem): Unit { + uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除这条评价吗?", success = fun(res){ + if (res.confirm) { + doDelete(review) + } + } + )) + } val previewImage = fun(images: UTSArray, index: Number): Unit { uni_previewImage(PreviewImageOptions(urls = images, current = index)) } diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt index b9791770..bc96b5b2 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt @@ -40,8 +40,8 @@ open class GenPagesMallConsumerOrders : BasePage { val activeTab = ref("all") val statusBarHeight = ref(0) val searchKeyword = ref("") - val merchantShareFreeEnabled = ref(Record()) - val merchantRequiredCount = ref(Record()) + val merchantShareFreeEnabled = ref(UTSJSONObject()) + val merchantRequiredCount = ref(UTSJSONObject()) val orderTabs = ref(_uA(OrderTabItem(id = "all", name = "全部", count = 0), OrderTabItem(id = "pending", name = "待付款", count = 0), OrderTabItem(id = "shipping", name = "待发货", count = 0), OrderTabItem(id = "delivering", name = "待收货", count = 0), OrderTabItem(id = "completed", name = "已完成", count = 0), OrderTabItem(id = "aftersale", name = "售后", count = 0), OrderTabItem(id = "cancelled", name = "已取消", count = 0))) val orderTabsMobile = computed(fun(): UTSArray { return orderTabs.value.filter(fun(tab: OrderTabItem): Boolean { @@ -190,19 +190,73 @@ open class GenPagesMallConsumerOrders : BasePage { ) } } + val isShareFreeEnabled = fun(merchantId: String): Boolean { + val kVal = merchantShareFreeEnabled.value.get(merchantId) + return kVal === true + } + val getRequiredCount = fun(merchantId: String): Number { + val kVal = merchantRequiredCount.value.get(merchantId) + if (kVal != null && UTSAndroid.`typeof`(kVal) === "number") { + return kVal as Number + } + return 4 + } + val loadMerchantPromotionConfigs = fun(orderList: UTSArray): UTSPromise { + return wrapUTSPromise(suspend { + val merchantIds = Set() + run { + var i: Number = 0 + while(i < orderList.length){ + val merchantId = orderList[i].merchant_id + val existingVal = merchantShareFreeEnabled.value.get(merchantId) + if (merchantId != null && merchantId !== "" && existingVal == null) { + merchantIds.add(merchantId) + } + i++ + } + } + val merchantIdArray = UTSArray.from(merchantIds) + run { + var i: Number = 0 + while(i < merchantIdArray.length){ + val merchantIdRaw = merchantIdArray[i] + val merchantId = merchantIdRaw as String + try { + val config = await(supabaseService.getMerchantPromotionConfig(merchantId)) + val promotionEnabled = config.get("promotion_enabled") + val shareFreeEnabled = config.get("share_free_enabled") + val requiredCount = config.get("required_count") + val isEnabled: Any = (promotionEnabled === true || promotionEnabled === "true") && (shareFreeEnabled === true || shareFreeEnabled === "true") + merchantShareFreeEnabled.value.set(merchantId, isEnabled) + if (requiredCount != null) { + merchantRequiredCount.value.set(merchantId, requiredCount) + } else { + merchantRequiredCount.value.set(merchantId, 4 as Any) + } + } + catch (e: Throwable) { + console.error("加载商家推销配置失败:", merchantId, e, " at pages/mall/consumer/orders.uvue:428") + merchantShareFreeEnabled.value.set(merchantId, false as Any) + merchantRequiredCount.value.set(merchantId, 4 as Any) + } + i++ + } + } + }) + } val loadOrders = fun(): UTSPromise { return wrapUTSPromise(suspend { loading.value = true try { val fetchedOrders = await(supabaseService.getOrders(0)) - console.log("[loadOrders] 获取到订单数量:", fetchedOrders.length, " at pages/mall/consumer/orders.uvue:386") + console.log("[loadOrders] 获取到订单数量:", fetchedOrders.length, " at pages/mall/consumer/orders.uvue:442") val mappedOrders: UTSArray = _uA() run { var i: Number = 0 while(i < fetchedOrders.length){ val order = fetchedOrders[i] val orderStr = JSON.stringify(order) - val orderParsed = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at pages/mall/consumer/orders.uvue:394") + val orderParsed = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at pages/mall/consumer/orders.uvue:450") if (orderParsed == null) { i++ continue @@ -210,17 +264,17 @@ open class GenPagesMallConsumerOrders : BasePage { val orderObj = orderParsed as UTSJSONObject val itemsRaw = orderObj.get("ml_order_items") val productsList: UTSArray = _uA() - console.log("[loadOrders] 订单商品数据:", itemsRaw, " at pages/mall/consumer/orders.uvue:401") + console.log("[loadOrders] 订单商品数据:", itemsRaw, " at pages/mall/consumer/orders.uvue:457") if (itemsRaw != null) { if (UTSArray.isArray(itemsRaw)) { val items = itemsRaw as UTSArray - console.log("[loadOrders] 商品数量:", items.length, " at pages/mall/consumer/orders.uvue:407") + console.log("[loadOrders] 商品数量:", items.length, " at pages/mall/consumer/orders.uvue:463") run { var j: Number = 0 while(j < items.length){ val item = items[j] val itemStr = JSON.stringify(item) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/orders.uvue:411") + val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/orders.uvue:467") if (itemParsed == null) { j++ continue @@ -237,7 +291,7 @@ open class GenPagesMallConsumerOrders : BasePage { val price = itemObj.getNumber("price") val imageUrl = itemObj.getString("image_url") val quantity = itemObj.getNumber("quantity") - console.log("[loadOrders] 商品:", productName, "图片:", imageUrl, "规格:", specText, " at pages/mall/consumer/orders.uvue:424") + console.log("[loadOrders] 商品:", productName, "图片:", imageUrl, "规格:", specText, " at pages/mall/consumer/orders.uvue:480") val productItem = OrderProduct(id = productId ?: "", name = productName ?: "未知商品", price = price ?: 0, image = imageUrl ?: "/static/default-product.png", spec = specText, quantity = quantity ?: 1) productsList.push(productItem) j++ @@ -258,7 +312,7 @@ open class GenPagesMallConsumerOrders : BasePage { val shopsRaw = orderObj.get("ml_shops") if (shopsRaw != null) { val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/mall/consumer/orders.uvue:454") + val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/mall/consumer/orders.uvue:510") if (shopParsed != null) { val shopObj = shopParsed as UTSJSONObject val shopNameFromDb = shopObj.getString("shop_name") @@ -269,7 +323,7 @@ open class GenPagesMallConsumerOrders : BasePage { } else if (merchantId != null && merchantId != "") { shopName = "商家店铺" } - console.log("[loadOrders] 订单号:", orderNo, "店铺:", shopName, "商品数:", productsList.length, " at pages/mall/consumer/orders.uvue:466") + console.log("[loadOrders] 订单号:", orderNo, "店铺:", shopName, "商品数:", productsList.length, " at pages/mall/consumer/orders.uvue:522") if (productsList.length === 0) { val placeholderProduct = OrderProduct(id = "placeholder", name = "订单商品", price = totalAmount ?: paidAmount ?: 0, image = "/static/default-product.png", spec = "", quantity = 1) productsList.push(placeholderProduct) @@ -291,7 +345,7 @@ open class GenPagesMallConsumerOrders : BasePage { loadMerchantPromotionConfigs(mappedOrders) } catch (err: Throwable) { - console.error("加载订单异常:", err, " at pages/mall/consumer/orders.uvue:515") + console.error("加载订单异常:", err, " at pages/mall/consumer/orders.uvue:571") uni_showToast(ShowToastOptions(title = "加载订单失败", icon = "none")) } finally { @@ -339,42 +393,6 @@ open class GenPagesMallConsumerOrders : BasePage { loadOrders() } ) - val loadMerchantPromotionConfigs = fun(orderList: UTSArray): UTSPromise { - return wrapUTSPromise(suspend { - val merchantIds = Set() - run { - var i: Number = 0 - while(i < orderList.length){ - val merchantId = orderList[i].merchant_id - if (merchantId != null && merchantId !== "" && !merchantShareFreeEnabled.value.hasOwnProperty(merchantId)) { - merchantIds.add(merchantId) - } - i++ - } - } - val merchantIdArray = UTSArray.from(merchantIds) - run { - var i: Number = 0 - while(i < merchantIdArray.length){ - val merchantId = merchantIdArray[i] - try { - val config = await(supabaseService.getMerchantPromotionConfig(merchantId)) - val promotionEnabled = config.get("promotion_enabled") - val shareFreeEnabled = config.get("share_free_enabled") - val requiredCount = config.get("required_count") - merchantShareFreeEnabled.value[merchantId] = (promotionEnabled === true || promotionEnabled === "true") && (shareFreeEnabled === true || shareFreeEnabled === "true") - merchantRequiredCount.value[merchantId] = (requiredCount as Number) ?: 4 - } - catch (e: Throwable) { - console.error("加载商家推销配置失败:", merchantId, e, " at pages/mall/consumer/orders.uvue:576") - merchantShareFreeEnabled.value[merchantId] = false - merchantRequiredCount.value[merchantId] = 4 - } - i++ - } - } - }) - } val formatDate = fun(isoString: String): String { if (isoString == "") { return "" @@ -558,15 +576,15 @@ open class GenPagesMallConsumerOrders : BasePage { val message = "你好,我的订单[" + orderNo + "]还没有发货,请尽快安排,谢谢。" val success = await(supabaseService.sendChatMessage(message, merchantId)) if (success) { - console.log("催单消息发送成功", " at pages/mall/consumer/orders.uvue:803") + console.log("催单消息发送成功", " at pages/mall/consumer/orders.uvue:826") } else { - console.warn("催单消息发送失败,可能是由于网络原因", " at pages/mall/consumer/orders.uvue:805") + console.warn("催单消息发送失败,可能是由于网络原因", " at pages/mall/consumer/orders.uvue:828") } } } } catch (e: Throwable) { - console.error("提醒发货异常:", e, " at pages/mall/consumer/orders.uvue:810") + console.error("提醒发货异常:", e, " at pages/mall/consumer/orders.uvue:833") } finally { uni_hideLoading() @@ -823,7 +841,7 @@ open class GenPagesMallConsumerOrders : BasePage { } catch (e: Throwable) { uni_hideLoading() - console.error("[shareForFree] 创建分享失败:", e, " at pages/mall/consumer/orders.uvue:1130") + console.error("[shareForFree] 创建分享失败:", e, " at pages/mall/consumer/orders.uvue:1153") uni_showToast(ShowToastOptions(title = "分享失败", icon = "none")) } }) @@ -963,7 +981,7 @@ open class GenPagesMallConsumerOrders : BasePage { _cE("text", _uM("class" to "summary-price"), "¥" + _tD(order.total_amount), 1) )) )), - if (isTrue(order.status >= 2 && order.status <= 4 && merchantShareFreeEnabled.value[order.merchant_id])) { + if (isTrue(order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id))) { _cE("view", _uM("key" to 0, "class" to "share-free-row", "onClick" to withModifiers(fun(){ shareForFree(order) }, _uA( @@ -971,11 +989,7 @@ open class GenPagesMallConsumerOrders : BasePage { ))), _uA( _cE("text", _uM("class" to "share-free-icon"), "🎁"), _cE("text", _uM("class" to "share-free-text"), "分享免单"), - _cE("text", _uM("class" to "share-free-tip"), "分享给好友," + _tD(if (merchantRequiredCount.value[order.merchant_id] != null) { - merchantRequiredCount.value[order.merchant_id] - } else { - 4 - }) + "人购买即可免单", 1), + _cE("text", _uM("class" to "share-free-tip"), "分享给好友," + _tD(getRequiredCount(order.merchant_id)) + "人购买即可免单", 1), _cE("text", _uM("class" to "share-free-arrow"), "›") ), 8, _uA( "onClick" diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt index bdee51bc..c68eaeee 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt @@ -25,20 +25,20 @@ open class GenPagesMallConsumerProductDetail : BasePage { constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) { onLoad(fun(options: Any) { val opts = options as UTSJSONObject - val productId = (opts.getString("productId") ?: opts.getString("id")) as String - val priceStr = opts.getString("price") + val productId = (opts["productId"] ?: opts["id"]) as String? + val priceStr = opts["price"] as String? val productPrice = if (priceStr != null) { parseFloat(priceStr) } else { null } - val originalPriceStr = opts.getString("originalPrice") + val originalPriceStr = opts["originalPrice"] as String? val productOriginalPrice = if (originalPriceStr != null) { parseFloat(originalPriceStr) } else { null } - var productName = opts.getString("name") as String? + var productName = opts["name"] as String? if (productName != null) { try { val decodedName = UTSAndroid.consoleDebugError(decodeURIComponent(productName), " at pages/mall/consumer/product-detail.uvue:295") @@ -48,7 +48,7 @@ open class GenPagesMallConsumerProductDetail : BasePage { console.warn("ProductName decode failed, using original:", productName, " at pages/mall/consumer/product-detail.uvue:298") } } - var productImage = opts.getString("image") as String? + var productImage = opts["image"] as String? if (productImage != null) { try { val decodedImage = UTSAndroid.consoleDebugError(decodeURIComponent(productImage), " at pages/mall/consumer/product-detail.uvue:305") @@ -138,7 +138,7 @@ open class GenPagesMallConsumerProductDetail : BasePage { )), _cE("text", _uM("class" to "enter-shop", "onClick" to withModifiers(_ctx.goToShop, _uA( "stop" - ))), "进店 >", 8, _uA( + ))), "进店 ❯", 8, _uA( "onClick" )) ), 8, _uA( @@ -161,7 +161,7 @@ open class GenPagesMallConsumerProductDetail : BasePage { return _cE("text", _uM("class" to "coupon-tag", "key" to index), _tD(coupon.name), 1) }), 128) )), - _cE("text", _uM("class" to "cell-arrow"), "领券 >") + _cE("text", _uM("class" to "cell-arrow"), "领券 ❯") ), 8, _uA( "onClick" )) @@ -174,7 +174,7 @@ open class GenPagesMallConsumerProductDetail : BasePage { _cE("view", _uM("class" to "cell-content"), _uA( _cE("text", _uM("class" to "params-summary-text"), _tD(_ctx.getParamsSummary()), 1) )), - _cE("text", _uM("class" to "cell-arrow"), ">") + _cE("text", _uM("class" to "cell-arrow"), "❯") ), 8, _uA( "onClick" )), @@ -184,7 +184,7 @@ open class GenPagesMallConsumerProductDetail : BasePage { _cE("view", _uM("class" to "cell-content"), _uA( _cE("text", _uM("class" to "spec-selected"), _tD(_ctx.selectedSpec ?: "请选择规格"), 1) )), - _cE("text", _uM("class" to "cell-arrow"), ">") + _cE("text", _uM("class" to "cell-arrow"), "❯") ), 8, _uA( "onClick" )) diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt index f1ca8c8e..cb3e1ec3 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt @@ -12,6 +12,7 @@ import io.dcloud.uts.Map import io.dcloud.uts.Set import io.dcloud.uts.UTSAndroid import kotlin.properties.Delegates +import io.dcloud.uniapp.framework.onLoad as onLoad__1 import io.dcloud.uniapp.extapi.previewImage as uni_previewImage open class GenPagesMallConsumerProductReviews : BasePage { constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} @@ -56,19 +57,15 @@ open class GenPagesMallConsumerProductReviews : BasePage { } } } - stats.value = object : UTSJSONObject() { - var total_count = result.getNumber("total_count") ?: 0 - var avg_rating = result.getNumber("avg_rating") ?: 0 - var good_rate = result.getNumber("good_rate") ?: 0 - var rating_distribution = distMap - } + val statsData = StatsType__1(total_count = result.getNumber("total_count") ?: 0, avg_rating = result.getNumber("avg_rating") ?: 0, good_rate = result.getNumber("good_rate") ?: 0, rating_distribution = distMap) + stats.value = statsData } catch (e: Throwable) { - console.error("加载统计失败:", e, " at pages/mall/consumer/product-reviews.uvue:232") + console.error("加载统计失败:", e, " at pages/mall/consumer/product-reviews.uvue:234") } }) } - val loadReviews = fun(pageNum: Number = 1): UTSPromise { + val loadReviews = fun(pageNum: Number): UTSPromise { return wrapUTSPromise(suspend { loading.value = true try { @@ -86,19 +83,19 @@ open class GenPagesMallConsumerProductReviews : BasePage { if (item is UTSJSONObject) { reviewObj = item as UTSJSONObject } else { - reviewObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/product-reviews.uvue:260") as UTSJSONObject + reviewObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/product-reviews.uvue:262") as UTSJSONObject } var images: UTSArray = _uA() val imagesRaw = reviewObj.get("images") if (imagesRaw != null && UTSAndroid.`typeof`(imagesRaw) === "string") { try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(imagesRaw as String), " at pages/mall/consumer/product-reviews.uvue:267") + val parsed = UTSAndroid.consoleDebugError(JSON.parse(imagesRaw as String), " at pages/mall/consumer/product-reviews.uvue:269") if (UTSArray.isArray(parsed)) { images = parsed as UTSArray } } catch (e: Throwable) { - console.error("解析图片失败:", e, " at pages/mall/consumer/product-reviews.uvue:272") + console.error("解析图片失败:", e, " at pages/mall/consumer/product-reviews.uvue:274") } } val review = ReviewItem(id = reviewObj.getString("id") ?: "", user_id = reviewObj.getString("user_id") ?: "", user_name = reviewObj.getString("user_name") ?: "匿名用户", user_avatar = reviewObj.getString("user_avatar") ?: "", rating = reviewObj.getNumber("rating") ?: 5, content = reviewObj.getString("content") ?: "", images = images, is_anonymous = reviewObj.getBoolean("is_anonymous") ?: false, like_count = reviewObj.getNumber("like_count") ?: 0, is_liked = reviewObj.getBoolean("is_liked") ?: false, append_content = reviewObj.getString("append_content"), append_at = reviewObj.getString("append_at"), reply = reviewObj.getString("reply"), created_at = reviewObj.getString("created_at") ?: "") @@ -116,7 +113,7 @@ open class GenPagesMallConsumerProductReviews : BasePage { page.value = pageNum } catch (e: Throwable) { - console.error("加载评价失败:", e, " at pages/mall/consumer/product-reviews.uvue:305") + console.error("加载评价失败:", e, " at pages/mall/consumer/product-reviews.uvue:307") } finally { loading.value = false @@ -150,7 +147,7 @@ open class GenPagesMallConsumerProductReviews : BasePage { } } catch (e: Throwable) { - console.error("点赞失败:", e, " at pages/mall/consumer/product-reviews.uvue:339") + console.error("点赞失败:", e, " at pages/mall/consumer/product-reviews.uvue:341") } }) } @@ -185,13 +182,11 @@ open class GenPagesMallConsumerProductReviews : BasePage { return "" + y + "-" + m + "-" + d } } - onMounted(fun(){ - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val options = (currentPage as Any).options - if (options != null && options.product_id != null) { - productId.value = options.product_id as String + onLoad__1(fun(options){ + if (options != null) { + val idVal = options["product_id"] + if (idVal != null) { + productId.value = idVal as String loadStats() loadReviews(1) } diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/profile.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/profile.kt deleted file mode 100644 index e9fc75ec..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/profile.kt +++ /dev/null @@ -1,1291 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNIEC68BC3 -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.`$off` as uni__off -import io.dcloud.uniapp.extapi.`$on` as uni__on -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerProfile : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) { - onLoad(fun(_: OnLoadOptions) { - this.initPage() - this.loadUserProfile() - this.loadOrders() - uni__on("orderUpdated", this.handleOrderUpdated) - } - , __ins) - onPageShow(fun() { - this.refreshData() - } - , __ins) - onUnload(fun() { - uni__off("orderUpdated", this.handleOrderUpdated) - } - , __ins) - } - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - override fun `$render`(): Any? { - val _ctx = this - val _cache = this.`$`.renderCache - return _cE("view", _uM("class" to "consumer-profile"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (_ctx.statusBarHeight + "px")))), _uA( - _cE("view", _uM("class" to "nav-container"), _uA( - _cE("view", _uM("class" to "nav-user-basic", "onClick" to _ctx.editProfile), _uA( - _cE("image", _uM("src" to if (_ctx.userInfo.avatar_url != "") { - _ctx.userInfo.avatar_url - } else { - "/static/default-avatar.png" - } - , "class" to "nav-avatar"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "nav-user-name"), _tD(if (_ctx.userInfo.nickname != "") { - _ctx.userInfo.nickname - } else { - _ctx.userInfo.phone - } - ), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-user-stats"), _uA( - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToPoints), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "积分"), - _cE("text", _uM("class" to "nav-stat-value"), _tD(_ctx.userStats.points), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToWallet), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "余额"), - _cE("text", _uM("class" to "nav-stat-value"), "¥" + _tD(_ctx.userStats.balance), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToCoupons), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "券"), - _cE("text", _uM("class" to "nav-stat-value"), _tD(_ctx.serviceCounts.coupons), 1) - ), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to _ctx.goToSettings), _uA( - _cE("text", _uM("class" to "action-icon"), "⚙️") - ), 8, _uA( - "onClick" - )) - )) - )) - ), 4), - _cE("scroll-view", _uM("class" to "profile-scroll-content", "scroll-y" to true), _uA( - _cE("view", _uM("style" to _nS(_uM("height" to ((_ctx.statusBarHeight + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "my-services", "style" to _nS(_uM("margin-top" to "10px"))), _uA( - _cE("view", _uM("class" to "section-title"), "我的服务"), - _cE("view", _uM("class" to "service-grid"), _uA( - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToCoupons), _uA( - _cE("text", _uM("class" to "service-icon"), "🎫"), - _cE("text", _uM("class" to "service-text"), "优惠券"), - if (_ctx.serviceCounts.coupons > 0) { - _cE("text", _uM("key" to 0, "class" to "service-badge"), _tD(_ctx.serviceCounts.coupons), 1) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToAddress), _uA( - _cE("text", _uM("class" to "service-icon"), "📍"), - _cE("text", _uM("class" to "service-text"), "收货地址") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFavorites), _uA( - _cE("text", _uM("class" to "service-icon"), "❤️"), - _cE("text", _uM("class" to "service-text"), "我的收藏"), - if (_ctx.serviceCounts.favorites > 0) { - _cE("text", _uM("key" to 0, "class" to "service-badge"), _tD(_ctx.serviceCounts.favorites), 1) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFootprint), _uA( - _cE("text", _uM("class" to "service-icon"), "👣"), - _cE("text", _uM("class" to "service-text"), "浏览足迹") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToRefund), _uA( - _cE("text", _uM("class" to "service-icon"), "🔄"), - _cE("text", _uM("class" to "service-text"), "退款/售后") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToOrderReviews), _uA( - _cE("text", _uM("class" to "service-icon"), "📝"), - _cE("text", _uM("class" to "service-text"), "评价") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFollowedShops), _uA( - _cE("text", _uM("class" to "service-icon"), "⭐"), - _cE("text", _uM("class" to "service-text"), "关注店铺") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToSubscriptions), _uA( - _cE("text", _uM("class" to "service-icon"), "📱"), - _cE("text", _uM("class" to "service-text"), "软件订阅") - ), 8, _uA( - "onClick" - )) - )) - ), 4), - _cE("view", _uM("class" to "order-shortcuts"), _uA( - _cE("view", _uM("class" to "section-header-row"), _uA( - _cE("text", _uM("class" to "section-title"), "我的订单"), - _cE("text", _uM("class" to "view-all", "onClick" to fun(){ - _ctx.goToOrders(_ctx.currentOrderTab) - } - ), "查看更多 >", 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "order-tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "all")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("all") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "📋"), - _cE("text", _uM("class" to "tab-text"), "全部"), - if (_ctx.orderCounts.total > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.total), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "pending")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("pending") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "💰"), - _cE("text", _uM("class" to "tab-text"), "待支付"), - if (_ctx.orderCounts.pending > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.pending), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "toship")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("toship") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "🚚"), - _cE("text", _uM("class" to "tab-text"), "待发货"), - if (_ctx.orderCounts.toship > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.toship), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "shipped")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("shipped") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "📦"), - _cE("text", _uM("class" to "tab-text"), "待收货"), - if (_ctx.orderCounts.shipped > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.shipped), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "recent-orders"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), _tD(_ctx.getOrderSectionTitle()), 1) - )), - if (_ctx.filteredOrders.length === 0) { - _cE("view", _uM("key" to 0, "class" to "empty-orders"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无相关订单记录"), - _cE("button", _uM("class" to "start-shopping", "onClick" to _ctx.goShopping), "去逛逛", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - _cE(Fragment, null, RenderHelpers.renderList(_ctx.filteredOrders, fun(order, __key, __index, _cached): Any { - return _cE("view", _uM("key" to order.id, "class" to "order-item", "onClick" to fun(){ - _ctx.viewOrderDetail(order) - } - ), _uA( - _cE("view", _uM("class" to "order-item-header"), _uA( - _cE("view", _uM("class" to "order-shop"), _uA( - _cE("text", _uM("class" to "shop-icon"), "🏪"), - _cE("text", _uM("class" to "shop-name"), _tD(_ctx.getOrderShopName(order)), 1), - _cE("text", _uM("class" to "shop-arrow"), "›") - )), - _cE("view", _uM("class" to "status-row"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "order-status-text", - _ctx.getOrderStatusClass(order.status) - ))), _tD(_ctx.getOrderStatusText(order.status)), 3), - _cE("text", _uM("class" to "more-btn", "onClick" to withModifiers(fun(){ - _ctx.showOrderMenu(order) - } - , _uA( - "stop" - ))), "⋯", 8, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "order-item-content"), _uA( - _cE("image", _uM("src" to _ctx.getOrderMainImage(order), "class" to "order-item-image", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "order-item-info"), _uA( - _cE("view", _uM("class" to "order-title-row"), _uA( - _cE("text", _uM("class" to "order-item-title"), _tD(_ctx.getOrderTitle(order)), 1), - _cE("text", _uM("class" to "order-item-price"), "¥" + _tD(order.actual_amount), 1) - )), - _cE("view", _uM("class" to "order-spec-row"), _uA( - _cE("text", _uM("class" to "order-item-spec"), _tD(_ctx.getOrderSpec(order)), 1), - _cE("text", _uM("class" to "order-item-num"), "x" + _tD(_ctx.getOrderItemCount(order)), 1) - )), - _cE("text", _uM("class" to "order-item-time"), _tD(_ctx.formatDateTime(order.created_at)), 1) - )) - )), - _cE("view", _uM("class" to "order-item-actions"), _uA( - if (order.status === 1) { - _cE("button", _uM("key" to 0, "class" to "order-action-btn pay", "onClick" to withModifiers(fun(){ - _ctx.payOrder(order) - }, _uA( - "stop" - ))), "立即支付", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 3) { - _cE("button", _uM("key" to 1, "class" to "order-action-btn confirm", "onClick" to withModifiers(fun(){ - _ctx.confirmReceive(order) - }, _uA( - "stop" - ))), "确认收货", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 4) { - _cE("button", _uM("key" to 2, "class" to "order-action-btn review", "onClick" to withModifiers(fun(){ - _ctx.reviewOrder(order) - }, _uA( - "stop" - ))), "评价", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(order.status === 2 || order.status === 3)) { - _cE("button", _uM("key" to 3, "class" to "order-action-btn secondary", "onClick" to withModifiers(fun(){ - _ctx.viewOrderDetail(order) - }, _uA( - "stop" - ))), "查看物流", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )), - _cE("view", _uM("class" to "consumption-stats"), _uA( - _cE("view", _uM("class" to "section-title"), "消费统计"), - _cE("view", _uM("class" to "stats-period"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.statsPeriods, fun(period, __key, __index, _cached): Any { - return _cE("text", _uM("key" to period.key, "class" to _nC(_uA( - "period-tab", - _uM("active" to (_ctx.activeStatsPeriod === period.key)) - )), "onClick" to fun(){ - _ctx.switchStatsPeriod(period.key) - } - ), _tD(period.label), 11, _uA( - "onClick" - )) - } - ), 128) - )), - _cE("view", _uM("class" to "stats-content"), _uA( - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(_ctx.currentStats.total_amount), 1), - _cE("text", _uM("class" to "stat-label"), "总消费") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(_ctx.currentStats.order_count), 1), - _cE("text", _uM("class" to "stat-label"), "订单数") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(_ctx.currentStats.avg_amount), 1), - _cE("text", _uM("class" to "stat-label"), "平均消费") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(_ctx.currentStats.save_amount), 1), - _cE("text", _uM("class" to "stat-label"), "节省金额") - )) - )) - )) - )) - )) - } - open var userInfo: UserType by `$data` - open var userStats: UserStatsType__1 by `$data` - open var orderCounts: OrderCountsType by `$data` - open var serviceCounts: ServiceCountsType by `$data` - open var recentOrders: UTSArray by `$data` - open var statsPeriods: UTSArray by `$data` - open var activeStatsPeriod: String by `$data` - open var currentStats: ConsumptionStatsType by `$data` - open var statusBarHeight: Number by `$data` - open var currentOrderTab: String by `$data` - open var allOrders: UTSArray by `$data` - open var filteredOrders: UTSArray by `$data` - @Suppress("USELESS_CAST") - override fun data(): Map { - return _uM("userInfo" to UserType(id = "", phone = "", email = "", nickname = "", avatar_url = "", gender = 0, user_type = 0, status = 0, created_at = ""), "userStats" to UserStatsType__1(points = 0, balance = 0, level = 1), "orderCounts" to OrderCountsType(total = 0, pending = 0, toship = 0, shipped = 0, review = 0), "serviceCounts" to ServiceCountsType(coupons = 0, favorites = 0), "recentOrders" to _uA(), "statsPeriods" to _uA(StatsPeriodType(key = "month", label = "本月"), StatsPeriodType(key = "quarter", label = "本季度"), StatsPeriodType(key = "year", label = "本年"), StatsPeriodType(key = "all", label = "全部")), "activeStatsPeriod" to "month", "currentStats" to ConsumptionStatsType(total_amount = 0, order_count = 0, avg_amount = 0, save_amount = 0), "statusBarHeight" to 0, "currentOrderTab" to "all" as String, "allOrders" to _uA(), "filteredOrders" to computed>(fun(): UTSArray { - val result: UTSArray = _uA() - if (this.currentOrderTab === "all") { - run { - var i: Number = 0 - while(i < this.allOrders.length){ - result.push(this.allOrders[i]) - i++ - } - } - return result - } - var targetStatus: Number = 0 - if (this.currentOrderTab === "pending") { - targetStatus = 1 - } else if (this.currentOrderTab === "toship") { - targetStatus = 2 - } else if (this.currentOrderTab === "shipped") { - targetStatus = 3 - } else if (this.currentOrderTab === "review") { - targetStatus = 4 - } else { - return result - } - run { - var i: Number = 0 - while(i < this.allOrders.length){ - if (this.allOrders[i].status === targetStatus) { - result.push(this.allOrders[i]) - } - i++ - } - } - return result - } - )) - } - open var loadOrders = ::gen_loadOrders_fn - open fun gen_loadOrders_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val orders = await(supabaseService.getOrders()) - val mappedOrders: UTSArray = _uA() - run { - var i: Number = 0 - while(i < orders.length){ - val rawItem = orders[i] - val o = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawItem)), " at pages/mall/consumer/profile.uvue:414") as UTSJSONObject - var status = o.getNumber("status") - if (status == null) { - val orderStatus = o.getNumber("order_status") - status = if (orderStatus != null) { - orderStatus - } else { - 0 - } - } - var actualAmount = o.getNumber("actual_amount") - if (actualAmount == null) { - val totalAmount = o.getNumber("total_amount") - actualAmount = if (totalAmount != null) { - totalAmount - } else { - 0 - } - } - val mlOrderItems = o.get("ml_order_items") - var itemsCount: Number = 0 - if (mlOrderItems != null && UTSArray.isArray(mlOrderItems)) { - itemsCount = (mlOrderItems as UTSArray).length - } - val orderItem = OrderItemType(id = o.getString("id") ?: "", order_no = o.getString("order_no") ?: "", status = status, actual_amount = actualAmount, created_at = o.getString("created_at") ?: "", ml_order_items = mlOrderItems, ml_shops = o.get("ml_shops"), items_count = itemsCount) - mappedOrders.push(orderItem) - i++ - } - } - run { - var i: Number = 0 - while(i < mappedOrders.length){ - run { - var j: Number = i + 1 - while(j < mappedOrders.length){ - val dateA = mappedOrders[i]["created_at"] as String - val dateB = mappedOrders[j]["created_at"] as String - val timeA = Date(if (dateA != null) { - dateA - } else { - "1970-01-01" - } - ).getTime() - val timeB = Date(if (dateB != null) { - dateB - } else { - "1970-01-01" - } - ).getTime() - if (timeA < timeB) { - val temp = mappedOrders[i] - mappedOrders[i] = mappedOrders[j] - mappedOrders[j] = temp - } - j++ - } - } - i++ - } - } - this.allOrders = mappedOrders - val recentList: UTSArray = _uA() - val limit = if (mappedOrders.length < 5) { - mappedOrders.length - } else { - 5 - } - run { - var i: Number = 0 - while(i < limit){ - recentList.push(mappedOrders[i]) - i++ - } - } - this.recentOrders = recentList - var total: Number = 0 - var pending: Number = 0 - var toship: Number = 0 - var shipped: Number = 0 - var review: Number = 0 - run { - var i: Number = 0 - while(i < mappedOrders.length){ - total++ - val status = mappedOrders[i].status - if (status === 1) { - pending++ - } else if (status === 2) { - toship++ - } else if (status === 3) { - shipped++ - } else if (status === 4) { - review++ - } - i++ - } - } - this.orderCounts = OrderCountsType(total = total, pending = pending, toship = toship, shipped = shipped, review = review) - } - catch (e: Throwable) { - console.error("加载订单异常", e, " at pages/mall/consumer/profile.uvue:495") - } - }) - } - open var switchOrderTab = ::gen_switchOrderTab_fn - open fun gen_switchOrderTab_fn(tab: String) { - this.currentOrderTab = tab - } - open var getOrderSectionTitle = ::gen_getOrderSectionTitle_fn - open fun gen_getOrderSectionTitle_fn(): String { - if (this.currentOrderTab === "all") { - return "全部订单" - } - if (this.currentOrderTab === "pending") { - return "待支付订单" - } - if (this.currentOrderTab === "shipped") { - return "待收货订单" - } - if (this.currentOrderTab === "review") { - return "待评价订单" - } - return "我的订单" - } - open var initPage = ::gen_initPage_fn - open fun gen_initPage_fn() { - val systemInfo = uni_getSystemInfoSync() - this.statusBarHeight = systemInfo.statusBarHeight ?: 0 - } - open var loadUserProfile = ::gen_loadUserProfile_fn - open fun gen_loadUserProfile_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val profile = await(supabaseService.getUserProfile()) - if (profile != null) { - var uId = "" - var uPhone = "" - var uEmail = "" - var uNickname = "" - var uAvatar = "" - var uGender: Number = 0 - if (profile is UTSJSONObject) { - uId = (profile as UTSJSONObject).getString("user_id") ?: "" - uPhone = (profile as UTSJSONObject).getString("phone") ?: "" - uEmail = (profile as UTSJSONObject).getString("email") ?: "" - uNickname = (profile as UTSJSONObject).getString("nickname") ?: "" - uAvatar = (profile as UTSJSONObject).getString("avatar_url") ?: "" - uGender = (profile as UTSJSONObject).getNumber("gender") ?: 0 - } else { - val profileObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at pages/mall/consumer/profile.uvue:539") as UTSJSONObject - uId = profileObj.getString("user_id") ?: "" - uPhone = profileObj.getString("phone") ?: "" - uEmail = profileObj.getString("email") ?: "" - uNickname = profileObj.getString("nickname") ?: "" - uAvatar = profileObj.getString("avatar_url") ?: "" - uGender = profileObj.getNumber("gender") ?: 0 - } - if (uNickname === "" && uPhone !== "") { - uNickname = uPhone.substring(0, 3) + "****" + uPhone.substring(7) - } - this.userInfo = UserType(id = uId, phone = uPhone, email = uEmail, nickname = if (uNickname != "") { - uNickname - } else { - "微信用户" - }, avatar_url = if (uAvatar != "") { - uAvatar - } else { - "/static/default-avatar.png" - }, gender = uGender, user_type = 1, status = 1, created_at = Date().toISOString()) - } else { - val userId = supabaseService.getCurrentUserId() - if (userId != null) { - this.userInfo.id = userId - this.userInfo.nickname = "用户" + userId.substring(0, 4) - } else { - this.userInfo.nickname = "未登录" - } - } - val _ref = await(UTSPromise.all(_uA( - supabaseService.getUserBalance(), - supabaseService.getUserPoints() - ))) - val balance = _ref[0] - val points = _ref[1] - this.userStats = UserStatsType__1(points = points, balance = balance, level = this.calculateLevel(points)) - } - catch (e: Throwable) { - console.error("加载用户信息失败", e, " at pages/mall/consumer/profile.uvue:587") - } - }) - } - open var calculateLevel = ::gen_calculateLevel_fn - open fun gen_calculateLevel_fn(points: Number): Number { - if (points < 1000) { - return 0 - } - if (points < 5000) { - return 1 - } - if (points < 20000) { - return 2 - } - if (points < 50000) { - return 3 - } - return 4 - } - open var loadConsumptionStats = ::gen_loadConsumptionStats_fn - open fun gen_loadConsumptionStats_fn() { - if (this.activeStatsPeriod === "month") { - this.currentStats = ConsumptionStatsType(total_amount = 1280.50, order_count = 8, avg_amount = 160.06, save_amount = 85.20) - } else if (this.activeStatsPeriod === "quarter") { - this.currentStats = ConsumptionStatsType(total_amount = 3680.80, order_count = 18, avg_amount = 204.49, save_amount = 256.30) - } else if (this.activeStatsPeriod === "year") { - this.currentStats = ConsumptionStatsType(total_amount = 15680.90, order_count = 56, avg_amount = 280.02, save_amount = 986.50) - } else { - this.currentStats = ConsumptionStatsType(total_amount = 25680.50, order_count = 89, avg_amount = 288.55, save_amount = 1580.20) - } - } - open var refreshData = ::gen_refreshData_fn - open fun gen_refreshData_fn() { - this.loadUserProfile() - this.loadOrders() - this.updateCouponCount() - } - open var updateCouponCount = ::gen_updateCouponCount_fn - open fun gen_updateCouponCount_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val count = await(supabaseService.getUserCouponCount()) - this.serviceCounts.coupons = count - } - catch (e: Throwable) { - console.error("获取优惠券数量失败", e, " at pages/mall/consumer/profile.uvue:645") - this.serviceCounts.coupons = 0 - } - }) - } - open var getUserLevel = ::gen_getUserLevel_fn - open fun gen_getUserLevel_fn(): String { - val levels = _uA( - "新手", - "铜牌会员", - "银牌会员", - "金牌会员", - "钻石会员" - ) - if (this.userStats.level >= 0 && this.userStats.level < levels.length) { - return levels[this.userStats.level] - } - return "新手" - } - open var getOrderStatusText = ::gen_getOrderStatusText_fn - open fun gen_getOrderStatusText_fn(status: Number): String { - if (status === 6) { - return "退款中" - } - if (status === 7) { - return "已退款" - } - val statusTexts = _uA( - "异常", - "待支付", - "待发货", - "待收货", - "已完成", - "已取消" - ) - if (status >= 0 && status < statusTexts.length) { - return statusTexts[status] - } - return "未知" - } - open var getOrderStatusClass = ::gen_getOrderStatusClass_fn - open fun gen_getOrderStatusClass_fn(status: Number): String { - if (status === 6) { - return "refunding" - } - if (status === 7) { - return "refunded" - } - val statusClasses = _uA( - "error", - "pending", - "processing", - "shipping", - "completed", - "cancelled" - ) - if (status >= 0 && status < statusClasses.length) { - return statusClasses[status] - } - return "error" - } - open var showOrderMenu = ::gen_showOrderMenu_fn - open fun gen_showOrderMenu_fn(order: OrderItemType) { - val status = order.status - var actions: UTSArray = _uA() - if (status === 1) { - actions = _uA( - "取消订单", - "联系卖家" - ) - } else if (status === 2) { - actions = _uA( - "提醒发货", - "申请退款", - "联系卖家" - ) - } else if (status === 3) { - actions = _uA( - "查看物流", - "确认收货", - "申请退款", - "联系卖家" - ) - } else if (status === 4) { - actions = _uA( - "申请售后", - "再次购买", - "联系卖家" - ) - } else if (status === 5) { - actions = _uA( - "删除订单", - "再次购买", - "联系卖家" - ) - } else if (status === 6) { - actions = _uA( - "退款进度", - "联系卖家" - ) - } else if (status === 7) { - actions = _uA( - "再次购买", - "联系卖家" - ) - } - uni_showActionSheet(ShowActionSheetOptions(itemList = actions, success = fun(res){ - val action = actions[res.tapIndex] - this.handleOrderAction(order, action) - } - )) - } - open var handleOrderAction = ::gen_handleOrderAction_fn - open fun gen_handleOrderAction_fn(order: OrderItemType, action: String) { - if (action === "取消订单") { - this.cancelOrderAction(order) - } else if (action === "联系卖家") { - this.contactSeller(order) - } else if (action === "提醒发货") { - this.remindShipping(order) - } else if (action === "申请退款" || action === "申请售后") { - this.applyRefund(order) - } else if (action === "查看物流") { - this.viewLogistics(order.id) - } else if (action === "确认收货") { - this.confirmReceive(order) - } else if (action === "再次购买") { - this.repurchase(order) - } else if (action === "删除订单") { - this.deleteOrder(order.id) - } else if (action === "退款进度") { - this.viewRefundProgress(order.id) - } - } - open var cancelOrderAction = ::gen_cancelOrderAction_fn - open fun gen_cancelOrderAction_fn(order: OrderItemType) { - uni_showModal(ShowModalOptions(title = "确认取消", content = "确定要取消此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "取消中...")) - supabaseService.cancelOrder(order.id).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单已取消", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - ) - } - } - )) - } - open var contactSeller = ::gen_contactSeller_fn - open fun gen_contactSeller_fn(order: OrderItemType) { - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (merchantId !== "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchantId)) - } else { - uni_showToast(ShowToastOptions(title = "暂无卖家联系方式", icon = "none")) - } - } - open var getMerchantIdFromOrder = ::gen_getMerchantIdFromOrder_fn - open fun gen_getMerchantIdFromOrder_fn(order: OrderItemType): String { - val shopsRaw = order.ml_shops - if (shopsRaw != null) { - val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/mall/consumer/profile.uvue:764") - if (shopParsed != null) { - val shopObj = shopParsed as UTSJSONObject - return shopObj.getString("merchant_id") ?: "" - } - } - return "" - } - open var remindShipping = ::gen_remindShipping_fn - open fun gen_remindShipping_fn(order: OrderItemType) { - uni_showLoading(ShowLoadingOptions(title = "提醒中...")) - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (merchantId !== "") { - val message = "你好,我的订单[" + order.order_no + "]还没有发货,请尽快安排,谢谢。" - supabaseService.sendChatMessage(message, merchantId).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "已提醒卖家发货", icon = "success")) - }).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "提醒失败", icon = "none")) - }) - } else { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "无法联系卖家", icon = "none")) - } - } - open var applyRefund = ::gen_applyRefund_fn - open fun gen_applyRefund_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/apply-refund?orderId=" + order.id)) - } - open var viewLogistics = ::gen_viewLogistics_fn - open fun gen_viewLogistics_fn(orderId: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/logistics?orderId=" + orderId)) - } - open var repurchase = ::gen_repurchase_fn - open fun gen_repurchase_fn(order: OrderItemType) { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - val itemsRaw = order.ml_order_items - if (itemsRaw == null || (itemsRaw as UTSArray).length === 0) { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单无商品", icon = "none")) - return - } - val items = itemsRaw as UTSArray - var completed: Number = 0 - val total = items.length - var successCount: Number = 0 - run { - var i: Number = 0 - while(i < items.length){ - val itemStr = JSON.stringify(items[i]) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/profile.uvue:819") - if (itemParsed == null) { - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - i++ - continue - } - val itemObj = itemParsed as UTSJSONObject - val productId = itemObj.getString("product_id") ?: "" - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (productId !== "") { - supabaseService.addToCart(productId, 1, "", merchantId).then(fun(success){ - completed++ - if (success) { - successCount++ - } - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }).`catch`(fun(){ - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }) - } else { - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - i++ - } - } - } - open var deleteOrder = ::gen_deleteOrder_fn - open fun gen_deleteOrder_fn(orderId: String) { - uni_showModal(ShowModalOptions(title = "删除订单", content = "确定要删除此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - supabaseService.deleteOrder(orderId).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单已删除", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - ) - } - } - )) - } - open var viewRefundProgress = ::gen_viewRefundProgress_fn - open fun gen_viewRefundProgress_fn(orderId: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/refund?orderId=" + orderId)) - } - open var getOrderMainImage = ::gen_getOrderMainImage_fn - open fun gen_getOrderMainImage_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "/static/product1.jpg" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/profile.uvue:921") - if (itemParsed == null) { - return "/static/product1.jpg" - } - val itemObj = itemParsed as UTSJSONObject - val imgUrl = itemObj.getString("image_url") - val prodImg = itemObj.getString("product_image") - val img = if ((imgUrl != null && imgUrl !== "")) { - imgUrl - } else { - prodImg - } - if (img != null && img !== "") { - return img - } - } - return "/static/product1.jpg" - } - open var getOrderTitle = ::gen_getOrderTitle_fn - open fun gen_getOrderTitle_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "精选商品" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/profile.uvue:939") - if (itemParsed == null) { - return "精选商品" - } - val itemObj = itemParsed as UTSJSONObject - val pName = itemObj.getString("product_name") - val name = if ((pName != null && pName !== "")) { - pName - } else { - "商品" - } - return name - } - return "精选商品" - } - open var getOrderSpec = ::gen_getOrderSpec_fn - open fun gen_getOrderSpec_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/profile.uvue:957") - if (itemParsed == null) { - return "" - } - val itemObj = itemParsed as UTSJSONObject - val specRaw = itemObj.get("specifications") - if (specRaw == null) { - return "" - } - if (UTSAndroid.`typeof`(specRaw) === "string") { - val specStr = specRaw as String - if (specStr.startsWith("{")) { - try { - val specObj = UTSAndroid.consoleDebugError(JSON.parse(specStr), " at pages/mall/consumer/profile.uvue:967") as UTSJSONObject - val parts: UTSArray = _uA() - val color = specObj.get("Color") - if (color != null) { - parts.push("颜色: " + color) - } - val size = specObj.get("Size") - if (size != null) { - parts.push("尺码: " + size) - } - if (parts.length > 0) { - return parts.join(" ") - } - return specStr.replace(UTSRegExp("[{}\"]", "g"), "") - } - catch (e: Throwable) { - return specStr - } - } - return specStr - } - return JSON.stringify(specRaw).replace(UTSRegExp("[{}\"]", "g"), "") - } - return "" - } - open var getOrderItemCount = ::gen_getOrderItemCount_fn - open fun gen_getOrderItemCount_fn(order: OrderItemType): Number { - if (order.items_count != null && order.items_count > 0) { - return order.items_count - } - return 1 - } - open var getOrderShopName = ::gen_getOrderShopName_fn - open fun gen_getOrderShopName_fn(order: OrderItemType): String { - val shopsRaw = order.ml_shops - if (shopsRaw != null) { - val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/mall/consumer/profile.uvue:998") - if (shopParsed != null) { - val shopObj = shopParsed as UTSJSONObject - val name = shopObj.getString("shop_name") - if (name != null && name !== "") { - return name - } - } - } - return "自营店铺" - } - open var formatDateTime = ::gen_formatDateTime_fn - open fun gen_formatDateTime_fn(timeStr: String): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val h = date.getHours().toString(10).padStart(2, "0") - val i = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + h + ":" + i - } - open var formatTime = ::gen_formatTime_fn - open fun gen_formatTime_fn(timeStr: String): String { - val date = Date(timeStr) - val now = Date() - val diff = now.getTime() - date.getTime() - val days = Math.floor(diff / 86400000) - if (days === 0) { - return "今天" - } else if (days === 1) { - return "昨天" - } else { - return "" + days + "天前" - } - } - open var switchStatsPeriod = ::gen_switchStatsPeriod_fn - open fun gen_switchStatsPeriod_fn(period: String) { - this.activeStatsPeriod = period - this.loadConsumptionStats() - } - open var editProfile = ::gen_editProfile_fn - open fun gen_editProfile_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/edit-profile")) - } - open var goToSettings = ::gen_goToSettings_fn - open fun gen_goToSettings_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/settings")) - } - open var goToWallet = ::gen_goToWallet_fn - open fun gen_goToWallet_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/wallet")) - } - open var goToOrders = ::gen_goToOrders_fn - open fun gen_goToOrders_fn(type: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=" + type)) - } - open var goShopping = ::gen_goShopping_fn - open fun gen_goShopping_fn() { - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/index")) - } - open var viewOrderDetail = ::gen_viewOrderDetail_fn - open fun gen_viewOrderDetail_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?orderId=" + order.id)) - } - open var payOrder = ::gen_payOrder_fn - open fun gen_payOrder_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/payment?orderId=" + order.id)) - } - open var confirmReceive = ::gen_confirmReceive_fn - open fun gen_confirmReceive_fn(order: OrderItemType) { - uni_showModal(ShowModalOptions(title = "确认收货", content = "确认已收到商品吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - supabaseService.confirmOrderReceived(order.id).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "确认收货成功", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - ) - } - } - )) - } - open var reviewOrder = ::gen_reviewOrder_fn - open fun gen_reviewOrder_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/review?orderId=" + order.id)) - } - open var goToCoupons = ::gen_goToCoupons_fn - open fun gen_goToCoupons_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons")) - } - open var goToPoints = ::gen_goToPoints_fn - open fun gen_goToPoints_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/index")) - } - open var goToAddress = ::gen_goToAddress_fn - open fun gen_goToAddress_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/address-list")) - } - open var goToFavorites = ::gen_goToFavorites_fn - open fun gen_goToFavorites_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/favorites")) - } - open var goToFootprint = ::gen_goToFootprint_fn - open fun gen_goToFootprint_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/footprint")) - } - open var goToRefund = ::gen_goToRefund_fn - open fun gen_goToRefund_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=refund")) - } - open var contactService = ::gen_contactService_fn - open fun gen_contactService_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/service/chat")) - } - open var goToOrderReviews = ::gen_goToOrderReviews_fn - open fun gen_goToOrderReviews_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=review")) - } - open var goToMySubscriptions = ::gen_goToMySubscriptions_fn - open fun gen_goToMySubscriptions_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/my-subscriptions")) - } - open var goToFollowedShops = ::gen_goToFollowedShops_fn - open fun gen_goToFollowedShops_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/followed-shops")) - } - open var goToSubscriptions = ::gen_goToSubscriptions_fn - open fun gen_goToSubscriptions_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/plan-list")) - } - open var changePassword = ::gen_changePassword_fn - open fun gen_changePassword_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/change-password")) - } - open var bindPhone = ::gen_bindPhone_fn - open fun gen_bindPhone_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bind-phone")) - } - open var bindEmail = ::gen_bindEmail_fn - open fun gen_bindEmail_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bind-email")) - } - open var handleOrderUpdated = ::gen_handleOrderUpdated_fn - open fun gen_handleOrderUpdated_fn(data: Any) { - console.log("收到订单更新事件:", data, " at pages/mall/consumer/profile.uvue:1197") - this.refreshData() - val dataObj = data as UTSJSONObject - val status = dataObj.getNumber("status") - if (status === 1) { - uni_showToast(ShowToastOptions(title = "订单已保存到待支付", icon = "success")) - } else if (status === 2) { - uni_showToast(ShowToastOptions(title = "支付成功,订单待发货", icon = "success")) - } - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("consumer-profile" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "height" to "100%", "width" to "100%")), "profile-scroll-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start")), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-user-basic" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0, "marginRight" to 8)), "nav-user-stats" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-end", "marginRight" to 8)), "nav-user-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#FFFFFF", "width" to 70, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "nav-stat-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.15)", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "marginRight" to 4, "flexShrink" to 0)), "nav-stat-label" to _pS(_uM("fontSize" to 10, "color" to "rgba(255,255,255,0.85)", "marginRight" to 2)), "nav-stat-value" to _pS(_uM("fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF")), "nav-avatar" to _pS(_uM("width" to 32, "height" to 32, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "borderTopWidth" to 1.5, "borderRightWidth" to 1.5, "borderBottomWidth" to 1.5, "borderLeftWidth" to 1.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.8)", "borderRightColor" to "rgba(255,255,255,0.8)", "borderBottomColor" to "rgba(255,255,255,0.8)", "borderLeftColor" to "rgba(255,255,255,0.8)", "marginRight" to 6, "flexShrink" to 0)), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "action-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to 32, "height" to 32, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "action-icon" to _pS(_uM("fontSize" to 18, "color" to "#FFFFFF")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "order-shortcuts" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "recent-orders" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "my-services" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "consumption-stats" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "account-security" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "section-title" to _uM("" to _uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 16), ".section-header-row " to _uM("marginBottom" to 0)), "section-header-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "marginBottom" to 16)), "view-all" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "order-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "width" to "100%")), "order-tab" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "position" to "relative", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0), ".active" to _uM("backgroundColor" to "#fff8f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "tab-icon" to _uM("" to _uM("fontSize" to 20, "marginRight" to 6, "marginBottom" to 0), ".order-tab.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "tab-text" to _uM("" to _uM("fontSize" to 14, "color" to "#333333"), ".order-tab.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "tab-badge" to _pS(_uM("position" to "absolute", "top" to 0, "right" to "10%", "backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 5, "paddingBottom" to 1, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 14, "textAlign" to "center", "lineHeight" to 1.2)), "empty-orders" to _pS(_uM("textAlign" to "center", "paddingTop" to "80rpx", "paddingRight" to 0, "paddingBottom" to "80rpx", "paddingLeft" to 0)), "empty-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "marginBottom" to "30rpx")), "start-shopping" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to "20rpx", "paddingRight" to "40rpx", "paddingBottom" to "20rpx", "paddingLeft" to "40rpx", "borderTopLeftRadius" to "25rpx", "borderTopRightRadius" to "25rpx", "borderBottomRightRadius" to "25rpx", "borderBottomLeftRadius" to "25rpx", "fontSize" to "26rpx", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "order-item" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to "16rpx", "borderTopRightRadius" to "16rpx", "borderBottomRightRadius" to "16rpx", "borderBottomLeftRadius" to "16rpx", "paddingTop" to "24rpx", "paddingRight" to "24rpx", "paddingBottom" to "24rpx", "paddingLeft" to "24rpx", "marginBottom" to "20rpx", "boxShadow" to "0 2rpx 12rpx rgba(0, 0, 0, 0.05)")), "order-item-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to "20rpx")), "status-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "more-btn" to _pS(_uM("fontSize" to 18, "color" to "#999999", "marginLeft" to 8, "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5)), "order-shop" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "shop-icon" to _pS(_uM("fontSize" to "32rpx", "marginRight" to "8rpx")), "shop-name" to _pS(_uM("fontSize" to "28rpx", "fontWeight" to "bold", "color" to "#333333")), "shop-arrow" to _pS(_uM("fontSize" to "28rpx", "color" to "#cccccc", "marginLeft" to "4rpx")), "order-status-text" to _uM("" to _uM("fontSize" to "26rpx", "fontWeight" to "bold"), ".pending" to _uM("color" to "#ff5000"), ".processing" to _uM("color" to "#ff9500"), ".shipping" to _uM("color" to "#007aff"), ".completed" to _uM("color" to "#34c759"), ".refunding" to _uM("color" to "#ff9500"), ".refunded" to _uM("color" to "#999999"), ".cancelled" to _uM("color" to "#999999")), "order-item-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to "24rpx")), "order-item-image" to _pS(_uM("width" to "140rpx", "height" to "140rpx", "borderTopLeftRadius" to "12rpx", "borderTopRightRadius" to "12rpx", "borderBottomRightRadius" to "12rpx", "borderBottomLeftRadius" to "12rpx", "marginRight" to "20rpx", "backgroundColor" to "#f8f8f8")), "order-item-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start")), "order-title-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginBottom" to "12rpx")), "order-item-title" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "color" to "#333333", "lineHeight" to 1.4, "marginRight" to "20rpx", "lines" to 2, "textOverflow" to "ellipsis")), "order-item-price" to _pS(_uM("fontSize" to "32rpx", "color" to "#333333", "fontWeight" to "bold", "textAlign" to "right")), "order-spec-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to "4rpx", "marginBottom" to "8rpx")), "order-item-spec" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "24rpx", "color" to "#999999", "marginRight" to "12rpx", "lines" to 1, "textOverflow" to "ellipsis")), "order-item-time" to _pS(_uM("fontSize" to "22rpx", "color" to "#999999", "marginTop" to "auto")), "order-item-num" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999")), "order-item-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end")), "order-action-btn" to _uM("" to _uM("marginLeft" to "16rpx", "paddingTop" to "10rpx", "paddingRight" to "28rpx", "paddingBottom" to "10rpx", "paddingLeft" to "28rpx", "borderTopLeftRadius" to "30rpx", "borderTopRightRadius" to "30rpx", "borderBottomRightRadius" to "30rpx", "borderBottomLeftRadius" to "30rpx", "fontSize" to "24rpx", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#ffffff"), ".pay" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".confirm" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".review" to _uM("color" to "#ff5000", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".secondary" to _uM("color" to "#666666", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd")), "service-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "service-item" to _pS(_uM("width" to "25%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "position" to "relative", "boxSizing" to "border-box", "marginBottom" to 16)), "service-icon" to _pS(_uM("fontSize" to "48rpx", "marginBottom" to "15rpx")), "service-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#333333")), "service-badge" to _pS(_uM("position" to "absolute", "top" to "-5rpx", "right" to "10rpx", "backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to "18rpx", "paddingTop" to "4rpx", "paddingRight" to "6rpx", "paddingBottom" to "4rpx", "paddingLeft" to "6rpx", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx", "minWidth" to "24rpx", "textAlign" to "center")), "stats-period" to _pS(_uM("display" to "flex", "marginBottom" to "30rpx")), "period-tab" to _uM("" to _uM("fontSize" to "26rpx", "color" to "#666666", "paddingTop" to "12rpx", "paddingRight" to "24rpx", "paddingBottom" to "12rpx", "paddingLeft" to "24rpx", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx", "marginRight" to "30rpx", "backgroundColor" to "#f0f0f0"), ".active" to _uM("backgroundColor" to "#007aff", "color" to "#ffffff")), "stats-content" to _pS(_uM("display" to "flex")), "stat-card" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center", "paddingTop" to "30rpx", "paddingRight" to 0, "paddingBottom" to "30rpx", "paddingLeft" to 0, "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "marginRight" to "20rpx", "marginRight:last-child" to 0)), "stat-value" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "8rpx")), "stat-label" to _pS(_uM("fontSize" to "22rpx", "color" to "#666666")), "security-items" to _pS(_uM("marginTop" to "25rpx")), "security-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to "25rpx", "paddingRight" to 0, "paddingBottom" to "25rpx", "paddingLeft" to 0, "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "security-icon" to _pS(_uM("fontSize" to "32rpx", "marginRight" to "20rpx")), "security-text" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "color" to "#333333")), "security-status" to _pS(_uM("display" to "flex", "alignItems" to "center")), "status-text" to _uM("" to _uM("fontSize" to "24rpx", "color" to "#999999", "marginRight" to "10rpx"), ".bound" to _uM("color" to "#4caf50")), "security-arrow" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt index df043ecf..6a3d94f1 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt @@ -377,7 +377,7 @@ open class GenPagesMallConsumerRefund : BasePage { return fun(): Any? { return _cE("view", _uM("class" to "refund-page"), _uA( _cE("view", _uM("class" to "refund-header"), _uA( - _cE("text", _uM("class" to "back-btn", "onClick" to goBack), "‹"), + _cE("text", _uM("class" to "back-btn", "onClick" to goBack), "❮"), _cE("text", _uM("class" to "header-title"), "退款/售后") )), _cE("view", _uM("class" to "refund-tabs"), _uA( @@ -559,7 +559,7 @@ open class GenPagesMallConsumerRefund : BasePage { } val styles0: Map>> get() { - return _uM("refund-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "refund-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "justifyContent" to "space-between", "marginBottom" to 10)), "back-btn" to _pS(_uM("fontSize" to 24, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "refund-tabs" to _pS(_uM("backgroundColor" to "#ffffff", "display" to "flex", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "refund-tab" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "textAlign" to "center", "position" to "relative"), ".active" to _uM("color" to "#007aff", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "#007aff")), "tab-text" to _uM("" to _uM("fontSize" to 16, "color" to "#666666"), ".refund-tab.active " to _uM("color" to "#007aff", "fontWeight" to "bold")), "tab-badge" to _pS(_uM("position" to "absolute", "top" to 10, "right" to 20, "backgroundColor" to "#ff4757", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 2, "paddingRight" to 5, "paddingBottom" to 2, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 16, "textAlign" to "center")), "refund-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "empty-refunds" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20, "backgroundColor" to "#ffffff")), "empty-icon" to _pS(_uM("fontSize" to 80, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-orders-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 14, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "refund-item" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "refund-no" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "refund-status" to _pS(_uM("fontSize" to 14, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "color" to "#ffffff")), "status-pending" to _pS(_uM("backgroundColor" to "#ff5000")), "status-processing" to _pS(_uM("backgroundColor" to "#2196f3")), "status-completed" to _pS(_uM("backgroundColor" to "#4caf50")), "status-cancelled" to _pS(_uM("backgroundColor" to "#9e9e9e")), "status-rejected" to _pS(_uM("backgroundColor" to "#f44336")), "order-info" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 15, "paddingBottom" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "order-no" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "product-info" to _pS(_uM("display" to "flex", "marginBottom" to 15)), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "marginRight" to 15)), "product-details" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5)), "refund-reason" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginBottom" to 8)), "refund-amount" to _pS(_uM("display" to "flex", "alignItems" to "flex-end")), "amount-label" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginRight" to 5)), "amount-value" to _pS(_uM("fontSize" to 16, "color" to "#ff4757", "fontWeight" to "bold")), "timeline" to _pS(_uM("paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "timeline-step" to _pS(_uM("display" to "flex", "marginBottom" to 15, "marginBottom:last-child" to 0)), "step-dot" to _uM("" to _uM("width" to 12, "height" to 12, "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "marginRight" to 15, "position" to "relative", "top" to 3), ".active" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "backgroundColor" to "#007aff"), ".completed" to _uM("borderTopColor" to "#4caf50", "borderRightColor" to "#4caf50", "borderBottomColor" to "#4caf50", "borderLeftColor" to "#4caf50", "backgroundColor" to "#4caf50")), "step-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "step-title" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 3)), "step-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to 3)), "step-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "refund-actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "action-btn" to _uM("" to _uM("marginLeft" to 10, "paddingTop" to 6, "paddingRight" to 15, "paddingBottom" to 6, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "fontSize" to 12, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#ffffff"), ".cancel" to _uM("borderTopColor" to "#666666", "borderRightColor" to "#666666", "borderBottomColor" to "#666666", "borderLeftColor" to "#666666", "color" to "#666666"), ".contact" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "color" to "#007aff"), ".review" to _uM("borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "color" to "#ff5000"), ".delete" to _uM("borderTopColor" to "#f44336", "borderRightColor" to "#f44336", "borderBottomColor" to "#f44336", "borderLeftColor" to "#f44336", "color" to "#f44336")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "apply-btn-container" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5")), "apply-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "height" to 50, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000"))) + return _uM("refund-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "refund-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "justifyContent" to "space-between", "marginBottom" to 10)), "back-btn" to _pS(_uM("fontSize" to 20, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "refund-tabs" to _pS(_uM("backgroundColor" to "#ffffff", "display" to "flex", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "refund-tab" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "textAlign" to "center", "position" to "relative"), ".active" to _uM("color" to "#007aff", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "#007aff")), "tab-text" to _uM("" to _uM("fontSize" to 16, "color" to "#666666"), ".refund-tab.active " to _uM("color" to "#007aff", "fontWeight" to "bold")), "tab-badge" to _pS(_uM("position" to "absolute", "top" to 10, "right" to 20, "backgroundColor" to "#ff4757", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 2, "paddingRight" to 5, "paddingBottom" to 2, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 16, "textAlign" to "center")), "refund-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "empty-refunds" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20, "backgroundColor" to "#ffffff")), "empty-icon" to _pS(_uM("fontSize" to 80, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-orders-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 14, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "refund-item" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "refund-no" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "refund-status" to _pS(_uM("fontSize" to 14, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "color" to "#ffffff")), "status-pending" to _pS(_uM("backgroundColor" to "#ff5000")), "status-processing" to _pS(_uM("backgroundColor" to "#2196f3")), "status-completed" to _pS(_uM("backgroundColor" to "#4caf50")), "status-cancelled" to _pS(_uM("backgroundColor" to "#9e9e9e")), "status-rejected" to _pS(_uM("backgroundColor" to "#f44336")), "order-info" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 15, "paddingBottom" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "order-no" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "product-info" to _pS(_uM("display" to "flex", "marginBottom" to 15)), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "marginRight" to 15)), "product-details" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5)), "refund-reason" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginBottom" to 8)), "refund-amount" to _pS(_uM("display" to "flex", "alignItems" to "flex-end")), "amount-label" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginRight" to 5)), "amount-value" to _pS(_uM("fontSize" to 16, "color" to "#ff4757", "fontWeight" to "bold")), "timeline" to _pS(_uM("paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "timeline-step" to _pS(_uM("display" to "flex", "marginBottom" to 15, "marginBottom:last-child" to 0)), "step-dot" to _uM("" to _uM("width" to 12, "height" to 12, "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "marginRight" to 15, "position" to "relative", "top" to 3), ".active" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "backgroundColor" to "#007aff"), ".completed" to _uM("borderTopColor" to "#4caf50", "borderRightColor" to "#4caf50", "borderBottomColor" to "#4caf50", "borderLeftColor" to "#4caf50", "backgroundColor" to "#4caf50")), "step-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "step-title" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 3)), "step-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to 3)), "step-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "refund-actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "action-btn" to _uM("" to _uM("marginLeft" to 10, "paddingTop" to 6, "paddingRight" to 15, "paddingBottom" to 6, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "fontSize" to 12, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#ffffff"), ".cancel" to _uM("borderTopColor" to "#666666", "borderRightColor" to "#666666", "borderBottomColor" to "#666666", "borderLeftColor" to "#666666", "color" to "#666666"), ".contact" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "color" to "#007aff"), ".review" to _uM("borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "color" to "#ff5000"), ".delete" to _uM("borderTopColor" to "#f44336", "borderRightColor" to "#f44336", "borderBottomColor" to "#f44336", "borderLeftColor" to "#f44336", "color" to "#f44336")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "apply-btn-container" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5")), "apply-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "height" to 50, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000"))) } var inheritAttrs = true var inject: Map> = _uM() diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt index 53784b92..aa9c2afd 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt @@ -600,7 +600,7 @@ open class GenPagesMallConsumerSearch : BasePage { _cE("view", _uM("class" to "search-header", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( _cE("view", _uM("class" to "search-bar-container"), _uA( _cE("view", _uM("class" to "back-btn", "onClick" to goBack), _uA( - _cE("text", _uM("class" to "back-icon"), "<") + _cE("text", _uM("class" to "back-icon"), "❮") )), _cE("view", _uM("class" to "search-input-container"), _uA( _cE("input", _uM("class" to "search-input", "type" to "text", "value" to searchKeyword.value, "onInput" to onInput, "onConfirm" to onSearch, "placeholder" to "请输入商品名称、店铺", "placeholder-class" to "placeholder", "focus" to autoFocus.value), null, 40, _uA( @@ -905,7 +905,7 @@ open class GenPagesMallConsumerSearch : BasePage { } val styles0: Map>> get() { - return _uM("search-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column")), "shop-results-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 10, "paddingRight" to 0, "paddingBottom" to 10, "paddingLeft" to 0)), "section-top" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 10, "paddingLeft" to 12)), "result-title-sm" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333")), "shop-list-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap")), "shop-list-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "shop-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "width" to 80, "marginRight" to 15, "backgroundColor" to "#f9f9f9", "paddingTop" to 10, "paddingRight" to 5, "paddingBottom" to 10, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "shop-logo" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "marginBottom" to 5, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "backgroundColor" to "#FFFFFF")), "shop-info" to _pS(_uM("width" to "100%", "textAlign" to "center")), "shop-name-txt" to _pS(_uM("fontSize" to 12, "color" to "#333333", "width" to "100%", "overflow" to "hidden", "whiteSpace" to "nowrap", "textOverflow" to "ellipsis", "marginBottom" to 2)), "shop-products-txt" to _pS(_uM("fontSize" to 10, "color" to "#999999")), "search-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 10)), "search-bar-container" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 16, "paddingBottom" to 10, "paddingLeft" to 16, "width" to "100%")), "back-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "width" to 32, "height" to 32, "marginRight" to 12)), "back-icon" to _pS(_uM("fontSize" to 24, "color" to "#333333", "fontWeight" to "bold", "fontFamily" to "monospace")), "search-input-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 40, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12)), "search-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333", "height" to "100%", "backgroundColor" to "rgba(0,0,0,0)")), "placeholder" to _pS(_uM("color" to "#999999")), "clear-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "marginRight" to 2, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "clear-icon" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "camera-icon" to _pS(_uM("fontSize" to 20)), "inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 32)), "inner-search-text" to _pS(_uM("fontSize" to 13, "color" to "#ffffff", "fontWeight" to "bold")), "main-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxSizing" to "border-box")), "section-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "marginTop" to 8, "width" to "100%")), "section-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "clear-text" to _pS(_uM("marginRight" to 4, "fontSize" to 12, "color" to "#999999")), "clear-icon-trash" to _pS(_uM("fontSize" to 14)), "search-history" to _pS(_uM("marginBottom" to 24, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "history-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "alignItems" to "center")), "history-tag" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "alignItems" to "center", "flexShrink" to 0, "marginRight" to 10, "marginBottom" to 10)), "history-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap", "marginRight" to 6)), "delete-tag-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to 16, "height" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor" to "#f0f0f0")), "delete-icon" to _pS(_uM("fontSize" to 12, "color" to "#999999", "lineHeight" to 1)), "hot-search" to _pS(_uM("marginBottom" to 24)), "hot-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "hot-tag" to _uM("" to _uM("marginRight" to 10, "marginBottom" to 10, "backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0), ".hot" to _uM("backgroundColor" to "#fff0f0")), "hot-rank" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "fontWeight" to "bold", "marginRight" to 6), ".top-three" to _uM("color" to "#ff5000")), "hot-text" to _pS(_uM("fontSize" to 13, "color" to "#333333")), "hot-icon" to _pS(_uM("fontSize" to 12, "marginLeft" to 4)), "guess-you-like" to _pS(_uM("marginBottom" to 20)), "title-with-icon" to _pS(_uM("display" to "flex", "alignItems" to "center")), "section-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6)), "refresh-btn" to _pS(_uM("fontSize" to 12, "color" to "#4CAF50")), "guess-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "guess-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "guess-img" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "guess-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "guess-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "guess-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "guess-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "guess-add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "search-suggestions" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "suggestion-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "height" to 44, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "suggestion-icon" to _pS(_uM("marginRight" to 10, "fontSize" to 14, "color" to "#999999")), "suggestion-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "search-results" to _pS(_uM("paddingBottom" to 20)), "results-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "flexWrap" to "wrap")), "results-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 8)), "filter-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "justifyContent" to "flex-end")), "filter-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8, "marginLeft" to 16), ".active" to _uM("color" to "#4CAF50", "fontWeight" to "bold")), "results-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "result-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "error-state" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#ffffff")), "error-content" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "error-icon" to _pS(_uM("fontSize" to 48, "marginBottom" to 12)), "error-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 12)), "error-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "loading-spinner" to _pS(_uM("width" to 24, "height" to 24, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#4CAF50", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 8)), "loading-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "textAlign" to "center")), "no-more-text" to _pS(_uM("fontSize" to 12, "color" to "#cccccc")), "empty-result" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0)), "empty-icon" to _pS(_uM("fontSize" to 40, "marginBottom" to 12)), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 4)), "empty-sub" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "safe-area" to _pS(_uM("height" to 20))) + return _uM("search-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column")), "shop-results-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 10, "paddingRight" to 0, "paddingBottom" to 10, "paddingLeft" to 0)), "section-top" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 10, "paddingLeft" to 12)), "result-title-sm" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333")), "shop-list-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap")), "shop-list-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "shop-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "width" to 80, "marginRight" to 15, "backgroundColor" to "#f9f9f9", "paddingTop" to 10, "paddingRight" to 5, "paddingBottom" to 10, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "shop-logo" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "marginBottom" to 5, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "backgroundColor" to "#FFFFFF")), "shop-info" to _pS(_uM("width" to "100%", "textAlign" to "center")), "shop-name-txt" to _pS(_uM("fontSize" to 12, "color" to "#333333", "width" to "100%", "overflow" to "hidden", "whiteSpace" to "nowrap", "textOverflow" to "ellipsis", "marginBottom" to 2)), "shop-products-txt" to _pS(_uM("fontSize" to 10, "color" to "#999999")), "search-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 10)), "search-bar-container" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 16, "paddingBottom" to 10, "paddingLeft" to 16, "width" to "100%")), "back-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "width" to 32, "height" to 32, "marginRight" to 12)), "back-icon" to _pS(_uM("fontSize" to 20, "color" to "#333333")), "search-input-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 40, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12)), "search-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333", "height" to "100%", "backgroundColor" to "rgba(0,0,0,0)")), "placeholder" to _pS(_uM("color" to "#999999")), "clear-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "marginRight" to 2, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "clear-icon" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "camera-icon" to _pS(_uM("fontSize" to 20)), "inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 32)), "inner-search-text" to _pS(_uM("fontSize" to 13, "color" to "#ffffff", "fontWeight" to "bold")), "main-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxSizing" to "border-box")), "section-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "marginTop" to 8, "width" to "100%")), "section-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "clear-text" to _pS(_uM("marginRight" to 4, "fontSize" to 12, "color" to "#999999")), "clear-icon-trash" to _pS(_uM("fontSize" to 14)), "search-history" to _pS(_uM("marginBottom" to 24, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "history-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "alignItems" to "center")), "history-tag" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "alignItems" to "center", "flexShrink" to 0, "marginRight" to 10, "marginBottom" to 10)), "history-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap", "marginRight" to 6)), "delete-tag-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to 16, "height" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor" to "#f0f0f0")), "delete-icon" to _pS(_uM("fontSize" to 12, "color" to "#999999", "lineHeight" to 1)), "hot-search" to _pS(_uM("marginBottom" to 24)), "hot-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "hot-tag" to _uM("" to _uM("marginRight" to 10, "marginBottom" to 10, "backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0), ".hot" to _uM("backgroundColor" to "#fff0f0")), "hot-rank" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "fontWeight" to "bold", "marginRight" to 6), ".top-three" to _uM("color" to "#ff5000")), "hot-text" to _pS(_uM("fontSize" to 13, "color" to "#333333")), "hot-icon" to _pS(_uM("fontSize" to 12, "marginLeft" to 4)), "guess-you-like" to _pS(_uM("marginBottom" to 20)), "title-with-icon" to _pS(_uM("display" to "flex", "alignItems" to "center")), "section-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6)), "refresh-btn" to _pS(_uM("fontSize" to 12, "color" to "#4CAF50")), "guess-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "guess-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "guess-img" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "guess-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "guess-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "guess-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "guess-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "guess-add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "search-suggestions" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "suggestion-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "height" to 44, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "suggestion-icon" to _pS(_uM("marginRight" to 10, "fontSize" to 14, "color" to "#999999")), "suggestion-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "search-results" to _pS(_uM("paddingBottom" to 20)), "results-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "flexWrap" to "wrap")), "results-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 8)), "filter-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "justifyContent" to "flex-end")), "filter-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8, "marginLeft" to 16), ".active" to _uM("color" to "#4CAF50", "fontWeight" to "bold")), "results-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "result-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "error-state" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#ffffff")), "error-content" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "error-icon" to _pS(_uM("fontSize" to 48, "marginBottom" to 12)), "error-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 12)), "error-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "loading-spinner" to _pS(_uM("width" to 24, "height" to 24, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#4CAF50", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 8)), "loading-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "textAlign" to "center")), "no-more-text" to _pS(_uM("fontSize" to 12, "color" to "#cccccc")), "empty-result" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0)), "empty-icon" to _pS(_uM("fontSize" to 40, "marginBottom" to 12)), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 4)), "empty-sub" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "safe-area" to _pS(_uM("height" to 20))) } var inheritAttrs = true var inject: Map> = _uM() diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt index 4252b19a..1453f08a 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt @@ -248,7 +248,7 @@ open class GenPagesMallConsumerSettings : BasePage { return fun(): Any? { val _component_switch = resolveComponent("switch") return _cE("view", _uM("class" to "settings-page"), _uA( - _cE("scroll-view", _uM("class" to "settings-content", "scroll-y" to ""), _uA( + _cE("scroll-view", _uM("class" to "settings-content", "direction" to "vertical"), _uA( _cE("view", _uM("class" to "settings-section"), _uA( _cE("text", _uM("class" to "section-title"), "账户设置"), _cE("view", _uM("class" to "section-list"), _uA( @@ -491,7 +491,7 @@ open class GenPagesMallConsumerSettings : BasePage { } val styles0: Map>> get() { - return _uM("section-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "list-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "backgroundColor" to "#ffffff", "width" to "25%", "flexDirection" to "column", "justifyContent" to "center", "textAlign" to "center", "boxSizing" to "border-box", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#f5f5f5")), "item-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "marginBottom" to 5)), "item-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "item-arrow" to _pS(_uM("display" to "none", "color" to "#999999", "fontSize" to 16, "marginLeft" to 10)), "item-right" to _pS(_uM("display" to "flex", "alignItems" to "center")), "settings-switch" to _pS(_uM("transform" to "scale(0.7)", "marginTop" to 5)), "settings-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "height" to "100%", "backgroundColor" to "#f5f5f5")), "settings-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "back-btn" to _pS(_uM("fontSize" to 24, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "settings-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "settings-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15)), "item-status" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10), ".bound" to _uM("color" to "#4caf50")), "item-cache" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10)), "logout-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "logout-btn" to _pS(_uM("backgroundColor" to "#ffffff", "color" to "#ff4757", "height" to 45, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff4757", "borderRightColor" to "#ff4757", "borderBottomColor" to "#ff4757", "borderLeftColor" to "#ff4757", "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold")), "delete-account-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "textAlign" to "center")), "delete-account" to _pS(_uM("color" to "#999999", "fontSize" to 14))) + return _uM("section-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "list-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "backgroundColor" to "#ffffff", "width" to "25%", "flexDirection" to "column", "justifyContent" to "center", "textAlign" to "center", "boxSizing" to "border-box", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#f5f5f5")), "item-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "marginBottom" to 5)), "item-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "item-arrow" to _pS(_uM("display" to "none", "color" to "#999999", "fontSize" to 16, "marginLeft" to 10)), "item-right" to _pS(_uM("display" to "flex", "alignItems" to "center")), "settings-switch" to _pS(_uM("transform" to "scale(0.7)", "marginTop" to 5)), "settings-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "width" to "100%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "settings-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "back-btn" to _pS(_uM("fontSize" to 24, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "settings-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "height" to 100)), "settings-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15)), "item-status" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10), ".bound" to _uM("color" to "#4caf50")), "item-cache" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10)), "logout-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "logout-btn" to _pS(_uM("backgroundColor" to "#ffffff", "color" to "#ff4757", "height" to 45, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff4757", "borderRightColor" to "#ff4757", "borderBottomColor" to "#ff4757", "borderLeftColor" to "#ff4757", "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold")), "delete-account-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "textAlign" to "center")), "delete-account" to _pS(_uM("color" to "#999999", "fontSize" to 14))) } var inheritAttrs = true var inject: Map> = _uM() diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt index f82c0d2b..24624e16 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt @@ -12,6 +12,7 @@ import io.dcloud.uts.Map import io.dcloud.uts.Set import io.dcloud.uts.UTSAndroid import kotlin.properties.Delegates +import io.dcloud.uniapp.framework.onLoad as onLoad__1 import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData import io.dcloud.uniapp.extapi.showToast as uni_showToast open class GenPagesMallConsumerShareDetail : BasePage { @@ -40,21 +41,10 @@ open class GenPagesMallConsumerShareDetail : BasePage { if (recordRaw is UTSJSONObject) { recordObj = recordRaw as UTSJSONObject } else { - recordObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(recordRaw)), " at pages/mall/consumer/share/detail.uvue:151") as UTSJSONObject - } - shareRecord.value = object : UTSJSONObject() { - var id = recordObj.getString("id") ?: "" - var product_name = recordObj.getString("product_name") ?: "" - var product_image = recordObj.getString("product_image") - var product_price = recordObj.getNumber("product_price") ?: 0 - var share_code = recordObj.getString("share_code") ?: "" - var required_count = recordObj.getNumber("required_count") ?: 4 - var current_count = recordObj.getNumber("current_count") ?: 0 - var status = recordObj.getNumber("status") ?: 0 - var reward_amount = recordObj.getNumber("reward_amount") - var created_at = recordObj.getString("created_at") ?: "" - var completed_at = recordObj.getString("completed_at") + recordObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(recordRaw)), " at pages/mall/consumer/share/detail.uvue:152") as UTSJSONObject } + val record = ShareRecordType(id = recordObj.getString("id") ?: "", product_name = recordObj.getString("product_name") ?: "", product_image = recordObj.getString("product_image"), product_price = recordObj.getNumber("product_price") ?: 0, share_code = recordObj.getString("share_code") ?: "", required_count = recordObj.getNumber("required_count") ?: 4, current_count = recordObj.getNumber("current_count") ?: 0, status = recordObj.getNumber("status") ?: 0, reward_amount = recordObj.getNumber("reward_amount"), created_at = recordObj.getString("created_at") ?: "", completed_at = recordObj.getString("completed_at")) + shareRecord.value = record } val purchasesRaw = result.get("secondary_purchases") if (purchasesRaw != null && UTSArray.isArray(purchasesRaw)) { @@ -68,7 +58,7 @@ open class GenPagesMallConsumerShareDetail : BasePage { if (item is UTSJSONObject) { itemObj = item as UTSJSONObject } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/share/detail.uvue:180") as UTSJSONObject + itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/share/detail.uvue:182") as UTSJSONObject } parsed.push(BuyerType(id = itemObj.getString("id") ?: "", buyer_id = itemObj.getString("buyer_id") ?: "", buyer_name = "用户" + (i + 1), quantity = itemObj.getNumber("quantity") ?: 1, created_at = itemObj.getString("created_at") ?: "")) i++ @@ -78,7 +68,7 @@ open class GenPagesMallConsumerShareDetail : BasePage { } } catch (e: Throwable) { - console.error("加载分享详情失败:", e, " at pages/mall/consumer/share/detail.uvue:195") + console.error("加载分享详情失败:", e, " at pages/mall/consumer/share/detail.uvue:197") } }) } @@ -148,13 +138,11 @@ open class GenPagesMallConsumerShareDetail : BasePage { val mm = date.getMinutes().toString(10).padStart(2, "0") return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm } - onMounted(fun(){ - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val options = (currentPage as Any).options - if (options != null && options.id != null) { - shareId.value = options.id as String + onLoad__1(fun(options){ + if (options != null) { + val idVal = options["id"] + if (idVal != null) { + shareId.value = idVal as String loadShareDetail() } } diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt index 88da1926..92ad3007 100644 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt +++ b/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt @@ -141,9 +141,13 @@ open class GenPagesMallConsumerShopDetail : BasePage { console.log("shop-detail getProductsByMerchantId result count: " + res.data?.length, " at pages/mall/consumer/shop-detail.uvue:206") val rawList = res.data if (rawList != null && UTSArray.isArray(rawList) && (rawList as UTSArray).length > 0) { + val newItems: UTSArray = _uA() + val existingIds = products.value.map(fun(p): String { + return p.id + }) val list = (rawList as UTSArray).map(fun(item: Any): ProductType { var images: UTSArray = _uA() - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/shop-detail.uvue:215") as UTSJSONObject + val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/shop-detail.uvue:219") as UTSJSONObject val mainImageUrl = itemObj.getString("main_image_url") if (mainImageUrl != null && mainImageUrl != "") { images.push(mainImageUrl) @@ -161,7 +165,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { } else if (UTSAndroid.`typeof`(imageUrls) === "string") { val rawUrl = imageUrls as String if (rawUrl.startsWith("[")) { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(rawUrl), " at pages/mall/consumer/shop-detail.uvue:235") + val parsed = UTSAndroid.consoleDebugError(JSON.parse(rawUrl), " at pages/mall/consumer/shop-detail.uvue:239") if (UTSArray.isArray(parsed)) { val arr = parsed as UTSArray if (images.length == 0) { @@ -176,7 +180,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { } } catch (e: Throwable) { - console.error("解析图片数组失败:", e, " at pages/mall/consumer/shop-detail.uvue:245") + console.error("解析图片数组失败:", e, " at pages/mall/consumer/shop-detail.uvue:249") } } if (images.length === 0) { @@ -187,7 +191,18 @@ open class GenPagesMallConsumerShopDetail : BasePage { if (currentPage.value === 1) { products.value = list } else { - products.value.push(*list.toTypedArray()) + run { + var i: Number = 0 + while(i < list.length){ + if (existingIds.indexOf(list[i].id) === -1) { + newItems.push(list[i]) + } + i++ + } + } + if (newItems.length > 0) { + products.value.push(*newItems.toTypedArray()) + } } currentPage.value++ hasMore.value = list.length >= pageSize.value @@ -210,23 +225,23 @@ open class GenPagesMallConsumerShopDetail : BasePage { } as String if (paramId != null && paramId != "") { - console.log("Page mounted with params:", paramId, " at pages/mall/consumer/shop-detail.uvue:294") + console.log("Page mounted with params:", paramId, " at pages/mall/consumer/shop-detail.uvue:307") loadShopData(paramId).then(fun(){ val realMerchantId = merchant.value.user_id if (realMerchantId != null && realMerchantId != "") { - console.log("Chain loading products for Corrected Merchant ID:", realMerchantId, " at pages/mall/consumer/shop-detail.uvue:300") + console.log("Chain loading products for Corrected Merchant ID:", realMerchantId, " at pages/mall/consumer/shop-detail.uvue:313") currentMerchantId.value = realMerchantId loadShopProducts(realMerchantId) loadCoupons(realMerchantId) } else { - console.warn("Shop load failed or id empty, fallback using original id:", paramId, " at pages/mall/consumer/shop-detail.uvue:306") + console.warn("Shop load failed or id empty, fallback using original id:", paramId, " at pages/mall/consumer/shop-detail.uvue:319") currentMerchantId.value = paramId loadShopProducts(paramId) loadCoupons(paramId) } }) } else { - console.error("No ID passed to shop-detail", " at pages/mall/consumer/shop-detail.uvue:313") + console.error("No ID passed to shop-detail", " at pages/mall/consumer/shop-detail.uvue:326") uni_showToast(ShowToastOptions(title = "参数错误", icon = "error")) } } @@ -254,7 +269,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { } val onScrollToLower = fun(){ if (hasMore.value && !isLoading.value && currentMerchantId.value != "") { - console.log("Scroll to lower, loading more...", " at pages/mall/consumer/shop-detail.uvue:342") + console.log("Scroll to lower, loading more...", " at pages/mall/consumer/shop-detail.uvue:355") loadShopProducts(currentMerchantId.value) } } @@ -274,7 +289,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { return@w1 } uni_showLoading(ShowLoadingOptions(title = "领取中")) - val couponObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(coupon)), " at pages/mall/consumer/shop-detail.uvue:364") as UTSJSONObject + val couponObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(coupon)), " at pages/mall/consumer/shop-detail.uvue:377") as UTSJSONObject val couponId = couponObj.getString("id") ?: "" var success = false try { @@ -285,7 +300,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { success = await(supabaseService.claimCoupon(couponId, userId)) } catch (e2: Throwable) { - console.warn("claimCoupon not found", " at pages/mall/consumer/shop-detail.uvue:376") + console.warn("claimCoupon not found", " at pages/mall/consumer/shop-detail.uvue:389") } } uni_hideLoading() @@ -335,7 +350,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { return } if (merchant.value.user_id != null && merchant.value.user_id != "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchant.value.user_id + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(merchant.value.shop_name), " at pages/mall/consumer/shop-detail.uvue:435"))) + uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchant.value.user_id + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(merchant.value.shop_name), " at pages/mall/consumer/shop-detail.uvue:448"))) } else { uni_showToast(ShowToastOptions(title = "无法联系商家", icon = "none")) } @@ -364,7 +379,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { } } catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/shop-detail.uvue:483") + console.error("添加到购物车异常", e, " at pages/mall/consumer/shop-detail.uvue:496") uni_hideLoading() uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) } @@ -504,7 +519,7 @@ open class GenPagesMallConsumerShopDetail : BasePage { } val styles0: Map>> get() { - return _uM("shop-detail-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "page-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%")), "shop-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 20, "marginBottom" to 10)), "shop-banner" to _pS(_uM("width" to "100%", "height" to 150, "backgroundColor" to "#eeeeee")), "shop-info-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "marginTop" to -30, "position" to "relative", "zIndex" to 1)), "shop-logo" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffffff", "borderRightColor" to "#ffffff", "borderBottomColor" to "#ffffff", "borderLeftColor" to "#ffffff", "backgroundColor" to "#ffffff", "marginRight" to 12)), "shop-basic-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "paddingTop" to 30)), "shop-name" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "shop-stats" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "stat-item" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginRight" to 12, "backgroundColor" to "#f0f0f0", "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "shop-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 30)), "action-btn" to _pS(_uM("borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginLeft" to 10, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16)), "action-text" to _uM("" to _uM("fontSize" to 14), ".chat-btn " to _uM("color" to "#333333"), ".follow-btn " to _uM("color" to "#ffffff")), "chat-btn" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd")), "follow-btn" to _pS(_uM("backgroundColor" to "#ff5000", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "followed" to _uM(".follow-btn " to _uM("opacity" to 0.9)), "shop-desc" to _pS(_uM("color" to "#666666", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "lineHeight" to 1.4)), "shop-coupons" to _pS(_uM("marginTop" to 15, "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15)), "coupon-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap", "flexDirection" to "row")), "coupon-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap", "alignItems" to "center")), "coupon-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#fff5f5", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffccc7", "borderRightColor" to "#ffccc7", "borderBottomColor" to "#ffccc7", "borderLeftColor" to "#ffccc7", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 10, "width" to 150, "height" to 64, "overflow" to "hidden", "flexShrink" to 0)), "coupon-left" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center", "alignItems" to "center", "borderRightWidth" to 1, "borderRightStyle" to "dashed", "borderRightColor" to "#ffccc7", "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5)), "coupon-amount" to _pS(_uM("color" to "#ff5000", "fontWeight" to "bold", "fontSize" to 18)), "coupon-cond" to _pS(_uM("color" to "#999999", "fontSize" to 10)), "coupon-right" to _pS(_uM("width" to 40, "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "backgroundColor" to "#ff5000", "flexDirection" to "column")), "coupon-btn-label" to _pS(_uM("color" to "#ffffff", "fontSize" to 12, "width" to 14, "textAlign" to "center", "lineHeight" to 1.2)), "product-section" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15, "paddingLeft" to 8, "borderLeftWidth" to 4, "borderLeftStyle" to "solid", "borderLeftColor" to "#ff5000")), "product-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "width" to "100%", "justifyContent" to "space-between")), "product-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold"))) + return _uM("shop-detail-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "page-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%")), "shop-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 20, "marginBottom" to 10, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "shop-banner" to _pS(_uM("width" to "100%", "maxWidth" to 1200, "height" to 200, "backgroundColor" to "#eeeeee")), "shop-info-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "marginTop" to -30, "position" to "relative", "zIndex" to 1, "width" to "100%", "maxWidth" to 1200, "boxSizing" to "border-box")), "shop-logo" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffffff", "borderRightColor" to "#ffffff", "borderBottomColor" to "#ffffff", "borderLeftColor" to "#ffffff", "backgroundColor" to "#ffffff", "marginRight" to 15)), "shop-basic-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "paddingTop" to 30)), "shop-name" to _pS(_uM("fontSize" to 22, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 8)), "shop-stats" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "stat-item" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginRight" to 15, "backgroundColor" to "#f0f0f0", "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "shop-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 30)), "action-btn" to _pS(_uM("borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 8, "paddingRight" to 24, "paddingBottom" to 8, "paddingLeft" to 24, "cursor" to "pointer")), "action-text" to _uM("" to _uM("fontSize" to 14), ".chat-btn " to _uM("color" to "#333333"), ".follow-btn " to _uM("color" to "#ffffff")), "chat-btn" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd")), "follow-btn" to _pS(_uM("backgroundColor" to "#ff5000", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "followed" to _uM(".follow-btn " to _uM("opacity" to 0.9)), "shop-desc" to _pS(_uM("color" to "#666666", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "lineHeight" to 1.6, "width" to "100%", "maxWidth" to 1200, "boxSizing" to "border-box")), "shop-coupons" to _pS(_uM("marginTop" to 20, "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "width" to "100%", "maxWidth" to 1200, "boxSizing" to "border-box")), "coupon-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap", "flexDirection" to "row")), "coupon-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap", "alignItems" to "center")), "coupon-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#fff5f5", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffccc7", "borderRightColor" to "#ffccc7", "borderBottomColor" to "#ffccc7", "borderLeftColor" to "#ffccc7", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 15, "width" to 180, "height" to 70, "overflow" to "hidden", "flexShrink" to 0, "cursor" to "pointer")), "coupon-left" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center", "alignItems" to "center", "borderRightWidth" to 1, "borderRightStyle" to "dashed", "borderRightColor" to "#ffccc7", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10)), "coupon-amount" to _pS(_uM("color" to "#ff5000", "fontWeight" to "bold", "fontSize" to 20)), "coupon-cond" to _pS(_uM("color" to "#999999", "fontSize" to 12)), "coupon-right" to _pS(_uM("width" to 50, "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "backgroundColor" to "#ff5000", "flexDirection" to "column")), "coupon-btn-label" to _pS(_uM("color" to "#ffffff", "fontSize" to 14, "textAlign" to "center", "lineHeight" to 1.2)), "product-section" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "width" to "100%", "maxWidth" to 1200, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "boxSizing" to "border-box")), "section-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 20, "paddingLeft" to 10, "borderLeftWidth" to 5, "borderLeftStyle" to "solid", "borderLeftColor" to "#ff5000")), "product-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "width" to "100%")), "product-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "marginRight" to 20, "marginBottom" to 20, "cursor" to "pointer", "transitionProperty" to "transform", "transitionDuration" to "0.2s", "transform:hover" to "translateY(-5px)", "boxShadow:hover" to "0 5px 15px rgba(0,0,0,0.1)")), "product-image" to _pS(_uM("width" to "100%", "height" to 200, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "objectFit" to "cover")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginTop" to 10, "marginRight" to 0, "marginBottom" to 10, "marginLeft" to 0, "lineHeight" to 1.4, "height" to 40, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 12, "paddingLeft" to 10)), "product-price" to _pS(_uM("fontSize" to 18, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 28, "height" to 28, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 14, "borderTopRightRadius" to 14, "borderBottomRightRadius" to 14, "borderBottomLeftRadius" to 14, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 18, "fontWeight" to "bold")), "@TRANSITION" to _uM("product-item" to _uM("property" to "transform", "duration" to "0.2s"))) } var inheritAttrs = true var inject: Map> = _uM() diff --git a/unpackage/cache/.app-android/src/pages/user/login.kt b/unpackage/cache/.app-android/src/pages/user/login.kt index 0c6b90d8..ea9f2928 100644 --- a/unpackage/cache/.app-android/src/pages/user/login.kt +++ b/unpackage/cache/.app-android/src/pages/user/login.kt @@ -181,8 +181,8 @@ open class GenPagesUserLogin : BasePage { val errorCode = rawData?.getString("error_code") ?: "" if (errorMsg.includes("email") && errorMsg.includes("confirm") || errorCode === "email_not_confirmed" || errorMsg.includes("邮箱") && errorMsg.includes("确认")) { throw UTSError("邮箱未确认,请先检查邮箱并点击确认链接") - } else if (errorMsg.includes("Invalid login credentials") || errorCode === "invalid_credentials") { - throw UTSError("邮箱或密码错误") + } else if (errorMsg.includes("Invalid login credentials") || errorCode === "invalid_credentials" || errorMsg.includes("credentials") || errorMsg.includes("invalid")) { + throw UTSError("用户名或密码错误") } else { throw UTSError(if (errorMsg != "") { errorMsg @@ -202,17 +202,17 @@ open class GenPagesUserLogin : BasePage { } try { val profile = await(getCurrentUser()) - console.log("current user profile:", profile, " at pages/user/login.uvue:346") + console.log("current user profile:", profile, " at pages/user/login.uvue:348") } catch (e: Throwable) { - console.error("获取用户信息失败(忽略,不阻塞登录):", e, " at pages/user/login.uvue:348") + console.error("获取用户信息失败(忽略,不阻塞登录):", e, " at pages/user/login.uvue:350") } val currentSession = supaInstance.getSession() if (currentSession.user != null) { val uid = currentSession.user?.getString("id") if (uid != null) { uni_setStorageSync("user_id", uid) - console.log("用户ID已保存到本地存储:", uid, " at pages/user/login.uvue:357") + console.log("用户ID已保存到本地存储:", uid, " at pages/user/login.uvue:359") } } uni_showToast(ShowToastOptions(title = "登录成功", icon = "success")) @@ -222,7 +222,7 @@ open class GenPagesUserLogin : BasePage { , 500) } catch (err: Throwable) { - console.error("登录错误:", err, " at pages/user/login.uvue:366") + console.error("登录错误:", err, " at pages/user/login.uvue:368") var msg = "登录失败,请重试" try { val e = err as UTSError diff --git a/unpackage/cache/.app-android/src/pages/user/register.kt b/unpackage/cache/.app-android/src/pages/user/register.kt index 420a380d..e6ef7cc1 100644 --- a/unpackage/cache/.app-android/src/pages/user/register.kt +++ b/unpackage/cache/.app-android/src/pages/user/register.kt @@ -86,14 +86,18 @@ open class GenPagesUserRegister : BasePage { } isLoading.value = true try { - val result = await(supaInstance.signUp(email.value.trim(), password.value)) - console.log("注册返回结果:", result, " at pages/user/register.uvue:188") + val options = UTSJSONObject(UTSSourceMapPosition("options", "pages/user/register.uvue", 187, 10)) + val metaData = UTSJSONObject(UTSSourceMapPosition("metaData", "pages/user/register.uvue", 188, 10)) + metaData.set("user_role", "consumer") + options.set("data", metaData) + val result = await(supaInstance.signUp(email.value.trim(), password.value, options)) + console.log("注册返回结果:", result, " at pages/user/register.uvue:194") val errorCode = result?.getString("error_code") ?: "" val errorMsg = result?.getString("msg") ?: "" val code = result?.getNumber("code") ?: 0 - console.log("错误代码:", errorCode, "错误信息:", errorMsg, "状态码:", code, " at pages/user/register.uvue:194") + console.log("错误代码:", errorCode, "错误信息:", errorMsg, "状态码:", code, " at pages/user/register.uvue:200") if (code == 500 && (errorCode == "unexpected_failure" || errorMsg.includes("confirmation email"))) { - console.warn("邮件发送失败,但用户可能已创建", " at pages/user/register.uvue:197") + console.warn("邮件发送失败,但用户可能已创建", " at pages/user/register.uvue:203") } var user: UTSJSONObject? = null var hasSession = false @@ -101,22 +105,22 @@ open class GenPagesUserRegister : BasePage { val userField = result.getJSON("user") if (userField != null) { user = userField - console.log("找到 user 字段:", user.getString("id"), user.getString("email"), " at pages/user/register.uvue:207") + console.log("找到 user 字段:", user.getString("id"), user.getString("email"), " at pages/user/register.uvue:213") } else { val id = result.getString("id") if (id != null && id != "") { user = result - console.log("result 本身就是 user 对象:", id, " at pages/user/register.uvue:212") + console.log("result 本身就是 user 对象:", id, " at pages/user/register.uvue:218") } else { - console.warn("未找到 user 信息", " at pages/user/register.uvue:214") + console.warn("未找到 user 信息", " at pages/user/register.uvue:220") } } val sessionField = result.getJSON("session") if (sessionField != null) { hasSession = true - console.log("找到 session,已自动登录", " at pages/user/register.uvue:221") + console.log("找到 session,已自动登录", " at pages/user/register.uvue:227") } else { - console.log("未找到 session,可能需要邮箱验证", " at pages/user/register.uvue:223") + console.log("未找到 session,可能需要邮箱验证", " at pages/user/register.uvue:229") } } if (user == null && code != 0 && code != 200) { @@ -135,18 +139,18 @@ open class GenPagesUserRegister : BasePage { try { val profileResult = await(ensureUserProfile(user)) if (profileResult != null) { - console.log("用户资料创建成功:", profileResult.id, " at pages/user/register.uvue:239") + console.log("用户资料创建成功:", profileResult.id, " at pages/user/register.uvue:245") } else { - console.warn("用户资料创建失败,但注册已成功", " at pages/user/register.uvue:241") + console.warn("用户资料创建失败,但注册已成功", " at pages/user/register.uvue:247") } } catch (profileError: Throwable) { - console.error("创建用户资料异常:", profileError, " at pages/user/register.uvue:244") + console.error("创建用户资料异常:", profileError, " at pages/user/register.uvue:250") } } else { - console.warn("注册成功但未获取到用户信息", " at pages/user/register.uvue:247") + console.warn("注册成功但未获取到用户信息", " at pages/user/register.uvue:253") } if (hasSession == false && user != null) { - console.log("需要邮箱验证", " at pages/user/register.uvue:251") + console.log("需要邮箱验证", " at pages/user/register.uvue:257") } uni_showToast(ShowToastOptions(title = "注册成功", icon = "success")) setTimeout(fun(){ @@ -155,7 +159,7 @@ open class GenPagesUserRegister : BasePage { , 1500) } catch (err: Throwable) { - console.error("注册错误:", err, " at pages/user/register.uvue:265") + console.error("注册错误:", err, " at pages/user/register.uvue:271") var errorMessage = "注册失败,请重试" if (err != null) { val error = err as UTSError diff --git a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo b/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo index afa908ad..5f4cecf9 100644 --- a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo +++ b/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo @@ -1 +1 @@ -{"program":{"fileNames":["../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/boolean.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/console.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/date.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/error.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/json.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/math.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/number.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/regexp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/set.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/string.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/timers.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/utsjsonobject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/arraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float64array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8clampedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/dataview.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/shims.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es5.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.collection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asynciterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asyncgenerator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2020.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/hbuilderx.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/shared/dist/shared.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/reactivity/dist/reactivity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/runtime-core/dist/runtime-core.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/vue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/filedescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/ibinder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/iinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsebooleanarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/arraymap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/size.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/closeable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/flushable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/outputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/inputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/basebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/persistablebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sizef.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/serializable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/bundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/icu/util/ulocale.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/localelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/blendmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/audioattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationeffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/combinedvibration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibratormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keyevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidruntimeexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keycharactermap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/light.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/batterystate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/hardwarebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/memoryfile.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggereventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/channel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensordirectchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensoreventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/printer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messenger.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/message.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messagequeue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/looper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/handler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputdevice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/insets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rectf.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/writer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/proxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/url.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/linkoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedexceptionaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/provider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/key.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/publickey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certificate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certpath.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/timestamp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesigner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/guard.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permissioncollection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/protectiondomain.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/domaincombiner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/accesscontrolcontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/javax/security/auth/subject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/principal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/groupprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipallookupservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/pathmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/buffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/byteorder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/doublebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/shortbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/charbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/intbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/floatbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/longbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/bytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/mappedbytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/writablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/gatheringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/openoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/readablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/scatteringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/bytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/seekablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/fileattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/interruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractinterruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/completionhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronouschannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronousfilechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filelock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filestore.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/accessmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/copyoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/directorystream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/spi/filesystemprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filesystem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/file.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/printwriter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/motionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalunit.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalamount.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/duration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/region.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitywindowinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentname.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/credentialoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/getcredentialrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/outcomereceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewstructure.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/locusid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/longsparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/property.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/attributeset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/transformation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/timeinterpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/interpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/animation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/animator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/statelistanimator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileinputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileoutputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/ioexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/networkinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/inetaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagrampacket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/pipe.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/networkchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/socketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimpl.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimplfactory.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/serversocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/serversocketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/protocolfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/selectorprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/membershipkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/multicastchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/datagramchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagramsocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/xmlresourceparser.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/xfermode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/shader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/patheffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/maskfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/paint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/font.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontvariationaxis.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/typeface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/displaymetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/typedvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/colorstatelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/typedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/changedpackages.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/moduleinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/configuration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/userhandle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentsender.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/componentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/serviceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/attribution.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featureinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featuregroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signature.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signinginfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/instrumentationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/activityinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/patternmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/pathpermission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/providerinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/configurationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissiongroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/versionedpackage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/attributionsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/contentobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/chararraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/datasetobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/cursor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentvalues.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/cancellationsignal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks2.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorspace.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/ninepatch.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/color.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/mesh.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/gainmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmapshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/runtimeshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendereffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/linebreakconfig.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/measuredtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/recordingcanvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/outline.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendernode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix44.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/canvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/picture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/icon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncadaptertype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderclient.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/accounts/account.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncstatusobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentresolver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefiltergroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/resolveinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/archivedpackageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pendingintent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinstaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/installsourceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageiteminfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/applicationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/assetsprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayidentifier.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesloader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/movie.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/resources.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/drawable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationresponsevalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationresponse.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/onreceivecontentlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/surroundingtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/inputtype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/editorinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokedcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokeddispatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuitem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/submenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontrollistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetscontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/inputtransfertoken.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/syncfence.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/attachedsurfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/abssavedstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textsnapshot.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputcontentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/handwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/completioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/correctioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/previewablehandwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtextrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityrecord.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityeventsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/pointericon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextmenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/point.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/roundedcorner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/overlayproperties.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/display/deviceproductinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/display.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhash.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhashresultcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displaycutout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayshape.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/surfacetexture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturecallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/touchdelegate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/dragevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationspec.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationcapability.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/view.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/textpaint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/characterstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/updateappearance.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/clickablespan.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spanned.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spannable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/textstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporaladjuster.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/decimalstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/resolverstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalfield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/valuerange.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalquery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalaccessor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/parseposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/formatstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsettime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/month.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronoperiod.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/era.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/chronofield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isoera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/abstractchronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/dayofweek.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isochronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/period.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localtime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronozoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/characteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/attributedcharacteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/fieldposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/format.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/datetimeformatter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsetdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instant.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zoneoffsettransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zonerules.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneoffset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instantsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/clock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/textclassifier/textlinks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/serviceconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteclosable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteprogram.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitestatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitequery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitecursordriver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliterawstatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/databaseerrorhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitetransactionlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitedatabase.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/broadcastreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/sharedpreferences.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/context.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/loader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/loadermanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/assist/assistcontent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewparent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewoverlay.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/layouttransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/layoutanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewgroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/scene.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/componentcaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/pathmotion.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/sharedelementcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/layoutinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragment.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/draganddroppermissions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/adapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/spinneradapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmenttransaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/actionbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/dialoginterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/searchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/playbackstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/rating.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediadescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediametadata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/resultreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/mediacontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/framemetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transitionmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/window.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/dialog.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/voiceinteractor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/taskstackbuilder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/trustedpresentationthresholds.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/choreographer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrolinputreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureuistate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextthemewrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/splashscreen.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/toolbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/rational.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/remoteaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/application.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmentmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/activity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsactivitycallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-js/utsjs.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/worker.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/webviewstyles.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/viewtotempfilepathoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/drawablecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/snapshotoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/cssstyledeclaration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/domrect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicallbackwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/path2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/canvasrenderingcontext2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimationplaybackevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unisafeareainsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextlayout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unievent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewservicemessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewmessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadingevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nodedata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/pagenode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewdownloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewcontentheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/univideoelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitouchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextarealinechangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareafocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareablurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabtapevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswipertransitionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperanimationfinishevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistopnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistartnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltoupperevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltolowerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirichtextitemclickevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirefresherevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipointerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unidocument.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/asyncapiresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nativeloadfontfaceoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagebody.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativepage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninestedprescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativeapp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputkeyboardheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputfocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputconfirmevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputblurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrolelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicanvaselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/sourceerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniaggregateerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuninativeviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuniform.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/inavigationbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/checkboxgroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerviewchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/progressactiveendevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/radiogroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/sliderchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/switchchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickercolumnchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uninavigatorelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniclouddbelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniformelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/lifecycle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/base/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/env/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/unicloud-db/index.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/app.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/page.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/process.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vite.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/interface.uts.ts","../../../../dist/dev/.tsc/app-android/ak/config.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/index.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/i18n/index.uts.ts","../../../../dist/dev/.tsc/app-android/utils/utils.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupa.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupainstance.uts.ts","../../../../dist/dev/.tsc/app-android/types/mall-types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/sensedataservice.uts.ts","../../../../dist/dev/.tsc/app-android/utils/sapi.uts.ts","../../../../dist/dev/.tsc/app-android/utils/store.uts.ts","../../../../dist/dev/.tsc/app-android/app.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/login.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/boot.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/register.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/forgot-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/terms.uvue.ts","../../../../dist/dev/.tsc/app-android/utils/supabaseservice.uts.ts","../../../../dist/dev/.tsc/app-android/pages/user/center.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/change-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-phone.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-email.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/category.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/messages.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/cart.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/settings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/wallet.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/withdraw.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/shop-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/coupons.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-edit.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/checkout.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment-success.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/orders.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/order-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/logistics.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/apply-refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund-review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/chat.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/followed-shops.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/signin.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/exchange.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/exchange-records.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-reviews.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/my-reviews.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/balance/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/share/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/share/detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/member/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/message-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/red-packets/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/add.uvue.ts","../../../../dist/dev/.tsc/app-android/main.uts.ts"],"fileInfos":[{"version":"6e80ad2ee01e6eea8837f649d0b91002724ec74cef9b3d2b5fda718b14fc6ec9","affectsGlobalScope":true},{"version":"87e0a7f9366dc80be7b72c6d0a6e23c4f68cd2b96c90edd3da8082bfdd237af9","affectsGlobalScope":true},{"version":"2c44751aff2b2161d0450df9812bb5114ba050a522e1d5fa67f66649d678fcb4","affectsGlobalScope":true},{"version":"68566331a40bef8710069a7f5ac951543c5653c1c3fa8cc3a54c95753abbcf7a","affectsGlobalScope":true},{"version":"173b34be3df2099c2da11fb3ceecf87e883bd64f5219c0ee7bc6add9bc812cde","affectsGlobalScope":true},{"version":"9c867cbb4270f3c93a0ffaa8840b3034033a95025cd4f6bf9989ecb7b7c54a4e","affectsGlobalScope":true},{"version":"6d41c5eb02906006bad04d0ba26eafc1b10c433760b9209f4dbb7af1b8231071","affectsGlobalScope":true},{"version":"7b435c510e94d33c438626dff7d8df57d20d69f6599ba461c46fc87b8c572bce","affectsGlobalScope":true},{"version":"25f08344cf6121c92864c9f22b22ab6574001771eb1d75843006938c11f7d4ab","affectsGlobalScope":true},{"version":"f955119e78143380da1b952b56ab8ca46e10776d17e0a748678729086b0fae49","affectsGlobalScope":true},{"version":"b15b894ea3a5bcdfd96e2160e10f71ea6db8563804bbaa4cdf3b86a21c7e7da0","affectsGlobalScope":true},{"version":"db491a26fb6bb04dd6c9aecbe3803dd94c1e5d3dd839ffed552ffaf4e419871a","affectsGlobalScope":true},{"version":"463cb70eebbf68046eba623ed570e54c425ea29d46d7476da84134722a6d155b","affectsGlobalScope":true},{"version":"a7cca769cf6ecd24d991ae00ac9715b012cae512f27d569513eb2e47fc8ef952","affectsGlobalScope":true},{"version":"d27811b28326ce496b3a0810a4b38d9391e929b150d9d8b881a562c9c9d666c0","affectsGlobalScope":true},{"version":"0aca09a3a690438ac20a824d8236bfdb84e4035724e77073c7f144b18339ec65","affectsGlobalScope":true},{"version":"0f844aa90d79ff631b051f5ee8540a8936d48c39914c910e89e7b7949bbac865","affectsGlobalScope":true},{"version":"0fbf8b372e8d8349a3b5a1f470bb7897272bb43aa88066e50dce25fde261cd93","affectsGlobalScope":true},{"version":"0ef38eeb51b042d85f64103ec93a37ba8683a31c22fdfd76c69852e982aa08c6","affectsGlobalScope":true},{"version":"9652d98559378167cb1f4eb57e51119e4fef5861d18c5928c6bae207b80adfe3","affectsGlobalScope":true},{"version":"7c1cfb70557e907294946a14c5eba189f77d5e9dfe7f02832ee5c6f3f34dc4d5","affectsGlobalScope":true},{"version":"baa7e3434cefa49e8965ea72a0c26fe056b2e9d978ac2bb3abd204fcd6c4fc0d","affectsGlobalScope":true},{"version":"aca5b50919b30253d6db79ecb92848d8dae72c7998df1454a19e21dd633a75b1","affectsGlobalScope":true},{"version":"016e96968aee1fb6804200c75a11e876371536a98e772cb55ffbf482ddbd8822","affectsGlobalScope":true},{"version":"4567cbd464d15226a40a5b3d671e20665aa070a2c4fa3f4682700f563f9ab730","affectsGlobalScope":true},{"version":"bfea9c54c2142652e7f2f09b7b395c57f3e7650fb2981d9f183de9eeae8a1487","affectsGlobalScope":true},{"version":"5b4344f074c83584664e93d170e99db772577f7ced22b73deaf3cfb798a76958","affectsGlobalScope":true},"db8eb85d3f5c85cc8b2b051fde29f227ec8fbe50fd53c0dc5fc7a35b0209de4a",{"version":"8b46e06cc0690b9a6bf177133da7a917969cacbd6a58c8b9b1a261abd33cb04d","affectsGlobalScope":true},{"version":"c2e5d9c9ebf7c1dc6e3f4de35ae66c635240fe1f90cccc58c88200a5aa4a227c","affectsGlobalScope":true},{"version":"c5277ad101105fbcb9e32c74cea42b2a3fbebc5b63d26ca5b0c900be136a7584","affectsGlobalScope":true},{"version":"46a47bc3acc0af133029fb44c0c25f102828995c1c633d141ac84240b68cdfad","affectsGlobalScope":true},{"version":"bf7e3cadb46cd342e77f1409a000ea51a26a336be4093ee1791288e990f3dadf","affectsGlobalScope":true},{"version":"3fb65674722f36d0cc143a1eb3f44b3ab9ecd8d5e09febcfbc0393bec72c16b5","affectsGlobalScope":true},{"version":"daf924aae59d404ac5e4b21d9a8b817b2118452e7eb2ec0c2c8494fb25cb4ab3","affectsGlobalScope":true},{"version":"120ddb03b09c36f2e2624563a384123d08f6243018e131e8c97a1bb1f0e73df5","affectsGlobalScope":true},{"version":"0daef79ef17e2d10a96f021096f6c02d51a0648514f39def46c9a8a3018196be","affectsGlobalScope":true},{"version":"571605fec3d26fc2b8fbffb6aa32d2ef810b06aa51c1b0c3c65bbc47bd5b4a5e","affectsGlobalScope":true},{"version":"51536e45c08d8b901d596d8d48db9ab14f2a2fd465ed5e2a18dda1d1bae6fe5a","affectsGlobalScope":true},"897a4b80718f9228e992483fefa164d61e78548e57fbf23c76557f9e9805285e","ab2680cfdaea321773953b64ec757510297477ad349307e93b883f0813e2a744",{"version":"8a931e7299563cecc9c06d5b0b656dca721af7339b37c7b4168e41b63b7cfd04","affectsGlobalScope":true},"7da94064e1304209e28b08779b3e1a9d2e939cf9b736c9c450bc2596521c417f","7cce3fa83b9b8cad28998e2ffa7bb802841bb843f83164ba12342b51bf3ae453","dc44a5ac4c9a05feede6d8acf7e6e768ca266b1ce56030af1a3ab4138234bf45",{"version":"451f4c4dd94dd827770739cc52e3c65ac6c3154ad35ae34ad066de2a664b727a","affectsGlobalScope":true},{"version":"2f2af0034204cd7e4e6fc0c8d7a732152c055e030f1590abea84af9127e0ed46","affectsGlobalScope":true},{"version":"0c26e42734c9bf81c50813761fc91dc16a0682e4faa8944c218f4aaf73d74acf","affectsGlobalScope":true},{"version":"af11b7631baab8e9159d290632eb6d5aa2f44e08c34b5ea5dc3ac45493fffed5","affectsGlobalScope":true},{"version":"9ae2c80b25e85af48286ea185227d52786555ac3b556b304afd2226866a43e2a","affectsGlobalScope":true},"a9f049ea570ee986ad735ceba97a15d423659025fd070da3da67eeb8abf79fb2","5e94ed5f6b634fb2efe8715d7a14898244e87d97de8f30c5f1ce659325f35b63","b7cce00afe96bd61edceeda75e87001c606d6afae1269d408b762909ca550025","753ec8d1da4a289e4c8ab87eaf69ff564ccf882b9b205d748b8fee35e5c13c84","dcb4f549a765d67fd8112c49cb86835f903bbc7b3c744a0e0e6586bfcf6b797a","69bea942e5e363f5afe74ade98131ef7e6424ceb6eafa912c4fd558e95cfd13a","fe9bf6de0f7eb5bcdecbc97a9f9d143fc47ed6b2d4f4c7d626a163fb3683df38","113a30c935a90737c27e5b166753e8cd2c52cb7eb970a6bf8c7aaeb41a50f1ee","345270970a9c2a3acbb36b6e8d6929bd67a51089c1bd5ee69a6e3a7fde03a31b","c9ad66dfbb3053a5c29fccf8365eb0591f842a0238bd6acf7315c69249bd63d7","be45ce8cab2a0fbf2650402c462e99c1d7a881d4722435646ae8ba6f487ff3db","d16e1c53c406a38a3bcf4d00c3d4b563de4b314a20217289fb0e540fa693f30b","1215db238a845972b6d722503f428d9c8af6162341a437202039a397f0a3b4c1","35d891aaa6d58b6b5222cec630cb7cae1c0db8d022bd12aba90010e7fd1e0d5c","155136082237896cfaa4af7370dc01a631ac790fa0dcc2969be674f0a02de5a2","7624ff1625a5d1ebcdb3161f7f5424b21fb3af0204d3f4d35d6e27d1947ad1bc","7bb9019b6498ed08c1ebcf61148f8b793abb3cc3923b0ac3478937211830d85f","ae03093b0feedf80a44033b3103c5e3338014efa3f3e24845bf26274b56502a7","6d7cb1c3550c1cf70353db405d8cdeeeb086ee133481d491a7f18a121296da97","95a912851175159e7e4f743314fb8822cd420106bde2aedd824d46177ba99096","4818294229770bda38c78a67eacc25a54fe3a7139cef63c16dceef161eee3a1e","75c2abd02e246ceac6959a2fff8b140ed7558a53c27e1aff74a799ecfd93e78a","af4a013ff8eadb3da77fad719c7cd817990353cef3e92a71119c4bde4315ace9","6e7baf1a770b2b2511fca9d7eb9262c426571c96a19d4e906dcbd829618d8a07","3281685ed81a5f4cd84de92382261796473bbc121dfacf41fd13db4c256f83a7","75c18be6fbada64942047f2e29116c1598eea0fb259b66553cfe485a36bf98fb","2faab834c91aa96433e7a8754a557b48dfcc62f52d4c9c89c207388ad32ec70b","ffaaa31124382edc748ca1ff1aeb9e9300901546526e1356b10f166ac4f3f3ab","7e7b2aa55273a7f11e445b8f1f23c9e3d15d9aee5ace616534e8b16faf04c7b6","f4555f41566ae26a07b20098b9ab36476f7b185ca1e31204e593c34b51e3d5d2","be7cb8f67c758b1257fd0b90b9d546db908279170299f2df910c5fb05812b453","ef09a4caf8a73b19a1a5d861896499d1bc1d2b7d317af56b613fc379cdcf7f3d","a9826fdd6dfd19e91873c0c69195ebf925c652fd7096ea6a6dcb5d081037f8da","417de4e994c7f3f7c5c7710eaf664ed94347b40fdb7ef3f6a2cb5079a08da145","7f7a841a4438b02913186a76fc16143be3c3d0b9d5e596fc3b1e8b2c86b6a892","dd85cdccad106178a91b0e274bc61c704c0c2758843d29d699c028689e67552d","e2b50c5db2178aa09da186d8b60e2f589bc6998deeefba9be9df4c0686c0dca2","560f73409bc73749185b2d598923d2886dcf259b8864aa28786526164c6ae494","734a97c19cfa217eb74f1da4b933bc0318e53befff66c25043078404a0a5a3fb","f8f34d360348460782fc26f7e70cdeeb8150eaebff535b4075fb64d749142e9b","9c8b8cfe32f699471ca567ec171102bfd8a4abba5693d1837b45de1d93626910","aca17a9829f3267c504ebc02d05115616e4f0398b53e82599fd7a70662c4dd50","236f39f3abf84c47d0663a94647ca67bb92b8ab8eb1d7c0f9b15a77c20400ba3","6b41d23aa626a42b433e913b51024e310aed256d745cda2685c663ebf7a277ba","692673cea6d597777fa0b866c6d93e4cd1fbe7749a49bec3504f3d6852da382d","cd903ae80936070b05eebc6e0c461d9479ce64cf1ba537cfdc8d78b3d9a81e1d","360e08b9f7239540ba530e0f38576059fe0efaae8fcbf67f0fe5ebc169f475d3","6e66fa453a3da37ae7ae2fee12937b38d1210a0bc22a25fa70f999f8a98b8c3f","6898a15ba9329b18503a934d772f8e7d9d8d2172ed3424ea43dcee250e225cee","bc8c6cd4ce4e561453acdc3a22b6f9bfe5ba2bd4557fdef998369081c9134275","3df8d611a65ce138aebef52e24c51687ab9430e4cc9cff0c92bf52834a6c8023","5dcd61aeda70e3af3934446d645000bf91b7b6d71cf75141f9f4bd32ffbf4a1f","5948cfa7a16bb3b6694049a3d7c59566125a575beea799ebf86355888fa15f05","141027c7195a6e49d68ec954a6c850a67183117b1a48ca9e55d586abbcc286a2","ff64b99cc27e43aefdefe313778db4b98e1ec8e66bd8c9e8dd1da7a848852110","0e985df7af2d15cf2ded941415a3132f92fa1f39182c36e2541f0897578a90e0","7b1c9d68ac624e2ce9fbcef42f03df9eb5d7922b697c4eb0625bc5932c7e5626","c9cd9b2f01b474b6d1f824261274d4e2944543cba989e13ec8fb45eaf428fb99","0621f832a6db1c7e15d4b8e27efb3b6a2dfbf0061d548d20a0fa3acd6e7e9ad0","1362b7513042c64d05ef2e4073ca3ef25825e6c953c4d5455580ee50a232e083","f7a55f60dda8daa1e82458d64f4f1dd5f3113320ecdfd98a14ca95d423574207","6e62d79025167711952e5abc46fe773b83dd7fbc3432f3d60e34263ef07b8a88","a07425e97c460bd3c764ce3d857fe37fa7d1808b3ddac022d348e7bacaa58336","6ddf6dc4e11f0041c3d513c6ecbca1a62c71edf8a75606396a9937e97b0976a8","8c907668fe1c4c163e322f2c563c5f1de02ce8bedfe90335a4cf2fbf01e7ec42","2888b08f7df74672945e8913b3f8b482a519d8ead96db6413328531b98fce6a0","b0765d93e1ae41c0b9231e50ee9850a9ab30043bb9f40cc4b720c31e55dcefb2","e1a94bff81e13adc6eb802257e67f4ccc54d4268e76236dac5fdce5aef22a445","636cd0739ee78e7d5d7d7aec83243de13f3e92c6bdcdc4325756fedd4363fba3","b14f0680cf344c2ff3c2c03c9fbd5413ed76902100a8c476a04dac98113ae6ce","b00fc5ea3c8d7676d825c82783c73dc1a9b662bcea886cde8861a93ce0637902","ebb3d0ff97c54e1995f229e6dfee89d255e8b37ce50360642e3e4f4041e00850","1e995807d59118d7808da9ab62300b2b535686c1356df51ff64365ef6f255909","f63b65154c9e12d730832f8f0b0f77f1ce912bf6d6bd8296759b2a57aea933a4","37fa9c72aeca0c40378a13917e15c08f70618fc1af50db2390c54a2da5891156","f89deb8cdd5de1cc0b735108eeea49bf81af828bb893b1740afa59af0b726e1b","91d50f7a3484627280e6b3873386d1a44dcf956156d2b31ea9741c1327be23e9","a9da237d591fdcbd3db71e2c52fccfe18a203bb810aa891bfdec7f7334289174","6fc646802b257c559c61bb190cf1c39377f97c8edcfb9b4f7215f4000b16be52","52bd2529c7f409e5c239d43ea7444c394e6be64b509437c3c25fca52f3aa5144","f52a07b2ca2e4dab99459d521867b3f4c5a2032677a0c803d90c400a34c55a40","dbb522d1482ff56669c9f281491dee1ae8a75e015c5becdb348c2dcc02afddc9","2b63c811c1648b74cf6e4337c99d9e84abe4d105bc9e38d38810c358e431a023","ecf25c2f08b3a89cb878eb832a7f0ad19a7070905ae687d36bd5abfe2d6b7e7e","e11fcfb3cb83517aefe0f4713f395a0dc18f7c6aee361a0bce258c3d22a1bc00","4a83c0012226f26b3d13aec38482c66f3a605c0b20827ef19bbd8d49cee622f2","cdfff4439385638f00f16b0c50b1c0ec6452281af8e9be558432cffbce7aad22","034b7b464137cdc0c1ec97078a3d12c6a3f283d60cfa09756cef051042b79463","ecdaa87c9dcec6f7c802e5a2d3926691cf1fea4d8f8e916a93a0b410d8daf91d","4c6a9787e1b611dad138b011c9abb88395aaa9bd473cd713f2064aacdeaee396","52f648342dbae30c9a51cfb4859e0ac8cc64197351e53eb1e2a04e0315c17ff7","2922eb5995ced0c1d56d05304a32b8805b6d582d736c3168526c9011dad0233b","5f3833db4ede7a6c5955a483a01d50359c874b5a0b4ab5afe26e0232666da187","a3037d173041b7bd28ffaad2a9c10837b5d315652d1ec4da9fa3c7aa7fe59f87","23b539194ab717460588dc29b98d18318c217f4e74258b37bba04c9e07d71d1e","076bc471e07b6780a988f0d244e614e4fd5b93deeb7eb58ffb30efc270423de8","b3bca5abd1ec281a32ec6bcfd1c2975aeb9683ea3eec68bf323d8cee61afca90","edd3eb041e9fcea3765ae94f145524eeacff60b721e34ec1b9a7061276352719","c5450ecca5a8946d0ca8d2bcd8506c22c33a4af38cbffba6d03b4304a823e50d","4c6ef9fc8bf8d9038bcd22fba5b4edd22ea05a3d536ebdd5b07f720d02607a93","04f7b9e58a831b4f7f5d6bb170e87820c68ceccd86ece944c5cbb376fee8416f","db12cd264aabe686c6a027c8af3afa72486b0cf4291d5f5c8ee148325264de1c","c19c6bb7f81272ea573f2174600665cc999e8a7596fc2f9fae2daa689575f08d","95663e373c6b4ce80da0f9e21c564f4f201fed54773f9e27319ef441b547470e","e8af6903e8e7f3f405654c808534319d1105e5d05c5d5b7ab00dc05ff8c123ca","95a831ca188856a59bc544031053fda680056f0c0e2ee2722ebf614f50b7e54b","ad3683201a9dac34ae25a2c57af2dba04805cc998fe78df34facc13dc970ffb0","3052cfcfd8ccb093f64924792c7d3090490a803331969e44cab52cab4cb74698","98366b7911900d3a31c6e85c326f7ba664a28fbd24fba191faedadec01fb2c4a","4f3924ede1fa4f31f726c577e5056c407e995cf6f140d5a37b25637d512c6d2a","739779e95e30515697347572fdd439ad55442bf175aaa6763444336b258964dc","6369eadb1ef17bc4faff5eeadf6bf759986e6dcba8e412aacbc7681c5a1ffe00","9352428676f84478a26cc7b750e4a9d2abc7189b6369452067e4da2afe1d3be1","a2f25e1d6a2a69b6c88f86c6d39914c9e9a1634c9165db2cf05f9f7273b2737d","bb356f5b92a22eb4bcca50ed190e2bd94fb2fd6ccd5f0bd184ab94b10aaf8e22","fabdd71c50eaac10936f748c32779ba276c3b778fb697d5b36c18b416958bc06","55137dec811a92edfa329067ddcfb042673ffdcbad49dae12c61cf9ff2410822","96f21e74ddcc1a72f611bb90f4146bff4bfa61a0ce5d32dc10592f9bca6d9dd4","b7ef1d83bdc824781f07b5347176f154c98190874c5f5ba2c0797225ad370b2c","0e7a4c6bc6f826aa0032971691aeef1d4d6c8bd17529652f4f764749e33b2167","c702feb8c88742697dd03848be3381f849776cea383497cfe9c72075ba6996fc","890729ef6b2e352d1750186bb3cb740f4d450d4f5d58e80c988ef79c596b4db8","caf48a1f9ca7807e639635d357c615d61be9260f3b3c15fd3b32c9a136b95330","7def810f306678f7f8c1305a372c6e8d4ecf984f0cb067dc8fd422dfab2bd6ee","7accc5c71c146538a30125e240e7be8cfc29a9e263f4540b14c55db4af3fc4c0","04e345066cc36c58551825d6e84cd23db6e78607ab1ccda754c6bae66e0b0fc4","172c9efb0cff276f9cb01dfa2ac5b7b6d5fe3a547e264fa2a15187d7dd9d6c93","8d9202dcdfb70d6335082e1af748cc1e8b3ab4ea42fa9d34403233b8a2693cf8","f4600cc019ff4c47e17213c7d2ec5c831db0a9379d7376fa2fae3af29c9c82b7","b7dd7c73cc8c564f0bdd5217f56cf42fde85c7524b06739e76f08265a3e8a1ec","2fc96755c9ce9f4f3d6a4f7406b8abdd0651c7548296e060908c4b75b7bc42da","c94c469279059c008ff138b5b091085b1f4326824abe8265140fb26021e294ac","f2f23a8040a3b977f2adc72622b49145f1605300d5b279c4debbff8d535c469a","41d81600effb129c209f86ae32231ddc357d7acedb9fa9ebfe60c308475d1b36","67368e74c92373e743f2942eaffd292cdd6f91d3a4d4210649de88e886f727f5","2e3ca531dc7f889d2525b5548bf18b0ecb5b2b1ace8c89e5644b5a84ed80df0f","13cde4d1ad843f50fa82156e498420f3d6231eeddbd9c856f2fbc947cee14f69","7ee62691b05718e30a74db92d9295084ab8d9dd0764754995545b672017694a9","7c89dee0144087f836d6b9452ba29aa4967317ffca1be148988eb81b5a357992","616e4dc1950431f1786d66b11b6e6f18565814d3098faa8785bf2fb71d7d97f4","fa065dd51bd483dc403955d383e587f65cd99070cad7b1e638d24fb084df9879","defa4a8e6bee828a1c2dcb37f58597411f5299557e37efef2136fd6a042a0ecd","7e5a27c15c04faa14436677396f5075f2acb6b0aa33670543ba5d75251ec3be0","0b5823a49cbcd5576d7fa7f439441ced3386eb630279cb7a3bb30246cb2519aa","7d964df58d57fb44484522e32f2e99d0fc6bdd929bec44ad5a051cce31703737","dd0b587ad7c873cce8d7e51b947a8c1b722e00881b0b485af46f9f4e9dfc9fb2","f72781d005c256a6d64fe522eadb2c2a2b920c91e395dd2837b4193ec6a32b6d","827c3bc97611a0334d90bb429cd61547e1479349cf904428fede5ba28bd02ca0","9c865c53cf594f71256e90f1e7777688088e05f7040702c0af1b31b2a17979c8","ad149f89d84abf476903e0a70593bf8a9a9870f3363f03e48bce03a60b9032cb","42c0632af4a7291567b196d0653c7e47ed807968bcd9330e14cca8fd5137411f","cf92f44b3a567bd9842fb31ea8f3fa8d71389a703e83b0104ca057a9c7c401b5","ec9f73c33592a97de39ce97779da9c1d9a3a81416f60024cf3a094d8bc6a51f0","59899090f0e604d38520297678161172eb0da2e276d50b734782ac74bf710b64","a4261d849c4c4834f22b6c33fb05fca37078eee9a4dc6fa00c90f2cc0ddadafe","33f8235ee036526ba4f6281be5a9675977efec915fa370ea9823be3b743493b4","92106a20ad252996f5de30ac709a31f7e968eb0e3faf02d439bfc19736358abd","d3418282d5ac5cf21a0c186d4ce7958c5a8b8e35d69d79225eee9561bd5e941b","deadf795497e8a65e573447e50e36a3b30f7e6cf70c02b4235c7aad21624f9cf","bcfe531c8d0cd3b6c3b24e398f78f7b51a3c4d44c75225fa8f8bf4fe30fb6ec2","b451a4d6f6ecc0523e2bd43e2297c68d63647a330a7c893a3a356dc90c0b7e35","5ac5bd94c6929192ff715f8c15543a2b7331f0db6f8b9a5680956339c4ac5841","0ee0e380e1d17c3e6183b70c012b18166bf6ef593923f2b4083d99697fd61d5e","11f2b58acfd6affaa3ff00799fe3744768c073ccf63320634067988309b86b27","055c94ddb36bb93d5bd06af77e403511ebe8952802934ea2c9af6effa2859a11","795418f74f7d511631329ef4a917d7e065c7f7b8f261eb6576e5e1b364fcaf93","f07aa0f14b07105c64bebcb9e792216b85e21dba5ad5fc7d69dafc990998c9ab","3590279ae9cb56082358ac736c650e2500d3e354aacc4ad0d46da2bb9c074b70","d14cb41bef07c4b766260e33f77affc25c326bab71a29b38de49c736bef814c1","9784caa1704ad93d707a343016dce9afc51e3d4bc473c44afaa5ef73bf02ec67","f9da916dde53443d9ff83edfa1b404fd468280839379215c45b98748ad36413f","89e00a80153e04f55fc2abf67a5fa26e843e94e4d896eb906ac131113e623dcb","695d60af09f1ea0abfbaac6029a847d5acd974031ffa92bb30a5046412141366","e5fb35e195ee33c761e1dfe073436e30c7f38d72cd4739dd2deca834cb2040bf","00a0288ce31d3e3129fc177a60c130cd792f2ecfd6e634c4cf9ef38b075d7e5b","db2d09f8715a7f099f32904cc44ca3259bc0d6c9f8afb539f0e94082c3421b32","d005bd50e8eb8fb8b93c2f9c1c6ccb1445d21fb55e02ecf2782fbc921f4e3066","99b4c7f34a053d3bea56a63a20077ec8ae250cafe28730428dd18f8bb01e8ae7","2a3b6a931d2bcd2998c06cebc2d86ac66300a65fac01f9fd1a5ca39746921148","18e2f9802d6f93be156bdc2c771ade01af119f6735ddc52611dd47c00da6de74","60c6f70be8a7438ebf45665d8edbd06b2d6f12e57374d5d3dc2f5117f3e56359","9fdd23e11fd5b1dca494cc919f706f502804acef50cee593723ed4087e486f7e","784d7599403cb4e6595c528758daefd24ec8d6867ba668dfc524deb04ffbc1a7","e254021ff17cd2dffd5ba54458cfa43a07520db1b679dd74a54bfec16c198eed","31d3d8d7c90229e478767cf35dfaa0d63fa453f03d11a3c9ea0bcf49a000852e","a811babe4e7849025cb2c111317d96da26b0c2c0bcd9a5a6baa5c0244ecc2c4b","5dcb774809733fd4c12d74e54e4604d6462668f0ff9f89e610d3c8ed7daade4b","6dfb57cbb5123326dd2591fdd29cf2a6edfbd50473f84ba56b41dc1a9a5c9335","2c4c16ae9d3ee7cbfd81aa78318dd44aab3e89f104ea5b83db823c62e8035958","452faa95475c0a3d13b75d2a16e3400f7689c66210f41160bdd7cea51f58269e","2a58ae82f98a35406aa0aaf823ceab9788bfb5f8f634df0f81e33f052cc9a070","c4bbb6c48e58b754e445b06107d128d1827917dd3ff142ee91842b9a9c112384","219683614118701da9fd97320073c9ba09a038636e85a9020572e5604028dbae","e02e548bcf8cdbfaad3014721c0afc4d9155864326e3ea996526e20e6a2afd4d","870fdd3a3eba1f8ce6d5a9f0a26ee479aefa7021f907bd7113c2742d4270a4dc","04f86e5474108337feddc60f974803afbfc9ec42d62ba329edc96c90c730020b","4fe88323f71b0c362f2a0bd9134ab39f3631259df044ed828110508864832c33","0598cf1cb02c868f6c3f00f66f5eed0c5f3224fde091e5caf586a32f2d54a256","a7ebf86af52748a4e9be5ae5659227d9c9f32e66938bf8f01e98c3fb3315d3d1","ee844259ed172b447221233f5f5858f3f9c14740d5b62cddf1462ef2a6e1272d","142e686aafed13c5d48f79c62cfc000896a2a57bd6eb900c2d7c33428df54c1d","744ecf788f2bcbc504d2854a287256f45df04c3c7e8ebe6997310f5d61b50711","f0e88b50b239c95a138b1e484eb51f502dd62f8573556e8a2389b5fd30133ada","651c9cd467ee2d3a75fbcbfdc9ce0663d8a7918b00051f9e8caf2c29c97f1dce","1755b7e2ac5ff0c983ed2af446b6e2be02aab92cec69b529d5bacad737c92ba5","75372fc69641935f9001968fd8a738f17427a92236783d830d9a1658c317c9bc","79857c3eddd652e3bf563ee8a8ac42f77602b493241f5d4ecf321deb07d3265c","493374b8fed9e916f65268ae34b2eb50d54dac6c6155c8c3aec2b110b96eb846","3f67bfe77198b02a087dd8696dd7cfb815e14d53beb18dec7775aee1d58702c7","ccc5205e0d157e66fda814ca588dee8c132fe54018d0d82661cef3cb6a61dea7","700797233325d51580854ed460164d5fef06c5c6479154336ed7fb4573c22faf","63b6ea7963794e1a1cbf29a4b9e6e5a18a16bc0acf12c4c497b13b8189291577","c940f837169ec3a8fab6fbfb8982c102be8568226547083fcaa7120cfaaa8cfa","e7c3a4ba9d905fd2c0e8c9fa1a7cc8d60e34de72c4fba3f485f1ae6f28d30e49","1c2e47b8eb25bf91b26b6d41e7dffb80d763866bac7cce5521a7a776a5219d7b","7b6c20a8df3cd20f3c7897bd4e7d14a3470bcf698aeece02039fa55977c6cd6c","3f13e83bc86dd062b425976807aed2f63743f517d1507e74c14ac1bb4e6af2f5","e7a3f8116acb64d02bb91ec7c607e4f605b80db625a6b81b2d86347be7872caf","51633fe4f49dbc57954c0c606e445e4f091b7af3420d80884accebc2116e3382","d6f2f3c749d1adf9b6d572d27c27eb0de6c97b07032c48e3f70837139e9180a3","170b85f7259689ce23bc809d7cea2a7fc79b7f4e524fd73930e66783b656c330","479da7ed69ee5914191bd855aa74fc34406c4c3864149a528b0cc76037250e59","8766424888a810870e4be559a7276449184edcae82db64731448db12049800ab","3019a26416cfecfa581ed6835e94ca21b0702114056dce8836e3a1226d732640","f0eadd8d5b164b19483b7c62e85a2249611b9dee897c7f1b46e109cce13b22cb","5f476be61ef4a259f7067891c04795ddadf1fe8450671cda83e27636ef2ad0c4","5be2d74a8b503f4ba88f905316a3704f28074cf30b884ff423ecf60a7d9fd4e2","d6f8636d479116a1cef3c6e6415d5326e5bacc5d0bbc361bbd507cdd451b1594","692ddfb913a98bcaf42cb94473d0d4a45683addbf48f3a1d5c5869073e09ed41","3d51204c5e6a69cb45ea152c968eb5a26db0ca7d06d73889dfb012edbcafda48","bdb19d108c2a788c48040cebb03d4bad79731996ca9765e7b292492d59e8f31f","734cfc086d6f945e9a84aadb7a2cb73214a9a86df7d0853409e36ad0ada006e7","c2d9d2be0c62d9eb038421e2a51be0f098f8da42472080649945506d9f8b2d64","38d5dea40c2e2423eff59924eca48e669ed88441815187bac4262ef0ad2689f0","688db86acd5f0d3a167a0bb4778bdecba769f2d94c8f2291277f0b51e7cbfcd1","1c2d49d8d8d90cdf734a7eaeac76e05829437eb657caa9e9403b56701a00b747","9c37c1dafbbfa00089e3ba095269dfcce8196e7cf2e7866124a577bed39b1341","25b2e683398aab0e633bfd679093be0e781f8259f3a7212c74090eabef71829a","870a3b40f227aca3021236bf178d76508583497a04ccde082db4735cfbdc413e","4206886663e1df92db9fd3286566a7b40d08c754109815aa1c5348469156b454","546275842f9a117e664c71aa151099b612126abf5002b7ea9a7d29db3f7ea06e","5d3e9c802093fd0f3621ad32231fdb40951d750679921c24be00207580515fdd","b638e2349147b410c99c7abb3b916484c84f931c0e54a51610eac23674f5462c","991acf2b656113675182be59c7bedb01f42132c7777d49ab56a20f7fd0eb0c53","c06c2a0bdf10e96019121c1ad43550e1309cbdcfb618fdfd5f5007c464b35869","dc67651920a1617964151323c9c0fc22962948131fccb442e3858deb974f0c0a","4dded26d1610b1fcd97be8bc2adbe9bf49cd6c574bb54f544a706ead913ce579","81b3af7d7e8df93862b5c308efb013845eb80b34c5bddb6bcf97269ac881b454","dfb5b0e704f05aa091ad57629da2964d4b4ebb92de88830e59641df028742982","ccabbc8d7cb2972fa82cfab2f68118ff53236e3f73a98dc20f77c0ceaa1c2323","b92d5c9cccabb04f74d0329058e29e4edf43ec80a427a9553e3dc006887260b3","310519588275401653a9e2524530076c0615619f4ed02a90f4c295256145ffdb","c654364580b1b5192b100687f5337a6cd364c49fa4d435a1de2088ba5aedc687","3a66a49f53f67807ef110033829b67d0ffe29032ba9b9c2d05a78cde639c7fe9","4a36f2312ade82cfc32f31fbf131cfcd29038f5f88dfb663d5faebf0c39bbb8c","c05e29c903823a814853aa0803301724bcee784eb332e63a673efc556283bbe6","71933894b1cb6b21be3e94316e86a3fac2492c2bc08944ae9611b85387f2b0fd","e5a70a8f848f1e7665865e76872cae69906a3976b61efa1580f8a9229d012e03","5fb73749ab8047b48d360937332fe28dc50e085a431f7327a6b5d530071bd06a","218ab8481329fd2accca1e5debb45dac5eeba96b39bba5f659009539f138cbd0","0930323b4efbec69877906806bd2a069c96896d35b5fe879eccf64059bdd0702","c0f9aa7e3e64a5097534bdb379b91e9c6838033cc1406805b06eb4f2bcb8adb1","e33f32c896ea534b5587a1166b769f1259a0d3bcf021fea449c03775e4ce5bb7","10c91f6a781c0068e7e3ac9435a38342e34965dd3cc7111a824e5c7d6a0106c0","5ae29d8bd0fbab2cea691b9541833b76c9a542013ad33710a109ff7f0751ae71","7b4ddfc74242c161aa469a8c1ba0d01915779a87a85e1476febe79111b52c5ff","d712fb0b184c4dd377292dc9767530e9249d73a04690dfca42c350cd4a02338b","72028dca7892e4d0175a4ed026701d73b5a5e8ad5c3771dfbe1138f1488a03be","ed145ad7bd6050dacd85f1c7e50fcd5aafa0433339dc2630a37bfc930d8589df","c063c430d8f55f4d7e4bb7ebf91fd7bd50e8d37f3406d356ecfa6c909350db29","9cba5e78db08657ac090c65d42534dba1592010544541b7810b35855570eaea5","abbfbef2b303ba2de958b6b872319bf3d4fc2d931da921efa09b092a91e3aa6b","e3bfc18a8b10bf2d1495eb4b3d4dbce361348fd743a785956d5aa868e62532de","b2656290b994b55e6cafe2640efdac100c004adec35498d4f470489a45a01862","6eab49aeb5385eedddd1c559a0fb5c09c8a18ee4c675ea1c9ccc061f7bc42851","e2acf71e1a4fc7f7a90e01d9c9c2c8e68dc42fb64a6e7276287bdc7ddea84214","d7eee876214292d6d5b868bdc75382459d63ee4ce8ddafdfe881efab51b5ef68","ab032d928152e2db5be177587327d54c90eb7c117f511db93430329ca0f377b8","f098324307a2ff30be1a9f32e72e3aaba90da04fd1e9f049c0769b079b6103fe","6049f94460f61904ef21883ba8e33ccb44b375beb0ab34061727f00a81aa4d8c","50de79e82b5c05faca1a582c3d607327af5ada600c6c04fd7e316d2f45e3d8a8","f01a152654a9a507506c715e69ee756fb7655868e592b39876129747346b37ee","9bffe80260c554aa2cbf095500c995460101af6eaf73c73a0e9a5fd010cb13ea","053dbae8c05eacde27db36ec5579374b5ae43908a0785232dd64a119f67e8312","f3b1803e1d654a91dc2f717a6303deda942fccaee3b214da79036ddedbc00aba","9841b6295555dd6eabc901bb6d3c1cd5c5bc54b98cb42fc51843495b5c30d0dc","bc0d319e41b6e74bad9b40e300ef0f5ace1c35b0e05735734e00a9a1b4529386","bebeb2d6b9908b8436e7287b8ac1181c64413f67ba95f75ded3394ac32e773f4","c8ea876fd7003a81023eed439b17a43102e6ed1098784770cf75c97141122aef","0f8e5ea2ae53ebd5cc361b68dd769c7ebab313df09ab3f3bada1057e8912718a","31776bf779655f6c80dbe834cb41c3fc3a5679813d009d54edbaa566aadc4449","37dd9cda7e4c1c3efad74cdc1305fe1b70a54fb25c1e960fcff5c1f95b857b2f","b027177cf9d90394842e000df982b32d996992a3270c48236b254ffa8862dc00","81800937cbae367db7745647bcbd75c38ae4e4114aed57ba00e14143a2771592","df3147e3f4c3f381fdc44804eeea2557af08f2ff5f05dd2f7e251b35d5974083","5c30fc9007e35a95a06d1b692099f6efc9bc1bb96a1d5a5d6bca96536c5b0d00","64c5f1364683f030776a3163d566cb2efd2069aae22c6e9d2b7e26ea1099d4ab","14fa28f24d61bda6cbdf507f9e8e1943995c4e5636f81e13125f3cbc7ac8d92f","c26f1d3fdb8f7fdf406eacd8b9dcb10db9fe3cc7e1e6a9eb34c5fd3d337efbda","4801ce5e0e889617c01743d837dea896b4665cfbae623a87a2397fab26f659fb","b833095a6a099770438573a7d76b9f914594012e547be2c556d1e1d3250b75a8","4e8e990f4db7856337b3d1653c79bc0516d3c8f354e7a6e8402d9dbbd7144e65","1fa883af678154c29e9bd700aca19b34652535836d9bf7a0b460b13eeb735b87","cc575e3fd7b401d7174141a186554fbb02dc4b8d331fedfa7b3100daa3b80ede","0e4a0b82e38b8363eed4d6a077911b99ca2e3cf1783b13429759286a390912e0","723b00629de441eafab07568c93668685b149345c2b05ad708a8a6454ec631da","b4323a664b69955890c49f0cc6085ed5e72694cdbfc41324ad2cffea4f638fb8","4b379fededb05ff467e513c3cf72bbf020eec7af35e6469e3254d5bc64d3a1a4","f04e225f4d8e584b1c831c637c4fe7bd87a883d6a497e69714a7a28e847ce3cd","2ded5138347ab78bdf2c26620590d02ebd17c27e1e066f288a36d945fcabed42","c0d39cde2ba477c45a0e9e2a9ec06105efa556a334e9a602fd1785416060d6be","78ec7867d878c548b5c7ed2666c6d53f47dfc69d0096808b9d7f51802566aaca","e6aa21fd5acdb192f250cdd88234ee6a7cf5cc9305da17154e61557444c61446","c08f744bbd44f2680fd88eb1639958049ba6474310e9bfcbf00b2b2d42189bdf","0d6054a6bc3a72dd52b8a7794a3fd190eb2158f87d2aa6b6988ad6f8068b89ed","8e352c0efe439c8168c631188927adfc249c92b71f016cd6e7ade1cc6f63e6c8","2e2de1897f5a1f98a8307938953ad1987b1457b140c0263b19de30763479c55a","f7f6f8cb688ee877fb46ac3f42b60eda69130cef419017e6ed88d6a2bf381647","ec46a2c7b6e2ac832c937a649b13ded708d1cc7a067ad64cb938dd1f441c993b","b2fd56f80464f3d91a0e73f5b644196e28b6dc1d1c9836a1ccf1db5d80f6a0ad","d352e51bbc82a60de52ac06a88644b2e73f2cb04ef4a7d93b7dbe365068dd4af","e3f2b9e7514ca65ac5ce5373be59f3322292182e02e36a6685f9cfd58b28de6c","13eb27b0a813189a3d0abf455f248b7357e378501a961979027bab62ce5ecfce","8839cd37fe3f2042169adecaf9e66f71ea4c1903423ef49b75db6e11c9bca531","1c4f801fa938dfff8ba0283c2bdedab2045f215369450d3fe6cefd10cf5a0755","798423eb5bfb9145647edc8ed7a0767d02bb4c85c6b00adf4db9cc3ac51d0d62","44ced48a3e22e8949f6bfbc99b780b6ec3f0f3235c0f57fd4c257171eab4dd84","878f780ef3f0f209808122ea1c7ff44748275b4cfba75ea40804e530c2f1abb2","e9b071d1470820ce48e6bc84e3ab4564a33ffa118451f693ddbd48932af9356b","a507de4adadb7e8cfde49db789c062c168907843b49d081fea1b79bcbd59dcf4","4a9c2514a2e2861e25ec956f4da6058e15dfad6a9238f91bf0c3abb8bf7bb57f","d4430a6173c7dca84d93735e97419ba6c5dc52ef09c880e860fe8084cd52986e","b4a8d42bc830833c7480258c34529d74f38940ae87675365f8233136a66d812d","61b1e746198b9347a1ad402da267fd4564d54322c7186a3945692cb32c59aaab","13b3e17dbdea4c62fa4b927b1d06ae4fdc2b35beb05ac20af9e6e706309f80e8","09897651e677150ac1d89f9978c6b51af312ef76de686148adaf8ea3de68ff2e","dd0c1145cb0c0810c14087524546684c8ba0cc57db8e8c9e2408c649d76c7b23","2f58b3aee27f7398c1a383fa7e7727654f03e03e172bff82639f0bb3e10ec6ae","de584fb280277e63c00cd5fa2c3f0bcfb73e1e21bc649c0530acba7f63f78de5","ce3f7939c0317c703adcc465382181b0ca8f81dfaeceaf23d546ca600f8ce5b5","f7d66ad8b8c2dc1afd84528f04feb85d18f4f98f1d18ec9d4eace61a546f102e","05501b15cfea24b2771b49cd0b22f2798bbcf234485d74981a786f7e5a1748fc","34424207792bae5c0a7a0ab55a3ce23c02ce8821ac776cee8d428c0a7bfd594e","0cabe23306fa31422636ba594ed34bb4a88e7ab11d301df5284faa0544c3a1c5","27ded2aca35542a4a09f8d3a693b067b5065fa947ab2160e60e38995f85155dc","87451be2caf8e2ff68bb1a0e717833eade17e51722f794ddaa9a12d1712d2e7f","1e103dc7088b204e29d4cbd6f06fdb04457a20222cb38edb9679398683d962d4","ce4372e2cd71e7b0046866206c79f017289aef907f25aca105e0bb2a47e4af58","ba7c5abb7a4aafde4cb9f6c6d0d8f40104bb95eea930c67d2e8b9b706c7621d5","553a8a343dc91dc8eac6972338c04f1a25f74c0cf8625460a78807a5f0a4ab44","f751a293408dad0e5db2dce0e145933c247809120686202390d08c4fd34190f6","02bf8212d26ce921fff01ba650cf10e7e8798a09e458e5ff978d87e035b31b14","ca48c69113aea0263d4c53655691a3ac013a94d7eaf1b40addcf0a2deaae37b5","a5d9a1a3e10a466aa66db4c27e52ed9f6356ca04ac5dc1150144519e4ed10d44","4b8e1cecf784a46d18c18c1f2a3635de2c694082946a3b25d9f70063d5d6e0b5","d295ea463f494f86669136ff6c28591c8db2616e5b1ad79f03d9f42212758cb6","09dae15420c131bc6a3ddd8ecdd5be7896fa62ff759e942731ac2ea32e762b34","4db477d4d7ed492862b36c76963ed59b34faffbdb81487b1596c60695d473341","842fdad56070483dfe030511b9be1743a4e1025c544f02c8524b9b2eae7b9576","3db908a469aef5106e9d2568a3a25cc4f3b0f20343525154f424fb7923495abd","a04aeba6a1323e8613f33cb75ad532dacfb47703ef16a2b19132866a38bacfe7","4f14982a91c67b93709de2d2b0acbcc9d96be3e35bb9c3e7254d9d5b4102e748","f911d7e57a38a3d36650257d850b74d07ac66996cc2395aa10e3b9e7fd0436c6","c16bb5cbf34f654b82757e42bb4e26d059220e70de3cecd5efcae7991f57eab5","388f0bae73dfdf424ce68b7cefd94bcf240d5069e287f9aa44ecc4c6158d07d9","30db41256ca755e46170d77d15d3a816573b2172cc2428a0f3d69f2086d1c012","1bd268ad8d4a33a2ff0ec102582851f69ef4425eb5c6817f2b3ebe4e1121fd26","9be9fa2ad677df2fb29f846d1e8a48786a339c45dce3c37aeb99af2fce4a1915","8e817cae6465c48cc7a34bdff73f723df7fb3ab612c82e9e4f310fcd419e8646","63b0adfc785281458279e5856cd200f1ce8fadc19a8d67b7687cce0fdf4ad51f","736042a11a451d682b2ee38cc334f70cd9985b5352004fd59c37d34026249945","afc2aa98e9958a720c80006acbad97d2ff65c29367e1f36611c489a1ee118b22","876f964e4f16edabd41027e4abaa3f8a6aeda0ce19c7d4e67a194557b54b6fab","38eef06fe69bbb915f536282ff7c292c04639e3d576d58a49d1e90ef527196a2","11d332d87547781f488740c22a66e9b9e4082f959048a00f02d582ddc4f12860","5869a53a27e1f7fa879fb805a30f101671bff660f669ae17217667c846f0d149","0b7d45d2bb8b3447b31c358e3f3550e0314f75fc76f67d4e5f3c4c84c8749ef3","221fd528946354d830e771ed9d4f7c6bbc5b532a4e1fbe8051ae2666d0847c1f","7f045b82df5f431f837390c22a2c35658959713bd12599806257727cbcdcbf1c","a019dfd1c3dd9c05e92099f9e544a0e63a08df0039b061ea842995837080d080","9e52d6fc2217c394a41eec5ca3fa42190bd9be1a2cf863f7e065a13ad581015b","d84acd47fce20eb719b2375094e2bd222fb8eb50a876cc72753625e98777c859","d262815cc9e0bc51a685aa8ec6f56c9a7a7bf5ac024208a9728a0987ad8bfe0e","13261e6804d7e8070708d36ea504aaf37e1d46c89776d607e94541c110e7a3d6","debe6ab96531c19b627feae9b975a132a4cdeaad58188f34550f7821942cdb1c","a9dbc621de1b4661d1beeb586ea7c415d485d04022ad44bdfe00e41124d22c41","70c0c12691b22f5c7c4c09bb574887bfc77142fe9fcf6b1affc088bdb1fc480f","f7a4d387ad7fc9dca7a2197dbe5d7e5435a9c051589d4cf55930f271131e6817","06aa6da5d72e34291e11e03a994be8e4fd2d6da908cafc160c8f8b3111a3bfe4","84a7c5a51285da53bc0e548850adbe4c4a48e2c79d142f420e70c724cda08abb","02f942620720d49d6b84b7b58514fa87a905eeca44e57a281813726548c8e709","aec5846e3da757ec64a2f1cd2d00a9abb16016c4731be01d0f22f9a0095b3ce0","7a8c4ebdbc2a4b8fa750a434907f65c1ef172d0a8ce06796b987ed661015782d","a4b7d3fa206dd9ba8be67de430764a665947082b07f029672a440d2f0dfcdc35","fc62ec250788c4b03d7af3a3c1d0499eebfbe38867dfbb4b738d51f33578a2d7","5829a3088359b8d6af30e786c0d3e28ee9e15e23281bb4fb8d07513a2bbd98fd","bf338a71abf1293386086a8f6b3a57e3dcc76f7d63ecd808eba7ea00d5edd286","08bcc1f8fee417f45a074cf822d1d0848d37bd8f52dbbe336e2e5619aca50647","ccab2caf5c037e1d4522246c0a87675a7aeb1aa9fc23bee76b1dc135bba2104b","a607147d53272b43503684a14891610ff15197d85eb39feb386d0dc66e991acb","0f3d70da43d7579832b931a9675c86156be54dbd467f47bfeaa5e591d349c768","9268108f1f2def6b335388a4f34bd184cd8b4854e0a54ab85de565f55f81be12","19bc8e14e1ffae7a8147662b9b1eeac79c4037c8447651b182e6a6dfda63bf7f","921938780b87d72d17a00fc61f80516c723a4daa73015d2949ef420e085a918a","9874e153efdf24175131ff8e678db6956525f75a6d95168398ace5e25655225d","69df59c5d86d78e387eac890b5f8c7ab7b5b68962cd7ff5b77e1fe97b6342f04","a2fcb274aa68c2237edb520cd3a54bff2203f237fa2bd8326d8620c35a0e8bee","d83263a1abb74bfed4c2748a8e181e97e710d532104f5ba8a6458be5c9ded464","6ed8b3b00b53a43db74041c6d3637f8eea508a324419d5d745f9335dd218d568","bfd7174d5a4de03ce64db5ba26fee050efa0c43d906452c0e3c5f750dc8c6998","423268a14f8cd112c3746ec5528f2a425adec9f0abc45e525aae9d54b378762d","f88e5b1376d2eccf8399f8005d921ea1b13f049bcecdc31b3752311950f03c42","cb47de952fc15ce96880d0c30e10a72073022bec8307b1230c2f303cd6622239","c879b7a8573bfe6f75e7fd29445af276bca450ce56e7b48172f88efaa442cf40","4a99a48d6990223a6eeb811c17ef17204febc6d4fba394f286c5aea21caf43eb","82a86282f0a951afab5b509da77fba3006e986a075bd64d1d06db26fd635f220","4b3c32870abd10e454744a4bee8475ce654991ce4aa9287928a17491aa38a6a2","9bceb2c3a158f54b2398841d02f7a7a31df940cb90322b43bd211fb2020b145d","7d3287e8968cbd4fb1047dbfa61e8d5539c0cdbbc5f5802cf6ee1f11708930b2","636c9f06df5f7ecc1847a98d2963a09e9460f4552dc8c203f447af8ff7d060ec","b014d7af72076a3bfd5d9a710623ae6ecbb55b4c069bcc23c41cc219c57b14ca","a64ec866138d2dae51ef6b94bf2b352d2acb383aedcf5976dc36389e27b0aa3a","882cc90ef2a309b77a60dcce6cab81328499bb47587dce292b38d3519c6c8394","02e3010879d3018585a9ff2e963af8e3f5caca993c532c2220eeb1b45a11cfe9","d0c23cc4f54db1bb6bf7dde080c56c7a2abc3310518cdf8e884b4904ab1bf5b4","c159d276c7a7debf45d949ad448d6dc93445a926cd8eb76d48aceb7773d344ef","ffbebd238e0dbeb7da6a4478e7a0ce4bbda5f789e134fe49b4fd1e6d18d3ab7e","5289392088136105e55d7c489d2280c4583f8f7281b77eed3746b2609eddcd5a","33be7a3da4878aeb17da49c0bf374b8c0a8e7926a23cfea292316a7a2ccda4a6","5bd637837ef59a145b3c4912a23bbced04fc22a756e9d6f60cdb9d15be9d9c1d","cfd0d1e4d035baf9efb522a57dd49de10c257dca36353792bcbf055e29c8bc47","99597e0fdde015c3a4b83d9c4fd34b9709fb1b3f598cc3a7dbe34dbd8c7ca96d","02860d062cbee8d613ee767bc3dd07a71ef7e2017effc0a4dc305b1e41f9cbf2","bd73aaccea2ab75aa47e87a5f5e43abaebbf72ed00d9339f093298e3129c9b3f","a4534dbe0bd2abe2eb7527ae1fd990e8e404163f48fe675b794debbe7c63c461","9f33ad4e5d5a6bfb1a126a78462447c3a8993d6ba5b97695a5549662db39b733","2250c0bb781af780c38e7e7b0b5a96a7c9d06c8cf0221b4b1847cbf5ff7a463c","52beb91f2335f3e62766682cf73c0edd070d729ca17e7949f04d7ec8e7408f05","f09e1c1ab3686f4eb0dfdf036ddc6871b74df080fc69f24cecb2cc8d3973e147","b4c7966b8c8f647f1c2adfcb93cac25880260fca8ededd33d2e648a6f4a09fe0","e67709ede217673ecf53c24436c1675df7e738c2d43570973d7b18bb2ecfdece","8ef4432db0d8380322d4ea1cb49cfc0be1257dd1ef102f653a8ce5ab6ea1b4e2","4b7d8d8c756bdd8ffda46d2522a4b8e28660e90d8fd375b2e534d33fcefd18fe","c8b19b7a6357ddfce5f2e75a5c4e8abeb752f595b96a1034a4ae053965d6c4bb","fc702e18a35f9968c62a516510157e056e1fc6340483844e9dd79e1c8c5b373d","cfdae246948113b1114fc6803a33060fac4b5dd22f047ec5969d5685fa952bab","9dedb414c09e12a98163b346878d8c57b3df0ec44662cf47638e385b65a8b279","e3050b97a2b2370c6555e17d5c5c23720ff6d5cf8811c64064cca99ae1e88323","27d5bdd0dd73211f69b539a64d3e7564f4b8bc9df431e44477fdff71e4724979","af92248075f2070f44f9817120e7a1b7ca621d66bed2a69a69715d147cf125b2","bc5cdc8597ba4548b91cdd2ddddd996f5441acf76192fae49ad78dd91d162d9f","8b157465e164c37d7f50b032657029a9440027bacb63e0a0422c5903e9009555","90823973681cd3bf25e61792de6d4867a506d0b1c0cc1be63d3417e3e2c817ca","3a57cdf3165e34e394a9510116433248ce234cbac86115e4cc3f61205db4d1ed","5ba05a9e9155e96bc4b9aeaf3ed99bde4284adfcbaf666152eebd596a2d5cbad","25120cc5b77f87056bb13b0c01a05168d6485323d5972feca20cea124a4f618f",{"version":"397fe1ca4ecca584df1b191b80066313ba83e2120c8c6662511d1ae61c28a7eb","affectsGlobalScope":true},{"version":"fd45f5d7408b4ade5b812478e612b59801d371e4b8e467cf1b1aca46acd1564a","affectsGlobalScope":true},{"version":"b9241ecb5024beeaeb98fb558000dbc55e650576e572d194508f52807af6bcba","affectsGlobalScope":true},"3039ca5b4c980b09439c8b8962ea05552573fd995304d31957d47e01a6bca5ab","2e5ac0dd461b94010e16057c26d281841e3a935df927d76123b6864880086a26","b911176e7778c30f6549f86daae0353c53730eb0ee59b6476f1072cb51ab1af3","f8cc7ac396a3ea99a6959ddbaf883388260e035721216e5971af17db61f11f0b","895bedc6daf4f0da611480f24f65df818ea9e01404e4bf5927043dbf4eeed4d1","ea4facc7918e50e285a4419f7bc7ffdf978385899a3cf19ef7d7b782b896616d","8db893a4613484d4036337ffea6a5b675624518ad34597a8df255379802001ab","5828081db18ff2832ce9c56cc87f192bcc4df6378a03318775a40a775a824623","33b7db19877cf2f9306524371fcfc45dcb6436c8e905472ede7346c9f044bf20","b8eb76852bc6e72782541a2725580b1c3df02a0c96db570b0a7681567aeed598","6a7b38162c0cff2af6d2cbd4a98cfac6c0ea4fb1b5700c42f648de9b8c2e8e1f","19828d5df3be9b94598e5c25d783b936fcccaa226a2820bacee9ea94dc8aff2f","5d45955831c840d09b502ce6726a06435866b4736978e235a7d817ed45990df7","3bdf7ca46ef934ee671b3dd0e3d4cddcaecfe6146811b330743acdfb8e60f36c","70dab20ce12f8d153044fc487f2bfd40d21fc64329446f02c6a94b9759c13265","c1eed15acf77bbaa4a4840edbdcf70ff2f3c2a0f5af498578ce020e2f2c73f7f","71943244e9813364dac70c5be97fdce7bc775c96bb212d97a60ba072344dcbbc","6f1fa6fc9b169b165be0d8550a3ca0b5181af0c41e4e1e15f5e6bcb2a6e1c344","e311e90ded1cd037cbece1bc6649eaa7b65f4346c94ae81ba5441a8f9df93fa3","8eb08fff3569e1b9eddb72e9541a21e9a88b0c069945e8618e9bc75074048249","d596c650714d80a93a2fe15dce31ed9a77c2f2b1b9f4540684eaf271f05e2691","8f9fb9a9d72997c334ca96106095da778555f81ac31f1d2a9534d187b94e8bf6","aea632713de6ee4a86e99873486c807d3104c2bf704acef8d9c2567d0d073301","1adb14a91196aa7104b1f3d108533771182dc7aaea5d636921bc0f812cfee5f5","8d90bb23d4e2a4708dbf507b721c1a63f3abd12d836e22e418011a5f37767665","8cb0d02bb611ea5e97884deb11d6177eb919f52703f0e8060d4f190c97bb3f6c","78880fa8d163b58c156843fda943cc029c80fac5fb769724125db8e884dce32d","7856bc6f351d5439a07d4b23950aa060ea972fd98cbc5add0ad94bfc815f4c4c","ce379fb42f8ba7812c2cb88b5a4d2d94c5c75f31c31e25d10073e38b8758bd62","9d3db8aef76e0766621b93a1144069623346b9cfccf538b67859141a9793d16d","13fb62b7b7affaf711211d4e0c57e9e29d87165561971cc55cda29e7f765c44f","8868c445f34ee81895103fd83307eadbe213cfb53bbc5cd0e7f063e4214c49b0","277990f7c3f5cbbf2abd201df1d68b0001ff6f024d75ca874d55c2c58dd6e179","a31dfa9913def0386f7b538677c519094e4db7ce12db36d4d80a89891ef1a48f","f4c0c7ee2e447f369b8768deed1e4dd40b338f7af33b6cc15c77c44ff68f572d","2f268bd768d2b35871af601db7f640c9e6a7a2364de2fd83177158e0f7b454dc","73bfa99afd564cfef641ccb4fdef0debdb3c49f0a817085d68fc6b6508266f09","a004a3b60f23fcfb36d04221b4bef155e11fd57293ba4f1c020a220fadf0fc85","4e145e72e5600a49fa27282d63bb9715b19343d8826f91be0f324af73bc25322","62f734f7517d2ca3bf02abddaf8abf7e3de258667a63e8258373658bbb9153b6","df99236666c99f3e5c22c886fc4dba8156fed038057f7f56c4c39a0c363cc66a","b4bce232891b663cc0768f737f595a83de80b74671db22b137570ef2dc6b86ef","781b566c3eccba1a2cafbb827fb6fc02d5147c89a40e11c7892057481a195270","c9befaf90879c27ee3f7f12afd15b4531fbbea9ec37d145b83807a67d9f55c82","8630f26d1038328e6b9da9c082f6fa911903bc638499baa6cfab002b5a70af96","73474d70a9b4f02771119085c4cd7562be4169e7973544c9541341ca2931aa3d","54da497c3b3b94fae91a66ed222e21411dc595a17f9e6bd229e233d0de732691","803da2f4e024efa2edc55c67d35c5240e7ae599baf9263b453acd02127a582e9","b8b070df71250096699ad55a106d161d403347ed335f72c5ae8485e5d858524d","a9716557f56781aef13d6d3c5dafc61236f64bfd48d462c4848a7eca25f924ff","3d15b5e24065431bf7831b8e84000c0e767d921135af86ef0b0c034f14df5d8f","a563202fc316d8926dc83759cec155d5c028a7828996cbd283470ac7e8c58727","e5c004f39619ebaaa2475b18e949e12e51ff629132f48d56608081e5f0195577","e6b7a14eb53f023f455f4513b6a560f004fa1ebf6cc298b479be796541e322e6","771bf8091a4e40be8f539648b5a0ff7ecba8f46e72fc16acc10466c4c1304524","cb66d1c49ad20e7246b73671f59acaaaac72c58b7e37faae69ae366fd6adf1d3","e5c1c52655dc3f8400a3406fd9da0c4888e6b28c29de33bee51f9eaeda290b4d","1e28ee6d718080b750621e18befe236487df6685b37c17958520aaf777b7aeff","8891345dbe1920b9ed3f446a87de27b5cd6b2053112f6ff3975a661f9a03ec34","a72e21b05b937630b97b1d36bb76b879bb243a021516aef10701775f2da7f872","4debe398f42800c1359d60396fc76aa4fa34a23a96b597672b5c284fd81c0158","a720d8028d38f2b94855967789252c6148957dcd24e280d193b78db00eb3a099","1b0818297187a33e2c24c39145b409e11624523d32364edc22bceaf1f4c86f1b","332e362ba8bd05237c661ba685b2c37e9cde5e0876cb81bf515d15623bdee74c","84648722d2b1f16c55cb68dbfaf18b913a13a78274641f7236eeb4d7088f6db8","f63d313c2673117608b3ed762ac07f618ee873bee3764406b06bcfcb5a713afe","2e2a2a0f7ef2a7587cfe40a96dbca31e8badb15a8a42bf042fe7a63abc9e2f27","2bb32fb3f0fe14c48170dcad3d2a501c1883516d4da9cbd0a2043d90c9789a7b","352532af4d27bdf545d9bb20f0c55758138327404bd86f0934edc7ded76be7e6","64d93f4a24f8a70b64658a7d9b9e96bd46ad498ad5dc9cdb9d52da547e77ff68","8a728de3047a1dadcb69595e74c3d75bc80a2c8165f8cf875ab610042a137fbe","3eafed0be4b194295bcde379e7d083779d0f27f31b715738a3beac49547dc613","7e74740cb7a937af187118ae4582fbe5d4d30b34e9cddec2bd7f7a865e7824ca","8cdf90b59995b9f7c728a28e7af5dc4431f08f3346e6c16af49f548461a3e0aa","1d472b3eedeeaab5418ea6563734fffc68c404feac91900633e7126bee346590","6cf7182d798892394143549a7b27ed27f7bcf1bf058535ec21cc03f39904bfb3","abe524377702be43d1600db4a5a940da5c68949e7ac034c4092851c235c38803","daf4418239ceadb20481bff0111fe102ee0f6f40daaa4ee1fdaca6d582906a26","8a5c5bc61338c6f2476eb98799459fd8c0c7a0fc20cbcd559bb016021da98111","644cf9d778fa319c8044aed7eeb05a3adb81a1a5b8372fdc9980fbdd6a61f78e","d2c6adc44948dbfdece6673941547b0454748e2846bb1bcba900ee06f782b01d","d80b7e2287ee54b23fe6698cb4e09b1dabc8e1a90fb368e301ac6fbc9ad412e2","60b678d3c92834151ca6701c399c74c961193c06cc9d97da32cc4ad22ee5951e",{"version":"c7eebbc98b3e28df60899db055f0b1940295e6c68173e1859b97c062e02e00cf","affectsGlobalScope":true},"816f825b072afd246eb3905cf51528d65e6fe51c12a1f8fb370c93bb0e031c9b","f6a64974d6fab49d27f8b31578a08662b9a7f607de3b5ec2d7c45b3466d914fd","a8e9d24cd3dc3bd95b34eb6edeac7525b7fdbe23b373554bdc3e91572b8079ee","1d5fd841722ce9aa05b9d602153c15914108bdaa8154bdd24eddadb8a3df586c","14788c10b66324b98feee7a2567eb30d1066e11506e54bf1215b369d70da4932","316785de2c0af9fbd9f2191904670e880bc3836671dd306236675515e481973a","070d805e34c4b9a7ce184aabb7da77dc60f2bdb662349cf7fc23a2a69d17de8d","092deae5b432b6b04f8b4951f1478c08862e832abd4477315dba6ea0c39f1d9e","27d668b912bf3fd0a4ddf3886a8b405eed97505fdc78a9f0b708f38e3e51655d","72654e8bed98873e19827d9a661b419dfd695dbc89fd2bb20f7609e3d16ebd50","66bdb366b92004ba3bf97df0502b68010f244174ee27f8c344d0f62cb2ac8f1e","ae41e04ff8c248ab719fe7958754e8d517add8f1c7abcc8d50214fd67c14194d","558008ff2f788e594beaa626dfcfb8d65db138f0236b2295a6140e80f7abd5d2",{"version":"6573e49f0f35a2fd56fd0bb27e8d949834b98a9298473f45e947553447dd3158","affectsGlobalScope":true},{"version":"e04ea44fae6ce4dc40d15b76c9a96c846425fff7cc11abce7a00b6b7367cbf65","affectsGlobalScope":true},{"version":"7526edb97536a6bba861f8c28f4d3ddd68ddd36b474ee6f4a4d3e7531211c25d","affectsGlobalScope":true},"3c499fc4aad3185e54006bdb0bd853f7dd780c61e805ab4a01a704fa40a3f778",{"version":"13f46aaf5530eb680aeebb990d0efc9b8be6e8de3b0e8e7e0419a4962c01ac55","affectsGlobalScope":true},"17477b7b77632178ce46a2fce7c66f4f0a117aa6ef8f4d4d92d3368c729403c9",{"version":"700d5c16f91eb843726008060aebf1a79902bd89bf6c032173ad8e59504bc7ea","affectsGlobalScope":true},"169c322c713a62556aedbf3f1c3c5cf91c84ce57846a4f3b5de53f245149ec7b",{"version":"b0b314030907c0badf21a107290223e97fe114f11d5e1deceea6f16cabd53745","affectsGlobalScope":true},"7c6c5a958a0425679b5068a8f0cc8951b42eb0571fee5d6187855a17fa03d08a",{"version":"f659d54aa3496515d87ff35cd8205d160ca9d5a6eaf2965e69c4df2fa7270c2c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"4a4d7982941daaeb02f730f07578bce156d2c7cabfa184099321ed8b1e51591b",{"version":"cc8e57cfe18cd11c3bab5157ec583cfe5d75eefefe4b9682e54b0055bf86159f","affectsGlobalScope":true},"75f6112942f6aba10b3e2de5371ec8d40a9ab9ab05c8eb8f98a7e8e9f220c8a2",{"version":"8a3b75fccc93851209da864abe53d968629fab3125981b6f47008ec63061eb39","affectsGlobalScope":true},"4aafdcfff990abfe7feb894446ab43d2268657084ba656222e9b873d2845fe3c",{"version":"d6f55de9010fbefe991546d35da3f09ae0e47afae754cb8a4c867fd7e50dcec0","affectsGlobalScope":true},"afac637a8547d41243dd8c4824c202c9d024534c5031181a81dece1281f1e261",{"version":"1ce2f82236ecdd61ff4e476c96d83ce37d9f2a80601a627fe1d3048e8648f43c","affectsGlobalScope":true},"42d908b851ddcf6df729c0a2ae56f151bad6610ea368729d68f0c8fbbd779913",{"version":"592e99b73ae40c0e64ce44b3e28cea3d7149864f2f3cbc6ccb71f784373ade97","affectsGlobalScope":true},"fa601c3ce9e69927d13e178fdcb6b70a489bb20c5ca1459add96e652dbdefcf6",{"version":"8f8ebce0e991de85323524170fad48f0f29e473b6dd0166118e2c2c3ba52f9d6","affectsGlobalScope":true},"e58a369a59a067b5ee3990d7e7ed6e2ce846d82133fb5c62503b8c86427421a4",{"version":"f877e78f5304ec3e183666aab8d5a1c42c3a617ff616d27e88cc6e0307641beb","affectsGlobalScope":true},"82a66c8db63050ce22777862d6dc095b5e74f80f56e3a2631870d7ee8d104c9e",{"version":"4fc0006f46461bb20aac98aed6c0263c1836ef5e1bbf1ca268db4258ed6a965e","affectsGlobalScope":true},"e086e212ddb5de48f83d971e892949a9ed5ada7134b3116f17768b6885bce6f3",{"version":"867954bf7772a2979c5c722ef216e432d0d8442e995e6018e89a159e08d5d183","affectsGlobalScope":true},"6cc643a497641f28562d8a24b3bd6c4252f3476b462ea406f3123ae70be343ce",{"version":"cd8a7e7d61af5ca34b39095ab24bdcb308bfd4ab379df8ef9d53ce9fa83187a8","affectsGlobalScope":true},"9e837aadb58587a9f79d1ba6a1625cfe40e4077c6bc89cd1c1d5886a2d2489cc",{"version":"544f8c58d5e1b386997f5ae49c6a0453b10bd9c7034c5de51317c8ac8ea82e9a","affectsGlobalScope":true},"2382c18dddfe93b455dfaccc5e6ad795cc33ba8a6a72de41622ef03dd27e377f",{"version":"ae9b62dd72bf086ccc808ba2e0d626d7d086281328fc2cf47030fd48b5eb7b16","affectsGlobalScope":true},"b03e600a48c41adfad25cda292a2bcd87963f7fce09f3561978482f9f6530fc4",{"version":"cc1bddca46e3993a368c85e6a3a37f143320b1c13e5bfe198186d7ed21205606","affectsGlobalScope":true},"34cb99d3f4d6e60c5776445e927c460158639eeb8fd480e181943e93685e1166",{"version":"c77843976650a6b19c00ed2ede800f57517b3895b2437d01efc623f576ef1473","affectsGlobalScope":true},"c8db20febc70a33fc8668c2f6475c42be345a0545f6bd719f787b62e60d8f49e",{"version":"5ebba285fdef0037c21fcbef6caad0e6cc9a36550a33b59f55f2d8d5746fc9b2","affectsGlobalScope":true},"85397e8169bdc706449ae59a849719349ecef1e26eef3e651a54bb2cc5ba8d65",{"version":"2b8dc33e6e5b898a5bca6ae330cd29307f718dca241f6a2789785a0ddfaa0895","affectsGlobalScope":true},"cc2c766993dfe7a58134ab3cacd2ef900ace4dec870d7b3805bf06c2a68928bd",{"version":"dde8acfb7dd736b0d71c8657f1be28325fea52b48f8bdb7a03c700347a0e3504","affectsGlobalScope":true},"96c711d561eaa29cec567f90571ea515f91412bb005ac2a4538bcadf0e439fa5",{"version":"34c9c31b78d5b5ef568a565e11232decf3134f772325e7cd0e2128d0144ff1e5","affectsGlobalScope":true},"7e72ce64e021f6f43c8743682a3c7cf2035166f8283ca675a4589e1bd8a63e55",{"version":"60cc5b4f0a18127b33f8202d0d0fde56bc5699f4da1764b62ed770da2d5d44f1","affectsGlobalScope":true},"5da9bade8fea62743220d554e24489ea6aa46596e94e67cfff19b95804a54a5f",{"version":"d11fa2d42f762954eb4a07a0ab16b0a46aa6faf7b239f6cd1a8f5a38cb08edcd","affectsGlobalScope":true},"87daa4e406afddcea17302b85e08a2de9444fe561347cd1572ffa671c0171552",{"version":"781afd67249e2733eb65511694e19cdcdb3af496e5d8cdee0a80eba63557ff6e","affectsGlobalScope":true},"6b32428a82779c0a33356f537ec131882935bc76ad0371722618a9ac6403cca0",{"version":"f3275e1f0e5852b1a50fd3669f6ad8e6e04db94693bcfb97d31851e63f8e301e","affectsGlobalScope":true},"de82ff7892200413e9e0c54b038d87099de9d74a9e815b3cb6e9908f950f6ccd",{"version":"8a6ecff784dafbdb121906a61009670121882523b646338196099d4f3b5761d8","affectsGlobalScope":true},"1d5f5827fdeb0d59f76a1ee6caf0804d5d3c260e60e465b0b62baea333199e62",{"version":"256bdff4c082d9f4e2303138f64c152c6bd7b9dbca3be565095b3f3d51e2ab36","affectsGlobalScope":true},"0b14c87ea4887402356f7c8b321dfd944880ae76cd703e342c57ac7a83de4465",{"version":"e214a2a7769955cd4d4c29b74044036e4af6dca4ab9aaa2ed69286fcdf5d23b3","affectsGlobalScope":true},"85647ff695641f7f2fdf511385d441fec76ee47b2ed3edb338f3d6701bf86059",{"version":"25659b24ac2917dbfcbb61577d73077d819bd235e3e7112c76a16de8818c5fd6","affectsGlobalScope":true},"d6f83ae805f5842baa481a110e50ca8dbed0b631e0fd197b721de91dd6948d77",{"version":"7402e6ca4224d9c8cdd742afd0b656470ea6a5efe2229644418198715bb4b557","affectsGlobalScope":true},"36b19abb9d0a0e6809f9493786fe73c3058f66f0a5778554b30bd09d6d21d3d8",{"version":"242b00f3d86b322df41ed0bbea60ad286c033ac08d643b71989213403abcdf8a","affectsGlobalScope":true},"009a83d5af0027c9ab394c09b87ba6b4ca88a77aa695814ead6e765ea9c7a7cd",{"version":"4dc6e0aeb511a3538b6d6d13540496f06911941013643d81430075074634a375","affectsGlobalScope":true},"3a9312d5650fcbaf5888d260ac21bc800cc19cc5cc93867877dfeb9bbd53e2ca",{"version":"7ed57d9cb47c621d4ef4d4d11791fec970237884ff9ef7e806be86b2662343e8","affectsGlobalScope":true},"3bee2291e79f793251dcbea6b2692f84891c8c6508d97d89e95e66f26d136d37",{"version":"5bd49ff5317b8099b386eb154d5f72eca807889a354bcee0dc23bdcd8154d224","affectsGlobalScope":true},"1d5156bc15078b5ae9a798c122c436ce40692d0b29d41b4dc5e6452119a76c0e",{"version":"bd449d8024fc6b067af5eac1e0feb830406f244b4c126f2c17e453091d4b1cb3","affectsGlobalScope":true},"b6ce2b60910be81d4f2000ffe0bdbec408d6423196f6ad00db2a467cd53d676b",{"version":"dd5eab3bb4d13ecb8e4fdc930a58bc0dfd4825c5df8d4377524d01c7dc1380c5","affectsGlobalScope":true},"f011eacef91387abfde6dc4c363d7ffa3ce8ffc472bcbaeaba51b789f28bd1ef",{"version":"ceae66bbecbf62f0069b9514fae6da818974efb6a2d1c76ba5f1b58117c7e32e","affectsGlobalScope":true},"4101e45f397e911ce02ba7eceb8df6a8bd12bef625831e32df6af6deaf445350",{"version":"07a772cc9e01a1014a626275025b8af79535011420daa48a8b32bfe44588609c","affectsGlobalScope":true},"6d0790ee42e40b27183db10ce3be3f0e98dc3944d73c9a4c092bf5ec3bb184f7",{"version":"5be6cb715e042708f5ec2375975ba7a855f54d3554cf8970cd49d0434ad5c235","affectsGlobalScope":true},"02fbf1f4aabb776e2cf229fd74840a27eee5a08642b8ca0677e680a8427d6d12",{"version":"4d13cccdda804f10cecab5e99408e4108f5db47c2ad85845c838b8c0d4552e13","affectsGlobalScope":true},"780abc69f1e0ed0a3ed43cfaf201378faf6e8d8ec13354ed7169159cdeead3b9",{"version":"7ced457d6288fcb2fa3b64ddcaba92dbe7c539cc494ad303f64fc0a2ab72157d","affectsGlobalScope":true},"5d2721c49e058b8f28e495a54f709a004571cd3f57a62df63ed3eddb9e860af1",{"version":"0ccde5fc989806345b5ecca397796e26bbbca2882297adea57009022be7a300a","affectsGlobalScope":true},"730592593eaba845555f4d8f602d8c066972c97a3a8522a0c6f8f721e36bdc90",{"version":"725128203f84341790bab6555e2c343db6e1108161f69d7650a96b141a3153be","affectsGlobalScope":true},"e6ed9d8801e5fddc1a4260510e4266fbf80d5767cf2b9a6cbe8d0eb39d45971d",{"version":"947bf6ad14731368d6d6c25d87a9858e7437a183a99f1b67a8f1850f41f8cedd","affectsGlobalScope":true},"8eda6e4644c03f941c57061e33cef31cfde1503caadb095d0eb60704f573adee",{"version":"0538a53133eebb69d3007755def262464317adcf2ce95f1648482a0550ffc854","affectsGlobalScope":true},"a1dd4d1eada136ec8afb47871da02c1a28be6adc81717106ded5fcdd6548835c",{"version":"8d3ccb8e37673a205fb24f1a3ce7bc9237d32be05494c240245e3a783dd8e16d","affectsGlobalScope":true},"92492e2b8992cc1d68eca60f289ce9fa29dda1eb4d12eed577bcdb958666754b",{"version":"d155bad43ed0facccf039f4220d5d07fbafab34d9b1405e30d213d1ab36af590","affectsGlobalScope":true},"4a5259be4d6c85a4cd49745fb1d29d510a4a855e84261ad77d0df8585808292c",{"version":"220f860f55d18691bedf54ba7df667e0f1a7f0eed11485622111478b0ab46517","affectsGlobalScope":true},"3bee701deb7e118ea775daf8355be548d8b87ddf705fe575120a14dcace0468a",{"version":"9c473a989218576ad80b55ea7f75c6a265e20b67872a04acb9fb347a0c48b1a0","affectsGlobalScope":true},"5f666c585bb469b58187b892ed6dfb1ebf4aa84464b8d383b1f6defc0abe5ae0",{"version":"20b41a2f0d37e930d7b52095422bea2090ab08f9b8fcdce269518fd9f8c59a21","affectsGlobalScope":true},"dbac1f0434cde478156c9cbf705a28efca34759c45e618af88eff368dd09721d",{"version":"0f864a43fa6819d8659e94d861cecf2317b43a35af2a344bd552bb3407d7f7ec","affectsGlobalScope":true},"855391e91f3f1d3e5ff0677dbd7354861f33a264dc9bcd6814be9eec3c75dc96",{"version":"ebb2f05e6d17d9c9aa635e2befe083da4be0b8a62e47e7cc7992c20055fac4f0","affectsGlobalScope":true},"aee945b0aace269d555904ab638d1e6c377ce2ad35ab1b6a82f481a26ef84330",{"version":"9fb8ef1b9085ff4d56739d826dc889a75d1fefa08f6081f360bff66ac8dd6c8d","affectsGlobalScope":true},"342fd04a625dc76a10b4dea5ffee92d59e252d968dc99eb49ce9ed07e87a49d0",{"version":"e1425c8355feaaca104f9d816dce78025aa46b81945726fb398b97530eee6b71","affectsGlobalScope":true},"c000363e096f8d47779728ebba1a8e19a5c9ad4c54dbde8729eafc7e75eee8dc",{"version":"42c6b2370c371581bfa91568611dae8d640c5d64939a460c99d311a918729332","affectsGlobalScope":true},"590155b280f2902ebb42a991e9f4817ddf6558e5eb197deb3a693f5e0fc79bd9",{"version":"867b000c7a948de02761982c138124ad05344d5f8cb5a7bf087e45f60ff38e7c","affectsGlobalScope":true},"6f1d28967ec27ef5d244770ac80a62b66f10439aea63ed52e0604a18aad6468c",{"version":"02c22afdab9f51039e120327499536ac95e56803ceb6db68e55ad8751d25f599","affectsGlobalScope":true},"aba5fbfef4b20028806dac5702f876b902a6ba04e3c5b79760b62fc268c1bc80",{"version":"37129ad43dd9666177894b0f3ce63bba752dc3577a916aa7fe2baa105f863de3","affectsGlobalScope":true},"68526c897cd9e129d21f982679011d64068eac52cc437fce5e48bc78670356f3",{"version":"31f709dc6793c847f5768128e46c00813c8270f7efdb2a67b19edceb0d11f353","affectsGlobalScope":true},"eee3c05152eff43e7a9555abbef7d8710bfdb404511432599e8ac63ae761c46c",{"version":"018847821d07559c56b0709a12e6ffaa0d93170e73c60ee9f108211d8a71ec97","affectsGlobalScope":true},"b50322892db37ef61b48411c989f4cd36b3f41205ad10e7c03f14afade571256",{"version":"7832e8fe1841bee70f9a5c04943c5af1b1d4040ac6ff43472aeb1d43c692a957","affectsGlobalScope":true},"9f2282aa955832e76be86172346dc00c903ea14daf99dd273e3ec562d9a90882",{"version":"013853836ed002be194bc921b75e49246d15c44f72e9409273d4f78f2053fc8f","affectsGlobalScope":true},"0e9a7364eaf09801cbb8cf0118441d5f7f011fc0060c60191587526c448974c4",{"version":"e08392a815b5a4a729d5f8628e3ed0d2402f83ed76b20c1bf551d454f59d3d16","affectsGlobalScope":true},"6a7f172fb4524b4091b793d0e2cccdb365876dcf7f056552a93fbf6c2c1d64d9",{"version":"c3dfd6032ba0bc68520b99fc40cb45f46c73f4c98dedcde79b181f1f0632c262","affectsGlobalScope":true},"261f0f336c13435274021ab058138312b2443bd61723de6acbc4e57a8cecf349",{"version":"5768572c8e94e5e604730716ac9ffe4e6abecbc6720930f067f5b799538f7991","affectsGlobalScope":true},"198075277aef627743ef66a469881addbbf2f6c4c508ffb4c96de94137ca8563",{"version":"e2ae8c8fcfb98fae10647c9159915deea2073bdfcc3fe99b5846fd9563867399","affectsGlobalScope":true},"d0984177c1dc95545541f477fb0df1fb76e7454a943c98ed208dc0da2ff096b2",{"version":"f366ca25885ab7c99fc71a54843420be31df1469f8556c37d24f72e4037cb601","affectsGlobalScope":true},"a05b412a93ba43d2d6e9c81718dea87a42c7e4f9e8b1efbaafee03a94eaf4b7a",{"version":"163cc945edad3584b23de3879dbad7b538d4de3a6c51cc28ae4115caee70ce21","affectsGlobalScope":true},"4fefff4da619ba238fccd45484e9ee84ee1ae89152eac9e64d0f1e871911121c",{"version":"d604893d4e88daade0087033797bbafc2916c66a6908da92e37c67f0bad608db","affectsGlobalScope":true},"56ce2cd3aa0ebbcf161faed36a9d119e5ff6f962993f1af29b826eff1801bad3",{"version":"dc265f24d2ddad98f081eb76d1a25acfb29e18f569899b75f40b99865a5d9e3b","affectsGlobalScope":true},"7c1538394a43ce6d7b7c471b87cc97c487bc3bff37fdd2fc5f659c67445a3a03",{"version":"dd7f9be1c6c69fbf3304bc0ae81584e6cd17ab6ad4ab69cb8b06f541318cc97e","affectsGlobalScope":true},"f528ce3ce9430376705b10ee52296d36b83871b2b39a8ae3ecec542fc4361928",{"version":"41ffc155348dd4993bc58ee901923f5ade9f44bc3b4d5da14012a8ded17c0edd","affectsGlobalScope":true},"580eedb87f9ed40ff5fc619507e47c984a1e3fbf2fee8f5eecbe98806997d0ee",{"version":"3e8e0655ed5a570a77ea9c46df87eeca341eed30a19d111070cf6b55512694e8","affectsGlobalScope":true},"c1b3019eeb7120da76e837268ac26beea8dc0aa8d6108e286e9cfa9478af562b","6bb6fda2bba279010a8ffb5221fd28aed12d3d37ebc396a6e0f02840adb17970",{"version":"cc4c74d1c56e83aa22e2933bfabd9b0f9222aadc4b939c11f330c1ed6d6a52ca","affectsGlobalScope":true},"b0672e739a3d2875447236285ec9b3693a85f19d2f5017529e3692a3b158803d",{"version":"8a2e0eab2b49688f0a67d4da942f8fd4c208776631ba3f583f1b2de9dfebbe6c","affectsGlobalScope":true},"229648df48b149ecb40a267e69899456c28dbe4b31e64513be64eb2b58e29f1c",{"version":"f6266ada92f0c4e677eb3fbf88039a8779327370f499690bf9720d6f7ad5f199","affectsGlobalScope":true},"ab149c81ee4c7bb5fd0abea1057389185e334d5038c4c8739faa65ec5feb6ffc",{"version":"fb6cb8911a03c7ac61ee80aafdc072623850dd6a6d9fa0c98b015d8b181153a5","affectsGlobalScope":true},"8946ad9bc3d5c42cdb07de081480d869e358f5986166649a9e4230bea2ea84bd",{"version":"09a227ec52ef63acca2a3a1f31ca6d3affa45b51e18ffdf0036152d5f102dfd7","affectsGlobalScope":true},"c03bcada0b059d1f0e83cabf6e8ca6ba0bfe3dece1641e9f80b29b8f6c9bcede",{"version":"f2eac49e9caa2240956e525024bf37132eae37ac50e66f6c9f3d6294a54c654c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"a0ad84c717107c133f77f15b344d62633863931d4b3592de20c232ded129c50b",{"version":"7373a173ea1b42648b1779267a5a707eb403ccc31a16761870dbf0660eb234ee","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"ace629691abf97429c0afef8112cc0c070189ff2d12caee88e8913bdd2aaad25",{"version":"99a71914dd3eb5d2f037f80c3e13ba3caff0c3247d89a3f61a7493663c41b7ea","affectsGlobalScope":true},"25a12a35aeee9c92a4d7516c6197037fc98eee0c7f1d4c53ef8180ffc82cb476",{"version":"b4646ac5ca017c2bb22a1120b4506855f1cef649979bf5a25edbead95a8ea866","affectsGlobalScope":true},"54d94aeec7e46e1dab62270c203f7907ca62e4aaa48c6cdcfed81d0cd4da08f3",{"version":"f9585ff1e49e800c03414267219537635369fe9d0886a84b88a905d4bcfff998","affectsGlobalScope":true},"483d29eb2d4b6c4d486f67b682a5d0ca2d4d452e09e6d43eee0f5ef0f4950aee","eaf540a66adaf590521596a4de7d2f86644aae59b5ef449b26d4b00ccfc13ba5",{"version":"1ff9449d1efdebef55b0ba13fe7f04b697c264e73ec05f41f7633dd057468b2d","affectsGlobalScope":true},"79792358436829ae510866561a6c62e37472108ae7a1836ba2b7136eba000bda",{"version":"7c160037704eee2460c7de4a60f3379da37180db9a196071290137286542b956","affectsGlobalScope":true},"87bdcea89ec013888b0fdb1694ce0cb4b8bf6b9f03f90429cbb4e00b510f838d",{"version":"4681d15a4d7642278bf103db7cd45cc5fe0e8bde5ea0d2be4d5948186a9f4851","affectsGlobalScope":true},"91eb719bcc811a5fb6af041cb0364ac0993591b5bf2f45580b4bb55ddfec41e2","05d7cf6a50e4262ca228218029301e1cdc4770633440293e06a822cb3b0ef923",{"version":"78402a74c2c1fc42b4d1ffbad45f2041327af5929222a264c44be2e23f26b76a","affectsGlobalScope":true},"cc93c43bc9895982441107582b3ecf8ab24a51d624c844a8c7333d2590c929e2",{"version":"c5d44fe7fb9b8f715327414c83fa0d335f703d3fe9f1045a047141bfd113caec","affectsGlobalScope":true},"f8b42b35100812c99430f7b8ce848cb630c33e35cc10db082e85c808c1757554",{"version":"ba28f83668cca1ad073188b0c2d86843f9e34f24c5279f2f7ba182ff051370a4","affectsGlobalScope":true},"349b276c58b9442936b049d5495e087aef7573ad9923d74c4fbb5690c2f42a2e",{"version":"ad8c67f8ddd4c3fcd5f3d90c3612f02b3e9479acafab240b651369292bb2b87a","affectsGlobalScope":true},"1954f24747d14471a5b42bd2ad022c563813a45a7d40ba172fc2e89f465503e2",{"version":"05bbb3d4f0f6ca8774de1a1cc8ba1267fffcc0dd4e9fc3c3478ee2f05824d75d","affectsGlobalScope":true},"37e69b0edd29cbe19be0685d44b180f7baf0bd74239f9ac42940f8a73f267e36",{"version":"afba2e7ffca47f1d37670963b0481eb35983a6e7d043c321b3cfa2723cab93c9","affectsGlobalScope":true},"bb146d5c2867f91eea113d7c91579da67d7d1e7e03eb48261fdbb0dfb0c04d36",{"version":"90b95d16bd0207bb5f6fedf65e5f6dba5a11910ce5b9ffc3955a902e5a8a8bd5","affectsGlobalScope":true},"3698fee6ae409b528a07581f542d5d69e588892f577e9ccdb32a4101e816e435",{"version":"26fc7c5e17d3bcc56ed060c8fb46c6afde9bc8b9dbf24f1c6bdfecca2228dac8","affectsGlobalScope":true},"46fd8192176411dac41055bdb1fdad11cfe58cdce62ccd68acff09391028d23f",{"version":"22791df15401d21a4d62fc958f3683e5edc9b5b727530c5475b766b363d87452","affectsGlobalScope":true},"150ac8ae1c4500f57f2af6e491717a8858a40619063164b1ad746d6a9ef30207","cefffd616954d7b8f99cba34f7b28e832a1712b4e05ac568812345d9ce779540",{"version":"a365952b62dfc98d143e8b12f6dcc848588c4a3a98a0ae5bf17cbd49ceb39791","affectsGlobalScope":true},"af0b1194c18e39526067d571da465fea6db530bca633d7f4b105c3953c7ee807",{"version":"b58e47c6ff296797df7cec7d3f64adef335e969e91d5643a427bf922218ce4ca","affectsGlobalScope":true},"76cbd2a57dc22777438abd25e19005b0c04e4c070adca8bbc54b2e0d038b9e79","4aaf6fd05956c617cc5083b7636da3c559e1062b1cadba1055882e037f57e94c","171ad16fb81daf3fd71d8637a9a1db19b8e97107922e8446d9b37e2fafd3d500",{"version":"d4ce8dfc241ebea15e02f240290653075986daf19cf176c3ce8393911773ac1b","affectsGlobalScope":true},{"version":"52cd0384675a9fa39b785398b899e825b4d8ef0baff718ec2dd331b686e56814","affectsGlobalScope":true},{"version":"58c2bb87fdf190100849a698042d09373be574e531758b1cfe3533258c3d4daa","affectsGlobalScope":true},{"version":"b8f8d5bc91f9618e50778e56f99e74f63dc08f7a91799379887d0fb3ff51fe5e","affectsGlobalScope":true},{"version":"769c459185e07f5b15c8d6ebc0e4fec7e7b584fd5c281f81324f79dd7a06e69c","affectsGlobalScope":true},{"version":"c947df743f2fd638bd995252d7883b54bfef0dbad641f085cc0223705dfd190e","affectsGlobalScope":true},"db78f3b8c08924f96c472319f34b5773daa85ff79faa217865dafef15ea57ffb","8ae46c432d6a66b15bce817f02d26231cf6e75d9690ae55e6a85278eb8242d21","ff5a16ce08431fae07230367d151e3c92aa6899bc9a05669492a51666f11ceb5","526904beb2843034196e50156b58a5001ba5b87c5bb4e7ec04f539e6819f204e","4d311eabe35c4c1fe9b47d5e5f82e3c5467be90b34270fd71b3757bb5dbbe296","0f7abdc525bf2758a1bdca084ddd6092ee33ff438c11107f74d9f5720b0c432e","48d6e909991fb03b4fcebed5a7e7e8c899e702068808a2aea965f5face40dbd4","66500cbabdb5d98df1ea231c2e2c0e04f80cd68274d7824dec4918c57cdc12ed","80883fa1b4dc48eb6db24453403c5cbf4a2a31777fde224b8fde7ba9246de371","ef4a9912cd6a2cf0c5acc4fa29a46013bb2cd1180466c8b28b29b136639e0b11","620ee0bb3ed611e574a0071e1071fa2ad5c0b6b67f8d5a99d897989c1df3c9b8","d5ac44aae007e8852a0613908b99a642cc2464d7459380bf304d0c6e695a9cf5","3578d1b66793fa7c30e0a946babf6a7fe46e99ac5e7aa75c434c022bfe9cd163","7353061b0ab6ac04877a2a8c6a1c7f192dd6a148a2f5a71db83c782e0ca04e1c","45aa47354b80aa70ef600ae3b77eba08293bd3ff8c730157446d1163bb2c4c59","94fe6ddaa383a84b1d443f64c51b04606fadc8628820f643e819befc3b9a28aa","bb68c92912ca084538bc4c76109d28c858eb329aa7acbea374090cf6b74b9829","9ea0c0a352cc40e927881cd4795c2f026916cee12427f9bc915afddb59dd73eb","4baea6644d3bcff03ed8b69b8340723d22cb39def7fcb3b04e29ad77d466dabd","9fba7a1bf11fad7fda1b5a8068854eedee9c005964452deaa7c0cc4b05698ebf","3ced8319f120055c592b6b8414d004aaa06e33938d2f253f003b284c0bb3985f","419db3b5d56de49a509f837e321960523f0cc1d3bb37b7b18333a1f121c69076","00a2131114eddfa723cd9f69b6aeb7d671c637599020d67b4d6ca533f6f716a8","d3675c1142de11e1968e63b437bd3d3c08ad0880d73b9d87adecbf6c19ae3c96","038a4aa4e0689cc850e3d11b135f8a7808cc6484444ad32fba6a7135693bc882","fb9f03026b17b8a54bd14a99ba6f9308795366070c13872b3e51ba5417e5b540","5359adc2b85d3028780ed564439eecd78e66b1cf8133a0bdd731808d662e7e63","2de31a5be7702f3dc917c48fc4fffc95a227aa0a1a6a465741186b4607c8394e","a0fa0602bc1cdbbe7cee8a4ad911ca6121440cd156a852151d88c9ee9839fd9c","d84b658ceffb4e5ef15072174db965a822476a90fe962f97d1ff87231f2b40a6","48e8a39e6035443402cdbc10becf98e5e05c60d9b4f1cc4890585598a6bbef20","043c729e9004aff0cdd5baa0aec024b387a48f26540ed9ff873680fbff8f256d","9bc0bd99dd313f36d24c591df959b3d43f901b891fbe3e8b9b75ecd704d2125b","266d4f0d24633947101434d67d11df0acb0c44ffb6834b927b232ea5d237d3f0","df639c023a2ab052df8fa5c19db66861fbf8939687bc7c617b99f7ad7ea93397","2eff215c0bf89368c948feff7d68d99b96e4d7d3fabb4461fc891bee6f53c56b","f80fa78e2a8706b519cff7e63c3897db7bbe8281398c3d865cac5d4f10688a5e","56021f143f007740f38357168721c306ec8fd57bc05c045685239172f139f6b9","c2ec422c60bc7362de285542e8e6fdcc56522d9a04fd6eb46bc2a46d0b436f54","1f0878e4e1be492cff1ca5a3152ce756cc86b9dc612b01ddb26659c4c55475d5","62f9b6f2c3e35d0b5b9ee04b1be03702092a1da85ea836ba7c1e7f7438fd980a","696af3999940599e7dc14a1eced4f128baee4a3cc79ab1422e02b6c6a76fa59a","e388ce93422740ed6e5ff60f4e70e9bfa41175ed353835ec5ffa610b57bd8dfb","c74448c6ad0b791eb727c032822bf5f46b5598144ada9953ccf336e064a9b04c","5a6c433af128b4c280ff2d5694df39f562d9e39e1526fce13b6927cd669e61c4","4b1ef4df50a3578b91a5d5ea36cbfc54f3fee2be3141da6e61661a2cd581a97f","652d1e7197382a2b67cba5491722dd834a8b3e777ef5e96bf1f9637f766f3cad","b12839a77591a84fb66ce906b8947e18fe858a00fecae5340b09f02b76c99740","c68935745d4322e880778db82f959740aa6a279ebc693d5eac3000e6535ee1a3","32a495b7e8a60998c7d141d23c507a809724815245e314c1e773100eada73988","59a792b84d0a3874c4779260e08bd396cafe23f30df4ea5de32908558f5892d7","92c133641a49f519ff7ceb20d988d5c28873cdc84dca96f5f5a954f7a0739d03","10077395e39d23bc2dbf96015a53671f99b1789cdb9378261336325d1028139e","79c477a2d4626e7d1fc4e281ff53618b65ac1d2d79d8df8ede051e792340ca9c","d31fa5597aed0deaa4e19c29acb9c202a25e267fd38510a02b10d01b4f28e270","5ebb42ba0f1dbc04dd55bdcf9e702697f1905746cbe461441f0914dfff9731f5","f9f7beba5adb3872e352dc2ea7211435df7bab7d98562b1d65676b6e1c7cc3a3","42a43e87c01fd76573880adb08cd5e0acbbd07350b9e39c5418da0afe3241fc1","712a193a9f9cd6ea10e3d7cfec1c7f3d55e7460641c3f1edd3505f9fa32ab81b","f76c971d1e258b502448a9aa7aed9d6190b75d301e2f1aec92a03a4486783d47","3ef9135446efd31179eb94dc16ca9631d2bcd57c2f84b4a74c4c069c5c50ad2b","bb5e9d7388601b32e195bba0712407b508a86477de3e211d28c5e26ac6f021ac","fa24c21d816dd03f4be8e8e5d61cb336f8152e8eb0e0bc05c848799dc5de9892","de29cbbebf350d00e9bd2193a08a771ee9f84252b0280a4e0251a4426a6ea391","c586aa78eea1db992fd2038360ec8519b2db45730b3573bda09e1cdfb6272e15","2c63d973a458a12a2ff38f1a90df784ab2721e0a8c5b8c0fa6adf8cebf68c97e","d366b5ea01ef9fa2e70bb6905b9d6e3752f41bb63cb20060879162ac66d69b3a","f770a4a550ba3e3b04cde1e79e8320d6360143934e8fdaa36191bb1e336958bb","22a19578f29ef8d592d86f055460a98a758f137b0699f197149dd9f5319fda7f","602b7724ff9646f1cd487d767e0d8ede210387dfb2bb0488418f6fcd1f2c05af","5ca6be4bc24f5bdd8cede7b520f89b02f5fc5d5e3bc86828a262f03ce2e3cd91","b9a496f3a550a32e9a38e0fea88e84e14072fec6cf46ca76c8d8c1c13ab7b53e"],"root":[838,908],"options":{"inlineSources":true,"module":99,"noEmitOnError":false,"noImplicitAny":false,"noImplicitThis":true,"outDir":"../../../../dist/dev/.uvue/app-android","rootDir":"../../../../dist/dev/.tsc/app-android","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildInfo","useDefineForClassFields":false},"fileIdsList":[[848,853],[844,846],[842,847],[46,48,50,833,834,840,845,854,855,856,857,858,859,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907],[46,48,50,833,834,860],[46,48,50,833,834,853,860],[849,860],[46,48,50,833,834,847,848,853,860],[46,48,50,833,834,848,860],[46,48,50,833,834],[46,48,50,833,834,848],[46,48,50,833,834,849,860],[848,850],[842,848],[46,48,50,833,834,842,848,849,853],[46,48,50,833,834,847,848,849,853],[46,48,50,833,834,848,852],[841,842],[841,843],[848,849],[46,48,50,833,834,848,849,850,851,852],[844,848],[845],[46,48,50,832,833,834],[593,607,828,831,833,834,835,836],[519,526],[592],[511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591],[514,515,516,517,518,520,522,524,525,527],[565],[526,530],[567],[586],[521],[527],[520,526,537],[526,535],[514,515,516,517,518,522,526,527,535,536],[566],[526],[535,536,537,582],[518,527,568,571],[513,518,523,528,535,563,564,568,569],[523,526],[570],[528],[517,526],[526,527],[526,537],[525,526,535,536,537],[530],[46,48,50,524,832,833],[830],[829],[608,609,760,797,804,823,825,827],[826],[824],[611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759],[610],[612],[614],[616],[620],[622],[624],[626],[628],[630],[632],[634],[636],[638],[640],[642],[644],[646],[648],[650],[652],[654],[656],[658],[660],[662],[664],[666],[668],[670],[672],[674],[676],[678],[680],[682],[684],[686],[688],[690],[692],[694],[696],[698],[700],[702],[704],[706],[708],[710],[712],[714],[716],[718],[720],[722],[724],[726],[728],[730],[732],[734],[736],[738],[740],[742],[744],[746],[748],[750],[752],[754],[756],[758],[762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796],[761],[763],[765],[767],[769],[771],[787],[791],[793],[795],[799,801,803],[798],[301,453],[800],[802],[806,808,810,812,814,816,818,820,822],[821],[813],[809],[807],[819],[811],[815],[805],[817],[530,537],[606],[594,595,596,597,598,599,600,601,602,603,604,605],[537],[530,537,590],[506,507,508,509],[505],[453],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],[839],[44],[44,45,46,48],[41,48,49,50],[42],[41,46,48,833,834],[45,46,47,50,833,834],[29,30,31,32,33,34,35,36,37,38,39],[33],[36],[33,35],[67,68],[198],[198,201,390,462],[201],[196,329,390,453,472,473],[51,63,66,79,173,175,185,188,191,196,252,255,274,278,280,281,282,299,301,316,329,340,342,344,345,346,366,369,387,390,440,452,453,455,456,463,464,467,468,469,470,474,476,482,484,485,486,487,488,493,494,497,498,499,502,503,504],[66,252,281,282,496,505],[66,67,68,274,439,440],[274],[66,79,99,175,274,329,340,342,344,346,366,369,390,453,468,474,475,476,485,505],[51,66,67,68,80,173,196,201,252,255,282,328,342,344,345,369,390,440,453,455,462,466,467,468,505],[51,66,173,390,453,469,473],[390,469],[51,66,173,454],[66,67,68,102,253,254,255,440,453],[67,68,107,500,501],[67,68,173,302,316],[68,108,174,390,453],[66,185,316,440,453,505],[66,67,68,453,505],[67,68,453],[52,66,440,453],[67,68,69,255,274,310,438,440,453],[63,67,68],[252],[281],[51,66,173,231,232,252,267,268,273,274,278,279,280,282,453],[66,231,232,274,278,279,280,283,304],[66,67,68,274],[57,60,61,66,231,232,274,275,278,279,280,283,301,302,303,304,305,306,307,308,309,453],[61,66,101,102,172,185,196,203,204,234,248,249,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452],[273],[61,66,101,102,172,185,203,204,234,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452,453,495],[79],[65,66,67,68,107,185,196,265,274,310,319,328,439,453],[67,68,97,254,266,274,310,312,440],[66,67,68,102,253,254,440,453],[51,173,275,453],[67,68,323],[67,68,97,257],[67,68,97,319,320,453],[263],[67,97,320,321],[67,68,260],[67,68,263],[67,68,320],[67,68,256,258,259,260,261,262,263,264,265,268,269,321],[58,60,61,63,67,68,70,102,253,255,272,274,301,315,316,440],[66,67,97,233,319,329],[66,67,68,107,172,185,233,250,251,252,253,254,255,256,258,260,264,265,268,270,271,272,313,314,315,317,318,321,328,329,440],[67,266],[67,68,319,320],[67,68,97,257,266,267],[67,68,97,258,265,268,313,319,329],[67,68,262],[51,58,66,67,68,164,203,204,231],[61,232,233],[67,68,328],[67,68,71],[232],[325],[58,231,322,324,453],[61,66,196,232,233,234,245,246,247,248,249,252,321,326,327,329],[245,247,248,328,329],[196],[52,185],[67,68,306],[66,67,68,306],[274,311],[66,67,68,185],[66,67,68,186],[102,274],[58,66,274,275,276,277,310],[450],[58],[278],[172,278,279,280,442,444,445,446,447,448,449],[442],[443],[231,443],[60,67,68,87,140,174,240,246,284,287,289,299,300],[236,289,301],[72,107,108,174,180,236,240,241,285,286,288,294,297,298,300,301],[61,72,106,107,181,196,239,247,248,296,299,328],[67,68,72,99,102,248,274,301,329,453],[71,108,148,172,231,234,240,328],[241],[67,68,301],[67,68,107],[108,173],[174],[108,140,143,287],[61,240,299],[107,108,181,240,299,301],[107,180],[71,72,107,180,235,236,237,238,239,245],[108,174],[299],[72,107,108,174,180,181,240,241,286,288,294,297,299,300,301],[67,68,106],[67,68,107,180],[72,107,236,239,291,301],[107,174,240,292,295,296],[236,287,290],[102],[107,240,293],[51,172,234,242,243,244],[82,83,84],[82,83],[89,93],[89],[89,95],[87,88,89,91,92,94,96,102],[67,68,179],[90],[65],[66,67,68,274,301],[67,68,301,478,479],[66,67,68,73,79,102,274,316,453,477,478,480,481],[66,67,68],[67,68,172],[63],[52,54,57,62,63,64,65,67,68],[68,75],[97,99,101],[51,53,67],[52],[67,68,70],[97,100],[60,61],[66,67,68,98,102],[51],[52,67,68,99,102],[51,52,53,54,55,56,57,63,64,65,66],[67],[51,58,67,68,102,172,203,204,205,212,230],[60,61,62,67,68],[66,67,68,102],[67,68,73],[68],[73,74,75],[74,76,77],[395],[391],[390,391,392,393],[240],[180,196,453],[390,453,462],[107,196,198,201,390,453,462,465],[462,463,466],[246],[67,68,365],[366],[57,66,67,68,107,179,181,182,390],[66,183],[68,183,390],[67,68,71,107,181,183],[107,342,344,345,390],[342,343,390,453],[196,197,199,453],[196,199,200,390,453],[107,181,350,352],[67,68,390],[66,67,68,191],[106,184,190,192,390],[66,67,68,274,439],[329,344,390],[234,252,328,453,496],[67,68,107,246,284,371,372,373,374],[106,107,180],[376],[67,68,180],[67,68,69,439],[67,68,76,78,81,85,86,103],[68,104],[66,67,68,71,97,336,337],[66,79,102,108,280,336,355,356,357,358,359,360,361,362,363],[67,68,69,274],[358],[336],[67,68,79,80],[67,68,81,105],[196,390,453,462],[79,185,343,440],[344,453],[72,248,329,341,343,390,440],[67,68,105,174],[334,390],[67,68,301,328,453],[67,68,371],[107,280,384],[107,371,383],[104],[329,342,344,390],[67,68,107,299,382],[58,67,68,87,107,181,351],[105],[66,67,68,71,390,394,396,437],[107,175,390],[67,68,388],[390],[67,68,184,330],[52,54,66,67,68,72,79,102,107,174,175,181,183,184,187,188,189,193,194,195,196,200,202,240,248,249,252,292,299,301,328,329,331,332,333,334,335,338,340,346,349,353,354,364,366,367,368,369,370,371,375,377,380,381,385,386,387,389,439,453],[54,66,79,107,175,181,183,190,196,197,249,252,299,340,346,366,368,371,380,381,387,389,390,453,457,458,459,460,461],[329],[66,107,340,346,366,369,371,390],[66,71,174,184,187,188,189],[52,66,79,102,105,107,175,249,252,274,329,340,342,344,346,353,366,385,390,453,463,466,468,476,482,483,484],[57,106,107,372,378,379],[106,199,380],[106],[347],[199,280,348],[52,67,68,101,350,352,375,390,458,489,490,491,492],[107,380],[277,390,462],[390,462,471],[68,175,196,329,342,344,453,462],[339],[65,112,113,171],[51,61,164,172],[51,60,164,172],[58,60],[58,59],[60,109,172],[110,207],[58,110,207,208,209,229],[65,206],[207],[110],[58,110,207,209,212,216,218],[58,60,61,111,207,213],[51,60,61,110,207,209,214],[215],[65,112],[61,65,111,113],[140,141,142,143,144,145,146,147],[93],[148,152,157,160,161,163,171],[150,153],[110,148,151,154,155,209,211,219,224,226,228,230],[148,149,150,151,152,153,154,156,157,159,163,171],[93,162,164],[148,150],[206,207,228],[206,207,211,227],[93,110,209],[150,151,153,154,224,226],[93,148],[148,153],[148,155],[93,159,220,221,224],[220,225],[58,224],[110,209,211,213,217,224,226],[110,148,151,154,155,209,211,212,224,226],[93,158],[220,221,224,225],[221],[220,221,222,224,226],[93,210,213,218,219,223,229],[140,141],[136],[135],[136,137],[58,116,138,139,169,171],[113,114,115,116,117,170,172],[171],[60,61,113,117,152,156,157,162,164,165,166,167,168,170,171],[115,116],[114],[58,115],[140,148],[129,131,132],[65,120,122],[65,124,125],[65,112,123,126],[131],[65,128],[65,129],[134],[127,129,130,135],[61],[121],[65,124],[65,424],[65,405,425,426],[400,411,423],[176,177,178,398,401,403,404,409,410,420,423,428],[176,177,178,398,401,403,404,420,422,423,428,430,433,434],[397,400,402,404,409,410,411,412,421,422,430,433,434,436],[176,177,178,411,423],[176,177,178,398,401,402,403,404,420,421,423,428,430,433,434],[176,397,398,401,402,403,404],[65,400,402,404,409,410,411,412,413,414,416,418,419,421,422,430,433,434,436,437],[179,430,434,435],[65,176,177,178],[399,400,401,403,404,405,406,423,427,434],[65,176,177,178,398,401,402,403,404,429,433,434,436,437],[179,430,434,436],[65,176,177,178,398,401,402,403,404,407,408,409,410,411,415,417,418,420,421,423,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,408,411,415,419,420,421,422,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,407,416,419,428,430,433,434,436],[65,176,177,178,398,401,402,403,404,407,408,415,416,419,420,428,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,419,420,428,429,430,433,434,436],[65,176,177,178,409,417,419,423],[401,402,403],[176],[176,177],[176,177,400,402,404],[404],[176,179],[65,401],[65,179,416,430,433],[65,179,416,430,431,433],[65,176,177,178,398,401,402,403,404,408,411,415,416,419,420,421,422,428,429,430,433,434,436],[65,397,404,432,433],[65,176,398,401,402,403,404,432,434],[65,118,119,133]],"referencedMap":[[854,1],[847,2],[848,3],[908,4],[869,5],[867,5],[866,6],[868,5],[870,7],[881,5],[880,5],[890,5],[900,5],[907,5],[906,5],[892,8],[882,5],[877,5],[878,5],[879,5],[887,5],[903,5],[904,5],[899,5],[886,9],[885,5],[884,5],[883,5],[897,5],[896,5],[894,5],[895,5],[875,7],[898,5],[905,5],[891,10],[889,5],[888,5],[874,5],[871,11],[902,5],[901,5],[876,12],[893,5],[872,5],[873,5],[851,13],[865,10],[864,10],[856,14],[861,5],[863,10],[858,10],[855,15],[862,16],[857,17],[843,18],[844,19],[852,20],[853,21],[860,22],[846,23],[833,24],[837,25],[520,26],[593,27],[592,28],[526,29],[566,30],[589,31],[568,32],[587,33],[522,34],[521,35],[585,36],[530,35],[564,37],[537,38],[567,39],[527,40],[583,41],[581,35],[580,35],[579,35],[578,35],[577,35],[576,35],[575,35],[574,35],[573,42],[570,43],[572,35],[524,44],[528,35],[571,45],[563,46],[562,35],[560,35],[559,35],[558,47],[557,35],[556,35],[555,35],[554,35],[553,48],[552,35],[551,35],[550,35],[549,35],[547,49],[548,35],[545,35],[544,35],[543,35],[546,50],[542,35],[541,40],[540,51],[539,51],[538,49],[534,51],[533,51],[532,51],[531,51],[529,46],[834,52],[831,53],[830,54],[828,55],[827,56],[825,57],[760,58],[611,59],[613,60],[615,61],[617,62],[621,63],[623,64],[625,65],[627,66],[629,67],[631,68],[633,69],[635,70],[637,71],[639,72],[641,73],[643,74],[645,75],[647,76],[649,77],[651,78],[653,79],[655,80],[657,81],[659,82],[661,83],[663,84],[665,85],[667,86],[669,87],[671,88],[673,89],[675,90],[677,91],[679,92],[681,93],[683,94],[685,95],[687,96],[689,97],[691,98],[693,99],[695,100],[697,101],[699,102],[701,103],[703,104],[705,105],[707,106],[709,107],[711,108],[713,109],[715,110],[717,111],[719,112],[721,113],[723,114],[725,115],[727,116],[729,117],[731,118],[733,119],[735,120],[737,121],[739,122],[741,123],[743,124],[745,125],[747,126],[749,127],[751,128],[753,129],[755,130],[757,131],[759,132],[797,133],[762,134],[764,135],[766,136],[768,137],[770,138],[772,139],[788,140],[792,141],[794,142],[796,143],[804,144],[799,145],[798,146],[801,147],[803,148],[823,149],[822,150],[814,151],[810,152],[808,153],[820,154],[812,155],[816,156],[806,157],[818,158],[594,159],[607,160],[606,161],[600,159],[601,159],[595,159],[596,159],[597,159],[598,159],[599,159],[603,162],[604,163],[602,162],[510,164],[506,165],[507,166],[28,167],[840,168],[47,10],[45,169],[46,170],[838,171],[43,172],[50,173],[48,174],[40,175],[35,176],[34,176],[37,177],[36,178],[39,178],[306,179],[201,180],[460,181],[202,182],[474,183],[505,184],[503,185],[456,186],[464,187],[486,188],[469,189],[504,190],[473,191],[455,192],[316,193],[502,194],[494,179],[501,195],[467,196],[488,197],[487,198],[273,199],[451,200],[439,201],[69,202],[281,203],[282,204],[185,199],[283,205],[305,206],[304,207],[310,208],[279,179],[453,209],[495,210],[496,211],[475,212],[440,213],[313,214],[255,215],[454,216],[191,179],[323,179],[324,217],[265,218],[321,219],[315,220],[259,179],[250,179],[257,221],[269,179],[261,222],[260,179],[318,223],[264,224],[251,179],[270,225],[317,226],[320,227],[319,228],[267,229],[271,230],[256,230],[268,231],[314,232],[258,218],[262,179],[263,233],[272,179],[232,234],[234,235],[248,236],[252,237],[322,238],[326,239],[325,240],[328,241],[249,242],[233,243],[441,244],[303,179],[309,245],[307,246],[311,187],[312,247],[186,248],[187,249],[275,250],[278,251],[448,252],[442,253],[446,254],[450,255],[443,256],[445,257],[447,253],[444,258],[301,259],[290,260],[299,261],[329,262],[302,263],[241,264],[242,265],[289,266],[106,267],[174,268],[298,269],[288,270],[327,271],[286,272],[296,273],[240,274],[180,275],[300,276],[371,179],[295,277],[107,278],[108,267],[181,279],[292,280],[297,281],[291,282],[236,269],[382,283],[293,179],[294,284],[245,285],[374,179],[87,179],[83,179],[85,286],[84,287],[82,179],[373,179],[94,288],[95,289],[96,290],[103,291],[351,292],[90,289],[91,293],[70,294],[73,179],[479,295],[480,296],[478,179],[482,297],[477,298],[274,299],[62,300],[66,301],[77,302],[102,303],[52,304],[53,305],[71,306],[101,307],[88,308],[99,309],[100,310],[98,311],[67,312],[68,313],[231,314],[266,179],[63,315],[481,316],[253,179],[74,317],[75,318],[76,319],[78,320],[396,321],[392,322],[394,323],[391,324],[465,325],[463,326],[466,327],[484,328],[64,179],[247,329],[354,179],[366,330],[367,331],[183,332],[333,333],[365,334],[182,335],[346,336],[341,337],[200,338],[199,180],[461,339],[197,269],[353,340],[184,341],[189,179],[192,342],[193,343],[334,344],[369,345],[497,346],[375,347],[378,348],[376,179],[377,349],[379,350],[470,179],[387,351],[104,352],[105,353],[359,179],[360,179],[338,354],[355,179],[363,179],[364,355],[357,356],[362,357],[336,179],[361,202],[356,358],[81,359],[79,360],[468,361],[344,362],[345,363],[342,364],[175,365],[335,366],[368,367],[372,368],[385,369],[384,370],[476,371],[343,372],[383,373],[352,374],[491,375],[438,376],[386,377],[389,378],[330,298],[388,306],[332,379],[331,380],[390,381],[462,382],[458,379],[459,383],[457,384],[190,385],[485,386],[370,179],[380,387],[381,388],[347,389],[348,390],[349,391],[493,392],[492,393],[471,394],[472,395],[499,396],[350,179],[340,397],[489,179],[172,398],[203,399],[204,400],[61,401],[60,402],[173,403],[109,402],[208,404],[230,405],[207,406],[206,407],[111,408],[217,409],[212,410],[110,294],[215,411],[216,412],[113,413],[112,414],[148,415],[161,416],[162,417],[155,418],[93,253],[229,419],[164,420],[163,421],[151,422],[158,416],[227,423],[228,424],[211,425],[210,426],[153,427],[154,428],[156,429],[225,430],[221,431],[220,432],[218,433],[213,434],[159,435],[226,436],[222,437],[223,438],[224,439],[150,427],[144,440],[142,440],[137,441],[136,442],[138,443],[168,253],[170,444],[171,445],[139,446],[169,447],[114,448],[115,449],[116,450],[146,440],[145,440],[147,440],[149,451],[143,440],[133,452],[123,453],[124,294],[126,454],[127,455],[132,456],[121,294],[129,457],[130,458],[135,459],[131,460],[120,461],[122,462],[125,463],[425,464],[427,465],[414,466],[411,467],[421,468],[423,469],[409,470],[422,471],[410,472],[417,473],[436,474],[179,475],[428,476],[430,477],[435,478],[419,479],[416,480],[420,481],[429,482],[407,483],[418,484],[404,485],[398,486],[178,487],[401,488],[403,489],[177,490],[402,491],[431,492],[432,493],[437,494],[434,495],[433,496],[134,497]],"exportedModulesMap":[[854,1],[847,2],[848,3],[908,4],[869,5],[867,5],[866,6],[868,5],[870,7],[881,5],[880,5],[890,5],[900,5],[907,5],[906,5],[892,8],[882,5],[877,5],[878,5],[879,5],[887,5],[903,5],[904,5],[899,5],[886,9],[885,5],[884,5],[883,5],[897,5],[896,5],[894,5],[895,5],[875,7],[898,5],[905,5],[891,10],[889,5],[888,5],[874,5],[871,11],[902,5],[901,5],[876,12],[893,5],[872,5],[873,5],[851,13],[865,10],[864,10],[856,14],[861,5],[863,10],[858,10],[855,15],[862,16],[857,17],[843,18],[844,19],[852,20],[853,21],[860,22],[846,23],[833,24],[837,25],[520,26],[593,27],[592,28],[526,29],[566,30],[589,31],[568,32],[587,33],[522,34],[521,35],[585,36],[530,35],[564,37],[537,38],[567,39],[527,40],[583,41],[581,35],[580,35],[579,35],[578,35],[577,35],[576,35],[575,35],[574,35],[573,42],[570,43],[572,35],[524,44],[528,35],[571,45],[563,46],[562,35],[560,35],[559,35],[558,47],[557,35],[556,35],[555,35],[554,35],[553,48],[552,35],[551,35],[550,35],[549,35],[547,49],[548,35],[545,35],[544,35],[543,35],[546,50],[542,35],[541,40],[540,51],[539,51],[538,49],[534,51],[533,51],[532,51],[531,51],[529,46],[834,52],[831,53],[830,54],[828,55],[827,56],[825,57],[760,58],[611,59],[613,60],[615,61],[617,62],[621,63],[623,64],[625,65],[627,66],[629,67],[631,68],[633,69],[635,70],[637,71],[639,72],[641,73],[643,74],[645,75],[647,76],[649,77],[651,78],[653,79],[655,80],[657,81],[659,82],[661,83],[663,84],[665,85],[667,86],[669,87],[671,88],[673,89],[675,90],[677,91],[679,92],[681,93],[683,94],[685,95],[687,96],[689,97],[691,98],[693,99],[695,100],[697,101],[699,102],[701,103],[703,104],[705,105],[707,106],[709,107],[711,108],[713,109],[715,110],[717,111],[719,112],[721,113],[723,114],[725,115],[727,116],[729,117],[731,118],[733,119],[735,120],[737,121],[739,122],[741,123],[743,124],[745,125],[747,126],[749,127],[751,128],[753,129],[755,130],[757,131],[759,132],[797,133],[762,134],[764,135],[766,136],[768,137],[770,138],[772,139],[788,140],[792,141],[794,142],[796,143],[804,144],[799,145],[798,146],[801,147],[803,148],[823,149],[822,150],[814,151],[810,152],[808,153],[820,154],[812,155],[816,156],[806,157],[818,158],[594,159],[607,160],[606,161],[600,159],[601,159],[595,159],[596,159],[597,159],[598,159],[599,159],[603,162],[604,163],[602,162],[510,164],[506,165],[507,166],[28,167],[840,168],[47,10],[45,169],[46,170],[838,171],[43,172],[50,173],[48,174],[40,175],[35,176],[34,176],[37,177],[36,178],[39,178],[306,179],[201,180],[460,181],[202,182],[474,183],[505,184],[503,185],[456,186],[464,187],[486,188],[469,189],[504,190],[473,191],[455,192],[316,193],[502,194],[494,179],[501,195],[467,196],[488,197],[487,198],[273,199],[451,200],[439,201],[69,202],[281,203],[282,204],[185,199],[283,205],[305,206],[304,207],[310,208],[279,179],[453,209],[495,210],[496,211],[475,212],[440,213],[313,214],[255,215],[454,216],[191,179],[323,179],[324,217],[265,218],[321,219],[315,220],[259,179],[250,179],[257,221],[269,179],[261,222],[260,179],[318,223],[264,224],[251,179],[270,225],[317,226],[320,227],[319,228],[267,229],[271,230],[256,230],[268,231],[314,232],[258,218],[262,179],[263,233],[272,179],[232,234],[234,235],[248,236],[252,237],[322,238],[326,239],[325,240],[328,241],[249,242],[233,243],[441,244],[303,179],[309,245],[307,246],[311,187],[312,247],[186,248],[187,249],[275,250],[278,251],[448,252],[442,253],[446,254],[450,255],[443,256],[445,257],[447,253],[444,258],[301,259],[290,260],[299,261],[329,262],[302,263],[241,264],[242,265],[289,266],[106,267],[174,268],[298,269],[288,270],[327,271],[286,272],[296,273],[240,274],[180,275],[300,276],[371,179],[295,277],[107,278],[108,267],[181,279],[292,280],[297,281],[291,282],[236,269],[382,283],[293,179],[294,284],[245,285],[374,179],[87,179],[83,179],[85,286],[84,287],[82,179],[373,179],[94,288],[95,289],[96,290],[103,291],[351,292],[90,289],[91,293],[70,294],[73,179],[479,295],[480,296],[478,179],[482,297],[477,298],[274,299],[62,300],[66,301],[77,302],[102,303],[52,304],[53,305],[71,306],[101,307],[88,308],[99,309],[100,310],[98,311],[67,312],[68,313],[231,314],[266,179],[63,315],[481,316],[253,179],[74,317],[75,318],[76,319],[78,320],[396,321],[392,322],[394,323],[391,324],[465,325],[463,326],[466,327],[484,328],[64,179],[247,329],[354,179],[366,330],[367,331],[183,332],[333,333],[365,334],[182,335],[346,336],[341,337],[200,338],[199,180],[461,339],[197,269],[353,340],[184,341],[189,179],[192,342],[193,343],[334,344],[369,345],[497,346],[375,347],[378,348],[376,179],[377,349],[379,350],[470,179],[387,351],[104,352],[105,353],[359,179],[360,179],[338,354],[355,179],[363,179],[364,355],[357,356],[362,357],[336,179],[361,202],[356,358],[81,359],[79,360],[468,361],[344,362],[345,363],[342,364],[175,365],[335,366],[368,367],[372,368],[385,369],[384,370],[476,371],[343,372],[383,373],[352,374],[491,375],[438,376],[386,377],[389,378],[330,298],[388,306],[332,379],[331,380],[390,381],[462,382],[458,379],[459,383],[457,384],[190,385],[485,386],[370,179],[380,387],[381,388],[347,389],[348,390],[349,391],[493,392],[492,393],[471,394],[472,395],[499,396],[350,179],[340,397],[489,179],[172,398],[203,399],[204,400],[61,401],[60,402],[173,403],[109,402],[208,404],[230,405],[207,406],[206,407],[111,408],[217,409],[212,410],[110,294],[215,411],[216,412],[113,413],[112,414],[148,415],[161,416],[162,417],[155,418],[93,253],[229,419],[164,420],[163,421],[151,422],[158,416],[227,423],[228,424],[211,425],[210,426],[153,427],[154,428],[156,429],[225,430],[221,431],[220,432],[218,433],[213,434],[159,435],[226,436],[222,437],[223,438],[224,439],[150,427],[144,440],[142,440],[137,441],[136,442],[138,443],[168,253],[170,444],[171,445],[139,446],[169,447],[114,448],[115,449],[116,450],[146,440],[145,440],[147,440],[149,451],[143,440],[133,452],[123,453],[124,294],[126,454],[127,455],[132,456],[121,294],[129,457],[130,458],[135,459],[131,460],[120,461],[122,462],[125,463],[425,464],[427,465],[414,466],[411,467],[421,468],[423,469],[409,470],[422,471],[410,472],[417,473],[436,474],[179,475],[428,476],[430,477],[435,478],[419,479],[416,480],[420,481],[429,482],[407,483],[418,484],[404,485],[398,486],[178,487],[401,488],[403,489],[177,490],[402,491],[431,492],[432,493],[437,494],[434,495],[433,496],[134,497]],"semanticDiagnosticsPerFile":[842,854,[847,[{"file":"../../../../dist/dev/.tsc/app-android/components/supadb/aksupa.uts.ts","start":9000,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."}]],848,[908,[{"file":"../../../../dist/dev/.tsc/app-android/main.uts.ts","start":7,"length":108,"messageText":"An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled.","category":1,"code":5097}]],[867,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/category.uvue.ts","start":69,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[866,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/index.uvue.ts","start":79,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[868,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/messages.uvue.ts","start":81,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[870,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","start":24820,"length":16,"messageText":"Duplicate identifier 'getOrderShopName'.","category":1,"code":2300},{"file":"../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","start":30203,"length":10,"messageText":"Duplicate identifier 'goToPoints'.","category":1,"code":2300}]],[881,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-edit.uvue.ts","start":70,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[880,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-list.uvue.ts","start":89,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[890,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/apply-refund.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],900,907,[906,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/index.uvue.ts","start":2688,"length":6,"messageText":"Cannot find name 'onShow'.","category":1,"code":2304}]],892,[882,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/checkout.uvue.ts","start":111,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],877,[878,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":787,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":953,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): this is { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":5031,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]}]],[879,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1415,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1583,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): this is { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1758,"length":5,"code":2345,"category":1,"messageText":"Argument of type 'Date' is not assignable to parameter of type 'string | number'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":3941,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => value is FootprintType, thisArg?: any): this is FootprintType[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":4378,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => value is FootprintType, thisArg?: any): this is FootprintType[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":4744,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":5462,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]}]],[887,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/logistics.uvue.ts","start":61,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],903,[904,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/message-detail.uvue.ts","start":1438,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | undefined' is not assignable to type 'string'.","category":1,"code":2322,"next":[{"messageText":"Type 'undefined' is not assignable to type 'string'.","category":1,"code":2322}]},"relatedInformation":[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/message-detail.uvue.ts","start":371,"length":10,"messageText":"The expected type comes from property 'created_at' which is declared here on type '{ __$originalPosition?: UTSSourceMapPosition<\"MessageType\", \"pages/mall/consumer/message-detail.uvue\", 34, 6> | undefined; id: string; type: string; title: string; ... 4 more ...; created_at: string; }'","category":3,"code":6500}]}]],[899,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/my-reviews.uvue.ts","start":3346,"length":11,"code":2345,"category":1,"messageText":"Argument of type 'string' is not assignable to parameter of type 'number'."}]],[886,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/order-detail.uvue.ts","start":84,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[885,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/orders.uvue.ts","start":102,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],884,883,897,896,894,895,875,898,905,891,889,[888,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","start":60,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","start":7989,"length":20,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'ChooseImageSuccess' to type 'UTSJSONObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'ChooseImageSuccess' is missing the following properties from type 'UTSJSONObject': get, set, getAny, getBoolean, and 6 more.","category":1,"code":2740}]}}]],[874,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","start":6451,"length":18,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'Product' to type 'UTSJSONObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'Product' is missing the following properties from type 'UTSJSONObject': get, set, getAny, getBoolean, and 6 more.","category":1,"code":2740}]}},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","start":14487,"length":28,"code":2352,"category":1,"messageText":"Conversion of type 'Product' to type 'UTSJSONObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."}]],[871,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/settings.uvue.ts","start":66,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],902,901,876,893,[872,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/wallet.uvue.ts","start":67,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],873,851,850,865,864,856,[861,[{"file":"../../../../dist/dev/.tsc/app-android/pages/user/center.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],863,858,855,[862,[{"file":"../../../../dist/dev/.tsc/app-android/pages/user/profile.uvue.ts","start":3881,"length":74,"messageText":"Expected 0-1 arguments, but got 2.","category":1,"code":2554}]],857,859,849,[843,[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":2536,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":9984,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":10130,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":10229,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."}]],844,841,845,852,853,860,846,833,832,837,565,520,516,517,514,593,591,592,526,566,590,589,568,535,536,519,515,586,587,522,521,518,585,584,530,564,537,567,527,582,583,581,580,579,578,577,576,575,574,573,570,572,524,569,528,571,563,562,561,560,559,558,557,523,556,555,554,553,552,551,550,549,547,548,545,544,543,546,525,542,541,540,539,538,534,533,532,531,529,588,513,512,511,834,835,831,830,829,608,609,828,827,826,825,824,760,611,610,613,612,615,614,617,616,619,618,621,620,623,622,625,624,627,626,629,628,631,630,633,632,635,634,637,636,639,638,641,640,643,642,645,644,647,646,649,648,651,650,653,652,655,654,657,656,659,658,661,660,663,662,665,664,667,666,669,668,671,670,673,672,675,674,677,676,679,678,681,680,683,682,685,684,687,686,689,688,691,690,693,692,695,694,697,696,699,698,701,700,703,702,705,704,707,706,709,708,711,710,713,712,715,714,717,716,719,718,721,720,723,722,725,724,727,726,729,728,731,730,733,732,735,734,737,736,739,738,741,740,743,742,745,744,747,746,749,748,751,750,753,752,755,754,757,756,759,758,797,762,761,764,763,766,765,768,767,770,769,772,771,774,773,776,775,778,777,780,779,782,781,784,783,786,785,788,787,790,789,792,791,794,793,796,795,804,799,798,801,800,803,802,823,822,821,814,813,810,809,808,807,820,819,812,811,816,815,806,805,818,817,836,594,607,606,605,600,601,595,596,597,598,599,603,604,602,510,506,507,508,509,1,16,2,28,3,26,4,5,17,18,6,20,21,19,27,7,8,9,10,11,12,13,14,24,25,22,23,15,[840,[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":145,"length":16,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_HOSTS' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":197,"length":15,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_PORT' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":246,"length":13,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_ID' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":380,"length":27,"messageText":"Cannot find name '__registerWebViewUniConsole'.","category":1,"code":2304},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":454,"length":32,"code":2339,"category":1,"messageText":"Property 'UNI_CONSOLE_WEBVIEW_EVAL_JS_CODE' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."}]],[839,[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","start":1121,"length":19,"code":2578,"category":1,"messageText":"Unused '@ts-expect-error' directive."}]],47,45,46,44,838,42,43,50,49,48,41,40,31,35,32,33,34,37,36,38,39,30,29,306,201,460,202,198,474,505,503,456,464,486,469,504,473,455,316,502,494,501,467,488,487,273,451,439,69,281,282,185,283,305,304,310,279,453,495,496,475,440,313,255,454,191,323,324,265,321,315,259,250,257,269,261,260,318,264,251,270,317,320,319,267,271,256,268,314,258,262,263,272,232,234,248,252,322,326,325,328,249,233,441,452,303,309,307,308,311,312,186,187,276,275,278,448,277,442,446,450,443,445,447,444,449,301,290,72,299,287,239,284,329,302,285,241,242,244,243,289,106,238,174,298,288,327,286,296,240,180,237,300,371,295,107,108,181,292,297,291,236,382,293,294,245,235,86,374,87,83,85,84,82,373,89,94,95,96,92,103,351,90,91,70,73,479,480,478,482,477,274,62,66,280,77,102,52,53,71,101,88,99,100,98,188,67,68,231,266,63,481,253,74,75,76,78,337,396,395,392,394,393,391,465,463,466,484,254,80,56,196,246,194,97,195,500,57,64,54,55,247,354,366,367,183,333,365,182,346,341,200,199,461,197,353,184,189,490,192,193,334,369,497,375,378,376,377,379,470,387,483,104,105,359,360,338,355,363,358,364,357,362,336,361,356,81,79,468,344,345,342,175,335,368,372,385,384,476,343,383,352,491,438,386,389,330,388,332,331,390,462,458,459,457,190,485,370,380,381,347,348,349,493,492,471,472,499,350,339,340,498,489,58,172,51,203,204,59,61,205,60,173,65,109,208,230,207,206,219,111,217,212,110,215,216,209,214,113,112,140,148,141,161,162,155,93,160,229,164,163,151,158,227,228,211,210,153,154,156,225,221,220,218,213,159,226,222,223,224,150,144,142,166,157,137,136,138,167,168,165,170,117,152,171,139,169,114,115,116,146,145,147,149,143,133,123,124,126,127,132,128,121,129,130,135,119,118,131,120,122,125,425,424,426,427,405,414,411,421,423,409,422,410,417,413,436,415,179,428,399,406,400,397,430,435,419,416,420,408,429,407,418,412,176,404,398,178,401,403,177,402,431,432,437,434,433,134]},"version":"5.2.2"} \ No newline at end of file +{"program":{"fileNames":["../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/boolean.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/console.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/date.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/error.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/json.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/math.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/number.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/regexp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/set.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/string.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/timers.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/utsjsonobject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/arraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float64array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8clampedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/dataview.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/shims.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es5.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.collection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asynciterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asyncgenerator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2020.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/hbuilderx.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/shared/dist/shared.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/reactivity/dist/reactivity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/runtime-core/dist/runtime-core.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/vue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/filedescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/ibinder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/iinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsebooleanarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/arraymap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/size.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/closeable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/flushable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/outputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/inputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/basebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/persistablebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sizef.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/serializable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/bundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/icu/util/ulocale.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/localelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/blendmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/audioattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationeffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/combinedvibration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibratormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keyevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidruntimeexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keycharactermap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/light.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/batterystate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/hardwarebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/memoryfile.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggereventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/channel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensordirectchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensoreventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/printer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messenger.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/message.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messagequeue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/looper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/handler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputdevice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/insets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rectf.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/writer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/proxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/url.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/linkoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedexceptionaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/provider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/key.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/publickey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certificate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certpath.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/timestamp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesigner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/guard.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permissioncollection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/protectiondomain.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/domaincombiner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/accesscontrolcontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/javax/security/auth/subject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/principal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/groupprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipallookupservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/pathmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/buffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/byteorder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/doublebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/shortbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/charbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/intbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/floatbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/longbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/bytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/mappedbytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/writablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/gatheringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/openoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/readablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/scatteringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/bytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/seekablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/fileattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/interruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractinterruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/completionhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronouschannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronousfilechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filelock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filestore.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/accessmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/copyoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/directorystream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/spi/filesystemprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filesystem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/file.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/printwriter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/motionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalunit.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalamount.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/duration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/region.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitywindowinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentname.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/credentialoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/getcredentialrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/outcomereceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewstructure.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/locusid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/longsparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/property.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/attributeset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/transformation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/timeinterpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/interpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/animation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/animator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/statelistanimator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileinputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileoutputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/ioexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/networkinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/inetaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagrampacket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/pipe.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/networkchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/socketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimpl.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimplfactory.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/serversocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/serversocketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/protocolfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/selectorprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/membershipkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/multicastchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/datagramchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagramsocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/xmlresourceparser.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/xfermode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/shader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/patheffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/maskfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/paint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/font.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontvariationaxis.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/typeface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/displaymetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/typedvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/colorstatelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/typedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/changedpackages.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/moduleinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/configuration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/userhandle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentsender.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/componentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/serviceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/attribution.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featureinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featuregroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signature.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signinginfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/instrumentationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/activityinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/patternmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/pathpermission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/providerinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/configurationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissiongroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/versionedpackage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/attributionsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/contentobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/chararraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/datasetobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/cursor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentvalues.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/cancellationsignal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks2.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorspace.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/ninepatch.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/color.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/mesh.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/gainmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmapshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/runtimeshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendereffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/linebreakconfig.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/measuredtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/recordingcanvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/outline.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendernode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix44.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/canvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/picture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/icon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncadaptertype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderclient.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/accounts/account.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncstatusobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentresolver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefiltergroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/resolveinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/archivedpackageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pendingintent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinstaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/installsourceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageiteminfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/applicationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/assetsprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayidentifier.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesloader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/movie.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/resources.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/drawable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationresponsevalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationresponse.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/onreceivecontentlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/surroundingtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/inputtype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/editorinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokedcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokeddispatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuitem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/submenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontrollistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetscontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/inputtransfertoken.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/syncfence.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/attachedsurfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/abssavedstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textsnapshot.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputcontentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/handwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/completioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/correctioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/previewablehandwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtextrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityrecord.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityeventsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/pointericon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextmenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/point.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/roundedcorner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/overlayproperties.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/display/deviceproductinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/display.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhash.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhashresultcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displaycutout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayshape.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/surfacetexture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturecallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/touchdelegate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/dragevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationspec.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationcapability.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/view.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/textpaint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/characterstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/updateappearance.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/clickablespan.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spanned.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spannable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/textstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporaladjuster.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/decimalstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/resolverstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalfield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/valuerange.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalquery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalaccessor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/parseposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/formatstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsettime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/month.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronoperiod.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/era.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/chronofield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isoera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/abstractchronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/dayofweek.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isochronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/period.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localtime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronozoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/characteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/attributedcharacteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/fieldposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/format.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/datetimeformatter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsetdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instant.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zoneoffsettransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zonerules.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneoffset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instantsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/clock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/textclassifier/textlinks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/serviceconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteclosable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteprogram.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitestatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitequery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitecursordriver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliterawstatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/databaseerrorhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitetransactionlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitedatabase.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/broadcastreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/sharedpreferences.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/context.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/loader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/loadermanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/assist/assistcontent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewparent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewoverlay.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/layouttransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/layoutanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewgroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/scene.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/componentcaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/pathmotion.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/sharedelementcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/layoutinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragment.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/draganddroppermissions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/adapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/spinneradapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmenttransaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/actionbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/dialoginterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/searchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/playbackstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/rating.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediadescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediametadata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/resultreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/mediacontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/framemetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transitionmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/window.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/dialog.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/voiceinteractor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/taskstackbuilder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/trustedpresentationthresholds.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/choreographer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrolinputreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureuistate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextthemewrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/splashscreen.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/toolbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/rational.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/remoteaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/application.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmentmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/activity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsactivitycallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-js/utsjs.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/worker.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/webviewstyles.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/viewtotempfilepathoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/drawablecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/snapshotoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/cssstyledeclaration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/domrect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicallbackwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/path2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/canvasrenderingcontext2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimationplaybackevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unisafeareainsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextlayout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unievent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewservicemessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewmessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadingevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nodedata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/pagenode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewdownloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewcontentheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/univideoelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitouchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextarealinechangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareafocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareablurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabtapevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswipertransitionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperanimationfinishevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistopnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistartnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltoupperevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltolowerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirichtextitemclickevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirefresherevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipointerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unidocument.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/asyncapiresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nativeloadfontfaceoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagebody.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativepage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninestedprescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativeapp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputkeyboardheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputfocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputconfirmevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputblurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrolelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicanvaselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/sourceerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniaggregateerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuninativeviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuniform.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/inavigationbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/checkboxgroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerviewchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/progressactiveendevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/radiogroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/sliderchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/switchchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickercolumnchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uninavigatorelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniclouddbelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniformelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/lifecycle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/base/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/env/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/unicloud-db/index.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/app.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/page.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/process.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vite.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/interface.uts.ts","../../../../dist/dev/.tsc/app-android/ak/config.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/index.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/i18n/index.uts.ts","../../../../dist/dev/.tsc/app-android/utils/utils.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupa.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupainstance.uts.ts","../../../../dist/dev/.tsc/app-android/types/mall-types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/sensedataservice.uts.ts","../../../../dist/dev/.tsc/app-android/utils/sapi.uts.ts","../../../../dist/dev/.tsc/app-android/utils/store.uts.ts","../../../../dist/dev/.tsc/app-android/app.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/login.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/boot.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/register.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/forgot-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/terms.uvue.ts","../../../../dist/dev/.tsc/app-android/utils/supabaseservice.uts.ts","../../../../dist/dev/.tsc/app-android/pages/user/center.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/change-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-phone.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-email.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/category.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/messages.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/cart.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/settings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/wallet.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/withdraw.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/shop-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/coupons.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-edit.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/checkout.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment-success.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/orders.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/order-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/logistics.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/apply-refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund-review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/chat.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/followed-shops.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/signin.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/exchange.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/exchange-records.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-reviews.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/my-reviews.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/balance/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/share/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/share/detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/member/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/message-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/red-packets/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/add.uvue.ts","../../../../dist/dev/.tsc/app-android/main.uts.ts"],"fileInfos":[{"version":"6e80ad2ee01e6eea8837f649d0b91002724ec74cef9b3d2b5fda718b14fc6ec9","affectsGlobalScope":true},{"version":"87e0a7f9366dc80be7b72c6d0a6e23c4f68cd2b96c90edd3da8082bfdd237af9","affectsGlobalScope":true},{"version":"2c44751aff2b2161d0450df9812bb5114ba050a522e1d5fa67f66649d678fcb4","affectsGlobalScope":true},{"version":"68566331a40bef8710069a7f5ac951543c5653c1c3fa8cc3a54c95753abbcf7a","affectsGlobalScope":true},{"version":"173b34be3df2099c2da11fb3ceecf87e883bd64f5219c0ee7bc6add9bc812cde","affectsGlobalScope":true},{"version":"9c867cbb4270f3c93a0ffaa8840b3034033a95025cd4f6bf9989ecb7b7c54a4e","affectsGlobalScope":true},{"version":"6d41c5eb02906006bad04d0ba26eafc1b10c433760b9209f4dbb7af1b8231071","affectsGlobalScope":true},{"version":"7b435c510e94d33c438626dff7d8df57d20d69f6599ba461c46fc87b8c572bce","affectsGlobalScope":true},{"version":"25f08344cf6121c92864c9f22b22ab6574001771eb1d75843006938c11f7d4ab","affectsGlobalScope":true},{"version":"f955119e78143380da1b952b56ab8ca46e10776d17e0a748678729086b0fae49","affectsGlobalScope":true},{"version":"b15b894ea3a5bcdfd96e2160e10f71ea6db8563804bbaa4cdf3b86a21c7e7da0","affectsGlobalScope":true},{"version":"db491a26fb6bb04dd6c9aecbe3803dd94c1e5d3dd839ffed552ffaf4e419871a","affectsGlobalScope":true},{"version":"463cb70eebbf68046eba623ed570e54c425ea29d46d7476da84134722a6d155b","affectsGlobalScope":true},{"version":"a7cca769cf6ecd24d991ae00ac9715b012cae512f27d569513eb2e47fc8ef952","affectsGlobalScope":true},{"version":"d27811b28326ce496b3a0810a4b38d9391e929b150d9d8b881a562c9c9d666c0","affectsGlobalScope":true},{"version":"0aca09a3a690438ac20a824d8236bfdb84e4035724e77073c7f144b18339ec65","affectsGlobalScope":true},{"version":"0f844aa90d79ff631b051f5ee8540a8936d48c39914c910e89e7b7949bbac865","affectsGlobalScope":true},{"version":"0fbf8b372e8d8349a3b5a1f470bb7897272bb43aa88066e50dce25fde261cd93","affectsGlobalScope":true},{"version":"0ef38eeb51b042d85f64103ec93a37ba8683a31c22fdfd76c69852e982aa08c6","affectsGlobalScope":true},{"version":"9652d98559378167cb1f4eb57e51119e4fef5861d18c5928c6bae207b80adfe3","affectsGlobalScope":true},{"version":"7c1cfb70557e907294946a14c5eba189f77d5e9dfe7f02832ee5c6f3f34dc4d5","affectsGlobalScope":true},{"version":"baa7e3434cefa49e8965ea72a0c26fe056b2e9d978ac2bb3abd204fcd6c4fc0d","affectsGlobalScope":true},{"version":"aca5b50919b30253d6db79ecb92848d8dae72c7998df1454a19e21dd633a75b1","affectsGlobalScope":true},{"version":"016e96968aee1fb6804200c75a11e876371536a98e772cb55ffbf482ddbd8822","affectsGlobalScope":true},{"version":"4567cbd464d15226a40a5b3d671e20665aa070a2c4fa3f4682700f563f9ab730","affectsGlobalScope":true},{"version":"bfea9c54c2142652e7f2f09b7b395c57f3e7650fb2981d9f183de9eeae8a1487","affectsGlobalScope":true},{"version":"5b4344f074c83584664e93d170e99db772577f7ced22b73deaf3cfb798a76958","affectsGlobalScope":true},"db8eb85d3f5c85cc8b2b051fde29f227ec8fbe50fd53c0dc5fc7a35b0209de4a",{"version":"8b46e06cc0690b9a6bf177133da7a917969cacbd6a58c8b9b1a261abd33cb04d","affectsGlobalScope":true},{"version":"c2e5d9c9ebf7c1dc6e3f4de35ae66c635240fe1f90cccc58c88200a5aa4a227c","affectsGlobalScope":true},{"version":"c5277ad101105fbcb9e32c74cea42b2a3fbebc5b63d26ca5b0c900be136a7584","affectsGlobalScope":true},{"version":"46a47bc3acc0af133029fb44c0c25f102828995c1c633d141ac84240b68cdfad","affectsGlobalScope":true},{"version":"bf7e3cadb46cd342e77f1409a000ea51a26a336be4093ee1791288e990f3dadf","affectsGlobalScope":true},{"version":"3fb65674722f36d0cc143a1eb3f44b3ab9ecd8d5e09febcfbc0393bec72c16b5","affectsGlobalScope":true},{"version":"daf924aae59d404ac5e4b21d9a8b817b2118452e7eb2ec0c2c8494fb25cb4ab3","affectsGlobalScope":true},{"version":"120ddb03b09c36f2e2624563a384123d08f6243018e131e8c97a1bb1f0e73df5","affectsGlobalScope":true},{"version":"0daef79ef17e2d10a96f021096f6c02d51a0648514f39def46c9a8a3018196be","affectsGlobalScope":true},{"version":"571605fec3d26fc2b8fbffb6aa32d2ef810b06aa51c1b0c3c65bbc47bd5b4a5e","affectsGlobalScope":true},{"version":"51536e45c08d8b901d596d8d48db9ab14f2a2fd465ed5e2a18dda1d1bae6fe5a","affectsGlobalScope":true},"897a4b80718f9228e992483fefa164d61e78548e57fbf23c76557f9e9805285e","ab2680cfdaea321773953b64ec757510297477ad349307e93b883f0813e2a744",{"version":"8a931e7299563cecc9c06d5b0b656dca721af7339b37c7b4168e41b63b7cfd04","affectsGlobalScope":true},"7da94064e1304209e28b08779b3e1a9d2e939cf9b736c9c450bc2596521c417f","7cce3fa83b9b8cad28998e2ffa7bb802841bb843f83164ba12342b51bf3ae453","dc44a5ac4c9a05feede6d8acf7e6e768ca266b1ce56030af1a3ab4138234bf45",{"version":"451f4c4dd94dd827770739cc52e3c65ac6c3154ad35ae34ad066de2a664b727a","affectsGlobalScope":true},{"version":"2f2af0034204cd7e4e6fc0c8d7a732152c055e030f1590abea84af9127e0ed46","affectsGlobalScope":true},{"version":"0c26e42734c9bf81c50813761fc91dc16a0682e4faa8944c218f4aaf73d74acf","affectsGlobalScope":true},{"version":"af11b7631baab8e9159d290632eb6d5aa2f44e08c34b5ea5dc3ac45493fffed5","affectsGlobalScope":true},{"version":"9ae2c80b25e85af48286ea185227d52786555ac3b556b304afd2226866a43e2a","affectsGlobalScope":true},"a9f049ea570ee986ad735ceba97a15d423659025fd070da3da67eeb8abf79fb2","5e94ed5f6b634fb2efe8715d7a14898244e87d97de8f30c5f1ce659325f35b63","b7cce00afe96bd61edceeda75e87001c606d6afae1269d408b762909ca550025","753ec8d1da4a289e4c8ab87eaf69ff564ccf882b9b205d748b8fee35e5c13c84","dcb4f549a765d67fd8112c49cb86835f903bbc7b3c744a0e0e6586bfcf6b797a","69bea942e5e363f5afe74ade98131ef7e6424ceb6eafa912c4fd558e95cfd13a","fe9bf6de0f7eb5bcdecbc97a9f9d143fc47ed6b2d4f4c7d626a163fb3683df38","113a30c935a90737c27e5b166753e8cd2c52cb7eb970a6bf8c7aaeb41a50f1ee","345270970a9c2a3acbb36b6e8d6929bd67a51089c1bd5ee69a6e3a7fde03a31b","c9ad66dfbb3053a5c29fccf8365eb0591f842a0238bd6acf7315c69249bd63d7","be45ce8cab2a0fbf2650402c462e99c1d7a881d4722435646ae8ba6f487ff3db","d16e1c53c406a38a3bcf4d00c3d4b563de4b314a20217289fb0e540fa693f30b","1215db238a845972b6d722503f428d9c8af6162341a437202039a397f0a3b4c1","35d891aaa6d58b6b5222cec630cb7cae1c0db8d022bd12aba90010e7fd1e0d5c","155136082237896cfaa4af7370dc01a631ac790fa0dcc2969be674f0a02de5a2","7624ff1625a5d1ebcdb3161f7f5424b21fb3af0204d3f4d35d6e27d1947ad1bc","7bb9019b6498ed08c1ebcf61148f8b793abb3cc3923b0ac3478937211830d85f","ae03093b0feedf80a44033b3103c5e3338014efa3f3e24845bf26274b56502a7","6d7cb1c3550c1cf70353db405d8cdeeeb086ee133481d491a7f18a121296da97","95a912851175159e7e4f743314fb8822cd420106bde2aedd824d46177ba99096","4818294229770bda38c78a67eacc25a54fe3a7139cef63c16dceef161eee3a1e","75c2abd02e246ceac6959a2fff8b140ed7558a53c27e1aff74a799ecfd93e78a","af4a013ff8eadb3da77fad719c7cd817990353cef3e92a71119c4bde4315ace9","6e7baf1a770b2b2511fca9d7eb9262c426571c96a19d4e906dcbd829618d8a07","3281685ed81a5f4cd84de92382261796473bbc121dfacf41fd13db4c256f83a7","75c18be6fbada64942047f2e29116c1598eea0fb259b66553cfe485a36bf98fb","2faab834c91aa96433e7a8754a557b48dfcc62f52d4c9c89c207388ad32ec70b","ffaaa31124382edc748ca1ff1aeb9e9300901546526e1356b10f166ac4f3f3ab","7e7b2aa55273a7f11e445b8f1f23c9e3d15d9aee5ace616534e8b16faf04c7b6","f4555f41566ae26a07b20098b9ab36476f7b185ca1e31204e593c34b51e3d5d2","be7cb8f67c758b1257fd0b90b9d546db908279170299f2df910c5fb05812b453","ef09a4caf8a73b19a1a5d861896499d1bc1d2b7d317af56b613fc379cdcf7f3d","a9826fdd6dfd19e91873c0c69195ebf925c652fd7096ea6a6dcb5d081037f8da","417de4e994c7f3f7c5c7710eaf664ed94347b40fdb7ef3f6a2cb5079a08da145","7f7a841a4438b02913186a76fc16143be3c3d0b9d5e596fc3b1e8b2c86b6a892","dd85cdccad106178a91b0e274bc61c704c0c2758843d29d699c028689e67552d","e2b50c5db2178aa09da186d8b60e2f589bc6998deeefba9be9df4c0686c0dca2","560f73409bc73749185b2d598923d2886dcf259b8864aa28786526164c6ae494","734a97c19cfa217eb74f1da4b933bc0318e53befff66c25043078404a0a5a3fb","f8f34d360348460782fc26f7e70cdeeb8150eaebff535b4075fb64d749142e9b","9c8b8cfe32f699471ca567ec171102bfd8a4abba5693d1837b45de1d93626910","aca17a9829f3267c504ebc02d05115616e4f0398b53e82599fd7a70662c4dd50","236f39f3abf84c47d0663a94647ca67bb92b8ab8eb1d7c0f9b15a77c20400ba3","6b41d23aa626a42b433e913b51024e310aed256d745cda2685c663ebf7a277ba","692673cea6d597777fa0b866c6d93e4cd1fbe7749a49bec3504f3d6852da382d","cd903ae80936070b05eebc6e0c461d9479ce64cf1ba537cfdc8d78b3d9a81e1d","360e08b9f7239540ba530e0f38576059fe0efaae8fcbf67f0fe5ebc169f475d3","6e66fa453a3da37ae7ae2fee12937b38d1210a0bc22a25fa70f999f8a98b8c3f","6898a15ba9329b18503a934d772f8e7d9d8d2172ed3424ea43dcee250e225cee","bc8c6cd4ce4e561453acdc3a22b6f9bfe5ba2bd4557fdef998369081c9134275","3df8d611a65ce138aebef52e24c51687ab9430e4cc9cff0c92bf52834a6c8023","5dcd61aeda70e3af3934446d645000bf91b7b6d71cf75141f9f4bd32ffbf4a1f","5948cfa7a16bb3b6694049a3d7c59566125a575beea799ebf86355888fa15f05","141027c7195a6e49d68ec954a6c850a67183117b1a48ca9e55d586abbcc286a2","ff64b99cc27e43aefdefe313778db4b98e1ec8e66bd8c9e8dd1da7a848852110","0e985df7af2d15cf2ded941415a3132f92fa1f39182c36e2541f0897578a90e0","7b1c9d68ac624e2ce9fbcef42f03df9eb5d7922b697c4eb0625bc5932c7e5626","c9cd9b2f01b474b6d1f824261274d4e2944543cba989e13ec8fb45eaf428fb99","0621f832a6db1c7e15d4b8e27efb3b6a2dfbf0061d548d20a0fa3acd6e7e9ad0","1362b7513042c64d05ef2e4073ca3ef25825e6c953c4d5455580ee50a232e083","f7a55f60dda8daa1e82458d64f4f1dd5f3113320ecdfd98a14ca95d423574207","6e62d79025167711952e5abc46fe773b83dd7fbc3432f3d60e34263ef07b8a88","a07425e97c460bd3c764ce3d857fe37fa7d1808b3ddac022d348e7bacaa58336","6ddf6dc4e11f0041c3d513c6ecbca1a62c71edf8a75606396a9937e97b0976a8","8c907668fe1c4c163e322f2c563c5f1de02ce8bedfe90335a4cf2fbf01e7ec42","2888b08f7df74672945e8913b3f8b482a519d8ead96db6413328531b98fce6a0","b0765d93e1ae41c0b9231e50ee9850a9ab30043bb9f40cc4b720c31e55dcefb2","e1a94bff81e13adc6eb802257e67f4ccc54d4268e76236dac5fdce5aef22a445","636cd0739ee78e7d5d7d7aec83243de13f3e92c6bdcdc4325756fedd4363fba3","b14f0680cf344c2ff3c2c03c9fbd5413ed76902100a8c476a04dac98113ae6ce","b00fc5ea3c8d7676d825c82783c73dc1a9b662bcea886cde8861a93ce0637902","ebb3d0ff97c54e1995f229e6dfee89d255e8b37ce50360642e3e4f4041e00850","1e995807d59118d7808da9ab62300b2b535686c1356df51ff64365ef6f255909","f63b65154c9e12d730832f8f0b0f77f1ce912bf6d6bd8296759b2a57aea933a4","37fa9c72aeca0c40378a13917e15c08f70618fc1af50db2390c54a2da5891156","f89deb8cdd5de1cc0b735108eeea49bf81af828bb893b1740afa59af0b726e1b","91d50f7a3484627280e6b3873386d1a44dcf956156d2b31ea9741c1327be23e9","a9da237d591fdcbd3db71e2c52fccfe18a203bb810aa891bfdec7f7334289174","6fc646802b257c559c61bb190cf1c39377f97c8edcfb9b4f7215f4000b16be52","52bd2529c7f409e5c239d43ea7444c394e6be64b509437c3c25fca52f3aa5144","f52a07b2ca2e4dab99459d521867b3f4c5a2032677a0c803d90c400a34c55a40","dbb522d1482ff56669c9f281491dee1ae8a75e015c5becdb348c2dcc02afddc9","2b63c811c1648b74cf6e4337c99d9e84abe4d105bc9e38d38810c358e431a023","ecf25c2f08b3a89cb878eb832a7f0ad19a7070905ae687d36bd5abfe2d6b7e7e","e11fcfb3cb83517aefe0f4713f395a0dc18f7c6aee361a0bce258c3d22a1bc00","4a83c0012226f26b3d13aec38482c66f3a605c0b20827ef19bbd8d49cee622f2","cdfff4439385638f00f16b0c50b1c0ec6452281af8e9be558432cffbce7aad22","034b7b464137cdc0c1ec97078a3d12c6a3f283d60cfa09756cef051042b79463","ecdaa87c9dcec6f7c802e5a2d3926691cf1fea4d8f8e916a93a0b410d8daf91d","4c6a9787e1b611dad138b011c9abb88395aaa9bd473cd713f2064aacdeaee396","52f648342dbae30c9a51cfb4859e0ac8cc64197351e53eb1e2a04e0315c17ff7","2922eb5995ced0c1d56d05304a32b8805b6d582d736c3168526c9011dad0233b","5f3833db4ede7a6c5955a483a01d50359c874b5a0b4ab5afe26e0232666da187","a3037d173041b7bd28ffaad2a9c10837b5d315652d1ec4da9fa3c7aa7fe59f87","23b539194ab717460588dc29b98d18318c217f4e74258b37bba04c9e07d71d1e","076bc471e07b6780a988f0d244e614e4fd5b93deeb7eb58ffb30efc270423de8","b3bca5abd1ec281a32ec6bcfd1c2975aeb9683ea3eec68bf323d8cee61afca90","edd3eb041e9fcea3765ae94f145524eeacff60b721e34ec1b9a7061276352719","c5450ecca5a8946d0ca8d2bcd8506c22c33a4af38cbffba6d03b4304a823e50d","4c6ef9fc8bf8d9038bcd22fba5b4edd22ea05a3d536ebdd5b07f720d02607a93","04f7b9e58a831b4f7f5d6bb170e87820c68ceccd86ece944c5cbb376fee8416f","db12cd264aabe686c6a027c8af3afa72486b0cf4291d5f5c8ee148325264de1c","c19c6bb7f81272ea573f2174600665cc999e8a7596fc2f9fae2daa689575f08d","95663e373c6b4ce80da0f9e21c564f4f201fed54773f9e27319ef441b547470e","e8af6903e8e7f3f405654c808534319d1105e5d05c5d5b7ab00dc05ff8c123ca","95a831ca188856a59bc544031053fda680056f0c0e2ee2722ebf614f50b7e54b","ad3683201a9dac34ae25a2c57af2dba04805cc998fe78df34facc13dc970ffb0","3052cfcfd8ccb093f64924792c7d3090490a803331969e44cab52cab4cb74698","98366b7911900d3a31c6e85c326f7ba664a28fbd24fba191faedadec01fb2c4a","4f3924ede1fa4f31f726c577e5056c407e995cf6f140d5a37b25637d512c6d2a","739779e95e30515697347572fdd439ad55442bf175aaa6763444336b258964dc","6369eadb1ef17bc4faff5eeadf6bf759986e6dcba8e412aacbc7681c5a1ffe00","9352428676f84478a26cc7b750e4a9d2abc7189b6369452067e4da2afe1d3be1","a2f25e1d6a2a69b6c88f86c6d39914c9e9a1634c9165db2cf05f9f7273b2737d","bb356f5b92a22eb4bcca50ed190e2bd94fb2fd6ccd5f0bd184ab94b10aaf8e22","fabdd71c50eaac10936f748c32779ba276c3b778fb697d5b36c18b416958bc06","55137dec811a92edfa329067ddcfb042673ffdcbad49dae12c61cf9ff2410822","96f21e74ddcc1a72f611bb90f4146bff4bfa61a0ce5d32dc10592f9bca6d9dd4","b7ef1d83bdc824781f07b5347176f154c98190874c5f5ba2c0797225ad370b2c","0e7a4c6bc6f826aa0032971691aeef1d4d6c8bd17529652f4f764749e33b2167","c702feb8c88742697dd03848be3381f849776cea383497cfe9c72075ba6996fc","890729ef6b2e352d1750186bb3cb740f4d450d4f5d58e80c988ef79c596b4db8","caf48a1f9ca7807e639635d357c615d61be9260f3b3c15fd3b32c9a136b95330","7def810f306678f7f8c1305a372c6e8d4ecf984f0cb067dc8fd422dfab2bd6ee","7accc5c71c146538a30125e240e7be8cfc29a9e263f4540b14c55db4af3fc4c0","04e345066cc36c58551825d6e84cd23db6e78607ab1ccda754c6bae66e0b0fc4","172c9efb0cff276f9cb01dfa2ac5b7b6d5fe3a547e264fa2a15187d7dd9d6c93","8d9202dcdfb70d6335082e1af748cc1e8b3ab4ea42fa9d34403233b8a2693cf8","f4600cc019ff4c47e17213c7d2ec5c831db0a9379d7376fa2fae3af29c9c82b7","b7dd7c73cc8c564f0bdd5217f56cf42fde85c7524b06739e76f08265a3e8a1ec","2fc96755c9ce9f4f3d6a4f7406b8abdd0651c7548296e060908c4b75b7bc42da","c94c469279059c008ff138b5b091085b1f4326824abe8265140fb26021e294ac","f2f23a8040a3b977f2adc72622b49145f1605300d5b279c4debbff8d535c469a","41d81600effb129c209f86ae32231ddc357d7acedb9fa9ebfe60c308475d1b36","67368e74c92373e743f2942eaffd292cdd6f91d3a4d4210649de88e886f727f5","2e3ca531dc7f889d2525b5548bf18b0ecb5b2b1ace8c89e5644b5a84ed80df0f","13cde4d1ad843f50fa82156e498420f3d6231eeddbd9c856f2fbc947cee14f69","7ee62691b05718e30a74db92d9295084ab8d9dd0764754995545b672017694a9","7c89dee0144087f836d6b9452ba29aa4967317ffca1be148988eb81b5a357992","616e4dc1950431f1786d66b11b6e6f18565814d3098faa8785bf2fb71d7d97f4","fa065dd51bd483dc403955d383e587f65cd99070cad7b1e638d24fb084df9879","defa4a8e6bee828a1c2dcb37f58597411f5299557e37efef2136fd6a042a0ecd","7e5a27c15c04faa14436677396f5075f2acb6b0aa33670543ba5d75251ec3be0","0b5823a49cbcd5576d7fa7f439441ced3386eb630279cb7a3bb30246cb2519aa","7d964df58d57fb44484522e32f2e99d0fc6bdd929bec44ad5a051cce31703737","dd0b587ad7c873cce8d7e51b947a8c1b722e00881b0b485af46f9f4e9dfc9fb2","f72781d005c256a6d64fe522eadb2c2a2b920c91e395dd2837b4193ec6a32b6d","827c3bc97611a0334d90bb429cd61547e1479349cf904428fede5ba28bd02ca0","9c865c53cf594f71256e90f1e7777688088e05f7040702c0af1b31b2a17979c8","ad149f89d84abf476903e0a70593bf8a9a9870f3363f03e48bce03a60b9032cb","42c0632af4a7291567b196d0653c7e47ed807968bcd9330e14cca8fd5137411f","cf92f44b3a567bd9842fb31ea8f3fa8d71389a703e83b0104ca057a9c7c401b5","ec9f73c33592a97de39ce97779da9c1d9a3a81416f60024cf3a094d8bc6a51f0","59899090f0e604d38520297678161172eb0da2e276d50b734782ac74bf710b64","a4261d849c4c4834f22b6c33fb05fca37078eee9a4dc6fa00c90f2cc0ddadafe","33f8235ee036526ba4f6281be5a9675977efec915fa370ea9823be3b743493b4","92106a20ad252996f5de30ac709a31f7e968eb0e3faf02d439bfc19736358abd","d3418282d5ac5cf21a0c186d4ce7958c5a8b8e35d69d79225eee9561bd5e941b","deadf795497e8a65e573447e50e36a3b30f7e6cf70c02b4235c7aad21624f9cf","bcfe531c8d0cd3b6c3b24e398f78f7b51a3c4d44c75225fa8f8bf4fe30fb6ec2","b451a4d6f6ecc0523e2bd43e2297c68d63647a330a7c893a3a356dc90c0b7e35","5ac5bd94c6929192ff715f8c15543a2b7331f0db6f8b9a5680956339c4ac5841","0ee0e380e1d17c3e6183b70c012b18166bf6ef593923f2b4083d99697fd61d5e","11f2b58acfd6affaa3ff00799fe3744768c073ccf63320634067988309b86b27","055c94ddb36bb93d5bd06af77e403511ebe8952802934ea2c9af6effa2859a11","795418f74f7d511631329ef4a917d7e065c7f7b8f261eb6576e5e1b364fcaf93","f07aa0f14b07105c64bebcb9e792216b85e21dba5ad5fc7d69dafc990998c9ab","3590279ae9cb56082358ac736c650e2500d3e354aacc4ad0d46da2bb9c074b70","d14cb41bef07c4b766260e33f77affc25c326bab71a29b38de49c736bef814c1","9784caa1704ad93d707a343016dce9afc51e3d4bc473c44afaa5ef73bf02ec67","f9da916dde53443d9ff83edfa1b404fd468280839379215c45b98748ad36413f","89e00a80153e04f55fc2abf67a5fa26e843e94e4d896eb906ac131113e623dcb","695d60af09f1ea0abfbaac6029a847d5acd974031ffa92bb30a5046412141366","e5fb35e195ee33c761e1dfe073436e30c7f38d72cd4739dd2deca834cb2040bf","00a0288ce31d3e3129fc177a60c130cd792f2ecfd6e634c4cf9ef38b075d7e5b","db2d09f8715a7f099f32904cc44ca3259bc0d6c9f8afb539f0e94082c3421b32","d005bd50e8eb8fb8b93c2f9c1c6ccb1445d21fb55e02ecf2782fbc921f4e3066","99b4c7f34a053d3bea56a63a20077ec8ae250cafe28730428dd18f8bb01e8ae7","2a3b6a931d2bcd2998c06cebc2d86ac66300a65fac01f9fd1a5ca39746921148","18e2f9802d6f93be156bdc2c771ade01af119f6735ddc52611dd47c00da6de74","60c6f70be8a7438ebf45665d8edbd06b2d6f12e57374d5d3dc2f5117f3e56359","9fdd23e11fd5b1dca494cc919f706f502804acef50cee593723ed4087e486f7e","784d7599403cb4e6595c528758daefd24ec8d6867ba668dfc524deb04ffbc1a7","e254021ff17cd2dffd5ba54458cfa43a07520db1b679dd74a54bfec16c198eed","31d3d8d7c90229e478767cf35dfaa0d63fa453f03d11a3c9ea0bcf49a000852e","a811babe4e7849025cb2c111317d96da26b0c2c0bcd9a5a6baa5c0244ecc2c4b","5dcb774809733fd4c12d74e54e4604d6462668f0ff9f89e610d3c8ed7daade4b","6dfb57cbb5123326dd2591fdd29cf2a6edfbd50473f84ba56b41dc1a9a5c9335","2c4c16ae9d3ee7cbfd81aa78318dd44aab3e89f104ea5b83db823c62e8035958","452faa95475c0a3d13b75d2a16e3400f7689c66210f41160bdd7cea51f58269e","2a58ae82f98a35406aa0aaf823ceab9788bfb5f8f634df0f81e33f052cc9a070","c4bbb6c48e58b754e445b06107d128d1827917dd3ff142ee91842b9a9c112384","219683614118701da9fd97320073c9ba09a038636e85a9020572e5604028dbae","e02e548bcf8cdbfaad3014721c0afc4d9155864326e3ea996526e20e6a2afd4d","870fdd3a3eba1f8ce6d5a9f0a26ee479aefa7021f907bd7113c2742d4270a4dc","04f86e5474108337feddc60f974803afbfc9ec42d62ba329edc96c90c730020b","4fe88323f71b0c362f2a0bd9134ab39f3631259df044ed828110508864832c33","0598cf1cb02c868f6c3f00f66f5eed0c5f3224fde091e5caf586a32f2d54a256","a7ebf86af52748a4e9be5ae5659227d9c9f32e66938bf8f01e98c3fb3315d3d1","ee844259ed172b447221233f5f5858f3f9c14740d5b62cddf1462ef2a6e1272d","142e686aafed13c5d48f79c62cfc000896a2a57bd6eb900c2d7c33428df54c1d","744ecf788f2bcbc504d2854a287256f45df04c3c7e8ebe6997310f5d61b50711","f0e88b50b239c95a138b1e484eb51f502dd62f8573556e8a2389b5fd30133ada","651c9cd467ee2d3a75fbcbfdc9ce0663d8a7918b00051f9e8caf2c29c97f1dce","1755b7e2ac5ff0c983ed2af446b6e2be02aab92cec69b529d5bacad737c92ba5","75372fc69641935f9001968fd8a738f17427a92236783d830d9a1658c317c9bc","79857c3eddd652e3bf563ee8a8ac42f77602b493241f5d4ecf321deb07d3265c","493374b8fed9e916f65268ae34b2eb50d54dac6c6155c8c3aec2b110b96eb846","3f67bfe77198b02a087dd8696dd7cfb815e14d53beb18dec7775aee1d58702c7","ccc5205e0d157e66fda814ca588dee8c132fe54018d0d82661cef3cb6a61dea7","700797233325d51580854ed460164d5fef06c5c6479154336ed7fb4573c22faf","63b6ea7963794e1a1cbf29a4b9e6e5a18a16bc0acf12c4c497b13b8189291577","c940f837169ec3a8fab6fbfb8982c102be8568226547083fcaa7120cfaaa8cfa","e7c3a4ba9d905fd2c0e8c9fa1a7cc8d60e34de72c4fba3f485f1ae6f28d30e49","1c2e47b8eb25bf91b26b6d41e7dffb80d763866bac7cce5521a7a776a5219d7b","7b6c20a8df3cd20f3c7897bd4e7d14a3470bcf698aeece02039fa55977c6cd6c","3f13e83bc86dd062b425976807aed2f63743f517d1507e74c14ac1bb4e6af2f5","e7a3f8116acb64d02bb91ec7c607e4f605b80db625a6b81b2d86347be7872caf","51633fe4f49dbc57954c0c606e445e4f091b7af3420d80884accebc2116e3382","d6f2f3c749d1adf9b6d572d27c27eb0de6c97b07032c48e3f70837139e9180a3","170b85f7259689ce23bc809d7cea2a7fc79b7f4e524fd73930e66783b656c330","479da7ed69ee5914191bd855aa74fc34406c4c3864149a528b0cc76037250e59","8766424888a810870e4be559a7276449184edcae82db64731448db12049800ab","3019a26416cfecfa581ed6835e94ca21b0702114056dce8836e3a1226d732640","f0eadd8d5b164b19483b7c62e85a2249611b9dee897c7f1b46e109cce13b22cb","5f476be61ef4a259f7067891c04795ddadf1fe8450671cda83e27636ef2ad0c4","5be2d74a8b503f4ba88f905316a3704f28074cf30b884ff423ecf60a7d9fd4e2","d6f8636d479116a1cef3c6e6415d5326e5bacc5d0bbc361bbd507cdd451b1594","692ddfb913a98bcaf42cb94473d0d4a45683addbf48f3a1d5c5869073e09ed41","3d51204c5e6a69cb45ea152c968eb5a26db0ca7d06d73889dfb012edbcafda48","bdb19d108c2a788c48040cebb03d4bad79731996ca9765e7b292492d59e8f31f","734cfc086d6f945e9a84aadb7a2cb73214a9a86df7d0853409e36ad0ada006e7","c2d9d2be0c62d9eb038421e2a51be0f098f8da42472080649945506d9f8b2d64","38d5dea40c2e2423eff59924eca48e669ed88441815187bac4262ef0ad2689f0","688db86acd5f0d3a167a0bb4778bdecba769f2d94c8f2291277f0b51e7cbfcd1","1c2d49d8d8d90cdf734a7eaeac76e05829437eb657caa9e9403b56701a00b747","9c37c1dafbbfa00089e3ba095269dfcce8196e7cf2e7866124a577bed39b1341","25b2e683398aab0e633bfd679093be0e781f8259f3a7212c74090eabef71829a","870a3b40f227aca3021236bf178d76508583497a04ccde082db4735cfbdc413e","4206886663e1df92db9fd3286566a7b40d08c754109815aa1c5348469156b454","546275842f9a117e664c71aa151099b612126abf5002b7ea9a7d29db3f7ea06e","5d3e9c802093fd0f3621ad32231fdb40951d750679921c24be00207580515fdd","b638e2349147b410c99c7abb3b916484c84f931c0e54a51610eac23674f5462c","991acf2b656113675182be59c7bedb01f42132c7777d49ab56a20f7fd0eb0c53","c06c2a0bdf10e96019121c1ad43550e1309cbdcfb618fdfd5f5007c464b35869","dc67651920a1617964151323c9c0fc22962948131fccb442e3858deb974f0c0a","4dded26d1610b1fcd97be8bc2adbe9bf49cd6c574bb54f544a706ead913ce579","81b3af7d7e8df93862b5c308efb013845eb80b34c5bddb6bcf97269ac881b454","dfb5b0e704f05aa091ad57629da2964d4b4ebb92de88830e59641df028742982","ccabbc8d7cb2972fa82cfab2f68118ff53236e3f73a98dc20f77c0ceaa1c2323","b92d5c9cccabb04f74d0329058e29e4edf43ec80a427a9553e3dc006887260b3","310519588275401653a9e2524530076c0615619f4ed02a90f4c295256145ffdb","c654364580b1b5192b100687f5337a6cd364c49fa4d435a1de2088ba5aedc687","3a66a49f53f67807ef110033829b67d0ffe29032ba9b9c2d05a78cde639c7fe9","4a36f2312ade82cfc32f31fbf131cfcd29038f5f88dfb663d5faebf0c39bbb8c","c05e29c903823a814853aa0803301724bcee784eb332e63a673efc556283bbe6","71933894b1cb6b21be3e94316e86a3fac2492c2bc08944ae9611b85387f2b0fd","e5a70a8f848f1e7665865e76872cae69906a3976b61efa1580f8a9229d012e03","5fb73749ab8047b48d360937332fe28dc50e085a431f7327a6b5d530071bd06a","218ab8481329fd2accca1e5debb45dac5eeba96b39bba5f659009539f138cbd0","0930323b4efbec69877906806bd2a069c96896d35b5fe879eccf64059bdd0702","c0f9aa7e3e64a5097534bdb379b91e9c6838033cc1406805b06eb4f2bcb8adb1","e33f32c896ea534b5587a1166b769f1259a0d3bcf021fea449c03775e4ce5bb7","10c91f6a781c0068e7e3ac9435a38342e34965dd3cc7111a824e5c7d6a0106c0","5ae29d8bd0fbab2cea691b9541833b76c9a542013ad33710a109ff7f0751ae71","7b4ddfc74242c161aa469a8c1ba0d01915779a87a85e1476febe79111b52c5ff","d712fb0b184c4dd377292dc9767530e9249d73a04690dfca42c350cd4a02338b","72028dca7892e4d0175a4ed026701d73b5a5e8ad5c3771dfbe1138f1488a03be","ed145ad7bd6050dacd85f1c7e50fcd5aafa0433339dc2630a37bfc930d8589df","c063c430d8f55f4d7e4bb7ebf91fd7bd50e8d37f3406d356ecfa6c909350db29","9cba5e78db08657ac090c65d42534dba1592010544541b7810b35855570eaea5","abbfbef2b303ba2de958b6b872319bf3d4fc2d931da921efa09b092a91e3aa6b","e3bfc18a8b10bf2d1495eb4b3d4dbce361348fd743a785956d5aa868e62532de","b2656290b994b55e6cafe2640efdac100c004adec35498d4f470489a45a01862","6eab49aeb5385eedddd1c559a0fb5c09c8a18ee4c675ea1c9ccc061f7bc42851","e2acf71e1a4fc7f7a90e01d9c9c2c8e68dc42fb64a6e7276287bdc7ddea84214","d7eee876214292d6d5b868bdc75382459d63ee4ce8ddafdfe881efab51b5ef68","ab032d928152e2db5be177587327d54c90eb7c117f511db93430329ca0f377b8","f098324307a2ff30be1a9f32e72e3aaba90da04fd1e9f049c0769b079b6103fe","6049f94460f61904ef21883ba8e33ccb44b375beb0ab34061727f00a81aa4d8c","50de79e82b5c05faca1a582c3d607327af5ada600c6c04fd7e316d2f45e3d8a8","f01a152654a9a507506c715e69ee756fb7655868e592b39876129747346b37ee","9bffe80260c554aa2cbf095500c995460101af6eaf73c73a0e9a5fd010cb13ea","053dbae8c05eacde27db36ec5579374b5ae43908a0785232dd64a119f67e8312","f3b1803e1d654a91dc2f717a6303deda942fccaee3b214da79036ddedbc00aba","9841b6295555dd6eabc901bb6d3c1cd5c5bc54b98cb42fc51843495b5c30d0dc","bc0d319e41b6e74bad9b40e300ef0f5ace1c35b0e05735734e00a9a1b4529386","bebeb2d6b9908b8436e7287b8ac1181c64413f67ba95f75ded3394ac32e773f4","c8ea876fd7003a81023eed439b17a43102e6ed1098784770cf75c97141122aef","0f8e5ea2ae53ebd5cc361b68dd769c7ebab313df09ab3f3bada1057e8912718a","31776bf779655f6c80dbe834cb41c3fc3a5679813d009d54edbaa566aadc4449","37dd9cda7e4c1c3efad74cdc1305fe1b70a54fb25c1e960fcff5c1f95b857b2f","b027177cf9d90394842e000df982b32d996992a3270c48236b254ffa8862dc00","81800937cbae367db7745647bcbd75c38ae4e4114aed57ba00e14143a2771592","df3147e3f4c3f381fdc44804eeea2557af08f2ff5f05dd2f7e251b35d5974083","5c30fc9007e35a95a06d1b692099f6efc9bc1bb96a1d5a5d6bca96536c5b0d00","64c5f1364683f030776a3163d566cb2efd2069aae22c6e9d2b7e26ea1099d4ab","14fa28f24d61bda6cbdf507f9e8e1943995c4e5636f81e13125f3cbc7ac8d92f","c26f1d3fdb8f7fdf406eacd8b9dcb10db9fe3cc7e1e6a9eb34c5fd3d337efbda","4801ce5e0e889617c01743d837dea896b4665cfbae623a87a2397fab26f659fb","b833095a6a099770438573a7d76b9f914594012e547be2c556d1e1d3250b75a8","4e8e990f4db7856337b3d1653c79bc0516d3c8f354e7a6e8402d9dbbd7144e65","1fa883af678154c29e9bd700aca19b34652535836d9bf7a0b460b13eeb735b87","cc575e3fd7b401d7174141a186554fbb02dc4b8d331fedfa7b3100daa3b80ede","0e4a0b82e38b8363eed4d6a077911b99ca2e3cf1783b13429759286a390912e0","723b00629de441eafab07568c93668685b149345c2b05ad708a8a6454ec631da","b4323a664b69955890c49f0cc6085ed5e72694cdbfc41324ad2cffea4f638fb8","4b379fededb05ff467e513c3cf72bbf020eec7af35e6469e3254d5bc64d3a1a4","f04e225f4d8e584b1c831c637c4fe7bd87a883d6a497e69714a7a28e847ce3cd","2ded5138347ab78bdf2c26620590d02ebd17c27e1e066f288a36d945fcabed42","c0d39cde2ba477c45a0e9e2a9ec06105efa556a334e9a602fd1785416060d6be","78ec7867d878c548b5c7ed2666c6d53f47dfc69d0096808b9d7f51802566aaca","e6aa21fd5acdb192f250cdd88234ee6a7cf5cc9305da17154e61557444c61446","c08f744bbd44f2680fd88eb1639958049ba6474310e9bfcbf00b2b2d42189bdf","0d6054a6bc3a72dd52b8a7794a3fd190eb2158f87d2aa6b6988ad6f8068b89ed","8e352c0efe439c8168c631188927adfc249c92b71f016cd6e7ade1cc6f63e6c8","2e2de1897f5a1f98a8307938953ad1987b1457b140c0263b19de30763479c55a","f7f6f8cb688ee877fb46ac3f42b60eda69130cef419017e6ed88d6a2bf381647","ec46a2c7b6e2ac832c937a649b13ded708d1cc7a067ad64cb938dd1f441c993b","b2fd56f80464f3d91a0e73f5b644196e28b6dc1d1c9836a1ccf1db5d80f6a0ad","d352e51bbc82a60de52ac06a88644b2e73f2cb04ef4a7d93b7dbe365068dd4af","e3f2b9e7514ca65ac5ce5373be59f3322292182e02e36a6685f9cfd58b28de6c","13eb27b0a813189a3d0abf455f248b7357e378501a961979027bab62ce5ecfce","8839cd37fe3f2042169adecaf9e66f71ea4c1903423ef49b75db6e11c9bca531","1c4f801fa938dfff8ba0283c2bdedab2045f215369450d3fe6cefd10cf5a0755","798423eb5bfb9145647edc8ed7a0767d02bb4c85c6b00adf4db9cc3ac51d0d62","44ced48a3e22e8949f6bfbc99b780b6ec3f0f3235c0f57fd4c257171eab4dd84","878f780ef3f0f209808122ea1c7ff44748275b4cfba75ea40804e530c2f1abb2","e9b071d1470820ce48e6bc84e3ab4564a33ffa118451f693ddbd48932af9356b","a507de4adadb7e8cfde49db789c062c168907843b49d081fea1b79bcbd59dcf4","4a9c2514a2e2861e25ec956f4da6058e15dfad6a9238f91bf0c3abb8bf7bb57f","d4430a6173c7dca84d93735e97419ba6c5dc52ef09c880e860fe8084cd52986e","b4a8d42bc830833c7480258c34529d74f38940ae87675365f8233136a66d812d","61b1e746198b9347a1ad402da267fd4564d54322c7186a3945692cb32c59aaab","13b3e17dbdea4c62fa4b927b1d06ae4fdc2b35beb05ac20af9e6e706309f80e8","09897651e677150ac1d89f9978c6b51af312ef76de686148adaf8ea3de68ff2e","dd0c1145cb0c0810c14087524546684c8ba0cc57db8e8c9e2408c649d76c7b23","2f58b3aee27f7398c1a383fa7e7727654f03e03e172bff82639f0bb3e10ec6ae","de584fb280277e63c00cd5fa2c3f0bcfb73e1e21bc649c0530acba7f63f78de5","ce3f7939c0317c703adcc465382181b0ca8f81dfaeceaf23d546ca600f8ce5b5","f7d66ad8b8c2dc1afd84528f04feb85d18f4f98f1d18ec9d4eace61a546f102e","05501b15cfea24b2771b49cd0b22f2798bbcf234485d74981a786f7e5a1748fc","34424207792bae5c0a7a0ab55a3ce23c02ce8821ac776cee8d428c0a7bfd594e","0cabe23306fa31422636ba594ed34bb4a88e7ab11d301df5284faa0544c3a1c5","27ded2aca35542a4a09f8d3a693b067b5065fa947ab2160e60e38995f85155dc","87451be2caf8e2ff68bb1a0e717833eade17e51722f794ddaa9a12d1712d2e7f","1e103dc7088b204e29d4cbd6f06fdb04457a20222cb38edb9679398683d962d4","ce4372e2cd71e7b0046866206c79f017289aef907f25aca105e0bb2a47e4af58","ba7c5abb7a4aafde4cb9f6c6d0d8f40104bb95eea930c67d2e8b9b706c7621d5","553a8a343dc91dc8eac6972338c04f1a25f74c0cf8625460a78807a5f0a4ab44","f751a293408dad0e5db2dce0e145933c247809120686202390d08c4fd34190f6","02bf8212d26ce921fff01ba650cf10e7e8798a09e458e5ff978d87e035b31b14","ca48c69113aea0263d4c53655691a3ac013a94d7eaf1b40addcf0a2deaae37b5","a5d9a1a3e10a466aa66db4c27e52ed9f6356ca04ac5dc1150144519e4ed10d44","4b8e1cecf784a46d18c18c1f2a3635de2c694082946a3b25d9f70063d5d6e0b5","d295ea463f494f86669136ff6c28591c8db2616e5b1ad79f03d9f42212758cb6","09dae15420c131bc6a3ddd8ecdd5be7896fa62ff759e942731ac2ea32e762b34","4db477d4d7ed492862b36c76963ed59b34faffbdb81487b1596c60695d473341","842fdad56070483dfe030511b9be1743a4e1025c544f02c8524b9b2eae7b9576","3db908a469aef5106e9d2568a3a25cc4f3b0f20343525154f424fb7923495abd","a04aeba6a1323e8613f33cb75ad532dacfb47703ef16a2b19132866a38bacfe7","4f14982a91c67b93709de2d2b0acbcc9d96be3e35bb9c3e7254d9d5b4102e748","f911d7e57a38a3d36650257d850b74d07ac66996cc2395aa10e3b9e7fd0436c6","c16bb5cbf34f654b82757e42bb4e26d059220e70de3cecd5efcae7991f57eab5","388f0bae73dfdf424ce68b7cefd94bcf240d5069e287f9aa44ecc4c6158d07d9","30db41256ca755e46170d77d15d3a816573b2172cc2428a0f3d69f2086d1c012","1bd268ad8d4a33a2ff0ec102582851f69ef4425eb5c6817f2b3ebe4e1121fd26","9be9fa2ad677df2fb29f846d1e8a48786a339c45dce3c37aeb99af2fce4a1915","8e817cae6465c48cc7a34bdff73f723df7fb3ab612c82e9e4f310fcd419e8646","63b0adfc785281458279e5856cd200f1ce8fadc19a8d67b7687cce0fdf4ad51f","736042a11a451d682b2ee38cc334f70cd9985b5352004fd59c37d34026249945","afc2aa98e9958a720c80006acbad97d2ff65c29367e1f36611c489a1ee118b22","876f964e4f16edabd41027e4abaa3f8a6aeda0ce19c7d4e67a194557b54b6fab","38eef06fe69bbb915f536282ff7c292c04639e3d576d58a49d1e90ef527196a2","11d332d87547781f488740c22a66e9b9e4082f959048a00f02d582ddc4f12860","5869a53a27e1f7fa879fb805a30f101671bff660f669ae17217667c846f0d149","0b7d45d2bb8b3447b31c358e3f3550e0314f75fc76f67d4e5f3c4c84c8749ef3","221fd528946354d830e771ed9d4f7c6bbc5b532a4e1fbe8051ae2666d0847c1f","7f045b82df5f431f837390c22a2c35658959713bd12599806257727cbcdcbf1c","a019dfd1c3dd9c05e92099f9e544a0e63a08df0039b061ea842995837080d080","9e52d6fc2217c394a41eec5ca3fa42190bd9be1a2cf863f7e065a13ad581015b","d84acd47fce20eb719b2375094e2bd222fb8eb50a876cc72753625e98777c859","d262815cc9e0bc51a685aa8ec6f56c9a7a7bf5ac024208a9728a0987ad8bfe0e","13261e6804d7e8070708d36ea504aaf37e1d46c89776d607e94541c110e7a3d6","debe6ab96531c19b627feae9b975a132a4cdeaad58188f34550f7821942cdb1c","a9dbc621de1b4661d1beeb586ea7c415d485d04022ad44bdfe00e41124d22c41","70c0c12691b22f5c7c4c09bb574887bfc77142fe9fcf6b1affc088bdb1fc480f","f7a4d387ad7fc9dca7a2197dbe5d7e5435a9c051589d4cf55930f271131e6817","06aa6da5d72e34291e11e03a994be8e4fd2d6da908cafc160c8f8b3111a3bfe4","84a7c5a51285da53bc0e548850adbe4c4a48e2c79d142f420e70c724cda08abb","02f942620720d49d6b84b7b58514fa87a905eeca44e57a281813726548c8e709","aec5846e3da757ec64a2f1cd2d00a9abb16016c4731be01d0f22f9a0095b3ce0","7a8c4ebdbc2a4b8fa750a434907f65c1ef172d0a8ce06796b987ed661015782d","a4b7d3fa206dd9ba8be67de430764a665947082b07f029672a440d2f0dfcdc35","fc62ec250788c4b03d7af3a3c1d0499eebfbe38867dfbb4b738d51f33578a2d7","5829a3088359b8d6af30e786c0d3e28ee9e15e23281bb4fb8d07513a2bbd98fd","bf338a71abf1293386086a8f6b3a57e3dcc76f7d63ecd808eba7ea00d5edd286","08bcc1f8fee417f45a074cf822d1d0848d37bd8f52dbbe336e2e5619aca50647","ccab2caf5c037e1d4522246c0a87675a7aeb1aa9fc23bee76b1dc135bba2104b","a607147d53272b43503684a14891610ff15197d85eb39feb386d0dc66e991acb","0f3d70da43d7579832b931a9675c86156be54dbd467f47bfeaa5e591d349c768","9268108f1f2def6b335388a4f34bd184cd8b4854e0a54ab85de565f55f81be12","19bc8e14e1ffae7a8147662b9b1eeac79c4037c8447651b182e6a6dfda63bf7f","921938780b87d72d17a00fc61f80516c723a4daa73015d2949ef420e085a918a","9874e153efdf24175131ff8e678db6956525f75a6d95168398ace5e25655225d","69df59c5d86d78e387eac890b5f8c7ab7b5b68962cd7ff5b77e1fe97b6342f04","a2fcb274aa68c2237edb520cd3a54bff2203f237fa2bd8326d8620c35a0e8bee","d83263a1abb74bfed4c2748a8e181e97e710d532104f5ba8a6458be5c9ded464","6ed8b3b00b53a43db74041c6d3637f8eea508a324419d5d745f9335dd218d568","bfd7174d5a4de03ce64db5ba26fee050efa0c43d906452c0e3c5f750dc8c6998","423268a14f8cd112c3746ec5528f2a425adec9f0abc45e525aae9d54b378762d","f88e5b1376d2eccf8399f8005d921ea1b13f049bcecdc31b3752311950f03c42","cb47de952fc15ce96880d0c30e10a72073022bec8307b1230c2f303cd6622239","c879b7a8573bfe6f75e7fd29445af276bca450ce56e7b48172f88efaa442cf40","4a99a48d6990223a6eeb811c17ef17204febc6d4fba394f286c5aea21caf43eb","82a86282f0a951afab5b509da77fba3006e986a075bd64d1d06db26fd635f220","4b3c32870abd10e454744a4bee8475ce654991ce4aa9287928a17491aa38a6a2","9bceb2c3a158f54b2398841d02f7a7a31df940cb90322b43bd211fb2020b145d","7d3287e8968cbd4fb1047dbfa61e8d5539c0cdbbc5f5802cf6ee1f11708930b2","636c9f06df5f7ecc1847a98d2963a09e9460f4552dc8c203f447af8ff7d060ec","b014d7af72076a3bfd5d9a710623ae6ecbb55b4c069bcc23c41cc219c57b14ca","a64ec866138d2dae51ef6b94bf2b352d2acb383aedcf5976dc36389e27b0aa3a","882cc90ef2a309b77a60dcce6cab81328499bb47587dce292b38d3519c6c8394","02e3010879d3018585a9ff2e963af8e3f5caca993c532c2220eeb1b45a11cfe9","d0c23cc4f54db1bb6bf7dde080c56c7a2abc3310518cdf8e884b4904ab1bf5b4","c159d276c7a7debf45d949ad448d6dc93445a926cd8eb76d48aceb7773d344ef","ffbebd238e0dbeb7da6a4478e7a0ce4bbda5f789e134fe49b4fd1e6d18d3ab7e","5289392088136105e55d7c489d2280c4583f8f7281b77eed3746b2609eddcd5a","33be7a3da4878aeb17da49c0bf374b8c0a8e7926a23cfea292316a7a2ccda4a6","5bd637837ef59a145b3c4912a23bbced04fc22a756e9d6f60cdb9d15be9d9c1d","cfd0d1e4d035baf9efb522a57dd49de10c257dca36353792bcbf055e29c8bc47","99597e0fdde015c3a4b83d9c4fd34b9709fb1b3f598cc3a7dbe34dbd8c7ca96d","02860d062cbee8d613ee767bc3dd07a71ef7e2017effc0a4dc305b1e41f9cbf2","bd73aaccea2ab75aa47e87a5f5e43abaebbf72ed00d9339f093298e3129c9b3f","a4534dbe0bd2abe2eb7527ae1fd990e8e404163f48fe675b794debbe7c63c461","9f33ad4e5d5a6bfb1a126a78462447c3a8993d6ba5b97695a5549662db39b733","2250c0bb781af780c38e7e7b0b5a96a7c9d06c8cf0221b4b1847cbf5ff7a463c","52beb91f2335f3e62766682cf73c0edd070d729ca17e7949f04d7ec8e7408f05","f09e1c1ab3686f4eb0dfdf036ddc6871b74df080fc69f24cecb2cc8d3973e147","b4c7966b8c8f647f1c2adfcb93cac25880260fca8ededd33d2e648a6f4a09fe0","e67709ede217673ecf53c24436c1675df7e738c2d43570973d7b18bb2ecfdece","8ef4432db0d8380322d4ea1cb49cfc0be1257dd1ef102f653a8ce5ab6ea1b4e2","4b7d8d8c756bdd8ffda46d2522a4b8e28660e90d8fd375b2e534d33fcefd18fe","c8b19b7a6357ddfce5f2e75a5c4e8abeb752f595b96a1034a4ae053965d6c4bb","fc702e18a35f9968c62a516510157e056e1fc6340483844e9dd79e1c8c5b373d","cfdae246948113b1114fc6803a33060fac4b5dd22f047ec5969d5685fa952bab","9dedb414c09e12a98163b346878d8c57b3df0ec44662cf47638e385b65a8b279","e3050b97a2b2370c6555e17d5c5c23720ff6d5cf8811c64064cca99ae1e88323","27d5bdd0dd73211f69b539a64d3e7564f4b8bc9df431e44477fdff71e4724979","af92248075f2070f44f9817120e7a1b7ca621d66bed2a69a69715d147cf125b2","bc5cdc8597ba4548b91cdd2ddddd996f5441acf76192fae49ad78dd91d162d9f","8b157465e164c37d7f50b032657029a9440027bacb63e0a0422c5903e9009555","90823973681cd3bf25e61792de6d4867a506d0b1c0cc1be63d3417e3e2c817ca","3a57cdf3165e34e394a9510116433248ce234cbac86115e4cc3f61205db4d1ed","5ba05a9e9155e96bc4b9aeaf3ed99bde4284adfcbaf666152eebd596a2d5cbad","25120cc5b77f87056bb13b0c01a05168d6485323d5972feca20cea124a4f618f",{"version":"397fe1ca4ecca584df1b191b80066313ba83e2120c8c6662511d1ae61c28a7eb","affectsGlobalScope":true},{"version":"fd45f5d7408b4ade5b812478e612b59801d371e4b8e467cf1b1aca46acd1564a","affectsGlobalScope":true},{"version":"b9241ecb5024beeaeb98fb558000dbc55e650576e572d194508f52807af6bcba","affectsGlobalScope":true},"3039ca5b4c980b09439c8b8962ea05552573fd995304d31957d47e01a6bca5ab","2e5ac0dd461b94010e16057c26d281841e3a935df927d76123b6864880086a26","b911176e7778c30f6549f86daae0353c53730eb0ee59b6476f1072cb51ab1af3","f8cc7ac396a3ea99a6959ddbaf883388260e035721216e5971af17db61f11f0b","895bedc6daf4f0da611480f24f65df818ea9e01404e4bf5927043dbf4eeed4d1","ea4facc7918e50e285a4419f7bc7ffdf978385899a3cf19ef7d7b782b896616d","8db893a4613484d4036337ffea6a5b675624518ad34597a8df255379802001ab","5828081db18ff2832ce9c56cc87f192bcc4df6378a03318775a40a775a824623","33b7db19877cf2f9306524371fcfc45dcb6436c8e905472ede7346c9f044bf20","b8eb76852bc6e72782541a2725580b1c3df02a0c96db570b0a7681567aeed598","6a7b38162c0cff2af6d2cbd4a98cfac6c0ea4fb1b5700c42f648de9b8c2e8e1f","19828d5df3be9b94598e5c25d783b936fcccaa226a2820bacee9ea94dc8aff2f","5d45955831c840d09b502ce6726a06435866b4736978e235a7d817ed45990df7","3bdf7ca46ef934ee671b3dd0e3d4cddcaecfe6146811b330743acdfb8e60f36c","70dab20ce12f8d153044fc487f2bfd40d21fc64329446f02c6a94b9759c13265","c1eed15acf77bbaa4a4840edbdcf70ff2f3c2a0f5af498578ce020e2f2c73f7f","71943244e9813364dac70c5be97fdce7bc775c96bb212d97a60ba072344dcbbc","6f1fa6fc9b169b165be0d8550a3ca0b5181af0c41e4e1e15f5e6bcb2a6e1c344","e311e90ded1cd037cbece1bc6649eaa7b65f4346c94ae81ba5441a8f9df93fa3","8eb08fff3569e1b9eddb72e9541a21e9a88b0c069945e8618e9bc75074048249","d596c650714d80a93a2fe15dce31ed9a77c2f2b1b9f4540684eaf271f05e2691","8f9fb9a9d72997c334ca96106095da778555f81ac31f1d2a9534d187b94e8bf6","aea632713de6ee4a86e99873486c807d3104c2bf704acef8d9c2567d0d073301","1adb14a91196aa7104b1f3d108533771182dc7aaea5d636921bc0f812cfee5f5","8d90bb23d4e2a4708dbf507b721c1a63f3abd12d836e22e418011a5f37767665","8cb0d02bb611ea5e97884deb11d6177eb919f52703f0e8060d4f190c97bb3f6c","78880fa8d163b58c156843fda943cc029c80fac5fb769724125db8e884dce32d","7856bc6f351d5439a07d4b23950aa060ea972fd98cbc5add0ad94bfc815f4c4c","ce379fb42f8ba7812c2cb88b5a4d2d94c5c75f31c31e25d10073e38b8758bd62","9d3db8aef76e0766621b93a1144069623346b9cfccf538b67859141a9793d16d","13fb62b7b7affaf711211d4e0c57e9e29d87165561971cc55cda29e7f765c44f","8868c445f34ee81895103fd83307eadbe213cfb53bbc5cd0e7f063e4214c49b0","277990f7c3f5cbbf2abd201df1d68b0001ff6f024d75ca874d55c2c58dd6e179","a31dfa9913def0386f7b538677c519094e4db7ce12db36d4d80a89891ef1a48f","f4c0c7ee2e447f369b8768deed1e4dd40b338f7af33b6cc15c77c44ff68f572d","2f268bd768d2b35871af601db7f640c9e6a7a2364de2fd83177158e0f7b454dc","73bfa99afd564cfef641ccb4fdef0debdb3c49f0a817085d68fc6b6508266f09","a004a3b60f23fcfb36d04221b4bef155e11fd57293ba4f1c020a220fadf0fc85","4e145e72e5600a49fa27282d63bb9715b19343d8826f91be0f324af73bc25322","62f734f7517d2ca3bf02abddaf8abf7e3de258667a63e8258373658bbb9153b6","df99236666c99f3e5c22c886fc4dba8156fed038057f7f56c4c39a0c363cc66a","b4bce232891b663cc0768f737f595a83de80b74671db22b137570ef2dc6b86ef","781b566c3eccba1a2cafbb827fb6fc02d5147c89a40e11c7892057481a195270","c9befaf90879c27ee3f7f12afd15b4531fbbea9ec37d145b83807a67d9f55c82","8630f26d1038328e6b9da9c082f6fa911903bc638499baa6cfab002b5a70af96","73474d70a9b4f02771119085c4cd7562be4169e7973544c9541341ca2931aa3d","54da497c3b3b94fae91a66ed222e21411dc595a17f9e6bd229e233d0de732691","803da2f4e024efa2edc55c67d35c5240e7ae599baf9263b453acd02127a582e9","b8b070df71250096699ad55a106d161d403347ed335f72c5ae8485e5d858524d","a9716557f56781aef13d6d3c5dafc61236f64bfd48d462c4848a7eca25f924ff","3d15b5e24065431bf7831b8e84000c0e767d921135af86ef0b0c034f14df5d8f","a563202fc316d8926dc83759cec155d5c028a7828996cbd283470ac7e8c58727","e5c004f39619ebaaa2475b18e949e12e51ff629132f48d56608081e5f0195577","e6b7a14eb53f023f455f4513b6a560f004fa1ebf6cc298b479be796541e322e6","771bf8091a4e40be8f539648b5a0ff7ecba8f46e72fc16acc10466c4c1304524","cb66d1c49ad20e7246b73671f59acaaaac72c58b7e37faae69ae366fd6adf1d3","e5c1c52655dc3f8400a3406fd9da0c4888e6b28c29de33bee51f9eaeda290b4d","1e28ee6d718080b750621e18befe236487df6685b37c17958520aaf777b7aeff","8891345dbe1920b9ed3f446a87de27b5cd6b2053112f6ff3975a661f9a03ec34","a72e21b05b937630b97b1d36bb76b879bb243a021516aef10701775f2da7f872","4debe398f42800c1359d60396fc76aa4fa34a23a96b597672b5c284fd81c0158","a720d8028d38f2b94855967789252c6148957dcd24e280d193b78db00eb3a099","1b0818297187a33e2c24c39145b409e11624523d32364edc22bceaf1f4c86f1b","332e362ba8bd05237c661ba685b2c37e9cde5e0876cb81bf515d15623bdee74c","84648722d2b1f16c55cb68dbfaf18b913a13a78274641f7236eeb4d7088f6db8","f63d313c2673117608b3ed762ac07f618ee873bee3764406b06bcfcb5a713afe","2e2a2a0f7ef2a7587cfe40a96dbca31e8badb15a8a42bf042fe7a63abc9e2f27","2bb32fb3f0fe14c48170dcad3d2a501c1883516d4da9cbd0a2043d90c9789a7b","352532af4d27bdf545d9bb20f0c55758138327404bd86f0934edc7ded76be7e6","64d93f4a24f8a70b64658a7d9b9e96bd46ad498ad5dc9cdb9d52da547e77ff68","8a728de3047a1dadcb69595e74c3d75bc80a2c8165f8cf875ab610042a137fbe","3eafed0be4b194295bcde379e7d083779d0f27f31b715738a3beac49547dc613","7e74740cb7a937af187118ae4582fbe5d4d30b34e9cddec2bd7f7a865e7824ca","8cdf90b59995b9f7c728a28e7af5dc4431f08f3346e6c16af49f548461a3e0aa","1d472b3eedeeaab5418ea6563734fffc68c404feac91900633e7126bee346590","6cf7182d798892394143549a7b27ed27f7bcf1bf058535ec21cc03f39904bfb3","abe524377702be43d1600db4a5a940da5c68949e7ac034c4092851c235c38803","daf4418239ceadb20481bff0111fe102ee0f6f40daaa4ee1fdaca6d582906a26","8a5c5bc61338c6f2476eb98799459fd8c0c7a0fc20cbcd559bb016021da98111","644cf9d778fa319c8044aed7eeb05a3adb81a1a5b8372fdc9980fbdd6a61f78e","d2c6adc44948dbfdece6673941547b0454748e2846bb1bcba900ee06f782b01d","d80b7e2287ee54b23fe6698cb4e09b1dabc8e1a90fb368e301ac6fbc9ad412e2","60b678d3c92834151ca6701c399c74c961193c06cc9d97da32cc4ad22ee5951e",{"version":"c7eebbc98b3e28df60899db055f0b1940295e6c68173e1859b97c062e02e00cf","affectsGlobalScope":true},"816f825b072afd246eb3905cf51528d65e6fe51c12a1f8fb370c93bb0e031c9b","f6a64974d6fab49d27f8b31578a08662b9a7f607de3b5ec2d7c45b3466d914fd","a8e9d24cd3dc3bd95b34eb6edeac7525b7fdbe23b373554bdc3e91572b8079ee","1d5fd841722ce9aa05b9d602153c15914108bdaa8154bdd24eddadb8a3df586c","14788c10b66324b98feee7a2567eb30d1066e11506e54bf1215b369d70da4932","316785de2c0af9fbd9f2191904670e880bc3836671dd306236675515e481973a","070d805e34c4b9a7ce184aabb7da77dc60f2bdb662349cf7fc23a2a69d17de8d","092deae5b432b6b04f8b4951f1478c08862e832abd4477315dba6ea0c39f1d9e","27d668b912bf3fd0a4ddf3886a8b405eed97505fdc78a9f0b708f38e3e51655d","72654e8bed98873e19827d9a661b419dfd695dbc89fd2bb20f7609e3d16ebd50","66bdb366b92004ba3bf97df0502b68010f244174ee27f8c344d0f62cb2ac8f1e","ae41e04ff8c248ab719fe7958754e8d517add8f1c7abcc8d50214fd67c14194d","558008ff2f788e594beaa626dfcfb8d65db138f0236b2295a6140e80f7abd5d2",{"version":"6573e49f0f35a2fd56fd0bb27e8d949834b98a9298473f45e947553447dd3158","affectsGlobalScope":true},{"version":"e04ea44fae6ce4dc40d15b76c9a96c846425fff7cc11abce7a00b6b7367cbf65","affectsGlobalScope":true},{"version":"7526edb97536a6bba861f8c28f4d3ddd68ddd36b474ee6f4a4d3e7531211c25d","affectsGlobalScope":true},"3c499fc4aad3185e54006bdb0bd853f7dd780c61e805ab4a01a704fa40a3f778",{"version":"13f46aaf5530eb680aeebb990d0efc9b8be6e8de3b0e8e7e0419a4962c01ac55","affectsGlobalScope":true},"17477b7b77632178ce46a2fce7c66f4f0a117aa6ef8f4d4d92d3368c729403c9",{"version":"700d5c16f91eb843726008060aebf1a79902bd89bf6c032173ad8e59504bc7ea","affectsGlobalScope":true},"169c322c713a62556aedbf3f1c3c5cf91c84ce57846a4f3b5de53f245149ec7b",{"version":"b0b314030907c0badf21a107290223e97fe114f11d5e1deceea6f16cabd53745","affectsGlobalScope":true},"7c6c5a958a0425679b5068a8f0cc8951b42eb0571fee5d6187855a17fa03d08a",{"version":"f659d54aa3496515d87ff35cd8205d160ca9d5a6eaf2965e69c4df2fa7270c2c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"4a4d7982941daaeb02f730f07578bce156d2c7cabfa184099321ed8b1e51591b",{"version":"cc8e57cfe18cd11c3bab5157ec583cfe5d75eefefe4b9682e54b0055bf86159f","affectsGlobalScope":true},"75f6112942f6aba10b3e2de5371ec8d40a9ab9ab05c8eb8f98a7e8e9f220c8a2",{"version":"8a3b75fccc93851209da864abe53d968629fab3125981b6f47008ec63061eb39","affectsGlobalScope":true},"4aafdcfff990abfe7feb894446ab43d2268657084ba656222e9b873d2845fe3c",{"version":"d6f55de9010fbefe991546d35da3f09ae0e47afae754cb8a4c867fd7e50dcec0","affectsGlobalScope":true},"afac637a8547d41243dd8c4824c202c9d024534c5031181a81dece1281f1e261",{"version":"1ce2f82236ecdd61ff4e476c96d83ce37d9f2a80601a627fe1d3048e8648f43c","affectsGlobalScope":true},"42d908b851ddcf6df729c0a2ae56f151bad6610ea368729d68f0c8fbbd779913",{"version":"592e99b73ae40c0e64ce44b3e28cea3d7149864f2f3cbc6ccb71f784373ade97","affectsGlobalScope":true},"fa601c3ce9e69927d13e178fdcb6b70a489bb20c5ca1459add96e652dbdefcf6",{"version":"8f8ebce0e991de85323524170fad48f0f29e473b6dd0166118e2c2c3ba52f9d6","affectsGlobalScope":true},"e58a369a59a067b5ee3990d7e7ed6e2ce846d82133fb5c62503b8c86427421a4",{"version":"f877e78f5304ec3e183666aab8d5a1c42c3a617ff616d27e88cc6e0307641beb","affectsGlobalScope":true},"82a66c8db63050ce22777862d6dc095b5e74f80f56e3a2631870d7ee8d104c9e",{"version":"4fc0006f46461bb20aac98aed6c0263c1836ef5e1bbf1ca268db4258ed6a965e","affectsGlobalScope":true},"e086e212ddb5de48f83d971e892949a9ed5ada7134b3116f17768b6885bce6f3",{"version":"867954bf7772a2979c5c722ef216e432d0d8442e995e6018e89a159e08d5d183","affectsGlobalScope":true},"6cc643a497641f28562d8a24b3bd6c4252f3476b462ea406f3123ae70be343ce",{"version":"cd8a7e7d61af5ca34b39095ab24bdcb308bfd4ab379df8ef9d53ce9fa83187a8","affectsGlobalScope":true},"9e837aadb58587a9f79d1ba6a1625cfe40e4077c6bc89cd1c1d5886a2d2489cc",{"version":"544f8c58d5e1b386997f5ae49c6a0453b10bd9c7034c5de51317c8ac8ea82e9a","affectsGlobalScope":true},"2382c18dddfe93b455dfaccc5e6ad795cc33ba8a6a72de41622ef03dd27e377f",{"version":"ae9b62dd72bf086ccc808ba2e0d626d7d086281328fc2cf47030fd48b5eb7b16","affectsGlobalScope":true},"b03e600a48c41adfad25cda292a2bcd87963f7fce09f3561978482f9f6530fc4",{"version":"cc1bddca46e3993a368c85e6a3a37f143320b1c13e5bfe198186d7ed21205606","affectsGlobalScope":true},"34cb99d3f4d6e60c5776445e927c460158639eeb8fd480e181943e93685e1166",{"version":"c77843976650a6b19c00ed2ede800f57517b3895b2437d01efc623f576ef1473","affectsGlobalScope":true},"c8db20febc70a33fc8668c2f6475c42be345a0545f6bd719f787b62e60d8f49e",{"version":"5ebba285fdef0037c21fcbef6caad0e6cc9a36550a33b59f55f2d8d5746fc9b2","affectsGlobalScope":true},"85397e8169bdc706449ae59a849719349ecef1e26eef3e651a54bb2cc5ba8d65",{"version":"2b8dc33e6e5b898a5bca6ae330cd29307f718dca241f6a2789785a0ddfaa0895","affectsGlobalScope":true},"cc2c766993dfe7a58134ab3cacd2ef900ace4dec870d7b3805bf06c2a68928bd",{"version":"dde8acfb7dd736b0d71c8657f1be28325fea52b48f8bdb7a03c700347a0e3504","affectsGlobalScope":true},"96c711d561eaa29cec567f90571ea515f91412bb005ac2a4538bcadf0e439fa5",{"version":"34c9c31b78d5b5ef568a565e11232decf3134f772325e7cd0e2128d0144ff1e5","affectsGlobalScope":true},"7e72ce64e021f6f43c8743682a3c7cf2035166f8283ca675a4589e1bd8a63e55",{"version":"60cc5b4f0a18127b33f8202d0d0fde56bc5699f4da1764b62ed770da2d5d44f1","affectsGlobalScope":true},"5da9bade8fea62743220d554e24489ea6aa46596e94e67cfff19b95804a54a5f",{"version":"d11fa2d42f762954eb4a07a0ab16b0a46aa6faf7b239f6cd1a8f5a38cb08edcd","affectsGlobalScope":true},"87daa4e406afddcea17302b85e08a2de9444fe561347cd1572ffa671c0171552",{"version":"781afd67249e2733eb65511694e19cdcdb3af496e5d8cdee0a80eba63557ff6e","affectsGlobalScope":true},"6b32428a82779c0a33356f537ec131882935bc76ad0371722618a9ac6403cca0",{"version":"f3275e1f0e5852b1a50fd3669f6ad8e6e04db94693bcfb97d31851e63f8e301e","affectsGlobalScope":true},"de82ff7892200413e9e0c54b038d87099de9d74a9e815b3cb6e9908f950f6ccd",{"version":"8a6ecff784dafbdb121906a61009670121882523b646338196099d4f3b5761d8","affectsGlobalScope":true},"1d5f5827fdeb0d59f76a1ee6caf0804d5d3c260e60e465b0b62baea333199e62",{"version":"256bdff4c082d9f4e2303138f64c152c6bd7b9dbca3be565095b3f3d51e2ab36","affectsGlobalScope":true},"0b14c87ea4887402356f7c8b321dfd944880ae76cd703e342c57ac7a83de4465",{"version":"e214a2a7769955cd4d4c29b74044036e4af6dca4ab9aaa2ed69286fcdf5d23b3","affectsGlobalScope":true},"85647ff695641f7f2fdf511385d441fec76ee47b2ed3edb338f3d6701bf86059",{"version":"25659b24ac2917dbfcbb61577d73077d819bd235e3e7112c76a16de8818c5fd6","affectsGlobalScope":true},"d6f83ae805f5842baa481a110e50ca8dbed0b631e0fd197b721de91dd6948d77",{"version":"7402e6ca4224d9c8cdd742afd0b656470ea6a5efe2229644418198715bb4b557","affectsGlobalScope":true},"36b19abb9d0a0e6809f9493786fe73c3058f66f0a5778554b30bd09d6d21d3d8",{"version":"242b00f3d86b322df41ed0bbea60ad286c033ac08d643b71989213403abcdf8a","affectsGlobalScope":true},"009a83d5af0027c9ab394c09b87ba6b4ca88a77aa695814ead6e765ea9c7a7cd",{"version":"4dc6e0aeb511a3538b6d6d13540496f06911941013643d81430075074634a375","affectsGlobalScope":true},"3a9312d5650fcbaf5888d260ac21bc800cc19cc5cc93867877dfeb9bbd53e2ca",{"version":"7ed57d9cb47c621d4ef4d4d11791fec970237884ff9ef7e806be86b2662343e8","affectsGlobalScope":true},"3bee2291e79f793251dcbea6b2692f84891c8c6508d97d89e95e66f26d136d37",{"version":"5bd49ff5317b8099b386eb154d5f72eca807889a354bcee0dc23bdcd8154d224","affectsGlobalScope":true},"1d5156bc15078b5ae9a798c122c436ce40692d0b29d41b4dc5e6452119a76c0e",{"version":"bd449d8024fc6b067af5eac1e0feb830406f244b4c126f2c17e453091d4b1cb3","affectsGlobalScope":true},"b6ce2b60910be81d4f2000ffe0bdbec408d6423196f6ad00db2a467cd53d676b",{"version":"dd5eab3bb4d13ecb8e4fdc930a58bc0dfd4825c5df8d4377524d01c7dc1380c5","affectsGlobalScope":true},"f011eacef91387abfde6dc4c363d7ffa3ce8ffc472bcbaeaba51b789f28bd1ef",{"version":"ceae66bbecbf62f0069b9514fae6da818974efb6a2d1c76ba5f1b58117c7e32e","affectsGlobalScope":true},"4101e45f397e911ce02ba7eceb8df6a8bd12bef625831e32df6af6deaf445350",{"version":"07a772cc9e01a1014a626275025b8af79535011420daa48a8b32bfe44588609c","affectsGlobalScope":true},"6d0790ee42e40b27183db10ce3be3f0e98dc3944d73c9a4c092bf5ec3bb184f7",{"version":"5be6cb715e042708f5ec2375975ba7a855f54d3554cf8970cd49d0434ad5c235","affectsGlobalScope":true},"02fbf1f4aabb776e2cf229fd74840a27eee5a08642b8ca0677e680a8427d6d12",{"version":"4d13cccdda804f10cecab5e99408e4108f5db47c2ad85845c838b8c0d4552e13","affectsGlobalScope":true},"780abc69f1e0ed0a3ed43cfaf201378faf6e8d8ec13354ed7169159cdeead3b9",{"version":"7ced457d6288fcb2fa3b64ddcaba92dbe7c539cc494ad303f64fc0a2ab72157d","affectsGlobalScope":true},"5d2721c49e058b8f28e495a54f709a004571cd3f57a62df63ed3eddb9e860af1",{"version":"0ccde5fc989806345b5ecca397796e26bbbca2882297adea57009022be7a300a","affectsGlobalScope":true},"730592593eaba845555f4d8f602d8c066972c97a3a8522a0c6f8f721e36bdc90",{"version":"725128203f84341790bab6555e2c343db6e1108161f69d7650a96b141a3153be","affectsGlobalScope":true},"e6ed9d8801e5fddc1a4260510e4266fbf80d5767cf2b9a6cbe8d0eb39d45971d",{"version":"947bf6ad14731368d6d6c25d87a9858e7437a183a99f1b67a8f1850f41f8cedd","affectsGlobalScope":true},"8eda6e4644c03f941c57061e33cef31cfde1503caadb095d0eb60704f573adee",{"version":"0538a53133eebb69d3007755def262464317adcf2ce95f1648482a0550ffc854","affectsGlobalScope":true},"a1dd4d1eada136ec8afb47871da02c1a28be6adc81717106ded5fcdd6548835c",{"version":"8d3ccb8e37673a205fb24f1a3ce7bc9237d32be05494c240245e3a783dd8e16d","affectsGlobalScope":true},"92492e2b8992cc1d68eca60f289ce9fa29dda1eb4d12eed577bcdb958666754b",{"version":"d155bad43ed0facccf039f4220d5d07fbafab34d9b1405e30d213d1ab36af590","affectsGlobalScope":true},"4a5259be4d6c85a4cd49745fb1d29d510a4a855e84261ad77d0df8585808292c",{"version":"220f860f55d18691bedf54ba7df667e0f1a7f0eed11485622111478b0ab46517","affectsGlobalScope":true},"3bee701deb7e118ea775daf8355be548d8b87ddf705fe575120a14dcace0468a",{"version":"9c473a989218576ad80b55ea7f75c6a265e20b67872a04acb9fb347a0c48b1a0","affectsGlobalScope":true},"5f666c585bb469b58187b892ed6dfb1ebf4aa84464b8d383b1f6defc0abe5ae0",{"version":"20b41a2f0d37e930d7b52095422bea2090ab08f9b8fcdce269518fd9f8c59a21","affectsGlobalScope":true},"dbac1f0434cde478156c9cbf705a28efca34759c45e618af88eff368dd09721d",{"version":"0f864a43fa6819d8659e94d861cecf2317b43a35af2a344bd552bb3407d7f7ec","affectsGlobalScope":true},"855391e91f3f1d3e5ff0677dbd7354861f33a264dc9bcd6814be9eec3c75dc96",{"version":"ebb2f05e6d17d9c9aa635e2befe083da4be0b8a62e47e7cc7992c20055fac4f0","affectsGlobalScope":true},"aee945b0aace269d555904ab638d1e6c377ce2ad35ab1b6a82f481a26ef84330",{"version":"9fb8ef1b9085ff4d56739d826dc889a75d1fefa08f6081f360bff66ac8dd6c8d","affectsGlobalScope":true},"342fd04a625dc76a10b4dea5ffee92d59e252d968dc99eb49ce9ed07e87a49d0",{"version":"e1425c8355feaaca104f9d816dce78025aa46b81945726fb398b97530eee6b71","affectsGlobalScope":true},"c000363e096f8d47779728ebba1a8e19a5c9ad4c54dbde8729eafc7e75eee8dc",{"version":"42c6b2370c371581bfa91568611dae8d640c5d64939a460c99d311a918729332","affectsGlobalScope":true},"590155b280f2902ebb42a991e9f4817ddf6558e5eb197deb3a693f5e0fc79bd9",{"version":"867b000c7a948de02761982c138124ad05344d5f8cb5a7bf087e45f60ff38e7c","affectsGlobalScope":true},"6f1d28967ec27ef5d244770ac80a62b66f10439aea63ed52e0604a18aad6468c",{"version":"02c22afdab9f51039e120327499536ac95e56803ceb6db68e55ad8751d25f599","affectsGlobalScope":true},"aba5fbfef4b20028806dac5702f876b902a6ba04e3c5b79760b62fc268c1bc80",{"version":"37129ad43dd9666177894b0f3ce63bba752dc3577a916aa7fe2baa105f863de3","affectsGlobalScope":true},"68526c897cd9e129d21f982679011d64068eac52cc437fce5e48bc78670356f3",{"version":"31f709dc6793c847f5768128e46c00813c8270f7efdb2a67b19edceb0d11f353","affectsGlobalScope":true},"eee3c05152eff43e7a9555abbef7d8710bfdb404511432599e8ac63ae761c46c",{"version":"018847821d07559c56b0709a12e6ffaa0d93170e73c60ee9f108211d8a71ec97","affectsGlobalScope":true},"b50322892db37ef61b48411c989f4cd36b3f41205ad10e7c03f14afade571256",{"version":"7832e8fe1841bee70f9a5c04943c5af1b1d4040ac6ff43472aeb1d43c692a957","affectsGlobalScope":true},"9f2282aa955832e76be86172346dc00c903ea14daf99dd273e3ec562d9a90882",{"version":"013853836ed002be194bc921b75e49246d15c44f72e9409273d4f78f2053fc8f","affectsGlobalScope":true},"0e9a7364eaf09801cbb8cf0118441d5f7f011fc0060c60191587526c448974c4",{"version":"e08392a815b5a4a729d5f8628e3ed0d2402f83ed76b20c1bf551d454f59d3d16","affectsGlobalScope":true},"6a7f172fb4524b4091b793d0e2cccdb365876dcf7f056552a93fbf6c2c1d64d9",{"version":"c3dfd6032ba0bc68520b99fc40cb45f46c73f4c98dedcde79b181f1f0632c262","affectsGlobalScope":true},"261f0f336c13435274021ab058138312b2443bd61723de6acbc4e57a8cecf349",{"version":"5768572c8e94e5e604730716ac9ffe4e6abecbc6720930f067f5b799538f7991","affectsGlobalScope":true},"198075277aef627743ef66a469881addbbf2f6c4c508ffb4c96de94137ca8563",{"version":"e2ae8c8fcfb98fae10647c9159915deea2073bdfcc3fe99b5846fd9563867399","affectsGlobalScope":true},"d0984177c1dc95545541f477fb0df1fb76e7454a943c98ed208dc0da2ff096b2",{"version":"f366ca25885ab7c99fc71a54843420be31df1469f8556c37d24f72e4037cb601","affectsGlobalScope":true},"a05b412a93ba43d2d6e9c81718dea87a42c7e4f9e8b1efbaafee03a94eaf4b7a",{"version":"163cc945edad3584b23de3879dbad7b538d4de3a6c51cc28ae4115caee70ce21","affectsGlobalScope":true},"4fefff4da619ba238fccd45484e9ee84ee1ae89152eac9e64d0f1e871911121c",{"version":"d604893d4e88daade0087033797bbafc2916c66a6908da92e37c67f0bad608db","affectsGlobalScope":true},"56ce2cd3aa0ebbcf161faed36a9d119e5ff6f962993f1af29b826eff1801bad3",{"version":"dc265f24d2ddad98f081eb76d1a25acfb29e18f569899b75f40b99865a5d9e3b","affectsGlobalScope":true},"7c1538394a43ce6d7b7c471b87cc97c487bc3bff37fdd2fc5f659c67445a3a03",{"version":"dd7f9be1c6c69fbf3304bc0ae81584e6cd17ab6ad4ab69cb8b06f541318cc97e","affectsGlobalScope":true},"f528ce3ce9430376705b10ee52296d36b83871b2b39a8ae3ecec542fc4361928",{"version":"41ffc155348dd4993bc58ee901923f5ade9f44bc3b4d5da14012a8ded17c0edd","affectsGlobalScope":true},"580eedb87f9ed40ff5fc619507e47c984a1e3fbf2fee8f5eecbe98806997d0ee",{"version":"3e8e0655ed5a570a77ea9c46df87eeca341eed30a19d111070cf6b55512694e8","affectsGlobalScope":true},"c1b3019eeb7120da76e837268ac26beea8dc0aa8d6108e286e9cfa9478af562b","6bb6fda2bba279010a8ffb5221fd28aed12d3d37ebc396a6e0f02840adb17970",{"version":"cc4c74d1c56e83aa22e2933bfabd9b0f9222aadc4b939c11f330c1ed6d6a52ca","affectsGlobalScope":true},"b0672e739a3d2875447236285ec9b3693a85f19d2f5017529e3692a3b158803d",{"version":"8a2e0eab2b49688f0a67d4da942f8fd4c208776631ba3f583f1b2de9dfebbe6c","affectsGlobalScope":true},"229648df48b149ecb40a267e69899456c28dbe4b31e64513be64eb2b58e29f1c",{"version":"f6266ada92f0c4e677eb3fbf88039a8779327370f499690bf9720d6f7ad5f199","affectsGlobalScope":true},"ab149c81ee4c7bb5fd0abea1057389185e334d5038c4c8739faa65ec5feb6ffc",{"version":"fb6cb8911a03c7ac61ee80aafdc072623850dd6a6d9fa0c98b015d8b181153a5","affectsGlobalScope":true},"8946ad9bc3d5c42cdb07de081480d869e358f5986166649a9e4230bea2ea84bd",{"version":"09a227ec52ef63acca2a3a1f31ca6d3affa45b51e18ffdf0036152d5f102dfd7","affectsGlobalScope":true},"c03bcada0b059d1f0e83cabf6e8ca6ba0bfe3dece1641e9f80b29b8f6c9bcede",{"version":"f2eac49e9caa2240956e525024bf37132eae37ac50e66f6c9f3d6294a54c654c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"a0ad84c717107c133f77f15b344d62633863931d4b3592de20c232ded129c50b",{"version":"7373a173ea1b42648b1779267a5a707eb403ccc31a16761870dbf0660eb234ee","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"ace629691abf97429c0afef8112cc0c070189ff2d12caee88e8913bdd2aaad25",{"version":"99a71914dd3eb5d2f037f80c3e13ba3caff0c3247d89a3f61a7493663c41b7ea","affectsGlobalScope":true},"25a12a35aeee9c92a4d7516c6197037fc98eee0c7f1d4c53ef8180ffc82cb476",{"version":"b4646ac5ca017c2bb22a1120b4506855f1cef649979bf5a25edbead95a8ea866","affectsGlobalScope":true},"54d94aeec7e46e1dab62270c203f7907ca62e4aaa48c6cdcfed81d0cd4da08f3",{"version":"f9585ff1e49e800c03414267219537635369fe9d0886a84b88a905d4bcfff998","affectsGlobalScope":true},"483d29eb2d4b6c4d486f67b682a5d0ca2d4d452e09e6d43eee0f5ef0f4950aee","eaf540a66adaf590521596a4de7d2f86644aae59b5ef449b26d4b00ccfc13ba5",{"version":"1ff9449d1efdebef55b0ba13fe7f04b697c264e73ec05f41f7633dd057468b2d","affectsGlobalScope":true},"79792358436829ae510866561a6c62e37472108ae7a1836ba2b7136eba000bda",{"version":"7c160037704eee2460c7de4a60f3379da37180db9a196071290137286542b956","affectsGlobalScope":true},"87bdcea89ec013888b0fdb1694ce0cb4b8bf6b9f03f90429cbb4e00b510f838d",{"version":"4681d15a4d7642278bf103db7cd45cc5fe0e8bde5ea0d2be4d5948186a9f4851","affectsGlobalScope":true},"91eb719bcc811a5fb6af041cb0364ac0993591b5bf2f45580b4bb55ddfec41e2","05d7cf6a50e4262ca228218029301e1cdc4770633440293e06a822cb3b0ef923",{"version":"78402a74c2c1fc42b4d1ffbad45f2041327af5929222a264c44be2e23f26b76a","affectsGlobalScope":true},"cc93c43bc9895982441107582b3ecf8ab24a51d624c844a8c7333d2590c929e2",{"version":"c5d44fe7fb9b8f715327414c83fa0d335f703d3fe9f1045a047141bfd113caec","affectsGlobalScope":true},"f8b42b35100812c99430f7b8ce848cb630c33e35cc10db082e85c808c1757554",{"version":"ba28f83668cca1ad073188b0c2d86843f9e34f24c5279f2f7ba182ff051370a4","affectsGlobalScope":true},"349b276c58b9442936b049d5495e087aef7573ad9923d74c4fbb5690c2f42a2e",{"version":"ad8c67f8ddd4c3fcd5f3d90c3612f02b3e9479acafab240b651369292bb2b87a","affectsGlobalScope":true},"1954f24747d14471a5b42bd2ad022c563813a45a7d40ba172fc2e89f465503e2",{"version":"05bbb3d4f0f6ca8774de1a1cc8ba1267fffcc0dd4e9fc3c3478ee2f05824d75d","affectsGlobalScope":true},"37e69b0edd29cbe19be0685d44b180f7baf0bd74239f9ac42940f8a73f267e36",{"version":"afba2e7ffca47f1d37670963b0481eb35983a6e7d043c321b3cfa2723cab93c9","affectsGlobalScope":true},"bb146d5c2867f91eea113d7c91579da67d7d1e7e03eb48261fdbb0dfb0c04d36",{"version":"90b95d16bd0207bb5f6fedf65e5f6dba5a11910ce5b9ffc3955a902e5a8a8bd5","affectsGlobalScope":true},"3698fee6ae409b528a07581f542d5d69e588892f577e9ccdb32a4101e816e435",{"version":"26fc7c5e17d3bcc56ed060c8fb46c6afde9bc8b9dbf24f1c6bdfecca2228dac8","affectsGlobalScope":true},"46fd8192176411dac41055bdb1fdad11cfe58cdce62ccd68acff09391028d23f",{"version":"22791df15401d21a4d62fc958f3683e5edc9b5b727530c5475b766b363d87452","affectsGlobalScope":true},"150ac8ae1c4500f57f2af6e491717a8858a40619063164b1ad746d6a9ef30207","cefffd616954d7b8f99cba34f7b28e832a1712b4e05ac568812345d9ce779540",{"version":"a365952b62dfc98d143e8b12f6dcc848588c4a3a98a0ae5bf17cbd49ceb39791","affectsGlobalScope":true},"af0b1194c18e39526067d571da465fea6db530bca633d7f4b105c3953c7ee807",{"version":"b58e47c6ff296797df7cec7d3f64adef335e969e91d5643a427bf922218ce4ca","affectsGlobalScope":true},"76cbd2a57dc22777438abd25e19005b0c04e4c070adca8bbc54b2e0d038b9e79","4aaf6fd05956c617cc5083b7636da3c559e1062b1cadba1055882e037f57e94c","171ad16fb81daf3fd71d8637a9a1db19b8e97107922e8446d9b37e2fafd3d500",{"version":"d4ce8dfc241ebea15e02f240290653075986daf19cf176c3ce8393911773ac1b","affectsGlobalScope":true},{"version":"52cd0384675a9fa39b785398b899e825b4d8ef0baff718ec2dd331b686e56814","affectsGlobalScope":true},{"version":"58c2bb87fdf190100849a698042d09373be574e531758b1cfe3533258c3d4daa","affectsGlobalScope":true},{"version":"b8f8d5bc91f9618e50778e56f99e74f63dc08f7a91799379887d0fb3ff51fe5e","affectsGlobalScope":true},{"version":"769c459185e07f5b15c8d6ebc0e4fec7e7b584fd5c281f81324f79dd7a06e69c","affectsGlobalScope":true},{"version":"c947df743f2fd638bd995252d7883b54bfef0dbad641f085cc0223705dfd190e","affectsGlobalScope":true},"db78f3b8c08924f96c472319f34b5773daa85ff79faa217865dafef15ea57ffb","8ae46c432d6a66b15bce817f02d26231cf6e75d9690ae55e6a85278eb8242d21","ff5a16ce08431fae07230367d151e3c92aa6899bc9a05669492a51666f11ceb5","526904beb2843034196e50156b58a5001ba5b87c5bb4e7ec04f539e6819f204e","4d311eabe35c4c1fe9b47d5e5f82e3c5467be90b34270fd71b3757bb5dbbe296","0f7abdc525bf2758a1bdca084ddd6092ee33ff438c11107f74d9f5720b0c432e","c3d1047841fd6c273c783726782bdb8c9a77bbbd4bc726447fd33010f0a54cc6","66500cbabdb5d98df1ea231c2e2c0e04f80cd68274d7824dec4918c57cdc12ed","80883fa1b4dc48eb6db24453403c5cbf4a2a31777fde224b8fde7ba9246de371","ef4a9912cd6a2cf0c5acc4fa29a46013bb2cd1180466c8b28b29b136639e0b11","a45c13431082b922a9913fcd7e57baad75ba2057f1bd1848cfeee710be9ae3e7","d5ac44aae007e8852a0613908b99a642cc2464d7459380bf304d0c6e695a9cf5","3578d1b66793fa7c30e0a946babf6a7fe46e99ac5e7aa75c434c022bfe9cd163","7353061b0ab6ac04877a2a8c6a1c7f192dd6a148a2f5a71db83c782e0ca04e1c","45aa47354b80aa70ef600ae3b77eba08293bd3ff8c730157446d1163bb2c4c59","b7f651b5728e9c2eb9b2d644820075b36c680e854c06a3a6e5c77a98a68ab7ce","bb68c92912ca084538bc4c76109d28c858eb329aa7acbea374090cf6b74b9829","9ea0c0a352cc40e927881cd4795c2f026916cee12427f9bc915afddb59dd73eb","dde124bb83e97fb0e57a531ee1ba05e8384dd1c0eb74e2d704b37b54cd01789f","9fba7a1bf11fad7fda1b5a8068854eedee9c005964452deaa7c0cc4b05698ebf","7835f6efdc176803e362ed5ba67bbadc2eb872527159c55e5645a0ece9786d7c","419db3b5d56de49a509f837e321960523f0cc1d3bb37b7b18333a1f121c69076","00a2131114eddfa723cd9f69b6aeb7d671c637599020d67b4d6ca533f6f716a8","d3675c1142de11e1968e63b437bd3d3c08ad0880d73b9d87adecbf6c19ae3c96","038a4aa4e0689cc850e3d11b135f8a7808cc6484444ad32fba6a7135693bc882","fb9f03026b17b8a54bd14a99ba6f9308795366070c13872b3e51ba5417e5b540","5359adc2b85d3028780ed564439eecd78e66b1cf8133a0bdd731808d662e7e63","2de31a5be7702f3dc917c48fc4fffc95a227aa0a1a6a465741186b4607c8394e","a0fa0602bc1cdbbe7cee8a4ad911ca6121440cd156a852151d88c9ee9839fd9c","d84b658ceffb4e5ef15072174db965a822476a90fe962f97d1ff87231f2b40a6","48e8a39e6035443402cdbc10becf98e5e05c60d9b4f1cc4890585598a6bbef20","043c729e9004aff0cdd5baa0aec024b387a48f26540ed9ff873680fbff8f256d","d28f00302f0fe7262d6ab27cfa0719789edb90f8ebab58a92e420ce87c3066dc","254391d1be097587cb8a9b62bff5565795956c114cd3e5bacc1e62681af4f86c","4add33de85170cb7beb03b92f245ad531ccd4e644f94408920a814d7259ac6ef","2eff215c0bf89368c948feff7d68d99b96e4d7d3fabb4461fc891bee6f53c56b","f80fa78e2a8706b519cff7e63c3897db7bbe8281398c3d865cac5d4f10688a5e","f55e044b68f2e8cc70581e279d87c78dc2266cc60e949f2cda061bdea6d1804d","5de1ee43eb324769c4cf9b2764ae1377b09cc31acc7a40bf0a5242b407762189","c51b3641d3f589772bc0b6eafbac58643822082f4e247dbd5e90cc8655695f53","62f9b6f2c3e35d0b5b9ee04b1be03702092a1da85ea836ba7c1e7f7438fd980a","696af3999940599e7dc14a1eced4f128baee4a3cc79ab1422e02b6c6a76fa59a","e388ce93422740ed6e5ff60f4e70e9bfa41175ed353835ec5ffa610b57bd8dfb","c74448c6ad0b791eb727c032822bf5f46b5598144ada9953ccf336e064a9b04c","5a6c433af128b4c280ff2d5694df39f562d9e39e1526fce13b6927cd669e61c4","4b1ef4df50a3578b91a5d5ea36cbfc54f3fee2be3141da6e61661a2cd581a97f","652d1e7197382a2b67cba5491722dd834a8b3e777ef5e96bf1f9637f766f3cad","b12839a77591a84fb66ce906b8947e18fe858a00fecae5340b09f02b76c99740","e7a84d6e8e43819c5c6c688a195294112f88cfb6e65bfcdc5265b608413f303a","32a495b7e8a60998c7d141d23c507a809724815245e314c1e773100eada73988","59a792b84d0a3874c4779260e08bd396cafe23f30df4ea5de32908558f5892d7","92c133641a49f519ff7ceb20d988d5c28873cdc84dca96f5f5a954f7a0739d03","df344e2d79c49a6636bbdd87faa8a4a79ec1226defc49d52aa8550134aac8a26","79c477a2d4626e7d1fc4e281ff53618b65ac1d2d79d8df8ede051e792340ca9c","d31fa5597aed0deaa4e19c29acb9c202a25e267fd38510a02b10d01b4f28e270","9040496799bdd13e95a265cf32f6166856f09b8284552b924c930654ad76d0f0","f9f7beba5adb3872e352dc2ea7211435df7bab7d98562b1d65676b6e1c7cc3a3","42a43e87c01fd76573880adb08cd5e0acbbd07350b9e39c5418da0afe3241fc1","712a193a9f9cd6ea10e3d7cfec1c7f3d55e7460641c3f1edd3505f9fa32ab81b","f76c971d1e258b502448a9aa7aed9d6190b75d301e2f1aec92a03a4486783d47","3ef9135446efd31179eb94dc16ca9631d2bcd57c2f84b4a74c4c069c5c50ad2b","25db3eb2b6ff6c9268b2408f572ce33d2d975d0141745fbf2e0d2dbbc354944d","a73d6ce3abbc21f882dfd4a9e1f92b24de0a23faef215bbc9f65326d97fd72bc","de29cbbebf350d00e9bd2193a08a771ee9f84252b0280a4e0251a4426a6ea391","c586aa78eea1db992fd2038360ec8519b2db45730b3573bda09e1cdfb6272e15","907badd2824a6c2f1d884a31f319ca3d1f5d73137c24a8a97210e37e7811f8ee","44626011a1388de252111699a315dadea510160ff2c2b69ac3c72e9001f67659","06595ed23ebf30a5c2e69e63090534502eda03dd378154099fb979152e8f2c04","22a19578f29ef8d592d86f055460a98a758f137b0699f197149dd9f5319fda7f","602b7724ff9646f1cd487d767e0d8ede210387dfb2bb0488418f6fcd1f2c05af","5ca6be4bc24f5bdd8cede7b520f89b02f5fc5d5e3bc86828a262f03ce2e3cd91","b9a496f3a550a32e9a38e0fea88e84e14072fec6cf46ca76c8d8c1c13ab7b53e"],"root":[838,908],"options":{"inlineSources":true,"module":99,"noEmitOnError":false,"noImplicitAny":false,"noImplicitThis":true,"outDir":"../../../../dist/dev/.uvue/app-android","rootDir":"../../../../dist/dev/.tsc/app-android","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildInfo","useDefineForClassFields":false},"fileIdsList":[[848,853],[844,846],[842,847],[46,48,50,833,834,840,845,854,855,856,857,858,859,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907],[46,48,50,833,834,860],[46,48,50,833,834,853,860],[849,860],[46,48,50,833,834,847,848,853,860],[46,48,50,833,834,848,860],[46,48,50,833,834],[46,48,50,833,834,848],[46,48,50,833,834,849,860],[848,850],[842,848],[46,48,50,833,834,842,848,849,853],[46,48,50,833,834,847,848,849,853],[46,48,50,833,834,848,852],[841,842],[841,843],[848,849],[46,48,50,833,834,848,849,850,851,852],[844,848],[845],[46,48,50,832,833,834],[593,607,828,831,833,834,835,836],[519,526],[592],[511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591],[514,515,516,517,518,520,522,524,525,527],[565],[526,530],[567],[586],[521],[527],[520,526,537],[526,535],[514,515,516,517,518,522,526,527,535,536],[566],[526],[535,536,537,582],[518,527,568,571],[513,518,523,528,535,563,564,568,569],[523,526],[570],[528],[517,526],[526,527],[526,537],[525,526,535,536,537],[530],[46,48,50,524,832,833],[830],[829],[608,609,760,797,804,823,825,827],[826],[824],[611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759],[610],[612],[614],[616],[620],[622],[624],[626],[628],[630],[632],[634],[636],[638],[640],[642],[644],[646],[648],[650],[652],[654],[656],[658],[660],[662],[664],[666],[668],[670],[672],[674],[676],[678],[680],[682],[684],[686],[688],[690],[692],[694],[696],[698],[700],[702],[704],[706],[708],[710],[712],[714],[716],[718],[720],[722],[724],[726],[728],[730],[732],[734],[736],[738],[740],[742],[744],[746],[748],[750],[752],[754],[756],[758],[762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796],[761],[763],[765],[767],[769],[771],[787],[791],[793],[795],[799,801,803],[798],[301,453],[800],[802],[806,808,810,812,814,816,818,820,822],[821],[813],[809],[807],[819],[811],[815],[805],[817],[530,537],[606],[594,595,596,597,598,599,600,601,602,603,604,605],[537],[530,537,590],[506,507,508,509],[505],[453],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],[839],[44],[44,45,46,48],[41,48,49,50],[42],[41,46,48,833,834],[45,46,47,50,833,834],[29,30,31,32,33,34,35,36,37,38,39],[33],[36],[33,35],[67,68],[198],[198,201,390,462],[201],[196,329,390,453,472,473],[51,63,66,79,173,175,185,188,191,196,252,255,274,278,280,281,282,299,301,316,329,340,342,344,345,346,366,369,387,390,440,452,453,455,456,463,464,467,468,469,470,474,476,482,484,485,486,487,488,493,494,497,498,499,502,503,504],[66,252,281,282,496,505],[66,67,68,274,439,440],[274],[66,79,99,175,274,329,340,342,344,346,366,369,390,453,468,474,475,476,485,505],[51,66,67,68,80,173,196,201,252,255,282,328,342,344,345,369,390,440,453,455,462,466,467,468,505],[51,66,173,390,453,469,473],[390,469],[51,66,173,454],[66,67,68,102,253,254,255,440,453],[67,68,107,500,501],[67,68,173,302,316],[68,108,174,390,453],[66,185,316,440,453,505],[66,67,68,453,505],[67,68,453],[52,66,440,453],[67,68,69,255,274,310,438,440,453],[63,67,68],[252],[281],[51,66,173,231,232,252,267,268,273,274,278,279,280,282,453],[66,231,232,274,278,279,280,283,304],[66,67,68,274],[57,60,61,66,231,232,274,275,278,279,280,283,301,302,303,304,305,306,307,308,309,453],[61,66,101,102,172,185,196,203,204,234,248,249,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452],[273],[61,66,101,102,172,185,203,204,234,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452,453,495],[79],[65,66,67,68,107,185,196,265,274,310,319,328,439,453],[67,68,97,254,266,274,310,312,440],[66,67,68,102,253,254,440,453],[51,173,275,453],[67,68,323],[67,68,97,257],[67,68,97,319,320,453],[263],[67,97,320,321],[67,68,260],[67,68,263],[67,68,320],[67,68,256,258,259,260,261,262,263,264,265,268,269,321],[58,60,61,63,67,68,70,102,253,255,272,274,301,315,316,440],[66,67,97,233,319,329],[66,67,68,107,172,185,233,250,251,252,253,254,255,256,258,260,264,265,268,270,271,272,313,314,315,317,318,321,328,329,440],[67,266],[67,68,319,320],[67,68,97,257,266,267],[67,68,97,258,265,268,313,319,329],[67,68,262],[51,58,66,67,68,164,203,204,231],[61,232,233],[67,68,328],[67,68,71],[232],[325],[58,231,322,324,453],[61,66,196,232,233,234,245,246,247,248,249,252,321,326,327,329],[245,247,248,328,329],[196],[52,185],[67,68,306],[66,67,68,306],[274,311],[66,67,68,185],[66,67,68,186],[102,274],[58,66,274,275,276,277,310],[450],[58],[278],[172,278,279,280,442,444,445,446,447,448,449],[442],[443],[231,443],[60,67,68,87,140,174,240,246,284,287,289,299,300],[236,289,301],[72,107,108,174,180,236,240,241,285,286,288,294,297,298,300,301],[61,72,106,107,181,196,239,247,248,296,299,328],[67,68,72,99,102,248,274,301,329,453],[71,108,148,172,231,234,240,328],[241],[67,68,301],[67,68,107],[108,173],[174],[108,140,143,287],[61,240,299],[107,108,181,240,299,301],[107,180],[71,72,107,180,235,236,237,238,239,245],[108,174],[299],[72,107,108,174,180,181,240,241,286,288,294,297,299,300,301],[67,68,106],[67,68,107,180],[72,107,236,239,291,301],[107,174,240,292,295,296],[236,287,290],[102],[107,240,293],[51,172,234,242,243,244],[82,83,84],[82,83],[89,93],[89],[89,95],[87,88,89,91,92,94,96,102],[67,68,179],[90],[65],[66,67,68,274,301],[67,68,301,478,479],[66,67,68,73,79,102,274,316,453,477,478,480,481],[66,67,68],[67,68,172],[63],[52,54,57,62,63,64,65,67,68],[68,75],[97,99,101],[51,53,67],[52],[67,68,70],[97,100],[60,61],[66,67,68,98,102],[51],[52,67,68,99,102],[51,52,53,54,55,56,57,63,64,65,66],[67],[51,58,67,68,102,172,203,204,205,212,230],[60,61,62,67,68],[66,67,68,102],[67,68,73],[68],[73,74,75],[74,76,77],[395],[391],[390,391,392,393],[240],[180,196,453],[390,453,462],[107,196,198,201,390,453,462,465],[462,463,466],[246],[67,68,365],[366],[57,66,67,68,107,179,181,182,390],[66,183],[68,183,390],[67,68,71,107,181,183],[107,342,344,345,390],[342,343,390,453],[196,197,199,453],[196,199,200,390,453],[107,181,350,352],[67,68,390],[66,67,68,191],[106,184,190,192,390],[66,67,68,274,439],[329,344,390],[234,252,328,453,496],[67,68,107,246,284,371,372,373,374],[106,107,180],[376],[67,68,180],[67,68,69,439],[67,68,76,78,81,85,86,103],[68,104],[66,67,68,71,97,336,337],[66,79,102,108,280,336,355,356,357,358,359,360,361,362,363],[67,68,69,274],[358],[336],[67,68,79,80],[67,68,81,105],[196,390,453,462],[79,185,343,440],[344,453],[72,248,329,341,343,390,440],[67,68,105,174],[334,390],[67,68,301,328,453],[67,68,371],[107,280,384],[107,371,383],[104],[329,342,344,390],[67,68,107,299,382],[58,67,68,87,107,181,351],[105],[66,67,68,71,390,394,396,437],[107,175,390],[67,68,388],[390],[67,68,184,330],[52,54,66,67,68,72,79,102,107,174,175,181,183,184,187,188,189,193,194,195,196,200,202,240,248,249,252,292,299,301,328,329,331,332,333,334,335,338,340,346,349,353,354,364,366,367,368,369,370,371,375,377,380,381,385,386,387,389,439,453],[54,66,79,107,175,181,183,190,196,197,249,252,299,340,346,366,368,371,380,381,387,389,390,453,457,458,459,460,461],[329],[66,107,340,346,366,369,371,390],[66,71,174,184,187,188,189],[52,66,79,102,105,107,175,249,252,274,329,340,342,344,346,353,366,385,390,453,463,466,468,476,482,483,484],[57,106,107,372,378,379],[106,199,380],[106],[347],[199,280,348],[52,67,68,101,350,352,375,390,458,489,490,491,492],[107,380],[277,390,462],[390,462,471],[68,175,196,329,342,344,453,462],[339],[65,112,113,171],[51,61,164,172],[51,60,164,172],[58,60],[58,59],[60,109,172],[110,207],[58,110,207,208,209,229],[65,206],[207],[110],[58,110,207,209,212,216,218],[58,60,61,111,207,213],[51,60,61,110,207,209,214],[215],[65,112],[61,65,111,113],[140,141,142,143,144,145,146,147],[93],[148,152,157,160,161,163,171],[150,153],[110,148,151,154,155,209,211,219,224,226,228,230],[148,149,150,151,152,153,154,156,157,159,163,171],[93,162,164],[148,150],[206,207,228],[206,207,211,227],[93,110,209],[150,151,153,154,224,226],[93,148],[148,153],[148,155],[93,159,220,221,224],[220,225],[58,224],[110,209,211,213,217,224,226],[110,148,151,154,155,209,211,212,224,226],[93,158],[220,221,224,225],[221],[220,221,222,224,226],[93,210,213,218,219,223,229],[140,141],[136],[135],[136,137],[58,116,138,139,169,171],[113,114,115,116,117,170,172],[171],[60,61,113,117,152,156,157,162,164,165,166,167,168,170,171],[115,116],[114],[58,115],[140,148],[129,131,132],[65,120,122],[65,124,125],[65,112,123,126],[131],[65,128],[65,129],[134],[127,129,130,135],[61],[121],[65,124],[65,424],[65,405,425,426],[400,411,423],[176,177,178,398,401,403,404,409,410,420,423,428],[176,177,178,398,401,403,404,420,422,423,428,430,433,434],[397,400,402,404,409,410,411,412,421,422,430,433,434,436],[176,177,178,411,423],[176,177,178,398,401,402,403,404,420,421,423,428,430,433,434],[176,397,398,401,402,403,404],[65,400,402,404,409,410,411,412,413,414,416,418,419,421,422,430,433,434,436,437],[179,430,434,435],[65,176,177,178],[399,400,401,403,404,405,406,423,427,434],[65,176,177,178,398,401,402,403,404,429,433,434,436,437],[179,430,434,436],[65,176,177,178,398,401,402,403,404,407,408,409,410,411,415,417,418,420,421,423,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,408,411,415,419,420,421,422,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,407,416,419,428,430,433,434,436],[65,176,177,178,398,401,402,403,404,407,408,415,416,419,420,428,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,419,420,428,429,430,433,434,436],[65,176,177,178,409,417,419,423],[401,402,403],[176],[176,177],[176,177,400,402,404],[404],[176,179],[65,401],[65,179,416,430,433],[65,179,416,430,431,433],[65,176,177,178,398,401,402,403,404,408,411,415,416,419,420,421,422,428,429,430,433,434,436],[65,397,404,432,433],[65,176,398,401,402,403,404,432,434],[65,118,119,133]],"referencedMap":[[854,1],[847,2],[848,3],[908,4],[869,5],[867,5],[866,6],[868,5],[870,7],[881,5],[880,5],[890,5],[900,5],[907,5],[906,5],[892,8],[882,5],[877,5],[878,5],[879,5],[887,5],[903,5],[904,5],[899,5],[886,9],[885,5],[884,5],[883,5],[897,5],[896,5],[894,5],[895,5],[875,7],[898,5],[905,5],[891,10],[889,5],[888,5],[874,5],[871,11],[902,5],[901,5],[876,12],[893,5],[872,5],[873,5],[851,13],[865,10],[864,10],[856,14],[861,5],[863,10],[858,10],[855,15],[862,16],[857,17],[843,18],[844,19],[852,20],[853,21],[860,22],[846,23],[833,24],[837,25],[520,26],[593,27],[592,28],[526,29],[566,30],[589,31],[568,32],[587,33],[522,34],[521,35],[585,36],[530,35],[564,37],[537,38],[567,39],[527,40],[583,41],[581,35],[580,35],[579,35],[578,35],[577,35],[576,35],[575,35],[574,35],[573,42],[570,43],[572,35],[524,44],[528,35],[571,45],[563,46],[562,35],[560,35],[559,35],[558,47],[557,35],[556,35],[555,35],[554,35],[553,48],[552,35],[551,35],[550,35],[549,35],[547,49],[548,35],[545,35],[544,35],[543,35],[546,50],[542,35],[541,40],[540,51],[539,51],[538,49],[534,51],[533,51],[532,51],[531,51],[529,46],[834,52],[831,53],[830,54],[828,55],[827,56],[825,57],[760,58],[611,59],[613,60],[615,61],[617,62],[621,63],[623,64],[625,65],[627,66],[629,67],[631,68],[633,69],[635,70],[637,71],[639,72],[641,73],[643,74],[645,75],[647,76],[649,77],[651,78],[653,79],[655,80],[657,81],[659,82],[661,83],[663,84],[665,85],[667,86],[669,87],[671,88],[673,89],[675,90],[677,91],[679,92],[681,93],[683,94],[685,95],[687,96],[689,97],[691,98],[693,99],[695,100],[697,101],[699,102],[701,103],[703,104],[705,105],[707,106],[709,107],[711,108],[713,109],[715,110],[717,111],[719,112],[721,113],[723,114],[725,115],[727,116],[729,117],[731,118],[733,119],[735,120],[737,121],[739,122],[741,123],[743,124],[745,125],[747,126],[749,127],[751,128],[753,129],[755,130],[757,131],[759,132],[797,133],[762,134],[764,135],[766,136],[768,137],[770,138],[772,139],[788,140],[792,141],[794,142],[796,143],[804,144],[799,145],[798,146],[801,147],[803,148],[823,149],[822,150],[814,151],[810,152],[808,153],[820,154],[812,155],[816,156],[806,157],[818,158],[594,159],[607,160],[606,161],[600,159],[601,159],[595,159],[596,159],[597,159],[598,159],[599,159],[603,162],[604,163],[602,162],[510,164],[506,165],[507,166],[28,167],[840,168],[47,10],[45,169],[46,170],[838,171],[43,172],[50,173],[48,174],[40,175],[35,176],[34,176],[37,177],[36,178],[39,178],[306,179],[201,180],[460,181],[202,182],[474,183],[505,184],[503,185],[456,186],[464,187],[486,188],[469,189],[504,190],[473,191],[455,192],[316,193],[502,194],[494,179],[501,195],[467,196],[488,197],[487,198],[273,199],[451,200],[439,201],[69,202],[281,203],[282,204],[185,199],[283,205],[305,206],[304,207],[310,208],[279,179],[453,209],[495,210],[496,211],[475,212],[440,213],[313,214],[255,215],[454,216],[191,179],[323,179],[324,217],[265,218],[321,219],[315,220],[259,179],[250,179],[257,221],[269,179],[261,222],[260,179],[318,223],[264,224],[251,179],[270,225],[317,226],[320,227],[319,228],[267,229],[271,230],[256,230],[268,231],[314,232],[258,218],[262,179],[263,233],[272,179],[232,234],[234,235],[248,236],[252,237],[322,238],[326,239],[325,240],[328,241],[249,242],[233,243],[441,244],[303,179],[309,245],[307,246],[311,187],[312,247],[186,248],[187,249],[275,250],[278,251],[448,252],[442,253],[446,254],[450,255],[443,256],[445,257],[447,253],[444,258],[301,259],[290,260],[299,261],[329,262],[302,263],[241,264],[242,265],[289,266],[106,267],[174,268],[298,269],[288,270],[327,271],[286,272],[296,273],[240,274],[180,275],[300,276],[371,179],[295,277],[107,278],[108,267],[181,279],[292,280],[297,281],[291,282],[236,269],[382,283],[293,179],[294,284],[245,285],[374,179],[87,179],[83,179],[85,286],[84,287],[82,179],[373,179],[94,288],[95,289],[96,290],[103,291],[351,292],[90,289],[91,293],[70,294],[73,179],[479,295],[480,296],[478,179],[482,297],[477,298],[274,299],[62,300],[66,301],[77,302],[102,303],[52,304],[53,305],[71,306],[101,307],[88,308],[99,309],[100,310],[98,311],[67,312],[68,313],[231,314],[266,179],[63,315],[481,316],[253,179],[74,317],[75,318],[76,319],[78,320],[396,321],[392,322],[394,323],[391,324],[465,325],[463,326],[466,327],[484,328],[64,179],[247,329],[354,179],[366,330],[367,331],[183,332],[333,333],[365,334],[182,335],[346,336],[341,337],[200,338],[199,180],[461,339],[197,269],[353,340],[184,341],[189,179],[192,342],[193,343],[334,344],[369,345],[497,346],[375,347],[378,348],[376,179],[377,349],[379,350],[470,179],[387,351],[104,352],[105,353],[359,179],[360,179],[338,354],[355,179],[363,179],[364,355],[357,356],[362,357],[336,179],[361,202],[356,358],[81,359],[79,360],[468,361],[344,362],[345,363],[342,364],[175,365],[335,366],[368,367],[372,368],[385,369],[384,370],[476,371],[343,372],[383,373],[352,374],[491,375],[438,376],[386,377],[389,378],[330,298],[388,306],[332,379],[331,380],[390,381],[462,382],[458,379],[459,383],[457,384],[190,385],[485,386],[370,179],[380,387],[381,388],[347,389],[348,390],[349,391],[493,392],[492,393],[471,394],[472,395],[499,396],[350,179],[340,397],[489,179],[172,398],[203,399],[204,400],[61,401],[60,402],[173,403],[109,402],[208,404],[230,405],[207,406],[206,407],[111,408],[217,409],[212,410],[110,294],[215,411],[216,412],[113,413],[112,414],[148,415],[161,416],[162,417],[155,418],[93,253],[229,419],[164,420],[163,421],[151,422],[158,416],[227,423],[228,424],[211,425],[210,426],[153,427],[154,428],[156,429],[225,430],[221,431],[220,432],[218,433],[213,434],[159,435],[226,436],[222,437],[223,438],[224,439],[150,427],[144,440],[142,440],[137,441],[136,442],[138,443],[168,253],[170,444],[171,445],[139,446],[169,447],[114,448],[115,449],[116,450],[146,440],[145,440],[147,440],[149,451],[143,440],[133,452],[123,453],[124,294],[126,454],[127,455],[132,456],[121,294],[129,457],[130,458],[135,459],[131,460],[120,461],[122,462],[125,463],[425,464],[427,465],[414,466],[411,467],[421,468],[423,469],[409,470],[422,471],[410,472],[417,473],[436,474],[179,475],[428,476],[430,477],[435,478],[419,479],[416,480],[420,481],[429,482],[407,483],[418,484],[404,485],[398,486],[178,487],[401,488],[403,489],[177,490],[402,491],[431,492],[432,493],[437,494],[434,495],[433,496],[134,497]],"exportedModulesMap":[[854,1],[847,2],[848,3],[908,4],[869,5],[867,5],[866,6],[868,5],[870,7],[881,5],[880,5],[890,5],[900,5],[907,5],[906,5],[892,8],[882,5],[877,5],[878,5],[879,5],[887,5],[903,5],[904,5],[899,5],[886,9],[885,5],[884,5],[883,5],[897,5],[896,5],[894,5],[895,5],[875,7],[898,5],[905,5],[891,10],[889,5],[888,5],[874,5],[871,11],[902,5],[901,5],[876,12],[893,5],[872,5],[873,5],[851,13],[865,10],[864,10],[856,14],[861,5],[863,10],[858,10],[855,15],[862,16],[857,17],[843,18],[844,19],[852,20],[853,21],[860,22],[846,23],[833,24],[837,25],[520,26],[593,27],[592,28],[526,29],[566,30],[589,31],[568,32],[587,33],[522,34],[521,35],[585,36],[530,35],[564,37],[537,38],[567,39],[527,40],[583,41],[581,35],[580,35],[579,35],[578,35],[577,35],[576,35],[575,35],[574,35],[573,42],[570,43],[572,35],[524,44],[528,35],[571,45],[563,46],[562,35],[560,35],[559,35],[558,47],[557,35],[556,35],[555,35],[554,35],[553,48],[552,35],[551,35],[550,35],[549,35],[547,49],[548,35],[545,35],[544,35],[543,35],[546,50],[542,35],[541,40],[540,51],[539,51],[538,49],[534,51],[533,51],[532,51],[531,51],[529,46],[834,52],[831,53],[830,54],[828,55],[827,56],[825,57],[760,58],[611,59],[613,60],[615,61],[617,62],[621,63],[623,64],[625,65],[627,66],[629,67],[631,68],[633,69],[635,70],[637,71],[639,72],[641,73],[643,74],[645,75],[647,76],[649,77],[651,78],[653,79],[655,80],[657,81],[659,82],[661,83],[663,84],[665,85],[667,86],[669,87],[671,88],[673,89],[675,90],[677,91],[679,92],[681,93],[683,94],[685,95],[687,96],[689,97],[691,98],[693,99],[695,100],[697,101],[699,102],[701,103],[703,104],[705,105],[707,106],[709,107],[711,108],[713,109],[715,110],[717,111],[719,112],[721,113],[723,114],[725,115],[727,116],[729,117],[731,118],[733,119],[735,120],[737,121],[739,122],[741,123],[743,124],[745,125],[747,126],[749,127],[751,128],[753,129],[755,130],[757,131],[759,132],[797,133],[762,134],[764,135],[766,136],[768,137],[770,138],[772,139],[788,140],[792,141],[794,142],[796,143],[804,144],[799,145],[798,146],[801,147],[803,148],[823,149],[822,150],[814,151],[810,152],[808,153],[820,154],[812,155],[816,156],[806,157],[818,158],[594,159],[607,160],[606,161],[600,159],[601,159],[595,159],[596,159],[597,159],[598,159],[599,159],[603,162],[604,163],[602,162],[510,164],[506,165],[507,166],[28,167],[840,168],[47,10],[45,169],[46,170],[838,171],[43,172],[50,173],[48,174],[40,175],[35,176],[34,176],[37,177],[36,178],[39,178],[306,179],[201,180],[460,181],[202,182],[474,183],[505,184],[503,185],[456,186],[464,187],[486,188],[469,189],[504,190],[473,191],[455,192],[316,193],[502,194],[494,179],[501,195],[467,196],[488,197],[487,198],[273,199],[451,200],[439,201],[69,202],[281,203],[282,204],[185,199],[283,205],[305,206],[304,207],[310,208],[279,179],[453,209],[495,210],[496,211],[475,212],[440,213],[313,214],[255,215],[454,216],[191,179],[323,179],[324,217],[265,218],[321,219],[315,220],[259,179],[250,179],[257,221],[269,179],[261,222],[260,179],[318,223],[264,224],[251,179],[270,225],[317,226],[320,227],[319,228],[267,229],[271,230],[256,230],[268,231],[314,232],[258,218],[262,179],[263,233],[272,179],[232,234],[234,235],[248,236],[252,237],[322,238],[326,239],[325,240],[328,241],[249,242],[233,243],[441,244],[303,179],[309,245],[307,246],[311,187],[312,247],[186,248],[187,249],[275,250],[278,251],[448,252],[442,253],[446,254],[450,255],[443,256],[445,257],[447,253],[444,258],[301,259],[290,260],[299,261],[329,262],[302,263],[241,264],[242,265],[289,266],[106,267],[174,268],[298,269],[288,270],[327,271],[286,272],[296,273],[240,274],[180,275],[300,276],[371,179],[295,277],[107,278],[108,267],[181,279],[292,280],[297,281],[291,282],[236,269],[382,283],[293,179],[294,284],[245,285],[374,179],[87,179],[83,179],[85,286],[84,287],[82,179],[373,179],[94,288],[95,289],[96,290],[103,291],[351,292],[90,289],[91,293],[70,294],[73,179],[479,295],[480,296],[478,179],[482,297],[477,298],[274,299],[62,300],[66,301],[77,302],[102,303],[52,304],[53,305],[71,306],[101,307],[88,308],[99,309],[100,310],[98,311],[67,312],[68,313],[231,314],[266,179],[63,315],[481,316],[253,179],[74,317],[75,318],[76,319],[78,320],[396,321],[392,322],[394,323],[391,324],[465,325],[463,326],[466,327],[484,328],[64,179],[247,329],[354,179],[366,330],[367,331],[183,332],[333,333],[365,334],[182,335],[346,336],[341,337],[200,338],[199,180],[461,339],[197,269],[353,340],[184,341],[189,179],[192,342],[193,343],[334,344],[369,345],[497,346],[375,347],[378,348],[376,179],[377,349],[379,350],[470,179],[387,351],[104,352],[105,353],[359,179],[360,179],[338,354],[355,179],[363,179],[364,355],[357,356],[362,357],[336,179],[361,202],[356,358],[81,359],[79,360],[468,361],[344,362],[345,363],[342,364],[175,365],[335,366],[368,367],[372,368],[385,369],[384,370],[476,371],[343,372],[383,373],[352,374],[491,375],[438,376],[386,377],[389,378],[330,298],[388,306],[332,379],[331,380],[390,381],[462,382],[458,379],[459,383],[457,384],[190,385],[485,386],[370,179],[380,387],[381,388],[347,389],[348,390],[349,391],[493,392],[492,393],[471,394],[472,395],[499,396],[350,179],[340,397],[489,179],[172,398],[203,399],[204,400],[61,401],[60,402],[173,403],[109,402],[208,404],[230,405],[207,406],[206,407],[111,408],[217,409],[212,410],[110,294],[215,411],[216,412],[113,413],[112,414],[148,415],[161,416],[162,417],[155,418],[93,253],[229,419],[164,420],[163,421],[151,422],[158,416],[227,423],[228,424],[211,425],[210,426],[153,427],[154,428],[156,429],[225,430],[221,431],[220,432],[218,433],[213,434],[159,435],[226,436],[222,437],[223,438],[224,439],[150,427],[144,440],[142,440],[137,441],[136,442],[138,443],[168,253],[170,444],[171,445],[139,446],[169,447],[114,448],[115,449],[116,450],[146,440],[145,440],[147,440],[149,451],[143,440],[133,452],[123,453],[124,294],[126,454],[127,455],[132,456],[121,294],[129,457],[130,458],[135,459],[131,460],[120,461],[122,462],[125,463],[425,464],[427,465],[414,466],[411,467],[421,468],[423,469],[409,470],[422,471],[410,472],[417,473],[436,474],[179,475],[428,476],[430,477],[435,478],[419,479],[416,480],[420,481],[429,482],[407,483],[418,484],[404,485],[398,486],[178,487],[401,488],[403,489],[177,490],[402,491],[431,492],[432,493],[437,494],[434,495],[433,496],[134,497]],"semanticDiagnosticsPerFile":[833,832,837,565,520,516,517,514,593,591,592,526,566,590,589,568,535,536,519,515,586,587,522,521,518,585,584,530,564,537,567,527,582,583,581,580,579,578,577,576,575,574,573,570,572,524,569,528,571,563,562,561,560,559,558,557,523,556,555,554,553,552,551,550,549,547,548,545,544,543,546,525,542,541,540,539,538,534,533,532,531,529,588,513,512,511,834,835,831,830,829,608,609,828,827,826,825,824,760,611,610,613,612,615,614,617,616,619,618,621,620,623,622,625,624,627,626,629,628,631,630,633,632,635,634,637,636,639,638,641,640,643,642,645,644,647,646,649,648,651,650,653,652,655,654,657,656,659,658,661,660,663,662,665,664,667,666,669,668,671,670,673,672,675,674,677,676,679,678,681,680,683,682,685,684,687,686,689,688,691,690,693,692,695,694,697,696,699,698,701,700,703,702,705,704,707,706,709,708,711,710,713,712,715,714,717,716,719,718,721,720,723,722,725,724,727,726,729,728,731,730,733,732,735,734,737,736,739,738,741,740,743,742,745,744,747,746,749,748,751,750,753,752,755,754,757,756,759,758,797,762,761,764,763,766,765,768,767,770,769,772,771,774,773,776,775,778,777,780,779,782,781,784,783,786,785,788,787,790,789,792,791,794,793,796,795,804,799,798,801,800,803,802,823,822,821,814,813,810,809,808,807,820,819,812,811,816,815,806,805,818,817,836,594,607,606,605,600,601,595,596,597,598,599,603,604,602,510,506,507,508,509,1,16,2,28,3,26,4,5,17,18,6,20,21,19,27,7,8,9,10,11,12,13,14,24,25,22,23,15,47,45,46,44,838,42,43,50,49,48,41,40,31,35,32,33,34,37,36,38,39,30,29,306,201,460,202,198,474,505,503,456,464,486,469,504,473,455,316,502,494,501,467,488,487,273,451,439,69,281,282,185,283,305,304,310,279,453,495,496,475,440,313,255,454,191,323,324,265,321,315,259,250,257,269,261,260,318,264,251,270,317,320,319,267,271,256,268,314,258,262,263,272,232,234,248,252,322,326,325,328,249,233,441,452,303,309,307,308,311,312,186,187,276,275,278,448,277,442,446,450,443,445,447,444,449,301,290,72,299,287,239,284,329,302,285,241,242,244,243,289,106,238,174,298,288,327,286,296,240,180,237,300,371,295,107,108,181,292,297,291,236,382,293,294,245,235,86,374,87,83,85,84,82,373,89,94,95,96,92,103,351,90,91,70,73,479,480,478,482,477,274,62,66,280,77,102,52,53,71,101,88,99,100,98,188,67,68,231,266,63,481,253,74,75,76,78,337,396,395,392,394,393,391,465,463,466,484,254,80,56,196,246,194,97,195,500,57,64,54,55,247,354,366,367,183,333,365,182,346,341,200,199,461,197,353,184,189,490,192,193,334,369,497,375,378,376,377,379,470,387,483,104,105,359,360,338,355,363,358,364,357,362,336,361,356,81,79,468,344,345,342,175,335,368,372,385,384,476,343,383,352,491,438,386,389,330,388,332,331,390,462,458,459,457,190,485,370,380,381,347,348,349,493,492,471,472,499,350,339,340,498,489,58,172,51,203,204,59,61,205,60,173,65,109,208,230,207,206,219,111,217,212,110,215,216,209,214,113,112,140,148,141,161,162,155,93,160,229,164,163,151,158,227,228,211,210,153,154,156,225,221,220,218,213,159,226,222,223,224,150,144,142,166,157,137,136,138,167,168,165,170,117,152,171,139,169,114,115,116,146,145,147,149,143,133,123,124,126,127,132,128,121,129,130,135,119,118,131,120,122,125,425,424,426,427,405,414,411,421,423,409,422,410,417,413,436,415,179,428,399,406,400,397,430,435,419,416,420,408,429,407,418,412,176,404,398,178,401,403,177,402,431,432,437,434,433,134]},"version":"5.2.2"} \ No newline at end of file diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0234d97352e40b0c1921e483838dc07c3f2c5533 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0234d97352e40b0c1921e483838dc07c3f2c5533 deleted file mode 100644 index e6034481..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0234d97352e40b0c1921e483838dc07c3f2c5533 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass MemberLevel extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: Number, optional: false },\n name: { type: String, optional: false },\n min_amount: { type: Number, optional: false },\n discount: { type: Number, optional: false },\n description: { type: String, optional: true }\n };\n },\n name: \"MemberLevel\"\n };\n }\n constructor(options, metadata = MemberLevel.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.min_amount = this.__props__.min_amount;\n this.discount = this.__props__.discount;\n this.description = this.__props__.description;\n delete this.__props__;\n }\n}\nclass MemberInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n member_level: { type: Number, optional: false },\n level_name: { type: String, optional: false },\n discount: { type: Number, optional: false },\n total_spent: { type: Number, optional: false },\n next_level: { type: MemberLevel, optional: true },\n progress_percent: { type: Number, optional: false },\n manual_level: { type: Boolean, optional: false }\n };\n },\n name: \"MemberInfo\"\n };\n }\n constructor(options, metadata = MemberInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.member_level = this.__props__.member_level;\n this.level_name = this.__props__.level_name;\n this.discount = this.__props__.discount;\n this.total_spent = this.__props__.total_spent;\n this.next_level = this.__props__.next_level;\n this.progress_percent = this.__props__.progress_percent;\n this.manual_level = this.__props__.manual_level;\n delete this.__props__;\n }\n}\nclass LevelLog extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n old_level: { type: Number, optional: false },\n new_level: { type: Number, optional: false },\n reason: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"LevelLog\"\n };\n }\n constructor(options, metadata = LevelLog.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.old_level = this.__props__.old_level;\n this.new_level = this.__props__.new_level;\n this.reason = this.__props__.reason;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const memberInfo = ref(new MemberInfo({\n member_level: 0,\n level_name: '普通会员',\n discount: 1.0,\n total_spent: 0,\n next_level: null,\n progress_percent: 0,\n manual_level: false\n }));\n const levels = ref([]);\n const logs = ref([]);\n const logsLoading = ref(false);\n const loadMemberInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n try {\n const result = yield supabaseService.getUserMemberInfo();\n memberInfo.value = {\n member_level: (_a = result.getNumber('member_level')) !== null && _a !== void 0 ? _a : 0,\n level_name: (_b = result.getString('level_name')) !== null && _b !== void 0 ? _b : '普通会员',\n discount: (_c = result.getNumber('discount')) !== null && _c !== void 0 ? _c : 1.0,\n total_spent: (_d = result.getNumber('total_spent')) !== null && _d !== void 0 ? _d : 0,\n next_level: null,\n progress_percent: (_g = result.getNumber('progress_percent')) !== null && _g !== void 0 ? _g : 0,\n manual_level: (_h = result.getBoolean('manual_level')) !== null && _h !== void 0 ? _h : false\n };\n const nextLevelRaw = result.get('next_level');\n if (nextLevelRaw != null) {\n const nextLevelAny = nextLevelRaw;\n if (typeof nextLevelAny._getValue === 'function') {\n memberInfo.value.next_level = {\n id: (_j = nextLevelAny._getValue('id')) !== null && _j !== void 0 ? _j : 0,\n name: (_k = nextLevelAny._getValue('name')) !== null && _k !== void 0 ? _k : '',\n min_amount: (_l = nextLevelAny._getValue('min_amount')) !== null && _l !== void 0 ? _l : 0,\n discount: 1.0,\n description: null\n };\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:181', '加载会员信息失败:', e);\n }\n }); };\n const loadLevels = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n try {\n const result = yield supabaseService.getMemberLevels();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n if (typeof itemAny._getValue === 'function') {\n parsed.push(new MemberLevel({\n id: (_a = itemAny._getValue('id')) !== null && _a !== void 0 ? _a : 0,\n name: (_b = itemAny._getValue('name')) !== null && _b !== void 0 ? _b : '',\n min_amount: (_c = itemAny._getValue('min_amount')) !== null && _c !== void 0 ? _c : 0,\n discount: (_d = itemAny._getValue('discount')) !== null && _d !== void 0 ? _d : 1.0,\n description: itemAny._getValue('description')\n }));\n }\n }\n levels.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:207', '加载会员等级失败:', e);\n }\n }); };\n const loadLogs = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n logsLoading.value = true;\n try {\n const result = yield supabaseService.getMemberLevelLogs();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n if (typeof itemAny._getValue === 'function') {\n parsed.push(new LevelLog({\n id: (_a = itemAny._getValue('id')) !== null && _a !== void 0 ? _a : '',\n old_level: (_b = itemAny._getValue('old_level')) !== null && _b !== void 0 ? _b : 0,\n new_level: (_c = itemAny._getValue('new_level')) !== null && _c !== void 0 ? _c : 0,\n reason: itemAny._getValue('reason'),\n created_at: (_d = itemAny._getValue('created_at')) !== null && _d !== void 0 ? _d : ''\n }));\n }\n }\n logs.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:234', '加载变更记录失败:', e);\n }\n finally {\n logsLoading.value = false;\n }\n }); };\n const getDiscountText = (discount) => {\n if (discount >= 1)\n return '无折扣';\n return Math.round(discount * 100) / 10 + '折';\n };\n const getNextLevelName = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.name;\n }\n return '';\n };\n const getNextLevelMinAmount = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.min_amount;\n }\n return 0;\n };\n const getRemainingAmount = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.min_amount - memberInfo.value.total_spent;\n }\n return 0;\n };\n const getLevelName = (level) => {\n for (let i = 0; i < levels.value.length; i++) {\n if (levels.value[i].id === level) {\n return levels.value[i].name;\n }\n }\n return '普通会员';\n };\n const formatDate = (dateStr) => {\n if (dateStr === '')\n return '';\n const date = new Date(dateStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n };\n onMounted(() => {\n loadMemberInfo();\n loadLevels();\n loadLogs();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(memberInfo.value.level_name),\n b: _n('level-' + memberInfo.value.member_level),\n c: _t(getDiscountText(memberInfo.value.discount)),\n d: memberInfo.value.next_level != null\n }, memberInfo.value.next_level != null ? {\n e: _t(getNextLevelName()),\n f: _t(getRemainingAmount()),\n g: memberInfo.value.progress_percent + '%',\n h: _t(memberInfo.value.total_spent),\n i: _t(getNextLevelMinAmount())\n } : {}, {\n j: _f(levels.value, (level, k0, i0) => {\n return _e({\n a: _t(level.name.charAt(0)),\n b: _n('level-bg-' + level.id),\n c: _t(level.name),\n d: _t(level.description || '累计消费' + level.min_amount + '元'),\n e: _t(getDiscountText(level.discount)),\n f: level.id === memberInfo.value.member_level\n }, level.id === memberInfo.value.member_level ? {} : {}, {\n g: level.id,\n h: level.id === memberInfo.value.member_level ? 1 : ''\n });\n }),\n k: logsLoading.value\n }, logsLoading.value ? {} : logs.value.length === 0 ? {} : {\n m: _f(logs.value, (log, k0, i0) => {\n return {\n a: _t(getLevelName(log.old_level)),\n b: _t(getLevelName(log.new_level)),\n c: _t(log.reason || '系统升级'),\n d: _t(formatDate(log.created_at)),\n e: log.id\n };\n })\n }, {\n l: logs.value.length === 0,\n n: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/member/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/05a24b367ce8ac4ad6829e5722e71aa1f4436ee0 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/05a24b367ce8ac4ad6829e5722e71aa1f4436ee0 deleted file mode 100644 index 2360bcb2..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/05a24b367ce8ac4ad6829e5722e71aa1f4436ee0 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, watch } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass WalletType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n balance: { type: Number, optional: false },\n total_recharge: { type: Number, optional: false },\n total_consume: { type: Number, optional: false },\n total_withdraw: { type: Number, optional: false },\n updated_at: { type: String, optional: false }\n };\n },\n name: \"WalletType\"\n };\n }\n constructor(options, metadata = WalletType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.balance = this.__props__.balance;\n this.total_recharge = this.__props__.total_recharge;\n this.total_consume = this.__props__.total_consume;\n this.total_withdraw = this.__props__.total_withdraw;\n this.updated_at = this.__props__.updated_at;\n delete this.__props__;\n }\n}\nclass TransactionType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n change_amount: { type: Number, optional: false },\n amount: { type: Number, optional: false },\n current_balance: { type: Number, optional: false },\n change_type: { type: String, optional: false },\n type: { type: String, optional: false },\n related_id: { type: String, optional: true },\n remark: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"TransactionType\"\n };\n }\n constructor(options, metadata = TransactionType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.change_amount = this.__props__.change_amount;\n this.amount = this.__props__.amount;\n this.current_balance = this.__props__.current_balance;\n this.change_type = this.__props__.change_type;\n this.type = this.__props__.type;\n this.related_id = this.__props__.related_id;\n this.remark = this.__props__.remark;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass StatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n totalRecharge: { type: Number, optional: false },\n totalConsume: { type: Number, optional: false },\n totalWithdraw: { type: Number, optional: false }\n };\n },\n name: \"StatsType\"\n };\n }\n constructor(options, metadata = StatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.totalRecharge = this.__props__.totalRecharge;\n this.totalConsume = this.__props__.totalConsume;\n this.totalWithdraw = this.__props__.totalWithdraw;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'wallet',\n setup(__props) {\n const balance = ref(0);\n const stats = ref(new StatsType({\n totalRecharge: 0,\n totalConsume: 0,\n totalWithdraw: 0\n }));\n const transactions = ref([]);\n const activeFilter = ref('all');\n const isLoading = ref(false);\n const currentPage = ref(1);\n const pageSize = ref(20);\n const hasMore = ref(true);\n const showRechargePopup = ref(false);\n const rechargeAmount = ref('');\n const quickAmounts = [50, 100, 200, 500, 1000];\n // 获取当前用户ID\n const getCurrentUserId = () => {\n var _a;\n const userStore = uni.getStorageSync('userInfo');\n if (userStore == null)\n return '';\n const userInfo = userStore;\n return (_a = userInfo.getString('id')) !== null && _a !== void 0 ? _a : '';\n };\n // 重置交易记录\n const resetTransactions = () => {\n transactions.value = [];\n currentPage.value = 1;\n hasMore.value = true;\n };\n // 加载余额信息\n const loadBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const realBalance = yield supabaseService.getUserBalance();\n balance.value = realBalance;\n const statsData = new StatsType({\n totalRecharge: 0,\n totalConsume: 0,\n totalWithdraw: 0\n });\n stats.value = statsData;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:247', '加载钱包异常:', err);\n }\n }); };\n // 加载交易记录\n const loadTransactions = (loadMore) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q;\n if (isLoading.value || (hasMore.value === false && loadMore)) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n const userId = getCurrentUserId();\n if (userId == '') {\n isLoading.value = false;\n return Promise.resolve(null);\n }\n const page = loadMore ? currentPage.value + 1 : 1;\n const limit = 20;\n const data = yield supabaseService.getTransactions(page, limit);\n const mappedData = [];\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n let id = '';\n let amount = 0;\n let balanceAfter = 0;\n let type = '';\n let remark = '';\n let createdAt = '';\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n id = (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '';\n amount = (_b = item.getNumber('amount')) !== null && _b !== void 0 ? _b : 0;\n balanceAfter = (_c = item.getNumber('balance_after')) !== null && _c !== void 0 ? _c : 0;\n type = (_d = item.getString('type')) !== null && _d !== void 0 ? _d : 'consume';\n remark = (_g = item.getString('description')) !== null && _g !== void 0 ? _g : '';\n createdAt = (_h = item.getString('created_at')) !== null && _h !== void 0 ? _h : '';\n }\n else {\n const itemObj = item;\n id = (_j = itemObj.getString('id')) !== null && _j !== void 0 ? _j : '';\n amount = (_k = itemObj.getNumber('amount')) !== null && _k !== void 0 ? _k : 0;\n balanceAfter = (_l = itemObj.getNumber('balance_after')) !== null && _l !== void 0 ? _l : 0;\n type = (_m = itemObj.getString('type')) !== null && _m !== void 0 ? _m : 'consume';\n remark = (_p = itemObj.getString('description')) !== null && _p !== void 0 ? _p : '';\n createdAt = (_q = itemObj.getString('created_at')) !== null && _q !== void 0 ? _q : '';\n }\n const transaction = new TransactionType({\n id: id,\n user_id: userId,\n change_amount: amount,\n amount: amount,\n current_balance: balanceAfter,\n change_type: type,\n type: type,\n related_id: null,\n remark: remark,\n created_at: createdAt\n });\n mappedData.push(transaction);\n }\n if (loadMore) {\n for (let i = 0; i < mappedData.length; i++) {\n transactions.value.push(mappedData[i]);\n }\n currentPage.value = page;\n }\n else {\n transactions.value = mappedData;\n currentPage.value = 1;\n }\n hasMore.value = mappedData.length >= limit;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:325', '加载交易记录失败:', err);\n }\n finally {\n isLoading.value = false;\n }\n }); };\n // 加载钱包数据\n const loadWalletData = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = getCurrentUserId();\n if (userId == '') {\n return Promise.resolve(null);\n }\n loadBalance();\n loadTransactions(false);\n }); };\n // 计算属性\n const canRecharge = computed(() => {\n const amount = parseFloat(rechargeAmount.value);\n if (amount == null || amount < 10 || amount > 5000) {\n return false;\n }\n return true;\n });\n // 监听过滤器变化\n watch(activeFilter, () => {\n resetTransactions();\n loadTransactions(false);\n });\n // 生命周期\n onShow(() => {\n loadWalletData();\n });\n // 获取交易图标\n const getTransactionIcon = (type) => {\n if (type === 'recharge')\n return '💳';\n if (type === 'consume')\n return '🛒';\n if (type === 'withdraw')\n return '🏦';\n if (type === 'refund')\n return '🔄';\n if (type === 'reward')\n return '🎁';\n if (type === 'income')\n return '💰';\n if (type === 'expense')\n return '📤';\n return '💰';\n };\n // 获取交易标题\n const getTransactionTitle = (type) => {\n if (type === 'recharge')\n return '账户充值';\n if (type === 'consume')\n return '商品消费';\n if (type === 'withdraw')\n return '余额提现';\n if (type === 'refund')\n return '订单退款';\n if (type === 'reward')\n return '活动奖励';\n if (type === 'income')\n return '收入';\n if (type === 'expense')\n return '支出';\n return '交易';\n };\n // 格式化时间\n const formatTime = (timeStr) => {\n const date = new Date(timeStr);\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n return `${month}-${day} ${hours}:${minutes}`;\n };\n // 显示更多操作\n const showMoreActions = () => {\n uni.showActionSheet({\n itemList: ['交易记录', '安全设置', '帮助中心'],\n success: (res) => {\n switch (res.tapIndex) {\n case 0:\n // 交易记录已经在当前页\n break;\n case 1:\n uni.navigateTo({\n url: '/pages/mall/consumer/settings'\n });\n break;\n case 2:\n uni.navigateTo({\n url: '/pages/info/help'\n });\n break;\n }\n }\n });\n };\n // 充值\n const recharge = () => {\n showRechargePopup.value = true;\n rechargeAmount.value = '';\n };\n // 提现\n const withdraw = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/withdraw'\n });\n };\n // 跳转到优惠券\n const goToCoupons = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons'\n });\n };\n // 跳转到红包\n const goToRedPackets = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/red-packets/index'\n });\n };\n // 跳转到积分\n const goToPoints = () => {\n // 使用统一的积分页面\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n };\n // 跳转到银行卡\n const goToBankCards = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/bank-cards/index'\n });\n };\n // 切换过滤器\n const changeFilter = (filter) => {\n activeFilter.value = filter;\n };\n // 加载更多\n const loadMore = () => {\n if (hasMore.value && isLoading.value === false) {\n loadTransactions(true);\n }\n };\n // 选择快捷金额\n const selectQuickAmount = (amount) => {\n rechargeAmount.value = amount.toString();\n };\n // 关闭充值弹窗\n const closeRechargePopup = () => {\n showRechargePopup.value = false;\n rechargeAmount.value = '';\n };\n // 确认充值\n const confirmRecharge = () => { return __awaiter(this, void 0, void 0, function* () {\n if (canRecharge.value === false)\n return Promise.resolve(null);\n const amount = parseFloat(rechargeAmount.value);\n if (amount == null || amount < 10 || amount > 5000)\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中...' });\n try {\n const success = yield supabaseService.rechargeBalance(amount);\n if (success) {\n uni.showToast({\n title: '充值成功',\n icon: 'success'\n });\n closeRechargePopup();\n loadWalletData();\n }\n else {\n uni.showToast({\n title: '充值失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:509', '充值异常:', e);\n uni.showToast({\n title: '系统异常,请稍后重试',\n icon: 'none'\n });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n // 返回\n const goBack = () => {\n uni.navigateBack();\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(balance.value.toFixed(2)),\n b: _o(recharge),\n c: _o(withdraw),\n d: _t(stats.value.totalRecharge.toFixed(2)),\n e: _t(stats.value.totalConsume.toFixed(2)),\n f: _t(stats.value.totalWithdraw.toFixed(2)),\n g: _o(goToCoupons),\n h: _o(goToRedPackets),\n i: _o(goToPoints),\n j: _o(goToBankCards),\n k: _n({\n active: activeFilter.value === 'all'\n }),\n l: _o($event => { return changeFilter('all'); }),\n m: _n({\n active: activeFilter.value === 'income'\n }),\n n: _o($event => { return changeFilter('income'); }),\n o: _n({\n active: activeFilter.value === 'expense'\n }),\n p: _o($event => { return changeFilter('expense'); }),\n q: transactions.value.length === 0 && isLoading.value === false\n }, transactions.value.length === 0 && isLoading.value === false ? {} : {}, {\n r: _f(transactions.value, (transaction, k0, i0) => {\n return _e({\n a: _t(getTransactionIcon(transaction.type)),\n b: _t(getTransactionTitle(transaction.type)),\n c: _t(formatTime(transaction.created_at)),\n d: transaction.remark\n }, transaction.remark ? {\n e: _t(transaction.remark)\n } : {}, {\n f: _t(transaction.amount > 0 ? '+' : ''),\n g: _t(Math.abs(transaction.amount).toFixed(2)),\n h: _n({\n income: transaction.amount > 0,\n expense: transaction.amount < 0\n }),\n i: _t(transaction.current_balance.toFixed(2)),\n j: transaction.id\n });\n }),\n s: isLoading.value\n }, isLoading.value ? {} : {}, {\n t: hasMore.value === false && transactions.value.length > 0\n }, hasMore.value === false && transactions.value.length > 0 ? {} : {}, {\n v: showRechargePopup.value\n }, showRechargePopup.value ? {\n w: _o(closeRechargePopup),\n x: _o(closeRechargePopup),\n y: rechargeAmount.value,\n z: _o($event => { return rechargeAmount.value = $event.detail.value; }),\n A: _f(quickAmounts, (amount, k0, i0) => {\n return {\n a: _t(amount),\n b: amount,\n c: _n({\n active: rechargeAmount.value === amount.toString()\n }),\n d: _o($event => { return selectQuickAmount(amount); }, amount)\n };\n }),\n B: _o(closeRechargePopup),\n C: canRecharge.value === false ? 1 : '',\n D: _o(confirmRecharge)\n } : {}, {\n E: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/wallet.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.getStorageSync","uni.__f__","uni.navigateTo","uni.showActionSheet","uni.showLoading","uni.showToast","uni.hideLoading","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"wallet.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"wallet.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/15abbd7dab58411da894e1f875438c9bdba0233b b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/15abbd7dab58411da894e1f875438c9bdba0233b new file mode 100644 index 00000000..f0a40f2b --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/15abbd7dab58411da894e1f875438c9bdba0233b @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, gei as _gei, sei as _sei, s as _s, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { IS_TEST_MODE } from \"@/ak/config\";\nimport { getCurrentUser, logout, setIsLoggedIn, setUserProfile } from \"@/utils/store\";\nimport { UserProfile } from \"@/types/mall-types\";\nconst TEST_ACCOUNT = 'test@mall.com';\nconst TEST_PASSWORD = 'Hf2152111';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'login',\n setup(__props) {\n const cssVars = new UTSJSONObject({\n '--bg': '#f5f6f8',\n '--card': '#ffffff',\n '--brand': '#e1251b',\n '--text': '#333333',\n '--muted': '#666666',\n '--muted2': '#999999',\n '--border': '#eeeeee',\n '--inputbg': '#f6f7f9',\n '--shadow': '0 2px 12px rgba(0,0,0,0.06)'\n });\n const logoUrl = ref('/static/logo.png');\n const loginType = ref(0);\n const account = ref('');\n const password = ref('');\n const captcha = ref('');\n // 测试账号(开发测试用)\n const isLoading = ref(false);\n const codeDisabled = ref(false);\n const codeText = ref('获取验证码');\n const codeTimer = ref(0);\n const codeCountdown = ref(0);\n const checkLoginStatus = () => {\n try {\n if (IS_TEST_MODE)\n return null;\n const sessionInfo = supa.getSession();\n if (sessionInfo != null && sessionInfo.user != null) {\n const pages = getCurrentPages();\n if (pages.length > 0) {\n const currentPage = pages[pages.length - 1];\n const opts = currentPage.options;\n const redirect = opts.getString('redirect');\n if (redirect != null && redirect != '') {\n uni.reLaunch({ url: `/pages/main/index` });\n }\n else {\n uni.reLaunch({ url: '/pages/main/index' });\n }\n }\n else {\n uni.reLaunch({ url: '/pages/main/index' });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/login.uvue:194', '检查登录状态失败:', e);\n }\n };\n onMounted(() => {\n checkLoginStatus();\n // 自动填充测试账号密码\n account.value = TEST_ACCOUNT;\n password.value = TEST_PASSWORD;\n });\n const validateAccount = () => {\n if (account.value.trim() === '') {\n uni.showToast({ title: '请填写账号', icon: 'none' });\n return false;\n }\n if (loginType.value === 1) {\n if (!/^1[3-9]\\d{9}$/.test(account.value)) {\n uni.showToast({ title: '请输入正确的手机号码', icon: 'none' });\n return false;\n }\n }\n return true;\n };\n const validatePassword = () => {\n if (password.value.trim() === '') {\n uni.showToast({ title: '请填写密码', icon: 'none' });\n return false;\n }\n if (password.value.length < 6) {\n uni.showToast({ title: '密码长度不能少于6位', icon: 'none' });\n return false;\n }\n return true;\n };\n const validateCaptcha = () => {\n if (captcha.value.trim() === '') {\n uni.showToast({ title: '请填写验证码', icon: 'none' });\n return false;\n }\n if (!/^\\d{6}$/.test(captcha.value)) {\n uni.showToast({ title: '请输入正确的验证码', icon: 'none' });\n return false;\n }\n return true;\n };\n const getCode = () => { return __awaiter(this, void 0, void 0, function* () {\n if (codeDisabled.value)\n return Promise.resolve(null);\n if (!validateAccount())\n return Promise.resolve(null);\n uni.showToast({ title: '验证码已发送', icon: 'success' });\n codeDisabled.value = true;\n codeCountdown.value = 60;\n codeText.value = `${codeCountdown.value}秒后重试`;\n codeTimer.value = setInterval(() => {\n codeCountdown.value--;\n if (codeCountdown.value > 0) {\n codeText.value = `${codeCountdown.value}秒后重试`;\n }\n else {\n codeDisabled.value = false;\n codeText.value = '获取验证码';\n if (codeTimer.value != 0) {\n clearInterval(codeTimer.value);\n codeTimer.value = 0;\n }\n }\n }, 1000);\n }); };\n const handleLogin = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (!validateAccount())\n return Promise.resolve(null);\n // 特殊账号处理:admin/admin 直接跳转\n if (account.value === 'admin' && password.value === 'admin') {\n setIsLoggedIn(true);\n const adminProfile = new UserProfile({\n id: 'admin',\n username: 'Admin',\n email: 'admin@mall.com',\n gender: 'unknown',\n birthday: '',\n height_cm: 0,\n weight_kg: 0,\n bio: 'Administrator',\n avatar_url: '/static/logo.png',\n preferred_language: 'zh-CN',\n role: 'admin',\n school_id: '',\n grade_id: '',\n class_id: ''\n });\n setUserProfile(adminProfile);\n uni.showToast({ title: '管理员登录成功', icon: 'success' });\n setTimeout(() => {\n uni.reLaunch({ url: '/pages/main/index' });\n }, 500);\n return Promise.resolve(null);\n }\n if (loginType.value === 0) {\n if (!validatePassword())\n return Promise.resolve(null);\n }\n else {\n if (!validateCaptcha())\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n logout();\n if (loginType.value === 0) {\n const isEmail = account.value.includes('@');\n if (isEmail) {\n // 邮箱 + 密码登录(Supabase Auth)\n const result = yield supa.signIn(account.value.trim(), password.value);\n uni.__f__('log', 'at pages/user/login.uvue:314', 'signIn result:', result);\n // 检查登录是否失败\n if (result.user == null) {\n // 检查是否是邮箱未确认的错误\n const rawData = result.raw;\n const errorMsg = (_a = rawData === null || rawData === void 0 ? null : rawData.getString('msg')) !== null && _a !== void 0 ? _a : '';\n const errorCode = (_b = rawData === null || rawData === void 0 ? null : rawData.getString('error_code')) !== null && _b !== void 0 ? _b : '';\n if (errorMsg.includes('email') && errorMsg.includes('confirm') ||\n errorCode === 'email_not_confirmed' ||\n errorMsg.includes('邮箱') && errorMsg.includes('确认')) {\n throw new Error('邮箱未确认,请先检查邮箱并点击确认链接');\n }\n else if (errorMsg.includes('Invalid login credentials') ||\n errorCode === 'invalid_credentials' ||\n errorMsg.includes('credentials') ||\n errorMsg.includes('invalid')) {\n throw new Error('用户名或密码错误');\n }\n else {\n throw new Error(errorMsg != '' ? errorMsg : '登录失败,请重试');\n }\n }\n }\n else {\n uni.showToast({ title: '手机号密码登录功能开发中', icon: 'none' });\n return Promise.resolve(null);\n }\n }\n else {\n uni.showToast({ title: '手机验证码登录功能开发中', icon: 'none' });\n return Promise.resolve(null);\n }\n // 尝试获取/补全用户资料,但失败时不再阻塞登录\n try {\n const profile = yield getCurrentUser();\n uni.__f__('log', 'at pages/user/login.uvue:348', 'current user profile:', profile);\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/login.uvue:350', '获取用户信息失败(忽略,不阻塞登录):', e);\n }\n // 显式保存用户ID到本地存储,确保页面刷新或重启后 SupabaseService 能恢复身份\n const currentSession = supa.getSession();\n if (currentSession.user != null) {\n const uid = (_c = currentSession.user) === null || _c === void 0 ? null : _c.getString('id');\n if (uid != null) {\n uni.setStorageSync('user_id', uid);\n uni.__f__('log', 'at pages/user/login.uvue:359', '用户ID已保存到本地存储:', uid);\n }\n }\n uni.showToast({ title: '登录成功', icon: 'success' });\n setTimeout(() => {\n uni.reLaunch({ url: '/pages/main/index' });\n }, 500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/user/login.uvue:368', '登录错误:', err);\n let msg = '登录失败,请重试';\n // UTS 不支持 typeof 检查,直接尝试转换\n try {\n const e = err;\n if (e.message != null && e.message.trim() !== '')\n msg = e.message;\n }\n catch (e2) {\n // 忽略转换错误,使用默认消息\n }\n uni.showToast({ title: msg, icon: 'none' });\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const navigateToRegister = () => {\n uni.navigateTo({\n url: '/pages/user/register'\n });\n };\n const handleTutorial = () => { return uni.showToast({ title: '扫码教程开发中', icon: 'none' }); };\n const handleForgotPassword = () => { return uni.showToast({ title: '忘记密码开发中', icon: 'none' }); };\n const handleWechatLogin = () => { return uni.showToast({ title: '微信登录开发中', icon: 'none' }); };\n const handleQQLogin = () => { return uni.showToast({ title: 'QQ登录开发中', icon: 'none' }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: logoUrl.value,\n b: _o(handleTutorial),\n c: loginType.value === 0\n }, loginType.value === 0 ? {} : {}, {\n d: loginType.value === 0 ? 1 : '',\n e: _o($event => { return loginType.value = 0; }),\n f: loginType.value === 1\n }, loginType.value === 1 ? {} : {}, {\n g: loginType.value === 1 ? 1 : '',\n h: _o($event => { return loginType.value = 1; }),\n i: loginType.value === 0\n }, loginType.value === 0 ? {\n j: account.value,\n k: _o($event => { return account.value = $event.detail.value; }),\n l: password.value,\n m: _o($event => { return password.value = $event.detail.value; })\n } : {\n n: account.value,\n o: _o($event => { return account.value = $event.detail.value; }),\n p: captcha.value,\n q: _o($event => { return captcha.value = $event.detail.value; }),\n r: _t(codeText.value),\n s: _n(codeDisabled.value ? 'disabled' : ''),\n t: _o(getCode)\n }, {\n v: isLoading.value ? 1 : '',\n w: _o(handleLogin),\n x: _o(handleWechatLogin),\n y: _o(handleQQLogin),\n z: _o(handleForgotPassword),\n A: _o(navigateToRegister),\n B: _sei(_gei(_ctx, ''), 'view'),\n C: _s(cssVars)\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/login.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.reLaunch","uni.__f__","uni.showToast","uni.setStorageSync","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"login.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"login.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e1c128c2b712148957020b4c0d49fdad0c4e755 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e1c128c2b712148957020b4c0d49fdad0c4e755 deleted file mode 100644 index 3f36c467..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e1c128c2b712148957020b4c0d49fdad0c4e755 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ShareRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_price: { type: Number, optional: false },\n share_code: { type: String, optional: false },\n required_count: { type: Number, optional: false },\n current_count: { type: Number, optional: false },\n status: { type: Number, optional: false },\n reward_amount: { type: Number, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ShareRecord\"\n };\n }\n constructor(options, metadata = ShareRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_price = this.__props__.product_price;\n this.share_code = this.__props__.share_code;\n this.required_count = this.__props__.required_count;\n this.current_count = this.__props__.current_count;\n this.status = this.__props__.status;\n this.reward_amount = this.__props__.reward_amount;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const shares = ref([]);\n const loading = ref(true);\n const showRules = ref(false);\n const totalShares = computed(() => { return shares.value.length; });\n const completedShares = computed(() => {\n let count = 0;\n for (let i = 0; i < shares.value.length; i++) {\n if (shares.value[i].status === 1)\n count++;\n }\n return count;\n });\n const totalReward = computed(() => {\n let total = 0;\n for (let i = 0; i < shares.value.length; i++) {\n if (shares.value[i].reward_amount != null) {\n total += shares.value[i].reward_amount;\n }\n }\n return total;\n });\n const loadShares = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n loading.value = true;\n try {\n const result = yield supabaseService.getMyShareRecords();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n if (typeof itemAny._getValue === 'function') {\n parsed.push(new ShareRecord({\n id: (_a = itemAny._getValue('id')) !== null && _a !== void 0 ? _a : '',\n product_id: (_b = itemAny._getValue('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = itemAny._getValue('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: itemAny._getValue('product_image'),\n product_price: (_d = itemAny._getValue('product_price')) !== null && _d !== void 0 ? _d : 0,\n share_code: (_g = itemAny._getValue('share_code')) !== null && _g !== void 0 ? _g : '',\n required_count: (_h = itemAny._getValue('required_count')) !== null && _h !== void 0 ? _h : 4,\n current_count: (_j = itemAny._getValue('current_count')) !== null && _j !== void 0 ? _j : 0,\n status: (_k = itemAny._getValue('status')) !== null && _k !== void 0 ? _k : 0,\n reward_amount: itemAny._getValue('reward_amount'),\n created_at: (_l = itemAny._getValue('created_at')) !== null && _l !== void 0 ? _l : ''\n }));\n }\n }\n shares.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/share/index.uvue:142', '加载分享记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const toggleRules = () => {\n showRules.value = !showRules.value;\n };\n const getProgressPercent = (current, required) => {\n if (required <= 0)\n return 0;\n return Math.min(100, Math.round((current / required) * 100));\n };\n const getStatusText = (status) => {\n if (status === 0)\n return '进行中';\n if (status === 1)\n return '已免单';\n if (status === 2)\n return '已失效';\n if (status === 3)\n return '已过期';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-progress';\n if (status === 1)\n return 'status-completed';\n if (status === 2)\n return 'status-invalid';\n if (status === 3)\n return 'status-expired';\n return '';\n };\n const goToShareDetail = (shareId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/share/detail?id=${shareId}`\n });\n };\n onMounted(() => {\n loadShares();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(totalShares.value),\n b: _t(completedShares.value),\n c: _t(totalReward.value),\n d: _t(showRules.value ? '▲' : '▼'),\n e: _o(toggleRules),\n f: showRules.value\n }, showRules.value ? {} : {}, {\n g: loading.value\n }, loading.value ? {} : shares.value.length === 0 ? {} : {\n i: _f(shares.value, (share, k0, i0) => {\n return {\n a: share.product_image || defaultImage,\n b: _t(share.product_name),\n c: getProgressPercent(share.current_count, share.required_count) + '%',\n d: _t(share.current_count),\n e: _t(share.required_count),\n f: _t(share.share_code),\n g: _t(getStatusText(share.status)),\n h: _n(getStatusClass(share.status)),\n i: share.id,\n j: _o($event => { return goToShareDetail(share.id); }, share.id)\n };\n })\n }, {\n h: shares.value.length === 0,\n j: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/share/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/210a755d1b31e37276bbb1c2771150f2489d7469 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/210a755d1b31e37276bbb1c2771150f2489d7469 new file mode 100644 index 00000000..a4685f55 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/210a755d1b31e37276bbb1c2771150f2489d7469 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { UserType } from \"@/types/mall-types\";\nimport supabaseService from \"@/utils/supabaseService\";\nclass UserStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n points: { type: Number, optional: false },\n balance: { type: Number, optional: false },\n level: { type: Number, optional: false }\n };\n },\n name: \"UserStatsType\"\n };\n }\n constructor(options, metadata = UserStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.points = this.__props__.points;\n this.balance = this.__props__.balance;\n this.level = this.__props__.level;\n delete this.__props__;\n }\n}\nclass OrderCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total: { type: Number, optional: false },\n pending: { type: Number, optional: false },\n toship: { type: Number, optional: false },\n shipped: { type: Number, optional: false },\n review: { type: Number, optional: false }\n };\n },\n name: \"OrderCountsType\"\n };\n }\n constructor(options, metadata = OrderCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total = this.__props__.total;\n this.pending = this.__props__.pending;\n this.toship = this.__props__.toship;\n this.shipped = this.__props__.shipped;\n this.review = this.__props__.review;\n delete this.__props__;\n }\n}\nclass ServiceCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n coupons: { type: Number, optional: false },\n favorites: { type: Number, optional: false }\n };\n },\n name: \"ServiceCountsType\"\n };\n }\n constructor(options, metadata = ServiceCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.coupons = this.__props__.coupons;\n this.favorites = this.__props__.favorites;\n delete this.__props__;\n }\n}\nclass ConsumptionStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total_amount: { type: Number, optional: false },\n order_count: { type: Number, optional: false },\n avg_amount: { type: Number, optional: false },\n save_amount: { type: Number, optional: false }\n };\n },\n name: \"ConsumptionStatsType\"\n };\n }\n constructor(options, metadata = ConsumptionStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total_amount = this.__props__.total_amount;\n this.order_count = this.__props__.order_count;\n this.avg_amount = this.__props__.avg_amount;\n this.save_amount = this.__props__.save_amount;\n delete this.__props__;\n }\n}\nclass StatsPeriodType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n key: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"StatsPeriodType\"\n };\n }\n constructor(options, metadata = StatsPeriodType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.key = this.__props__.key;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n actual_amount: { type: Number, optional: false },\n created_at: { type: String, optional: false },\n ml_order_items: { type: \"Any\", optional: true },\n ml_shops: { type: \"Any\", optional: true },\n items_count: { type: Number, optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.actual_amount = this.__props__.actual_amount;\n this.created_at = this.__props__.created_at;\n this.ml_order_items = this.__props__.ml_order_items;\n this.ml_shops = this.__props__.ml_shops;\n this.items_count = this.__props__.items_count;\n delete this.__props__;\n }\n}\nexport default defineComponent({\n data() {\n return {\n userInfo: new UserType({\n id: '',\n phone: '',\n email: '',\n nickname: '',\n avatar_url: '',\n gender: 0,\n user_type: 0,\n status: 0,\n created_at: ''\n }),\n userStats: new UserStatsType({\n points: 0,\n balance: 0,\n level: 1\n }),\n orderCounts: new OrderCountsType({\n total: 0,\n pending: 0,\n toship: 0,\n shipped: 0,\n review: 0\n }),\n serviceCounts: new ServiceCountsType({\n coupons: 0,\n favorites: 0\n }),\n recentOrders: [],\n statsPeriods: [\n new StatsPeriodType({ key: 'month', label: '本月' }),\n new StatsPeriodType({ key: 'quarter', label: '本季度' }),\n new StatsPeriodType({ key: 'year', label: '本年' }),\n new StatsPeriodType({ key: 'all', label: '全部' })\n ],\n activeStatsPeriod: 'month',\n currentStats: new ConsumptionStatsType({\n total_amount: 0,\n order_count: 0,\n avg_amount: 0,\n save_amount: 0\n }),\n statusBarHeight: 0,\n currentOrderTab: 'all',\n allOrders: []\n };\n },\n onLoad() {\n this.initPage();\n this.loadUserProfile();\n this.loadOrders();\n // 监听订单更新事件\n uni.$on('orderUpdated', this.handleOrderUpdated);\n },\n onShow() {\n this.refreshData();\n },\n onUnload() {\n // 移除事件监听\n uni.$off('orderUpdated', this.handleOrderUpdated);\n },\n computed: {\n filteredOrders() {\n const result = [];\n if (this.currentOrderTab === 'all') {\n for (let i = 0; i < this.allOrders.length; i++) {\n result.push(this.allOrders[i]);\n }\n return result;\n }\n let targetStatus = 0;\n if (this.currentOrderTab === 'pending') {\n targetStatus = 1;\n }\n else if (this.currentOrderTab === 'toship') {\n targetStatus = 2;\n }\n else if (this.currentOrderTab === 'shipped') {\n targetStatus = 3;\n }\n else if (this.currentOrderTab === 'review') {\n targetStatus = 4;\n }\n else {\n return result;\n }\n for (let i = 0; i < this.allOrders.length; i++) {\n if (this.allOrders[i].status === targetStatus) {\n result.push(this.allOrders[i]);\n }\n }\n return result;\n }\n },\n methods: {\n loadOrders() {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const orders = yield supabaseService.getOrders();\n const mappedOrders = [];\n for (let i = 0; i < orders.length; i++) {\n const rawItem = orders[i];\n const o = UTS.JSON.parse(UTS.JSON.stringify(rawItem));\n let status = o.getNumber('status');\n if (status == null) {\n const orderStatus = o.getNumber('order_status');\n status = orderStatus != null ? orderStatus : 0;\n }\n let actualAmount = o.getNumber('actual_amount');\n if (actualAmount == null) {\n const totalAmount = o.getNumber('total_amount');\n actualAmount = totalAmount != null ? totalAmount : 0;\n }\n const mlOrderItems = o.get('ml_order_items');\n let itemsCount = 0;\n if (mlOrderItems != null && Array.isArray(mlOrderItems)) {\n itemsCount = mlOrderItems.length;\n }\n const orderItem = new OrderItemType({\n id: (_a = o.getString('id')) !== null && _a !== void 0 ? _a : '',\n order_no: (_b = o.getString('order_no')) !== null && _b !== void 0 ? _b : '',\n status: status,\n actual_amount: actualAmount,\n created_at: (_c = o.getString('created_at')) !== null && _c !== void 0 ? _c : '',\n ml_order_items: mlOrderItems,\n ml_shops: o.get('ml_shops'),\n items_count: itemsCount\n });\n mappedOrders.push(orderItem);\n }\n for (let i = 0; i < mappedOrders.length; i++) {\n for (let j = i + 1; j < mappedOrders.length; j++) {\n const dateA = mappedOrders[i]['created_at'];\n const dateB = mappedOrders[j]['created_at'];\n const timeA = new Date(dateA != null ? dateA : '1970-01-01').getTime();\n const timeB = new Date(dateB != null ? dateB : '1970-01-01').getTime();\n if (timeA < timeB) {\n const temp = mappedOrders[i];\n mappedOrders[i] = mappedOrders[j];\n mappedOrders[j] = temp;\n }\n }\n }\n this.allOrders = mappedOrders;\n const recentList = [];\n const limit = mappedOrders.length < 5 ? mappedOrders.length : 5;\n for (let i = 0; i < limit; i++) {\n recentList.push(mappedOrders[i]);\n }\n this.recentOrders = recentList;\n let total = 0;\n let pending = 0;\n let toship = 0;\n let shipped = 0;\n let review = 0;\n for (let i = 0; i < mappedOrders.length; i++) {\n total++;\n const status = mappedOrders[i].status;\n if (status === 1)\n pending++;\n else if (status === 2)\n toship++;\n else if (status === 3)\n shipped++;\n else if (status === 4)\n review++;\n }\n this.orderCounts = {\n total: total,\n pending: pending,\n toship: toship,\n shipped: shipped,\n review: review\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:511', '加载订单异常', e);\n }\n });\n },\n // 切换订单Tab\n switchOrderTab(tab) {\n this.currentOrderTab = tab;\n },\n // 获取当前订单部分标题\n getOrderSectionTitle() {\n if (this.currentOrderTab === 'all')\n return '全部订单';\n if (this.currentOrderTab === 'pending')\n return '待支付订单';\n if (this.currentOrderTab === 'shipped')\n return '待收货订单';\n if (this.currentOrderTab === 'review')\n return '待评价订单';\n return '我的订单';\n },\n initPage() {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n this.statusBarHeight = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n },\n loadUserProfile() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // 获取用户资料\n const profile = yield supabaseService.getUserProfile();\n if (profile != null) {\n // 映射字段\n let uId = '';\n let uPhone = '';\n let uEmail = '';\n let uNickname = '';\n let uAvatar = '';\n let uGender = 0;\n if (UTS.isInstanceOf(profile, UTSJSONObject)) {\n uId = (_a = profile.getString('user_id')) !== null && _a !== void 0 ? _a : '';\n uPhone = (_b = profile.getString('phone')) !== null && _b !== void 0 ? _b : '';\n uEmail = (_c = profile.getString('email')) !== null && _c !== void 0 ? _c : '';\n uNickname = (_d = profile.getString('nickname')) !== null && _d !== void 0 ? _d : '';\n uAvatar = (_e = profile.getString('avatar_url')) !== null && _e !== void 0 ? _e : '';\n uGender = (_f = profile.getNumber('gender')) !== null && _f !== void 0 ? _f : 0;\n }\n else {\n // 必须使用 JSON.parse(JSON.stringify()) 转换为 UTSJSONObject\n const profileObj = UTS.JSON.parse(UTS.JSON.stringify(profile));\n uId = (_g = profileObj.getString('user_id')) !== null && _g !== void 0 ? _g : '';\n uPhone = (_h = profileObj.getString('phone')) !== null && _h !== void 0 ? _h : '';\n uEmail = (_j = profileObj.getString('email')) !== null && _j !== void 0 ? _j : '';\n uNickname = (_k = profileObj.getString('nickname')) !== null && _k !== void 0 ? _k : '';\n uAvatar = (_l = profileObj.getString('avatar_url')) !== null && _l !== void 0 ? _l : '';\n uGender = (_m = profileObj.getNumber('gender')) !== null && _m !== void 0 ? _m : 0;\n }\n if (uNickname === '' && uPhone !== '') {\n uNickname = uPhone.substring(0, 3) + '****' + uPhone.substring(7);\n }\n this.userInfo = new UserType({\n id: uId,\n phone: uPhone,\n email: uEmail,\n nickname: uNickname != '' ? uNickname : '微信用户',\n avatar_url: uAvatar != '' ? uAvatar : '/static/default-avatar.png',\n gender: uGender,\n user_type: 1,\n status: 1,\n created_at: new Date().toISOString()\n });\n }\n else {\n // 如果获取失败(未登录或无档案),尝试获取当前登录ID\n const userId = supabaseService.getCurrentUserId();\n if (userId != null) {\n this.userInfo.id = userId;\n this.userInfo.nickname = '用户' + userId.substring(0, 4);\n }\n else {\n this.userInfo.nickname = '未登录';\n }\n }\n // 获取积分和余额(顺序获取,UTS不支持Promise.all数组解构)\n const balanceResult = yield supabaseService.getUserBalance();\n const points = yield supabaseService.getUserPoints();\n const balanceValue = (_o = balanceResult.getNumber('balance')) !== null && _o !== void 0 ? _o : 0;\n this.userStats = new UserStatsType({\n points: points,\n balance: balanceValue,\n level: this.calculateLevel(points) // 根据积分计算等级\n });\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:603', '加载用户信息失败', e);\n // 保持默认或显示错误\n }\n });\n },\n calculateLevel(points) {\n if (points < 1000)\n return 0;\n if (points < 5000)\n return 1;\n if (points < 20000)\n return 2;\n if (points < 50000)\n return 3;\n return 4;\n },\n loadConsumptionStats() {\n if (this.activeStatsPeriod === 'month') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 1280.50,\n order_count: 8,\n avg_amount: 160.06,\n save_amount: 85.20\n });\n }\n else if (this.activeStatsPeriod === 'quarter') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 3680.80,\n order_count: 18,\n avg_amount: 204.49,\n save_amount: 256.30\n });\n }\n else if (this.activeStatsPeriod === 'year') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 15680.90,\n order_count: 56,\n avg_amount: 280.02,\n save_amount: 986.50\n });\n }\n else {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 25680.50,\n order_count: 89,\n avg_amount: 288.55,\n save_amount: 1580.20\n });\n }\n },\n refreshData() {\n // 刷新页面数据\n this.loadUserProfile();\n this.loadOrders();\n this.updateCouponCount(); // 更新优惠券数量\n },\n updateCouponCount() {\n return __awaiter(this, void 0, void 0, function* () {\n // 从 Supabase 获取真实的优惠券数量\n try {\n const count = yield supabaseService.getUserCouponCount();\n this.serviceCounts.coupons = count;\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:661', '获取优惠券数量失败', e);\n this.serviceCounts.coupons = 0;\n }\n });\n },\n getUserLevel() {\n const levels = ['新手', '铜牌会员', '银牌会员', '金牌会员', '钻石会员'];\n if (this.userStats.level >= 0 && this.userStats.level < levels.length) {\n return levels[this.userStats.level];\n }\n return '新手';\n },\n getOrderStatusText(status) {\n if (status === 6)\n return '退款中';\n if (status === 7)\n return '已退款';\n const statusTexts = ['异常', '待支付', '待发货', '待收货', '已完成', '已取消'];\n if (status >= 0 && status < statusTexts.length) {\n return statusTexts[status];\n }\n return '未知';\n },\n getOrderStatusClass(status) {\n if (status === 6)\n return 'refunding';\n if (status === 7)\n return 'refunded';\n const statusClasses = ['error', 'pending', 'processing', 'shipping', 'completed', 'cancelled'];\n if (status >= 0 && status < statusClasses.length) {\n return statusClasses[status];\n }\n return 'error';\n },\n showOrderMenu(order) {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n this.handleOrderAction(order, action);\n }\n });\n },\n handleOrderAction(order, action) {\n if (action === '取消订单') {\n this.cancelOrderAction(order);\n }\n else if (action === '联系卖家') {\n this.contactSeller(order);\n }\n else if (action === '提醒发货') {\n this.remindShipping(order);\n }\n else if (action === '申请退款' || action === '申请售后') {\n this.applyRefund(order);\n }\n else if (action === '查看物流') {\n this.viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n this.confirmReceive(order);\n }\n else if (action === '再次购买') {\n this.repurchase(order);\n }\n else if (action === '删除订单') {\n this.deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n this.viewRefundProgress(order.id);\n }\n },\n cancelOrderAction(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已取消', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '取消失败', icon: 'none' });\n });\n }\n }\n }));\n },\n contactSeller(order) {\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '暂无卖家联系方式', icon: 'none' });\n }\n },\n getMerchantIdFromOrder(order) {\n var _a;\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n return (_a = shopObj.getString('merchant_id')) !== null && _a !== void 0 ? _a : '';\n }\n }\n return '';\n },\n remindShipping(order) {\n uni.showLoading({ title: '提醒中...' });\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n const message = `你好,我的订单[${order.order_no}]还没有发货,请尽快安排,谢谢。`;\n supabaseService.sendChatMessage(message, merchantId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '已提醒卖家发货', icon: 'success' });\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '提醒失败', icon: 'none' });\n });\n }\n else {\n uni.hideLoading();\n uni.showToast({ title: '无法联系卖家', icon: 'none' });\n }\n },\n applyRefund(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${order.id}`\n });\n },\n viewLogistics(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n },\n repurchase(order) {\n var _a;\n uni.showLoading({ title: '处理中...' });\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null || itemsRaw.length === 0) {\n uni.hideLoading();\n uni.showToast({ title: '订单无商品', icon: 'none' });\n return null;\n }\n const items = itemsRaw;\n let completed = 0;\n const total = items.length;\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const itemStr = UTS.JSON.stringify(items[i]);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null) {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n continue;\n }\n const itemObj = itemParsed;\n const productId = (_a = itemObj.getString('product_id')) !== null && _a !== void 0 ? _a : '';\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId).then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }\n }\n },\n deleteOrder(orderId) {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已删除', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '删除失败', icon: 'none' });\n });\n }\n }\n }));\n },\n viewRefundProgress(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n getOrderMainImage(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '/static/product1.jpg';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '/static/product1.jpg';\n const itemObj = itemParsed;\n const imgUrl = itemObj.getString('image_url');\n const prodImg = itemObj.getString('product_image');\n const img = (imgUrl != null && imgUrl !== '') ? imgUrl : prodImg;\n if (img != null && img !== '')\n return img;\n }\n return '/static/product1.jpg';\n },\n getOrderTitle(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '精选商品';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '精选商品';\n const itemObj = itemParsed;\n const pName = itemObj.getString('product_name');\n const name = (pName != null && pName !== '') ? pName : '商品';\n return name;\n }\n return '精选商品';\n },\n getOrderSpec(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '';\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n if (specRaw == null)\n return '';\n if (typeof specRaw === 'string') {\n const specStr = specRaw;\n if (specStr.startsWith('{')) {\n try {\n const specObj = UTS.JSON.parse(specStr);\n const parts = [];\n const color = specObj.get('Color');\n if (color != null)\n parts.push('颜色: ' + color);\n const size = specObj.get('Size');\n if (size != null)\n parts.push('尺码: ' + size);\n if (parts.length > 0)\n return parts.join(' ');\n return specStr.replace(/[{}\"]/g, '');\n }\n catch (e) {\n return specStr;\n }\n }\n return specStr;\n }\n return UTS.JSON.stringify(specRaw).replace(/[{}\"]/g, '');\n }\n return '';\n },\n getOrderItemCount(order) {\n if (order.items_count != null && order.items_count > 0) {\n return order.items_count;\n }\n return 1;\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n formatDateTime(timeStr) {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const h = date.getHours().toString().padStart(2, '0');\n const i = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${h}:${i}`;\n },\n formatTime(timeStr) {\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n if (days === 0) {\n return '今天';\n }\n else if (days === 1) {\n return '昨天';\n }\n else {\n return `${days}天前`;\n }\n },\n switchStatsPeriod(period) {\n this.activeStatsPeriod = period;\n this.loadConsumptionStats();\n },\n editProfile() {\n uni.navigateTo({\n url: '/pages/mall/consumer/edit-profile'\n });\n },\n // 跳转设置\n goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/consumer/settings'\n });\n },\n // 跳转钱包\n goToWallet() {\n uni.navigateTo({\n url: '/pages/mall/consumer/wallet'\n });\n },\n goToOrders(type) {\n uni.navigateTo({\n url: `/pages/mall/consumer/orders?type=${type}`\n });\n },\n goShopping() {\n uni.switchTab({\n url: '/pages/main/index'\n });\n },\n viewOrderDetail(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?orderId=${order.id}`\n });\n },\n goToProductFromOrder(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return null;\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return null;\n const itemObj = itemParsed;\n const productId = itemObj.getString('product_id');\n if (productId != null && productId !== '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${productId}`\n });\n }\n }\n },\n payOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${order.id}`\n });\n },\n confirmReceive(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确认已收到商品吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '处理中...' });\n supabaseService.confirmOrderReceived(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '确认收货成功',\n icon: 'success'\n });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n },\n reviewOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${order.id}`\n });\n },\n goToCoupons() {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToAddress() {\n // 暂时跳转到设置页的地址管理\n uni.navigateTo({\n url: '/pages/mall/consumer/address-list'\n });\n },\n goToFavorites() {\n uni.navigateTo({\n url: '/pages/mall/consumer/favorites'\n });\n },\n goToFootprint() {\n uni.navigateTo({\n url: '/pages/mall/consumer/footprint'\n });\n },\n goToRefund() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=refund'\n });\n },\n contactService() {\n uni.navigateTo({\n url: '/pages/mall/service/chat'\n });\n },\n goToOrderReviews() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=review'\n });\n },\n goToMySubscriptions() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/my-subscriptions'\n });\n },\n goToFollowedShops() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/followed-shops'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToBalance() {\n uni.navigateTo({\n url: '/pages/mall/consumer/balance/index'\n });\n },\n goToShare() {\n uni.navigateTo({\n url: '/pages/mall/consumer/share/index'\n });\n },\n goToMember() {\n uni.navigateTo({\n url: '/pages/mall/consumer/member/index'\n });\n },\n changePassword() {\n uni.navigateTo({\n url: '/pages/mall/consumer/change-password'\n });\n },\n bindPhone() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-phone'\n });\n },\n bindEmail() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-email'\n });\n },\n handleOrderUpdated(data = null) {\n uni.__f__('log', 'at pages/main/profile.uvue:1250', '收到订单更新事件:', data);\n this.refreshData();\n const dataObj = data;\n const status = dataObj.getNumber('status');\n if (status === 1) {\n uni.showToast({\n title: '订单已保存到待支付',\n icon: 'success'\n });\n }\n else if (status === 2) {\n uni.showToast({\n title: '支付成功,订单待发货',\n icon: 'success'\n });\n }\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/profile.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.$on","uni.$off","uni.__f__","uni.getSystemInfoSync","uni.showActionSheet","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";;OACO,EAAE,QAAQ,EAAE;OACZ,eAAe;MAEjB,aAAa;;;;;;;;;;;;;;;;;;;;;;;MAMb,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQf,iBAAiB;;;;;;;;;;;;;;;;;;;;;MAKjB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;MAOpB,eAAe;;;;;;;;;;;;;;;;;;;;;MAKf,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWlB,+BAAe;IACb,IAAI;QACF,OAAO;YACL,QAAQ,eAAE;gBACR,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,EAAE;aACH,CAAA;YACb,SAAS,oBAAE;gBACT,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;aACQ,CAAA;YAClB,WAAW,sBAAE;gBACX,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;aACS,CAAA;YACpB,aAAa,wBAAE;gBACb,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,CAAC;aACQ,CAAA;YACtB,YAAY,EAAE,EAA0B;YACxC,YAAY,EAAE;oCACZ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;oCAC7B,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;oCAChC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;oCAC5B,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;aACF;YAC3B,iBAAiB,EAAE,OAAO;YAC1B,YAAY,2BAAE;gBACZ,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,CAAC;aACS,CAAA;YACzB,eAAe,EAAE,CAAC;YAClB,eAAe,EAAE,KAAe;YAChC,SAAS,EAAE,EAA0B;SACtC,CAAA;IACH,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjB,WAAW;QACX,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAClD,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IACD,QAAQ;QACN,SAAS;QACT,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACnD,CAAC;IACD,QAAQ,EAAE;QACR,cAAc;YACZ,MAAM,MAAM,GAAyB,EAAE,CAAA;YACvC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAClC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC/B;gBACD,OAAO,MAAM,CAAA;aACd;YACD,IAAI,YAAY,GAAW,CAAC,CAAA;YAC5B,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBACtC,YAAY,GAAG,CAAC,CAAA;aACjB;iBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAC5C,YAAY,GAAG,CAAC,CAAA;aACjB;iBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC7C,YAAY,GAAG,CAAC,CAAA;aACjB;iBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAC5C,YAAY,GAAG,CAAC,CAAA;aACjB;iBAAM;gBACL,OAAO,MAAM,CAAA;aACd;YACD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE;oBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC/B;aACF;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF;IACD,OAAO,EAAE;QACD,UAAU;;;gBACd,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,CAAA;oBAEhD,MAAM,YAAY,GAAyB,EAAE,CAAA;oBAC7C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;wBACzB,MAAM,CAAC,GAAG,SAAK,KAAK,CAAC,SAAK,SAAS,CAAC,OAAO,CAAC,CAAkB,CAAA;wBAE9D,IAAI,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;wBAClC,IAAI,MAAM,IAAI,IAAI,EAAE;4BAClB,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;4BAC/C,MAAM,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;yBAC/C;wBAED,IAAI,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;wBAC/C,IAAI,YAAY,IAAI,IAAI,EAAE;4BACxB,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;4BAC/C,YAAY,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;yBACrD;wBAED,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;wBAE5C,IAAI,UAAU,GAAG,CAAC,CAAA;wBAClB,IAAI,YAAY,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;4BACvD,UAAU,GAAI,YAAsB,CAAC,MAAM,CAAA;yBAC5C;wBAED,MAAM,SAAS,qBAAkB;4BAC/B,EAAE,EAAE,MAAA,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAI,EAAE;4BAC3B,QAAQ,EAAE,MAAA,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,mCAAI,EAAE;4BACvC,MAAM,EAAE,MAAM;4BACd,aAAa,EAAE,YAAY;4BAC3B,UAAU,EAAE,MAAA,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE;4BAC3C,cAAc,EAAE,YAAY;4BAC5B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;4BAC3B,WAAW,EAAE,UAAU;yBACxB,CAAA,CAAA;wBAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;qBAC7B;oBAED,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,KAAK,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAW,CAAA;4BACrD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAW,CAAA;4BACrD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;4BACtE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;4BACtE,IAAI,KAAK,GAAG,KAAK,EAAE;gCACjB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;gCAC5B,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;gCACjC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;6BACvB;yBACF;qBACF;oBAED,IAAI,CAAC,SAAS,GAAG,YAAY,CAAA;oBAE7B,MAAM,UAAU,GAAyB,EAAE,CAAA;oBAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;wBACtC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;qBACjC;oBACD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAA;oBAE9B,IAAI,KAAK,GAAG,CAAC,CAAA;oBACb,IAAI,OAAO,GAAG,CAAC,CAAA;oBACf,IAAI,MAAM,GAAG,CAAC,CAAA;oBACd,IAAI,OAAO,GAAG,CAAC,CAAA;oBACf,IAAI,MAAM,GAAG,CAAC,CAAA;oBAEd,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,KAAK,EAAE,CAAA;wBACP,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;wBACrC,IAAI,MAAM,KAAK,CAAC;4BAAE,OAAO,EAAE,CAAA;6BACtB,IAAI,MAAM,KAAK,CAAC;4BAAE,MAAM,EAAE,CAAA;6BAC1B,IAAI,MAAM,KAAK,CAAC;4BAAE,OAAO,EAAE,CAAA;6BAC3B,IAAI,MAAM,KAAK,CAAC;4BAAE,MAAM,EAAE,CAAA;qBAChC;oBAED,IAAI,CAAC,WAAW,GAAG;wBACjB,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,MAAM;qBACf,CAAA;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,gCAAgC,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;iBAClE;;SACF;QAED,UAAU;QACV,cAAc,CAAC,GAAW;YACxB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA;QAC5B,CAAC;QAED,aAAa;QACb,oBAAoB;YAClB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK;gBAAE,OAAO,MAAM,CAAA;YACjD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAA;YACtD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAA;YACtD,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAA;YACrD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,QAAQ;;YACN,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAA;YAC1C,IAAI,CAAC,eAAe,GAAG,MAAA,UAAU,CAAC,eAAe,mCAAI,CAAC,CAAA;QACxD,CAAC;QACK,eAAe;;;gBACnB,IAAI;oBACF,SAAS;oBACT,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;oBACtD,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,OAAO;wBACP,IAAI,GAAG,GAAG,EAAE,CAAA;wBACZ,IAAI,MAAM,GAAG,EAAE,CAAA;wBACf,IAAI,MAAM,GAAG,EAAE,CAAA;wBACf,IAAI,SAAS,GAAG,EAAE,CAAA;wBAClB,IAAI,OAAO,GAAG,EAAE,CAAA;wBAChB,IAAI,OAAO,GAAG,CAAC,CAAA;wBAEf,qBAAI,OAAO,EAAY,aAAa,GAAE;4BAClC,GAAG,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAA;4BACxC,MAAM,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;4BACzC,MAAM,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;4BACzC,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;4BAC/C,OAAO,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAA;4BAC/C,OAAO,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,mCAAI,CAAC,CAAA;yBAC7C;6BAAM;4BACH,sDAAsD;4BACtD,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,SAAK,SAAS,CAAC,OAAO,CAAC,CAAkB,CAAA;4BACvE,GAAG,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAA;4BAC3C,MAAM,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;4BAC5C,MAAM,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;4BAC5C,SAAS,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAA;4BAClD,OAAO,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAA;4BAClD,OAAO,GAAG,MAAA,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,mCAAI,CAAC,CAAA;yBAChD;wBAED,IAAI,SAAS,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE;4BACpC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;yBACnE;wBAED,IAAI,CAAC,QAAQ,gBAAG;4BACb,EAAE,EAAE,GAAG;4BACP,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,MAAM;4BACb,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;4BAC9C,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;4BAClE,MAAM,EAAE,OAAO;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBAC1B,CAAA,CAAA;qBACd;yBAAM;wBACH,6BAA6B;wBAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAA;wBACjD,IAAI,MAAM,IAAI,IAAI,EAAE;4BAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAA;4BACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;yBACzD;6BAAM;4BACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAA;yBACjC;qBACJ;oBAED,sCAAsC;oBACtC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;oBAC5D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,CAAA;oBAEpD,MAAM,YAAY,GAAG,MAAA,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,mCAAI,CAAC,CAAA;oBAE5D,IAAI,CAAC,SAAS,qBAAG;wBACf,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW;qBAC9B,CAAA,CAAA;iBAEnB;gBAAC,OAAO,CAAC,EAAE;oBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,gCAAgC,EAAC,UAAU,EAAE,CAAC,CAAC,CAAA;oBACjE,YAAY;iBACb;;SACF;QAED,cAAc,CAAC,MAAc;YACzB,IAAI,MAAM,GAAG,IAAI;gBAAE,OAAO,CAAC,CAAA;YAC3B,IAAI,MAAM,GAAG,IAAI;gBAAE,OAAO,CAAC,CAAA;YAC3B,IAAI,MAAM,GAAG,KAAK;gBAAE,OAAO,CAAC,CAAA;YAC5B,IAAI,MAAM,GAAG,KAAK;gBAAE,OAAO,CAAC,CAAA;YAC5B,OAAO,CAAC,CAAA;QACZ,CAAC;QAED,oBAAoB;YAClB,IAAI,IAAI,CAAC,iBAAiB,KAAK,OAAO,EAAE;gBACtC,IAAI,CAAC,YAAY,4BAAG;oBAClB,YAAY,EAAE,OAAO;oBACrB,WAAW,EAAE,CAAC;oBACd,UAAU,EAAE,MAAM;oBAClB,WAAW,EAAE,KAAK;iBACK,CAAA,CAAA;aAC1B;iBAAM,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;gBAC/C,IAAI,CAAC,YAAY,4BAAG;oBAClB,YAAY,EAAE,OAAO;oBACrB,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,MAAM;oBAClB,WAAW,EAAE,MAAM;iBACI,CAAA,CAAA;aAC1B;iBAAM,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE;gBAC5C,IAAI,CAAC,YAAY,4BAAG;oBAClB,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,MAAM;oBAClB,WAAW,EAAE,MAAM;iBACI,CAAA,CAAA;aAC1B;iBAAM;gBACL,IAAI,CAAC,YAAY,4BAAG;oBAClB,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,MAAM;oBAClB,WAAW,EAAE,OAAO;iBACG,CAAA,CAAA;aAC1B;QACH,CAAC;QAED,WAAW;YACT,SAAS;YACT,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,IAAI,CAAC,iBAAiB,EAAE,CAAA,CAAC,UAAU;QACrC,CAAC;QAEK,iBAAiB;;gBACrB,wBAAwB;gBACxB,IAAI;oBACF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,kBAAkB,EAAE,CAAA;oBACxD,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAA;iBACnC;gBAAC,OAAO,CAAC,EAAE;oBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,gCAAgC,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;oBAClE,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAA;iBAC/B;YACH,CAAC;SAAA;QAED,YAAY;YACV,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YACrD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;gBACnE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;aACtC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,kBAAkB,CAAC,MAAc;YAC/B,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC9B,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC9B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7D,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE;gBAC5C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;aAC7B;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,mBAAmB,CAAC,MAAc;YAChC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAA;YACpC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAA;YACnC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;YAC9F,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE;gBAC9C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;aAC/B;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,aAAa,CAAC,KAAoB;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC3B,IAAI,OAAO,GAAa,EAAE,CAAA;YAE1B,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAC3B;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;aACnC;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;aAC3C;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;aACnC;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;aACnC;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAC3B;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAC3B;YAED,GAAG,CAAC,eAAe,CAAC;gBAClB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,CAAC,GAAG;oBACX,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACpC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBACvC,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,iBAAiB,CAAC,KAAoB,EAAE,MAAc;YACpD,IAAI,MAAM,KAAK,MAAM,EAAE;gBACrB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;aAC9B;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;aAC1B;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;aAC3B;iBAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBACjD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;aACxB;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aAC7B;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;aAC3B;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;aACvB;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aAC3B;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;aAClC;QACH,CAAC;QAED,iBAAiB,CAAC,KAAoB;YACpC,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;wBACpC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;4BACzC,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;4BAClD,IAAI,CAAC,UAAU,EAAE,CAAA;wBACnB,CAAC,CAAC,CAAC,KAAK,CAAC;4BACP,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAChD,CAAC,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,aAAa,CAAC,KAAoB;YAChC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACnF,IAAI,UAAU,KAAK,EAAE,EAAE;gBACrB,GAAG,CAAC,UAAU,CAAC;oBACb,GAAG,EAAE,wCAAwC,UAAU,EAAE;iBAC1D,CAAC,CAAA;aACH;iBAAM;gBACL,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;QAED,sBAAsB,CAAC,KAAoB;;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;gBACpB,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACxC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,MAAM,OAAO,GAAG,UAA2B,CAAA;oBAC3C,OAAO,MAAA,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,EAAE,CAAA;iBAC9C;aACF;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,cAAc,CAAC,KAAoB;YACjC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACnF,IAAI,UAAU,KAAK,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,QAAQ,kBAAkB,CAAA;gBAC3D,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC;oBACxD,GAAG,CAAC,WAAW,EAAE,CAAA;oBACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;gBACtD,CAAC,CAAC,CAAC,KAAK,CAAC;oBACP,GAAG,CAAC,WAAW,EAAE,CAAA;oBACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;gBAChD,CAAC,CAAC,CAAA;aACH;iBAAM;gBACL,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;aACjD;QACH,CAAC;QAED,WAAW,CAAC,KAAoB;YAC9B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,6CAA6C,KAAK,CAAC,EAAE,EAAE;aAC7D,CAAC,CAAA;QACJ,CAAC;QAED,aAAa,CAAC,OAAe;YAC3B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,0CAA0C,OAAO,EAAE;aACzD,CAAC,CAAA;QACJ,CAAC;QAED,UAAU,CAAC,KAAoB;;YAC7B,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAA;YACrC,IAAI,QAAQ,IAAI,IAAI,IAAK,QAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxD,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC/C,YAAM;aACP;YAED,MAAM,KAAK,GAAG,QAAiB,CAAA;YAC/B,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;YAC1B,IAAI,YAAY,GAAG,CAAC,CAAA;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,SAAS,EAAE,CAAA;oBACX,IAAI,SAAS,KAAK,KAAK,EAAE;wBACvB,GAAG,CAAC,WAAW,EAAE,CAAA;wBACjB,IAAI,YAAY,GAAG,CAAC,EAAE;4BACpB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;yBACnE;6BAAM;4BACL,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;yBAC/C;qBACF;oBACD,SAAQ;iBACT;gBAED,MAAM,OAAO,GAAG,UAA2B,CAAA;gBAC3C,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAA;gBACvD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBAEnF,IAAI,SAAS,KAAK,EAAE,EAAE;oBACpB,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO;wBACnE,SAAS,EAAE,CAAA;wBACX,IAAI,OAAO;4BAAE,YAAY,EAAE,CAAA;wBAC3B,IAAI,SAAS,KAAK,KAAK,EAAE;4BACvB,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,IAAI,YAAY,GAAG,CAAC,EAAE;gCACpB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;6BACnE;iCAAM;gCACL,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;6BAC/C;yBACF;oBACH,CAAC,CAAC,CAAC,KAAK,CAAC;wBACP,SAAS,EAAE,CAAA;wBACX,IAAI,SAAS,KAAK,KAAK,EAAE;4BACvB,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,IAAI,YAAY,GAAG,CAAC,EAAE;gCACpB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;6BACnE;iCAAM;gCACL,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;6BAC/C;yBACF;oBACH,CAAC,CAAC,CAAA;iBACH;qBAAM;oBACL,SAAS,EAAE,CAAA;oBACX,IAAI,SAAS,KAAK,KAAK,EAAE;wBACvB,GAAG,CAAC,WAAW,EAAE,CAAA;wBACjB,IAAI,YAAY,GAAG,CAAC,EAAE;4BACpB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;yBACnE;6BAAM;4BACL,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;yBAC/C;qBACF;iBACF;aACF;QACH,CAAC;QAED,WAAW,CAAC,OAAe;YACzB,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;wBACpC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;4BACxC,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;4BAClD,IAAI,CAAC,UAAU,EAAE,CAAA;wBACnB,CAAC,CAAC,CAAC,KAAK,CAAC;4BACP,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAChD,CAAC,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,kBAAkB,CAAC,OAAe;YAChC,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,uCAAuC,OAAO,EAAE;aACtD,CAAC,CAAA;QACJ,CAAC;QAED,gBAAgB,CAAC,KAAoB;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACxC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACpB,MAAM,OAAO,GAAG,UAA2B,CAAA;oBAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;oBAC3C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;wBAAE,OAAO,IAAI,CAAA;iBAC/C;aACJ;YACD,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,iBAAiB,CAAC,KAAoB;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAA;YACrC,IAAI,QAAQ,IAAI,IAAI;gBAAE,OAAO,sBAAsB,CAAA;YACnD,MAAM,KAAK,GAAG,QAAiB,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI;oBAAE,OAAO,sBAAsB,CAAA;gBACrD,MAAM,OAAO,GAAG,UAA2B,CAAA;gBAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;gBAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;gBAClD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;gBAChE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE;oBAAE,OAAO,GAAG,CAAA;aAC5C;YACD,OAAO,sBAAsB,CAAA;QAC/B,CAAC;QAED,aAAa,CAAC,KAAoB;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAA;YACrC,IAAI,QAAQ,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAA;YACnC,MAAM,KAAK,GAAG,QAAiB,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAA;gBACrC,MAAM,OAAO,GAAG,UAA2B,CAAA;gBAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;gBAC/C,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;gBAE3D,OAAO,IAAI,CAAA;aACd;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,YAAY,CAAC,KAAoB;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAA;YACrC,IAAI,QAAQ,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAA;YAC/B,MAAM,KAAK,GAAG,QAAiB,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI;oBAAE,OAAO,EAAE,CAAA;gBACjC,MAAM,OAAO,GAAG,UAA2B,CAAA;gBAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBAC7C,IAAI,OAAO,IAAI,IAAI;oBAAE,OAAO,EAAE,CAAA;gBAE9B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC7B,MAAM,OAAO,GAAG,OAAiB,CAAA;oBACjC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;wBACzB,IAAI;4BACA,MAAM,OAAO,GAAG,SAAK,KAAK,CAAC,OAAO,CAAkB,CAAA;4BACpD,MAAM,KAAK,GAAa,EAAE,CAAA;4BAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;4BAClC,IAAI,KAAK,IAAI,IAAI;gCAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA;4BAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;4BAChC,IAAI,IAAI,IAAI,IAAI;gCAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;4BAE3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gCAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;4BAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;yBACvC;wBAAC,OAAO,CAAC,EAAE;4BACR,OAAO,OAAO,CAAA;yBACjB;qBACJ;oBACD,OAAO,OAAO,CAAA;iBACjB;gBACD,OAAO,SAAK,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;aACvD;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,iBAAiB,CAAC,KAAoB;YAClC,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;gBACpD,OAAO,KAAK,CAAC,WAAW,CAAA;aAC3B;YACD,OAAO,CAAC,CAAA;QACZ,CAAC;QAED,gBAAgB,CAAC,KAAoB;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACxC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACpB,MAAM,OAAO,GAAG,UAA2B,CAAA;oBAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;oBAC3C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;wBAAE,OAAO,IAAI,CAAA;iBAC/C;aACJ;YACD,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,cAAc,CAAC,OAAe;YAC5B,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAA;YAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACvD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;QACnC,CAAC;QAED,UAAU,CAAC,OAAe;YACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAErD,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,IAAI,CAAA;aACZ;iBAAM,IAAI,IAAI,KAAK,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,OAAO,GAAG,IAAI,IAAI,CAAA;aACnB;QACH,CAAC;QAED,iBAAiB,CAAC,MAAc;YAC9B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAA;YAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC7B,CAAC;QAED,WAAW;YACT,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO;QACP,YAAY;YACV,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,+BAA+B;aACrC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO;QACP,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,6BAA6B;aACnC,CAAC,CAAA;QACJ,CAAC;QAED,UAAU,CAAC,IAAY;YACrB,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,oCAAoC,IAAI,EAAE;aAChD,CAAC,CAAA;QACJ,CAAC;QAED,UAAU;YACR,GAAG,CAAC,SAAS,CAAC;gBACZ,GAAG,EAAE,mBAAmB;aACzB,CAAC,CAAA;QACJ,CAAC;QAED,eAAe,CAAC,KAAoB;YAClC,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,6CAA6C,KAAK,CAAC,EAAE,EAAE;aAC7D,CAAC,CAAA;QACJ,CAAC;QAED,oBAAoB,CAAC,KAAoB;YACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAA;YACrC,IAAI,QAAQ,IAAI,IAAI;gBAAE,YAAM;YAC5B,MAAM,KAAK,GAAG,QAAiB,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1B,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI;oBAAE,YAAM;gBAC9B,MAAM,OAAO,GAAG,UAA2B,CAAA;gBAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;gBACjD,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;oBACzC,GAAG,CAAC,UAAU,CAAC;wBACb,GAAG,EAAE,0CAA0C,SAAS,EAAE;qBAC3D,CAAC,CAAA;iBACH;aACF;QACH,CAAC;QAED,QAAQ,CAAC,KAAoB;YAC3B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,wCAAwC,KAAK,CAAC,EAAE,EAAE;aACxD,CAAC,CAAA;QACJ,CAAC;QAED,cAAc,CAAC,KAAoB;YACjC,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;wBACpC,eAAe,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;4BAClD,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC;gCACZ,KAAK,EAAE,QAAQ;gCACf,IAAI,EAAE,SAAS;6BAChB,CAAC,CAAA;4BACF,IAAI,CAAC,UAAU,EAAE,CAAA;wBACnB,CAAC,CAAC,CAAC,KAAK,CAAC;4BACP,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC;gCACZ,KAAK,EAAE,MAAM;gCACb,IAAI,EAAE,MAAM;6BACb,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,WAAW,CAAC,KAAoB;YAC9B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,uCAAuC,KAAK,CAAC,EAAE,EAAE;aACvD,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,8BAA8B;aACpC,CAAC,CAAA;QACJ,CAAC;QAED,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,gBAAgB;YAChB,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,aAAa;YACX,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,gCAAgC;aACtC,CAAC,CAAA;QACJ,CAAC;QAED,aAAa;YACX,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,gCAAgC;aACtC,CAAC,CAAA;QACJ,CAAC;QAED,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,yCAAyC;aAC/C,CAAC,CAAA;QACJ,CAAC;QAED,cAAc;YACZ,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,0BAA0B;aAChC,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB;YACd,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,yCAAyC;aAC/C,CAAC,CAAA;QACJ,CAAC;QACD,mBAAmB;YACjB,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,oDAAoD;aAC1D,CAAC,CAAA;QACJ,CAAC;QACD,iBAAiB;YACf,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,kDAAkD;aACxD,CAAC,CAAA;QACJ,CAAC;QACD,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,oCAAoC;aAC1C,CAAC,CAAA;QACJ,CAAC;QAED,SAAS;YACP,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,kCAAkC;aACxC,CAAC,CAAA;QACJ,CAAC;QAED,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,cAAc;YACZ,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,sCAAsC;aAC5C,CAAC,CAAA;QACJ,CAAC;QAED,SAAS;YACP,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,iCAAiC;aACvC,CAAC,CAAA;QACJ,CAAC;QAED,SAAS;YACP,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,iCAAiC;aACvC,CAAC,CAAA;QACJ,CAAC;QAED,kBAAkB,CAAC,WAAS;YAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,WAAW,EAAE,IAAI,CAAC,CAAA;YACpE,IAAI,CAAC,WAAW,EAAE,CAAA;YAElB,MAAM,OAAO,GAAG,IAAqB,CAAA;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;aACH;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;aACH;QACH,CAAC;KACF;CACF,EAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/246ac1ae7ec8bb62bf17c9e3bb5072a4a61c4df1 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/246ac1ae7ec8bb62bf17c9e3bb5072a4a61c4df1 deleted file mode 100644 index a55bf6bb..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/246ac1ae7ec8bb62bf17c9e3bb5072a4a61c4df1 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { MerchantType, ProductType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass CouponType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n discount_value: { type: Number, optional: false },\n min_order_amount: { type: Number, optional: false },\n name: { type: String, optional: false },\n start_time: { type: String, optional: false },\n end_time: { type: String, optional: false },\n status: { type: Number, optional: false }\n };\n },\n name: \"CouponType\"\n };\n }\n constructor(options, metadata = CouponType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.discount_value = this.__props__.discount_value;\n this.min_order_amount = this.__props__.min_order_amount;\n this.name = this.__props__.name;\n this.start_time = this.__props__.start_time;\n this.end_time = this.__props__.end_time;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\n// 分页相关状态\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'shop-detail',\n setup(__props) {\n const currentPage = ref(1);\n const pageSize = ref(6); // 默认显示六个\n const hasMore = ref(true);\n const isLoading = ref(false);\n const currentMerchantId = ref('');\n const merchant = ref(new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }));\n const products = ref([]);\n const isFollowed = ref(false);\n const coupons = ref([]); // 新增优惠券\n const isRefresherTriggered = ref(false);\n // 函数定义必须在 onMounted 之前\n // checkFollowStatus 必须在 loadShopData 之前定义\n const checkFollowStatus = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId != null && userId != '') {\n try {\n // @ts-ignore\n isFollowed.value = yield supabaseService.isShopFollowed(shopId, userId);\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:118', 'isShopFollowed method not found');\n }\n }\n }); };\n const loadShopData = (id) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:124', 'Loading shop data for:', id);\n const shop = yield supabaseService.getShopByMerchantId(id);\n if (shop != null) {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:128', 'Shop loaded successfully:', shop.shop_name);\n // 使用显式类型转换\n const merchantData = new MerchantType({\n id: shop.id,\n user_id: shop.merchant_id,\n shop_name: shop.shop_name,\n shop_logo: shop.shop_logo != null ? shop.shop_logo : '/static/default-shop.png',\n shop_banner: shop.shop_banner != null ? shop.shop_banner : '/static/default-banner.png',\n shop_description: shop.description != null ? shop.description : '',\n contact_name: shop.contact_name != null ? shop.contact_name : '',\n contact_phone: shop.contact_phone != null ? shop.contact_phone : '',\n shop_status: 1,\n rating: shop.rating_avg != null ? shop.rating_avg : 5.0,\n total_sales: shop.total_sales != null ? shop.total_sales : 0,\n created_at: shop.created_at != null ? shop.created_at : ''\n });\n merchant.value = merchantData;\n // 检查关注状态\n checkFollowStatus(shop.id);\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:149', 'Shop data is null for ID:', id);\n uni.showToast({\n title: '未找到店铺信息',\n icon: 'none',\n duration: 3000\n });\n }\n }); };\n const loadCoupons = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j;\n try {\n // @ts-ignore\n const res = yield supabaseService.fetchShopCoupons(id);\n if (res != null && Array.isArray(res)) {\n const couponList = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n couponList.push(new CouponType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n discount_value: (_b = itemObj.getNumber('discount_value')) !== null && _b !== void 0 ? _b : 0,\n min_order_amount: (_c = itemObj.getNumber('min_order_amount')) !== null && _c !== void 0 ? _c : 0,\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '',\n start_time: (_g = itemObj.getString('start_time')) !== null && _g !== void 0 ? _g : '',\n end_time: (_h = itemObj.getString('end_time')) !== null && _h !== void 0 ? _h : '',\n status: (_j = itemObj.getNumber('status')) !== null && _j !== void 0 ? _j : 1\n }));\n }\n coupons.value = couponList;\n }\n }\n catch (e1) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:180', 'SupabaseService.fetchShopCoupons method missing. Please rebuild project.');\n }\n }); };\n const loadShopProducts = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (isLoading.value)\n return Promise.resolve(null);\n isLoading.value = true;\n // 保存当前使用的MerchantID,供下拉/触底使用\n if (currentPage.value === 1) {\n currentMerchantId.value = id;\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:193', `shop-detail loadShopProducts for: ${id} page: ${currentPage.value}`);\n let res = new UTSJSONObject({});\n try {\n // @ts-ignore\n res = yield supabaseService.getProductsByMerchantId(id, currentPage.value, pageSize.value);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:200', 'getProductsByMerchantId missing or error', e);\n isLoading.value = false;\n uni.stopPullDownRefresh();\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:206', `shop-detail getProductsByMerchantId result count: ${(_a = res.data) === null || _a === void 0 ? null : _a.length}`);\n const rawList = res.data;\n if (rawList != null && Array.isArray(rawList) && rawList.length > 0) {\n const list = rawList.map((item = null) => {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m;\n // 解析图片数组\n let images = [];\n // 转换为 UTSJSONObject 安全访问属性\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n // 1. 尝试 main_image_url\n const mainImageUrl = itemObj.getString('main_image_url');\n if (mainImageUrl != null && mainImageUrl != '') {\n images.push(mainImageUrl);\n }\n // 2. 尝试 image_urls (如果 main 为空,或者需要展示多图)\n const imageUrls = itemObj.get('image_urls');\n if (imageUrls != null) {\n try {\n if (Array.isArray(imageUrls)) {\n const arr = imageUrls;\n if (arr.length > 0) {\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else if (typeof imageUrls === 'string') {\n const rawUrl = imageUrls;\n if (rawUrl.startsWith('[')) {\n const parsed = UTS.JSON.parse(rawUrl);\n if (Array.isArray(parsed)) {\n const arr = parsed;\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else {\n if (images.indexOf(rawUrl) === -1)\n images.push(rawUrl);\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:245', '解析图片数组失败:', e);\n }\n }\n // 没有任何图片则使用默认\n if (images.length === 0) {\n images.push('/static/default-product.png');\n }\n return new ProductType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n merchant_id: (_b = itemObj.getString('merchant_id')) !== null && _b !== void 0 ? _b : '',\n category_id: (_c = itemObj.getString('category_id')) !== null && _c !== void 0 ? _c : '',\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '未知商品',\n description: (_g = itemObj.getString('description')) !== null && _g !== void 0 ? _g : '',\n images: images,\n price: (_h = itemObj.getNumber('base_price')) !== null && _h !== void 0 ? _h : 0,\n original_price: (_j = itemObj.getNumber('market_price')) !== null && _j !== void 0 ? _j : 0,\n stock: (_k = itemObj.getNumber('total_stock')) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = itemObj.getNumber('sale_count')) !== null && _l !== void 0 ? _l : 0,\n status: 1,\n created_at: (_m = itemObj.getString('created_at')) !== null && _m !== void 0 ? _m : ''\n });\n });\n if (currentPage.value === 1) {\n products.value = list;\n }\n else {\n products.value.push(...list);\n }\n currentPage.value++;\n hasMore.value = list.length >= pageSize.value;\n }\n else {\n hasMore.value = false;\n }\n isLoading.value = false;\n uni.stopPullDownRefresh();\n }); };\n onMounted(() => {\n const pages = getCurrentPages();\n const options = pages[pages.length - 1].options;\n // Search传递的是 id (shop_id), 其他地方可能传递 merchantId\n const mId = options.get('merchantId');\n const pId = options.get('id');\n const paramId = (mId != null ? mId : pId);\n if (paramId != null && paramId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:294', 'Page mounted with params:', paramId);\n // 优先加载店铺信息\n loadShopData(paramId).then(() => {\n // 加载成功后,使用确定的 merchant_id 来查询关联数据 (商品/优惠券通常是关联在 merchant_id 上的)\n const realMerchantId = merchant.value.user_id; // 这里 user_id 映射了 DB 中的 merchant_id\n if (realMerchantId != null && realMerchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:300', 'Chain loading products for Corrected Merchant ID:', realMerchantId);\n currentMerchantId.value = realMerchantId; // 更新当前上下文ID\n loadShopProducts(realMerchantId);\n loadCoupons(realMerchantId);\n }\n else {\n // 防御性策略:如果没能获取 merchant_id,尝试用传入 ID\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:306', 'Shop load failed or id empty, fallback using original id:', paramId);\n currentMerchantId.value = paramId;\n loadShopProducts(paramId);\n loadCoupons(paramId);\n }\n });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:313', 'No ID passed to shop-detail');\n uni.showToast({ title: '参数错误', icon: 'error' });\n }\n });\n const onRefresherRefresh = () => {\n isRefresherTriggered.value = true;\n currentPage.value = 1;\n hasMore.value = true;\n isLoading.value = false;\n if (currentMerchantId.value != '') {\n const id = currentMerchantId.value;\n Promise.all([\n loadShopData(id),\n loadCoupons(id),\n loadShopProducts(id)\n ]).then(() => {\n isRefresherTriggered.value = false;\n });\n }\n else {\n setTimeout(() => {\n isRefresherTriggered.value = false;\n }, 500);\n }\n };\n const onScrollToLower = () => {\n if (hasMore.value && !isLoading.value && currentMerchantId.value != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:342', 'Scroll to lower, loading more...');\n loadShopProducts(currentMerchantId.value);\n }\n };\n onPullDownRefresh(() => {\n onRefresherRefresh();\n });\n onReachBottom(() => {\n onScrollToLower();\n });\n const claimCoupon = (coupon = null) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n // 转换为 UTSJSONObject 安全访问属性\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(coupon));\n const couponId = (_a = couponObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n let success = false;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e1) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:376', 'claimCoupon not found');\n }\n }\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败', icon: 'none' });\n }\n }); };\n const toggleFollow = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n // 这里的 merchant.value.id 假如是 ML_SHOPS.id\n const shopId = merchant.value.id;\n if (shopId == null || shopId == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n // @ts-ignore\n if (isFollowed.value) {\n // 取消关注\n // @ts-ignore\n const success = yield supabaseService.unfollowShop(shopId, userId);\n if (success) {\n isFollowed.value = false;\n uni.showToast({ title: '已取消关注', icon: 'none' });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n else {\n // 关注\n // @ts-ignore\n const success = yield supabaseService.followShop(shopId, userId);\n if (success) {\n isFollowed.value = true;\n uni.showToast({ title: '关注成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '关注失败', icon: 'none' });\n }\n }\n uni.hideLoading();\n }); };\n const contactService = () => {\n const currentUser = supabaseService.getCurrentUserId();\n if (currentUser == null) {\n uni.navigateTo({ url: '/pages/user/login' });\n return null;\n }\n if (merchant.value.user_id != null && merchant.value.user_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchant.value.user_id}&merchantName=${encodeURIComponent(merchant.value.shop_name)}`\n });\n }\n else {\n uni.showToast({ title: '无法联系商家', icon: 'none' });\n }\n };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '检查商品...' });\n try {\n // 使用店铺的 merchant_id\n const merchantId = (_a = merchant.value.user_id) !== null && _a !== void 0 ? _a : '';\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(product.id);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + product.id\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(product.id, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败,请重试',\n icon: 'none'\n });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:483', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const goToProduct = (id) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?productId=${id}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: merchant.value.shop_banner != '' ? merchant.value.shop_banner : '/static/default-banner.png',\n b: merchant.value.shop_logo != '' ? merchant.value.shop_logo : '/static/default-shop.png',\n c: _t(merchant.value.shop_name),\n d: _t(merchant.value.rating.toFixed(1)),\n e: _t(merchant.value.total_sales),\n f: _o(contactService),\n g: _t(isFollowed.value ? '已关注' : '+ 关注'),\n h: isFollowed.value ? 1 : '',\n i: _o(toggleFollow),\n j: _t(merchant.value.shop_description != '' ? merchant.value.shop_description : '这家店很懒,什么都没写~'),\n k: coupons.value.length > 0\n }, coupons.value.length > 0 ? {\n l: _f(coupons.value, (coupon, k0, i0) => {\n return _e({\n a: _t(coupon.discount_value),\n b: coupon.min_order_amount > 0\n }, coupon.min_order_amount > 0 ? {\n c: _t(coupon.min_order_amount)\n } : {}, {\n d: coupon.id,\n e: _o($event => { return claimCoupon(coupon); }, coupon.id)\n });\n })\n } : {}, {\n m: _f(products.value, (product, k0, i0) => {\n return {\n a: product.images[0],\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return goToProduct(product.id); }, product.id)\n };\n }),\n n: _o(onScrollToLower),\n o: _o(onRefresherRefresh),\n p: isRefresherTriggered.value,\n q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/shop-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.stopPullDownRefresh","uni.navigateTo","uni.showLoading","uni.hideLoading"],"map":"{\"version\":3,\"file\":\"shop-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"shop-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAEvH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;OAC7B,EAAE,YAAY,EAAE,WAAW,EAAE;OAC7B,EAAE,eAAe,EAAE;MAGrB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUf,SAAS;AAET,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,aAAa;IACrB,KAAK,CAAC,OAAO;QAEf,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAEjC,MAAM,QAAQ,GAAG,GAAG,kBAAe;YACjC,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,EAAE;YACpB,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,EAAE;SACC,EAAC,CAAA;QAElB,MAAM,QAAQ,GAAG,GAAG,CAAgB,EAAE,CAAC,CAAA;QACvC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAe,EAAE,CAAC,CAAA,CAAC,QAAQ;QAC9C,MAAM,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAEvC,uBAAuB;QACvB,0CAA0C;QAC1C,MAAM,iBAAiB,GAAG,CAAO,MAAc;YAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAA;YACjD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE;gBAChC,IAAI;oBACA,aAAa;oBACb,UAAU,CAAC,KAAK,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;iBAC1E;gBAAC,OAAM,CAAC,EAAE;oBACP,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,6CAA6C,EAAC,iCAAiC,CAAC,CAAA;iBACpG;aACJ;QACL,CAAC,IAAA,CAAA;QAED,MAAM,YAAY,GAAG,CAAO,EAAU;YACpC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,wBAAwB,EAAE,EAAE,CAAC,CAAA;YAC3F,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;YAE1D,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC1G,WAAW;gBACX,MAAM,YAAY,oBAAiB;oBACjC,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B;oBAC/E,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B;oBACvF,gBAAgB,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBAClE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBAChE,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;oBACnE,WAAW,EAAE,CAAC;oBACd,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;oBACvD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC5D,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;iBAC3D,CAAA,CAAA;gBACD,QAAQ,CAAC,KAAK,GAAG,YAAY,CAAA;gBAE7B,SAAS;gBACT,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aAC3B;iBAAM;gBACH,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,6CAA6C,EAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;gBAC/F,GAAG,CAAC,SAAS,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAA;aACL;QACH,CAAC,IAAA,CAAA;QAED,MAAM,WAAW,GAAG,CAAO,EAAU;;YACjC,IAAI;gBACA,aAAa;gBACb,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBACtD,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACnC,MAAM,UAAU,GAAiB,EAAE,CAAA;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBACnB,MAAM,OAAO,GAAG,SAAK,KAAK,CAAC,SAAK,SAAS,CAAC,IAAI,CAAC,CAAkB,CAAA;wBACjE,UAAU,CAAC,IAAI,gBAAC;4BACZ,EAAE,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAI,EAAE;4BACjC,cAAc,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,mCAAI,CAAC;4BACxD,gBAAgB,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,mCAAI,CAAC;4BAC5D,IAAI,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAI,EAAE;4BACrC,UAAU,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE;4BACjD,QAAQ,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,mCAAI,EAAE;4BAC7C,MAAM,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,mCAAI,CAAC;yBAC7B,EAAC,CAAA;qBACnB;oBACD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;iBAC7B;aACJ;YAAC,OAAM,EAAE,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,6CAA6C,EAAC,0EAA0E,CAAC,CAAA;aAC7I;QACL,CAAC,IAAA,CAAA;QAED,MAAM,gBAAgB,GAAG,CAAO,EAAU;;YACxC,IAAI,SAAS,CAAC,KAAK;gBAAE,6BAAM;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YAEtB,6BAA6B;YAC7B,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE;gBACzB,iBAAiB,CAAC,KAAK,GAAG,EAAE,CAAA;aAC/B;YAED,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,qCAAqC,EAAE,UAAU,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;YAEnI,IAAI,GAAG,qBAAQ,EAAE,CAAA,CAAA;YACjB,IAAI;gBACA,aAAa;gBACb,GAAG,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;aAC7F;YAAC,OAAM,CAAC,EAAE;gBACP,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,6CAA6C,EAAC,0CAA0C,EAAE,CAAC,CAAC,CAAA;gBAC9G,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;gBACvB,GAAG,CAAC,mBAAmB,EAAE,CAAA;gBACzB,6BAAM;aACT;YAED,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,qDAAqD,MAAA,GAAG,CAAC,IAAI,wCAAE,MAAM,EAAE,CAAC,CAAA;YAEtI,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;YACxB,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,WAAS;;oBACjC,SAAS;oBACT,IAAI,MAAM,GAAa,EAAE,CAAA;oBAEzB,2BAA2B;oBAC3B,MAAM,OAAO,GAAG,SAAK,KAAK,CAAC,SAAK,SAAS,CAAC,IAAI,CAAC,CAAkB,CAAA;oBAEjE,uBAAuB;oBACvB,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;oBACxD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,EAAE;wBAC7C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;qBAC3B;oBAED,yCAAyC;oBACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;oBAC3C,IAAI,SAAS,IAAI,IAAI,EAAE;wBACrB,IAAI;4BACF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gCAC3B,MAAM,GAAG,GAAG,SAAqB,CAAA;gCACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oCACjB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;wCAAE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;iCAC7C;6BACH;iCAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gCACvC,MAAM,MAAM,GAAG,SAAmB,CAAA;gCAClC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oCACzB,MAAM,MAAM,GAAG,SAAK,KAAK,CAAC,MAAM,CAAC,CAAA;oCACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wCACtB,MAAM,GAAG,GAAG,MAAkB,CAAA;wCAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;4CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;qCAC/C;iCACH;qCAAM;oCACJ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wCAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;iCACxD;6BACH;yBACF;wBAAC,OAAM,CAAC,EAAE;4BACP,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,6CAA6C,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;yBAClF;qBACF;oBAED,cAAc;oBACd,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;wBACvB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;qBAC3C;oBAED,uBAAO;wBACL,EAAE,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAI,EAAE;wBACjC,WAAW,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,EAAE;wBACnD,WAAW,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,EAAE;wBACnD,IAAI,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAI,MAAM;wBACzC,WAAW,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,EAAE;wBACnD,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,CAAC;wBAC3C,cAAc,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,mCAAI,CAAC;wBACtD,KAAK,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,CAAC;wBAC5C,KAAK,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,CAAC;wBAC3C,MAAM,EAAE,CAAC;wBACT,UAAU,EAAE,MAAA,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE;qBACnC,EAAA;gBAClB,CAAC,CAAC,CAAA;gBAEF,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE;oBAC3B,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;iBACtB;qBAAM;oBACL,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;iBAC7B;gBACD,WAAW,CAAC,KAAK,EAAE,CAAA;gBACnB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAA;aAC9C;iBAAM;gBACL,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;aACtB;YAED,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACvB,GAAG,CAAC,mBAAmB,EAAE,CAAA;QAC3B,CAAC,IAAA,CAAA;QAED,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAwB,CAAA;YAChE,+CAA+C;YAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAW,CAAA;YAEnD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,EAAE,EAAE;gBACpC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,2BAA2B,EAAE,OAAO,CAAC,CAAA;gBACnG,WAAW;gBACX,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;oBACvB,gEAAgE;oBAChE,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAA,CAAC,mCAAmC;oBACjF,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,IAAI,EAAE,EAAE;wBAChD,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,mDAAmD,EAAE,cAAc,CAAC,CAAA;wBAClI,iBAAiB,CAAC,KAAK,GAAG,cAAc,CAAA,CAAC,YAAY;wBACrD,gBAAgB,CAAC,cAAc,CAAC,CAAA;wBAChC,WAAW,CAAC,cAAc,CAAC,CAAA;qBAC9B;yBAAM;wBACH,oCAAoC;wBACpC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,6CAA6C,EAAC,2DAA2D,EAAE,OAAO,CAAC,CAAA;wBACpI,iBAAiB,CAAC,KAAK,GAAG,OAAO,CAAA;wBACjC,gBAAgB,CAAC,OAAO,CAAC,CAAA;wBACzB,WAAW,CAAC,OAAO,CAAC,CAAA;qBACvB;gBACL,CAAC,CAAC,CAAA;aACH;iBAAM;gBACH,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,6CAA6C,EAAC,6BAA6B,CAAC,CAAA;gBAC9F,GAAG,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;aAChD;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,kBAAkB,GAAG;YACvB,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAA;YACjC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAA;YACrB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;YACpB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YAEvB,IAAI,iBAAiB,CAAC,KAAK,IAAI,EAAE,EAAE;gBAC/B,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAA;gBAClC,OAAO,CAAC,GAAG,CAAC;oBACV,YAAY,CAAC,EAAE,CAAC;oBAChB,WAAW,CAAC,EAAE,CAAC;oBACf,gBAAgB,CAAC,EAAE,CAAC;iBACrB,CAAC,CAAC,IAAI,CAAC;oBACH,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAA;gBACvC,CAAC,CAAC,CAAA;aACL;iBAAM;gBACH,UAAU,CAAC;oBACP,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAA;gBACtC,CAAC,EAAE,GAAG,CAAC,CAAA;aACV;QACL,CAAC,CAAA;QAED,MAAM,eAAe,GAAG;YACpB,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,IAAI,EAAE,EAAE;gBACpE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,6CAA6C,EAAC,kCAAkC,CAAC,CAAA;gBACjG,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;aAC5C;QACL,CAAC,CAAA;QAED,iBAAiB,CAAC;YACd,kBAAkB,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC;YACV,eAAe,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,CAAO,aAAW;;YAClC,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAA;YACjD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;gBAC5C,6BAAM;aACT;YACD,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAEjC,2BAA2B;YAC3B,MAAM,SAAS,GAAG,SAAK,KAAK,CAAC,SAAK,SAAS,CAAC,MAAM,CAAC,CAAkB,CAAA;YACrE,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA;YAEhD,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,IAAI;gBACA,aAAa;gBACb,OAAO,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;aACpE;YAAC,OAAM,EAAE,EAAE;gBACR,IAAI;oBACA,aAAa;oBACb,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;iBAChE;gBAAC,OAAM,EAAE,EAAE;oBACR,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,6CAA6C,EAAC,uBAAuB,CAAC,CAAA;iBAC1F;aACJ;YAED,GAAG,CAAC,WAAW,EAAE,CAAA;YACjB,IAAI,OAAO,EAAE;gBACT,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;aACpD;iBAAM;gBACH,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;aACjD;QACL,CAAC,IAAA,CAAA;QAED,MAAM,YAAY,GAAG;YACnB,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAA;YACjD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;gBAC5C,6BAAM;aACT;YAED,wCAAwC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;YAChC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE;gBAAE,6BAAM;YAE1C,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAEjC,aAAa;YACb,IAAI,UAAU,CAAC,KAAK,EAAE;gBAClB,OAAO;gBACP,aAAa;gBACb,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAClE,IAAI,OAAO,EAAE;oBACT,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;oBACxB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;iBAClD;qBAAM;oBACH,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;iBACjD;aACJ;iBAAM;gBACH,KAAK;gBACL,aAAa;gBACb,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAChE,IAAI,OAAO,EAAE;oBACT,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;oBACvB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;iBACpD;qBAAM;oBACH,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;iBACjD;aACJ;YACD,GAAG,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC,IAAA,CAAA;QAED,MAAM,cAAc,GAAG;YACnB,MAAM,WAAW,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAA;YACtD,IAAI,WAAW,IAAI,IAAI,EAAE;gBACrB,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;gBAC5C,YAAM;aACT;YAED,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;gBAC/D,GAAG,CAAC,UAAU,CAAC;oBACZ,GAAG,EAAE,wCAAwC,QAAQ,CAAC,KAAK,CAAC,OAAO,iBAAiB,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;iBACpI,CAAC,CAAA;aACN;iBAAM;gBACH,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;aAClD;QACL,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,CAAO,OAAoB;;YAC3C,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAErC,IAAI;gBACF,oBAAoB;gBACpB,MAAM,UAAU,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAA;gBAE/C,aAAa;gBACb,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC7D,GAAG,CAAC,WAAW,EAAE,CAAA;gBAEjB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjB,sBAAsB;oBACtB,GAAG,CAAC,SAAS,CAAC;wBACZ,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,MAAM;qBACb,CAAC,CAAA;oBACF,UAAU,CAAC;wBACT,GAAG,CAAC,UAAU,CAAC;4BACb,GAAG,EAAE,yCAAyC,GAAG,OAAO,CAAC,EAAE;yBAC5D,CAAC,CAAA;oBACJ,CAAC,EAAE,GAAG,CAAC,CAAA;iBACV;qBAAM;oBACL,cAAc;oBACd,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;oBAC9E,GAAG,CAAC,WAAW,EAAE,CAAA;oBAEjB,IAAI,OAAO,EAAE;wBACX,GAAG,CAAC,SAAS,CAAC;4BACZ,KAAK,EAAE,SAAS;4BAChB,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAA;qBACH;yBAAM;wBACL,GAAG,CAAC,SAAS,CAAC;4BACZ,KAAK,EAAE,UAAU;4BACjB,IAAI,EAAE,MAAM;yBACb,CAAC,CAAA;qBACH;iBACF;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,6CAA6C,EAAC,UAAU,EAAE,CAAC,CAAC,CAAA;gBAC9E,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;aACH;QACH,CAAC,IAAA,CAAA;QAED,MAAM,WAAW,GAAG,CAAC,EAAU;YAC7B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,iDAAiD,EAAE,EAAE;aAC3D,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B;gBAC/F,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B;gBACzF,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5B,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC/F,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;aAC5B,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;oBAClC,OAAO,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;wBAC5B,CAAC,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC;qBAC/B,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC/B,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;qBAC/B,CAAC,CAAC,CAAC,EAAE,EAAE;wBACN,CAAC,EAAE,MAAM,CAAC,EAAE;wBACZ,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,WAAW,CAAC,MAAM,CAAC,EAAnB,CAAmB,EAAE,MAAM,CAAC,EAAE,CAAC;qBAChD,CAAC,CAAC;gBACL,CAAC,CAAC;aACH,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE;oBACpC,OAAO;wBACL,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;wBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,OAAO,CAAC,EAAlB,CAAkB,EAAE,OAAO,CAAC,EAAE,CAAC;wBAC/C,CAAC,EAAE,OAAO,CAAC,EAAE;wBACb,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAvB,CAAuB,EAAE,OAAO,CAAC,EAAE,CAAC;qBACrD,CAAC;gBACJ,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;gBACzB,CAAC,EAAE,oBAAoB,CAAC,KAAK;gBAC7B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25eeb7e54c29d127725809becbf7f9599d4a3c23 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25eeb7e54c29d127725809becbf7f9599d4a3c23 new file mode 100644 index 00000000..04961ad6 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25eeb7e54c29d127725809becbf7f9599d4a3c23 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass MyReviewItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: false },\n rating: { type: Number, optional: false },\n content: { type: String, optional: false },\n images: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },\n append_content: { type: String, optional: true },\n can_append: { type: Boolean, optional: false },\n can_edit: { type: Boolean, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"MyReviewItem\"\n };\n }\n constructor(options, metadata = MyReviewItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.rating = this.__props__.rating;\n this.content = this.__props__.content;\n this.images = this.__props__.images;\n this.append_content = this.__props__.append_content;\n this.can_append = this.__props__.can_append;\n this.can_edit = this.__props__.can_edit;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass PendingItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: false },\n order_time: { type: String, optional: false }\n };\n },\n name: \"PendingItem\"\n };\n }\n constructor(options, metadata = PendingItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_id = this.__props__.order_id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.order_time = this.__props__.order_time;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'my-reviews',\n setup(__props) {\n const activeTab = ref('published');\n const reviews = ref([]);\n const pendingItems = ref([]);\n const loading = ref(true);\n const showAppendModal = ref(false);\n const appendContent = ref('');\n const selectedReview = ref(null);\n const loadReviews = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n loading.value = true;\n try {\n const result = yield supabaseService.getMyReviews();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let reviewObj;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n reviewObj = item;\n }\n else {\n reviewObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n let images = [];\n const imagesRaw = reviewObj.get('images');\n if (imagesRaw != null && typeof imagesRaw === 'string') {\n try {\n const parsedImages = UTS.JSON.parse(imagesRaw);\n if (Array.isArray(parsedImages)) {\n images = parsedImages;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:192', '解析图片失败:', e);\n }\n }\n const review = new MyReviewItem({\n id: (_a = reviewObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n product_id: (_b = reviewObj.getString('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = reviewObj.getString('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: (_d = reviewObj.getString('product_image')) !== null && _d !== void 0 ? _d : '',\n rating: (_g = reviewObj.getNumber('rating')) !== null && _g !== void 0 ? _g : 5,\n content: (_h = reviewObj.getString('content')) !== null && _h !== void 0 ? _h : '',\n images: images,\n append_content: reviewObj.getString('append_content'),\n can_append: (_j = reviewObj.getBoolean('can_append')) !== null && _j !== void 0 ? _j : false,\n can_edit: (_k = reviewObj.getBoolean('can_edit')) !== null && _k !== void 0 ? _k : false,\n created_at: (_l = reviewObj.getString('created_at')) !== null && _l !== void 0 ? _l : ''\n });\n parsed.push(review);\n }\n reviews.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:214', '加载评价失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadPendingItems = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g;\n loading.value = true;\n try {\n const orders = yield supabaseService.getOrders(4);\n const pending = [];\n for (let i = 0; i < orders.length; i++) {\n const order = orders[i];\n let orderObj;\n if (UTS.isInstanceOf(order, UTSJSONObject)) {\n orderObj = order;\n }\n else {\n orderObj = UTS.JSON.parse(UTS.JSON.stringify(order));\n }\n const orderId = (_a = orderObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const itemsRaw = orderObj.get('items');\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n for (let j = 0; j < items.length; j++) {\n const orderItem = items[j];\n let itemObj;\n if (UTS.isInstanceOf(orderItem, UTSJSONObject)) {\n itemObj = orderItem;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(orderItem));\n }\n pending.push(new PendingItem({\n order_id: orderId,\n product_id: (_b = itemObj.getString('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = itemObj.getString('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: (_d = itemObj.getString('product_image')) !== null && _d !== void 0 ? _d : '',\n order_time: (_g = orderObj.getString('created_at')) !== null && _g !== void 0 ? _g : ''\n }));\n }\n }\n }\n pendingItems.value = pending;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:262', '加载待评价商品失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const switchTab = (tab) => {\n activeTab.value = tab;\n if (tab === 'published' && reviews.value.length === 0) {\n loadReviews();\n }\n else if (tab === 'pending' && pendingItems.value.length === 0) {\n loadPendingItems();\n }\n };\n const goToProduct = (productId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${productId}`\n });\n };\n const goToReview = (item) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/review?order_id=${item.order_id}`\n });\n };\n const showAppendPopup = (review) => {\n selectedReview.value = review;\n appendContent.value = '';\n showAppendModal.value = true;\n };\n const closeAppendPopup = () => {\n showAppendModal.value = false;\n selectedReview.value = null;\n appendContent.value = '';\n };\n const submitAppend = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedReview.value == null || appendContent.value.trim() === '') {\n uni.showToast({ title: '请输入评价内容', icon: 'none' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '提交中...' });\n try {\n const success = yield supabaseService.appendReview(selectedReview.value.id, appendContent.value.trim(), []);\n if (success) {\n selectedReview.value.append_content = appendContent.value.trim();\n selectedReview.value.can_append = false;\n closeAppendPopup();\n uni.showToast({ title: '追加成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '追加失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:325', '追加评价失败:', e);\n uni.showToast({ title: '追加失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n const doDelete = (review) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '删除中...' });\n try {\n const success = yield supabaseService.deleteReview(review.id);\n if (success) {\n const index = reviews.value.indexOf(review);\n if (index > -1) {\n reviews.value.splice(index, 1);\n }\n uni.showToast({ title: '删除成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '删除失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:347', '删除评价失败:', e);\n uni.showToast({ title: '删除失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n const confirmDelete = (review) => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要删除这条评价吗?',\n success: (res) => {\n if (res.confirm) {\n doDelete(review);\n }\n }\n }));\n };\n const previewImage = (images, index) => {\n uni.previewImage({\n urls: images,\n current: index\n });\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n };\n onMounted(() => {\n loadReviews();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: activeTab.value === 'published' ? 1 : '',\n b: _o($event => { return switchTab('published'); }),\n c: activeTab.value === 'pending' ? 1 : '',\n d: _o($event => { return switchTab('pending'); }),\n e: activeTab.value === 'published'\n }, activeTab.value === 'published' ? {\n f: _f(reviews.value, (review, k0, i0) => {\n return _e({\n a: review.product_image.length > 0 ? review.product_image : defaultImage,\n b: _t(review.product_name),\n c: _f(5, (star, k1, i1) => {\n return {\n a: star,\n b: star <= review.rating ? 1 : ''\n };\n }),\n d: _t(formatTime(review.created_at)),\n e: _o($event => { return goToProduct(review.product_id); }, review.id),\n f: _t(review.content),\n g: review.images.length > 0\n }, review.images.length > 0 ? {\n h: _f(review.images.slice(0, 4), (img, idx, i1) => {\n return {\n a: idx,\n b: img,\n c: _o($event => { return previewImage(review.images, idx); }, idx)\n };\n })\n } : {}, {\n i: review.append_content\n }, review.append_content ? {\n j: _t(review.append_content)\n } : {}, {\n k: review.can_append\n }, review.can_append ? {\n l: _o($event => { return showAppendPopup(review); }, review.id)\n } : {}, {\n m: _o($event => { return confirmDelete(review); }, review.id),\n n: review.id\n });\n })\n } : {}, {\n g: activeTab.value === 'pending'\n }, activeTab.value === 'pending' ? {\n h: _f(pendingItems.value, (item, k0, i0) => {\n return {\n a: item.product_image.length > 0 ? item.product_image : defaultImage,\n b: _t(item.product_name),\n c: _t(formatTime(item.order_time)),\n d: _o($event => { return goToReview(item); }, item.order_id),\n e: item.order_id\n };\n })\n } : {}, {\n i: !loading.value && (activeTab.value === 'published' && reviews.value.length === 0 || activeTab.value === 'pending' && pendingItems.value.length === 0)\n }, !loading.value && (activeTab.value === 'published' && reviews.value.length === 0 || activeTab.value === 'pending' && pendingItems.value.length === 0) ? {\n j: _t(activeTab.value === 'published' ? '暂无评价记录' : '暂无待评价商品')\n } : {}, {\n k: loading.value\n }, loading.value ? {} : {}, {\n l: showAppendModal.value\n }, showAppendModal.value ? {\n m: _o(closeAppendPopup),\n n: appendContent.value,\n o: _o($event => { return appendContent.value = $event.detail.value; }),\n p: _o(closeAppendPopup),\n q: _o(submitAppend),\n r: _o(() => { }),\n s: _o(closeAppendPopup)\n } : {}, {\n t: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/my-reviews.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.showLoading","uni.hideLoading","uni.showModal","uni.previewImage"],"map":"{\"version\":3,\"file\":\"my-reviews.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"my-reviews.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2b1c8edca0e95b73995bcf8c33c1412b5bf02e2e b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2b1c8edca0e95b73995bcf8c33c1412b5bf02e2e new file mode 100644 index 00000000..3849248f --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2b1c8edca0e95b73995bcf8c33c1412b5bf02e2e @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted, computed } from 'vue';\nimport { onShow, onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass OrderTabItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n count: { type: Number, optional: false }\n };\n },\n name: \"OrderTabItem\"\n };\n }\n constructor(options, metadata = OrderTabItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.count = this.__props__.count;\n delete this.__props__;\n }\n}\nclass OrderProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false }\n };\n },\n name: \"OrderProduct\"\n };\n }\n constructor(options, metadata = OrderProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n delete this.__props__;\n }\n}\nclass OrderItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n create_time: { type: String, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n merchant_id: { type: String, optional: false },\n shop_name: { type: String, optional: false },\n products: { type: UTS.UTSType.withGenerics(Array, [OrderProduct]), optional: false }\n };\n },\n name: \"OrderItem\"\n };\n }\n constructor(options, metadata = OrderItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.create_time = this.__props__.create_time;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.total_amount = this.__props__.total_amount;\n this.merchant_id = this.__props__.merchant_id;\n this.shop_name = this.__props__.shop_name;\n this.products = this.__props__.products;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'orders',\n setup(__props) {\n const orders = ref([]);\n const allOrdersList = ref([]); // Store all fetched orders for client-side filtering\n const loading = ref(false);\n const loadingMore = ref(false);\n const hasMore = ref(true);\n const refreshing = ref(false);\n const page = ref(1);\n const activeTab = ref('all');\n const statusBarHeight = ref(0);\n const searchKeyword = ref('');\n // 商家推销配置缓存\n const merchantShareFreeEnabled = ref(new UTSJSONObject());\n const merchantRequiredCount = ref(new UTSJSONObject());\n // 订单标签页 - 使用 ref 以便整体替换\n const orderTabs = ref([\n new OrderTabItem({ id: 'all', name: '全部', count: 0 }),\n new OrderTabItem({ id: 'pending', name: '待付款', count: 0 }),\n new OrderTabItem({ id: 'shipping', name: '待发货', count: 0 }),\n new OrderTabItem({ id: 'delivering', name: '待收货', count: 0 }),\n new OrderTabItem({ id: 'completed', name: '已完成', count: 0 }),\n new OrderTabItem({ id: 'aftersale', name: '售后', count: 0 }),\n new OrderTabItem({ id: 'cancelled', name: '已取消', count: 0 })\n ]);\n // 模拟状态筛选(除去\"全部\"后的其余标签)\n const orderTabsMobile = computed(() => {\n return orderTabs.value.filter((tab) => { return tab.id !== 'all'; });\n });\n // 辅助函数:获取状态码\n const getStatusByTab = (tabId) => {\n if (tabId == 'pending')\n return 1;\n if (tabId == 'shipping')\n return 2;\n if (tabId == 'delivering')\n return 3;\n if (tabId == 'completed')\n return 4;\n if (tabId == 'cancelled')\n return 5;\n if (tabId == 'aftersale')\n return 6;\n return 0;\n };\n // 格式化规格对象为友好的文本 - 必须在 parseSpecText 之前定义\n function formatSpecObj(obj = null) {\n if (obj == null)\n return '';\n if (typeof obj !== 'object') {\n // 非对象类型直接返回字符串形式\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number')\n return obj.toString();\n return '';\n }\n try {\n const objStr = UTS.JSON.stringify(obj);\n const objParsed = UTS.JSON.parse(objStr);\n if (objParsed == null)\n return '';\n const specObj = objParsed;\n // 使用 JSON.stringify 获取所有键\n const specObjStr = UTS.JSON.stringify(specObj);\n const specObjForKeys = UTS.JSON.parse(specObjStr);\n // 手动提取键值对\n const parts = [];\n // 尝试获取已知字段\n const colorVal = specObjForKeys.getString('Color');\n if (colorVal != null && colorVal != '') {\n parts.push('Color: ' + colorVal);\n }\n const sizeVal = specObjForKeys.getString('Size');\n if (sizeVal != null && sizeVal != '') {\n parts.push('Size: ' + sizeVal);\n }\n const defaultVal = specObjForKeys.getString('默认');\n if (defaultVal != null && defaultVal != '') {\n parts.push('默认: ' + defaultVal);\n }\n // 如果没有匹配到已知字段,尝试直接显示 JSON\n if (parts.length === 0) {\n // 尝试遍历对象\n const objAny = specObjForKeys;\n if (objAny != null) {\n return specObjStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n }\n return parts.join(' | ');\n }\n catch (e) {\n return '';\n }\n }\n // 辅助函数:解析规格文本\n function parseSpecText(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n // 如果是 JSON 字符串,尝试解析\n if (specs.startsWith('{') || specs.startsWith('[')) {\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed == null)\n return specs;\n return formatSpecObj(parsed);\n }\n catch (e) {\n return specs;\n }\n }\n return specs;\n }\n // 对于对象类型,格式化显示\n return formatSpecObj(specs);\n }\n // 辅助函数:更新标签计数\n const updateTabsCounts = (allOrders) => {\n const countAll = allOrders.length;\n const countPending = allOrders.filter((o) => { return o.status === 1; }).length;\n const countShipping = allOrders.filter((o) => { return o.status === 2; }).length;\n const countDelivering = allOrders.filter((o) => { return o.status === 3; }).length;\n const countCompleted = allOrders.filter((o) => { return o.status === 4; }).length;\n const countCancelled = allOrders.filter((o) => { return o.status === 5; }).length;\n const countAftersale = allOrders.filter((o) => { return o.status === 6 || o.status === 7; }).length;\n orderTabs.value[0].count = countAll;\n orderTabs.value[1].count = countPending;\n orderTabs.value[2].count = countShipping;\n orderTabs.value[3].count = countDelivering;\n orderTabs.value[4].count = countCompleted;\n orderTabs.value[5].count = countAftersale;\n orderTabs.value[6].count = countCancelled;\n };\n // 辅助函数:按标签筛选订单\n const filterOrdersByTab = () => {\n if (activeTab.value === 'all') {\n orders.value = allOrdersList.value;\n }\n else if (activeTab.value === 'aftersale') {\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === 6 || o.status === 7;\n });\n }\n else {\n const targetStatus = getStatusByTab(activeTab.value);\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === targetStatus;\n });\n }\n };\n // 检查商家是否开启分享免单\n const isShareFreeEnabled = (merchantId) => {\n const val = merchantShareFreeEnabled.value.get(merchantId);\n return val === true;\n };\n // 获取商家要求的购买人数\n const getRequiredCount = (merchantId) => {\n const val = merchantRequiredCount.value.get(merchantId);\n if (val != null && typeof val === 'number') {\n return val;\n }\n return 4;\n };\n // 加载商家推销配置\n const loadMerchantPromotionConfigs = (orderList) => { return __awaiter(this, void 0, void 0, function* () {\n // 收集所有唯一的商家ID\n const merchantIds = new Set();\n for (let i = 0; i < orderList.length; i++) {\n const merchantId = orderList[i].merchant_id;\n const existingVal = merchantShareFreeEnabled.value.get(merchantId);\n if (merchantId != null && merchantId !== '' && existingVal == null) {\n merchantIds.add(merchantId);\n }\n }\n // 批量加载商家配置\n const merchantIdArray = Array.from(merchantIds);\n for (let i = 0; i < merchantIdArray.length; i++) {\n const merchantIdRaw = merchantIdArray[i];\n const merchantId = merchantIdRaw;\n try {\n const config = yield supabaseService.getMerchantPromotionConfig(merchantId);\n const promotionEnabled = config.get('promotion_enabled');\n const shareFreeEnabled = config.get('share_free_enabled');\n const requiredCount = config.get('required_count');\n const isEnabled = (promotionEnabled === true || promotionEnabled === 'true') &&\n (shareFreeEnabled === true || shareFreeEnabled === 'true');\n merchantShareFreeEnabled.value.set(merchantId, isEnabled);\n if (requiredCount != null) {\n merchantRequiredCount.value.set(merchantId, requiredCount);\n }\n else {\n merchantRequiredCount.value.set(merchantId, 4);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:428', '加载商家推销配置失败:', merchantId, e);\n merchantShareFreeEnabled.value.set(merchantId, false);\n merchantRequiredCount.value.set(merchantId, 4);\n }\n }\n }); };\n // 加载订单数据\n const loadOrders = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n loading.value = true;\n try {\n // Fetch all orders from Supabase (status=0)\n const fetchedOrders = yield supabaseService.getOrders(0);\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:442', '[loadOrders] 获取到订单数量:', fetchedOrders.length);\n // Map to View Model\n const mappedOrders = [];\n for (let i = 0; i < fetchedOrders.length; i++) {\n const order = fetchedOrders[i];\n // 使用 JSON 序列化转换\n const orderStr = UTS.JSON.stringify(order);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null)\n continue;\n const orderObj = orderParsed;\n const itemsRaw = orderObj.get('ml_order_items');\n const productsList = [];\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:457', '[loadOrders] 订单商品数据:', itemsRaw);\n if (itemsRaw != null) {\n // 先检查是否为数组\n if (Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:463', '[loadOrders] 商品数量:', items.length);\n for (let j = 0; j < items.length; j++) {\n const item = items[j];\n const itemStr = UTS.JSON.stringify(item);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n continue;\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n const specText = specRaw != null ? parseSpecText(specRaw) : '';\n const productId = itemObj.getString('product_id');\n const productName = itemObj.getString('product_name');\n const price = itemObj.getNumber('price');\n const imageUrl = itemObj.getString('image_url');\n const quantity = itemObj.getNumber('quantity');\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:480', '[loadOrders] 商品:', productName, '图片:', imageUrl, '规格:', specText);\n const productItem = new OrderProduct({\n id: productId !== null && productId !== void 0 ? productId : '',\n name: productName !== null && productName !== void 0 ? productName : '未知商品',\n price: price !== null && price !== void 0 ? price : 0,\n image: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '/static/default-product.png',\n spec: specText,\n quantity: quantity !== null && quantity !== void 0 ? quantity : 1\n });\n productsList.push(productItem);\n }\n }\n }\n const orderId = orderObj.getString('id');\n const orderNo = orderObj.getString('order_no');\n const orderStatus = orderObj.getNumber('order_status');\n const createdAt = orderObj.getString('created_at');\n const productAmount = orderObj.getNumber('product_amount');\n const shippingFee = orderObj.getNumber('shipping_fee');\n const totalAmount = orderObj.getNumber('total_amount');\n const paidAmount = orderObj.getNumber('paid_amount');\n const merchantId = orderObj.getString('merchant_id');\n // 从关联查询的 ml_shops 表获取店铺名称\n let shopName = '自营店铺';\n const shopsRaw = orderObj.get('ml_shops');\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const shopNameFromDb = shopObj.getString('shop_name');\n if (shopNameFromDb != null && shopNameFromDb != '') {\n shopName = shopNameFromDb;\n }\n }\n }\n else if (merchantId != null && merchantId != '') {\n shopName = '商家店铺';\n }\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:522', '[loadOrders] 订单号:', orderNo, '店铺:', shopName, '商品数:', productsList.length);\n // 如果没有商品数据,添加一个占位商品\n if (productsList.length === 0) {\n const placeholderProduct = new OrderProduct({\n id: 'placeholder',\n name: '订单商品',\n price: (_a = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _a !== void 0 ? _a : 0,\n image: '/static/default-product.png',\n spec: '',\n quantity: 1\n });\n productsList.push(placeholderProduct);\n }\n const mappedOrder = new OrderItem({\n id: orderId !== null && orderId !== void 0 ? orderId : '',\n order_no: orderNo !== null && orderNo !== void 0 ? orderNo : '',\n status: orderStatus !== null && orderStatus !== void 0 ? orderStatus : 1,\n create_time: createdAt !== null && createdAt !== void 0 ? createdAt : '',\n product_amount: productAmount !== null && productAmount !== void 0 ? productAmount : 0,\n shipping_fee: shippingFee !== null && shippingFee !== void 0 ? shippingFee : 0,\n total_amount: (_b = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _b !== void 0 ? _b : 0,\n merchant_id: merchantId !== null && merchantId !== void 0 ? merchantId : '',\n shop_name: shopName,\n products: productsList\n });\n mappedOrders.push(mappedOrder);\n }\n // Sort by created_at desc - 直接使用 OrderItem 类型访问属性\n mappedOrders.sort((a, b) => {\n const timeA = new Date(a.create_time).getTime();\n const timeB = new Date(b.create_time).getTime();\n return timeB - timeA;\n });\n allOrdersList.value = mappedOrders;\n // Update tab counts\n updateTabsCounts(mappedOrders);\n // Apply current tab filter\n filterOrdersByTab();\n // 加载商家推销配置\n loadMerchantPromotionConfigs(mappedOrders);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:571', '加载订单异常:', err);\n uni.showToast({ title: '加载订单失败', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n // 生命周期\n onLoad((options = null) => {\n var _a;\n // 初始化状态栏高度\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n if (options == null)\n return null;\n const statusVal = options['status'];\n if (statusVal != null) {\n const status = statusVal;\n if (['all', 'pending', 'shipping', 'delivering', 'completed', 'aftersale', 'cancelled'].includes(status)) {\n activeTab.value = status;\n }\n }\n const typeVal = options['type'];\n if (typeVal != null) {\n const type = typeVal;\n if (type === 'pending')\n activeTab.value = 'pending';\n else if (type === 'shipped')\n activeTab.value = 'delivering'; // 映射到待收货\n else if (type === 'review')\n activeTab.value = 'completed'; // 映射到已完成\n else if (type === 'refund')\n activeTab.value = 'aftersale'; // 退款/售后跳转到售后标签页\n }\n });\n onShow(() => {\n loadOrders();\n });\n const formatDate = (isoString) => {\n if (isoString == '')\n return '';\n const date = new Date(isoString);\n return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n };\n // 辅助函数:获取当前订单数据(必须在 performSearch 之前定义)\n function getCurrentOrderData() {\n return allOrdersList.value;\n }\n // 搜索执行函数(必须在 onSearchInput 等之前定义)\n const performSearch = () => {\n const keyword = searchKeyword.value.trim().toLowerCase();\n if (keyword == '') {\n loadOrders();\n return null;\n }\n // 在当前订单数据中搜索\n const allOrders = getCurrentOrderData();\n const filtered = allOrders.filter((order = null) => {\n const orderObj = order;\n // 搜索订单号\n const orderNo = orderObj['order_no'];\n if (orderNo != null && orderNo.toLowerCase().includes(keyword)) {\n return true;\n }\n // 搜索商品名称\n const products = orderObj['products'];\n if (products != null && Array.isArray(products)) {\n return products.some((product = null) => {\n const productObj = product;\n const name = productObj['name'];\n return name != null && name.toLowerCase().includes(keyword);\n });\n }\n return false;\n });\n orders.value = filtered;\n };\n // 搜索相关函数\n const onSearchInput = (e = null) => {\n const eObj = e;\n const detail = eObj['detail'];\n searchKeyword.value = detail['value'];\n performSearch();\n };\n const onSearchConfirm = () => {\n performSearch();\n };\n const clearSearch = () => {\n searchKeyword.value = '';\n performSearch();\n };\n const formatSpec = (specs = null) => {\n if (specs == null)\n return '';\n if (typeof specs === 'string')\n return specs;\n if (typeof specs === 'object') {\n return UTS.JSON.stringify(specs);\n }\n return '';\n };\n // 切换标签\n const switchTab = (tabId) => {\n activeTab.value = tabId;\n filterOrdersByTab();\n };\n // 获取状态文本\n const getStatusText = (status) => {\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n // 获取状态类名\n const getStatusClass = (status) => {\n if (status == 1)\n return 'status-pending';\n if (status == 2)\n return 'status-shipping';\n if (status == 3)\n return 'status-delivering';\n if (status == 4)\n return 'status-completed';\n if (status == 5)\n return 'status-cancelled';\n if (status == 6)\n return 'status-refunding';\n if (status == 7)\n return 'status-refunded';\n return 'status-unknown';\n };\n // 联系卖家\n const contactSeller = (order) => {\n if (order.merchant_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${order.merchant_id}`\n });\n }\n else {\n uni.showToast({\n title: '暂无卖家联系方式',\n icon: 'none'\n });\n }\n };\n // 删除订单\n const deleteOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '订单已删除',\n icon: 'success'\n });\n loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n // 下拉刷新\n const onRefresh = () => {\n refreshing.value = true;\n setTimeout(() => {\n loadOrders();\n refreshing.value = false;\n uni.showToast({\n title: '刷新成功',\n icon: 'success'\n });\n }, 1000);\n };\n // 上拉加载更多\n const loadMore = () => {\n if (loadingMore.value || !hasMore.value)\n return null;\n // 暂未实现分页,直接返回\n hasMore.value = false;\n };\n // 订单操作函数\n const cancelOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(orderId).then((success) => {\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '订单已取消',\n icon: 'success'\n });\n loadOrders();\n }\n else {\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n }\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n const payOrder = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId}`\n });\n };\n const remindShipping = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n // 基础提醒\n uni.showLoading({ title: '正在提醒...' });\n try {\n // 查找订单中的商家ID\n const order = UTS.arrayFind(orders.value, o => { return o.id === orderId; });\n if (order != null) {\n const merchantId = order.merchant_id;\n const orderNo = order.order_no;\n if (merchantId != '') {\n // 向商家发送自动催单消息\n const message = `你好,我的订单[${orderNo}]还没有发货,请尽快安排,谢谢。`;\n const success = yield supabaseService.sendChatMessage(message, merchantId);\n if (success) {\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:826', '催单消息发送成功');\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/orders.uvue:828', '催单消息发送失败,可能是由于网络原因');\n }\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:833', '提醒发货异常:', e);\n }\n finally {\n uni.hideLoading();\n }\n uni.showToast({\n title: '已提醒卖家发货',\n icon: 'success'\n });\n }); };\n const viewLogistics = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n };\n // goReview 必须在 doConfirmReceipt 之前定义,因为 doConfirmReceipt 会调用它\n const goReview = (order) => {\n const productIds = order.products.map((p) => {\n return p.id;\n }).join(',');\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${orderId}&productIds=${productIds}`\n });\n };\n const doConfirmReceipt = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '处理中...' });\n try {\n const result = yield supabaseService.confirmReceipt(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({\n title: '收货成功',\n icon: 'success'\n });\n // 更新 allOrdersList 中的订单状态\n const allIndex = allOrdersList.value.findIndex((o) => { return o.id === orderId; });\n if (allIndex !== -1) {\n allOrdersList.value[allIndex].status = 4;\n allOrdersList.value = [...allOrdersList.value];\n }\n // 更新标签计数\n updateTabsCounts(allOrdersList.value);\n // 重新应用当前标签筛选\n filterOrdersByTab();\n // 跳转到评价页面\n setTimeout(() => {\n const order = UTS.arrayFind(allOrdersList.value, (o) => { return o.id === orderId; });\n if (order != null) {\n goReview(order);\n }\n }, 1000);\n }\n else {\n uni.showToast({\n title: (_a = result.error) !== null && _a !== void 0 ? _a : '确认收货失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.showToast({\n title: '系统异常',\n icon: 'none'\n });\n }\n }); };\n const confirmReceipt = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '请确认您已收到商品,且商品无误',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceipt(orderId);\n }\n }\n }));\n };\n const repurchase = (order) => {\n const products = order.products;\n if (products.length === 0) {\n uni.showToast({\n title: '订单无商品',\n icon: 'none'\n });\n return null;\n }\n uni.showLoading({ title: '处理中...' });\n let completed = 0;\n const total = products.length;\n let successCount = 0;\n for (let i = 0; i < products.length; i++) {\n const product = products[i];\n const productId = product.id;\n const merchantId = order.merchant_id;\n if (productId != null && productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId !== null && merchantId !== void 0 ? merchantId : '').then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n }\n };\n const viewOrderDetail = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?id=${orderId}`\n });\n };\n const onApplyRefund = (order) => {\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${orderId}`\n });\n };\n const viewRefundProgress = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n };\n const doCancelRefund = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '处理中...' });\n const result = yield supabaseService.cancelRefund(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({ title: '已取消退款', icon: 'success' });\n loadOrders();\n }\n else {\n uni.showToast({ title: result.message, icon: 'none' });\n }\n }); };\n // 取消退款申请\n const cancelRefund = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消退款申请吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelRefund(orderId);\n }\n }\n }));\n };\n // 处理订单操作\n const handleOrderAction = (order, action) => {\n if (action === '取消订单') {\n cancelOrder(order.id);\n }\n else if (action === '联系卖家') {\n contactSeller(order);\n }\n else if (action === '提醒发货') {\n remindShipping(order.id);\n }\n else if (action === '申请退款' || action === '申请售后') {\n onApplyRefund(order);\n }\n else if (action === '查看物流') {\n viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n confirmReceipt(order.id);\n }\n else if (action === '再次购买') {\n repurchase(order);\n }\n else if (action === '删除订单') {\n deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n viewRefundProgress(order.id);\n }\n else if (action === '取消退款') {\n cancelRefund(order.id);\n }\n };\n // 显示订单操作菜单\n const showOrderMenu = (order) => {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['取消退款', '退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n handleOrderAction(order, action);\n }\n });\n };\n // 导航函数\n const navigateToSearch = () => {\n uni.navigateTo({ url: '/pages/mall/consumer/search' });\n };\n const navigateToProduct = (product) => {\n const productId = product.id;\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${productId}` });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n const shareForFree = (order) => { return __awaiter(this, void 0, void 0, function* () {\n if (order.products.length === 0) {\n uni.showToast({ title: '没有可分享的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n const firstProduct = order.products[0];\n try {\n uni.showLoading({ title: '创建分享...' });\n const result = yield supabaseService.createShareRecord(firstProduct.id, order.id, '', firstProduct.name, firstProduct.image, firstProduct.price);\n uni.hideLoading();\n const shareIdRaw = result.get('id');\n const shareCodeRaw = result.get('share_code');\n if (shareIdRaw != null && shareCodeRaw != null) {\n const shareId = shareIdRaw;\n const shareCode = shareCodeRaw;\n uni.showModal(new UTSJSONObject({\n title: '分享成功',\n content: `您的分享码: ${shareCode}\\n分享给好友,当有4人购买后即可免单!`,\n confirmText: '查看详情',\n success: (res) => {\n if (res.confirm) {\n uni.navigateTo({ url: `/pages/mall/consumer/share/detail?id=${shareId}` });\n }\n }\n }));\n }\n else {\n uni.showToast({ title: '分享创建失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:1153', '[shareForFree] 创建分享失败:', e);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: searchKeyword.value,\n b: _o(onSearchInput),\n c: _o(onSearchConfirm),\n d: searchKeyword.value\n }, searchKeyword.value ? {\n e: _o(clearSearch)\n } : {}, {\n f: statusBarHeight.value + 'px',\n g: activeTab.value === 'all'\n }, activeTab.value === 'all' ? {} : {}, {\n h: _n({\n active: activeTab.value === 'all'\n }),\n i: _o($event => { return switchTab('all'); }),\n j: _f(orderTabsMobile.value, (tab, k0, i0) => {\n return _e({\n a: _t(tab.name),\n b: tab.count > 0\n }, tab.count > 0 ? {\n c: _t(tab.count)\n } : {}, {\n d: activeTab.value === tab.id\n }, activeTab.value === tab.id ? {} : {}, {\n e: tab.id,\n f: _n({\n active: activeTab.value === tab.id\n }),\n g: _o($event => { return switchTab(tab.id); }, tab.id)\n });\n }),\n k: !loading.value && orders.value.length === 0\n }, !loading.value && orders.value.length === 0 ? {\n l: _o(goShopping)\n } : {\n m: _f(orders.value, (order, k0, i0) => {\n return _e({\n a: _t(order.shop_name != null && order.shop_name != '' ? order.shop_name : '自营店铺'),\n b: _t(getStatusText(order.status)),\n c: _n(getStatusClass(order.status)),\n d: _o($event => { return showOrderMenu(order); }, order.id),\n e: _f(order.products, (product, k1, i1) => {\n return {\n a: product.image,\n b: _o($event => { return navigateToProduct(product); }, product.id),\n c: _t(product.name),\n d: _t(product.spec),\n e: _t(product.price),\n f: _t(product.quantity),\n g: product.id\n };\n }),\n f: _t(formatDate(order.create_time)),\n g: _t(order.products.length),\n h: _t(order.total_amount),\n i: order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id)\n }, order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id) ? {\n j: _t(getRequiredCount(order.merchant_id)),\n k: _o($event => { return shareForFree(order); }, order.id)\n } : {}, {\n l: order.status === 1\n }, order.status === 1 ? {\n m: _o($event => { return cancelOrder(order.id); }, order.id),\n n: _o($event => { return payOrder(order.id); }, order.id)\n } : {}, {\n o: order.status === 2\n }, order.status === 2 ? {\n p: _o($event => { return remindShipping(order.id); }, order.id),\n q: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n r: order.status === 3\n }, order.status === 3 ? {\n s: _o($event => { return viewLogistics(order.id); }, order.id),\n t: _o($event => { return confirmReceipt(order.id); }, order.id),\n v: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n w: order.status === 4\n }, order.status === 4 ? {\n x: _o($event => { return goReview(order); }, order.id),\n y: _o($event => { return onApplyRefund(order); }, order.id),\n z: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n A: order.status === 5\n }, order.status === 5 ? {\n B: _o($event => { return viewOrderDetail(order.id); }, order.id)\n } : {}, {\n C: order.status === 6\n }, order.status === 6 ? {\n D: _o($event => { return viewOrderDetail(order.id); }, order.id),\n E: _o($event => { return cancelRefund(order.id); }, order.id),\n F: _o($event => { return viewRefundProgress(order.id); }, order.id)\n } : {}, {\n G: order.status === 7\n }, order.status === 7 ? {\n H: _o($event => { return viewOrderDetail(order.id); }, order.id),\n I: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n J: _o(() => { }, order.id),\n K: order.id,\n L: _o($event => { return viewOrderDetail(order.id); }, order.id)\n });\n })\n }, {\n n: loadingMore.value\n }, loadingMore.value ? {} : {}, {\n o: !hasMore.value && orders.value.length > 0\n }, !hasMore.value && orders.value.length > 0 ? {} : {}, {\n p: refreshing.value,\n q: _o(onRefresh),\n r: _o(loadMore),\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/orders.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.getSystemInfoSync","uni.navigateTo","uni.showLoading","uni.hideLoading","uni.showModal","uni.showActionSheet","uni.switchTab"],"map":"{\"version\":3,\"file\":\"orders.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"orders.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e0d6dc961a998606f9a0e444aef275cc1517830 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e0d6dc961a998606f9a0e444aef275cc1517830 new file mode 100644 index 00000000..0a3d6f2b --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e0d6dc961a998606f9a0e444aef275cc1517830 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass MemberLevel extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: Number, optional: false },\n name: { type: String, optional: false },\n min_amount: { type: Number, optional: false },\n discount: { type: Number, optional: false },\n description: { type: String, optional: true }\n };\n },\n name: \"MemberLevel\"\n };\n }\n constructor(options, metadata = MemberLevel.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.min_amount = this.__props__.min_amount;\n this.discount = this.__props__.discount;\n this.description = this.__props__.description;\n delete this.__props__;\n }\n}\nclass MemberInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n member_level: { type: Number, optional: false },\n level_name: { type: String, optional: false },\n discount: { type: Number, optional: false },\n total_spent: { type: Number, optional: false },\n next_level: { type: MemberLevel, optional: true },\n progress_percent: { type: Number, optional: false },\n manual_level: { type: Boolean, optional: false }\n };\n },\n name: \"MemberInfo\"\n };\n }\n constructor(options, metadata = MemberInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.member_level = this.__props__.member_level;\n this.level_name = this.__props__.level_name;\n this.discount = this.__props__.discount;\n this.total_spent = this.__props__.total_spent;\n this.next_level = this.__props__.next_level;\n this.progress_percent = this.__props__.progress_percent;\n this.manual_level = this.__props__.manual_level;\n delete this.__props__;\n }\n}\nclass LevelLog extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n old_level: { type: Number, optional: false },\n new_level: { type: Number, optional: false },\n reason: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"LevelLog\"\n };\n }\n constructor(options, metadata = LevelLog.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.old_level = this.__props__.old_level;\n this.new_level = this.__props__.new_level;\n this.reason = this.__props__.reason;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const memberInfo = ref(new MemberInfo({\n member_level: 0,\n level_name: '普通会员',\n discount: 1.0,\n total_spent: 0,\n next_level: null,\n progress_percent: 0,\n manual_level: false\n }));\n const levels = ref([]);\n const logs = ref([]);\n const logsLoading = ref(false);\n const loadMemberInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n try {\n const result = yield supabaseService.getUserMemberInfo();\n const info = new MemberInfo({\n member_level: (_a = result.getNumber('member_level')) !== null && _a !== void 0 ? _a : 0,\n level_name: (_b = result.getString('level_name')) !== null && _b !== void 0 ? _b : '普通会员',\n discount: (_c = result.getNumber('discount')) !== null && _c !== void 0 ? _c : 1.0,\n total_spent: (_d = result.getNumber('total_spent')) !== null && _d !== void 0 ? _d : 0,\n next_level: null,\n progress_percent: (_g = result.getNumber('progress_percent')) !== null && _g !== void 0 ? _g : 0,\n manual_level: (_h = result.getBoolean('manual_level')) !== null && _h !== void 0 ? _h : false\n });\n const nextLevelRaw = result.get('next_level');\n if (nextLevelRaw != null) {\n let nextLevelObj = null;\n if (UTS.isInstanceOf(nextLevelRaw, UTSJSONObject)) {\n nextLevelObj = nextLevelRaw;\n }\n else {\n nextLevelObj = UTS.JSON.parse(UTS.JSON.stringify(nextLevelRaw));\n }\n const nextLevel = new MemberLevel({\n id: (_j = nextLevelObj.getNumber('id')) !== null && _j !== void 0 ? _j : 0,\n name: (_k = nextLevelObj.getString('name')) !== null && _k !== void 0 ? _k : '',\n min_amount: (_l = nextLevelObj.getNumber('min_amount')) !== null && _l !== void 0 ? _l : 0,\n discount: 1.0,\n description: null\n });\n info.next_level = nextLevel;\n }\n memberInfo.value = info;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:186', '加载会员信息失败:', e);\n }\n }); };\n const loadLevels = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n try {\n const result = yield supabaseService.getMemberLevels();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n parsed.push(new MemberLevel({\n id: (_a = itemObj.getNumber('id')) !== null && _a !== void 0 ? _a : 0,\n name: (_b = itemObj.getString('name')) !== null && _b !== void 0 ? _b : '',\n min_amount: (_c = itemObj.getNumber('min_amount')) !== null && _c !== void 0 ? _c : 0,\n discount: (_d = itemObj.getNumber('discount')) !== null && _d !== void 0 ? _d : 1.0,\n description: itemObj.getString('description')\n }));\n }\n levels.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:215', '加载会员等级失败:', e);\n }\n }); };\n const loadLogs = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n logsLoading.value = true;\n try {\n const result = yield supabaseService.getMemberLevelLogs();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n parsed.push(new LevelLog({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n old_level: (_b = itemObj.getNumber('old_level')) !== null && _b !== void 0 ? _b : 0,\n new_level: (_c = itemObj.getNumber('new_level')) !== null && _c !== void 0 ? _c : 0,\n reason: itemObj.getString('reason'),\n created_at: (_d = itemObj.getString('created_at')) !== null && _d !== void 0 ? _d : ''\n }));\n }\n logs.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/member/index.uvue:245', '加载变更记录失败:', e);\n }\n finally {\n logsLoading.value = false;\n }\n }); };\n const getDiscountText = (discount) => {\n if (discount >= 1)\n return '无折扣';\n return Math.round(discount * 100) / 10 + '折';\n };\n const getNextLevelName = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.name;\n }\n return '';\n };\n const getNextLevelMinAmount = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.min_amount;\n }\n return 0;\n };\n const getRemainingAmount = () => {\n if (memberInfo.value.next_level != null) {\n return memberInfo.value.next_level.min_amount - memberInfo.value.total_spent;\n }\n return 0;\n };\n const getLevelName = (level) => {\n for (let i = 0; i < levels.value.length; i++) {\n if (levels.value[i].id === level) {\n return levels.value[i].name;\n }\n }\n return '普通会员';\n };\n const formatDate = (dateStr) => {\n if (dateStr === '')\n return '';\n const date = new Date(dateStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n };\n onMounted(() => {\n loadMemberInfo();\n loadLevels();\n loadLogs();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(memberInfo.value.level_name),\n b: _n('level-' + memberInfo.value.member_level),\n c: _t(getDiscountText(memberInfo.value.discount)),\n d: memberInfo.value.next_level != null\n }, memberInfo.value.next_level != null ? {\n e: _t(getNextLevelName()),\n f: _t(getRemainingAmount()),\n g: memberInfo.value.progress_percent + '%',\n h: _t(memberInfo.value.total_spent),\n i: _t(getNextLevelMinAmount())\n } : {}, {\n j: _f(levels.value, (level, k0, i0) => {\n return _e({\n a: _t(level.name.charAt(0)),\n b: _n('level-bg-' + level.id),\n c: _t(level.name),\n d: _t(level.description != null && level.description != '' ? level.description : '累计消费' + level.min_amount + '元'),\n e: _t(getDiscountText(level.discount)),\n f: level.id === memberInfo.value.member_level\n }, level.id === memberInfo.value.member_level ? {} : {}, {\n g: level.id,\n h: level.id === memberInfo.value.member_level ? 1 : ''\n });\n }),\n k: logsLoading.value\n }, logsLoading.value ? {} : logs.value.length === 0 ? {} : {\n m: _f(logs.value, (log, k0, i0) => {\n return {\n a: _t(getLevelName(log.old_level)),\n b: _t(getLevelName(log.new_level)),\n c: _t(log.reason != null && log.reason != '' ? log.reason : '系统升级'),\n d: _t(formatDate(log.created_at)),\n e: log.id\n };\n })\n }, {\n l: logs.value.length === 0,\n n: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/member/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31b17580666f0e304a77af43a083c37333fa6369 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31b17580666f0e304a77af43a083c37333fa6369 deleted file mode 100644 index 9aaf8dba..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31b17580666f0e304a77af43a083c37333fa6369 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass MyReviewItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: false },\n rating: { type: Number, optional: false },\n content: { type: String, optional: false },\n images: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },\n append_content: { type: String, optional: true },\n can_append: { type: Boolean, optional: false },\n can_edit: { type: Boolean, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"MyReviewItem\"\n };\n }\n constructor(options, metadata = MyReviewItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.rating = this.__props__.rating;\n this.content = this.__props__.content;\n this.images = this.__props__.images;\n this.append_content = this.__props__.append_content;\n this.can_append = this.__props__.can_append;\n this.can_edit = this.__props__.can_edit;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass PendingItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: false },\n order_time: { type: String, optional: false }\n };\n },\n name: \"PendingItem\"\n };\n }\n constructor(options, metadata = PendingItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_id = this.__props__.order_id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.order_time = this.__props__.order_time;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'my-reviews',\n setup(__props) {\n const activeTab = ref('published');\n const reviews = ref([]);\n const pendingItems = ref([]);\n const loading = ref(true);\n const showAppendModal = ref(false);\n const appendContent = ref('');\n const selectedReview = ref(null);\n const loadReviews = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n loading.value = true;\n try {\n const result = yield supabaseService.getMyReviews();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let reviewObj;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n reviewObj = item;\n }\n else {\n reviewObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n let images = [];\n const imagesRaw = reviewObj.get('images');\n if (imagesRaw != null && typeof imagesRaw === 'string') {\n try {\n const parsedImages = UTS.JSON.parse(imagesRaw);\n if (Array.isArray(parsedImages)) {\n images = parsedImages;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:192', '解析图片失败:', e);\n }\n }\n const review = new MyReviewItem({\n id: (_a = reviewObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n product_id: (_b = reviewObj.getString('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = reviewObj.getString('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: (_d = reviewObj.getString('product_image')) !== null && _d !== void 0 ? _d : '',\n rating: (_g = reviewObj.getNumber('rating')) !== null && _g !== void 0 ? _g : 5,\n content: (_h = reviewObj.getString('content')) !== null && _h !== void 0 ? _h : '',\n images: images,\n append_content: reviewObj.getString('append_content'),\n can_append: (_j = reviewObj.getBoolean('can_append')) !== null && _j !== void 0 ? _j : false,\n can_edit: (_k = reviewObj.getBoolean('can_edit')) !== null && _k !== void 0 ? _k : false,\n created_at: (_l = reviewObj.getString('created_at')) !== null && _l !== void 0 ? _l : ''\n });\n parsed.push(review);\n }\n reviews.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:214', '加载评价失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadPendingItems = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g;\n loading.value = true;\n try {\n const orders = yield supabaseService.getOrders('completed');\n const pending = [];\n for (let i = 0; i < orders.length; i++) {\n const order = orders[i];\n let orderObj;\n if (UTS.isInstanceOf(order, UTSJSONObject)) {\n orderObj = order;\n }\n else {\n orderObj = UTS.JSON.parse(UTS.JSON.stringify(order));\n }\n const orderId = (_a = orderObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const itemsRaw = orderObj.get('items');\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n for (let j = 0; j < items.length; j++) {\n const orderItem = items[j];\n let itemObj;\n if (UTS.isInstanceOf(orderItem, UTSJSONObject)) {\n itemObj = orderItem;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(orderItem));\n }\n pending.push(new PendingItem({\n order_id: orderId,\n product_id: (_b = itemObj.getString('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = itemObj.getString('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: (_d = itemObj.getString('product_image')) !== null && _d !== void 0 ? _d : '',\n order_time: (_g = orderObj.getString('created_at')) !== null && _g !== void 0 ? _g : ''\n }));\n }\n }\n }\n pendingItems.value = pending;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:262', '加载待评价商品失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const switchTab = (tab) => {\n activeTab.value = tab;\n if (tab === 'published' && reviews.value.length === 0) {\n loadReviews();\n }\n else if (tab === 'pending' && pendingItems.value.length === 0) {\n loadPendingItems();\n }\n };\n const goToProduct = (productId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${productId}`\n });\n };\n const goToReview = (item) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/review?order_id=${item.order_id}`\n });\n };\n const showAppendPopup = (review) => {\n selectedReview.value = review;\n appendContent.value = '';\n showAppendModal.value = true;\n };\n const closeAppendPopup = () => {\n showAppendModal.value = false;\n selectedReview.value = null;\n appendContent.value = '';\n };\n const submitAppend = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedReview.value == null || appendContent.value.trim() === '') {\n uni.showToast({ title: '请输入评价内容', icon: 'none' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '提交中...' });\n try {\n const success = yield supabaseService.appendReview(selectedReview.value.id, appendContent.value.trim(), []);\n if (success) {\n selectedReview.value.append_content = appendContent.value.trim();\n selectedReview.value.can_append = false;\n closeAppendPopup();\n uni.showToast({ title: '追加成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '追加失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:325', '追加评价失败:', e);\n uni.showToast({ title: '追加失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n const confirmDelete = (review) => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要删除这条评价吗?',\n success: (res) => {\n if (res.confirm) {\n doDelete(review);\n }\n }\n }));\n };\n const doDelete = (review) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '删除中...' });\n try {\n const success = yield supabaseService.deleteReview(review.id);\n if (success) {\n const index = reviews.value.indexOf(review);\n if (index > -1) {\n reviews.value.splice(index, 1);\n }\n uni.showToast({ title: '删除成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '删除失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/my-reviews.uvue:359', '删除评价失败:', e);\n uni.showToast({ title: '删除失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n const previewImage = (images, index) => {\n uni.previewImage({\n urls: images,\n current: index\n });\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n };\n onMounted(() => {\n loadReviews();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: activeTab.value === 'published' ? 1 : '',\n b: _o($event => { return switchTab('published'); }),\n c: activeTab.value === 'pending' ? 1 : '',\n d: _o($event => { return switchTab('pending'); }),\n e: activeTab.value === 'published'\n }, activeTab.value === 'published' ? {\n f: _f(reviews.value, (review, k0, i0) => {\n return _e({\n a: review.product_image || defaultImage,\n b: _t(review.product_name),\n c: _f(5, (star, k1, i1) => {\n return {\n a: star,\n b: star <= review.rating ? 1 : ''\n };\n }),\n d: _t(formatTime(review.created_at)),\n e: _o($event => { return goToProduct(review.product_id); }, review.id),\n f: _t(review.content),\n g: review.images.length > 0\n }, review.images.length > 0 ? {\n h: _f(review.images.slice(0, 4), (img, idx, i1) => {\n return {\n a: idx,\n b: img,\n c: _o($event => { return previewImage(review.images, idx); }, idx)\n };\n })\n } : {}, {\n i: review.append_content\n }, review.append_content ? {\n j: _t(review.append_content)\n } : {}, {\n k: review.can_append\n }, review.can_append ? {\n l: _o($event => { return showAppendPopup(review); }, review.id)\n } : {}, {\n m: _o($event => { return confirmDelete(review); }, review.id),\n n: review.id\n });\n })\n } : {}, {\n g: activeTab.value === 'pending'\n }, activeTab.value === 'pending' ? {\n h: _f(pendingItems.value, (item, k0, i0) => {\n return {\n a: item.product_image || defaultImage,\n b: _t(item.product_name),\n c: _t(formatTime(item.order_time)),\n d: _o($event => { return goToReview(item); }, item.order_id),\n e: item.order_id\n };\n })\n } : {}, {\n i: !loading.value && (activeTab.value === 'published' && reviews.value.length === 0 || activeTab.value === 'pending' && pendingItems.value.length === 0)\n }, !loading.value && (activeTab.value === 'published' && reviews.value.length === 0 || activeTab.value === 'pending' && pendingItems.value.length === 0) ? {\n j: _t(activeTab.value === 'published' ? '暂无评价记录' : '暂无待评价商品')\n } : {}, {\n k: loading.value\n }, loading.value ? {} : {}, {\n l: showAppendModal.value\n }, showAppendModal.value ? {\n m: _o(closeAppendPopup),\n n: appendContent.value,\n o: _o($event => { return appendContent.value = $event.detail.value; }),\n p: _o(closeAppendPopup),\n q: _o(submitAppend),\n r: _o(() => { }),\n s: _o(closeAppendPopup)\n } : {}, {\n t: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/my-reviews.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.showLoading","uni.hideLoading","uni.showModal","uni.previewImage"],"map":"{\"version\":3,\"file\":\"my-reviews.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"my-reviews.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31f29e9d0fe8afe4d8494256fd3556498e2e78f9 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31f29e9d0fe8afe4d8494256fd3556498e2e78f9 new file mode 100644 index 00000000..ac657254 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31f29e9d0fe8afe4d8494256fd3556498e2e78f9 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BalanceRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n type: { type: String, optional: false },\n amount: { type: Number, optional: false },\n balance_before: { type: Number, optional: false },\n balance_after: { type: Number, optional: false },\n description: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"BalanceRecord\"\n };\n }\n constructor(options, metadata = BalanceRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.type = this.__props__.type;\n this.amount = this.__props__.amount;\n this.balance_before = this.__props__.balance_before;\n this.balance_after = this.__props__.balance_after;\n this.description = this.__props__.description;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const balance = ref(0);\n const totalEarned = ref(0);\n const totalWithdrawn = ref(0);\n const records = ref([]);\n const loading = ref(true);\n const loadBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n const result = yield supabaseService.getUserBalance();\n balance.value = (_a = result.getNumber('balance')) !== null && _a !== void 0 ? _a : 0;\n totalEarned.value = (_b = result.getNumber('total_earned')) !== null && _b !== void 0 ? _b : 0;\n totalWithdrawn.value = (_c = result.getNumber('total_withdrawn')) !== null && _c !== void 0 ? _c : 0;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/balance/index.uvue:90', '加载余额失败:', e);\n }\n }); };\n const loadRecords = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n loading.value = true;\n try {\n const result = yield supabaseService.getBalanceRecords(1, 50);\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let id = '';\n let type = '';\n let amount = 0;\n let balanceBefore = 0;\n let balanceAfter = 0;\n let description = null;\n let createdAt = '';\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n id = (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n type = (_b = itemObj.getString('type')) !== null && _b !== void 0 ? _b : '';\n amount = (_c = itemObj.getNumber('amount')) !== null && _c !== void 0 ? _c : 0;\n balanceBefore = (_d = itemObj.getNumber('balance_before')) !== null && _d !== void 0 ? _d : 0;\n balanceAfter = (_g = itemObj.getNumber('balance_after')) !== null && _g !== void 0 ? _g : 0;\n description = itemObj.getString('description');\n createdAt = (_h = itemObj.getString('created_at')) !== null && _h !== void 0 ? _h : '';\n parsed.push(new BalanceRecord({\n id,\n type,\n amount,\n balance_before: balanceBefore,\n balance_after: balanceAfter,\n description,\n created_at: createdAt\n }));\n }\n records.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/balance/index.uvue:139', '加载余额记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n yield Promise.all([\n loadBalance(),\n loadRecords()\n ]);\n }); };\n const getTypeText = (type) => {\n if (type === 'free_order')\n return '免单奖励';\n if (type === 'rebate')\n return '返利';\n if (type === 'withdraw')\n return '提现';\n if (type === 'clear')\n return '余额清零';\n if (type === 'manual')\n return '手动调整';\n return '余额变动';\n };\n const formatTime = (timeStr) => {\n if (timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n const showWithdrawTips = () => {\n uni.showModal(new UTSJSONObject({\n title: '提现说明',\n content: '请添加商家微信进行提现处理,商家确认后将通过微信转账给您。',\n showCancel: false,\n confirmText: '我知道了'\n }));\n };\n onMounted(() => {\n loadData();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(balance.value),\n b: _t(totalEarned.value),\n c: _t(totalWithdrawn.value),\n d: loading.value\n }, loading.value ? {} : records.value.length === 0 ? {} : {\n f: _f(records.value, (record, k0, i0) => {\n return {\n a: _t(getTypeText(record.type)),\n b: _t(formatTime(record.created_at)),\n c: _t(record.amount > 0 ? '+' : ''),\n d: _t(record.amount),\n e: _n(record.amount > 0 ? 'positive' : 'negative'),\n f: _t(record.balance_after),\n g: record.id\n };\n })\n }, {\n e: records.value.length === 0,\n g: _o(showWithdrawTips),\n h: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/balance/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showModal"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/38b25f63a563f23e4b7325ebaef7a63951dd11cb b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/38b25f63a563f23e4b7325ebaef7a63951dd11cb new file mode 100644 index 00000000..6bd9fed2 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/38b25f63a563f23e4b7325ebaef7a63951dd11cb @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, gei as _gei, sei as _sei } from \"vue\";\nimport _imports_0 from '/static/user/phone_1.png';\nimport _imports_1 from '/static/user/code_1.png';\nimport { ref } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { ensureUserProfile } from \"@/utils/sapi\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'register',\n setup(__props) {\n const email = ref('');\n const password = ref('');\n const confirmPassword = ref('');\n const protocol = ref(false);\n const inAnimation = ref(false);\n const isLoading = ref(false);\n const logoUrl = ref('/static/logo.png');\n const handleProtocolChange = (e) => {\n protocol.value = protocol.value == false;\n };\n const validateEmail = () => {\n if (email.value.trim() == '') {\n uni.showToast({\n title: '请填写邮箱',\n icon: 'none'\n });\n return false;\n }\n const atIndex = email.value.indexOf('@');\n const dotIndex = email.value.lastIndexOf('.');\n if (atIndex == -1 || dotIndex == -1 || atIndex > dotIndex) {\n uni.showToast({\n title: '请输入正确的邮箱',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validatePassword = () => {\n if (password.value.trim() == '') {\n uni.showToast({\n title: '请填写密码',\n icon: 'none'\n });\n return false;\n }\n if (password.value.length < 6) {\n uni.showToast({\n title: '密码长度不能少于6位',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validateConfirmPassword = () => {\n if (confirmPassword.value.trim() == '') {\n uni.showToast({\n title: '请确认密码',\n icon: 'none'\n });\n return false;\n }\n if (confirmPassword.value != password.value) {\n uni.showToast({\n title: '两次输入的密码不一致',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const handleRegister = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (protocol.value == false) {\n inAnimation.value = true;\n uni.showToast({\n title: '请先阅读并同意协议',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (validateEmail() == false) {\n return Promise.resolve(null);\n }\n if (validatePassword() == false) {\n return Promise.resolve(null);\n }\n if (validateConfirmPassword() == false) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n // 在注册时传递 user_role 元数据,以便数据库触发器识别\n const options = new UTSJSONObject();\n const metaData = new UTSJSONObject();\n metaData.set('user_role', 'consumer');\n options.set('data', metaData);\n const result = yield supa.signUp(email.value.trim(), password.value, options);\n uni.__f__('log', 'at pages/user/register.uvue:194', '注册返回结果:', result);\n const errorCode = (_a = result === null || result === void 0 ? null : result.getString('error_code')) !== null && _a !== void 0 ? _a : '';\n const errorMsg = (_b = result === null || result === void 0 ? null : result.getString('msg')) !== null && _b !== void 0 ? _b : '';\n const code = (_c = result === null || result === void 0 ? null : result.getNumber('code')) !== null && _c !== void 0 ? _c : 0;\n uni.__f__('log', 'at pages/user/register.uvue:200', '错误代码:', errorCode, '错误信息:', errorMsg, '状态码:', code);\n if (code == 500 && (errorCode == 'unexpected_failure' || errorMsg.includes('confirmation email'))) {\n uni.__f__('warn', 'at pages/user/register.uvue:203', '邮件发送失败,但用户可能已创建');\n }\n let user = null;\n let hasSession = false;\n if (result != null) {\n const userField = result.getJSON('user');\n if (userField != null) {\n user = userField;\n uni.__f__('log', 'at pages/user/register.uvue:213', '找到 user 字段:', user.getString('id'), user.getString('email'));\n }\n else {\n const id = result.getString('id');\n if (id != null && id != '') {\n user = result;\n uni.__f__('log', 'at pages/user/register.uvue:218', 'result 本身就是 user 对象:', id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:220', '未找到 user 信息');\n }\n }\n const sessionField = result.getJSON('session');\n if (sessionField != null) {\n hasSession = true;\n uni.__f__('log', 'at pages/user/register.uvue:227', '找到 session,已自动登录');\n }\n else {\n uni.__f__('log', 'at pages/user/register.uvue:229', '未找到 session,可能需要邮箱验证');\n }\n }\n if (user == null && code != 0 && code != 200) {\n if (code == 500 && errorMsg.includes('confirmation email')) {\n throw new Error('注册失败:邮件服务配置错误');\n }\n else {\n throw new Error(errorMsg != '' ? errorMsg : '注册失败,请重试');\n }\n }\n if (user != null) {\n try {\n const profileResult = yield ensureUserProfile(user);\n if (profileResult != null) {\n uni.__f__('log', 'at pages/user/register.uvue:245', '用户资料创建成功:', profileResult.id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:247', '用户资料创建失败,但注册已成功');\n }\n }\n catch (profileError) {\n uni.__f__('error', 'at pages/user/register.uvue:250', '创建用户资料异常:', profileError);\n }\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:253', '注册成功但未获取到用户信息');\n }\n if (hasSession == false && user != null) {\n uni.__f__('log', 'at pages/user/register.uvue:257', '需要邮箱验证');\n }\n uni.showToast({\n title: '注册成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.redirectTo({\n url: '/pages/user/login'\n });\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/user/register.uvue:271', '注册错误:', err);\n let errorMessage = '注册失败,请重试';\n if (err != null) {\n const error = err;\n if (error.message != null && error.message.trim() != '') {\n errorMessage = error.message;\n if (error.message.includes('confirmation email') || error.message.includes('邮件')) {\n errorMessage = '注册可能成功,但邮件发送失败,请稍后尝试登录';\n }\n }\n }\n uni.showToast({\n title: errorMessage,\n icon: 'none',\n duration: 3000\n });\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const navigateToLogin = () => {\n uni.navigateTo({\n url: '/pages/user/login'\n });\n };\n const navigateToTerms = (type) => {\n uni.navigateTo({\n url: `/pages/user/terms?type=${type}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: logoUrl.value,\n b: _imports_0,\n c: email.value,\n d: _o($event => { return email.value = $event.detail.value; }),\n e: _imports_1,\n f: password.value,\n g: _o($event => { return password.value = $event.detail.value; }),\n h: _imports_1,\n i: confirmPassword.value,\n j: _o($event => { return confirmPassword.value = $event.detail.value; }),\n k: _o(handleRegister),\n l: _n(isLoading.value ? 'disabled' : ''),\n m: _o(navigateToLogin),\n n: protocol.value,\n o: _n(inAnimation.value ? 'trembling' : ''),\n p: _o($event => { return navigateToTerms(3); }),\n q: _o($event => { return navigateToTerms(4); }),\n r: _o(handleProtocolChange),\n s: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/register.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.__f__","uni.redirectTo","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"register.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"register.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/39e52e671c44f44fcdf4bfcd01d6c099c2e98ff5 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/39e52e671c44f44fcdf4bfcd01d6c099c2e98ff5 new file mode 100644 index 00000000..3ca2b76e --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/39e52e671c44f44fcdf4bfcd01d6c099c2e98ff5 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ShareRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_price: { type: Number, optional: false },\n share_code: { type: String, optional: false },\n required_count: { type: Number, optional: false },\n current_count: { type: Number, optional: false },\n status: { type: Number, optional: false },\n reward_amount: { type: Number, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ShareRecord\"\n };\n }\n constructor(options, metadata = ShareRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_price = this.__props__.product_price;\n this.share_code = this.__props__.share_code;\n this.required_count = this.__props__.required_count;\n this.current_count = this.__props__.current_count;\n this.status = this.__props__.status;\n this.reward_amount = this.__props__.reward_amount;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const shares = ref([]);\n const loading = ref(true);\n const showRules = ref(false);\n const totalShares = computed(() => { return shares.value.length; });\n const completedShares = computed(() => {\n let count = 0;\n for (let i = 0; i < shares.value.length; i++) {\n if (shares.value[i].status === 1)\n count++;\n }\n return count;\n });\n const totalReward = computed(() => {\n let total = 0;\n for (let i = 0; i < shares.value.length; i++) {\n if (shares.value[i].reward_amount != null) {\n total += shares.value[i].reward_amount;\n }\n }\n return total;\n });\n const loadShares = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n loading.value = true;\n try {\n const result = yield supabaseService.getMyShareRecords();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n parsed.push(new ShareRecord({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n product_id: (_b = itemObj.getString('product_id')) !== null && _b !== void 0 ? _b : '',\n product_name: (_c = itemObj.getString('product_name')) !== null && _c !== void 0 ? _c : '',\n product_image: itemObj.getString('product_image'),\n product_price: (_d = itemObj.getNumber('product_price')) !== null && _d !== void 0 ? _d : 0,\n share_code: (_g = itemObj.getString('share_code')) !== null && _g !== void 0 ? _g : '',\n required_count: (_h = itemObj.getNumber('required_count')) !== null && _h !== void 0 ? _h : 4,\n current_count: (_j = itemObj.getNumber('current_count')) !== null && _j !== void 0 ? _j : 0,\n status: (_k = itemObj.getNumber('status')) !== null && _k !== void 0 ? _k : 0,\n reward_amount: itemObj.getNumber('reward_amount'),\n created_at: (_l = itemObj.getString('created_at')) !== null && _l !== void 0 ? _l : ''\n }));\n }\n shares.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/share/index.uvue:145', '加载分享记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const toggleRules = () => {\n showRules.value = !showRules.value;\n };\n const getProgressPercent = (current, required) => {\n if (required <= 0)\n return 0;\n return Math.min(100, Math.round((current / required) * 100));\n };\n const getStatusText = (status) => {\n if (status === 0)\n return '进行中';\n if (status === 1)\n return '已免单';\n if (status === 2)\n return '已失效';\n if (status === 3)\n return '已过期';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-progress';\n if (status === 1)\n return 'status-completed';\n if (status === 2)\n return 'status-invalid';\n if (status === 3)\n return 'status-expired';\n return '';\n };\n const goToShareDetail = (shareId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/share/detail?id=${shareId}`\n });\n };\n onMounted(() => {\n loadShares();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(totalShares.value),\n b: _t(completedShares.value),\n c: _t(totalReward.value),\n d: _t(showRules.value ? '▲' : '▼'),\n e: _o(toggleRules),\n f: showRules.value\n }, showRules.value ? {} : {}, {\n g: loading.value\n }, loading.value ? {} : shares.value.length === 0 ? {} : {\n i: _f(shares.value, (share, k0, i0) => {\n return {\n a: share.product_image != null && share.product_image.length > 0 ? share.product_image : defaultImage,\n b: _t(share.product_name),\n c: getProgressPercent(share.current_count, share.required_count) + '%',\n d: _t(share.current_count),\n e: _t(share.required_count),\n f: _t(share.share_code),\n g: _t(getStatusText(share.status)),\n h: _n(getStatusClass(share.status)),\n i: share.id,\n j: _o($event => { return goToShareDetail(share.id); }, share.id)\n };\n })\n }, {\n h: shares.value.length === 0,\n j: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/share/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/433128d9de67b5d28f6038b70e1e98f53c8cd8ed b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/433128d9de67b5d28f6038b70e1e98f53c8cd8ed deleted file mode 100644 index 04e481e9..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/433128d9de67b5d28f6038b70e1e98f53c8cd8ed +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BalanceRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n type: { type: String, optional: false },\n amount: { type: Number, optional: false },\n balance_before: { type: Number, optional: false },\n balance_after: { type: Number, optional: false },\n description: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"BalanceRecord\"\n };\n }\n constructor(options, metadata = BalanceRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.type = this.__props__.type;\n this.amount = this.__props__.amount;\n this.balance_before = this.__props__.balance_before;\n this.balance_after = this.__props__.balance_after;\n this.description = this.__props__.description;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const balance = ref(0);\n const totalEarned = ref(0);\n const totalWithdrawn = ref(0);\n const records = ref([]);\n const loading = ref(true);\n const loadBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n const result = yield supabaseService.getUserBalance();\n balance.value = (_a = result.getNumber('balance')) !== null && _a !== void 0 ? _a : 0;\n totalEarned.value = (_b = result.getNumber('total_earned')) !== null && _b !== void 0 ? _b : 0;\n totalWithdrawn.value = (_c = result.getNumber('total_withdrawn')) !== null && _c !== void 0 ? _c : 0;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/balance/index.uvue:90', '加载余额失败:', e);\n }\n }); };\n const loadRecords = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n loading.value = true;\n try {\n const result = yield supabaseService.getBalanceRecords(1, 50);\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n let id = '';\n let type = '';\n let amount = 0;\n let balanceBefore = 0;\n let balanceAfter = 0;\n let description = null;\n let createdAt = '';\n if (typeof itemAny._getValue === 'function') {\n id = (_a = itemAny._getValue('id')) !== null && _a !== void 0 ? _a : '';\n type = (_b = itemAny._getValue('type')) !== null && _b !== void 0 ? _b : '';\n amount = (_c = itemAny._getValue('amount')) !== null && _c !== void 0 ? _c : 0;\n balanceBefore = (_d = itemAny._getValue('balance_before')) !== null && _d !== void 0 ? _d : 0;\n balanceAfter = (_g = itemAny._getValue('balance_after')) !== null && _g !== void 0 ? _g : 0;\n description = itemAny._getValue('description');\n createdAt = (_h = itemAny._getValue('created_at')) !== null && _h !== void 0 ? _h : '';\n }\n parsed.push(new BalanceRecord({\n id,\n type,\n amount,\n balance_before: balanceBefore,\n balance_after: balanceAfter,\n description,\n created_at: createdAt\n }));\n }\n records.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/balance/index.uvue:135', '加载余额记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n yield Promise.all([\n loadBalance(),\n loadRecords()\n ]);\n }); };\n const getTypeText = (type) => {\n if (type === 'free_order')\n return '免单奖励';\n if (type === 'rebate')\n return '返利';\n if (type === 'withdraw')\n return '提现';\n if (type === 'clear')\n return '余额清零';\n if (type === 'manual')\n return '手动调整';\n return '余额变动';\n };\n const formatTime = (timeStr) => {\n if (timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n const showWithdrawTips = () => {\n uni.showModal(new UTSJSONObject({\n title: '提现说明',\n content: '请添加商家微信进行提现处理,商家确认后将通过微信转账给您。',\n showCancel: false,\n confirmText: '我知道了'\n }));\n };\n onMounted(() => {\n loadData();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(balance.value),\n b: _t(totalEarned.value),\n c: _t(totalWithdrawn.value),\n d: loading.value\n }, loading.value ? {} : records.value.length === 0 ? {} : {\n f: _f(records.value, (record, k0, i0) => {\n return {\n a: _t(getTypeText(record.type)),\n b: _t(formatTime(record.created_at)),\n c: _t(record.amount > 0 ? '+' : ''),\n d: _t(record.amount),\n e: _n(record.amount > 0 ? 'positive' : 'negative'),\n f: _t(record.balance_after),\n g: record.id\n };\n })\n }, {\n e: records.value.length === 0,\n g: _o(showWithdrawTips),\n h: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/balance/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showModal"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/68458c06085b608dcffc388df3449f83f2876093 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/68458c06085b608dcffc388df3449f83f2876093 new file mode 100644 index 00000000..09b15753 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/68458c06085b608dcffc388df3449f83f2876093 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService, CartItem as SupabaseCartItem, Product } from \"@/utils/supabaseService\";\nclass LocalCartItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n selected: { type: Boolean, optional: false },\n productId: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchantId: { type: String, optional: false }\n };\n },\n name: \"LocalCartItem\"\n };\n }\n constructor(options, metadata = LocalCartItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n this.selected = this.__props__.selected;\n this.productId = this.__props__.productId;\n this.skuId = this.__props__.skuId;\n this.merchantId = this.__props__.merchantId;\n delete this.__props__;\n }\n}\nclass CartGroup extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n merchantId: { type: String, optional: false },\n items: { type: UTS.UTSType.withGenerics(Array, [LocalCartItem]), optional: false }\n };\n },\n name: \"CartGroup\"\n };\n }\n constructor(options, metadata = CartGroup.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.merchantId = this.__props__.merchantId;\n this.items = this.__props__.items;\n delete this.__props__;\n }\n}\nclass RecommendProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchant_id: { type: String, optional: false }\n };\n },\n name: \"RecommendProduct\"\n };\n }\n constructor(options, metadata = RecommendProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.skuId = this.__props__.skuId;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'cart',\n setup(__props) {\n const compareStrings = (a, b) => {\n uni.__f__('log', 'at pages/main/cart.uvue:206', '[compareStrings] a length:', a.length, 'b length:', b.length);\n uni.__f__('log', 'at pages/main/cart.uvue:207', '[compareStrings] a type:', typeof a, 'b type:', typeof b);\n uni.__f__('log', 'at pages/main/cart.uvue:208', '[compareStrings] a value:', UTS.JSON.stringify(a));\n uni.__f__('log', 'at pages/main/cart.uvue:209', '[compareStrings] b value:', UTS.JSON.stringify(b));\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n const aCode = a.charCodeAt(i);\n const bCode = b.charCodeAt(i);\n if (aCode != null && bCode != null && aCode !== bCode) {\n uni.__f__('log', 'at pages/main/cart.uvue:216', '[compareStrings] mismatch at index:', i, 'a:', aCode, 'b:', bCode);\n return false;\n }\n }\n return true;\n };\n const cartItems = ref([]);\n const recommendProducts = ref([]);\n const recommendPage = ref(1);\n const loading = ref(false);\n const statusBarHeight = ref(0);\n const isManageMode = ref(false);\n const updatingItems = ref(new Set()); // Track items being updated to prevent race conditions\n // 计算属性\n const cartGroups = computed(() => {\n uni.__f__('log', 'at pages/main/cart.uvue:245', '[cartGroups] 计算购物车分组, cartItems count:', cartItems.value.length);\n const groups = new Map();\n cartItems.value.forEach((item) => {\n uni.__f__('log', 'at pages/main/cart.uvue:249', '[cartGroups] item:', item.id, 'shopId:', item.shopId, 'shopName:', item.shopName);\n const shopKey = item.shopId;\n if (!groups.has(shopKey)) {\n groups.set(shopKey, new CartGroup({\n shopId: item.shopId,\n shopName: item.shopName,\n merchantId: item.merchantId,\n items: []\n }));\n }\n const group = UTS.mapGet(groups, shopKey);\n if (group != null) {\n group.items.push(item);\n }\n });\n const groupArray = [];\n groups.forEach((value) => {\n uni.__f__('log', 'at pages/main/cart.uvue:268', '[cartGroups] group:', value.shopId, 'items count:', value.items.length);\n groupArray.push(value);\n });\n return groupArray;\n });\n const allSelected = computed(() => {\n return cartItems.value.length > 0 && cartItems.value.every((item) => { return item.selected; });\n });\n const selectedCount = computed(() => {\n return cartItems.value.filter((item) => { return item.selected; }).reduce((sum, item) => { return sum + item.quantity; }, 0);\n });\n const totalPrice = computed(() => {\n return cartItems.value\n .filter((item) => { return item.selected; })\n .reduce((sum, item) => { return sum + item.price * item.quantity; }, 0)\n .toFixed(2);\n });\n // 检查店铺是否全选\n const isShopSelected = (shopId) => {\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n if (compareStrings(cartItems.value[i].shopId, shopId)) {\n shopItems.push(cartItems.value[i]);\n }\n }\n if (shopItems.length === 0)\n return false;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected)\n return false;\n }\n return true;\n };\n const toggleManageMode = () => {\n isManageMode.value = !isManageMode.value;\n };\n // 初始化页面数据\n const initPage = () => {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n };\n // 生命周期\n onMounted(() => {\n initPage();\n });\n // 提取更新列表的辅助函数以减少重复代码\n const updateRecommendList = (recommends) => {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n };\n const refreshRecommend = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 1. 模拟市面加载感,锁定按钮防止连续快速点击\n if (loading.value)\n return Promise.resolve(null);\n loading.value = true;\n uni.showLoading({\n title: '正在挑选...',\n mask: true\n });\n // 2. 模拟市面“随机性”逻辑:\n // 淘宝京东不会按顺序翻页,而是跳跃选取页码,并打乱排序规则\n const maxOffsetPages = 20; // 假设数据库中至少有 20 页热推商品\n const sorts = ['sales', 'price_asc', 'rating'];\n // 随机页码 + 随机排序 = 每次点击都有新发现\n const nextRandomPage = Math.floor(Math.random() * maxOffsetPages) + 1;\n const randomSort = sorts[Math.floor(Math.random() * sorts.length)];\n uni.__f__('log', 'at pages/main/cart.uvue:355', `[refreshRecommend] 换一批: 随机页=${nextRandomPage}, 随机排=${randomSort}`);\n const hotResp = yield supabaseService.searchProducts('', nextRandomPage, 6, randomSort);\n let recommends = hotResp.data;\n // 3. 兜底逻辑:如果随机到的页码没数据,回退到第 1 页\n if (recommends.length === 0) {\n const fallbackResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n recommends = fallbackResp.data;\n }\n // 4. 前端打乱 (Shuffle):即使是同一页数据,乱序排布也会增加“新鲜感”\n if (recommends.length > 0) {\n recommends.sort(() => { return Math.random() - 0.5; });\n updateRecommendList(recommends);\n uni.hideLoading();\n uni.showToast({\n title: '已为你换一批好物',\n icon: 'none',\n duration: 1000\n });\n }\n else {\n uni.hideLoading();\n }\n }\n catch (error) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/main/cart.uvue:382', '刷新推荐失败:', error);\n uni.showToast({ title: '加载失败,请重试', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n // 加载数据\n const loadCartData = () => { return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n // 从Supabase加载购物车数据\n const supabaseCartItems = yield supabaseService.getCartItems();\n // 转换数据格式以匹配前端界面\n const transformedItems = supabaseCartItems.map((item) => {\n var _a, _b, _c, _d, _g, _h, _j, _k;\n // 调试日志:打印每条商品数据的关键字段\n uni.__f__('log', 'at pages/main/cart.uvue:400', `CartItem raw: id=${item.id}, shop_id=${item.shop_id}, shop_name=${item.shop_name}, name=${item.product_name}, price=${item.product_price}`);\n // 关键修复:确保shopId有值,如果后端返回null/undefined,使用'default_shop'作为分组键\n const shopId = (item.shop_id != null && item.shop_id !== '') ? item.shop_id : 'default_shop';\n const shopName = (item.shop_name != null && item.shop_name !== '') ? item.shop_name : '商城优选';\n return new LocalCartItem({\n id: item.id,\n shopId: shopId,\n shopName: shopName,\n name: (_a = item.product_name) !== null && _a !== void 0 ? _a : '未知商品',\n price: item.product_price != null ? item.product_price : 0,\n image: (_b = item.product_image) !== null && _b !== void 0 ? _b : '/static/images/default-product.png',\n spec: (_c = item.product_specification) !== null && _c !== void 0 ? _c : '标准规格',\n quantity: (_d = item.quantity) !== null && _d !== void 0 ? _d : 1,\n selected: (_g = item.selected) !== null && _g !== void 0 ? _g : false,\n productId: (_h = item.product_id) !== null && _h !== void 0 ? _h : '',\n skuId: (_j = item.sku_id) !== null && _j !== void 0 ? _j : '',\n merchantId: (_k = item.merchant_id) !== null && _k !== void 0 ? _k : ''\n });\n });\n uni.__f__('log', 'at pages/main/cart.uvue:422', 'Transformed items count:', transformedItems.length);\n cartItems.value = transformedItems;\n // 加载推荐商品(优先获取推荐位商品,如果没有则通过搜索获取热销商品)\n let recommends = yield supabaseService.getRecommendedProducts(6);\n // 如果没有设置推荐商品,则获取热销商品作为补充\n if (recommends.length === 0) {\n const hotResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n recommends = hotResp.data;\n }\n if (recommends.length > 0) {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n }\n else {\n recommendProducts.value = [];\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:451', '加载购物车数据失败:', error);\n cartItems.value = [];\n }\n finally {\n loading.value = false;\n }\n }); };\n onShow(() => {\n loadCartData();\n });\n // 商品操作 - 更新选中状态到Supabase\n const toggleSelect = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n // 乐观更新\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n const newSelected = !cartItems.value[index].selected;\n cartItems.value[index].selected = newSelected;\n cartItems.value = [...cartItems.value]; // 触发响应式更新\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemSelection(itemId, newSelected);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:474', '更新选中状态失败');\n // 恢复状态\n cartItems.value[index].selected = !newSelected;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '网络异常,请重试', icon: 'none' });\n }\n }\n }); };\n const toggleShopSelect = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/main/cart.uvue:484', '[toggleShopSelect] shopId:', shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:485', '[toggleShopSelect] shopId length:', shopId.length);\n uni.__f__('log', 'at pages/main/cart.uvue:486', '[toggleShopSelect] cartItems.value.length:', cartItems.value.length);\n // 用 for 循环替代 filter,避免安卓端 UTS filter 的问题\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const itemShopId = item.shopId;\n // 安卓端字符串比较问题:使用 localeCompare 或逐字符比较\n const isMatch = compareStrings(itemShopId, shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:495', '[toggleShopSelect] checking item:', item.id, 'item.shopId:', itemShopId, 'match:', isMatch);\n if (isMatch) {\n shopItems.push(item);\n }\n }\n uni.__f__('log', 'at pages/main/cart.uvue:500', '[toggleShopSelect] shopItems count:', shopItems.length);\n if (shopItems.length === 0)\n return Promise.resolve(null);\n // 用 for 循环替代 every\n let allSelected = true;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected) {\n allSelected = false;\n break;\n }\n }\n const newState = !allSelected;\n uni.__f__('log', 'at pages/main/cart.uvue:513', '[toggleShopSelect] allSelected:', allSelected, 'newState:', newState);\n const shopItemIds = [];\n for (let i = 0; i < shopItems.length; i++) {\n shopItemIds.push(shopItems[i].id);\n }\n uni.__f__('log', 'at pages/main/cart.uvue:519', '[toggleShopSelect] shopItemIds:', shopItemIds);\n // 创建全新的数组来触发响应式更新\n const newCartItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const isMatch = compareStrings(item.shopId, shopId);\n if (isMatch) {\n uni.__f__('log', 'at pages/main/cart.uvue:527', '[toggleShopSelect] updating item:', item.id, 'to selected:', newState);\n // 创建新的对象\n const newItem = new LocalCartItem({\n id: item.id,\n shopId: item.shopId,\n shopName: item.shopName,\n name: item.name,\n price: item.price,\n image: item.image,\n spec: item.spec,\n quantity: item.quantity,\n selected: newState,\n productId: item.productId,\n skuId: item.skuId,\n merchantId: item.merchantId\n });\n newCartItems.push(newItem);\n }\n else {\n newCartItems.push(item);\n }\n }\n // 替换整个数组\n cartItems.value = newCartItems;\n // 批量更新到Supabase\n const success = yield supabaseService.batchUpdateCartItemSelection(shopItemIds, newState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:555', '批量更新店铺商品选中状态失败');\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n // 重新加载数据以确保状态一致\n loadCartData();\n }\n }); };\n const toggleSelectAll = () => { return __awaiter(this, void 0, void 0, function* () {\n // 目标状态:如果当前全选,则取消全选;否则全选\n const newSelectedState = !allSelected.value;\n // 乐观更新\n const oldItems = UTS.JSON.parse(UTS.JSON.stringify(cartItems.value));\n const selectedItems = cartItems.value.map((item) => {\n item.selected = newSelectedState;\n return item;\n });\n cartItems.value = selectedItems;\n // 更新到Supabase\n const itemIds = cartItems.value.map(item => { return item.id; });\n if (itemIds.length === 0)\n return Promise.resolve(null);\n const success = yield supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:584', '批量更新选中状态失败');\n cartItems.value = oldItems;\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const increaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity + 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:608', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity - 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n }); };\n const decreaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n if (cartItems.value[index].quantity > 1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity - 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:633', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity + 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n else {\n // 数量为1时,询问是否删除\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要从购物车移除该商品吗?',\n success: (res) => {\n if (res.confirm) {\n // 从Supabase删除\n supabaseService.deleteCartItem(itemId).then((success) => {\n if (success) {\n cartItems.value.splice(index, 1);\n cartItems.value = [...cartItems.value];\n uni.showToast({\n title: '已移除',\n icon: 'none'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:656', '删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }\n }\n }); };\n // 删除商品 - 增加保存逻辑\n const deleteSelectedItems = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择要删除的商品',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: `确定要删除选中的 ${selectedCount.value} 件商品吗?`,\n success: (res) => {\n if (res.confirm) {\n // 获取选中的商品ID\n const selectedItemIds = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => { return item.id; });\n // 批量删除到Supabase\n supabaseService.batchDeleteCartItems(selectedItemIds).then((success) => {\n if (success) {\n // 从本地列表移除\n cartItems.value = cartItems.value.filter(item => { return !item.selected; });\n // 如果购物车删空了,退出管理模式\n if (cartItems.value.length === 0) {\n isManageMode.value = false;\n }\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:705', '批量删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }); };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '检查商品...' });\n try {\n const productId = product.id;\n const skuId = product.skuId;\n const merchantId = product.merchant_id;\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(productId);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + productId\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(productId, 1, skuId, merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n // 重新加载购物车数据\n loadCartData();\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:753', '添加商品到购物车失败');\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:761', '添加商品到购物车异常:', error);\n uni.hideLoading();\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }); };\n // 导航函数\n const navigateToShop = (shopId, merchantId = null) => {\n // Prevent navigation for invalid shops\n if (shopId == '' || shopId === 'default_shop' || shopId === 'unknown')\n return null;\n let url = `/pages/mall/consumer/shop-detail?id=${shopId}`;\n if (merchantId != null) {\n const mId = `${merchantId}`;\n if (mId !== '' && mId !== 'null' && mId !== 'undefined' && mId !== 'false') {\n url += `&merchantId=${mId}`;\n }\n }\n uni.navigateTo({ url });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n const navigateToProduct = (product = null) => {\n var _a, _b, _c;\n uni.__f__('log', 'at pages/main/cart.uvue:790', 'navigateToProduct', product);\n // 使用 JSON 转换确保可以作为 JSONObject 处理,兼容 LocalCartItem 类型和普通对象\n const productJson = UTS.JSON.parse(UTS.JSON.stringify(product));\n // 使用productId(如果存在)作为跳转的商品ID,否则使用id\n let productId = productJson.getString('productId');\n if (productId == null || productId == '') {\n productId = productJson.getString('id');\n }\n if (productId == null || productId == '') {\n uni.__f__('error', 'at pages/main/cart.uvue:802', '无法获取商品ID', product);\n return null;\n }\n // 传递完整的参数,确保商品详情页能正确加载\n let paramsArr = [];\n paramsArr.push('id=' + encodeURIComponent(productId));\n paramsArr.push('productId=' + encodeURIComponent(productId));\n const price = (_a = productJson.getNumber('price')) !== null && _a !== void 0 ? _a : 0;\n paramsArr.push('price=' + price);\n let originalPrice = productJson.getNumber('original_price');\n if (originalPrice == null) {\n originalPrice = productJson.getNumber('originalPrice');\n }\n if (originalPrice == null) {\n originalPrice = parseFloat((price * 1.2).toFixed(2));\n }\n paramsArr.push('originalPrice=' + originalPrice);\n const name = (_b = productJson.getString('name')) !== null && _b !== void 0 ? _b : '';\n paramsArr.push('name=' + encodeURIComponent(name));\n const image = (_c = productJson.getString('image')) !== null && _c !== void 0 ? _c : '/static/product1.jpg';\n paramsArr.push('image=' + encodeURIComponent(image));\n const url = `/pages/mall/consumer/product-detail?${paramsArr.join('&')}`;\n uni.__f__('log', 'at pages/main/cart.uvue:830', 'Navigate to:', url);\n uni.navigateTo({\n url: url\n });\n };\n const goToCheckout = () => {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择商品',\n icon: 'none'\n });\n return null;\n }\n // 获取选中的商品 (直接过滤cartItems,不依赖cartGroups,确保扁平化传递)\n const selectedItems = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => {\n var _a, _b;\n return (new UTSJSONObject({\n id: item.id,\n product_id: (_a = item.productId) !== null && _a !== void 0 ? _a : item.id,\n sku_id: (_b = item.skuId) !== null && _b !== void 0 ? _b : item.id,\n product_name: item.name,\n shop_id: item.shopId,\n shop_name: item.shopName,\n merchant_id: item.merchantId,\n product_image: item.image,\n sku_specifications: item.spec,\n price: item.price,\n quantity: item.quantity // 确保是数字\n }));\n });\n // 关键修复:将结算数据写入 Storage,确保 checkout 页面能稳定获取\n uni.setStorageSync('checkout_type', 'cart');\n // 使用纯JSON序列化防止复杂对象引发的问题\n try {\n uni.setStorageSync('checkout_items', UTS.JSON.stringify(selectedItems));\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/cart.uvue:869', '存储结算数据失败', e);\n uni.showToast({ title: '系统异常,请重试', icon: 'none' });\n return null;\n }\n // 跳转到结算页面并传递数据\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(isManageMode.value ? '✓' : '⚙️'),\n b: _t(isManageMode.value ? '完成' : '管理'),\n c: _o(toggleManageMode),\n d: statusBarHeight.value + 'px',\n e: statusBarHeight.value + 44 + 'px',\n f: !loading.value && cartItems.value.length === 0\n }, !loading.value && cartItems.value.length === 0 ? {\n g: _o(goShopping)\n } : {\n h: _f(cartGroups.value, (group, k0, i0) => {\n return _e({\n a: isShopSelected(group.shopId)\n }, isShopSelected(group.shopId) ? {} : {}, {\n b: _o($event => { return toggleShopSelect(group.shopId); }, group.shopId),\n c: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n d: _t(group.shopName),\n e: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n f: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n g: _f(group.items, (item, k1, i1) => {\n return _e({\n a: item.selected\n }, item.selected ? {} : {}, {\n b: _o($event => { return toggleSelect(item.id); }, item.id),\n c: item.image,\n d: _o($event => { return navigateToProduct(item); }, item.id),\n e: _t(item.name),\n f: _t(item.spec),\n g: _t(item.price),\n h: _o($event => { return decreaseQuantity(item.id); }, item.id),\n i: _t(item.quantity),\n j: _o($event => { return increaseQuantity(item.id); }, item.id),\n k: item.id\n });\n }),\n h: group.shopId\n });\n })\n }, {\n i: cartItems.value.length > 0\n }, cartItems.value.length > 0 ? _e({\n j: allSelected.value\n }, allSelected.value ? {} : {}, {\n k: _o(toggleSelectAll),\n l: !isManageMode.value\n }, !isManageMode.value ? {\n m: _t(totalPrice.value)\n } : {}, {\n n: !isManageMode.value\n }, !isManageMode.value ? {\n o: _t(selectedCount.value),\n p: _o(goToCheckout)\n } : {\n q: _t(selectedCount.value),\n r: _o(deleteSelectedItems)\n }) : {}, {\n s: recommendProducts.value.length > 0\n }, recommendProducts.value.length > 0 ? {\n t: _o(refreshRecommend),\n v: _f(recommendProducts.value, (product, k0, i0) => {\n return {\n a: product.image,\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return navigateToProduct(product); }, product.id)\n };\n })\n } : {}, {\n w: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/cart.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.getSystemInfoSync","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab","uni.setStorageSync"],"map":"{\"version\":3,\"file\":\"cart.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"cart.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69762dd690274dc5ca2c825973c6e95a1b720b4e b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69762dd690274dc5ca2c825973c6e95a1b720b4e deleted file mode 100644 index 465862f5..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69762dd690274dc5ca2c825973c6e95a1b720b4e +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, f as _f, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ReviewItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n user_name: { type: String, optional: false },\n user_avatar: { type: String, optional: false },\n rating: { type: Number, optional: false },\n content: { type: String, optional: false },\n images: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },\n is_anonymous: { type: Boolean, optional: false },\n like_count: { type: Number, optional: false },\n is_liked: { type: Boolean, optional: false },\n append_content: { type: String, optional: true },\n append_at: { type: String, optional: true },\n reply: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ReviewItem\"\n };\n }\n constructor(options, metadata = ReviewItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.user_name = this.__props__.user_name;\n this.user_avatar = this.__props__.user_avatar;\n this.rating = this.__props__.rating;\n this.content = this.__props__.content;\n this.images = this.__props__.images;\n this.is_anonymous = this.__props__.is_anonymous;\n this.like_count = this.__props__.like_count;\n this.is_liked = this.__props__.is_liked;\n this.append_content = this.__props__.append_content;\n this.append_at = this.__props__.append_at;\n this.reply = this.__props__.reply;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass StatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total_count: { type: Number, optional: false },\n avg_rating: { type: Number, optional: false },\n good_rate: { type: Number, optional: false },\n rating_distribution: { type: \"Unknown\", optional: false }\n };\n },\n name: \"StatsType\"\n };\n }\n constructor(options, metadata = StatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total_count = this.__props__.total_count;\n this.avg_rating = this.__props__.avg_rating;\n this.good_rate = this.__props__.good_rate;\n this.rating_distribution = this.__props__.rating_distribution;\n delete this.__props__;\n }\n}\nconst pageSize = 10;\nconst defaultAvatar = '/static/images/default-avatar.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'product-reviews',\n setup(__props) {\n const productId = ref('');\n const reviews = ref([]);\n const stats = ref(new StatsType({\n total_count: 0,\n avg_rating: 0,\n good_rate: 0,\n rating_distribution: new Map()\n }));\n const loading = ref(true);\n const hasMore = ref(true);\n const page = ref(1);\n const filterRating = ref(0);\n const hasImageFilter = ref(false);\n const getRatingCount = (rating) => {\n var _a;\n return (_a = stats.value.rating_distribution.get(rating.toString())) !== null && _a !== void 0 ? _a : 0;\n };\n const getRatingPercent = (rating) => {\n if (stats.value.total_count === 0)\n return 0;\n const count = getRatingCount(rating);\n return Math.round((count / stats.value.total_count) * 100);\n };\n const loadStats = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n try {\n const result = yield supabaseService.getReviewStats(productId.value);\n const distMap = new Map();\n const dist = result.get('rating_distribution');\n if (dist != null && UTS.isInstanceOf(dist, UTSJSONObject)) {\n for (let i = 1; i <= 5; i++) {\n distMap.set(i.toString(), (_a = dist.getNumber(i.toString())) !== null && _a !== void 0 ? _a : 0);\n }\n }\n stats.value = {\n total_count: (_b = result.getNumber('total_count')) !== null && _b !== void 0 ? _b : 0,\n avg_rating: (_c = result.getNumber('avg_rating')) !== null && _c !== void 0 ? _c : 0,\n good_rate: (_d = result.getNumber('good_rate')) !== null && _d !== void 0 ? _d : 0,\n rating_distribution: distMap\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:232', '加载统计失败:', e);\n }\n }); };\n const loadReviews = (pageNum = 1) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p;\n loading.value = true;\n try {\n const result = yield supabaseService.getProductReviews(productId.value, pageNum, pageSize, filterRating.value, hasImageFilter.value);\n const total = (_a = result.getNumber('total')) !== null && _a !== void 0 ? _a : 0;\n const data = result.get('data');\n const reviewList = [];\n if (data != null && Array.isArray(data)) {\n const rawList = data;\n for (let i = 0; i < rawList.length; i++) {\n const item = rawList[i];\n let reviewObj;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n reviewObj = item;\n }\n else {\n reviewObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n let images = [];\n const imagesRaw = reviewObj.get('images');\n if (imagesRaw != null && typeof imagesRaw === 'string') {\n try {\n const parsed = UTS.JSON.parse(imagesRaw);\n if (Array.isArray(parsed)) {\n images = parsed;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:272', '解析图片失败:', e);\n }\n }\n const review = new ReviewItem({\n id: (_b = reviewObj.getString('id')) !== null && _b !== void 0 ? _b : '',\n user_id: (_c = reviewObj.getString('user_id')) !== null && _c !== void 0 ? _c : '',\n user_name: (_d = reviewObj.getString('user_name')) !== null && _d !== void 0 ? _d : '匿名用户',\n user_avatar: (_g = reviewObj.getString('user_avatar')) !== null && _g !== void 0 ? _g : '',\n rating: (_h = reviewObj.getNumber('rating')) !== null && _h !== void 0 ? _h : 5,\n content: (_j = reviewObj.getString('content')) !== null && _j !== void 0 ? _j : '',\n images: images,\n is_anonymous: (_k = reviewObj.getBoolean('is_anonymous')) !== null && _k !== void 0 ? _k : false,\n like_count: (_l = reviewObj.getNumber('like_count')) !== null && _l !== void 0 ? _l : 0,\n is_liked: (_m = reviewObj.getBoolean('is_liked')) !== null && _m !== void 0 ? _m : false,\n append_content: reviewObj.getString('append_content'),\n append_at: reviewObj.getString('append_at'),\n reply: reviewObj.getString('reply'),\n created_at: (_p = reviewObj.getString('created_at')) !== null && _p !== void 0 ? _p : ''\n });\n reviewList.push(review);\n }\n }\n if (pageNum === 1) {\n reviews.value = reviewList;\n }\n else {\n reviews.value = [...reviews.value, ...reviewList];\n }\n hasMore.value = reviews.value.length < total;\n page.value = pageNum;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:305', '加载评价失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadMore = () => {\n if (!loading.value && hasMore.value) {\n loadReviews(page.value + 1);\n }\n };\n const setFilterRating = (rating) => {\n filterRating.value = rating;\n hasImageFilter.value = false;\n page.value = 1;\n loadReviews(1);\n };\n const toggleHasImage = () => {\n hasImageFilter.value = !hasImageFilter.value;\n filterRating.value = 0;\n page.value = 1;\n loadReviews(1);\n };\n const toggleLike = (review) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const result = yield supabaseService.toggleReviewLike(review.id);\n if (result.getBoolean('success') === true) {\n review.is_liked = (_a = result.getBoolean('is_liked')) !== null && _a !== void 0 ? _a : false;\n review.like_count = (_b = result.getNumber('like_count')) !== null && _b !== void 0 ? _b : 0;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:339', '点赞失败:', e);\n }\n }); };\n const previewImage = (images, index) => {\n uni.previewImage({\n urls: images,\n current: index\n });\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (24 * 60 * 60 * 1000));\n if (days === 0) {\n const hours = Math.floor(diff / (60 * 60 * 1000));\n if (hours === 0) {\n const minutes = Math.floor(diff / (60 * 1000));\n return minutes <= 1 ? '刚刚' : `${minutes}分钟前`;\n }\n return `${hours}小时前`;\n }\n else if (days < 7) {\n return `${days}天前`;\n }\n else {\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n }\n };\n onMounted(() => {\n const pages = getCurrentPages();\n if (pages.length > 0) {\n const currentPage = pages[pages.length - 1];\n const options = currentPage.options;\n if (options != null && options.product_id != null) {\n productId.value = options.product_id;\n loadStats();\n loadReviews(1);\n }\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: stats.value.total_count > 0\n }, stats.value.total_count > 0 ? {\n b: _t(stats.value.avg_rating),\n c: _t(stats.value.good_rate),\n d: _t(stats.value.total_count),\n e: _f(5, (i, k0, i0) => {\n return {\n a: _t(6 - i),\n b: getRatingPercent(6 - i) + '%',\n c: _t(getRatingCount(6 - i)),\n d: i\n };\n })\n } : {}, {\n f: _t(stats.value.total_count),\n g: filterRating.value === 0 ? 1 : '',\n h: _o($event => { return setFilterRating(0); }),\n i: _t(getRatingCount(5)),\n j: filterRating.value === 5 ? 1 : '',\n k: _o($event => { return setFilterRating(5); }),\n l: _t(getRatingCount(4) + getRatingCount(3)),\n m: filterRating.value === 4 ? 1 : '',\n n: _o($event => { return setFilterRating(4); }),\n o: _t(getRatingCount(2) + getRatingCount(1)),\n p: filterRating.value === 2 ? 1 : '',\n q: _o($event => { return setFilterRating(2); }),\n r: hasImageFilter.value ? 1 : '',\n s: _o(toggleHasImage),\n t: _f(reviews.value, (review, k0, i0) => {\n return _e({\n a: review.user_avatar || defaultAvatar,\n b: _t(review.user_name),\n c: _f(5, (star, k1, i1) => {\n return {\n a: star,\n b: star <= review.rating ? 1 : ''\n };\n }),\n d: _t(formatTime(review.created_at)),\n e: _t(review.content),\n f: review.images.length > 0\n }, review.images.length > 0 ? _e({\n g: _f(review.images.slice(0, 3), (img, idx, i1) => {\n return {\n a: idx,\n b: img,\n c: _o($event => { return previewImage(review.images, idx); }, idx)\n };\n }),\n h: review.images.length > 3\n }, review.images.length > 3 ? {\n i: _t(review.images.length - 3)\n } : {}) : {}, {\n j: review.append_content\n }, review.append_content ? {\n k: _t(review.append_content),\n l: _t(formatTime(review.append_at))\n } : {}, {\n m: review.reply\n }, review.reply ? {\n n: _t(review.reply)\n } : {}, {\n o: _t(review.is_liked ? '❤' : '♡'),\n p: _t(review.like_count || 0),\n q: review.is_liked ? 1 : '',\n r: _o($event => { return toggleLike(review); }, review.id),\n s: review.id\n });\n }),\n v: !loading.value && reviews.value.length === 0\n }, !loading.value && reviews.value.length === 0 ? {} : {}, {\n w: loading.value\n }, loading.value ? {} : {}, {\n x: !loading.value && hasMore.value && reviews.value.length > 0\n }, !loading.value && hasMore.value && reviews.value.length > 0 ? {\n y: _o(loadMore)\n } : {}, {\n z: !loading.value && !hasMore.value && reviews.value.length > 0\n }, !loading.value && !hasMore.value && reviews.value.length > 0 ? {} : {}, {\n A: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/product-reviews.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.previewImage"],"map":"{\"version\":3,\"file\":\"product-reviews.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-reviews.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/735a218eb1382ba59577e01b0843bfdf0cf9bcbd b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/735a218eb1382ba59577e01b0843bfdf0cf9bcbd deleted file mode 100644 index d78988eb..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/735a218eb1382ba59577e01b0843bfdf0cf9bcbd +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, gei as _gei, sei as _sei } from \"vue\";\nimport _imports_0 from '/static/user/phone_1.png';\nimport _imports_1 from '/static/user/code_1.png';\nimport { ref } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { ensureUserProfile } from \"@/utils/sapi\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'register',\n setup(__props) {\n const email = ref('');\n const password = ref('');\n const confirmPassword = ref('');\n const protocol = ref(false);\n const inAnimation = ref(false);\n const isLoading = ref(false);\n const logoUrl = ref('/static/logo.png');\n const handleProtocolChange = (e) => {\n protocol.value = protocol.value == false;\n };\n const validateEmail = () => {\n if (email.value.trim() == '') {\n uni.showToast({\n title: '请填写邮箱',\n icon: 'none'\n });\n return false;\n }\n const atIndex = email.value.indexOf('@');\n const dotIndex = email.value.lastIndexOf('.');\n if (atIndex == -1 || dotIndex == -1 || atIndex > dotIndex) {\n uni.showToast({\n title: '请输入正确的邮箱',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validatePassword = () => {\n if (password.value.trim() == '') {\n uni.showToast({\n title: '请填写密码',\n icon: 'none'\n });\n return false;\n }\n if (password.value.length < 6) {\n uni.showToast({\n title: '密码长度不能少于6位',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validateConfirmPassword = () => {\n if (confirmPassword.value.trim() == '') {\n uni.showToast({\n title: '请确认密码',\n icon: 'none'\n });\n return false;\n }\n if (confirmPassword.value != password.value) {\n uni.showToast({\n title: '两次输入的密码不一致',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const handleRegister = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (protocol.value == false) {\n inAnimation.value = true;\n uni.showToast({\n title: '请先阅读并同意协议',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (validateEmail() == false) {\n return Promise.resolve(null);\n }\n if (validatePassword() == false) {\n return Promise.resolve(null);\n }\n if (validateConfirmPassword() == false) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n const result = yield supa.signUp(email.value.trim(), password.value);\n uni.__f__('log', 'at pages/user/register.uvue:188', '注册返回结果:', result);\n const errorCode = (_a = result === null || result === void 0 ? null : result.getString('error_code')) !== null && _a !== void 0 ? _a : '';\n const errorMsg = (_b = result === null || result === void 0 ? null : result.getString('msg')) !== null && _b !== void 0 ? _b : '';\n const code = (_c = result === null || result === void 0 ? null : result.getNumber('code')) !== null && _c !== void 0 ? _c : 0;\n uni.__f__('log', 'at pages/user/register.uvue:194', '错误代码:', errorCode, '错误信息:', errorMsg, '状态码:', code);\n if (code == 500 && (errorCode == 'unexpected_failure' || errorMsg.includes('confirmation email'))) {\n uni.__f__('warn', 'at pages/user/register.uvue:197', '邮件发送失败,但用户可能已创建');\n }\n let user = null;\n let hasSession = false;\n if (result != null) {\n const userField = result.getJSON('user');\n if (userField != null) {\n user = userField;\n uni.__f__('log', 'at pages/user/register.uvue:207', '找到 user 字段:', user.getString('id'), user.getString('email'));\n }\n else {\n const id = result.getString('id');\n if (id != null && id != '') {\n user = result;\n uni.__f__('log', 'at pages/user/register.uvue:212', 'result 本身就是 user 对象:', id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:214', '未找到 user 信息');\n }\n }\n const sessionField = result.getJSON('session');\n if (sessionField != null) {\n hasSession = true;\n uni.__f__('log', 'at pages/user/register.uvue:221', '找到 session,已自动登录');\n }\n else {\n uni.__f__('log', 'at pages/user/register.uvue:223', '未找到 session,可能需要邮箱验证');\n }\n }\n if (user == null && code != 0 && code != 200) {\n if (code == 500 && errorMsg.includes('confirmation email')) {\n throw new Error('注册失败:邮件服务配置错误');\n }\n else {\n throw new Error(errorMsg != '' ? errorMsg : '注册失败,请重试');\n }\n }\n if (user != null) {\n try {\n const profileResult = yield ensureUserProfile(user);\n if (profileResult != null) {\n uni.__f__('log', 'at pages/user/register.uvue:239', '用户资料创建成功:', profileResult.id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:241', '用户资料创建失败,但注册已成功');\n }\n }\n catch (profileError) {\n uni.__f__('error', 'at pages/user/register.uvue:244', '创建用户资料异常:', profileError);\n }\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:247', '注册成功但未获取到用户信息');\n }\n if (hasSession == false && user != null) {\n uni.__f__('log', 'at pages/user/register.uvue:251', '需要邮箱验证');\n }\n uni.showToast({\n title: '注册成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.redirectTo({\n url: '/pages/user/login'\n });\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/user/register.uvue:265', '注册错误:', err);\n let errorMessage = '注册失败,请重试';\n if (err != null) {\n const error = err;\n if (error.message != null && error.message.trim() != '') {\n errorMessage = error.message;\n if (error.message.includes('confirmation email') || error.message.includes('邮件')) {\n errorMessage = '注册可能成功,但邮件发送失败,请稍后尝试登录';\n }\n }\n }\n uni.showToast({\n title: errorMessage,\n icon: 'none',\n duration: 3000\n });\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const navigateToLogin = () => {\n uni.navigateTo({\n url: '/pages/user/login'\n });\n };\n const navigateToTerms = (type) => {\n uni.navigateTo({\n url: `/pages/user/terms?type=${type}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: logoUrl.value,\n b: _imports_0,\n c: email.value,\n d: _o($event => { return email.value = $event.detail.value; }),\n e: _imports_1,\n f: password.value,\n g: _o($event => { return password.value = $event.detail.value; }),\n h: _imports_1,\n i: confirmPassword.value,\n j: _o($event => { return confirmPassword.value = $event.detail.value; }),\n k: _o(handleRegister),\n l: _n(isLoading.value ? 'disabled' : ''),\n m: _o(navigateToLogin),\n n: protocol.value,\n o: _n(inAnimation.value ? 'trembling' : ''),\n p: _o($event => { return navigateToTerms(3); }),\n q: _o($event => { return navigateToTerms(4); }),\n r: _o(handleProtocolChange),\n s: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/register.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.__f__","uni.redirectTo","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"register.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"register.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75dca90fea0853754643cbe5daf47e69f1ebde1f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75dca90fea0853754643cbe5daf47e69f1ebde1f new file mode 100644 index 00000000..ef7dbe7a --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75dca90fea0853754643cbe5daf47e69f1ebde1f @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BankCard extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n bank_name: { type: String, optional: false },\n card_number: { type: String, optional: false }\n };\n },\n name: \"BankCard\"\n };\n }\n constructor(options, metadata = BankCard.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.bank_name = this.__props__.bank_name;\n this.card_number = this.__props__.card_number;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'withdraw',\n setup(__props) {\n const amount = ref('');\n const balance = ref(0.00);\n const loading = ref(false);\n const bankCards = ref([]);\n const selectedBank = ref(null);\n const showBankPopup = ref(false);\n const isValid = computed(() => {\n const val = parseFloat(amount.value);\n // 检查 val 是否有效(替代 isNaN)\n if (val == null || val <= 0)\n return false;\n if (val > balance.value)\n return false;\n if (selectedBank.value == null)\n return false;\n return true;\n });\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n try {\n const bal = yield supabaseService.getUserBalanceNumber();\n balance.value = bal;\n const res = yield supabaseService.getUserBankCards();\n const list = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n let id = '';\n let bankName = '';\n let cardNum = '';\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n id = (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '';\n bankName = (_b = item.getString('bank_name')) !== null && _b !== void 0 ? _b : '';\n cardNum = (_c = item.getString('card_number')) !== null && _c !== void 0 ? _c : '';\n }\n else {\n const itemObj = item;\n id = (_d = itemObj.getString('id')) !== null && _d !== void 0 ? _d : '';\n bankName = (_g = itemObj.getString('bank_name')) !== null && _g !== void 0 ? _g : '';\n cardNum = (_h = itemObj.getString('card_number')) !== null && _h !== void 0 ? _h : '';\n }\n if (id != '') {\n const card = new BankCard({\n id: id,\n bank_name: bankName,\n card_number: cardNum\n });\n list.push(card);\n }\n }\n bankCards.value = list;\n if (bankCards.value.length > 0) {\n selectedBank.value = bankCards.value[0];\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/withdraw.uvue:140', e);\n }\n }); };\n onMounted(() => {\n loadData();\n });\n const getTailNumber = (cardNo = null) => {\n if (cardNo == null)\n return '';\n if (cardNo.length <= 4)\n return cardNo;\n return cardNo.substring(cardNo.length - 4);\n };\n const setAll = () => {\n amount.value = balance.value.toString();\n };\n const openBankSelector = () => {\n showBankPopup.value = true;\n };\n const selectBank = (bank) => {\n selectedBank.value = bank;\n showBankPopup.value = false;\n };\n const navigateToAddCard = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/bank-cards/add'\n });\n showBankPopup.value = false;\n };\n const submitWithdraw = () => { return __awaiter(this, void 0, void 0, function* () {\n if (isValid.value === false)\n return Promise.resolve(null);\n loading.value = true;\n try {\n const val = parseFloat(amount.value);\n const success = yield supabaseService.withdrawBalance(val);\n if (success) {\n uni.showToast({\n title: '提现申请已提交',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n else {\n uni.showToast({\n title: '提现失败, ' + (val > balance.value ? '余额不足' : '请重试'),\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.showToast({\n title: '系统异常',\n icon: 'none'\n });\n }\n finally {\n loading.value = false;\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: selectedBank.value != null\n }, selectedBank.value != null ? {\n b: _t(selectedBank.value.bank_name),\n c: _t(getTailNumber(selectedBank.value.card_number))\n } : {}, {\n d: _o(openBankSelector),\n e: amount.value,\n f: _o($event => { return amount.value = $event.detail.value; }),\n g: _t(balance.value),\n h: _o(setAll),\n i: _t(loading.value ? '处理中...' : '确认提现'),\n j: isValid.value === false,\n k: loading.value,\n l: _o(submitWithdraw),\n m: showBankPopup.value\n }, showBankPopup.value ? {\n n: _o($event => { return showBankPopup.value = false; }),\n o: _f(bankCards.value, (item, index, i0) => {\n return _e({\n a: _t(item.bank_name),\n b: _t(getTailNumber(item.card_number)),\n c: selectedBank.value != null && selectedBank.value.id == item.id\n }, selectedBank.value != null && selectedBank.value.id == item.id ? {} : {}, {\n d: index,\n e: _o($event => { return selectBank(item); }, index)\n });\n }),\n p: _o(navigateToAddCard),\n q: _o(() => { }),\n r: _o($event => { return showBankPopup.value = false; })\n } : {}, {\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/withdraw.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"withdraw.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"withdraw.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/79564d9dc4c9721c5892d681daac38d132a2f2a7 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/79564d9dc4c9721c5892d681daac38d132a2f2a7 deleted file mode 100644 index 01f4a070..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/79564d9dc4c9721c5892d681daac38d132a2f2a7 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { ProductType, MerchantType, ProductSkuType, CouponTemplateType, FootprintItemType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nexport default defineComponent({\n data() {\n return {\n product: new ProductType({\n id: '',\n merchant_id: '',\n category_id: '',\n name: '',\n description: '',\n images: [],\n price: 0,\n original_price: 0,\n stock: 0,\n sales: 0,\n status: 0,\n created_at: ''\n }),\n merchant: new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }),\n productSkus: [],\n currentImageIndex: 0,\n showSpec: false,\n selectedSkuId: '',\n selectedSpec: '',\n quantity: 1,\n isFavorite: false,\n showParams: false,\n // 新增: 优惠券相关\n coupons: [],\n showCoupons: false,\n // 会员价相关\n memberPrice: 0,\n memberDiscount: 0,\n memberLevelName: ''\n };\n },\n onLoad(options = null) {\n var _a;\n const opts = options;\n const productId = ((_a = opts.getString('productId')) !== null && _a !== void 0 ? _a : opts.getString('id'));\n const priceStr = opts.getString('price');\n const productPrice = priceStr != null ? parseFloat(priceStr) : null;\n const originalPriceStr = opts.getString('originalPrice');\n const productOriginalPrice = originalPriceStr != null ? parseFloat(originalPriceStr) : null;\n let productName = opts.getString('name');\n if (productName != null) {\n try {\n const decodedName = decodeURIComponent(productName);\n productName = decodedName;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:298', 'ProductName decode failed, using original:', productName);\n }\n }\n let productImage = opts.getString('image');\n if (productImage != null) {\n try {\n const decodedImage = decodeURIComponent(productImage);\n productImage = decodedImage;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:308', 'ProductImage decode failed, using original:', productImage);\n }\n }\n if (productId != null) {\n this.loadProductDetail(productId, new UTSJSONObject({\n price: productPrice,\n originalPrice: productOriginalPrice,\n name: productName,\n image: productImage\n }));\n this.checkFavoriteStatus(productId);\n this.saveFootprint(productId);\n if (productName != null) {\n uni.setNavigationBarTitle({\n title: productName\n });\n }\n }\n },\n computed: {\n displayPrice() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.price;\n }\n return this.product.price;\n }\n },\n methods: {\n saveFootprint(productId) {\n // 调用后端API记录足迹\n supabaseService.addFootprint(productId).then(success => {\n if (success === true) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:343', '足迹已同步到服务器');\n }\n });\n const footprintData = uni.getStorageSync('footprints');\n let footprints = [];\n if (footprintData != null && footprintData !== '') {\n try {\n footprints = UTS.JSON.parse(footprintData);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:354', 'Failed to parse footprints', e);\n }\n }\n // 移除已存在的相同商品(为了将其移到最新位置)\n const productIdStr = productId;\n footprints = footprints.filter(function (item = null) {\n var _a;\n const itemObj = item;\n const itemId = (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n return itemId != productIdStr;\n });\n // 添加到头部\n const productImage = this.product.images.length > 0 ? this.product.images[0] : '/static/default-product.png';\n footprints.unshift(new FootprintItemType({\n id: this.product.id,\n name: this.product.name,\n price: this.product.price,\n original_price: this.product.original_price,\n image: productImage,\n sales: this.product.sales,\n shopId: this.merchant.id,\n shopName: this.merchant.shop_name,\n viewTime: Date.now()\n }));\n // 限制数量,例如最近50条\n if (footprints.length > 50) {\n footprints = footprints.slice(0, 50);\n }\n uni.setStorageSync('footprints', UTS.JSON.stringify(footprints));\n },\n loadProductDetail(productId, options = new UTSJSONObject({})) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;\n return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '加载中...' });\n try {\n const dbProduct = yield supabaseService.getProductById(productId);\n if (dbProduct != null) {\n // 使用 getProductById 返回的 Product 对象\n this.product = new ProductType({\n id: dbProduct.id,\n merchant_id: (_a = dbProduct.merchant_id) !== null && _a !== void 0 ? _a : '',\n category_id: (_b = dbProduct.category_id) !== null && _b !== void 0 ? _b : '',\n name: dbProduct.name,\n description: (_c = dbProduct.description) !== null && _c !== void 0 ? _c : '',\n images: (_d = dbProduct.images) !== null && _d !== void 0 ? _d : [],\n price: (_f = (_e = dbProduct.price) !== null && _e !== void 0 ? _e : dbProduct.base_price) !== null && _f !== void 0 ? _f : 0,\n original_price: (_h = (_g = dbProduct.original_price) !== null && _g !== void 0 ? _g : dbProduct.market_price) !== null && _h !== void 0 ? _h : 0,\n stock: (_k = (_j = dbProduct.stock) !== null && _j !== void 0 ? _j : dbProduct.total_stock) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = dbProduct.sale_count) !== null && _l !== void 0 ? _l : 0,\n status: (_m = dbProduct.status) !== null && _m !== void 0 ? _m : 1,\n created_at: (_o = dbProduct.created_at) !== null && _o !== void 0 ? _o : new Date().toISOString(),\n specification: (_p = dbProduct.specification) !== null && _p !== void 0 ? _p : null,\n usage: (_q = dbProduct.usage) !== null && _q !== void 0 ? _q : null,\n side_effects: (_r = dbProduct.side_effects) !== null && _r !== void 0 ? _r : null,\n precautions: (_s = dbProduct.precautions) !== null && _s !== void 0 ? _s : null,\n expiry_date: (_t = dbProduct.expiry_date) !== null && _t !== void 0 ? _t : null,\n storage_conditions: (_u = dbProduct.storage_conditions) !== null && _u !== void 0 ? _u : null,\n approval_number: (_v = dbProduct.approval_number) !== null && _v !== void 0 ? _v : null,\n tags: []\n }\n // 解析 tags\n );\n // 解析 tags\n if (dbProduct.tags != null && dbProduct.tags != '') {\n try {\n const parsedTags = UTS.JSON.parse(dbProduct.tags);\n if (Array.isArray(parsedTags)) {\n this.product.tags = parsedTags.map((t = null) => { return t; });\n }\n }\n catch (e) { }\n }\n // Handle Images - 使用 main_image_url 作为后备\n if (this.product.images.length == 0 && dbProduct.main_image_url != null && dbProduct.main_image_url != '') {\n this.product.images.push(dbProduct.main_image_url);\n }\n // Final fallback\n if (this.product.images.length == 0) {\n this.product.images.push('/static/default-product.png');\n }\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:436', '商品详情加载成功:', this.product.name, '库存:', this.product.stock, '销量:', this.product.sales);\n }\n else {\n throw new Error('No product found');\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:441', 'Failed to load product detail:', e);\n // Fallback to options if available\n this.product.id = productId;\n const opts = options;\n const nameOpt = opts['name'];\n this.product.name = (nameOpt != null && nameOpt != '') ? (_w = decodeURIComponent(nameOpt)) !== null && _w !== void 0 ? _w : '未知商品' : '未知商品';\n // price 可能是 string 或 number 类型\n const priceOpt = opts['price'];\n if (typeof priceOpt == 'number') {\n this.product.price = priceOpt;\n }\n else if (typeof priceOpt == 'string') {\n this.product.price = parseFloat(priceOpt);\n }\n else {\n this.product.price = 0;\n }\n const imageOpt = opts['image'];\n const decodedImage = (imageOpt != null && imageOpt != '') ? decodeURIComponent(imageOpt) : null;\n this.product.images = decodedImage != null ? [decodedImage] : ['/static/default-product.png'];\n }\n // Load Merchant and SKUs\n if (this.product.merchant_id != null && this.product.merchant_id !== '') {\n yield this.loadMerchantInfo(this.product.merchant_id);\n // 加载优惠券\n this.loadCoupons();\n }\n if (this.product.id != null && this.product.id !== '') {\n this.loadProductSkus(this.product.id);\n }\n // 加载会员价\n this.loadMemberPrice();\n uni.hideLoading();\n });\n },\n loadMerchantInfo(merchantId) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return __awaiter(this, void 0, void 0, function* () {\n let realMerchantLoaded = false;\n if (merchantId.includes('-') || !merchantId.startsWith('merchant_')) {\n try {\n const shopResponse = yield supabaseService.getShopByMerchantId(merchantId);\n if (shopResponse != null) {\n // 直接使用 Shop 对象的属性\n this.merchant = new MerchantType({\n id: shopResponse.id,\n user_id: shopResponse.merchant_id,\n shop_name: shopResponse.shop_name,\n shop_logo: (_a = shopResponse.shop_logo) !== null && _a !== void 0 ? _a : '/static/default-shop.png',\n shop_banner: (_b = shopResponse.shop_banner) !== null && _b !== void 0 ? _b : '/static/default-banner.png',\n shop_description: (_c = shopResponse.description) !== null && _c !== void 0 ? _c : '',\n contact_name: (_d = shopResponse.contact_name) !== null && _d !== void 0 ? _d : '店主',\n contact_phone: (_e = shopResponse.contact_phone) !== null && _e !== void 0 ? _e : '',\n shop_status: 1,\n rating: (_f = shopResponse.rating_avg) !== null && _f !== void 0 ? _f : 5.0,\n total_sales: (_g = shopResponse.total_sales) !== null && _g !== void 0 ? _g : 0,\n created_at: (_h = shopResponse.created_at) !== null && _h !== void 0 ? _h : new Date().toISOString()\n });\n realMerchantLoaded = true;\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:501', '店铺信息加载成功:', this.merchant.shop_name);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:504', 'Load shop failed', e);\n }\n }\n if (!realMerchantLoaded) {\n let charSum = 0;\n for (let i = 0; i < merchantId.length; i++) {\n const charCode = merchantId.charCodeAt(i);\n if (charCode != null) {\n charSum += charCode;\n }\n }\n const merchantIndex = Math.abs(charSum) % 5;\n const shopNames = ['优质好店', '品牌直营店', '官方旗舰店', '专卖店', '精品小店'];\n this.merchant = new MerchantType({\n id: merchantId,\n user_id: 'user_mock_' + merchantIndex,\n shop_name: shopNames[merchantIndex],\n shop_logo: '/static/shop-logo.png',\n shop_banner: '/static/shop-banner.png',\n shop_description: '优质服务,正品保障',\n contact_name: '店主',\n contact_phone: '',\n shop_status: 1,\n rating: 4.8,\n total_sales: 999,\n created_at: '2023-01-01'\n });\n }\n });\n },\n loadProductSkus(productId) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n // 尝试从数据库加载SKU\n try {\n const skus = yield supabaseService.getProductSkus(productId);\n if (skus.length > 0) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:541', '加载到商品SKU:', skus.length);\n this.productSkus = [];\n for (let i = 0; i < skus.length; i++) {\n const skuData = skus[i];\n // 解析 specifications JSON 字符串\n let specs = new UTSJSONObject({});\n if (skuData.specifications != null && skuData.specifications != '') {\n try {\n specs = UTS.JSON.parse(skuData.specifications);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:551', '解析SKU规格失败', e);\n }\n }\n const sku = new ProductSkuType({\n id: skuData.id,\n product_id: skuData.product_id,\n sku_code: skuData.sku_code,\n specifications: specs,\n price: skuData.price,\n stock: (_a = skuData.stock) !== null && _a !== void 0 ? _a : 0,\n image_url: (_b = skuData.image_url) !== null && _b !== void 0 ? _b : '',\n status: (_c = skuData.status) !== null && _c !== void 0 ? _c : 1\n });\n this.productSkus.push(sku);\n }\n return Promise.resolve(null);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:569', 'Fetch SKUs error', e);\n }\n });\n },\n loadMemberPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const memberInfo = yield supabaseService.getUserMemberInfo();\n const levelNameRaw = memberInfo.get('level_name');\n const discountRaw = memberInfo.get('discount');\n if (levelNameRaw != null) {\n this.memberLevelName = levelNameRaw;\n }\n if (discountRaw != null) {\n const discount = discountRaw;\n if (discount > 0 && discount < 10) {\n this.memberDiscount = discount;\n this.memberPrice = Math.round(this.product.price * discount) / 10;\n }\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:591', '获取会员信息失败,可能未登录或非会员:', e);\n }\n });\n },\n // 新增:加载优惠券\n loadCoupons() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.merchant_id == '')\n return Promise.resolve(null);\n // Safety check for cached service definition\n try {\n const couponData = yield supabaseService.fetchShopCoupons(this.product.merchant_id);\n // 解析优惠券数据\n this.coupons = [];\n if (couponData != null && couponData.length > 0) {\n for (let i = 0; i < couponData.length; i++) {\n const item = couponData[i];\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const getSafeString = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return '';\n if (typeof val == 'string')\n return val;\n return '';\n };\n const getSafeNumber = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return 0;\n if (typeof val == 'number')\n return val;\n return 0;\n };\n const coupon = new CouponTemplateType({\n id: getSafeString('id'),\n name: getSafeString('name'),\n description: getSafeString('description'),\n coupon_type: getSafeNumber('coupon_type'),\n discount_type: getSafeNumber('discount_type'),\n discount_value: getSafeNumber('discount_value'),\n min_order_amount: getSafeNumber('min_order_amount'),\n max_discount_amount: getSafeNumber('max_discount_amount'),\n total_quantity: getSafeNumber('total_quantity'),\n per_user_limit: getSafeNumber('per_user_limit'),\n usage_limit: getSafeNumber('usage_limit'),\n merchant_id: getSafeString('merchant_id'),\n category_ids: [],\n product_ids: [],\n user_type_limit: getSafeNumber('user_type_limit'),\n start_time: getSafeString('start_time'),\n end_time: getSafeString('end_time'),\n status: getSafeNumber('status'),\n created_at: getSafeString('created_at')\n });\n this.coupons.push(coupon);\n }\n }\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:647', 'SupabaseService coupon methods not available:', e);\n }\n });\n },\n // 新增:联系客服(商家)\n contactMerchant() {\n var _a, _b;\n if (supabaseService.getCurrentUserId() == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return null;\n }\n // Navigate to chat\n const merchId = (_b = (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.merchant.id) !== null && _b !== void 0 ? _b : this.product.merchant_id;\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchId}&merchantName=${this.merchant.shop_name}`\n });\n },\n // 新增:优惠券弹窗\n showCouponModal() {\n this.showCoupons = true;\n },\n hideCouponModal() {\n this.showCoupons = false;\n },\n // 新增:领取优惠券\n claimCoupon(coupon) {\n return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n let success = false;\n const couponId = coupon.id;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:691', 'claimCoupon method missing:', e2);\n }\n }\n uni.hideLoading();\n if (success === true) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败或已领取', icon: 'none' });\n }\n });\n },\n formatDate(dateStr) {\n if (dateStr == '')\n return '';\n const date = new Date(dateStr);\n return `${date.getFullYear()}.${date.getMonth() + 1}.${date.getDate()}`;\n },\n onSwiperChange(e = null) {\n const eventObj = e;\n const detail = eventObj['detail'];\n this.currentImageIndex = detail['current'];\n },\n showSpecModal() {\n this.showSpec = true;\n },\n hideSpecModal() {\n this.showSpec = false;\n },\n selectSku(sku) {\n this.selectedSkuId = sku.id;\n this.selectedSpec = this.getSkuSpecText(sku);\n this.hideSpecModal();\n },\n getSkuSpecText(sku) {\n var _a;\n if (sku.specifications != null) {\n const specs = sku.specifications;\n let specStr = '';\n // 在 UTS 中遍历 UTSJSONObject 的推荐方式\n for (const key in specs) {\n const val = specs[key];\n if (val != null) {\n specStr += (specStr === '' ? '' : ' ') + val.toString();\n }\n }\n if (specStr !== '') {\n return specStr;\n }\n }\n return (_a = sku.sku_code) !== null && _a !== void 0 ? _a : '';\n },\n addToCart() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '添加中...' });\n try {\n const success = yield supabaseService.addToCart(this.product.id, this.quantity, this.selectedSkuId, this.product.merchant_id);\n uni.hideLoading();\n if (success === true) {\n uni.showToast({ title: '已添加到购物车', icon: 'success' });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:770', '添加购物车返回失败');\n uni.showToast({ title: '添加失败,请登录重试', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:775', '添加购物车异常', e);\n uni.showToast({ title: '添加异常', icon: 'none' });\n }\n });\n },\n buyNow() {\n var _a;\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n return null;\n }\n const sku = (this.selectedSkuId != null && this.selectedSkuId !== '') ? UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; }) : null;\n const selectedItem = new UTSJSONObject({\n id: this.selectedSkuId,\n product_id: this.product.id,\n sku_id: this.selectedSkuId,\n product_name: this.product.name,\n product_image: (sku != null && sku.image_url != null) ? sku.image_url : this.product.images[0],\n sku_specifications: sku != null ? sku.specifications : new UTSJSONObject({}),\n price: parseFloat((sku != null ? sku.price : this.product.price).toString()).toFixed(2),\n quantity: this.quantity,\n shop_id: this.merchant.id,\n shop_name: this.merchant.shop_name,\n merchant_id: (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.product.merchant_id\n });\n uni.setStorageSync('checkout_type', 'buy_now');\n uni.setStorageSync('checkout_items', UTS.JSON.stringify([selectedItem]));\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n },\n checkFavoriteStatus(id) {\n this.checkFavorite(id);\n },\n checkFavorite(id) {\n return __awaiter(this, void 0, void 0, function* () {\n const isFav = yield supabaseService.checkFavorite(id);\n this.isFavorite = isFav;\n });\n },\n toggleFavorite() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.id == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n try {\n const wasFavorite = this.isFavorite;\n const isNowFavorite = yield supabaseService.toggleFavorite(this.product.id);\n uni.hideLoading();\n if (isNowFavorite !== wasFavorite) {\n this.isFavorite = isNowFavorite;\n uni.showToast({\n title: isNowFavorite ? '收藏成功' : '已取消收藏',\n icon: 'success'\n });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n this.checkFavoriteStatus(this.product.id);\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:843', 'Toggle favorite failed', e);\n uni.showToast({ title: '操作异常', icon: 'none' });\n }\n });\n },\n goToHome() {\n uni.switchTab({ url: '/pages/mall/consumer/home' });\n },\n goToShop() {\n var _a, _b;\n const merchantId = (_b = (_a = this.merchant.id) !== null && _a !== void 0 ? _a : this.product.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:855', '进店点击,merchantId:', merchantId);\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({\n title: '店铺信息加载中',\n icon: 'none'\n });\n }\n },\n goToCart() {\n uni.switchTab({ url: '/pages/main/cart' });\n },\n decreaseQuantity() {\n if (this.quantity > 1) {\n this.quantity--;\n }\n },\n increaseQuantity() {\n const maxQuantity = this.getMaxQuantity();\n if (this.quantity < maxQuantity) {\n this.quantity++;\n }\n else {\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n },\n validateQuantity() {\n let num = this.quantity;\n const maxQuantity = this.getMaxQuantity();\n if (num < 1)\n num = 1;\n else if (num > maxQuantity) {\n num = maxQuantity;\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n this.quantity = num;\n },\n getMaxQuantity() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.stock;\n }\n return this.product.stock;\n },\n getAvailableStock() {\n return this.getMaxQuantity();\n },\n previewImage(index) {\n uni.previewImage({\n current: index,\n urls: this.product.images\n });\n },\n showParamsModal() {\n this.showParams = true;\n },\n hideParamsModal() {\n this.showParams = false;\n },\n getParamsSummary() {\n let summary = '';\n if (this.product.specification != null && this.product.specification != '')\n summary += '规格 ';\n if (this.product.expiry_date != null && this.product.expiry_date != '')\n summary += '有效期 ';\n if (this.product.approval_number != null && this.product.approval_number != '')\n summary += '批准文号 ';\n const finalSummary = summary.trim();\n return finalSummary != '' ? finalSummary : '查看详情';\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/product-detail.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.setNavigationBarTitle","uni.getStorageSync","uni.setStorageSync","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.showToast","uni.switchTab","uni.previewImage"],"map":"{\"version\":3,\"file\":\"product-detail.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-detail.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7a5218560125b4e10d60caf42b3d9dbb6b969113 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7a5218560125b4e10d60caf42b3d9dbb6b969113 new file mode 100644 index 00000000..27e60bd3 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7a5218560125b4e10d60caf42b3d9dbb6b969113 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, watch, computed, onUnmounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass PaymentMethodType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n description: { type: String, optional: false },\n icon: { type: String, optional: false },\n enabled: { type: Boolean, optional: false }\n };\n },\n name: \"PaymentMethodType\"\n };\n }\n constructor(options, metadata = PaymentMethodType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.icon = this.__props__.icon;\n this.enabled = this.__props__.enabled;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'payment',\n setup(__props) {\n const orderId = ref('');\n const orderNo = ref('');\n const amount = ref(0);\n const paymentMethods = ref([]);\n const selectedMethod = ref('wechat');\n const userBalance = ref(0);\n const isPaying = ref(false);\n const showPassword = ref(false);\n const password = ref('');\n // 价格相关变量\n const productAmount = ref(0); // 商品总价\n const deliveryFee = ref(0); // 运费\n const discountAmount = ref(0); // 优惠减免\n // 加载支付方式(必须在 onMounted 之前定义)\n const loadPaymentMethods = () => {\n const methods = [\n new PaymentMethodType({\n id: 'wechat',\n name: '微信支付',\n description: '推荐安装微信5.0及以上版本使用',\n icon: '💳',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'alipay',\n name: '支付宝',\n description: '推荐安装支付宝10.0及以上版本使用',\n icon: '💳',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'balance',\n name: '余额支付',\n description: '使用账户余额支付',\n icon: '💰',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'bankcard',\n name: '银行卡支付',\n description: '支持储蓄卡、信用卡',\n icon: '💳',\n enabled: true\n })\n ];\n paymentMethods.value = methods;\n };\n // 加载用户余额(必须在 onMounted 之前定义)\n const loadUserBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const balance = yield supabaseService.getUserBalanceNumber();\n userBalance.value = balance;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:179', '加载用户余额异常:', err);\n userBalance.value = 0;\n }\n }); };\n // 计算价格明细(必须在 onMounted 之前定义)\n const calculatePriceDetails = (totalAmount) => {\n // 模拟计算各项费用\n // 假设商品总价占总金额的80%,运费占10%,优惠减免占10%\n productAmount.value = totalAmount * 0.8;\n deliveryFee.value = totalAmount * 0.1;\n discountAmount.value = totalAmount * 0.1;\n // 确保总和等于应付金额\n const calculatedTotal = productAmount.value + deliveryFee.value - discountAmount.value;\n if (Math.abs(calculatedTotal - totalAmount) > 0.01) {\n // 调整商品总价以匹配应付金额\n productAmount.value = totalAmount + discountAmount.value - deliveryFee.value;\n }\n };\n // 更新本地存储中的订单状态(必须在 onMounted 之前定义)\n const updateOrderInStorage = (targetOrderId, status) => {\n try {\n // 尝试从 'orders' 读取 (checkout页面写入的key)\n const ordersStr = uni.getStorageSync('orders');\n let orders = [];\n if (ordersStr != null && ordersStr !== '') {\n const parsed = UTS.JSON.parse(ordersStr);\n if (Array.isArray(parsed)) {\n for (let i = 0; i < parsed.length; i++) {\n // 使用 JSON 序列化转换\n const itemStr = UTS.JSON.stringify(parsed[i]);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed != null) {\n orders.push(itemParsed);\n }\n }\n }\n }\n let foundIndex = -1;\n for (let i = 0; i < orders.length; i++) {\n const o = orders[i];\n if (o['id'] === targetOrderId) {\n foundIndex = i;\n break;\n }\n }\n if (foundIndex !== -1) {\n orders[foundIndex]['status'] = status;\n orders[foundIndex]['payment_status'] = status === 2 ? 1 : 0; // 2=待发货(已支付), 1=待支付(未支付)\n orders[foundIndex]['updated_at'] = new Date().toISOString();\n // 确保更新的是 'orders' key\n uni.setStorageSync('orders', UTS.JSON.stringify(orders));\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:235', '订单状态已更新到Storage (orders):', targetOrderId, status);\n }\n else {\n // 本地缓存中没有订单数据是正常的,数据在数据库中\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:238', '本地缓存中无订单数据,已忽略:', targetOrderId);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:241', '更新订单状态失败', e);\n }\n };\n // 取消支付,更新订单状态(必须在 goBack 之前定义)\n const cancelPayment = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 这里应该调用API更新订单状态为待支付(status: 1)\n // 模拟更新订单状态\n // 更新本地存储\n updateOrderInStorage(orderId.value, 1); // 1: 待支付\n // 发布订单更新事件,让profile页面可以刷新数据\n uni.$emit('orderUpdated', new UTSJSONObject({ orderId: orderId.value, status: 1 }));\n uni.showToast({\n title: '已保存到待支付订单',\n icon: 'success'\n });\n // 延迟返回,让用户看到提示\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:268', '取消支付异常:', err);\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n // 返回(必须在 onBackPress 之前定义)\n const goBack = () => {\n uni.showModal(new UTSJSONObject({\n title: '取消支付',\n content: '确定要取消支付吗?取消后订单将保存到待支付订单中',\n confirmText: '取消支付',\n cancelText: '继续支付',\n success: (res) => {\n if (res.confirm) {\n // 用户确认取消支付,更新订单状态为待支付\n cancelPayment();\n }\n }\n }));\n };\n // 加载订单信息(必须在 onMounted 之前定义)\n const loadOrderInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n if (orderId.value == '')\n return Promise.resolve(null);\n const order = yield supabaseService.getOrderDetail(orderId.value);\n if (order != null) {\n // 使用 JSON 序列化转换对象\n const orderStr = UTS.JSON.stringify(order);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:303', '订单数据解析失败');\n return Promise.resolve(null);\n }\n const orderObj = orderParsed;\n const orderNoVal = orderObj.getString('order_no');\n if (orderNoVal != null) {\n orderNo.value = orderNoVal;\n }\n const totalAmount = orderObj.getNumber('total_amount');\n const dbAmount = totalAmount !== null && totalAmount !== void 0 ? totalAmount : 0;\n if (dbAmount > 0) {\n amount.value = dbAmount;\n }\n const items = orderObj.get('items');\n if (items != null && Array.isArray(items) && items.length > 0) {\n // Could update product name etc if displayed\n }\n }\n else {\n // Fallback or error\n uni.__f__('warn', 'at pages/mall/consumer/payment.uvue:324', 'Order not found in DB', orderId.value);\n if (orderNo.value == '')\n orderNo.value = 'ORD_PENDING_' + Date.now();\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:328', '加载订单信息异常:', err);\n }\n }); };\n // 生命周期\n onLoad((options) => {\n if (options != null) {\n const orderIdValue = options['orderId'];\n if (orderIdValue != null) {\n orderId.value = orderIdValue;\n loadOrderInfo();\n }\n const amountValue = options['amount'];\n if (amountValue != null) {\n amount.value = parseFloat(amountValue.toString());\n }\n // 获取传递的价格详情\n const productAmountValue = options['productAmount'];\n if (productAmountValue != null) {\n productAmount.value = parseFloat(productAmountValue.toString());\n }\n const deliveryFeeValue = options['deliveryFee'];\n if (deliveryFeeValue != null) {\n deliveryFee.value = parseFloat(deliveryFeeValue.toString());\n }\n const discountAmountValue = options['discountAmount'];\n if (discountAmountValue != null) {\n discountAmount.value = parseFloat(discountAmountValue.toString());\n }\n // 如果没有传详情,尝试根据总价估算(兼容旧逻辑,但优先使用传参)\n if (productAmountValue == null && amount.value > 0) {\n calculatePriceDetails(amount.value);\n }\n loadPaymentMethods();\n loadUserBalance();\n }\n });\n onMounted(() => {\n // onMounted 中的逻辑已移到 onLoad 中\n });\n // 监听返回操作(包含系统返回键和导航栏返回按钮)\n onBackPress((options) => {\n // 如果是通过代码主动调用 navigateBack 返回,则允许\n if (options.from === 'navigateBack') {\n return false;\n }\n // 否则拦截返回,显示确认弹窗\n goBack();\n return true;\n });\n // 获取当前用户ID\n const getCurrentUserId = () => {\n const userStore = uni.getStorageSync('userInfo');\n if (userStore != null) {\n // 使用 JSON 序列化转换\n const userStr = UTS.JSON.stringify(userStore);\n const userParsed = UTS.JSON.parse(userStr);\n if (userParsed != null) {\n const userObj = userParsed;\n const id = userObj.getString('id');\n if (id != null) {\n return id;\n }\n }\n }\n return '';\n };\n // 获取支付方式图标\n const getMethodIcon = (methodId) => {\n if (methodId === 'wechat') {\n return '💳';\n }\n else if (methodId === 'alipay') {\n return '💳';\n }\n else if (methodId === 'balance') {\n return '💰';\n }\n else if (methodId === 'bankcard') {\n return '💳';\n }\n return '💳';\n };\n // 选择支付方式\n const selectMethod = (method) => {\n if (!method.enabled) {\n uni.showToast({\n title: '该支付方式暂不可用',\n icon: 'none'\n });\n return null;\n }\n selectedMethod.value = method.id;\n showPassword.value = method.id === 'balance' || method.id === 'bankcard';\n password.value = ''; // 清空密码\n };\n // 获取支付按钮文本\n const getPayButtonText = () => {\n if (selectedMethod.value === 'balance' && userBalance.value < amount.value) {\n return '余额不足';\n }\n if (selectedMethod.value === 'wechat') {\n return '微信支付';\n }\n else if (selectedMethod.value === 'alipay') {\n return '支付宝支付';\n }\n else if (selectedMethod.value === 'balance') {\n return '余额支付';\n }\n else if (selectedMethod.value === 'bankcard') {\n return '银行卡支付';\n }\n return '确认支付';\n };\n // 减少商品库存\n // const reduceStock = (orderId: string) => {\n // Update should happen on server side during payment processing\n // }\n // 确认支付\n const confirmPayment = () => { return __awaiter(this, void 0, void 0, function* () {\n if (isPaying.value)\n return Promise.resolve(null);\n // 余额支付检查\n if (selectedMethod.value === 'balance') {\n if (userBalance.value < amount.value) {\n uni.showToast({\n title: '余额不足',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (!showPassword.value) {\n showPassword.value = true;\n return Promise.resolve(null);\n }\n if (password.value.length !== 6) {\n uni.showToast({\n title: '请输入6位支付密码',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n }\n isPaying.value = true;\n uni.showLoading({ title: '支付中...' });\n try {\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:488', '[confirmPayment] 开始支付, orderId:', orderId.value, 'method:', selectedMethod.value);\n const success = yield supabaseService.payOrder(orderId.value, selectedMethod.value, amount.value);\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:491', '[confirmPayment] 支付结果:', success);\n if (!success) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:494', '[confirmPayment] payOrder 返回 false');\n uni.hideLoading();\n uni.showToast({\n title: '支付处理失败',\n icon: 'none'\n });\n isPaying.value = false;\n return Promise.resolve(null);\n }\n uni.hideLoading();\n updateOrderInStorage(orderId.value, 2);\n uni.showToast({\n title: '支付成功',\n icon: 'success',\n duration: 2000\n });\n uni.$emit('orderUpdated', new UTSJSONObject({ orderId: orderId.value, status: 2 }));\n setTimeout(() => {\n uni.redirectTo({\n url: `/pages/mall/consumer/payment-success?orderId=${orderId.value}`\n });\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:523', '[confirmPayment] 支付异常:', err);\n uni.hideLoading();\n uni.showToast({\n title: '支付失败',\n icon: 'none'\n });\n isPaying.value = false;\n }\n }); };\n // 获取支付方式代码\n const getPaymentMethodCode = (methodId) => {\n if (methodId === 'wechat') {\n return 1;\n }\n else if (methodId === 'alipay') {\n return 2;\n }\n else if (methodId === 'balance') {\n return 3;\n }\n else if (methodId === 'bankcard') {\n return 4;\n }\n return 0;\n };\n // 验证密码(必须在 watch 之前定义)\n const verifyPassword = () => { return __awaiter(this, void 0, void 0, function* () {\n // 这里应该验证支付密码,这里简单模拟\n const userId = getCurrentUserId();\n try {\n // 模拟验证\n yield new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 500);\n });\n // 假设密码正确\n const isCorrect = true;\n if (isCorrect) {\n // 密码正确,继续支付\n confirmPayment();\n }\n else {\n password.value = '';\n uni.showToast({\n title: '密码错误',\n icon: 'none'\n });\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:575', '验证密码异常:', err);\n }\n }); };\n // 输入密码\n const inputPassword = (num) => {\n if (password.value.length >= 6)\n return null;\n password.value += num;\n };\n // 删除密码\n const deletePassword = () => {\n if (password.value.length > 0) {\n password.value = password.value.slice(0, -1);\n }\n };\n // 监听密码输入\n watch(password, (newPassword) => {\n if (newPassword.length === 6) {\n // 自动验证密码\n verifyPassword();\n }\n });\n // 忘记密码\n const forgotPassword = () => {\n uni.navigateTo({\n url: '/pages/user/forgot-password'\n });\n };\n // 在组件卸载时移除返回键监听\n onUnmounted(() => {\n // uni.offBackPress() 在uni-app中不需要手动移除\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(productAmount.value.toFixed(2)),\n b: _t(deliveryFee.value.toFixed(2)),\n c: discountAmount.value > 0\n }, discountAmount.value > 0 ? {\n d: _t(discountAmount.value.toFixed(2))\n } : {}, {\n e: _t(amount.value.toFixed(2)),\n f: _t(orderNo.value),\n g: _f(paymentMethods.value, (method, k0, i0) => {\n return _e({\n a: _t(getMethodIcon(method.id)),\n b: _t(method.name),\n c: _t(method.description),\n d: selectedMethod.value === method.id\n }, selectedMethod.value === method.id ? {} : {}, {\n e: method.id,\n f: _n({\n selected: selectedMethod.value === method.id\n }),\n g: _o($event => { return selectMethod(method); }, method.id)\n });\n }),\n h: selectedMethod.value === 'balance' && userBalance.value > 0\n }, selectedMethod.value === 'balance' && userBalance.value > 0 ? _e({\n i: _t(userBalance.value.toFixed(2)),\n j: userBalance.value < amount.value\n }, userBalance.value < amount.value ? {} : {}) : {}, {\n k: showPassword.value\n }, showPassword.value ? {\n l: _f(6, (_, index, i0) => {\n return _e({\n a: password.value.length > index\n }, password.value.length > index ? {} : {}, {\n b: index\n });\n }),\n m: _o(forgotPassword)\n } : {}, {\n n: _t(amount.value.toFixed(2)),\n o: !isPaying.value\n }, !isPaying.value ? {\n p: _t(getPayButtonText())\n } : {}, {\n q: isPaying.value || selectedMethod.value === 'balance' && userBalance.value < amount.value ? 1 : '',\n r: _o(confirmPayment),\n s: showPassword.value\n }, showPassword.value ? {\n t: _f(9, (num, k0, i0) => {\n return {\n a: _t(num),\n b: num,\n c: _o($event => { return inputPassword(num.toString()); }, num)\n };\n }),\n v: _o($event => { return inputPassword('0'); }),\n w: _o(deletePassword)\n } : {}, {\n x: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/payment.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.getStorageSync","uni.setStorageSync","uni.$emit","uni.showToast","uni.navigateBack","uni.showModal","uni.showLoading","uni.hideLoading","uni.redirectTo","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"payment.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"payment.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAEhI,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;OAC3D,EAAE,eAAe,EAAE;MAErB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;AAStB,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,SAAS;IACjB,KAAK,CAAC,OAAO;QAEf,MAAM,OAAO,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA;QAC7B,MAAM,cAAc,GAAG,GAAG,CAA2B,EAAE,CAAC,CAAA;QACxD,MAAM,cAAc,GAAG,GAAG,CAAS,QAAQ,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACpC,MAAM,YAAY,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAEhC,SAAS;QACT,MAAM,aAAa,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA,CAAC,OAAO;QAC5C,MAAM,WAAW,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA,CAAC,KAAK;QACxC,MAAM,cAAc,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA,CAAC,OAAO;QAE7C,6BAA6B;QAC7B,MAAM,kBAAkB,GAAG;YAC1B,MAAM,OAAO,GAAwB;sCACpC;oBACC,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,kBAAkB;oBAC/B,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;iBACb;sCACD;oBACC,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;iBACb;sCACD;oBACC,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;iBACb;sCACD;oBACC,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;iBACb;aACD,CAAA;YACD,cAAc,CAAC,KAAK,GAAG,OAAO,CAAA;QAC/B,CAAC,CAAA;QAED,6BAA6B;QAC7B,MAAM,eAAe,GAAG;YACvB,IAAI;gBACG,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,oBAAoB,EAAE,CAAA;gBAC5D,WAAW,CAAC,KAAK,GAAG,OAAO,CAAA;aACjC;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,WAAW,EAAE,GAAG,CAAC,CAAA;gBACvE,WAAW,CAAC,KAAK,GAAG,CAAC,CAAA;aAC3B;QACF,CAAC,IAAA,CAAA;QAED,6BAA6B;QAC7B,MAAM,qBAAqB,GAAG,CAAC,WAAmB;YACjD,WAAW;YACX,iCAAiC;YACjC,aAAa,CAAC,KAAK,GAAG,WAAW,GAAG,GAAG,CAAA;YACvC,WAAW,CAAC,KAAK,GAAG,WAAW,GAAG,GAAG,CAAA;YACrC,cAAc,CAAC,KAAK,GAAG,WAAW,GAAG,GAAG,CAAA;YAExC,aAAa;YACb,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;YACtF,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,IAAI,EAAE;gBACnD,gBAAgB;gBAChB,aAAa,CAAC,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;aAC5E;QACF,CAAC,CAAA;QAED,mCAAmC;QACnC,MAAM,oBAAoB,GAAG,CAAC,aAAqB,EAAE,MAAc;YAClE,IAAI;gBACG,qCAAqC;gBAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;gBAC9C,IAAI,MAAM,GAA0B,EAAE,CAAA;gBACtC,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;oBAC1C,MAAM,MAAM,GAAG,SAAK,KAAK,CAAC,SAAmB,CAAC,CAAA;oBAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxB,gBAAgB;4BAChB,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;4BACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;4BACtC,IAAI,UAAU,IAAI,IAAI,EAAE;gCACpB,MAAM,CAAC,IAAI,CAAC,UAAiC,CAAC,CAAA;6BACjD;yBAChB;qBACD;iBACD;gBAED,IAAI,UAAU,GAAG,CAAC,CAAC,CAAA;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;oBACnB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,EAAE;wBAC9B,UAAU,GAAG,CAAC,CAAA;wBACd,MAAK;qBACL;iBACD;gBAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;oBACtB,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;oBACrC,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,yBAAyB;oBACrF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAClD,sBAAsB;oBAC/B,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;oBAC3C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,yCAAyC,EAAC,2BAA2B,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;iBACtH;qBAAM;oBACG,0BAA0B;oBAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,yCAAyC,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;iBAC9F;aACP;YAAC,OAAO,CAAC,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,UAAU,EAAE,CAAC,CAAC,CAAA;aAC1E;QACF,CAAC,CAAA;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAG;YACrB,IAAI;gBACH,iCAAiC;gBACjC,WAAW;gBAEL,SAAS;gBACT,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,SAAS;gBAEtD,4BAA4B;gBAC5B,GAAG,CAAC,KAAK,CAAC,cAAc,oBAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC,CAAA;gBAEhE,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,SAAS;iBACf,CAAC,CAAA;gBAEF,eAAe;gBACf,UAAU,CAAC;oBACV,GAAG,CAAC,YAAY,EAAE,CAAA;gBACnB,CAAC,EAAE,IAAI,CAAC,CAAA;aAER;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,SAAS,EAAE,GAAG,CAAC,CAAA;gBAC3E,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;aACF;QACF,CAAC,IAAA,CAAA;QAED,2BAA2B;QAC3B,MAAM,MAAM,GAAG;YACd,GAAG,CAAC,SAAS,mBAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,CAAC,GAAG;oBACZ,IAAI,GAAG,CAAC,OAAO,EAAE;wBAChB,sBAAsB;wBACtB,aAAa,EAAE,CAAA;qBACf;gBACF,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QAED,6BAA6B;QAC7B,MAAM,aAAa,GAAG;YACrB,IAAI;gBACG,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;oBAAE,6BAAM;gBAE/B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACjE,IAAI,KAAK,IAAI,IAAI,EAAE;oBACf,kBAAkB;oBAClB,MAAM,QAAQ,GAAG,SAAK,SAAS,CAAC,KAAK,CAAC,CAAA;oBACtC,MAAM,WAAW,GAAG,SAAK,KAAK,CAAC,QAAQ,CAAC,CAAA;oBACxC,IAAI,WAAW,IAAI,IAAI,EAAE;wBACrB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,UAAU,CAAC,CAAA;wBACvE,6BAAM;qBACT;oBACD,MAAM,QAAQ,GAAG,WAA4B,CAAA;oBAE7C,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;oBACjD,IAAI,UAAU,IAAI,IAAI,EAAE;wBACpB,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;qBAC7B;oBAED,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;oBACtD,MAAM,QAAQ,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,CAAA;oBACjC,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACb,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAA;qBAC3B;oBACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACnC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3D,6CAA6C;qBAChD;iBACJ;qBAAM;oBACF,oBAAoB;oBACpB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,yCAAyC,EAAC,uBAAuB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;oBAClG,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;iBACxE;aACP;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,WAAW,EAAE,GAAG,CAAC,CAAA;aAC7E;QACF,CAAC,IAAA,CAAA;QAED,OAAO;QACP,MAAM,CAAC,CAAC,OAAO;YACX,IAAI,OAAO,IAAI,IAAI,EAAE;gBACjB,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,YAAY,IAAI,IAAI,EAAE;oBACtB,OAAO,CAAC,KAAK,GAAG,YAAsB,CAAA;oBACtC,aAAa,EAAE,CAAA;iBAClB;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACrC,IAAI,WAAW,IAAI,IAAI,EAAE;oBACrB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;iBACpD;gBAED,YAAY;gBACZ,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;gBACnD,IAAI,kBAAkB,IAAI,IAAI,EAAE;oBAC5B,aAAa,CAAC,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAA;iBAClE;gBACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;gBAC/C,IAAI,gBAAgB,IAAI,IAAI,EAAE;oBAC1B,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAA;iBAC9D;gBACD,MAAM,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;gBACrD,IAAI,mBAAmB,IAAI,IAAI,EAAE;oBAC7B,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAA;iBACpE;gBAED,kCAAkC;gBAClC,IAAI,kBAAkB,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;oBAChD,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBACtC;gBAED,kBAAkB,EAAE,CAAA;gBACpB,eAAe,EAAE,CAAA;aACpB;QACL,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC;YACN,6BAA6B;QACjC,CAAC,CAAC,CAAA;QAEF,0BAA0B;QAC1B,WAAW,CAAC,CAAC,OAAO;YACnB,kCAAkC;YAClC,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;gBACpC,OAAO,KAAK,CAAA;aACZ;YAED,gBAAgB;YAChB,MAAM,EAAE,CAAA;YACR,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,WAAW;QACX,MAAM,gBAAgB,GAAG;YACxB,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAChD,IAAI,SAAS,IAAI,IAAI,EAAE;gBAChB,gBAAgB;gBAChB,MAAM,OAAO,GAAG,SAAK,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,UAAU,GAAG,SAAK,KAAK,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,UAAU,IAAI,IAAI,EAAE;oBACpB,MAAM,OAAO,GAAG,UAA2B,CAAA;oBAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;oBAClC,IAAI,EAAE,IAAI,IAAI,EAAE;wBACZ,OAAO,EAAE,CAAA;qBACZ;iBACJ;aACP;YACD,OAAO,EAAE,CAAA;QACV,CAAC,CAAA;QAED,WAAW;QACX,MAAM,aAAa,GAAG,CAAC,QAAgB;YACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACX;iBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBACjC,OAAO,IAAI,CAAA;aACX;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAClC,OAAO,IAAI,CAAA;aACX;iBAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;gBACnC,OAAO,IAAI,CAAA;aACX;YACD,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,SAAS;QACT,MAAM,YAAY,GAAG,CAAC,MAAyB;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACpB,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,YAAM;aACN;YAED,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;YAChC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,CAAA;YACxE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAA,CAAC,OAAO;QAC5B,CAAC,CAAA;QAED,WAAW;QACX,MAAM,gBAAgB,GAAG;YACxB,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE;gBAC3E,OAAO,MAAM,CAAA;aACb;YAED,IAAI,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACtC,OAAO,MAAM,CAAA;aACb;iBAAM,IAAI,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC7C,OAAO,OAAO,CAAA;aACd;iBAAM,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC9C,OAAO,MAAM,CAAA;aACb;iBAAM,IAAI,cAAc,CAAC,KAAK,KAAK,UAAU,EAAE;gBAC/C,OAAO,OAAO,CAAA;aACd;YACD,OAAO,MAAM,CAAA;QACd,CAAC,CAAA;QAED,SAAS;QACT,6CAA6C;QACzC,gEAAgE;QACpE,IAAI;QAEJ,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,IAAI,QAAQ,CAAC,KAAK;gBAAE,6BAAM;YAE1B,SAAS;YACT,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;gBACvC,IAAI,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE;oBACrC,GAAG,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,MAAM;qBACZ,CAAC,CAAA;oBACF,6BAAM;iBACN;gBAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;oBACxB,YAAY,CAAC,KAAK,GAAG,IAAI,CAAA;oBACzB,6BAAM;iBACN;gBAED,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,GAAG,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,WAAW;wBAClB,IAAI,EAAE,MAAM;qBACZ,CAAC,CAAA;oBACF,6BAAM;iBACN;aACD;YAED,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;YACrB,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEpC,IAAI;gBACG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,yCAAyC,EAAC,iCAAiC,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;gBAE5I,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;gBACjG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,yCAAyC,EAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;gBAE5F,IAAI,CAAC,OAAO,EAAE;oBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,oCAAoC,CAAC,CAAA;oBACjG,GAAG,CAAC,WAAW,EAAE,CAAA;oBACjB,GAAG,CAAC,SAAS,CAAC;wBACV,KAAK,EAAE,QAAQ;wBACf,IAAI,EAAE,MAAM;qBACf,CAAC,CAAA;oBACF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;oBACtB,6BAAM;iBACT;gBAEP,GAAG,CAAC,WAAW,EAAE,CAAA;gBAEjB,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAEtC,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,GAAG,CAAC,KAAK,CAAC,cAAc,oBAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC,CAAA;gBAEhE,UAAU,CAAC;oBACV,GAAG,CAAC,UAAU,CAAC;wBACd,GAAG,EAAE,gDAAgD,OAAO,CAAC,KAAK,EAAE;qBACpE,CAAC,CAAA;gBACH,CAAC,EAAE,IAAI,CAAC,CAAA;aAER;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;gBAC1F,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;aACtB;QACF,CAAC,IAAA,CAAA;QAED,WAAW;QACX,MAAM,oBAAoB,GAAG,CAAC,QAAgB;YAC7C,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBAC1B,OAAO,CAAC,CAAA;aACR;iBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBACjC,OAAO,CAAC,CAAA;aACR;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAClC,OAAO,CAAC,CAAA;aACR;iBAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;gBACnC,OAAO,CAAC,CAAA;aACR;YACD,OAAO,CAAC,CAAA;QACT,CAAC,CAAA;QAED,uBAAuB;QACvB,MAAM,cAAc,GAAG;YACtB,oBAAoB;YACpB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YAEjC,IAAI;gBACH,OAAO;gBACP,MAAM,IAAI,OAAO,CAAO,CAAC,OAA8B;oBACtD,UAAU,CAAC;wBACV,OAAO,EAAE,CAAA;oBACV,CAAC,EAAE,GAAG,CAAC,CAAA;gBACR,CAAC,CAAC,CAAA;gBAEF,SAAS;gBACT,MAAM,SAAS,GAAG,IAAI,CAAA;gBAEtB,IAAI,SAAS,EAAE;oBACd,YAAY;oBACZ,cAAc,EAAE,CAAA;iBAChB;qBAAM;oBACN,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAA;oBACnB,GAAG,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,MAAM;qBACZ,CAAC,CAAA;iBACF;aAED;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,yCAAyC,EAAC,SAAS,EAAE,GAAG,CAAC,CAAA;aAC3E;QACF,CAAC,IAAA,CAAA;QAED,OAAO;QACP,MAAM,aAAa,GAAG,CAAC,GAAW;YACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,YAAM;YACtC,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAA;QACtB,CAAC,CAAA;QAED,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5C;QACF,CAAC,CAAA;QAED,SAAS;QACT,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAmB;YACnC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,SAAS;gBACT,cAAc,EAAE,CAAA;aAChB;QACF,CAAC,CAAC,CAAA;QAEF,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,6BAA6B;aAClC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,gBAAgB;QAChB,WAAW,CAAC;YACX,sCAAsC;QACvC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC;aAC5B,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;oBACzC,OAAO,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC/B,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;wBAClB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;wBACzB,CAAC,EAAE,cAAc,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE;qBACtC,EAAE,cAAc,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC/C,CAAC,EAAE,MAAM,CAAC,EAAE;wBACZ,CAAC,EAAE,EAAE,CAAC;4BACJ,QAAQ,EAAE,cAAc,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE;yBAC7C,CAAC;wBACF,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,MAAM,CAAC,EAApB,CAAoB,EAAE,MAAM,CAAC,EAAE,CAAC;qBACjD,CAAC,CAAC;gBACL,CAAC,CAAC;gBACF,CAAC,EAAE,cAAc,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC;aAC/D,EAAE,cAAc,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;aACpC,EAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnD,CAAC,EAAE,YAAY,CAAC,KAAK;aACtB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACpB,OAAO,EAAE,CAAC;wBACR,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;qBACjC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1C,CAAC,EAAE,KAAK;qBACT,CAAC,CAAC;gBACL,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;aACtB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK;aACnB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnB,CAAC,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC;aAC1B,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpG,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,YAAY,CAAC,KAAK;aACtB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;oBACnB,OAAO;wBACL,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;wBACV,CAAC,EAAE,GAAG;wBACN,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAA7B,CAA6B,EAAE,GAAG,CAAC;qBACpD,CAAC;gBACJ,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,aAAa,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC;gBACnC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;aACtB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/85eec8aa8de6626f1127749a299524590820f4a4 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/85eec8aa8de6626f1127749a299524590820f4a4 deleted file mode 100644 index 4e78f3f0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/85eec8aa8de6626f1127749a299524590820f4a4 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ExchangeRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_type: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n points_used: { type: Number, optional: false },\n status: { type: Number, optional: false },\n tracking_no: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ExchangeRecord\"\n };\n }\n constructor(options, metadata = ExchangeRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_type = this.__props__.product_type;\n this.quantity = this.__props__.quantity;\n this.points_used = this.__props__.points_used;\n this.status = this.__props__.status;\n this.tracking_no = this.__props__.tracking_no;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'exchange-records',\n setup(__props) {\n const records = ref([]);\n const loading = ref(true);\n const loadRecords = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _u;\n loading.value = true;\n try {\n const result = yield supabaseService.getExchangeRecords();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n // 处理数组返回\n let recordData = null;\n if (Array.isArray(itemAny)) {\n recordData = itemAny[0];\n }\n else {\n recordData = itemAny;\n }\n let id = '';\n let quantity = 1;\n let points_used = 0;\n let status = 0;\n let tracking_no = null;\n let created_at = '';\n let product_name = '';\n let product_image = null;\n let product_type = 'coupon';\n // 使用 _getValue 方法\n if (typeof recordData._getValue === 'function') {\n id = (_a = recordData._getValue('id')) !== null && _a !== void 0 ? _a : '';\n quantity = (_b = recordData._getValue('quantity')) !== null && _b !== void 0 ? _b : 1;\n points_used = (_c = recordData._getValue('points_used')) !== null && _c !== void 0 ? _c : 0;\n status = (_d = recordData._getValue('status')) !== null && _d !== void 0 ? _d : 0;\n tracking_no = recordData._getValue('tracking_no');\n created_at = (_g = recordData._getValue('created_at')) !== null && _g !== void 0 ? _g : '';\n // 获取关联的商品信息\n const product = recordData._getValue('product');\n if (product != null) {\n const productAny = product;\n if (typeof productAny._getValue === 'function') {\n product_name = (_h = productAny._getValue('name')) !== null && _h !== void 0 ? _h : '';\n product_image = productAny._getValue('image_url');\n product_type = (_j = productAny._getValue('product_type')) !== null && _j !== void 0 ? _j : 'coupon';\n }\n }\n }\n else {\n id = (_k = recordData['id']) !== null && _k !== void 0 ? _k : '';\n quantity = (_l = recordData['quantity']) !== null && _l !== void 0 ? _l : 1;\n points_used = (_m = recordData['points_used']) !== null && _m !== void 0 ? _m : 0;\n status = (_o = recordData['status']) !== null && _o !== void 0 ? _o : 0;\n tracking_no = (_p = recordData['tracking_no']) !== null && _p !== void 0 ? _p : null;\n created_at = (_q = recordData['created_at']) !== null && _q !== void 0 ? _q : '';\n const product = recordData['product'];\n if (product != null) {\n product_name = (_r = product['name']) !== null && _r !== void 0 ? _r : '';\n product_image = (_s = product['image_url']) !== null && _s !== void 0 ? _s : null;\n product_type = (_u = product['product_type']) !== null && _u !== void 0 ? _u : 'coupon';\n }\n }\n parsed.push(new ExchangeRecord({\n id,\n product_name,\n product_image,\n product_type,\n quantity,\n points_used,\n status,\n tracking_no,\n created_at\n }));\n }\n records.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange-records.uvue:138', '加载兑换记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const getStatusText = (status) => {\n if (status === 0)\n return '待处理';\n if (status === 1)\n return '已发货';\n if (status === 2)\n return '已完成';\n if (status === 3)\n return '已取消';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-pending';\n if (status === 1)\n return 'status-shipped';\n if (status === 2)\n return 'status-completed';\n if (status === 3)\n return 'status-cancelled';\n return '';\n };\n const formatTime = (timeStr) => {\n if (timeStr == '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n onMounted(() => {\n loadRecords();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: !loading.value && records.value.length === 0\n }, !loading.value && records.value.length === 0 ? {} : {}, {\n b: loading.value\n }, loading.value ? {} : {}, {\n c: !loading.value && records.value.length > 0\n }, !loading.value && records.value.length > 0 ? {\n d: _f(records.value, (record, k0, i0) => {\n return _e({\n a: _t(record.product_name),\n b: _t(getStatusText(record.status)),\n c: _n(getStatusClass(record.status)),\n d: _t(record.points_used),\n e: _t(record.quantity),\n f: _t(formatTime(record.created_at)),\n g: record.tracking_no\n }, record.tracking_no ? {\n h: _t(record.tracking_no)\n } : {}, {\n i: record.id\n });\n })\n } : {}, {\n e: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/points/exchange-records.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"exchange-records.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"exchange-records.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/a1c5440e233d3d7ed66ede29187e7a44d23bb47b b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/a1c5440e233d3d7ed66ede29187e7a44d23bb47b deleted file mode 100644 index 2e7c7461..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/a1c5440e233d3d7ed66ede29187e7a44d23bb47b +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter, __read } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { UserType } from \"@/types/mall-types\";\nimport supabaseService from \"@/utils/supabaseService\";\nclass UserStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n points: { type: Number, optional: false },\n balance: { type: Number, optional: false },\n level: { type: Number, optional: false }\n };\n },\n name: \"UserStatsType\"\n };\n }\n constructor(options, metadata = UserStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.points = this.__props__.points;\n this.balance = this.__props__.balance;\n this.level = this.__props__.level;\n delete this.__props__;\n }\n}\nclass OrderCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total: { type: Number, optional: false },\n pending: { type: Number, optional: false },\n toship: { type: Number, optional: false },\n shipped: { type: Number, optional: false },\n review: { type: Number, optional: false }\n };\n },\n name: \"OrderCountsType\"\n };\n }\n constructor(options, metadata = OrderCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total = this.__props__.total;\n this.pending = this.__props__.pending;\n this.toship = this.__props__.toship;\n this.shipped = this.__props__.shipped;\n this.review = this.__props__.review;\n delete this.__props__;\n }\n}\nclass ServiceCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n coupons: { type: Number, optional: false },\n favorites: { type: Number, optional: false }\n };\n },\n name: \"ServiceCountsType\"\n };\n }\n constructor(options, metadata = ServiceCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.coupons = this.__props__.coupons;\n this.favorites = this.__props__.favorites;\n delete this.__props__;\n }\n}\nclass ConsumptionStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total_amount: { type: Number, optional: false },\n order_count: { type: Number, optional: false },\n avg_amount: { type: Number, optional: false },\n save_amount: { type: Number, optional: false }\n };\n },\n name: \"ConsumptionStatsType\"\n };\n }\n constructor(options, metadata = ConsumptionStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total_amount = this.__props__.total_amount;\n this.order_count = this.__props__.order_count;\n this.avg_amount = this.__props__.avg_amount;\n this.save_amount = this.__props__.save_amount;\n delete this.__props__;\n }\n}\nclass StatsPeriodType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n key: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"StatsPeriodType\"\n };\n }\n constructor(options, metadata = StatsPeriodType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.key = this.__props__.key;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n actual_amount: { type: Number, optional: false },\n created_at: { type: String, optional: false },\n ml_order_items: { type: \"Any\", optional: true },\n ml_shops: { type: \"Any\", optional: true },\n items_count: { type: Number, optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.actual_amount = this.__props__.actual_amount;\n this.created_at = this.__props__.created_at;\n this.ml_order_items = this.__props__.ml_order_items;\n this.ml_shops = this.__props__.ml_shops;\n this.items_count = this.__props__.items_count;\n delete this.__props__;\n }\n}\nexport default defineComponent({\n data() {\n return {\n userInfo: new UserType({\n id: '',\n phone: '',\n email: '',\n nickname: '',\n avatar_url: '',\n gender: 0,\n user_type: 0,\n status: 0,\n created_at: ''\n }),\n userStats: new UserStatsType({\n points: 0,\n balance: 0,\n level: 1\n }),\n orderCounts: new OrderCountsType({\n total: 0,\n pending: 0,\n toship: 0,\n shipped: 0,\n review: 0\n }),\n serviceCounts: new ServiceCountsType({\n coupons: 0,\n favorites: 0\n }),\n recentOrders: [],\n statsPeriods: [\n new StatsPeriodType({ key: 'month', label: '本月' }),\n new StatsPeriodType({ key: 'quarter', label: '本季度' }),\n new StatsPeriodType({ key: 'year', label: '本年' }),\n new StatsPeriodType({ key: 'all', label: '全部' })\n ],\n activeStatsPeriod: 'month',\n currentStats: new ConsumptionStatsType({\n total_amount: 0,\n order_count: 0,\n avg_amount: 0,\n save_amount: 0\n }),\n statusBarHeight: 0,\n currentOrderTab: 'all',\n allOrders: []\n };\n },\n onLoad() {\n this.initPage();\n this.loadUserProfile();\n this.loadOrders();\n // 监听订单更新事件\n uni.$on('orderUpdated', this.handleOrderUpdated);\n },\n onShow() {\n this.refreshData();\n },\n onUnload() {\n // 移除事件监听\n uni.$off('orderUpdated', this.handleOrderUpdated);\n },\n computed: {\n filteredOrders() {\n const result = [];\n if (this.currentOrderTab === 'all') {\n for (let i = 0; i < this.allOrders.length; i++) {\n result.push(this.allOrders[i]);\n }\n return result;\n }\n let targetStatus = 0;\n if (this.currentOrderTab === 'pending') {\n targetStatus = 1;\n }\n else if (this.currentOrderTab === 'toship') {\n targetStatus = 2;\n }\n else if (this.currentOrderTab === 'shipped') {\n targetStatus = 3;\n }\n else if (this.currentOrderTab === 'review') {\n targetStatus = 4;\n }\n else {\n return result;\n }\n for (let i = 0; i < this.allOrders.length; i++) {\n if (this.allOrders[i].status === targetStatus) {\n result.push(this.allOrders[i]);\n }\n }\n return result;\n }\n },\n methods: {\n loadOrders() {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const orders = yield supabaseService.getOrders();\n const mappedOrders = [];\n for (let i = 0; i < orders.length; i++) {\n const rawItem = orders[i];\n const o = UTS.JSON.parse(UTS.JSON.stringify(rawItem));\n let status = o.getNumber('status');\n if (status == null) {\n const orderStatus = o.getNumber('order_status');\n status = orderStatus != null ? orderStatus : 0;\n }\n let actualAmount = o.getNumber('actual_amount');\n if (actualAmount == null) {\n const totalAmount = o.getNumber('total_amount');\n actualAmount = totalAmount != null ? totalAmount : 0;\n }\n const mlOrderItems = o.get('ml_order_items');\n let itemsCount = 0;\n if (mlOrderItems != null && Array.isArray(mlOrderItems)) {\n itemsCount = mlOrderItems.length;\n }\n const orderItem = new OrderItemType({\n id: (_a = o.getString('id')) !== null && _a !== void 0 ? _a : '',\n order_no: (_b = o.getString('order_no')) !== null && _b !== void 0 ? _b : '',\n status: status,\n actual_amount: actualAmount,\n created_at: (_c = o.getString('created_at')) !== null && _c !== void 0 ? _c : '',\n ml_order_items: mlOrderItems,\n ml_shops: o.get('ml_shops'),\n items_count: itemsCount\n });\n mappedOrders.push(orderItem);\n }\n for (let i = 0; i < mappedOrders.length; i++) {\n for (let j = i + 1; j < mappedOrders.length; j++) {\n const dateA = mappedOrders[i]['created_at'];\n const dateB = mappedOrders[j]['created_at'];\n const timeA = new Date(dateA != null ? dateA : '1970-01-01').getTime();\n const timeB = new Date(dateB != null ? dateB : '1970-01-01').getTime();\n if (timeA < timeB) {\n const temp = mappedOrders[i];\n mappedOrders[i] = mappedOrders[j];\n mappedOrders[j] = temp;\n }\n }\n }\n this.allOrders = mappedOrders;\n const recentList = [];\n const limit = mappedOrders.length < 5 ? mappedOrders.length : 5;\n for (let i = 0; i < limit; i++) {\n recentList.push(mappedOrders[i]);\n }\n this.recentOrders = recentList;\n let total = 0;\n let pending = 0;\n let toship = 0;\n let shipped = 0;\n let review = 0;\n for (let i = 0; i < mappedOrders.length; i++) {\n total++;\n const status = mappedOrders[i].status;\n if (status === 1)\n pending++;\n else if (status === 2)\n toship++;\n else if (status === 3)\n shipped++;\n else if (status === 4)\n review++;\n }\n this.orderCounts = {\n total: total,\n pending: pending,\n toship: toship,\n shipped: shipped,\n review: review\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:507', '加载订单异常', e);\n }\n });\n },\n // 切换订单Tab\n switchOrderTab(tab) {\n this.currentOrderTab = tab;\n },\n // 获取当前订单部分标题\n getOrderSectionTitle() {\n if (this.currentOrderTab === 'all')\n return '全部订单';\n if (this.currentOrderTab === 'pending')\n return '待支付订单';\n if (this.currentOrderTab === 'shipped')\n return '待收货订单';\n if (this.currentOrderTab === 'review')\n return '待评价订单';\n return '我的订单';\n },\n initPage() {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n this.statusBarHeight = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n },\n loadUserProfile() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // 获取用户资料\n const profile = yield supabaseService.getUserProfile();\n if (profile != null) {\n // 映射字段\n let uId = '';\n let uPhone = '';\n let uEmail = '';\n let uNickname = '';\n let uAvatar = '';\n let uGender = 0;\n if (UTS.isInstanceOf(profile, UTSJSONObject)) {\n uId = (_a = profile.getString('user_id')) !== null && _a !== void 0 ? _a : '';\n uPhone = (_b = profile.getString('phone')) !== null && _b !== void 0 ? _b : '';\n uEmail = (_c = profile.getString('email')) !== null && _c !== void 0 ? _c : '';\n uNickname = (_d = profile.getString('nickname')) !== null && _d !== void 0 ? _d : '';\n uAvatar = (_e = profile.getString('avatar_url')) !== null && _e !== void 0 ? _e : '';\n uGender = (_f = profile.getNumber('gender')) !== null && _f !== void 0 ? _f : 0;\n }\n else {\n // 必须使用 JSON.parse(JSON.stringify()) 转换为 UTSJSONObject\n const profileObj = UTS.JSON.parse(UTS.JSON.stringify(profile));\n uId = (_g = profileObj.getString('user_id')) !== null && _g !== void 0 ? _g : '';\n uPhone = (_h = profileObj.getString('phone')) !== null && _h !== void 0 ? _h : '';\n uEmail = (_j = profileObj.getString('email')) !== null && _j !== void 0 ? _j : '';\n uNickname = (_k = profileObj.getString('nickname')) !== null && _k !== void 0 ? _k : '';\n uAvatar = (_l = profileObj.getString('avatar_url')) !== null && _l !== void 0 ? _l : '';\n uGender = (_m = profileObj.getNumber('gender')) !== null && _m !== void 0 ? _m : 0;\n }\n if (uNickname === '' && uPhone !== '') {\n uNickname = uPhone.substring(0, 3) + '****' + uPhone.substring(7);\n }\n this.userInfo = new UserType({\n id: uId,\n phone: uPhone,\n email: uEmail,\n nickname: uNickname != '' ? uNickname : '微信用户',\n avatar_url: uAvatar != '' ? uAvatar : '/static/default-avatar.png',\n gender: uGender,\n user_type: 1,\n status: 1,\n created_at: new Date().toISOString()\n });\n }\n else {\n // 如果获取失败(未登录或无档案),尝试获取当前登录ID\n const userId = supabaseService.getCurrentUserId();\n if (userId != null) {\n this.userInfo.id = userId;\n this.userInfo.nickname = '用户' + userId.substring(0, 4);\n }\n else {\n this.userInfo.nickname = '未登录';\n }\n }\n // 获取积分和余额(并行获取)\n const _p = __read(yield Promise.all([\n supabaseService.getUserBalance(),\n supabaseService.getUserPoints()\n ]), 2), balanceResult = _p[0], points = _p[1];\n const balanceValue = (_o = balanceResult.getNumber('balance')) !== null && _o !== void 0 ? _o : 0;\n this.userStats = new UserStatsType({\n points: points,\n balance: balanceValue,\n level: this.calculateLevel(points) // 根据积分计算等级\n });\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:601', '加载用户信息失败', e);\n // 保持默认或显示错误\n }\n });\n },\n calculateLevel(points) {\n if (points < 1000)\n return 0;\n if (points < 5000)\n return 1;\n if (points < 20000)\n return 2;\n if (points < 50000)\n return 3;\n return 4;\n },\n loadConsumptionStats() {\n if (this.activeStatsPeriod === 'month') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 1280.50,\n order_count: 8,\n avg_amount: 160.06,\n save_amount: 85.20\n });\n }\n else if (this.activeStatsPeriod === 'quarter') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 3680.80,\n order_count: 18,\n avg_amount: 204.49,\n save_amount: 256.30\n });\n }\n else if (this.activeStatsPeriod === 'year') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 15680.90,\n order_count: 56,\n avg_amount: 280.02,\n save_amount: 986.50\n });\n }\n else {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 25680.50,\n order_count: 89,\n avg_amount: 288.55,\n save_amount: 1580.20\n });\n }\n },\n refreshData() {\n // 刷新页面数据\n this.loadUserProfile();\n this.loadOrders();\n this.updateCouponCount(); // 更新优惠券数量\n },\n updateCouponCount() {\n return __awaiter(this, void 0, void 0, function* () {\n // 从 Supabase 获取真实的优惠券数量\n try {\n const count = yield supabaseService.getUserCouponCount();\n this.serviceCounts.coupons = count;\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:659', '获取优惠券数量失败', e);\n this.serviceCounts.coupons = 0;\n }\n });\n },\n getUserLevel() {\n const levels = ['新手', '铜牌会员', '银牌会员', '金牌会员', '钻石会员'];\n if (this.userStats.level >= 0 && this.userStats.level < levels.length) {\n return levels[this.userStats.level];\n }\n return '新手';\n },\n getOrderStatusText(status) {\n if (status === 6)\n return '退款中';\n if (status === 7)\n return '已退款';\n const statusTexts = ['异常', '待支付', '待发货', '待收货', '已完成', '已取消'];\n if (status >= 0 && status < statusTexts.length) {\n return statusTexts[status];\n }\n return '未知';\n },\n getOrderStatusClass(status) {\n if (status === 6)\n return 'refunding';\n if (status === 7)\n return 'refunded';\n const statusClasses = ['error', 'pending', 'processing', 'shipping', 'completed', 'cancelled'];\n if (status >= 0 && status < statusClasses.length) {\n return statusClasses[status];\n }\n return 'error';\n },\n showOrderMenu(order) {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n this.handleOrderAction(order, action);\n }\n });\n },\n handleOrderAction(order, action) {\n if (action === '取消订单') {\n this.cancelOrderAction(order);\n }\n else if (action === '联系卖家') {\n this.contactSeller(order);\n }\n else if (action === '提醒发货') {\n this.remindShipping(order);\n }\n else if (action === '申请退款' || action === '申请售后') {\n this.applyRefund(order);\n }\n else if (action === '查看物流') {\n this.viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n this.confirmReceive(order);\n }\n else if (action === '再次购买') {\n this.repurchase(order);\n }\n else if (action === '删除订单') {\n this.deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n this.viewRefundProgress(order.id);\n }\n },\n cancelOrderAction(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已取消', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '取消失败', icon: 'none' });\n });\n }\n }\n }));\n },\n contactSeller(order) {\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '暂无卖家联系方式', icon: 'none' });\n }\n },\n getMerchantIdFromOrder(order) {\n var _a;\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n return (_a = shopObj.getString('merchant_id')) !== null && _a !== void 0 ? _a : '';\n }\n }\n return '';\n },\n remindShipping(order) {\n uni.showLoading({ title: '提醒中...' });\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n const message = `你好,我的订单[${order.order_no}]还没有发货,请尽快安排,谢谢。`;\n supabaseService.sendChatMessage(message, merchantId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '已提醒卖家发货', icon: 'success' });\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '提醒失败', icon: 'none' });\n });\n }\n else {\n uni.hideLoading();\n uni.showToast({ title: '无法联系卖家', icon: 'none' });\n }\n },\n applyRefund(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${order.id}`\n });\n },\n viewLogistics(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n },\n repurchase(order) {\n var _a;\n uni.showLoading({ title: '处理中...' });\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null || itemsRaw.length === 0) {\n uni.hideLoading();\n uni.showToast({ title: '订单无商品', icon: 'none' });\n return null;\n }\n const items = itemsRaw;\n let completed = 0;\n const total = items.length;\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const itemStr = UTS.JSON.stringify(items[i]);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null) {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n continue;\n }\n const itemObj = itemParsed;\n const productId = (_a = itemObj.getString('product_id')) !== null && _a !== void 0 ? _a : '';\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId).then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }\n }\n },\n deleteOrder(orderId) {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已删除', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '删除失败', icon: 'none' });\n });\n }\n }\n }));\n },\n viewRefundProgress(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n getOrderMainImage(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '/static/product1.jpg';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '/static/product1.jpg';\n const itemObj = itemParsed;\n const imgUrl = itemObj.getString('image_url');\n const prodImg = itemObj.getString('product_image');\n const img = (imgUrl != null && imgUrl !== '') ? imgUrl : prodImg;\n if (img != null && img !== '')\n return img;\n }\n return '/static/product1.jpg';\n },\n getOrderTitle(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '精选商品';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '精选商品';\n const itemObj = itemParsed;\n const pName = itemObj.getString('product_name');\n const name = (pName != null && pName !== '') ? pName : '商品';\n return name;\n }\n return '精选商品';\n },\n getOrderSpec(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '';\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n if (specRaw == null)\n return '';\n if (typeof specRaw === 'string') {\n const specStr = specRaw;\n if (specStr.startsWith('{')) {\n try {\n const specObj = UTS.JSON.parse(specStr);\n const parts = [];\n const color = specObj.get('Color');\n if (color != null)\n parts.push('颜色: ' + color);\n const size = specObj.get('Size');\n if (size != null)\n parts.push('尺码: ' + size);\n if (parts.length > 0)\n return parts.join(' ');\n return specStr.replace(/[{}\"]/g, '');\n }\n catch (e) {\n return specStr;\n }\n }\n return specStr;\n }\n return UTS.JSON.stringify(specRaw).replace(/[{}\"]/g, '');\n }\n return '';\n },\n getOrderItemCount(order) {\n if (order.items_count != null && order.items_count > 0) {\n return order.items_count;\n }\n return 1;\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n formatDateTime(timeStr) {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const h = date.getHours().toString().padStart(2, '0');\n const i = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${h}:${i}`;\n },\n formatTime(timeStr) {\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n if (days === 0) {\n return '今天';\n }\n else if (days === 1) {\n return '昨天';\n }\n else {\n return `${days}天前`;\n }\n },\n switchStatsPeriod(period) {\n this.activeStatsPeriod = period;\n this.loadConsumptionStats();\n },\n editProfile() {\n uni.navigateTo({\n url: '/pages/mall/consumer/edit-profile'\n });\n },\n // 跳转设置\n goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/consumer/settings'\n });\n },\n // 跳转钱包\n goToWallet() {\n uni.navigateTo({\n url: '/pages/mall/consumer/wallet'\n });\n },\n goToOrders(type) {\n uni.navigateTo({\n url: `/pages/mall/consumer/orders?type=${type}`\n });\n },\n goShopping() {\n uni.switchTab({\n url: '/pages/main/index'\n });\n },\n viewOrderDetail(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?orderId=${order.id}`\n });\n },\n payOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${order.id}`\n });\n },\n confirmReceive(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确认已收到商品吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '处理中...' });\n supabaseService.confirmOrderReceived(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '确认收货成功',\n icon: 'success'\n });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n },\n reviewOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${order.id}`\n });\n },\n goToCoupons() {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToAddress() {\n // 暂时跳转到设置页的地址管理\n uni.navigateTo({\n url: '/pages/mall/consumer/address-list'\n });\n },\n goToFavorites() {\n uni.navigateTo({\n url: '/pages/mall/consumer/favorites'\n });\n },\n goToFootprint() {\n uni.navigateTo({\n url: '/pages/mall/consumer/footprint'\n });\n },\n goToRefund() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=refund'\n });\n },\n contactService() {\n uni.navigateTo({\n url: '/pages/mall/service/chat'\n });\n },\n goToOrderReviews() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=review'\n });\n },\n goToMySubscriptions() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/my-subscriptions'\n });\n },\n goToFollowedShops() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/followed-shops'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToBalance() {\n uni.navigateTo({\n url: '/pages/mall/consumer/balance/index'\n });\n },\n goToShare() {\n uni.navigateTo({\n url: '/pages/mall/consumer/share/index'\n });\n },\n goToMember() {\n uni.navigateTo({\n url: '/pages/mall/consumer/member/index'\n });\n },\n changePassword() {\n uni.navigateTo({\n url: '/pages/mall/consumer/change-password'\n });\n },\n bindPhone() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-phone'\n });\n },\n bindEmail() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-email'\n });\n },\n handleOrderUpdated(data = null) {\n uni.__f__('log', 'at pages/main/profile.uvue:1229', '收到订单更新事件:', data);\n this.refreshData();\n const dataObj = data;\n const status = dataObj.getNumber('status');\n if (status === 1) {\n uni.showToast({\n title: '订单已保存到待支付',\n icon: 'success'\n });\n }\n else if (status === 2) {\n uni.showToast({\n title: '支付成功,订单待发货',\n icon: 'success'\n });\n }\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/profile.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.$on","uni.$off","uni.__f__","uni.getSystemInfoSync","uni.showActionSheet","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b0076a85469e4dca455b80f0b0a5ecdf20542577 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b0076a85469e4dca455b80f0b0a5ecdf20542577 new file mode 100644 index 00000000..629ced6c --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b0076a85469e4dca455b80f0b0a5ecdf20542577 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { ProductType, MerchantType, ProductSkuType, CouponTemplateType, FootprintItemType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nexport default defineComponent({\n data() {\n return {\n product: new ProductType({\n id: '',\n merchant_id: '',\n category_id: '',\n name: '',\n description: '',\n images: [],\n price: 0,\n original_price: 0,\n stock: 0,\n sales: 0,\n status: 0,\n created_at: ''\n }),\n merchant: new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }),\n productSkus: [],\n currentImageIndex: 0,\n showSpec: false,\n selectedSkuId: '',\n selectedSpec: '',\n quantity: 1,\n isFavorite: false,\n showParams: false,\n // 新增: 优惠券相关\n coupons: [],\n showCoupons: false,\n // 会员价相关\n memberPrice: 0,\n memberDiscount: 0,\n memberLevelName: ''\n };\n },\n onLoad(options = null) {\n var _a;\n const opts = options;\n const productId = ((_a = opts['productId']) !== null && _a !== void 0 ? _a : opts['id']);\n const priceStr = opts['price'];\n const productPrice = priceStr != null ? parseFloat(priceStr) : null;\n const originalPriceStr = opts['originalPrice'];\n const productOriginalPrice = originalPriceStr != null ? parseFloat(originalPriceStr) : null;\n let productName = opts['name'];\n if (productName != null) {\n try {\n const decodedName = decodeURIComponent(productName);\n productName = decodedName;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:298', 'ProductName decode failed, using original:', productName);\n }\n }\n let productImage = opts['image'];\n if (productImage != null) {\n try {\n const decodedImage = decodeURIComponent(productImage);\n productImage = decodedImage;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:308', 'ProductImage decode failed, using original:', productImage);\n }\n }\n if (productId != null) {\n this.loadProductDetail(productId, new UTSJSONObject({\n price: productPrice,\n originalPrice: productOriginalPrice,\n name: productName,\n image: productImage\n }));\n this.checkFavoriteStatus(productId);\n this.saveFootprint(productId);\n if (productName != null) {\n uni.setNavigationBarTitle({\n title: productName\n });\n }\n }\n },\n computed: {\n displayPrice() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.price;\n }\n return this.product.price;\n }\n },\n methods: {\n saveFootprint(productId) {\n // 调用后端API记录足迹\n supabaseService.addFootprint(productId).then(success => {\n if (success === true) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:343', '足迹已同步到服务器');\n }\n });\n const footprintData = uni.getStorageSync('footprints');\n let footprints = [];\n if (footprintData != null && footprintData !== '') {\n try {\n footprints = UTS.JSON.parse(footprintData);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:354', 'Failed to parse footprints', e);\n }\n }\n // 移除已存在的相同商品(为了将其移到最新位置)\n const productIdStr = productId;\n footprints = footprints.filter(function (item = null) {\n var _a;\n const itemObj = item;\n const itemId = (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n return itemId != productIdStr;\n });\n // 添加到头部\n const productImage = this.product.images.length > 0 ? this.product.images[0] : '/static/default-product.png';\n footprints.unshift(new FootprintItemType({\n id: this.product.id,\n name: this.product.name,\n price: this.product.price,\n original_price: this.product.original_price,\n image: productImage,\n sales: this.product.sales,\n shopId: this.merchant.id,\n shopName: this.merchant.shop_name,\n viewTime: Date.now()\n }));\n // 限制数量,例如最近50条\n if (footprints.length > 50) {\n footprints = footprints.slice(0, 50);\n }\n uni.setStorageSync('footprints', UTS.JSON.stringify(footprints));\n },\n loadProductDetail(productId, options = new UTSJSONObject({})) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;\n return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '加载中...' });\n try {\n const dbProduct = yield supabaseService.getProductById(productId);\n if (dbProduct != null) {\n // 使用 getProductById 返回的 Product 对象\n this.product = new ProductType({\n id: dbProduct.id,\n merchant_id: (_a = dbProduct.merchant_id) !== null && _a !== void 0 ? _a : '',\n category_id: (_b = dbProduct.category_id) !== null && _b !== void 0 ? _b : '',\n name: dbProduct.name,\n description: (_c = dbProduct.description) !== null && _c !== void 0 ? _c : '',\n images: (_d = dbProduct.images) !== null && _d !== void 0 ? _d : [],\n price: (_f = (_e = dbProduct.price) !== null && _e !== void 0 ? _e : dbProduct.base_price) !== null && _f !== void 0 ? _f : 0,\n original_price: (_h = (_g = dbProduct.original_price) !== null && _g !== void 0 ? _g : dbProduct.market_price) !== null && _h !== void 0 ? _h : 0,\n stock: (_k = (_j = dbProduct.stock) !== null && _j !== void 0 ? _j : dbProduct.total_stock) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = dbProduct.sale_count) !== null && _l !== void 0 ? _l : 0,\n status: (_m = dbProduct.status) !== null && _m !== void 0 ? _m : 1,\n created_at: (_o = dbProduct.created_at) !== null && _o !== void 0 ? _o : new Date().toISOString(),\n specification: (_p = dbProduct.specification) !== null && _p !== void 0 ? _p : null,\n usage: (_q = dbProduct.usage) !== null && _q !== void 0 ? _q : null,\n side_effects: (_r = dbProduct.side_effects) !== null && _r !== void 0 ? _r : null,\n precautions: (_s = dbProduct.precautions) !== null && _s !== void 0 ? _s : null,\n expiry_date: (_t = dbProduct.expiry_date) !== null && _t !== void 0 ? _t : null,\n storage_conditions: (_u = dbProduct.storage_conditions) !== null && _u !== void 0 ? _u : null,\n approval_number: (_v = dbProduct.approval_number) !== null && _v !== void 0 ? _v : null,\n tags: []\n }\n // 解析 tags\n );\n // 解析 tags\n if (dbProduct.tags != null && dbProduct.tags != '') {\n try {\n const parsedTags = UTS.JSON.parse(dbProduct.tags);\n if (Array.isArray(parsedTags)) {\n this.product.tags = parsedTags.map((t = null) => { return t; });\n }\n }\n catch (e) { }\n }\n // Handle Images - 使用 main_image_url 作为后备\n if (this.product.images.length == 0 && dbProduct.main_image_url != null && dbProduct.main_image_url != '') {\n this.product.images.push(dbProduct.main_image_url);\n }\n // Final fallback\n if (this.product.images.length == 0) {\n this.product.images.push('/static/default-product.png');\n }\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:436', '商品详情加载成功:', this.product.name, '库存:', this.product.stock, '销量:', this.product.sales);\n }\n else {\n throw new Error('No product found');\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:441', 'Failed to load product detail:', e);\n // Fallback to options if available\n this.product.id = productId;\n const opts = options;\n const nameOpt = opts['name'];\n this.product.name = (nameOpt != null && nameOpt != '') ? (_w = decodeURIComponent(nameOpt)) !== null && _w !== void 0 ? _w : '未知商品' : '未知商品';\n // price 可能是 string 或 number 类型\n const priceOpt = opts['price'];\n if (typeof priceOpt == 'number') {\n this.product.price = priceOpt;\n }\n else if (typeof priceOpt == 'string') {\n this.product.price = parseFloat(priceOpt);\n }\n else {\n this.product.price = 0;\n }\n const imageOpt = opts['image'];\n const decodedImage = (imageOpt != null && imageOpt != '') ? decodeURIComponent(imageOpt) : null;\n this.product.images = decodedImage != null ? [decodedImage] : ['/static/default-product.png'];\n }\n // Load Merchant and SKUs\n if (this.product.merchant_id != null && this.product.merchant_id !== '') {\n yield this.loadMerchantInfo(this.product.merchant_id);\n // 加载优惠券\n this.loadCoupons();\n }\n if (this.product.id != null && this.product.id !== '') {\n this.loadProductSkus(this.product.id);\n }\n // 加载会员价\n this.loadMemberPrice();\n uni.hideLoading();\n });\n },\n loadMerchantInfo(merchantId) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return __awaiter(this, void 0, void 0, function* () {\n let realMerchantLoaded = false;\n if (merchantId.includes('-') || !merchantId.startsWith('merchant_')) {\n try {\n const shopResponse = yield supabaseService.getShopByMerchantId(merchantId);\n if (shopResponse != null) {\n // 直接使用 Shop 对象的属性\n this.merchant = new MerchantType({\n id: shopResponse.id,\n user_id: shopResponse.merchant_id,\n shop_name: shopResponse.shop_name,\n shop_logo: (_a = shopResponse.shop_logo) !== null && _a !== void 0 ? _a : '/static/default-shop.png',\n shop_banner: (_b = shopResponse.shop_banner) !== null && _b !== void 0 ? _b : '/static/default-banner.png',\n shop_description: (_c = shopResponse.description) !== null && _c !== void 0 ? _c : '',\n contact_name: (_d = shopResponse.contact_name) !== null && _d !== void 0 ? _d : '店主',\n contact_phone: (_e = shopResponse.contact_phone) !== null && _e !== void 0 ? _e : '',\n shop_status: 1,\n rating: (_f = shopResponse.rating_avg) !== null && _f !== void 0 ? _f : 5.0,\n total_sales: (_g = shopResponse.total_sales) !== null && _g !== void 0 ? _g : 0,\n created_at: (_h = shopResponse.created_at) !== null && _h !== void 0 ? _h : new Date().toISOString()\n });\n realMerchantLoaded = true;\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:501', '店铺信息加载成功:', this.merchant.shop_name);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:504', 'Load shop failed', e);\n }\n }\n if (!realMerchantLoaded) {\n let charSum = 0;\n for (let i = 0; i < merchantId.length; i++) {\n const charCode = merchantId.charCodeAt(i);\n if (charCode != null) {\n charSum += charCode;\n }\n }\n const merchantIndex = Math.abs(charSum) % 5;\n const shopNames = ['优质好店', '品牌直营店', '官方旗舰店', '专卖店', '精品小店'];\n this.merchant = new MerchantType({\n id: merchantId,\n user_id: 'user_mock_' + merchantIndex,\n shop_name: shopNames[merchantIndex],\n shop_logo: '/static/shop-logo.png',\n shop_banner: '/static/shop-banner.png',\n shop_description: '优质服务,正品保障',\n contact_name: '店主',\n contact_phone: '',\n shop_status: 1,\n rating: 4.8,\n total_sales: 999,\n created_at: '2023-01-01'\n });\n }\n });\n },\n loadProductSkus(productId) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n // 尝试从数据库加载SKU\n try {\n const skus = yield supabaseService.getProductSkus(productId);\n if (skus.length > 0) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:541', '加载到商品SKU:', skus.length);\n this.productSkus = [];\n for (let i = 0; i < skus.length; i++) {\n const skuData = skus[i];\n // 解析 specifications JSON 字符串\n let specs = new UTSJSONObject({});\n if (skuData.specifications != null && skuData.specifications != '') {\n try {\n specs = UTS.JSON.parse(skuData.specifications);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:551', '解析SKU规格失败', e);\n }\n }\n const sku = new ProductSkuType({\n id: skuData.id,\n product_id: skuData.product_id,\n sku_code: skuData.sku_code,\n specifications: specs,\n price: skuData.price,\n stock: (_a = skuData.stock) !== null && _a !== void 0 ? _a : 0,\n image_url: (_b = skuData.image_url) !== null && _b !== void 0 ? _b : '',\n status: (_c = skuData.status) !== null && _c !== void 0 ? _c : 1\n });\n this.productSkus.push(sku);\n }\n return Promise.resolve(null);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:569', 'Fetch SKUs error', e);\n }\n });\n },\n loadMemberPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const memberInfo = yield supabaseService.getUserMemberInfo();\n const levelNameRaw = memberInfo.get('level_name');\n const discountRaw = memberInfo.get('discount');\n if (levelNameRaw != null) {\n this.memberLevelName = levelNameRaw;\n }\n if (discountRaw != null) {\n const discount = discountRaw;\n if (discount > 0 && discount < 10) {\n this.memberDiscount = discount;\n this.memberPrice = Math.round(this.product.price * discount) / 10;\n }\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:591', '获取会员信息失败,可能未登录或非会员:', e);\n }\n });\n },\n // 新增:加载优惠券\n loadCoupons() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.merchant_id == '')\n return Promise.resolve(null);\n // Safety check for cached service definition\n try {\n const couponData = yield supabaseService.fetchShopCoupons(this.product.merchant_id);\n // 解析优惠券数据\n this.coupons = [];\n if (couponData != null && couponData.length > 0) {\n for (let i = 0; i < couponData.length; i++) {\n const item = couponData[i];\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const getSafeString = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return '';\n if (typeof val == 'string')\n return val;\n return '';\n };\n const getSafeNumber = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return 0;\n if (typeof val == 'number')\n return val;\n return 0;\n };\n const coupon = new CouponTemplateType({\n id: getSafeString('id'),\n name: getSafeString('name'),\n description: getSafeString('description'),\n coupon_type: getSafeNumber('coupon_type'),\n discount_type: getSafeNumber('discount_type'),\n discount_value: getSafeNumber('discount_value'),\n min_order_amount: getSafeNumber('min_order_amount'),\n max_discount_amount: getSafeNumber('max_discount_amount'),\n total_quantity: getSafeNumber('total_quantity'),\n per_user_limit: getSafeNumber('per_user_limit'),\n usage_limit: getSafeNumber('usage_limit'),\n merchant_id: getSafeString('merchant_id'),\n category_ids: [],\n product_ids: [],\n user_type_limit: getSafeNumber('user_type_limit'),\n start_time: getSafeString('start_time'),\n end_time: getSafeString('end_time'),\n status: getSafeNumber('status'),\n created_at: getSafeString('created_at')\n });\n this.coupons.push(coupon);\n }\n }\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:647', 'SupabaseService coupon methods not available:', e);\n }\n });\n },\n // 新增:联系客服(商家)\n contactMerchant() {\n var _a, _b;\n if (supabaseService.getCurrentUserId() == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return null;\n }\n // Navigate to chat\n const merchId = (_b = (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.merchant.id) !== null && _b !== void 0 ? _b : this.product.merchant_id;\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchId}&merchantName=${this.merchant.shop_name}`\n });\n },\n // 新增:优惠券弹窗\n showCouponModal() {\n this.showCoupons = true;\n },\n hideCouponModal() {\n this.showCoupons = false;\n },\n // 新增:领取优惠券\n claimCoupon(coupon) {\n return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n let success = false;\n const couponId = coupon.id;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:691', 'claimCoupon method missing:', e2);\n }\n }\n uni.hideLoading();\n if (success === true) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败或已领取', icon: 'none' });\n }\n });\n },\n formatDate(dateStr) {\n if (dateStr == '')\n return '';\n const date = new Date(dateStr);\n return `${date.getFullYear()}.${date.getMonth() + 1}.${date.getDate()}`;\n },\n onSwiperChange(e = null) {\n const eventObj = e;\n const detail = eventObj['detail'];\n this.currentImageIndex = detail['current'];\n },\n showSpecModal() {\n this.showSpec = true;\n },\n hideSpecModal() {\n this.showSpec = false;\n },\n selectSku(sku) {\n this.selectedSkuId = sku.id;\n this.selectedSpec = this.getSkuSpecText(sku);\n this.hideSpecModal();\n },\n getSkuSpecText(sku) {\n var _a;\n if (sku.specifications != null) {\n const specs = sku.specifications;\n let specStr = '';\n // 在 UTS 中遍历 UTSJSONObject 的推荐方式\n for (const key in specs) {\n const val = specs[key];\n if (val != null) {\n specStr += (specStr === '' ? '' : ' ') + val.toString();\n }\n }\n if (specStr !== '') {\n return specStr;\n }\n }\n return (_a = sku.sku_code) !== null && _a !== void 0 ? _a : '';\n },\n addToCart() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '添加中...' });\n try {\n const success = yield supabaseService.addToCart(this.product.id, this.quantity, this.selectedSkuId, this.product.merchant_id);\n uni.hideLoading();\n if (success === true) {\n uni.showToast({ title: '已添加到购物车', icon: 'success' });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:770', '添加购物车返回失败');\n uni.showToast({ title: '添加失败,请登录重试', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:775', '添加购物车异常', e);\n uni.showToast({ title: '添加异常', icon: 'none' });\n }\n });\n },\n buyNow() {\n var _a;\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n return null;\n }\n const sku = (this.selectedSkuId != null && this.selectedSkuId !== '') ? UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; }) : null;\n const selectedItem = new UTSJSONObject({\n id: this.selectedSkuId,\n product_id: this.product.id,\n sku_id: this.selectedSkuId,\n product_name: this.product.name,\n product_image: (sku != null && sku.image_url != null) ? sku.image_url : this.product.images[0],\n sku_specifications: sku != null ? sku.specifications : new UTSJSONObject({}),\n price: parseFloat((sku != null ? sku.price : this.product.price).toString()).toFixed(2),\n quantity: this.quantity,\n shop_id: this.merchant.id,\n shop_name: this.merchant.shop_name,\n merchant_id: (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.product.merchant_id\n });\n uni.setStorageSync('checkout_type', 'buy_now');\n uni.setStorageSync('checkout_items', UTS.JSON.stringify([selectedItem]));\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n },\n checkFavoriteStatus(id) {\n this.checkFavorite(id);\n },\n checkFavorite(id) {\n return __awaiter(this, void 0, void 0, function* () {\n const isFav = yield supabaseService.checkFavorite(id);\n this.isFavorite = isFav;\n });\n },\n toggleFavorite() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.id == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n try {\n const wasFavorite = this.isFavorite;\n const isNowFavorite = yield supabaseService.toggleFavorite(this.product.id);\n uni.hideLoading();\n if (isNowFavorite !== wasFavorite) {\n this.isFavorite = isNowFavorite;\n uni.showToast({\n title: isNowFavorite ? '收藏成功' : '已取消收藏',\n icon: 'success'\n });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n this.checkFavoriteStatus(this.product.id);\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:843', 'Toggle favorite failed', e);\n uni.showToast({ title: '操作异常', icon: 'none' });\n }\n });\n },\n goToHome() {\n uni.switchTab({ url: '/pages/mall/consumer/home' });\n },\n goToShop() {\n var _a, _b;\n const merchantId = (_b = (_a = this.merchant.id) !== null && _a !== void 0 ? _a : this.product.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:855', '进店点击,merchantId:', merchantId);\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({\n title: '店铺信息加载中',\n icon: 'none'\n });\n }\n },\n goToCart() {\n uni.switchTab({ url: '/pages/main/cart' });\n },\n decreaseQuantity() {\n if (this.quantity > 1) {\n this.quantity--;\n }\n },\n increaseQuantity() {\n const maxQuantity = this.getMaxQuantity();\n if (this.quantity < maxQuantity) {\n this.quantity++;\n }\n else {\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n },\n validateQuantity() {\n let num = this.quantity;\n const maxQuantity = this.getMaxQuantity();\n if (num < 1)\n num = 1;\n else if (num > maxQuantity) {\n num = maxQuantity;\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n this.quantity = num;\n },\n getMaxQuantity() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.stock;\n }\n return this.product.stock;\n },\n getAvailableStock() {\n return this.getMaxQuantity();\n },\n previewImage(index) {\n uni.previewImage({\n current: index,\n urls: this.product.images\n });\n },\n showParamsModal() {\n this.showParams = true;\n },\n hideParamsModal() {\n this.showParams = false;\n },\n getParamsSummary() {\n let summary = '';\n if (this.product.specification != null && this.product.specification != '')\n summary += '规格 ';\n if (this.product.expiry_date != null && this.product.expiry_date != '')\n summary += '有效期 ';\n if (this.product.approval_number != null && this.product.approval_number != '')\n summary += '批准文号 ';\n const finalSummary = summary.trim();\n return finalSummary != '' ? finalSummary : '查看详情';\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/product-detail.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.setNavigationBarTitle","uni.getStorageSync","uni.setStorageSync","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.showToast","uni.switchTab","uni.previewImage"],"map":"{\"version\":3,\"file\":\"product-detail.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-detail.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b5f163275b67ceae118c8e91cac4b0c6df47e634 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b5f163275b67ceae118c8e91cac4b0c6df47e634 deleted file mode 100644 index 6844dfd2..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b5f163275b67ceae118c8e91cac4b0c6df47e634 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted, computed } from 'vue';\nimport { onShow, onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass OrderTabItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n count: { type: Number, optional: false }\n };\n },\n name: \"OrderTabItem\"\n };\n }\n constructor(options, metadata = OrderTabItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.count = this.__props__.count;\n delete this.__props__;\n }\n}\nclass OrderProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false }\n };\n },\n name: \"OrderProduct\"\n };\n }\n constructor(options, metadata = OrderProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n delete this.__props__;\n }\n}\nclass OrderItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n create_time: { type: String, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n merchant_id: { type: String, optional: false },\n shop_name: { type: String, optional: false },\n products: { type: UTS.UTSType.withGenerics(Array, [OrderProduct]), optional: false }\n };\n },\n name: \"OrderItem\"\n };\n }\n constructor(options, metadata = OrderItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.create_time = this.__props__.create_time;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.total_amount = this.__props__.total_amount;\n this.merchant_id = this.__props__.merchant_id;\n this.shop_name = this.__props__.shop_name;\n this.products = this.__props__.products;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'orders',\n setup(__props) {\n const orders = ref([]);\n const allOrdersList = ref([]); // Store all fetched orders for client-side filtering\n const loading = ref(false);\n const loadingMore = ref(false);\n const hasMore = ref(true);\n const refreshing = ref(false);\n const page = ref(1);\n const activeTab = ref('all');\n const statusBarHeight = ref(0);\n const searchKeyword = ref('');\n // 订单标签页 - 使用 ref 以便整体替换\n const orderTabs = ref([\n new OrderTabItem({ id: 'all', name: '全部', count: 0 }),\n new OrderTabItem({ id: 'pending', name: '待付款', count: 0 }),\n new OrderTabItem({ id: 'shipping', name: '待发货', count: 0 }),\n new OrderTabItem({ id: 'delivering', name: '待收货', count: 0 }),\n new OrderTabItem({ id: 'completed', name: '已完成', count: 0 }),\n new OrderTabItem({ id: 'aftersale', name: '售后', count: 0 }),\n new OrderTabItem({ id: 'cancelled', name: '已取消', count: 0 })\n ]);\n // 模拟状态筛选(除去\"全部\"后的其余标签)\n const orderTabsMobile = computed(() => {\n return orderTabs.value.filter((tab) => { return tab.id !== 'all'; });\n });\n // 辅助函数:获取状态码\n const getStatusByTab = (tabId) => {\n if (tabId == 'pending')\n return 1;\n if (tabId == 'shipping')\n return 2;\n if (tabId == 'delivering')\n return 3;\n if (tabId == 'completed')\n return 4;\n if (tabId == 'cancelled')\n return 5;\n if (tabId == 'aftersale')\n return 6;\n return 0;\n };\n // 格式化规格对象为友好的文本 - 必须在 parseSpecText 之前定义\n function formatSpecObj(obj = null) {\n if (obj == null)\n return '';\n if (typeof obj !== 'object') {\n // 非对象类型直接返回字符串形式\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number')\n return obj.toString();\n return '';\n }\n try {\n const objStr = UTS.JSON.stringify(obj);\n const objParsed = UTS.JSON.parse(objStr);\n if (objParsed == null)\n return '';\n const specObj = objParsed;\n // 使用 JSON.stringify 获取所有键\n const specObjStr = UTS.JSON.stringify(specObj);\n const specObjForKeys = UTS.JSON.parse(specObjStr);\n // 手动提取键值对\n const parts = [];\n // 尝试获取已知字段\n const colorVal = specObjForKeys.getString('Color');\n if (colorVal != null && colorVal != '') {\n parts.push('Color: ' + colorVal);\n }\n const sizeVal = specObjForKeys.getString('Size');\n if (sizeVal != null && sizeVal != '') {\n parts.push('Size: ' + sizeVal);\n }\n const defaultVal = specObjForKeys.getString('默认');\n if (defaultVal != null && defaultVal != '') {\n parts.push('默认: ' + defaultVal);\n }\n // 如果没有匹配到已知字段,尝试直接显示 JSON\n if (parts.length === 0) {\n // 尝试遍历对象\n const objAny = specObjForKeys;\n if (objAny != null) {\n return specObjStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n }\n return parts.join(' | ');\n }\n catch (e) {\n return '';\n }\n }\n // 辅助函数:解析规格文本\n function parseSpecText(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n // 如果是 JSON 字符串,尝试解析\n if (specs.startsWith('{') || specs.startsWith('[')) {\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed == null)\n return specs;\n return formatSpecObj(parsed);\n }\n catch (e) {\n return specs;\n }\n }\n return specs;\n }\n // 对于对象类型,格式化显示\n return formatSpecObj(specs);\n }\n // 辅助函数:更新标签计数\n const updateTabsCounts = (allOrders) => {\n const countAll = allOrders.length;\n const countPending = allOrders.filter((o) => { return o.status === 1; }).length;\n const countShipping = allOrders.filter((o) => { return o.status === 2; }).length;\n const countDelivering = allOrders.filter((o) => { return o.status === 3; }).length;\n const countCompleted = allOrders.filter((o) => { return o.status === 4; }).length;\n const countCancelled = allOrders.filter((o) => { return o.status === 5; }).length;\n const countAftersale = allOrders.filter((o) => { return o.status === 6 || o.status === 7; }).length;\n orderTabs.value[0].count = countAll;\n orderTabs.value[1].count = countPending;\n orderTabs.value[2].count = countShipping;\n orderTabs.value[3].count = countDelivering;\n orderTabs.value[4].count = countCompleted;\n orderTabs.value[5].count = countAftersale;\n orderTabs.value[6].count = countCancelled;\n };\n // 辅助函数:按标签筛选订单\n const filterOrdersByTab = () => {\n if (activeTab.value === 'all') {\n orders.value = allOrdersList.value;\n }\n else if (activeTab.value === 'aftersale') {\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === 6 || o.status === 7;\n });\n }\n else {\n const targetStatus = getStatusByTab(activeTab.value);\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === targetStatus;\n });\n }\n };\n // 加载订单数据\n const loadOrders = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n loading.value = true;\n try {\n // Fetch all orders from Supabase (status=0)\n const fetchedOrders = yield supabaseService.getOrders(0);\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:374', '[loadOrders] 获取到订单数量:', fetchedOrders.length);\n // Map to View Model\n const mappedOrders = [];\n for (let i = 0; i < fetchedOrders.length; i++) {\n const order = fetchedOrders[i];\n // 使用 JSON 序列化转换\n const orderStr = UTS.JSON.stringify(order);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null)\n continue;\n const orderObj = orderParsed;\n const itemsRaw = orderObj.get('ml_order_items');\n const productsList = [];\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:389', '[loadOrders] 订单商品数据:', itemsRaw);\n if (itemsRaw != null) {\n // 先检查是否为数组\n if (Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:395', '[loadOrders] 商品数量:', items.length);\n for (let j = 0; j < items.length; j++) {\n const item = items[j];\n const itemStr = UTS.JSON.stringify(item);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n continue;\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n const specText = specRaw != null ? parseSpecText(specRaw) : '';\n const productId = itemObj.getString('product_id');\n const productName = itemObj.getString('product_name');\n const price = itemObj.getNumber('price');\n const imageUrl = itemObj.getString('image_url');\n const quantity = itemObj.getNumber('quantity');\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:412', '[loadOrders] 商品:', productName, '图片:', imageUrl, '规格:', specText);\n const productItem = new OrderProduct({\n id: productId !== null && productId !== void 0 ? productId : '',\n name: productName !== null && productName !== void 0 ? productName : '未知商品',\n price: price !== null && price !== void 0 ? price : 0,\n image: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '/static/default-product.png',\n spec: specText,\n quantity: quantity !== null && quantity !== void 0 ? quantity : 1\n });\n productsList.push(productItem);\n }\n }\n }\n const orderId = orderObj.getString('id');\n const orderNo = orderObj.getString('order_no');\n const orderStatus = orderObj.getNumber('order_status');\n const createdAt = orderObj.getString('created_at');\n const productAmount = orderObj.getNumber('product_amount');\n const shippingFee = orderObj.getNumber('shipping_fee');\n const totalAmount = orderObj.getNumber('total_amount');\n const paidAmount = orderObj.getNumber('paid_amount');\n const merchantId = orderObj.getString('merchant_id');\n // 从关联查询的 ml_shops 表获取店铺名称\n let shopName = '自营店铺';\n const shopsRaw = orderObj.get('ml_shops');\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const shopNameFromDb = shopObj.getString('shop_name');\n if (shopNameFromDb != null && shopNameFromDb != '') {\n shopName = shopNameFromDb;\n }\n }\n }\n else if (merchantId != null && merchantId != '') {\n shopName = '商家店铺';\n }\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:454', '[loadOrders] 订单号:', orderNo, '店铺:', shopName, '商品数:', productsList.length);\n // 如果没有商品数据,添加一个占位商品\n if (productsList.length === 0) {\n const placeholderProduct = new OrderProduct({\n id: 'placeholder',\n name: '订单商品',\n price: (_a = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _a !== void 0 ? _a : 0,\n image: '/static/default-product.png',\n spec: '',\n quantity: 1\n });\n productsList.push(placeholderProduct);\n }\n const mappedOrder = new OrderItem({\n id: orderId !== null && orderId !== void 0 ? orderId : '',\n order_no: orderNo !== null && orderNo !== void 0 ? orderNo : '',\n status: orderStatus !== null && orderStatus !== void 0 ? orderStatus : 1,\n create_time: createdAt !== null && createdAt !== void 0 ? createdAt : '',\n product_amount: productAmount !== null && productAmount !== void 0 ? productAmount : 0,\n shipping_fee: shippingFee !== null && shippingFee !== void 0 ? shippingFee : 0,\n total_amount: (_b = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _b !== void 0 ? _b : 0,\n merchant_id: merchantId !== null && merchantId !== void 0 ? merchantId : '',\n shop_name: shopName,\n products: productsList\n });\n mappedOrders.push(mappedOrder);\n }\n // Sort by created_at desc - 直接使用 OrderItem 类型访问属性\n mappedOrders.sort((a, b) => {\n const timeA = new Date(a.create_time).getTime();\n const timeB = new Date(b.create_time).getTime();\n return timeB - timeA;\n });\n allOrdersList.value = mappedOrders;\n // Update tab counts\n updateTabsCounts(mappedOrders);\n // Apply current tab filter\n filterOrdersByTab();\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:500', '加载订单异常:', err);\n uni.showToast({ title: '加载订单失败', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n // 生命周期\n onLoad((options = null) => {\n var _a;\n // 初始化状态栏高度\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n if (options == null)\n return null;\n const statusVal = options['status'];\n if (statusVal != null) {\n const status = statusVal;\n if (['all', 'pending', 'shipping', 'delivering', 'completed', 'aftersale', 'cancelled'].includes(status)) {\n activeTab.value = status;\n }\n }\n const typeVal = options['type'];\n if (typeVal != null) {\n const type = typeVal;\n if (type === 'pending')\n activeTab.value = 'pending';\n else if (type === 'shipped')\n activeTab.value = 'delivering'; // 映射到待收货\n else if (type === 'review')\n activeTab.value = 'completed'; // 映射到已完成\n else if (type === 'refund')\n activeTab.value = 'aftersale'; // 退款/售后跳转到售后标签页\n }\n });\n onShow(() => {\n loadOrders();\n });\n const formatDate = (isoString) => {\n if (isoString == '')\n return '';\n const date = new Date(isoString);\n return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n };\n // 辅助函数:获取当前订单数据(必须在 performSearch 之前定义)\n function getCurrentOrderData() {\n return allOrdersList.value;\n }\n // 搜索执行函数(必须在 onSearchInput 等之前定义)\n const performSearch = () => {\n const keyword = searchKeyword.value.trim().toLowerCase();\n if (keyword == '') {\n loadOrders();\n return null;\n }\n // 在当前订单数据中搜索\n const allOrders = getCurrentOrderData();\n const filtered = allOrders.filter((order = null) => {\n const orderObj = order;\n // 搜索订单号\n const orderNo = orderObj['order_no'];\n if (orderNo != null && orderNo.toLowerCase().includes(keyword)) {\n return true;\n }\n // 搜索商品名称\n const products = orderObj['products'];\n if (products != null && Array.isArray(products)) {\n return products.some((product = null) => {\n const productObj = product;\n const name = productObj['name'];\n return name != null && name.toLowerCase().includes(keyword);\n });\n }\n return false;\n });\n orders.value = filtered;\n };\n // 搜索相关函数\n const onSearchInput = (e = null) => {\n const eObj = e;\n const detail = eObj['detail'];\n searchKeyword.value = detail['value'];\n performSearch();\n };\n const onSearchConfirm = () => {\n performSearch();\n };\n const clearSearch = () => {\n searchKeyword.value = '';\n performSearch();\n };\n const formatSpec = (specs = null) => {\n if (specs == null)\n return '';\n if (typeof specs === 'string')\n return specs;\n if (typeof specs === 'object') {\n return UTS.JSON.stringify(specs);\n }\n return '';\n };\n // 切换标签\n const switchTab = (tabId) => {\n activeTab.value = tabId;\n filterOrdersByTab();\n };\n // 获取状态文本\n const getStatusText = (status) => {\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n // 获取状态类名\n const getStatusClass = (status) => {\n if (status == 1)\n return 'status-pending';\n if (status == 2)\n return 'status-shipping';\n if (status == 3)\n return 'status-delivering';\n if (status == 4)\n return 'status-completed';\n if (status == 5)\n return 'status-cancelled';\n if (status == 6)\n return 'status-refunding';\n if (status == 7)\n return 'status-refunded';\n return 'status-unknown';\n };\n // 联系卖家\n const contactSeller = (order) => {\n if (order.merchant_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${order.merchant_id}`\n });\n }\n else {\n uni.showToast({\n title: '暂无卖家联系方式',\n icon: 'none'\n });\n }\n };\n // 删除订单\n const deleteOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '订单已删除',\n icon: 'success'\n });\n loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n // 下拉刷新\n const onRefresh = () => {\n refreshing.value = true;\n setTimeout(() => {\n loadOrders();\n refreshing.value = false;\n uni.showToast({\n title: '刷新成功',\n icon: 'success'\n });\n }, 1000);\n };\n // 上拉加载更多\n const loadMore = () => {\n if (loadingMore.value || !hasMore.value)\n return null;\n // 暂未实现分页,直接返回\n hasMore.value = false;\n };\n // 订单操作函数\n const cancelOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(orderId).then((success) => {\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '订单已取消',\n icon: 'success'\n });\n loadOrders();\n }\n else {\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n }\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n const payOrder = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId}`\n });\n };\n const remindShipping = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n // 基础提醒\n uni.showLoading({ title: '正在提醒...' });\n try {\n // 查找订单中的商家ID\n const order = UTS.arrayFind(orders.value, o => { return o.id === orderId; });\n if (order != null) {\n const merchantId = order.merchant_id;\n const orderNo = order.order_no;\n if (merchantId != '') {\n // 向商家发送自动催单消息\n const message = `你好,我的订单[${orderNo}]还没有发货,请尽快安排,谢谢。`;\n const success = yield supabaseService.sendChatMessage(message, merchantId);\n if (success) {\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:755', '催单消息发送成功');\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/orders.uvue:757', '催单消息发送失败,可能是由于网络原因');\n }\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:762', '提醒发货异常:', e);\n }\n finally {\n uni.hideLoading();\n }\n uni.showToast({\n title: '已提醒卖家发货',\n icon: 'success'\n });\n }); };\n const viewLogistics = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n };\n // goReview 必须在 doConfirmReceipt 之前定义,因为 doConfirmReceipt 会调用它\n const goReview = (order) => {\n const productIds = order.products.map((p) => {\n return p.id;\n }).join(',');\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${orderId}&productIds=${productIds}`\n });\n };\n const doConfirmReceipt = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '处理中...' });\n try {\n const result = yield supabaseService.confirmReceipt(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({\n title: '收货成功',\n icon: 'success'\n });\n // 更新本地状态\n const index = orders.value.findIndex((o) => { return o.id === orderId; });\n if (index !== -1) {\n orders.value[index].status = 4;\n orders.value = [...orders.value];\n }\n // 跳转到评价页面\n setTimeout(() => {\n const order = UTS.arrayFind(orders.value, (o) => { return o.id === orderId; });\n if (order != null) {\n goReview(order);\n }\n }, 1000);\n }\n else {\n uni.showToast({\n title: (_a = result.error) !== null && _a !== void 0 ? _a : '确认收货失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.showToast({\n title: '系统异常',\n icon: 'none'\n });\n }\n }); };\n const confirmReceipt = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '请确认您已收到商品,且商品无误',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceipt(orderId);\n }\n }\n }));\n };\n const repurchase = (order) => {\n const products = order.products;\n if (products.length === 0) {\n uni.showToast({\n title: '订单无商品',\n icon: 'none'\n });\n return null;\n }\n uni.showLoading({ title: '处理中...' });\n let completed = 0;\n const total = products.length;\n let successCount = 0;\n for (let i = 0; i < products.length; i++) {\n const product = products[i];\n const productId = product.id;\n const merchantId = order.merchant_id;\n if (productId != null && productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId !== null && merchantId !== void 0 ? merchantId : '').then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n }\n };\n const viewOrderDetail = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?id=${orderId}`\n });\n };\n const onApplyRefund = (order) => {\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${orderId}`\n });\n };\n const viewRefundProgress = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n };\n const doCancelRefund = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '处理中...' });\n const result = yield supabaseService.cancelRefund(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({ title: '已取消退款', icon: 'success' });\n loadOrders();\n }\n else {\n uni.showToast({ title: result.message, icon: 'none' });\n }\n }); };\n // 取消退款申请\n const cancelRefund = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消退款申请吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelRefund(orderId);\n }\n }\n }));\n };\n // 处理订单操作\n const handleOrderAction = (order, action) => {\n if (action === '取消订单') {\n cancelOrder(order.id);\n }\n else if (action === '联系卖家') {\n contactSeller(order);\n }\n else if (action === '提醒发货') {\n remindShipping(order.id);\n }\n else if (action === '申请退款' || action === '申请售后') {\n onApplyRefund(order);\n }\n else if (action === '查看物流') {\n viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n confirmReceipt(order.id);\n }\n else if (action === '再次购买') {\n repurchase(order);\n }\n else if (action === '删除订单') {\n deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n viewRefundProgress(order.id);\n }\n else if (action === '取消退款') {\n cancelRefund(order.id);\n }\n };\n // 显示订单操作菜单\n const showOrderMenu = (order) => {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['取消退款', '退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n handleOrderAction(order, action);\n }\n });\n };\n // 导航函数\n const navigateToSearch = () => {\n uni.navigateTo({ url: '/pages/mall/consumer/search' });\n };\n const navigateToProduct = (product) => {\n const productId = product.id;\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${productId}` });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: searchKeyword.value,\n b: _o(onSearchInput),\n c: _o(onSearchConfirm),\n d: searchKeyword.value\n }, searchKeyword.value ? {\n e: _o(clearSearch)\n } : {}, {\n f: statusBarHeight.value + 'px',\n g: activeTab.value === 'all'\n }, activeTab.value === 'all' ? {} : {}, {\n h: _n({\n active: activeTab.value === 'all'\n }),\n i: _o($event => { return switchTab('all'); }),\n j: _f(orderTabsMobile.value, (tab, k0, i0) => {\n return _e({\n a: _t(tab.name),\n b: tab.count > 0\n }, tab.count > 0 ? {\n c: _t(tab.count)\n } : {}, {\n d: activeTab.value === tab.id\n }, activeTab.value === tab.id ? {} : {}, {\n e: tab.id,\n f: _n({\n active: activeTab.value === tab.id\n }),\n g: _o($event => { return switchTab(tab.id); }, tab.id)\n });\n }),\n k: !loading.value && orders.value.length === 0\n }, !loading.value && orders.value.length === 0 ? {\n l: _o(goShopping)\n } : {\n m: _f(orders.value, (order, k0, i0) => {\n return _e({\n a: _t(order.shop_name != null && order.shop_name != '' ? order.shop_name : '自营店铺'),\n b: _t(getStatusText(order.status)),\n c: _n(getStatusClass(order.status)),\n d: _o($event => { return showOrderMenu(order); }, order.id),\n e: _f(order.products, (product, k1, i1) => {\n return {\n a: product.image,\n b: _t(product.name),\n c: _t(product.spec),\n d: _t(product.price),\n e: _t(product.quantity),\n f: product.id,\n g: _o($event => { return navigateToProduct(product); }, product.id)\n };\n }),\n f: _t(formatDate(order.create_time)),\n g: _t(order.products.length),\n h: _t(order.total_amount),\n i: order.status === 1\n }, order.status === 1 ? {\n j: _o($event => { return cancelOrder(order.id); }, order.id),\n k: _o($event => { return payOrder(order.id); }, order.id)\n } : {}, {\n l: order.status === 2\n }, order.status === 2 ? {\n m: _o($event => { return remindShipping(order.id); }, order.id),\n n: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n o: order.status === 3\n }, order.status === 3 ? {\n p: _o($event => { return viewLogistics(order.id); }, order.id),\n q: _o($event => { return confirmReceipt(order.id); }, order.id),\n r: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n s: order.status === 4\n }, order.status === 4 ? {\n t: _o($event => { return goReview(order); }, order.id),\n v: _o($event => { return onApplyRefund(order); }, order.id),\n w: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n x: order.status === 5\n }, order.status === 5 ? {\n y: _o($event => { return viewOrderDetail(order.id); }, order.id)\n } : {}, {\n z: order.status === 6\n }, order.status === 6 ? {\n A: _o($event => { return viewOrderDetail(order.id); }, order.id),\n B: _o($event => { return cancelRefund(order.id); }, order.id),\n C: _o($event => { return viewRefundProgress(order.id); }, order.id)\n } : {}, {\n D: order.status === 7\n }, order.status === 7 ? {\n E: _o($event => { return viewOrderDetail(order.id); }, order.id),\n F: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n G: _o(() => { }, order.id),\n H: order.id,\n I: _o($event => { return viewOrderDetail(order.id); }, order.id)\n });\n })\n }, {\n n: loadingMore.value\n }, loadingMore.value ? {} : {}, {\n o: !hasMore.value && orders.value.length > 0\n }, !hasMore.value && orders.value.length > 0 ? {} : {}, {\n p: refreshing.value,\n q: _o(onRefresh),\n r: _o(loadMore),\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/orders.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.getSystemInfoSync","uni.navigateTo","uni.showLoading","uni.hideLoading","uni.showModal","uni.showActionSheet","uni.switchTab"],"map":"{\"version\":3,\"file\":\"orders.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"orders.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b79f8417ca71b060db8eafd2a8dc8e7cee433df2 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b79f8417ca71b060db8eafd2a8dc8e7cee433df2 deleted file mode 100644 index 3b4ae635..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b79f8417ca71b060db8eafd2a8dc8e7cee433df2 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService, CartItem as SupabaseCartItem, Product } from \"@/utils/supabaseService\";\nclass LocalCartItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n selected: { type: Boolean, optional: false },\n productId: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchantId: { type: String, optional: false }\n };\n },\n name: \"LocalCartItem\"\n };\n }\n constructor(options, metadata = LocalCartItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n this.selected = this.__props__.selected;\n this.productId = this.__props__.productId;\n this.skuId = this.__props__.skuId;\n this.merchantId = this.__props__.merchantId;\n delete this.__props__;\n }\n}\nclass CartGroup extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n merchantId: { type: String, optional: false },\n items: { type: UTS.UTSType.withGenerics(Array, [LocalCartItem]), optional: false }\n };\n },\n name: \"CartGroup\"\n };\n }\n constructor(options, metadata = CartGroup.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.merchantId = this.__props__.merchantId;\n this.items = this.__props__.items;\n delete this.__props__;\n }\n}\nclass RecommendProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchant_id: { type: String, optional: false }\n };\n },\n name: \"RecommendProduct\"\n };\n }\n constructor(options, metadata = RecommendProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.skuId = this.__props__.skuId;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'cart',\n setup(__props) {\n const compareStrings = (a, b) => {\n uni.__f__('log', 'at pages/main/cart.uvue:206', '[compareStrings] a length:', a.length, 'b length:', b.length);\n uni.__f__('log', 'at pages/main/cart.uvue:207', '[compareStrings] a type:', typeof a, 'b type:', typeof b);\n uni.__f__('log', 'at pages/main/cart.uvue:208', '[compareStrings] a value:', UTS.JSON.stringify(a));\n uni.__f__('log', 'at pages/main/cart.uvue:209', '[compareStrings] b value:', UTS.JSON.stringify(b));\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n const aCode = a.charCodeAt(i);\n const bCode = b.charCodeAt(i);\n if (aCode != null && bCode != null && aCode !== bCode) {\n uni.__f__('log', 'at pages/main/cart.uvue:216', '[compareStrings] mismatch at index:', i, 'a:', aCode, 'b:', bCode);\n return false;\n }\n }\n return true;\n };\n const cartItems = ref([]);\n const recommendProducts = ref([]);\n const recommendPage = ref(1);\n const loading = ref(false);\n const statusBarHeight = ref(0);\n const isManageMode = ref(false);\n const updatingItems = ref(new Set()); // Track items being updated to prevent race conditions\n // 计算属性\n const cartGroups = computed(() => {\n uni.__f__('log', 'at pages/main/cart.uvue:245', '[cartGroups] 计算购物车分组, cartItems count:', cartItems.value.length);\n const groups = new Map();\n cartItems.value.forEach((item) => {\n uni.__f__('log', 'at pages/main/cart.uvue:249', '[cartGroups] item:', item.id, 'shopId:', item.shopId, 'shopName:', item.shopName);\n const shopKey = item.shopId;\n if (!groups.has(shopKey)) {\n groups.set(shopKey, new CartGroup({\n shopId: item.shopId,\n shopName: item.shopName,\n merchantId: item.merchantId,\n items: []\n }));\n }\n const group = UTS.mapGet(groups, shopKey);\n if (group != null) {\n group.items.push(item);\n }\n });\n const groupArray = [];\n groups.forEach((value) => {\n uni.__f__('log', 'at pages/main/cart.uvue:268', '[cartGroups] group:', value.shopId, 'items count:', value.items.length);\n groupArray.push(value);\n });\n return groupArray;\n });\n const allSelected = computed(() => {\n return cartItems.value.length > 0 && cartItems.value.every((item) => { return item.selected; });\n });\n const selectedCount = computed(() => {\n return cartItems.value.filter((item) => { return item.selected; }).reduce((sum, item) => { return sum + item.quantity; }, 0);\n });\n const totalPrice = computed(() => {\n return cartItems.value\n .filter((item) => { return item.selected; })\n .reduce((sum, item) => { return sum + item.price * item.quantity; }, 0)\n .toFixed(2);\n });\n // 检查店铺是否全选\n const isShopSelected = (shopId) => {\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n if (compareStrings(cartItems.value[i].shopId, shopId)) {\n shopItems.push(cartItems.value[i]);\n }\n }\n if (shopItems.length === 0)\n return false;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected)\n return false;\n }\n return true;\n };\n const toggleManageMode = () => {\n isManageMode.value = !isManageMode.value;\n };\n // 初始化页面数据\n const initPage = () => {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n };\n // 生命周期\n onMounted(() => {\n initPage();\n });\n // 提取更新列表的辅助函数以减少重复代码\n const updateRecommendList = (recommends) => {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n };\n const refreshRecommend = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 递增页码以获取不同的商品\n recommendPage.value = recommendPage.value + 1;\n // 使用 searchProducts 获取不同页码的 6 个产品\n const hotResp = yield supabaseService.searchProducts('', recommendPage.value, 6, 'sales');\n const recommends = hotResp.data;\n // 如果新页码没有数据,重置为第一页再试一次\n if (recommends.length === 0 && recommendPage.value > 1) {\n recommendPage.value = 1;\n const firstPageResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n const firstRecommends = firstPageResp.data;\n if (firstRecommends.length > 0) {\n updateRecommendList(firstRecommends);\n uni.showToast({\n title: '已重置推荐',\n icon: 'none'\n });\n }\n return Promise.resolve(null);\n }\n if (recommends.length > 0) {\n updateRecommendList(recommends);\n uni.showToast({\n title: '已更新推荐',\n icon: 'none'\n });\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:368', '刷新推荐失败:', error);\n }\n }); };\n // 加载数据\n const loadCartData = () => { return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n // 从Supabase加载购物车数据\n const supabaseCartItems = yield supabaseService.getCartItems();\n // 转换数据格式以匹配前端界面\n const transformedItems = supabaseCartItems.map((item) => {\n var _a, _b, _c, _d, _g, _h, _j, _k;\n // 调试日志:打印每条商品数据的关键字段\n uni.__f__('log', 'at pages/main/cart.uvue:383', `CartItem raw: id=${item.id}, shop_id=${item.shop_id}, shop_name=${item.shop_name}, name=${item.product_name}, price=${item.product_price}`);\n // 关键修复:确保shopId有值,如果后端返回null/undefined,使用'default_shop'作为分组键\n const shopId = (item.shop_id != null && item.shop_id !== '') ? item.shop_id : 'default_shop';\n const shopName = (item.shop_name != null && item.shop_name !== '') ? item.shop_name : '商城优选';\n return new LocalCartItem({\n id: item.id,\n shopId: shopId,\n shopName: shopName,\n name: (_a = item.product_name) !== null && _a !== void 0 ? _a : '未知商品',\n price: item.product_price != null ? item.product_price : 0,\n image: (_b = item.product_image) !== null && _b !== void 0 ? _b : '/static/images/default-product.png',\n spec: (_c = item.product_specification) !== null && _c !== void 0 ? _c : '标准规格',\n quantity: (_d = item.quantity) !== null && _d !== void 0 ? _d : 1,\n selected: (_g = item.selected) !== null && _g !== void 0 ? _g : false,\n productId: (_h = item.product_id) !== null && _h !== void 0 ? _h : '',\n skuId: (_j = item.sku_id) !== null && _j !== void 0 ? _j : '',\n merchantId: (_k = item.merchant_id) !== null && _k !== void 0 ? _k : ''\n });\n });\n uni.__f__('log', 'at pages/main/cart.uvue:405', 'Transformed items count:', transformedItems.length);\n cartItems.value = transformedItems;\n // 加载推荐商品(优先获取推荐位商品,如果没有则通过搜索获取热销商品)\n let recommends = yield supabaseService.getRecommendedProducts(6);\n // 如果没有设置推荐商品,则获取热销商品作为补充\n if (recommends.length === 0) {\n const hotResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n recommends = hotResp.data;\n }\n if (recommends.length > 0) {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n }\n else {\n recommendProducts.value = [];\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:434', '加载购物车数据失败:', error);\n cartItems.value = [];\n }\n finally {\n loading.value = false;\n }\n }); };\n onShow(() => {\n loadCartData();\n });\n // 商品操作 - 更新选中状态到Supabase\n const toggleSelect = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n // 乐观更新\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n const newSelected = !cartItems.value[index].selected;\n cartItems.value[index].selected = newSelected;\n cartItems.value = [...cartItems.value]; // 触发响应式更新\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemSelection(itemId, newSelected);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:457', '更新选中状态失败');\n // 恢复状态\n cartItems.value[index].selected = !newSelected;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '网络异常,请重试', icon: 'none' });\n }\n }\n }); };\n const toggleShopSelect = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/main/cart.uvue:467', '[toggleShopSelect] shopId:', shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:468', '[toggleShopSelect] shopId length:', shopId.length);\n uni.__f__('log', 'at pages/main/cart.uvue:469', '[toggleShopSelect] cartItems.value.length:', cartItems.value.length);\n // 用 for 循环替代 filter,避免安卓端 UTS filter 的问题\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const itemShopId = item.shopId;\n // 安卓端字符串比较问题:使用 localeCompare 或逐字符比较\n const isMatch = compareStrings(itemShopId, shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:478', '[toggleShopSelect] checking item:', item.id, 'item.shopId:', itemShopId, 'match:', isMatch);\n if (isMatch) {\n shopItems.push(item);\n }\n }\n uni.__f__('log', 'at pages/main/cart.uvue:483', '[toggleShopSelect] shopItems count:', shopItems.length);\n if (shopItems.length === 0)\n return Promise.resolve(null);\n // 用 for 循环替代 every\n let allSelected = true;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected) {\n allSelected = false;\n break;\n }\n }\n const newState = !allSelected;\n uni.__f__('log', 'at pages/main/cart.uvue:496', '[toggleShopSelect] allSelected:', allSelected, 'newState:', newState);\n const shopItemIds = [];\n for (let i = 0; i < shopItems.length; i++) {\n shopItemIds.push(shopItems[i].id);\n }\n uni.__f__('log', 'at pages/main/cart.uvue:502', '[toggleShopSelect] shopItemIds:', shopItemIds);\n // 创建全新的数组来触发响应式更新\n const newCartItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const isMatch = compareStrings(item.shopId, shopId);\n if (isMatch) {\n uni.__f__('log', 'at pages/main/cart.uvue:510', '[toggleShopSelect] updating item:', item.id, 'to selected:', newState);\n // 创建新的对象\n const newItem = new LocalCartItem({\n id: item.id,\n shopId: item.shopId,\n shopName: item.shopName,\n name: item.name,\n price: item.price,\n image: item.image,\n spec: item.spec,\n quantity: item.quantity,\n selected: newState,\n productId: item.productId,\n skuId: item.skuId,\n merchantId: item.merchantId\n });\n newCartItems.push(newItem);\n }\n else {\n newCartItems.push(item);\n }\n }\n // 替换整个数组\n cartItems.value = newCartItems;\n // 批量更新到Supabase\n const success = yield supabaseService.batchUpdateCartItemSelection(shopItemIds, newState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:538', '批量更新店铺商品选中状态失败');\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n // 重新加载数据以确保状态一致\n loadCartData();\n }\n }); };\n const toggleSelectAll = () => { return __awaiter(this, void 0, void 0, function* () {\n // 目标状态:如果当前全选,则取消全选;否则全选\n const newSelectedState = !allSelected.value;\n // 乐观更新\n const oldItems = UTS.JSON.parse(UTS.JSON.stringify(cartItems.value));\n const selectedItems = cartItems.value.map((item) => {\n item.selected = newSelectedState;\n return item;\n });\n cartItems.value = selectedItems;\n // 更新到Supabase\n const itemIds = cartItems.value.map(item => { return item.id; });\n if (itemIds.length === 0)\n return Promise.resolve(null);\n const success = yield supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:567', '批量更新选中状态失败');\n cartItems.value = oldItems;\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const increaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity + 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:591', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity - 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n }); };\n const decreaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n if (cartItems.value[index].quantity > 1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity - 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:616', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity + 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n else {\n // 数量为1时,询问是否删除\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要从购物车移除该商品吗?',\n success: (res) => {\n if (res.confirm) {\n // 从Supabase删除\n supabaseService.deleteCartItem(itemId).then((success) => {\n if (success) {\n cartItems.value.splice(index, 1);\n cartItems.value = [...cartItems.value];\n uni.showToast({\n title: '已移除',\n icon: 'none'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:639', '删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }\n }\n }); };\n // 删除商品 - 增加保存逻辑\n const deleteSelectedItems = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择要删除的商品',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: `确定要删除选中的 ${selectedCount.value} 件商品吗?`,\n success: (res) => {\n if (res.confirm) {\n // 获取选中的商品ID\n const selectedItemIds = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => { return item.id; });\n // 批量删除到Supabase\n supabaseService.batchDeleteCartItems(selectedItemIds).then((success) => {\n if (success) {\n // 从本地列表移除\n cartItems.value = cartItems.value.filter(item => { return !item.selected; });\n // 如果购物车删空了,退出管理模式\n if (cartItems.value.length === 0) {\n isManageMode.value = false;\n }\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:688', '批量删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }); };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '检查商品...' });\n try {\n const productId = product.id;\n const skuId = product.skuId;\n const merchantId = product.merchant_id;\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(productId);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + productId\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(productId, 1, skuId, merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n // 重新加载购物车数据\n loadCartData();\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:736', '添加商品到购物车失败');\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:744', '添加商品到购物车异常:', error);\n uni.hideLoading();\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }); };\n // 导航函数\n const navigateToShop = (shopId, merchantId = null) => {\n // Prevent navigation for invalid shops\n if (shopId == '' || shopId === 'default_shop' || shopId === 'unknown')\n return null;\n let url = `/pages/mall/consumer/shop-detail?id=${shopId}`;\n if (merchantId != null) {\n const mId = `${merchantId}`;\n if (mId !== '' && mId !== 'null' && mId !== 'undefined' && mId !== 'false') {\n url += `&merchantId=${mId}`;\n }\n }\n uni.navigateTo({ url });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n const navigateToProduct = (product = null) => {\n var _a, _b, _c;\n uni.__f__('log', 'at pages/main/cart.uvue:773', 'navigateToProduct', product);\n // 使用 JSON 转换确保可以作为 JSONObject 处理,兼容 LocalCartItem 类型和普通对象\n const productJson = UTS.JSON.parse(UTS.JSON.stringify(product));\n // 使用productId(如果存在)作为跳转的商品ID,否则使用id\n let productId = productJson.getString('productId');\n if (productId == null || productId == '') {\n productId = productJson.getString('id');\n }\n if (productId == null || productId == '') {\n uni.__f__('error', 'at pages/main/cart.uvue:785', '无法获取商品ID', product);\n return null;\n }\n // 传递完整的参数,确保商品详情页能正确加载\n let paramsArr = [];\n paramsArr.push('id=' + encodeURIComponent(productId));\n paramsArr.push('productId=' + encodeURIComponent(productId));\n const price = (_a = productJson.getNumber('price')) !== null && _a !== void 0 ? _a : 0;\n paramsArr.push('price=' + price);\n let originalPrice = productJson.getNumber('original_price');\n if (originalPrice == null) {\n originalPrice = productJson.getNumber('originalPrice');\n }\n if (originalPrice == null) {\n originalPrice = parseFloat((price * 1.2).toFixed(2));\n }\n paramsArr.push('originalPrice=' + originalPrice);\n const name = (_b = productJson.getString('name')) !== null && _b !== void 0 ? _b : '';\n paramsArr.push('name=' + encodeURIComponent(name));\n const image = (_c = productJson.getString('image')) !== null && _c !== void 0 ? _c : '/static/product1.jpg';\n paramsArr.push('image=' + encodeURIComponent(image));\n const url = `/pages/mall/consumer/product-detail?${paramsArr.join('&')}`;\n uni.__f__('log', 'at pages/main/cart.uvue:813', 'Navigate to:', url);\n uni.navigateTo({\n url: url\n });\n };\n const goToCheckout = () => {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择商品',\n icon: 'none'\n });\n return null;\n }\n // 获取选中的商品 (直接过滤cartItems,不依赖cartGroups,确保扁平化传递)\n const selectedItems = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => {\n var _a, _b;\n return (new UTSJSONObject({\n id: item.id,\n product_id: (_a = item.productId) !== null && _a !== void 0 ? _a : item.id,\n sku_id: (_b = item.skuId) !== null && _b !== void 0 ? _b : item.id,\n product_name: item.name,\n shop_id: item.shopId,\n shop_name: item.shopName,\n merchant_id: item.merchantId,\n product_image: item.image,\n sku_specifications: item.spec,\n price: item.price,\n quantity: item.quantity // 确保是数字\n }));\n });\n // 关键修复:将结算数据写入 Storage,确保 checkout 页面能稳定获取\n uni.setStorageSync('checkout_type', 'cart');\n // 使用纯JSON序列化防止复杂对象引发的问题\n try {\n uni.setStorageSync('checkout_items', UTS.JSON.stringify(selectedItems));\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/cart.uvue:852', '存储结算数据失败', e);\n uni.showToast({ title: '系统异常,请重试', icon: 'none' });\n return null;\n }\n // 跳转到结算页面并传递数据\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(isManageMode.value ? '✓' : '⚙️'),\n b: _t(isManageMode.value ? '完成' : '管理'),\n c: _o(toggleManageMode),\n d: statusBarHeight.value + 'px',\n e: statusBarHeight.value + 44 + 'px',\n f: !loading.value && cartItems.value.length === 0\n }, !loading.value && cartItems.value.length === 0 ? {\n g: _o(goShopping)\n } : {\n h: _f(cartGroups.value, (group, k0, i0) => {\n return _e({\n a: isShopSelected(group.shopId)\n }, isShopSelected(group.shopId) ? {} : {}, {\n b: _o($event => { return toggleShopSelect(group.shopId); }, group.shopId),\n c: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n d: _t(group.shopName),\n e: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n f: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n g: _f(group.items, (item, k1, i1) => {\n return _e({\n a: item.selected\n }, item.selected ? {} : {}, {\n b: _o($event => { return toggleSelect(item.id); }, item.id),\n c: item.image,\n d: _o($event => { return navigateToProduct(item); }, item.id),\n e: _t(item.name),\n f: _t(item.spec),\n g: _t(item.price),\n h: _o($event => { return decreaseQuantity(item.id); }, item.id),\n i: _t(item.quantity),\n j: _o($event => { return increaseQuantity(item.id); }, item.id),\n k: item.id\n });\n }),\n h: group.shopId\n });\n })\n }, {\n i: cartItems.value.length > 0\n }, cartItems.value.length > 0 ? _e({\n j: allSelected.value\n }, allSelected.value ? {} : {}, {\n k: _o(toggleSelectAll),\n l: !isManageMode.value\n }, !isManageMode.value ? {\n m: _t(totalPrice.value)\n } : {}, {\n n: !isManageMode.value\n }, !isManageMode.value ? {\n o: _t(selectedCount.value),\n p: _o(goToCheckout)\n } : {\n q: _t(selectedCount.value),\n r: _o(deleteSelectedItems)\n }) : {}, {\n s: recommendProducts.value.length > 0\n }, recommendProducts.value.length > 0 ? {\n t: _o(refreshRecommend),\n v: _f(recommendProducts.value, (product, k0, i0) => {\n return {\n a: product.image,\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return navigateToProduct(product); }, product.id)\n };\n })\n } : {}, {\n w: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/cart.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.getSystemInfoSync","uni.showToast","uni.showModal","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.switchTab","uni.setStorageSync"],"map":"{\"version\":3,\"file\":\"cart.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"cart.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b9ed826ef0894270dafa24434e544c6dfcf08ff1 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b9ed826ef0894270dafa24434e544c6dfcf08ff1 new file mode 100644 index 00000000..b43a105f --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/b9ed826ef0894270dafa24434e544c6dfcf08ff1 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ShareRecordType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_price: { type: Number, optional: false },\n share_code: { type: String, optional: false },\n required_count: { type: Number, optional: false },\n current_count: { type: Number, optional: false },\n status: { type: Number, optional: false },\n reward_amount: { type: Number, optional: true },\n created_at: { type: String, optional: false },\n completed_at: { type: String, optional: true }\n };\n },\n name: \"ShareRecordType\"\n };\n }\n constructor(options, metadata = ShareRecordType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_price = this.__props__.product_price;\n this.share_code = this.__props__.share_code;\n this.required_count = this.__props__.required_count;\n this.current_count = this.__props__.current_count;\n this.status = this.__props__.status;\n this.reward_amount = this.__props__.reward_amount;\n this.created_at = this.__props__.created_at;\n this.completed_at = this.__props__.completed_at;\n delete this.__props__;\n }\n}\nclass BuyerType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n buyer_id: { type: String, optional: false },\n buyer_name: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"BuyerType\"\n };\n }\n constructor(options, metadata = BuyerType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.buyer_id = this.__props__.buyer_id;\n this.buyer_name = this.__props__.buyer_name;\n this.quantity = this.__props__.quantity;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'detail',\n setup(__props) {\n const shareId = ref('');\n const shareRecord = ref(new ShareRecordType({\n id: '',\n product_name: '',\n product_image: null,\n product_price: 0,\n share_code: '',\n required_count: 4,\n current_count: 0,\n status: 0,\n reward_amount: null,\n created_at: '',\n completed_at: null\n }));\n const buyers = ref([]);\n const buyersLoading = ref(false);\n const loadShareDetail = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q;\n if (shareId.value === '')\n return Promise.resolve(null);\n try {\n const result = yield supabaseService.getShareDetail(shareId.value);\n const recordRaw = result.get('share_record');\n if (recordRaw != null) {\n let recordObj = null;\n if (UTS.isInstanceOf(recordRaw, UTSJSONObject)) {\n recordObj = recordRaw;\n }\n else {\n recordObj = UTS.JSON.parse(UTS.JSON.stringify(recordRaw));\n }\n const record = new ShareRecordType({\n id: (_a = recordObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n product_name: (_b = recordObj.getString('product_name')) !== null && _b !== void 0 ? _b : '',\n product_image: recordObj.getString('product_image'),\n product_price: (_c = recordObj.getNumber('product_price')) !== null && _c !== void 0 ? _c : 0,\n share_code: (_d = recordObj.getString('share_code')) !== null && _d !== void 0 ? _d : '',\n required_count: (_g = recordObj.getNumber('required_count')) !== null && _g !== void 0 ? _g : 4,\n current_count: (_h = recordObj.getNumber('current_count')) !== null && _h !== void 0 ? _h : 0,\n status: (_j = recordObj.getNumber('status')) !== null && _j !== void 0 ? _j : 0,\n reward_amount: recordObj.getNumber('reward_amount'),\n created_at: (_k = recordObj.getString('created_at')) !== null && _k !== void 0 ? _k : '',\n completed_at: recordObj.getString('completed_at')\n });\n shareRecord.value = record;\n }\n const purchasesRaw = result.get('secondary_purchases');\n if (purchasesRaw != null && Array.isArray(purchasesRaw)) {\n const parsed = [];\n const arr = purchasesRaw;\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n parsed.push(new BuyerType({\n id: (_l = itemObj.getString('id')) !== null && _l !== void 0 ? _l : '',\n buyer_id: (_m = itemObj.getString('buyer_id')) !== null && _m !== void 0 ? _m : '',\n buyer_name: '用户' + (i + 1),\n quantity: (_p = itemObj.getNumber('quantity')) !== null && _p !== void 0 ? _p : 1,\n created_at: (_q = itemObj.getString('created_at')) !== null && _q !== void 0 ? _q : ''\n }));\n }\n buyers.value = parsed;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/share/detail.uvue:197', '加载分享详情失败:', e);\n }\n }); };\n const getProgressPercent = () => {\n if (shareRecord.value.required_count <= 0)\n return 0;\n return Math.min(100, Math.round((shareRecord.value.current_count / shareRecord.value.required_count) * 100));\n };\n const getStatusText = (status) => {\n if (status === 0)\n return '进行中';\n if (status === 1)\n return '已免单';\n if (status === 2)\n return '已失效';\n if (status === 3)\n return '已过期';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-progress';\n if (status === 1)\n return 'status-completed';\n if (status === 2)\n return 'status-invalid';\n if (status === 3)\n return 'status-expired';\n return '';\n };\n const copyShareCode = () => {\n uni.setClipboardData({\n data: shareRecord.value.share_code,\n success: () => {\n uni.showToast({ title: '已复制分享码', icon: 'success' });\n }\n });\n };\n const getBuyerInitial = (name) => {\n if (name.length > 0) {\n return name.charAt(0);\n }\n return '用';\n };\n const maskName = (name) => {\n if (name.length <= 2) {\n return name.charAt(0) + '*';\n }\n return name.charAt(0) + '***' + name.charAt(name.length - 1);\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n onLoad((options = null) => {\n if (options != null) {\n const idVal = options['id'];\n if (idVal != null) {\n shareId.value = idVal;\n loadShareDetail();\n }\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: shareRecord.value.product_image != null && shareRecord.value.product_image.length > 0 ? shareRecord.value.product_image : defaultImage,\n b: _t(shareRecord.value.product_name),\n c: _t(shareRecord.value.product_price),\n d: _t(getStatusText(shareRecord.value.status)),\n e: _n(getStatusClass(shareRecord.value.status)),\n f: getProgressPercent() + '%',\n g: _t(shareRecord.value.current_count),\n h: _t(shareRecord.value.required_count),\n i: shareRecord.value.status === 0\n }, shareRecord.value.status === 0 ? {\n j: _t(shareRecord.value.required_count - shareRecord.value.current_count)\n } : {}, {\n k: shareRecord.value.status === 1\n }, shareRecord.value.status === 1 ? {\n l: _t(shareRecord.value.reward_amount)\n } : {}, {\n m: _o(copyShareCode),\n n: _t(shareRecord.value.share_code),\n o: _t(buyers.value.length),\n p: buyersLoading.value\n }, buyersLoading.value ? {} : buyers.value.length === 0 ? {} : {\n r: _f(buyers.value, (buyer, k0, i0) => {\n return {\n a: _t(getBuyerInitial(buyer.buyer_name)),\n b: _t(maskName(buyer.buyer_name)),\n c: _t(formatTime(buyer.created_at)),\n d: _t(buyer.quantity),\n e: buyer.id\n };\n })\n }, {\n q: buyers.value.length === 0,\n s: _t(formatTime(shareRecord.value.created_at)),\n t: shareRecord.value.completed_at\n }, shareRecord.value.completed_at ? {\n v: _t(formatTime(shareRecord.value.completed_at))\n } : {}, {\n w: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/share/detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.setClipboardData"],"map":"{\"version\":3,\"file\":\"detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2bb6d62dd73b4c90f5802d6ffd7237402d371dc b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2bb6d62dd73b4c90f5802d6ffd7237402d371dc new file mode 100644 index 00000000..44889eb3 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2bb6d62dd73b4c90f5802d6ffd7237402d371dc @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { MerchantType, ProductType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass CouponType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n discount_value: { type: Number, optional: false },\n min_order_amount: { type: Number, optional: false },\n name: { type: String, optional: false },\n start_time: { type: String, optional: false },\n end_time: { type: String, optional: false },\n status: { type: Number, optional: false }\n };\n },\n name: \"CouponType\"\n };\n }\n constructor(options, metadata = CouponType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.discount_value = this.__props__.discount_value;\n this.min_order_amount = this.__props__.min_order_amount;\n this.name = this.__props__.name;\n this.start_time = this.__props__.start_time;\n this.end_time = this.__props__.end_time;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\n// 分页相关状态\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'shop-detail',\n setup(__props) {\n const currentPage = ref(1);\n const pageSize = ref(6); // 默认显示六个\n const hasMore = ref(true);\n const isLoading = ref(false);\n const currentMerchantId = ref('');\n const merchant = ref(new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }));\n const products = ref([]);\n const isFollowed = ref(false);\n const coupons = ref([]); // 新增优惠券\n const isRefresherTriggered = ref(false);\n // 函数定义必须在 onMounted 之前\n // checkFollowStatus 必须在 loadShopData 之前定义\n const checkFollowStatus = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId != null && userId != '') {\n try {\n // @ts-ignore\n isFollowed.value = yield supabaseService.isShopFollowed(shopId, userId);\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:118', 'isShopFollowed method not found');\n }\n }\n }); };\n const loadShopData = (id) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:124', 'Loading shop data for:', id);\n const shop = yield supabaseService.getShopByMerchantId(id);\n if (shop != null) {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:128', 'Shop loaded successfully:', shop.shop_name);\n // 使用显式类型转换\n const merchantData = new MerchantType({\n id: shop.id,\n user_id: shop.merchant_id,\n shop_name: shop.shop_name,\n shop_logo: shop.shop_logo != null ? shop.shop_logo : '/static/default-shop.png',\n shop_banner: shop.shop_banner != null ? shop.shop_banner : '/static/default-banner.png',\n shop_description: shop.description != null ? shop.description : '',\n contact_name: shop.contact_name != null ? shop.contact_name : '',\n contact_phone: shop.contact_phone != null ? shop.contact_phone : '',\n shop_status: 1,\n rating: shop.rating_avg != null ? shop.rating_avg : 5.0,\n total_sales: shop.total_sales != null ? shop.total_sales : 0,\n created_at: shop.created_at != null ? shop.created_at : ''\n });\n merchant.value = merchantData;\n // 检查关注状态\n checkFollowStatus(shop.id);\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:149', 'Shop data is null for ID:', id);\n uni.showToast({\n title: '未找到店铺信息',\n icon: 'none',\n duration: 3000\n });\n }\n }); };\n const loadCoupons = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j;\n try {\n // @ts-ignore\n const res = yield supabaseService.fetchShopCoupons(id);\n if (res != null && Array.isArray(res)) {\n const couponList = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n couponList.push(new CouponType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n discount_value: (_b = itemObj.getNumber('discount_value')) !== null && _b !== void 0 ? _b : 0,\n min_order_amount: (_c = itemObj.getNumber('min_order_amount')) !== null && _c !== void 0 ? _c : 0,\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '',\n start_time: (_g = itemObj.getString('start_time')) !== null && _g !== void 0 ? _g : '',\n end_time: (_h = itemObj.getString('end_time')) !== null && _h !== void 0 ? _h : '',\n status: (_j = itemObj.getNumber('status')) !== null && _j !== void 0 ? _j : 1\n }));\n }\n coupons.value = couponList;\n }\n }\n catch (e1) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:180', 'SupabaseService.fetchShopCoupons method missing. Please rebuild project.');\n }\n }); };\n const loadShopProducts = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (isLoading.value)\n return Promise.resolve(null);\n isLoading.value = true;\n // 保存当前使用的MerchantID,供下拉/触底使用\n if (currentPage.value === 1) {\n currentMerchantId.value = id;\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:193', `shop-detail loadShopProducts for: ${id} page: ${currentPage.value}`);\n let res = new UTSJSONObject({});\n try {\n // @ts-ignore\n res = yield supabaseService.getProductsByMerchantId(id, currentPage.value, pageSize.value);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:200', 'getProductsByMerchantId missing or error', e);\n isLoading.value = false;\n uni.stopPullDownRefresh();\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:206', `shop-detail getProductsByMerchantId result count: ${(_a = res.data) === null || _a === void 0 ? null : _a.length}`);\n const rawList = res.data;\n if (rawList != null && Array.isArray(rawList) && rawList.length > 0) {\n // 过滤掉已经在列表中的重复商品 (防止分页计算错误导致的重复)\n const newItems = [];\n const existingIds = products.value.map(p => { return p.id; });\n const list = rawList.map((item = null) => {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m;\n // 解析图片数组\n let images = [];\n // 转换为 UTSJSONObject 安全访问属性\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n // 1. 尝试 main_image_url\n const mainImageUrl = itemObj.getString('main_image_url');\n if (mainImageUrl != null && mainImageUrl != '') {\n images.push(mainImageUrl);\n }\n // 2. 尝试 image_urls (如果 main 为空,或者需要展示多图)\n const imageUrls = itemObj.get('image_urls');\n if (imageUrls != null) {\n try {\n if (Array.isArray(imageUrls)) {\n const arr = imageUrls;\n if (arr.length > 0) {\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else if (typeof imageUrls === 'string') {\n const rawUrl = imageUrls;\n if (rawUrl.startsWith('[')) {\n const parsed = UTS.JSON.parse(rawUrl);\n if (Array.isArray(parsed)) {\n const arr = parsed;\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else {\n if (images.indexOf(rawUrl) === -1)\n images.push(rawUrl);\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:249', '解析图片数组失败:', e);\n }\n }\n // 没有任何图片则使用默认\n if (images.length === 0) {\n images.push('/static/default-product.png');\n }\n return new ProductType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n merchant_id: (_b = itemObj.getString('merchant_id')) !== null && _b !== void 0 ? _b : '',\n category_id: (_c = itemObj.getString('category_id')) !== null && _c !== void 0 ? _c : '',\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '未知商品',\n description: (_g = itemObj.getString('description')) !== null && _g !== void 0 ? _g : '',\n images: images,\n price: (_h = itemObj.getNumber('base_price')) !== null && _h !== void 0 ? _h : 0,\n original_price: (_j = itemObj.getNumber('market_price')) !== null && _j !== void 0 ? _j : 0,\n stock: (_k = itemObj.getNumber('total_stock')) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = itemObj.getNumber('sale_count')) !== null && _l !== void 0 ? _l : 0,\n status: 1,\n created_at: (_m = itemObj.getString('created_at')) !== null && _m !== void 0 ? _m : ''\n });\n });\n // 只有在 currentPage > 1 时才需要过滤,currentPage = 1 时直接替换\n if (currentPage.value === 1) {\n products.value = list;\n }\n else {\n for (let i = 0; i < list.length; i++) {\n if (existingIds.indexOf(list[i].id) === -1) {\n newItems.push(list[i]);\n }\n }\n if (newItems.length > 0) {\n products.value.push(...newItems);\n }\n }\n currentPage.value++;\n hasMore.value = list.length >= pageSize.value;\n }\n else {\n hasMore.value = false;\n }\n isLoading.value = false;\n uni.stopPullDownRefresh();\n }); };\n onMounted(() => {\n const pages = getCurrentPages();\n const options = pages[pages.length - 1].options;\n // Search传递的是 id (shop_id), 其他地方可能传递 merchantId\n const mId = options.get('merchantId');\n const pId = options.get('id');\n const paramId = (mId != null ? mId : pId);\n if (paramId != null && paramId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:307', 'Page mounted with params:', paramId);\n // 优先加载店铺信息\n loadShopData(paramId).then(() => {\n // 加载成功后,使用确定的 merchant_id 来查询关联数据 (商品/优惠券通常是关联在 merchant_id 上的)\n const realMerchantId = merchant.value.user_id; // 这里 user_id 映射了 DB 中的 merchant_id\n if (realMerchantId != null && realMerchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:313', 'Chain loading products for Corrected Merchant ID:', realMerchantId);\n currentMerchantId.value = realMerchantId; // 更新当前上下文ID\n loadShopProducts(realMerchantId);\n loadCoupons(realMerchantId);\n }\n else {\n // 防御性策略:如果没能获取 merchant_id,尝试用传入 ID\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:319', 'Shop load failed or id empty, fallback using original id:', paramId);\n currentMerchantId.value = paramId;\n loadShopProducts(paramId);\n loadCoupons(paramId);\n }\n });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:326', 'No ID passed to shop-detail');\n uni.showToast({ title: '参数错误', icon: 'error' });\n }\n });\n const onRefresherRefresh = () => {\n isRefresherTriggered.value = true;\n currentPage.value = 1;\n hasMore.value = true;\n isLoading.value = false;\n if (currentMerchantId.value != '') {\n const id = currentMerchantId.value;\n Promise.all([\n loadShopData(id),\n loadCoupons(id),\n loadShopProducts(id)\n ]).then(() => {\n isRefresherTriggered.value = false;\n });\n }\n else {\n setTimeout(() => {\n isRefresherTriggered.value = false;\n }, 500);\n }\n };\n const onScrollToLower = () => {\n if (hasMore.value && !isLoading.value && currentMerchantId.value != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:355', 'Scroll to lower, loading more...');\n loadShopProducts(currentMerchantId.value);\n }\n };\n onPullDownRefresh(() => {\n onRefresherRefresh();\n });\n onReachBottom(() => {\n onScrollToLower();\n });\n const claimCoupon = (coupon = null) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n // 转换为 UTSJSONObject 安全访问属性\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(coupon));\n const couponId = (_a = couponObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n let success = false;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e1) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:389', 'claimCoupon not found');\n }\n }\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败', icon: 'none' });\n }\n }); };\n const toggleFollow = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n // 这里的 merchant.value.id 假如是 ML_SHOPS.id\n const shopId = merchant.value.id;\n if (shopId == null || shopId == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n // @ts-ignore\n if (isFollowed.value) {\n // 取消关注\n // @ts-ignore\n const success = yield supabaseService.unfollowShop(shopId, userId);\n if (success) {\n isFollowed.value = false;\n uni.showToast({ title: '已取消关注', icon: 'none' });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n else {\n // 关注\n // @ts-ignore\n const success = yield supabaseService.followShop(shopId, userId);\n if (success) {\n isFollowed.value = true;\n uni.showToast({ title: '关注成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '关注失败', icon: 'none' });\n }\n }\n uni.hideLoading();\n }); };\n const contactService = () => {\n const currentUser = supabaseService.getCurrentUserId();\n if (currentUser == null) {\n uni.navigateTo({ url: '/pages/user/login' });\n return null;\n }\n if (merchant.value.user_id != null && merchant.value.user_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchant.value.user_id}&merchantName=${encodeURIComponent(merchant.value.shop_name)}`\n });\n }\n else {\n uni.showToast({ title: '无法联系商家', icon: 'none' });\n }\n };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '检查商品...' });\n try {\n // 使用店铺的 merchant_id\n const merchantId = (_a = merchant.value.user_id) !== null && _a !== void 0 ? _a : '';\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(product.id);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + product.id\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(product.id, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败,请重试',\n icon: 'none'\n });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:496', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const goToProduct = (id) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?productId=${id}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: merchant.value.shop_banner != '' ? merchant.value.shop_banner : '/static/default-banner.png',\n b: merchant.value.shop_logo != '' ? merchant.value.shop_logo : '/static/default-shop.png',\n c: _t(merchant.value.shop_name),\n d: _t(merchant.value.rating.toFixed(1)),\n e: _t(merchant.value.total_sales),\n f: _o(contactService),\n g: _t(isFollowed.value ? '已关注' : '+ 关注'),\n h: isFollowed.value ? 1 : '',\n i: _o(toggleFollow),\n j: _t(merchant.value.shop_description != '' ? merchant.value.shop_description : '这家店很懒,什么都没写~'),\n k: coupons.value.length > 0\n }, coupons.value.length > 0 ? {\n l: _f(coupons.value, (coupon, k0, i0) => {\n return _e({\n a: _t(coupon.discount_value),\n b: coupon.min_order_amount > 0\n }, coupon.min_order_amount > 0 ? {\n c: _t(coupon.min_order_amount)\n } : {}, {\n d: coupon.id,\n e: _o($event => { return claimCoupon(coupon); }, coupon.id)\n });\n })\n } : {}, {\n m: _f(products.value, (product, k0, i0) => {\n return {\n a: product.images[0],\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return goToProduct(product.id); }, product.id)\n };\n }),\n n: _o(onScrollToLower),\n o: _o(onRefresherRefresh),\n p: isRefresherTriggered.value,\n q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/shop-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.stopPullDownRefresh","uni.navigateTo","uni.showLoading","uni.hideLoading"],"map":"{\"version\":3,\"file\":\"shop-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"shop-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2d9129d109e977824157ccb7ccb74ae6afc4575 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2d9129d109e977824157ccb7ccb74ae6afc4575 deleted file mode 100644 index d48a5b09..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c2d9129d109e977824157ccb7ccb74ae6afc4575 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BankCard extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n bank_name: { type: String, optional: false },\n card_number: { type: String, optional: false }\n };\n },\n name: \"BankCard\"\n };\n }\n constructor(options, metadata = BankCard.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.bank_name = this.__props__.bank_name;\n this.card_number = this.__props__.card_number;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'withdraw',\n setup(__props) {\n const amount = ref('');\n const balance = ref(0.00);\n const loading = ref(false);\n const bankCards = ref([]);\n const selectedBank = ref(null);\n const showBankPopup = ref(false);\n const isValid = computed(() => {\n const val = parseFloat(amount.value);\n // 检查 val 是否有效(替代 isNaN)\n if (val == null || val <= 0)\n return false;\n if (val > balance.value)\n return false;\n if (selectedBank.value == null)\n return false;\n return true;\n });\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n try {\n const bal = yield supabaseService.getUserBalance();\n balance.value = bal;\n const res = yield supabaseService.getUserBankCards();\n const list = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n let id = '';\n let bankName = '';\n let cardNum = '';\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n id = (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '';\n bankName = (_b = item.getString('bank_name')) !== null && _b !== void 0 ? _b : '';\n cardNum = (_c = item.getString('card_number')) !== null && _c !== void 0 ? _c : '';\n }\n else {\n const itemObj = item;\n id = (_d = itemObj.getString('id')) !== null && _d !== void 0 ? _d : '';\n bankName = (_g = itemObj.getString('bank_name')) !== null && _g !== void 0 ? _g : '';\n cardNum = (_h = itemObj.getString('card_number')) !== null && _h !== void 0 ? _h : '';\n }\n if (id != '') {\n const card = new BankCard({\n id: id,\n bank_name: bankName,\n card_number: cardNum\n });\n list.push(card);\n }\n }\n bankCards.value = list;\n if (bankCards.value.length > 0) {\n selectedBank.value = bankCards.value[0];\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/withdraw.uvue:140', e);\n }\n }); };\n onMounted(() => {\n loadData();\n });\n const getTailNumber = (cardNo = null) => {\n if (cardNo == null)\n return '';\n if (cardNo.length <= 4)\n return cardNo;\n return cardNo.substring(cardNo.length - 4);\n };\n const setAll = () => {\n amount.value = balance.value.toString();\n };\n const openBankSelector = () => {\n showBankPopup.value = true;\n };\n const selectBank = (bank) => {\n selectedBank.value = bank;\n showBankPopup.value = false;\n };\n const navigateToAddCard = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/bank-cards/add'\n });\n showBankPopup.value = false;\n };\n const submitWithdraw = () => { return __awaiter(this, void 0, void 0, function* () {\n if (isValid.value === false)\n return Promise.resolve(null);\n loading.value = true;\n try {\n const val = parseFloat(amount.value);\n const success = yield supabaseService.withdrawBalance(val);\n if (success) {\n uni.showToast({\n title: '提现申请已提交',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n else {\n uni.showToast({\n title: '提现失败, ' + (val > balance.value ? '余额不足' : '请重试'),\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.showToast({\n title: '系统异常',\n icon: 'none'\n });\n }\n finally {\n loading.value = false;\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: selectedBank.value != null\n }, selectedBank.value != null ? {\n b: _t(selectedBank.value.bank_name),\n c: _t(getTailNumber(selectedBank.value.card_number))\n } : {}, {\n d: _o(openBankSelector),\n e: amount.value,\n f: _o($event => { return amount.value = $event.detail.value; }),\n g: _t(balance.value),\n h: _o(setAll),\n i: _t(loading.value ? '处理中...' : '确认提现'),\n j: isValid.value === false,\n k: loading.value,\n l: _o(submitWithdraw),\n m: showBankPopup.value\n }, showBankPopup.value ? {\n n: _o($event => { return showBankPopup.value = false; }),\n o: _f(bankCards.value, (item, index, i0) => {\n return _e({\n a: _t(item.bank_name),\n b: _t(getTailNumber(item.card_number)),\n c: selectedBank.value != null && selectedBank.value.id == item.id\n }, selectedBank.value != null && selectedBank.value.id == item.id ? {} : {}, {\n d: index,\n e: _o($event => { return selectBank(item); }, index)\n });\n }),\n p: _o(navigateToAddCard),\n q: _o(() => { }),\n r: _o($event => { return showBankPopup.value = false; })\n } : {}, {\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/withdraw.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"withdraw.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"withdraw.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c5061a928971b59d11d3ac4ffe8fa7bac3b752fd b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c5061a928971b59d11d3ac4ffe8fa7bac3b752fd new file mode 100644 index 00000000..b4a8bfa6 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/c5061a928971b59d11d3ac4ffe8fa7bac3b752fd @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, f as _f, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ReviewItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n user_name: { type: String, optional: false },\n user_avatar: { type: String, optional: false },\n rating: { type: Number, optional: false },\n content: { type: String, optional: false },\n images: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },\n is_anonymous: { type: Boolean, optional: false },\n like_count: { type: Number, optional: false },\n is_liked: { type: Boolean, optional: false },\n append_content: { type: String, optional: true },\n append_at: { type: String, optional: true },\n reply: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ReviewItem\"\n };\n }\n constructor(options, metadata = ReviewItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.user_name = this.__props__.user_name;\n this.user_avatar = this.__props__.user_avatar;\n this.rating = this.__props__.rating;\n this.content = this.__props__.content;\n this.images = this.__props__.images;\n this.is_anonymous = this.__props__.is_anonymous;\n this.like_count = this.__props__.like_count;\n this.is_liked = this.__props__.is_liked;\n this.append_content = this.__props__.append_content;\n this.append_at = this.__props__.append_at;\n this.reply = this.__props__.reply;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass StatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total_count: { type: Number, optional: false },\n avg_rating: { type: Number, optional: false },\n good_rate: { type: Number, optional: false },\n rating_distribution: { type: \"Unknown\", optional: false }\n };\n },\n name: \"StatsType\"\n };\n }\n constructor(options, metadata = StatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total_count = this.__props__.total_count;\n this.avg_rating = this.__props__.avg_rating;\n this.good_rate = this.__props__.good_rate;\n this.rating_distribution = this.__props__.rating_distribution;\n delete this.__props__;\n }\n}\nconst pageSize = 10;\nconst defaultAvatar = '/static/images/default-avatar.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'product-reviews',\n setup(__props) {\n const productId = ref('');\n const reviews = ref([]);\n const stats = ref(new StatsType({\n total_count: 0,\n avg_rating: 0,\n good_rate: 0,\n rating_distribution: new Map()\n }));\n const loading = ref(true);\n const hasMore = ref(true);\n const page = ref(1);\n const filterRating = ref(0);\n const hasImageFilter = ref(false);\n const getRatingCount = (rating) => {\n var _a;\n return (_a = stats.value.rating_distribution.get(rating.toString())) !== null && _a !== void 0 ? _a : 0;\n };\n const getRatingPercent = (rating) => {\n if (stats.value.total_count === 0)\n return 0;\n const count = getRatingCount(rating);\n return Math.round((count / stats.value.total_count) * 100);\n };\n const loadStats = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n try {\n const result = yield supabaseService.getReviewStats(productId.value);\n const distMap = new Map();\n const dist = result.get('rating_distribution');\n if (dist != null && UTS.isInstanceOf(dist, UTSJSONObject)) {\n for (let i = 1; i <= 5; i++) {\n distMap.set(i.toString(), (_a = dist.getNumber(i.toString())) !== null && _a !== void 0 ? _a : 0);\n }\n }\n const statsData = new StatsType({\n total_count: (_b = result.getNumber('total_count')) !== null && _b !== void 0 ? _b : 0,\n avg_rating: (_c = result.getNumber('avg_rating')) !== null && _c !== void 0 ? _c : 0,\n good_rate: (_d = result.getNumber('good_rate')) !== null && _d !== void 0 ? _d : 0,\n rating_distribution: distMap\n });\n stats.value = statsData;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:234', '加载统计失败:', e);\n }\n }); };\n const loadReviews = (pageNum) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p;\n loading.value = true;\n try {\n const result = yield supabaseService.getProductReviews(productId.value, pageNum, pageSize, filterRating.value, hasImageFilter.value);\n const total = (_a = result.getNumber('total')) !== null && _a !== void 0 ? _a : 0;\n const data = result.get('data');\n const reviewList = [];\n if (data != null && Array.isArray(data)) {\n const rawList = data;\n for (let i = 0; i < rawList.length; i++) {\n const item = rawList[i];\n let reviewObj;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n reviewObj = item;\n }\n else {\n reviewObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n let images = [];\n const imagesRaw = reviewObj.get('images');\n if (imagesRaw != null && typeof imagesRaw === 'string') {\n try {\n const parsed = UTS.JSON.parse(imagesRaw);\n if (Array.isArray(parsed)) {\n images = parsed;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:274', '解析图片失败:', e);\n }\n }\n const review = new ReviewItem({\n id: (_b = reviewObj.getString('id')) !== null && _b !== void 0 ? _b : '',\n user_id: (_c = reviewObj.getString('user_id')) !== null && _c !== void 0 ? _c : '',\n user_name: (_d = reviewObj.getString('user_name')) !== null && _d !== void 0 ? _d : '匿名用户',\n user_avatar: (_g = reviewObj.getString('user_avatar')) !== null && _g !== void 0 ? _g : '',\n rating: (_h = reviewObj.getNumber('rating')) !== null && _h !== void 0 ? _h : 5,\n content: (_j = reviewObj.getString('content')) !== null && _j !== void 0 ? _j : '',\n images: images,\n is_anonymous: (_k = reviewObj.getBoolean('is_anonymous')) !== null && _k !== void 0 ? _k : false,\n like_count: (_l = reviewObj.getNumber('like_count')) !== null && _l !== void 0 ? _l : 0,\n is_liked: (_m = reviewObj.getBoolean('is_liked')) !== null && _m !== void 0 ? _m : false,\n append_content: reviewObj.getString('append_content'),\n append_at: reviewObj.getString('append_at'),\n reply: reviewObj.getString('reply'),\n created_at: (_p = reviewObj.getString('created_at')) !== null && _p !== void 0 ? _p : ''\n });\n reviewList.push(review);\n }\n }\n if (pageNum === 1) {\n reviews.value = reviewList;\n }\n else {\n reviews.value = [...reviews.value, ...reviewList];\n }\n hasMore.value = reviews.value.length < total;\n page.value = pageNum;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:307', '加载评价失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const loadMore = () => {\n if (!loading.value && hasMore.value) {\n loadReviews(page.value + 1);\n }\n };\n const setFilterRating = (rating) => {\n filterRating.value = rating;\n hasImageFilter.value = false;\n page.value = 1;\n loadReviews(1);\n };\n const toggleHasImage = () => {\n hasImageFilter.value = !hasImageFilter.value;\n filterRating.value = 0;\n page.value = 1;\n loadReviews(1);\n };\n const toggleLike = (review) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const result = yield supabaseService.toggleReviewLike(review.id);\n if (result.getBoolean('success') === true) {\n review.is_liked = (_a = result.getBoolean('is_liked')) !== null && _a !== void 0 ? _a : false;\n review.like_count = (_b = result.getNumber('like_count')) !== null && _b !== void 0 ? _b : 0;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-reviews.uvue:341', '点赞失败:', e);\n }\n }); };\n const previewImage = (images, index) => {\n uni.previewImage({\n urls: images,\n current: index\n });\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (24 * 60 * 60 * 1000));\n if (days === 0) {\n const hours = Math.floor(diff / (60 * 60 * 1000));\n if (hours === 0) {\n const minutes = Math.floor(diff / (60 * 1000));\n return minutes <= 1 ? '刚刚' : `${minutes}分钟前`;\n }\n return `${hours}小时前`;\n }\n else if (days < 7) {\n return `${days}天前`;\n }\n else {\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n }\n };\n onLoad((options = null) => {\n if (options != null) {\n const idVal = options['product_id'];\n if (idVal != null) {\n productId.value = idVal;\n loadStats();\n loadReviews(1);\n }\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: stats.value.total_count > 0\n }, stats.value.total_count > 0 ? {\n b: _t(stats.value.avg_rating),\n c: _t(stats.value.good_rate),\n d: _t(stats.value.total_count),\n e: _f(5, (i, k0, i0) => {\n return {\n a: _t(6 - i),\n b: getRatingPercent(6 - i) + '%',\n c: _t(getRatingCount(6 - i)),\n d: i\n };\n })\n } : {}, {\n f: _t(stats.value.total_count),\n g: filterRating.value === 0 ? 1 : '',\n h: _o($event => { return setFilterRating(0); }),\n i: _t(getRatingCount(5)),\n j: filterRating.value === 5 ? 1 : '',\n k: _o($event => { return setFilterRating(5); }),\n l: _t(getRatingCount(4) + getRatingCount(3)),\n m: filterRating.value === 4 ? 1 : '',\n n: _o($event => { return setFilterRating(4); }),\n o: _t(getRatingCount(2) + getRatingCount(1)),\n p: filterRating.value === 2 ? 1 : '',\n q: _o($event => { return setFilterRating(2); }),\n r: hasImageFilter.value ? 1 : '',\n s: _o(toggleHasImage),\n t: _f(reviews.value, (review, k0, i0) => {\n return _e({\n a: review.user_avatar.length > 0 ? review.user_avatar : defaultAvatar,\n b: _t(review.user_name),\n c: _f(5, (star, k1, i1) => {\n return {\n a: star,\n b: star <= review.rating ? 1 : ''\n };\n }),\n d: _t(formatTime(review.created_at)),\n e: _t(review.content),\n f: review.images.length > 0\n }, review.images.length > 0 ? _e({\n g: _f(review.images.slice(0, 3), (img, idx, i1) => {\n return {\n a: idx,\n b: img,\n c: _o($event => { return previewImage(review.images, idx); }, idx)\n };\n }),\n h: review.images.length > 3\n }, review.images.length > 3 ? {\n i: _t(review.images.length - 3)\n } : {}) : {}, {\n j: review.append_content\n }, review.append_content ? {\n k: _t(review.append_content),\n l: _t(formatTime(review.append_at))\n } : {}, {\n m: review.reply\n }, review.reply ? {\n n: _t(review.reply)\n } : {}, {\n o: _t(review.is_liked ? '❤' : '♡'),\n p: _t(review.like_count != null ? review.like_count : 0),\n q: review.is_liked ? 1 : '',\n r: _o($event => { return toggleLike(review); }, review.id),\n s: review.id\n });\n }),\n v: !loading.value && reviews.value.length === 0\n }, !loading.value && reviews.value.length === 0 ? {} : {}, {\n w: loading.value\n }, loading.value ? {} : {}, {\n x: !loading.value && hasMore.value && reviews.value.length > 0\n }, !loading.value && hasMore.value && reviews.value.length > 0 ? {\n y: _o(loadMore)\n } : {}, {\n z: !loading.value && !hasMore.value && reviews.value.length > 0\n }, !loading.value && !hasMore.value && reviews.value.length > 0 ? {} : {}, {\n A: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/product-reviews.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.previewImage"],"map":"{\"version\":3,\"file\":\"product-reviews.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-reviews.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/81938011ab4d35ed4316750c82fffa3c708d04b0 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d356a05dbb78f9c270161df0f7c54d0261a25330 similarity index 50% rename from unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/81938011ab4d35ed4316750c82fffa3c708d04b0 rename to unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d356a05dbb78f9c270161df0f7c54d0261a25330 index 15828db2..b3e88dde 100644 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/81938011ab4d35ed4316750c82fffa3c708d04b0 +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d356a05dbb78f9c270161df0f7c54d0261a25330 @@ -1 +1 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nimport supa from \"@/components/supadb/aksupainstance\";\nclass OrderType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_no: { type: String, optional: false },\n order_status: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n discount_amount: { type: Number, optional: false },\n payment_method: { type: String, optional: false },\n created_at: { type: String, optional: false },\n paid_at: { type: String, optional: false },\n shipped_at: { type: String, optional: false },\n completed_at: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n shipping_address: { type: \"Any\", optional: true }\n };\n },\n name: \"OrderType\"\n };\n }\n constructor(options, metadata = OrderType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_no = this.__props__.order_no;\n this.order_status = this.__props__.order_status;\n this.total_amount = this.__props__.total_amount;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.discount_amount = this.__props__.discount_amount;\n this.payment_method = this.__props__.payment_method;\n this.created_at = this.__props__.created_at;\n this.paid_at = this.__props__.paid_at;\n this.shipped_at = this.__props__.shipped_at;\n this.completed_at = this.__props__.completed_at;\n this.merchant_id = this.__props__.merchant_id;\n this.shipping_address = this.__props__.shipping_address;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n image_url: { type: String, optional: false },\n price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n specifications: { type: \"Any\", optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.image_url = this.__props__.image_url;\n this.price = this.__props__.price;\n this.quantity = this.__props__.quantity;\n this.specifications = this.__props__.specifications;\n delete this.__props__;\n }\n}\nclass AddressType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n address: { type: String, optional: false }\n };\n },\n name: \"AddressType\"\n };\n }\n constructor(options, metadata = AddressType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.address = this.__props__.address;\n delete this.__props__;\n }\n}\nclass DeliveryInfoType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n tracking_no: { type: String, optional: false },\n carrier_name: { type: String, optional: false }\n };\n },\n name: \"DeliveryInfoType\"\n };\n }\n constructor(options, metadata = DeliveryInfoType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.tracking_no = this.__props__.tracking_no;\n this.carrier_name = this.__props__.carrier_name;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'order-detail',\n setup(__props) {\n const orderId = ref('');\n const order = ref(null);\n const orderItems = ref([]);\n const shopName = ref('店铺名称');\n const deliveryAddress = ref(null);\n const deliveryInfo = ref(null);\n // 辅助函数 - 必须在调用前定义\n const getStatusText = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n const getStatusDesc = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '请尽快完成支付';\n if (status == 2)\n return '商家正在打包商品';\n if (status == 3)\n return '商品正在赶往您的地址';\n if (status == 4)\n return '订单已完成,感谢支持';\n if (status == 5)\n return '订单已取消';\n if (status == 6)\n return '售后处理中';\n if (status == 7)\n return '钱款已退回';\n return '';\n };\n const getStatusIcon = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status === 1)\n return '💳';\n if (status === 2)\n return '📦';\n if (status === 3)\n return '🚚';\n if (status === 4)\n return '✅';\n return '📝';\n };\n const getStatusClass = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n return `status-${status}`;\n };\n const getFullAddress = (addr = null) => {\n var _a, _b, _c, _d, _g;\n if (addr == null)\n return '';\n if (typeof addr === 'string')\n return addr;\n try {\n const addrObj = UTS.JSON.parse(UTS.JSON.stringify(addr));\n const addressField = addrObj.getString('address');\n if (addressField != null && addressField != '')\n return addressField;\n const province = (_a = addrObj.getString('province')) !== null && _a !== void 0 ? _a : '';\n const city = (_b = addrObj.getString('city')) !== null && _b !== void 0 ? _b : '';\n const district = (_c = addrObj.getString('district')) !== null && _c !== void 0 ? _c : '';\n const detail = (_g = (_d = addrObj.getString('detail')) !== null && _d !== void 0 ? _d : addrObj.getString('address_detail')) !== null && _g !== void 0 ? _g : '';\n return province + city + district + detail;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:278', '[getFullAddress] 解析地址失败:', e);\n return '';\n }\n };\n function formatSpecs(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n if (specs == '')\n return '';\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed != null) {\n return formatSpecs(parsed);\n }\n return specs;\n }\n catch (e) {\n return specs;\n }\n }\n try {\n const specStr = UTS.JSON.stringify(specs);\n const specObj = UTS.JSON.parse(specStr);\n // 定义常见的键名\n const keys = ['Color', 'Size', '颜色', '尺寸', '规格', '默认', 'spec', 'color', 'size'];\n const parts = [];\n // 尝试提取键值\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val = specObj.get(key);\n if (val != null && val != '') {\n parts.push(val.toString());\n }\n }\n // 如果提取到了内容\n if (parts.length > 0) {\n return parts.join(' | ');\n }\n // 如果没有提取到已知键,则进行通用清理\n return specStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n catch (e) {\n return '';\n }\n }\n const getSpecText = (specs = null) => {\n return formatSpecs(specs);\n };\n const formatTime = (iso) => {\n if (iso == '')\n return '';\n const d = new Date(iso);\n return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}`;\n };\n const getPaymentMethodText = (method = null) => {\n return '在线支付';\n };\n const copyText = (text) => {\n if (text == '')\n return null;\n uni.setClipboardData({\n data: text,\n success: () => { return uni.showToast({ title: '已复制' }); }\n });\n };\n const loadShopInfo = (merchantId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supa\n .from('ml_shops')\n .select('shop_name')\n .eq('merchant_id', merchantId)\n .limit(1)\n .execute();\n if (result.error != null) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:359', '[loadShopInfo] 获取店铺信息失败:', result.error);\n return Promise.resolve(null);\n }\n const rawData = result.data;\n if (rawData == null)\n return Promise.resolve(null);\n const rawList = rawData;\n if (rawList.length == 0)\n return Promise.resolve(null);\n const shopData = rawList[0];\n const shopObj = UTS.JSON.parse(UTS.JSON.stringify(shopData));\n shopName.value = ((_a = shopObj.getString('shop_name')) !== null && _a !== void 0 ? _a : '店铺');\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:373', '[loadShopInfo] 获取店铺信息异常:', e);\n }\n }); };\n const loadOrderDetail = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;\n uni.showLoading({ title: '加载中' });\n try {\n const data = yield supabaseService.getOrderDetail(orderId.value);\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:381', '[loadOrderDetail] 获取到的数据:', UTS.JSON.stringify(data));\n if (data != null) {\n const dataObj = data;\n order.value = new OrderType({\n order_no: ((_a = dataObj.get('order_no')) !== null && _a !== void 0 ? _a : ''),\n order_status: ((_b = dataObj.get('order_status')) !== null && _b !== void 0 ? _b : 1),\n total_amount: ((_c = dataObj.get('total_amount')) !== null && _c !== void 0 ? _c : 0),\n product_amount: ((_d = dataObj.get('product_amount')) !== null && _d !== void 0 ? _d : 0),\n shipping_fee: ((_g = dataObj.get('shipping_fee')) !== null && _g !== void 0 ? _g : 0),\n discount_amount: ((_h = dataObj.get('discount_amount')) !== null && _h !== void 0 ? _h : 0),\n payment_method: ((_j = dataObj.get('payment_method')) !== null && _j !== void 0 ? _j : ''),\n created_at: ((_k = dataObj.get('created_at')) !== null && _k !== void 0 ? _k : ''),\n paid_at: ((_l = dataObj.get('paid_at')) !== null && _l !== void 0 ? _l : ''),\n shipped_at: ((_m = dataObj.get('shipped_at')) !== null && _m !== void 0 ? _m : ''),\n completed_at: ((_p = dataObj.get('completed_at')) !== null && _p !== void 0 ? _p : ''),\n merchant_id: ((_q = dataObj.get('merchant_id')) !== null && _q !== void 0 ? _q : ''),\n shipping_address: ((_r = dataObj.get('shipping_address')) !== null && _r !== void 0 ? _r : null)\n });\n const itemsRaw = dataObj.get('ml_order_items');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:403', '[loadOrderDetail] 订单商品数据:', itemsRaw);\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n orderItems.value = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const orderItem = new OrderItemType({\n id: ((_s = itemObj.get('id')) !== null && _s !== void 0 ? _s : ''),\n product_id: ((_u = itemObj.get('product_id')) !== null && _u !== void 0 ? _u : ''),\n product_name: ((_v = itemObj.get('product_name')) !== null && _v !== void 0 ? _v : '未知商品'),\n price: ((_w = itemObj.get('price')) !== null && _w !== void 0 ? _w : 0),\n quantity: ((_x = itemObj.get('quantity')) !== null && _x !== void 0 ? _x : 1),\n image_url: ((_y = itemObj.get('image_url')) !== null && _y !== void 0 ? _y : ''),\n specifications: ((_z = itemObj.get('specifications')) !== null && _z !== void 0 ? _z : '')\n });\n orderItems.value.push(orderItem);\n }\n }\n const addressRaw = dataObj.get('shipping_address');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:426', '[loadOrderDetail] 收货地址数据:', addressRaw);\n if (addressRaw != null) {\n let addressObj;\n if (UTS.isInstanceOf(addressRaw, UTSJSONObject)) {\n addressObj = addressRaw;\n }\n else if (typeof addressRaw === 'string') {\n addressObj = UTS.JSON.parse(addressRaw);\n }\n else {\n addressObj = UTS.JSON.parse(UTS.JSON.stringify(addressRaw));\n }\n const province = ((_0 = addressObj.get('province')) !== null && _0 !== void 0 ? _0 : '');\n const city = ((_1 = addressObj.get('city')) !== null && _1 !== void 0 ? _1 : '');\n const district = ((_2 = addressObj.get('district')) !== null && _2 !== void 0 ? _2 : '');\n const detail = ((_3 = addressObj.get('detail')) !== null && _3 !== void 0 ? _3 : ((_4 = addressObj.get('address_detail')) !== null && _4 !== void 0 ? _4 : ''));\n deliveryAddress.value = new AddressType({\n name: ((_5 = addressObj.get('name')) !== null && _5 !== void 0 ? _5 : ((_6 = addressObj.get('recipient_name')) !== null && _6 !== void 0 ? _6 : ((_7 = addressObj.get('receiver_name')) !== null && _7 !== void 0 ? _7 : ''))),\n phone: ((_8 = addressObj.get('phone')) !== null && _8 !== void 0 ? _8 : ((_9 = addressObj.get('recipient_phone')) !== null && _9 !== void 0 ? _9 : ((_10 = addressObj.get('receiver_phone')) !== null && _10 !== void 0 ? _10 : ''))),\n province: province,\n city: city,\n district: district,\n detail: detail,\n address: province + city + district + detail\n });\n }\n const merchantId = ((_11 = dataObj.get('merchant_id')) !== null && _11 !== void 0 ? _11 : '');\n if (merchantId != '') {\n loadShopInfo(merchantId);\n }\n // 加载物流信息\n const trackingNoVal = dataObj.getString('tracking_no');\n const carrierNameVal = dataObj.getString('carrier_name');\n if (trackingNoVal != null && trackingNoVal != '') {\n deliveryInfo.value = new DeliveryInfoType({\n tracking_no: trackingNoVal,\n carrier_name: carrierNameVal !== null && carrierNameVal !== void 0 ? carrierNameVal : ''\n });\n }\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:469', '[loadOrderDetail] 订单详情加载成功,商品数量:', orderItems.value.length);\n }\n else {\n uni.showToast({ title: '订单不存在', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:474', '[loadOrderDetail] 加载订单详情失败:', e);\n uni.showToast({ title: '加载失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n // 动作函数\n const contactService = () => {\n var _a, _b;\n if (order.value != null && ((_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) != '') {\n // 跳转到商家的聊天窗口\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${(_b = order.value) === null || _b === void 0 ? null : _b.merchant_id}&merchantName=${encodeURIComponent(shopName.value)}`\n });\n }\n else {\n uni.showActionSheet({\n itemList: ['在线客服', '拨打电话'],\n success: (res) => {\n if (res.tapIndex === 1) {\n // 模拟拨打电话\n uni.makePhoneCall({ phoneNumber: '400-123-4567' });\n }\n else {\n uni.showToast({ title: '连接到了系统客服' });\n }\n }\n });\n }\n };\n const payOrder = () => {\n var _a, _b;\n const totalAmount = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.total_amount) !== null && _b !== void 0 ? _b : 0;\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId.value}&amount=${totalAmount}`\n });\n };\n const doCancelOrder = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const updatePayload = new UTSJSONObject();\n updatePayload.set('order_status', 5);\n updatePayload.set('updated_at', new Date().toISOString());\n const result = yield supa\n .from('ml_orders')\n .update(updatePayload)\n .eq('id', orderId.value)\n .execute();\n if (result.error == null) {\n if (order.value != null) {\n order.value.order_status = 5;\n }\n uni.showToast({ title: '订单已取消' });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:528', '[doCancelOrder] 取消订单失败:', result.error);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:532', '[doCancelOrder] 取消订单异常:', e);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }); };\n const cancelOrder = () => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要取消订单吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelOrder();\n }\n }\n }));\n };\n const remindDelivery = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const merchantId = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id;\n if (merchantId == null || merchantId == '') {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n return Promise.resolve(null);\n }\n const orderNo = (_c = (_b = order.value) === null || _b === void 0 ? null : _b.order_no) !== null && _c !== void 0 ? _c : '';\n const message = `您好,订单 ${orderNo} 已付款,请尽快安排发货,谢谢!`;\n uni.showLoading({ title: '发送中...' });\n const success = yield supabaseService.sendChatMessage(message, merchantId, 'text');\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '已提醒商家尽快发货' });\n }\n else {\n uni.showToast({ title: '发送失败,请稍后重试', icon: 'none' });\n }\n }); };\n const viewLogistics = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/logistics?orderId=${orderId.value}` });\n };\n const goToReview = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/review?orderId=${orderId.value}` });\n };\n const doConfirmReceive = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supabaseService.confirmReceipt(orderId.value);\n if (result.success) {\n if (order.value != null) {\n order.value.order_status = 4;\n }\n uni.showToast({ title: '收货成功' });\n setTimeout(() => { return goToReview(); }, 1500);\n }\n else {\n uni.showToast({ title: (_a = result.error) !== null && _a !== void 0 ? _a : '失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:591', '[doConfirmReceive] 确认收货异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const confirmReceive = () => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确保您已收到货物',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceive();\n }\n }\n }));\n };\n const rePurchase = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n uni.showLoading({ title: '处理中' });\n try {\n const items = orderItems.value;\n if (items.length == 0) {\n uni.hideLoading();\n uni.showToast({ title: '没有可购买的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const result = yield supabaseService.addToCart(item.product_id, item.quantity, '', (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '');\n if (result)\n successCount++;\n }\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: '已加入购物车' });\n setTimeout(() => {\n uni.switchTab({ url: '/pages/main/cart' });\n }, 1000);\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:642', '[rePurchase] 再次购买异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const doApplyRefund = (reason) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const success = yield supabaseService.applyRefund(orderId.value, reason);\n if (success) {\n if (order.value != null) {\n order.value.order_status = 6;\n }\n uni.showToast({ title: '申请已提交' });\n }\n else {\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:659', '[doApplyRefund] 申请退款异常:', e);\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }); };\n const applyRefund = () => {\n uni.showModal(new UTSJSONObject({\n title: '申请退款',\n editable: true,\n placeholderText: '请输入退款原因',\n success: (res) => {\n var _a;\n if (res.confirm) {\n const reason = (_a = res.content) !== null && _a !== void 0 ? _a : '用户主动申请';\n doApplyRefund(reason);\n }\n }\n }));\n };\n const applyAfterSales = () => {\n // 售后逻辑类似退款,或者是跳转到专门的售后单页面\n applyRefund();\n };\n const goToShop = () => {\n var _a, _b;\n // 跳转到店铺详情\n const merchantId = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?id=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n }\n };\n const goToProduct = (pid) => {\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${pid}` });\n };\n const shareForFree = () => { return __awaiter(this, void 0, void 0, function* () {\n if (orderItems.value.length === 0) {\n uni.showToast({ title: '没有可分享的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n const firstItem = orderItems.value[0];\n try {\n uni.showLoading({ title: '创建分享...' });\n const result = yield supabaseService.createShareRecord(firstItem.product_id, orderId.value, firstItem.id, firstItem.product_name, firstItem.image_url, firstItem.price);\n uni.hideLoading();\n const shareIdRaw = result.get('id');\n const shareCodeRaw = result.get('share_code');\n if (shareIdRaw != null && shareCodeRaw != null) {\n const shareId = shareIdRaw;\n const shareCode = shareCodeRaw;\n uni.showModal(new UTSJSONObject({\n title: '分享成功',\n content: `您的分享码: ${shareCode}\\n分享给好友,当有4人购买后即可免单!`,\n confirmText: '查看详情',\n success: (res) => {\n if (res.confirm) {\n uni.navigateTo({ url: `/pages/mall/consumer/share/detail?id=${shareId}` });\n }\n }\n }));\n }\n else {\n uni.showToast({ title: '分享创建失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:741', '[shareForFree] 创建分享失败:', e);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }); };\n // 使用 onBackPress 拦截物理返回键和系统导航栏返回\n onBackPress((_ = null) => {\n var _a;\n const pages = getCurrentPages();\n if (pages.length > 1) {\n // @ts-ignore\n const prevPage = pages[pages.length - 2];\n // @ts-ignore\n const prevRoute = (_a = prevPage.route) !== null && _a !== void 0 ? _a : '';\n if (prevRoute.includes('product-detail') || prevRoute.includes('payment')) {\n uni.redirectTo({ url: '/pages/mall/consumer/orders' });\n return true;\n }\n }\n else {\n uni.redirectTo({ url: '/pages/mall/consumer/orders' });\n return true;\n }\n return false;\n });\n // 生命周期 - 在所有函数定义之后\n onLoad((options = null) => {\n const id = options['id'];\n const orderIdParam = options['orderId'];\n if (id != null && id != '') {\n orderId.value = id;\n loadOrderDetail();\n }\n else if (orderIdParam != null && orderIdParam != '') {\n orderId.value = orderIdParam;\n loadOrderDetail();\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(getStatusIcon()),\n b: _t(getStatusText()),\n c: _t(getStatusDesc()),\n d: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n e: _o(shareForFree)\n } : {}, {\n f: _n(getStatusClass()),\n g: order.value != null && (order.value?.order_status ?? 0) >= 2\n }, order.value != null && (order.value?.order_status ?? 0) >= 2 ? _e({\n h: _t(deliveryAddress.value?.name ?? ''),\n i: _t(deliveryAddress.value?.phone ?? ''),\n j: _t(getFullAddress(deliveryAddress.value)),\n k: deliveryInfo.value != null && deliveryInfo.value?.tracking_no != ''\n }, deliveryInfo.value != null && deliveryInfo.value?.tracking_no != '' ? {\n l: _t(deliveryInfo.value?.carrier_name ?? '快递运单'),\n m: _t(deliveryInfo.value?.tracking_no ?? ''),\n n: _o($event => { return copyText(deliveryInfo.value?.tracking_no ?? ''); })\n } : {}) : {}, {\n o: _t(shopName.value),\n p: _o(goToShop),\n q: _f(orderItems.value, (item, k0, i0) => {\n return _e({\n a: item.image_url != null && item.image_url != '' ? item.image_url : '/static/default-product.png',\n b: _t(item.product_name),\n c: item.specifications\n }, item.specifications ? {\n d: _t(getSpecText(item.specifications))\n } : {}, {\n e: _t(item.price),\n f: _t(item.quantity),\n g: item.id,\n h: _o($event => { return goToProduct(item.product_id); }, item.id)\n });\n }),\n r: order.value != null\n }, order.value != null ? _e({\n s: _t(order.value?.order_no ?? ''),\n t: _o($event => { return copyText(order.value?.order_no ?? ''); }),\n v: _t(formatTime(order.value?.created_at ?? '')),\n w: order.value?.payment_method != null && order.value?.payment_method != ''\n }, order.value?.payment_method != null && order.value?.payment_method != '' ? {\n x: _t(getPaymentMethodText(order.value?.payment_method))\n } : {}, {\n y: order.value?.paid_at != null && order.value?.paid_at != ''\n }, order.value?.paid_at != null && order.value?.paid_at != '' ? {\n z: _t(formatTime(order.value?.paid_at ?? ''))\n } : {}, {\n A: order.value?.shipped_at != null && order.value?.shipped_at != ''\n }, order.value?.shipped_at != null && order.value?.shipped_at != '' ? {\n B: _t(formatTime(order.value?.shipped_at ?? ''))\n } : {}, {\n C: order.value?.completed_at != null && order.value?.completed_at != ''\n }, order.value?.completed_at != null && order.value?.completed_at != '' ? {\n D: _t(formatTime(order.value?.completed_at ?? ''))\n } : {}) : {}, {\n E: order.value != null\n }, order.value != null ? _e({\n F: _t(order.value?.product_amount ?? 0),\n G: _t(order.value?.shipping_fee != null ? order.value?.shipping_fee : 0),\n H: (order.value?.discount_amount ?? 0) > 0\n }, (order.value?.discount_amount ?? 0) > 0 ? {\n I: _t(order.value?.discount_amount ?? 0)\n } : {}, {\n J: _t(order.value?.total_amount ?? 0)\n }) : {}, {\n K: order.value != null\n }, order.value != null ? _e({\n L: _o(contactService),\n M: order.value?.order_status === 1\n }, order.value?.order_status === 1 ? {\n N: _o(cancelOrder),\n O: _o(payOrder)\n } : {}, {\n P: order.value?.order_status === 2\n }, order.value?.order_status === 2 ? {\n Q: _o(applyRefund),\n R: _o(remindDelivery)\n } : {}, {\n S: order.value?.order_status === 3\n }, order.value?.order_status === 3 ? {\n T: _o(viewLogistics),\n U: _o(confirmReceive)\n } : {}, {\n V: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n W: _o(applyAfterSales),\n X: _o(shareForFree),\n Y: _o(rePurchase),\n Z: _o(goToReview)\n } : {}, {\n aa: order.value?.order_status === 5\n }, order.value?.order_status === 5 ? {\n ab: _o(rePurchase)\n } : {}) : {}, {\n ac: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/order-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.setClipboardData","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.makePhoneCall","uni.showActionSheet","uni.showModal","uni.switchTab","uni.redirectTo"],"map":"{\"version\":3,\"file\":\"order-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"order-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nimport supa from \"@/components/supadb/aksupainstance\";\nclass OrderType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_no: { type: String, optional: false },\n order_status: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n discount_amount: { type: Number, optional: false },\n payment_method: { type: String, optional: false },\n created_at: { type: String, optional: false },\n paid_at: { type: String, optional: false },\n shipped_at: { type: String, optional: false },\n completed_at: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n shipping_address: { type: \"Any\", optional: true }\n };\n },\n name: \"OrderType\"\n };\n }\n constructor(options, metadata = OrderType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_no = this.__props__.order_no;\n this.order_status = this.__props__.order_status;\n this.total_amount = this.__props__.total_amount;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.discount_amount = this.__props__.discount_amount;\n this.payment_method = this.__props__.payment_method;\n this.created_at = this.__props__.created_at;\n this.paid_at = this.__props__.paid_at;\n this.shipped_at = this.__props__.shipped_at;\n this.completed_at = this.__props__.completed_at;\n this.merchant_id = this.__props__.merchant_id;\n this.shipping_address = this.__props__.shipping_address;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n image_url: { type: String, optional: false },\n price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n specifications: { type: \"Any\", optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.image_url = this.__props__.image_url;\n this.price = this.__props__.price;\n this.quantity = this.__props__.quantity;\n this.specifications = this.__props__.specifications;\n delete this.__props__;\n }\n}\nclass AddressType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n address: { type: String, optional: false }\n };\n },\n name: \"AddressType\"\n };\n }\n constructor(options, metadata = AddressType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.address = this.__props__.address;\n delete this.__props__;\n }\n}\nclass DeliveryInfoType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n tracking_no: { type: String, optional: false },\n carrier_name: { type: String, optional: false }\n };\n },\n name: \"DeliveryInfoType\"\n };\n }\n constructor(options, metadata = DeliveryInfoType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.tracking_no = this.__props__.tracking_no;\n this.carrier_name = this.__props__.carrier_name;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'order-detail',\n setup(__props) {\n const orderId = ref('');\n const order = ref(null);\n const orderItems = ref([]);\n const shopName = ref('店铺名称');\n const deliveryAddress = ref(null);\n const deliveryInfo = ref(null);\n // 辅助函数 - 必须在调用前定义\n const getStatusText = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n const getStatusDesc = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '请尽快完成支付';\n if (status == 2)\n return '商家正在打包商品';\n if (status == 3)\n return '商品正在赶往您的地址';\n if (status == 4)\n return '订单已完成,感谢支持';\n if (status == 5)\n return '订单已取消';\n if (status == 6)\n return '售后处理中';\n if (status == 7)\n return '钱款已退回';\n return '';\n };\n const getStatusIcon = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status === 1)\n return '💳';\n if (status === 2)\n return '📦';\n if (status === 3)\n return '🚚';\n if (status === 4)\n return '✅';\n return '📝';\n };\n const getStatusClass = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n return `status-${status}`;\n };\n const getFullAddress = (addr = null) => {\n var _a, _b, _c, _d, _g;\n if (addr == null)\n return '';\n if (typeof addr === 'string')\n return addr;\n try {\n const addrObj = UTS.JSON.parse(UTS.JSON.stringify(addr));\n const addressField = addrObj.getString('address');\n if (addressField != null && addressField != '')\n return addressField;\n const province = (_a = addrObj.getString('province')) !== null && _a !== void 0 ? _a : '';\n const city = (_b = addrObj.getString('city')) !== null && _b !== void 0 ? _b : '';\n const district = (_c = addrObj.getString('district')) !== null && _c !== void 0 ? _c : '';\n const detail = (_g = (_d = addrObj.getString('detail')) !== null && _d !== void 0 ? _d : addrObj.getString('address_detail')) !== null && _g !== void 0 ? _g : '';\n return province + city + district + detail;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:278', '[getFullAddress] 解析地址失败:', e);\n return '';\n }\n };\n function formatSpecs(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n if (specs == '')\n return '';\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed != null) {\n return formatSpecs(parsed);\n }\n return specs;\n }\n catch (e) {\n return specs;\n }\n }\n try {\n const specStr = UTS.JSON.stringify(specs);\n const specObj = UTS.JSON.parse(specStr);\n // 定义常见的键名\n const keys = ['Color', 'Size', '颜色', '尺寸', '规格', '默认', 'spec', 'color', 'size'];\n const parts = [];\n // 尝试提取键值\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val = specObj.get(key);\n if (val != null && val != '') {\n parts.push(val.toString());\n }\n }\n // 如果提取到了内容\n if (parts.length > 0) {\n return parts.join(' | ');\n }\n // 如果没有提取到已知键,则进行通用清理\n return specStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n catch (e) {\n return '';\n }\n }\n const getSpecText = (specs = null) => {\n return formatSpecs(specs);\n };\n const formatTime = (iso) => {\n if (iso == '')\n return '';\n const d = new Date(iso);\n return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}`;\n };\n const getPaymentMethodText = (method = null) => {\n return '在线支付';\n };\n const copyText = (text) => {\n if (text == '')\n return null;\n uni.setClipboardData({\n data: text,\n success: () => { return uni.showToast({ title: '已复制' }); }\n });\n };\n const loadShopInfo = (merchantId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supa\n .from('ml_shops')\n .select('shop_name')\n .eq('merchant_id', merchantId)\n .limit(1)\n .execute();\n if (result.error != null) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:359', '[loadShopInfo] 获取店铺信息失败:', result.error);\n return Promise.resolve(null);\n }\n const rawData = result.data;\n if (rawData == null)\n return Promise.resolve(null);\n const rawList = rawData;\n if (rawList.length == 0)\n return Promise.resolve(null);\n const shopData = rawList[0];\n const shopObj = UTS.JSON.parse(UTS.JSON.stringify(shopData));\n shopName.value = ((_a = shopObj.getString('shop_name')) !== null && _a !== void 0 ? _a : '店铺');\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:373', '[loadShopInfo] 获取店铺信息异常:', e);\n }\n }); };\n const loadOrderDetail = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;\n uni.showLoading({ title: '加载中' });\n try {\n const data = yield supabaseService.getOrderDetail(orderId.value);\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:381', '[loadOrderDetail] 获取到的数据:', UTS.JSON.stringify(data));\n if (data != null) {\n const dataObj = data;\n order.value = new OrderType({\n order_no: ((_a = dataObj.get('order_no')) !== null && _a !== void 0 ? _a : ''),\n order_status: ((_b = dataObj.get('order_status')) !== null && _b !== void 0 ? _b : 1),\n total_amount: ((_c = dataObj.get('total_amount')) !== null && _c !== void 0 ? _c : 0),\n product_amount: ((_d = dataObj.get('product_amount')) !== null && _d !== void 0 ? _d : 0),\n shipping_fee: ((_g = dataObj.get('shipping_fee')) !== null && _g !== void 0 ? _g : 0),\n discount_amount: ((_h = dataObj.get('discount_amount')) !== null && _h !== void 0 ? _h : 0),\n payment_method: ((_j = dataObj.get('payment_method')) !== null && _j !== void 0 ? _j : ''),\n created_at: ((_k = dataObj.get('created_at')) !== null && _k !== void 0 ? _k : ''),\n paid_at: ((_l = dataObj.get('paid_at')) !== null && _l !== void 0 ? _l : ''),\n shipped_at: ((_m = dataObj.get('shipped_at')) !== null && _m !== void 0 ? _m : ''),\n completed_at: ((_p = dataObj.get('completed_at')) !== null && _p !== void 0 ? _p : ''),\n merchant_id: ((_q = dataObj.get('merchant_id')) !== null && _q !== void 0 ? _q : ''),\n shipping_address: ((_r = dataObj.get('shipping_address')) !== null && _r !== void 0 ? _r : null)\n });\n const itemsRaw = dataObj.get('ml_order_items');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:403', '[loadOrderDetail] 订单商品数据:', itemsRaw);\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n orderItems.value = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const orderItem = new OrderItemType({\n id: ((_s = itemObj.get('id')) !== null && _s !== void 0 ? _s : ''),\n product_id: ((_u = itemObj.get('product_id')) !== null && _u !== void 0 ? _u : ''),\n product_name: ((_v = itemObj.get('product_name')) !== null && _v !== void 0 ? _v : '未知商品'),\n price: ((_w = itemObj.get('price')) !== null && _w !== void 0 ? _w : 0),\n quantity: ((_x = itemObj.get('quantity')) !== null && _x !== void 0 ? _x : 1),\n image_url: ((_y = itemObj.get('image_url')) !== null && _y !== void 0 ? _y : ''),\n specifications: ((_z = itemObj.get('specifications')) !== null && _z !== void 0 ? _z : '')\n });\n orderItems.value.push(orderItem);\n }\n }\n const addressRaw = dataObj.get('shipping_address');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:426', '[loadOrderDetail] 收货地址数据:', addressRaw);\n if (addressRaw != null) {\n let addressObj;\n if (UTS.isInstanceOf(addressRaw, UTSJSONObject)) {\n addressObj = addressRaw;\n }\n else if (typeof addressRaw === 'string') {\n addressObj = UTS.JSON.parse(addressRaw);\n }\n else {\n addressObj = UTS.JSON.parse(UTS.JSON.stringify(addressRaw));\n }\n const province = ((_0 = addressObj.get('province')) !== null && _0 !== void 0 ? _0 : '');\n const city = ((_1 = addressObj.get('city')) !== null && _1 !== void 0 ? _1 : '');\n const district = ((_2 = addressObj.get('district')) !== null && _2 !== void 0 ? _2 : '');\n const detail = ((_3 = addressObj.get('detail')) !== null && _3 !== void 0 ? _3 : ((_4 = addressObj.get('address_detail')) !== null && _4 !== void 0 ? _4 : ''));\n deliveryAddress.value = new AddressType({\n name: ((_5 = addressObj.get('name')) !== null && _5 !== void 0 ? _5 : ((_6 = addressObj.get('recipient_name')) !== null && _6 !== void 0 ? _6 : ((_7 = addressObj.get('receiver_name')) !== null && _7 !== void 0 ? _7 : ''))),\n phone: ((_8 = addressObj.get('phone')) !== null && _8 !== void 0 ? _8 : ((_9 = addressObj.get('recipient_phone')) !== null && _9 !== void 0 ? _9 : ((_10 = addressObj.get('receiver_phone')) !== null && _10 !== void 0 ? _10 : ''))),\n province: province,\n city: city,\n district: district,\n detail: detail,\n address: province + city + district + detail\n });\n }\n const merchantId = ((_11 = dataObj.get('merchant_id')) !== null && _11 !== void 0 ? _11 : '');\n if (merchantId != '') {\n loadShopInfo(merchantId);\n }\n // 加载物流信息\n const trackingNoVal = dataObj.getString('tracking_no');\n const carrierNameVal = dataObj.getString('carrier_name');\n if (trackingNoVal != null && trackingNoVal != '') {\n deliveryInfo.value = new DeliveryInfoType({\n tracking_no: trackingNoVal,\n carrier_name: carrierNameVal !== null && carrierNameVal !== void 0 ? carrierNameVal : ''\n });\n }\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:469', '[loadOrderDetail] 订单详情加载成功,商品数量:', orderItems.value.length);\n }\n else {\n uni.showToast({ title: '订单不存在', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:474', '[loadOrderDetail] 加载订单详情失败:', e);\n uni.showToast({ title: '加载失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n // 动作函数\n const contactService = () => {\n var _a, _b;\n if (order.value != null && ((_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) != '') {\n // 跳转到商家的聊天窗口\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${(_b = order.value) === null || _b === void 0 ? null : _b.merchant_id}&merchantName=${encodeURIComponent(shopName.value)}`\n });\n }\n else {\n uni.showActionSheet({\n itemList: ['在线客服', '拨打电话'],\n success: (res) => {\n if (res.tapIndex === 1) {\n // 模拟拨打电话\n uni.makePhoneCall({ phoneNumber: '400-123-4567' });\n }\n else {\n uni.showToast({ title: '连接到了系统客服' });\n }\n }\n });\n }\n };\n const payOrder = () => {\n var _a, _b;\n const totalAmount = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.total_amount) !== null && _b !== void 0 ? _b : 0;\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId.value}&amount=${totalAmount}`\n });\n };\n const doCancelOrder = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const updatePayload = new UTSJSONObject();\n updatePayload.set('order_status', 5);\n updatePayload.set('updated_at', new Date().toISOString());\n const result = yield supa\n .from('ml_orders')\n .update(updatePayload)\n .eq('id', orderId.value)\n .execute();\n if (result.error == null) {\n if (order.value != null) {\n order.value.order_status = 5;\n }\n uni.showToast({ title: '订单已取消' });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:528', '[doCancelOrder] 取消订单失败:', result.error);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:532', '[doCancelOrder] 取消订单异常:', e);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }); };\n const cancelOrder = () => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要取消订单吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelOrder();\n }\n }\n }));\n };\n const remindDelivery = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const merchantId = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id;\n if (merchantId == null || merchantId == '') {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n return Promise.resolve(null);\n }\n const orderNo = (_c = (_b = order.value) === null || _b === void 0 ? null : _b.order_no) !== null && _c !== void 0 ? _c : '';\n const message = `您好,订单 ${orderNo} 已付款,请尽快安排发货,谢谢!`;\n uni.showLoading({ title: '发送中...' });\n const success = yield supabaseService.sendChatMessage(message, merchantId, 'text');\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '已提醒商家尽快发货' });\n }\n else {\n uni.showToast({ title: '发送失败,请稍后重试', icon: 'none' });\n }\n }); };\n const viewLogistics = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/logistics?orderId=${orderId.value}` });\n };\n const goToReview = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/review?orderId=${orderId.value}` });\n };\n const doConfirmReceive = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supabaseService.confirmReceipt(orderId.value);\n if (result.success) {\n if (order.value != null) {\n order.value.order_status = 4;\n }\n uni.showToast({ title: '收货成功' });\n setTimeout(() => { return goToReview(); }, 1500);\n }\n else {\n uni.showToast({ title: (_a = result.error) !== null && _a !== void 0 ? _a : '失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:591', '[doConfirmReceive] 确认收货异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const confirmReceive = () => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确保您已收到货物',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceive();\n }\n }\n }));\n };\n const rePurchase = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n uni.showLoading({ title: '处理中' });\n try {\n const items = orderItems.value;\n if (items.length == 0) {\n uni.hideLoading();\n uni.showToast({ title: '没有可购买的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const result = yield supabaseService.addToCart(item.product_id, item.quantity, '', (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '');\n if (result)\n successCount++;\n }\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: '已加入购物车' });\n setTimeout(() => {\n uni.switchTab({ url: '/pages/main/cart' });\n }, 1000);\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:642', '[rePurchase] 再次购买异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const doApplyRefund = (reason) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const success = yield supabaseService.applyRefund(orderId.value, reason);\n if (success) {\n if (order.value != null) {\n order.value.order_status = 6;\n }\n uni.showToast({ title: '申请已提交' });\n }\n else {\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:659', '[doApplyRefund] 申请退款异常:', e);\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }); };\n const applyRefund = () => {\n uni.showModal(new UTSJSONObject({\n title: '申请退款',\n editable: true,\n placeholderText: '请输入退款原因',\n success: (res) => {\n var _a;\n if (res.confirm) {\n const reason = (_a = res.content) !== null && _a !== void 0 ? _a : '用户主动申请';\n doApplyRefund(reason);\n }\n }\n }));\n };\n const applyAfterSales = () => {\n // 售后逻辑类似退款,或者是跳转到专门的售后单页面\n applyRefund();\n };\n const goToShop = () => {\n var _a, _b;\n // 跳转到店铺详情\n const merchantId = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?id=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n }\n };\n const goToProduct = (pid) => {\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${pid}` });\n };\n const shareForFree = () => { return __awaiter(this, void 0, void 0, function* () {\n if (orderItems.value.length === 0) {\n uni.showToast({ title: '没有可分享的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n const firstItem = orderItems.value[0];\n try {\n uni.showLoading({ title: '创建分享...' });\n const result = yield supabaseService.createShareRecord(firstItem.product_id, orderId.value, firstItem.id, firstItem.product_name, firstItem.image_url, firstItem.price);\n uni.hideLoading();\n const shareIdRaw = result.get('id');\n const shareCodeRaw = result.get('share_code');\n if (shareIdRaw != null && shareCodeRaw != null) {\n const shareId = shareIdRaw;\n const shareCode = shareCodeRaw;\n uni.showModal(new UTSJSONObject({\n title: '分享成功',\n content: `您的分享码: ${shareCode}\\n分享给好友,当有4人购买后即可免单!`,\n confirmText: '查看详情',\n success: (res) => {\n if (res.confirm) {\n uni.navigateTo({ url: `/pages/mall/consumer/share/detail?id=${shareId}` });\n }\n }\n }));\n }\n else {\n uni.showToast({ title: '分享创建失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:741', '[shareForFree] 创建分享失败:', e);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }); };\n // 使用 onBackPress 拦截物理返回键和系统导航栏返回\n onBackPress((_ = null) => {\n const pages = getCurrentPages();\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:749', '[order-detail onBackPress] pages count:', pages.length);\n if (pages.length > 1) {\n // 正常返回上一页\n return false;\n }\n // 如果只有当前页面,跳转到 orders\n uni.redirectTo({ url: '/pages/mall/consumer/orders' });\n return true;\n });\n // 生命周期 - 在所有函数定义之后\n onLoad((options = null) => {\n const id = options['id'];\n const orderIdParam = options['orderId'];\n if (id != null && id != '') {\n orderId.value = id;\n loadOrderDetail();\n }\n else if (orderIdParam != null && orderIdParam != '') {\n orderId.value = orderIdParam;\n loadOrderDetail();\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(getStatusIcon()),\n b: _t(getStatusText()),\n c: _t(getStatusDesc()),\n d: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n e: _o(shareForFree)\n } : {}, {\n f: _n(getStatusClass()),\n g: order.value != null && (order.value?.order_status ?? 0) >= 2\n }, order.value != null && (order.value?.order_status ?? 0) >= 2 ? _e({\n h: _t(deliveryAddress.value?.name ?? ''),\n i: _t(deliveryAddress.value?.phone ?? ''),\n j: _t(getFullAddress(deliveryAddress.value)),\n k: deliveryInfo.value != null && deliveryInfo.value?.tracking_no != ''\n }, deliveryInfo.value != null && deliveryInfo.value?.tracking_no != '' ? {\n l: _t(deliveryInfo.value?.carrier_name ?? '快递运单'),\n m: _t(deliveryInfo.value?.tracking_no ?? ''),\n n: _o($event => { return copyText(deliveryInfo.value?.tracking_no ?? ''); })\n } : {}) : {}, {\n o: _t(shopName.value),\n p: _o(goToShop),\n q: _f(orderItems.value, (item, k0, i0) => {\n return _e({\n a: item.image_url != null && item.image_url != '' ? item.image_url : '/static/default-product.png',\n b: _t(item.product_name),\n c: item.specifications\n }, item.specifications ? {\n d: _t(getSpecText(item.specifications))\n } : {}, {\n e: _t(item.price),\n f: _t(item.quantity),\n g: item.id,\n h: _o($event => { return goToProduct(item.product_id); }, item.id)\n });\n }),\n r: order.value != null\n }, order.value != null ? _e({\n s: _t(order.value?.order_no ?? ''),\n t: _o($event => { return copyText(order.value?.order_no ?? ''); }),\n v: _t(formatTime(order.value?.created_at ?? '')),\n w: order.value?.payment_method != null && order.value?.payment_method != ''\n }, order.value?.payment_method != null && order.value?.payment_method != '' ? {\n x: _t(getPaymentMethodText(order.value?.payment_method))\n } : {}, {\n y: order.value?.paid_at != null && order.value?.paid_at != ''\n }, order.value?.paid_at != null && order.value?.paid_at != '' ? {\n z: _t(formatTime(order.value?.paid_at ?? ''))\n } : {}, {\n A: order.value?.shipped_at != null && order.value?.shipped_at != ''\n }, order.value?.shipped_at != null && order.value?.shipped_at != '' ? {\n B: _t(formatTime(order.value?.shipped_at ?? ''))\n } : {}, {\n C: order.value?.completed_at != null && order.value?.completed_at != ''\n }, order.value?.completed_at != null && order.value?.completed_at != '' ? {\n D: _t(formatTime(order.value?.completed_at ?? ''))\n } : {}) : {}, {\n E: order.value != null\n }, order.value != null ? _e({\n F: _t(order.value?.product_amount ?? 0),\n G: _t(order.value?.shipping_fee != null ? order.value?.shipping_fee : 0),\n H: (order.value?.discount_amount ?? 0) > 0\n }, (order.value?.discount_amount ?? 0) > 0 ? {\n I: _t(order.value?.discount_amount ?? 0)\n } : {}, {\n J: _t(order.value?.total_amount ?? 0)\n }) : {}, {\n K: order.value != null\n }, order.value != null ? _e({\n L: _o(contactService),\n M: order.value?.order_status === 1\n }, order.value?.order_status === 1 ? {\n N: _o(cancelOrder),\n O: _o(payOrder)\n } : {}, {\n P: order.value?.order_status === 2\n }, order.value?.order_status === 2 ? {\n Q: _o(applyRefund),\n R: _o(remindDelivery)\n } : {}, {\n S: order.value?.order_status === 3\n }, order.value?.order_status === 3 ? {\n T: _o(viewLogistics),\n U: _o(confirmReceive)\n } : {}, {\n V: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n W: _o(applyAfterSales),\n X: _o(shareForFree),\n Y: _o(rePurchase),\n Z: _o(goToReview)\n } : {}, {\n aa: order.value?.order_status === 5\n }, order.value?.order_status === 5 ? {\n ab: _o(rePurchase)\n } : {}) : {}, {\n ac: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/order-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.setClipboardData","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.makePhoneCall","uni.showActionSheet","uni.showModal","uni.switchTab","uni.redirectTo"],"map":"{\"version\":3,\"file\":\"order-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"order-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d5db7af38838c7fb258e8d1e47c611bc02980316 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d5db7af38838c7fb258e8d1e47c611bc02980316 deleted file mode 100644 index a5157210..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d5db7af38838c7fb258e8d1e47c611bc02980316 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ShareRecordType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_price: { type: Number, optional: false },\n share_code: { type: String, optional: false },\n required_count: { type: Number, optional: false },\n current_count: { type: Number, optional: false },\n status: { type: Number, optional: false },\n reward_amount: { type: Number, optional: true },\n created_at: { type: String, optional: false },\n completed_at: { type: String, optional: true }\n };\n },\n name: \"ShareRecordType\"\n };\n }\n constructor(options, metadata = ShareRecordType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_price = this.__props__.product_price;\n this.share_code = this.__props__.share_code;\n this.required_count = this.__props__.required_count;\n this.current_count = this.__props__.current_count;\n this.status = this.__props__.status;\n this.reward_amount = this.__props__.reward_amount;\n this.created_at = this.__props__.created_at;\n this.completed_at = this.__props__.completed_at;\n delete this.__props__;\n }\n}\nclass BuyerType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n buyer_id: { type: String, optional: false },\n buyer_name: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"BuyerType\"\n };\n }\n constructor(options, metadata = BuyerType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.buyer_id = this.__props__.buyer_id;\n this.buyer_name = this.__props__.buyer_name;\n this.quantity = this.__props__.quantity;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'detail',\n setup(__props) {\n const shareId = ref('');\n const shareRecord = ref(new ShareRecordType({\n id: '',\n product_name: '',\n product_image: null,\n product_price: 0,\n share_code: '',\n required_count: 4,\n current_count: 0,\n status: 0,\n reward_amount: null,\n created_at: '',\n completed_at: null\n }));\n const buyers = ref([]);\n const buyersLoading = ref(false);\n const loadShareDetail = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q;\n if (shareId.value === '')\n return Promise.resolve(null);\n try {\n const result = yield supabaseService.getShareDetail(shareId.value);\n const recordRaw = result.get('share_record');\n if (recordRaw != null) {\n const recordAny = recordRaw;\n if (typeof recordAny._getValue === 'function') {\n shareRecord.value = {\n id: (_a = recordAny._getValue('id')) !== null && _a !== void 0 ? _a : '',\n product_name: (_b = recordAny._getValue('product_name')) !== null && _b !== void 0 ? _b : '',\n product_image: recordAny._getValue('product_image'),\n product_price: (_c = recordAny._getValue('product_price')) !== null && _c !== void 0 ? _c : 0,\n share_code: (_d = recordAny._getValue('share_code')) !== null && _d !== void 0 ? _d : '',\n required_count: (_g = recordAny._getValue('required_count')) !== null && _g !== void 0 ? _g : 4,\n current_count: (_h = recordAny._getValue('current_count')) !== null && _h !== void 0 ? _h : 0,\n status: (_j = recordAny._getValue('status')) !== null && _j !== void 0 ? _j : 0,\n reward_amount: recordAny._getValue('reward_amount'),\n created_at: (_k = recordAny._getValue('created_at')) !== null && _k !== void 0 ? _k : '',\n completed_at: recordAny._getValue('completed_at')\n };\n }\n }\n const purchasesRaw = result.get('secondary_purchases');\n if (purchasesRaw != null && Array.isArray(purchasesRaw)) {\n const parsed = [];\n const arr = purchasesRaw;\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n const itemAny = item;\n if (typeof itemAny._getValue === 'function') {\n parsed.push(new BuyerType({\n id: (_l = itemAny._getValue('id')) !== null && _l !== void 0 ? _l : '',\n buyer_id: (_m = itemAny._getValue('buyer_id')) !== null && _m !== void 0 ? _m : '',\n buyer_name: '用户' + (i + 1),\n quantity: (_p = itemAny._getValue('quantity')) !== null && _p !== void 0 ? _p : 1,\n created_at: (_q = itemAny._getValue('created_at')) !== null && _q !== void 0 ? _q : ''\n }));\n }\n }\n buyers.value = parsed;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/share/detail.uvue:188', '加载分享详情失败:', e);\n }\n }); };\n const getProgressPercent = () => {\n if (shareRecord.value.required_count <= 0)\n return 0;\n return Math.min(100, Math.round((shareRecord.value.current_count / shareRecord.value.required_count) * 100));\n };\n const getStatusText = (status) => {\n if (status === 0)\n return '进行中';\n if (status === 1)\n return '已免单';\n if (status === 2)\n return '已失效';\n if (status === 3)\n return '已过期';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-progress';\n if (status === 1)\n return 'status-completed';\n if (status === 2)\n return 'status-invalid';\n if (status === 3)\n return 'status-expired';\n return '';\n };\n const copyShareCode = () => {\n uni.setClipboardData({\n data: shareRecord.value.share_code,\n success: () => {\n uni.showToast({ title: '已复制分享码', icon: 'success' });\n }\n });\n };\n const getBuyerInitial = (name) => {\n if (name.length > 0) {\n return name.charAt(0);\n }\n return '用';\n };\n const maskName = (name) => {\n if (name.length <= 2) {\n return name.charAt(0) + '*';\n }\n return name.charAt(0) + '***' + name.charAt(name.length - 1);\n };\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n onMounted(() => {\n const pages = getCurrentPages();\n if (pages.length > 0) {\n const currentPage = pages[pages.length - 1];\n const options = currentPage.options;\n if (options != null && options.id != null) {\n shareId.value = options.id;\n loadShareDetail();\n }\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: shareRecord.value.product_image || defaultImage,\n b: _t(shareRecord.value.product_name),\n c: _t(shareRecord.value.product_price),\n d: _t(getStatusText(shareRecord.value.status)),\n e: _n(getStatusClass(shareRecord.value.status)),\n f: getProgressPercent() + '%',\n g: _t(shareRecord.value.current_count),\n h: _t(shareRecord.value.required_count),\n i: shareRecord.value.status === 0\n }, shareRecord.value.status === 0 ? {\n j: _t(shareRecord.value.required_count - shareRecord.value.current_count)\n } : {}, {\n k: shareRecord.value.status === 1\n }, shareRecord.value.status === 1 ? {\n l: _t(shareRecord.value.reward_amount)\n } : {}, {\n m: _o(copyShareCode),\n n: _t(shareRecord.value.share_code),\n o: _t(buyers.value.length),\n p: buyersLoading.value\n }, buyersLoading.value ? {} : buyers.value.length === 0 ? {} : {\n r: _f(buyers.value, (buyer, k0, i0) => {\n return {\n a: _t(getBuyerInitial(buyer.buyer_name)),\n b: _t(maskName(buyer.buyer_name)),\n c: _t(formatTime(buyer.created_at)),\n d: _t(buyer.quantity),\n e: buyer.id\n };\n })\n }, {\n q: buyers.value.length === 0,\n s: _t(formatTime(shareRecord.value.created_at)),\n t: shareRecord.value.completed_at\n }, shareRecord.value.completed_at ? {\n v: _t(formatTime(shareRecord.value.completed_at))\n } : {}, {\n w: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/share/detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.setClipboardData"],"map":"{\"version\":3,\"file\":\"detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d734cc0c47ee9484ef0f0d2ce8ef8872f01703e8 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d734cc0c47ee9484ef0f0d2ce8ef8872f01703e8 deleted file mode 100644 index a6e06c98..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/d734cc0c47ee9484ef0f0d2ce8ef8872f01703e8 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass PointProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n description: { type: String, optional: true },\n image_url: { type: String, optional: true },\n product_type: { type: String, optional: false },\n points_required: { type: Number, optional: false },\n original_price: { type: Number, optional: true },\n stock: { type: Number, optional: false },\n status: { type: Number, optional: false }\n };\n },\n name: \"PointProduct\"\n };\n }\n constructor(options, metadata = PointProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.image_url = this.__props__.image_url;\n this.product_type = this.__props__.product_type;\n this.points_required = this.__props__.points_required;\n this.original_price = this.__props__.original_price;\n this.stock = this.__props__.stock;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'exchange',\n setup(__props) {\n const totalPoints = ref(0);\n const products = ref([]);\n const loading = ref(true);\n const activeTab = ref('all');\n const showPopup = ref(false);\n const showSuccess = ref(false);\n const selectedProduct = ref(null);\n const exchangeQuantity = ref(1);\n const exchanging = ref(false);\n const filteredProducts = computed(() => {\n if (activeTab.value === 'all') {\n return products.value;\n }\n const filtered = [];\n for (let i = 0; i < products.value.length; i++) {\n if (products.value[i].product_type === activeTab.value) {\n filtered.push(products.value[i]);\n }\n }\n return filtered;\n });\n const totalPointsCost = computed(() => {\n if (selectedProduct.value == null)\n return 0;\n return selectedProduct.value.points_required * exchangeQuantity.value;\n });\n const loadProducts = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u;\n loading.value = true;\n try {\n const points = yield supabaseService.getUserPoints();\n totalPoints.value = points;\n const productList = yield supabaseService.getPointProducts();\n const parsed = [];\n for (let i = 0; i < productList.length; i++) {\n const item = productList[i];\n const itemAny = item;\n let id = '';\n let name = '';\n let description = null;\n let image_url = null;\n let product_type = 'coupon';\n let points_required = 0;\n let original_price = null;\n let stock = 0;\n let status = 1;\n // UTSJSONObject2 需要使用 _getValue 方法\n if (typeof itemAny._getValue === 'function') {\n id = (_a = itemAny._getValue('id')) !== null && _a !== void 0 ? _a : '';\n name = (_b = itemAny._getValue('name')) !== null && _b !== void 0 ? _b : '';\n description = itemAny._getValue('description');\n image_url = itemAny._getValue('image_url');\n product_type = (_c = itemAny._getValue('product_type')) !== null && _c !== void 0 ? _c : 'coupon';\n points_required = (_d = itemAny._getValue('points_required')) !== null && _d !== void 0 ? _d : 0;\n original_price = itemAny._getValue('original_price');\n stock = (_g = itemAny._getValue('stock')) !== null && _g !== void 0 ? _g : 0;\n status = (_h = itemAny._getValue('status')) !== null && _h !== void 0 ? _h : 1;\n }\n else {\n id = (_j = itemAny['id']) !== null && _j !== void 0 ? _j : '';\n name = (_k = itemAny['name']) !== null && _k !== void 0 ? _k : '';\n description = (_l = itemAny['description']) !== null && _l !== void 0 ? _l : null;\n image_url = (_m = itemAny['image_url']) !== null && _m !== void 0 ? _m : null;\n product_type = (_p = itemAny['product_type']) !== null && _p !== void 0 ? _p : 'coupon';\n points_required = (_q = itemAny['points_required']) !== null && _q !== void 0 ? _q : 0;\n original_price = (_r = itemAny['original_price']) !== null && _r !== void 0 ? _r : null;\n stock = (_s = itemAny['stock']) !== null && _s !== void 0 ? _s : 0;\n status = (_u = itemAny['status']) !== null && _u !== void 0 ? _u : 1;\n }\n const product = new PointProduct({\n id,\n name,\n description,\n image_url,\n product_type,\n points_required,\n original_price,\n stock,\n status\n });\n parsed.push(product);\n }\n products.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange.uvue:253', '加载商品失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const switchTab = (tab) => {\n activeTab.value = tab;\n };\n const showExchangePopup = (product) => {\n selectedProduct.value = product;\n exchangeQuantity.value = 1;\n showPopup.value = true;\n };\n const closePopup = () => {\n showPopup.value = false;\n selectedProduct.value = null;\n };\n const increaseQuantity = () => {\n if (selectedProduct.value != null && exchangeQuantity.value < selectedProduct.value.stock) {\n exchangeQuantity.value++;\n }\n };\n const decreaseQuantity = () => {\n if (exchangeQuantity.value > 1) {\n exchangeQuantity.value--;\n }\n };\n const confirmExchange = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (selectedProduct.value == null)\n return Promise.resolve(null);\n if (totalPoints.value < totalPointsCost.value)\n return Promise.resolve(null);\n exchanging.value = true;\n try {\n const result = yield supabaseService.exchangeProduct(selectedProduct.value.id, exchangeQuantity.value, null);\n if (result.getBoolean('success') === true) {\n showPopup.value = false;\n totalPoints.value -= totalPointsCost.value;\n showSuccess.value = true;\n loadProducts();\n }\n else {\n const message = (_a = result.getString('message')) !== null && _a !== void 0 ? _a : '兑换失败';\n uni.showToast({ title: message, icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange.uvue:309', '兑换异常:', e);\n uni.showToast({ title: '兑换异常', icon: 'none' });\n }\n finally {\n exchanging.value = false;\n }\n }); };\n const closeSuccess = () => {\n showSuccess.value = false;\n };\n const goToRecords = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/exchange-records'\n });\n };\n onMounted(() => {\n loadProducts();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(totalPoints.value),\n b: _o(goToRecords),\n c: _n(activeTab.value === 'all' ? 'active' : ''),\n d: _o($event => { return switchTab('all'); }),\n e: _n(activeTab.value === 'coupon' ? 'active' : ''),\n f: _o($event => { return switchTab('coupon'); }),\n g: _n(activeTab.value === 'physical' ? 'active' : ''),\n h: _o($event => { return switchTab('physical'); }),\n i: _n(activeTab.value === 'virtual' ? 'active' : ''),\n j: _o($event => { return switchTab('virtual'); }),\n k: !loading.value\n }, !loading.value ? {\n l: _f(filteredProducts.value, (product, k0, i0) => {\n return _e({\n a: product.image_url || defaultImage,\n b: _t(product.name),\n c: product.description\n }, product.description ? {\n d: _t(product.description)\n } : {}, {\n e: _t(product.points_required),\n f: _t(product.stock),\n g: product.original_price\n }, product.original_price ? {\n h: _t(product.original_price)\n } : {}, {\n i: product.id,\n j: _o($event => { return showExchangePopup(product); }, product.id)\n });\n })\n } : {}, {\n m: !loading.value && filteredProducts.value.length === 0\n }, !loading.value && filteredProducts.value.length === 0 ? {} : {}, {\n n: loading.value\n }, loading.value ? {} : {}, {\n o: showPopup.value\n }, showPopup.value ? _e({\n p: _o(closePopup),\n q: selectedProduct.value != null\n }, selectedProduct.value != null ? {\n r: selectedProduct.value.image_url || defaultImage,\n s: _t(selectedProduct.value.name),\n t: _t(selectedProduct.value.points_required)\n } : {}, {\n v: _o(decreaseQuantity),\n w: _t(exchangeQuantity.value),\n x: _o(increaseQuantity),\n y: _t(totalPointsCost.value),\n z: _t(totalPoints.value),\n A: totalPoints.value < totalPointsCost.value\n }, totalPoints.value < totalPointsCost.value ? {\n B: _t(totalPointsCost.value - totalPoints.value)\n } : {}, {\n C: _t(exchanging.value ? '兑换中...' : '确认兑换'),\n D: totalPoints.value < totalPointsCost.value ? 1 : '',\n E: totalPoints.value < totalPointsCost.value || exchanging.value,\n F: _o(confirmExchange),\n G: _o(() => { }),\n H: _o(closePopup)\n }) : {}, {\n I: showSuccess.value\n }, showSuccess.value ? {\n J: _t(totalPointsCost.value),\n K: _o(closeSuccess),\n L: _o(() => { }),\n M: _o(closeSuccess)\n } : {}, {\n N: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/points/exchange.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"exchange.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"exchange.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAEhI,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;OACvC,EAAE,eAAe,EAAE;MAErB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYjB,MAAM,YAAY,GAAW,oCAAoC,CAAA;AAGjE,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,OAAO;QAEf,MAAM,WAAW,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAiB,EAAE,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,GAAG,CAAU,IAAI,CAAC,CAAA;QAClC,MAAM,SAAS,GAAG,GAAG,CAAS,KAAK,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACrC,MAAM,WAAW,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACvC,MAAM,eAAe,GAAG,GAAG,CAAsB,IAAI,CAAC,CAAA;QACtD,MAAM,gBAAgB,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA;QACvC,MAAM,UAAU,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QAEtC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAChC,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,EAAE;gBAC7B,OAAO,QAAQ,CAAC,KAAK,CAAA;aACtB;YACD,MAAM,QAAQ,GAAmB,EAAE,CAAA;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,KAAK,EAAE;oBACtD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,QAAQ,CAAC;YAC/B,IAAI,eAAe,CAAC,KAAK,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACvE,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG;;YACnB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;YACpB,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,CAAA;gBACpD,WAAW,CAAC,KAAK,GAAG,MAAM,CAAA;gBAE1B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,CAAA;gBAC5D,MAAM,MAAM,GAAmB,EAAE,CAAA;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;oBAC3B,MAAM,OAAO,GAAG,IAAW,CAAA;oBAE3B,IAAI,EAAE,GAAG,EAAE,CAAA;oBACX,IAAI,IAAI,GAAG,EAAE,CAAA;oBACb,IAAI,WAAW,GAAkB,IAAI,CAAA;oBACrC,IAAI,SAAS,GAAkB,IAAI,CAAA;oBACnC,IAAI,YAAY,GAAG,QAAQ,CAAA;oBAC3B,IAAI,eAAe,GAAG,CAAC,CAAA;oBACvB,IAAI,cAAc,GAAkB,IAAI,CAAA;oBACxC,IAAI,KAAK,GAAG,CAAC,CAAA;oBACb,IAAI,MAAM,GAAG,CAAC,CAAA;oBAEd,mCAAmC;oBACnC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;wBAC3C,EAAE,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAY,mCAAI,EAAE,CAAA;wBAC9C,IAAI,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAY,mCAAI,EAAE,CAAA;wBAClD,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAkB,CAAA;wBAC/D,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAkB,CAAA;wBAC3D,YAAY,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAY,mCAAI,QAAQ,CAAA;wBACxE,eAAe,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAY,mCAAI,CAAC,CAAA;wBACvE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAkB,CAAA;wBACrE,KAAK,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAY,mCAAI,CAAC,CAAA;wBACnD,MAAM,GAAG,MAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAY,mCAAI,CAAC,CAAA;qBACtD;yBAAM;wBACL,EAAE,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA;wBACxB,IAAI,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAA;wBAC5B,WAAW,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,mCAAI,IAAI,CAAA;wBAC5C,SAAS,GAAG,MAAA,OAAO,CAAC,WAAW,CAAC,mCAAI,IAAI,CAAA;wBACxC,YAAY,GAAG,MAAA,OAAO,CAAC,cAAc,CAAC,mCAAI,QAAQ,CAAA;wBAClD,eAAe,GAAG,MAAA,OAAO,CAAC,iBAAiB,CAAC,mCAAI,CAAC,CAAA;wBACjD,cAAc,GAAG,MAAA,OAAO,CAAC,gBAAgB,CAAC,mCAAI,IAAI,CAAA;wBAClD,KAAK,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,mCAAI,CAAC,CAAA;wBAC7B,MAAM,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,mCAAI,CAAC,CAAA;qBAChC;oBAED,MAAM,OAAO,oBAAiB;wBAC5B,EAAE;wBACF,IAAI;wBACJ,WAAW;wBACX,SAAS;wBACT,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,KAAK;wBACL,MAAM;qBACP,CAAA,CAAA;oBACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACrB;gBACD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAA;aACxB;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,iDAAiD,EAAC,SAAS,EAAE,CAAC,CAAC,CAAA;aAClF;oBAAS;gBACR,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;aACtB;QACH,CAAC,IAAA,CAAA;QAED,MAAM,SAAS,GAAG,CAAC,GAAW;YAC5B,SAAS,CAAC,KAAK,GAAG,GAAG,CAAA;QACvB,CAAC,CAAA;QAED,MAAM,iBAAiB,GAAG,CAAC,OAAqB;YAC9C,eAAe,CAAC,KAAK,GAAG,OAAO,CAAA;YAC/B,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAA;YAC1B,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;QACxB,CAAC,CAAA;QAED,MAAM,UAAU,GAAG;YACjB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACvB,eAAe,CAAC,KAAK,GAAG,IAAI,CAAA;QAC9B,CAAC,CAAA;QAED,MAAM,gBAAgB,GAAG;YACvB,IAAI,eAAe,CAAC,KAAK,IAAI,IAAI,IAAI,gBAAgB,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE;gBACzF,gBAAgB,CAAC,KAAK,EAAE,CAAA;aACzB;QACH,CAAC,CAAA;QAED,MAAM,gBAAgB,GAAG;YACvB,IAAI,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC9B,gBAAgB,CAAC,KAAK,EAAE,CAAA;aACzB;QACH,CAAC,CAAA;QAED,MAAM,eAAe,GAAG;;YACtB,IAAI,eAAe,CAAC,KAAK,IAAI,IAAI;gBAAE,6BAAM;YACzC,IAAI,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK;gBAAE,6BAAM;YAErD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;YAEvB,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,eAAe,CAClD,eAAe,CAAC,KAAK,CAAC,EAAE,EACxB,gBAAgB,CAAC,KAAK,EACtB,IAAI,CACL,CAAA;gBAED,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;oBACzC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;oBACvB,WAAW,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAA;oBAC1C,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA;oBACxB,YAAY,EAAE,CAAA;iBACf;qBAAM;oBACL,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,mCAAI,MAAM,CAAA;oBACrD,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;iBAChD;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,iDAAiD,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC/E,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;aAC/C;oBAAS;gBACR,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;aACzB;QACH,CAAC,IAAA,CAAA;QAED,MAAM,YAAY,GAAG;YACnB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;QAC3B,CAAC,CAAA;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,8CAA8C;aACpD,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,SAAS,CAAC;YACR,YAAY,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,EAAnB,CAAmB,CAAC;gBACpC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,UAAU,CAAC,EAArB,CAAqB,CAAC;gBACtC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,SAAS,CAAC,EAApB,CAAoB,CAAC;gBACrC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK;aAClB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE;oBAC5C,OAAO,EAAE,CAAC;wBACR,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,YAAY;wBACpC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;wBACnB,CAAC,EAAE,OAAO,CAAC,WAAW;qBACvB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;wBACvB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;qBAC3B,CAAC,CAAC,CAAC,EAAE,EAAE;wBACN,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;wBAC9B,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;wBACpB,CAAC,EAAE,OAAO,CAAC,cAAc;qBAC1B,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC1B,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;qBAC9B,CAAC,CAAC,CAAC,EAAE,EAAE;wBACN,CAAC,EAAE,OAAO,CAAC,EAAE;wBACb,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,iBAAiB,CAAC,OAAO,CAAC,EAA1B,CAA0B,EAAE,OAAO,CAAC,EAAE,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC,CAAC;aACH,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;aACzD,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClE,CAAC,EAAE,OAAO,CAAC,KAAK;aACjB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,CAAC,EAAE,SAAS,CAAC,KAAK;aACnB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;gBACjB,CAAC,EAAE,eAAe,CAAC,KAAK,IAAI,IAAI;aACjC,EAAE,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACjC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,IAAI,YAAY;gBAClD,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC;aAC7C,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAC7B,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;gBACxB,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK;aAC7C,EAAE,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;aACjD,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3C,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrD,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;gBAChE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,QAAO,CAAC,CAAC;gBACf,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;aAClB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACP,CAAC,EAAE,WAAW,CAAC,KAAK;aACrB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,EAAE,CAAC,QAAO,CAAC,CAAC;gBACf,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;aACpB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC;aACvC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/decf18e9dfb4f86140f833b05ae7daff0bf3ff84 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/decf18e9dfb4f86140f833b05ae7daff0bf3ff84 new file mode 100644 index 00000000..7ac836b5 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/decf18e9dfb4f86140f833b05ae7daff0bf3ff84 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass PointProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n description: { type: String, optional: true },\n image_url: { type: String, optional: true },\n product_type: { type: String, optional: false },\n points_required: { type: Number, optional: false },\n original_price: { type: Number, optional: true },\n stock: { type: Number, optional: false },\n status: { type: Number, optional: false }\n };\n },\n name: \"PointProduct\"\n };\n }\n constructor(options, metadata = PointProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.image_url = this.__props__.image_url;\n this.product_type = this.__props__.product_type;\n this.points_required = this.__props__.points_required;\n this.original_price = this.__props__.original_price;\n this.stock = this.__props__.stock;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\nconst defaultImage = '/static/images/default-product.png';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'exchange',\n setup(__props) {\n const totalPoints = ref(0);\n const products = ref([]);\n const loading = ref(true);\n const activeTab = ref('all');\n const showPopup = ref(false);\n const showSuccess = ref(false);\n const selectedProduct = ref(null);\n const exchangeQuantity = ref(1);\n const exchanging = ref(false);\n const filteredProducts = computed(() => {\n if (activeTab.value === 'all') {\n return products.value;\n }\n const filtered = [];\n for (let i = 0; i < products.value.length; i++) {\n if (products.value[i].product_type === activeTab.value) {\n filtered.push(products.value[i]);\n }\n }\n return filtered;\n });\n const totalPointsCost = computed(() => {\n if (selectedProduct.value == null)\n return 0;\n return selectedProduct.value.points_required * exchangeQuantity.value;\n });\n const loadProducts = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n loading.value = true;\n try {\n const points = yield supabaseService.getUserPoints();\n totalPoints.value = points;\n const productList = yield supabaseService.getPointProducts();\n const parsed = [];\n for (let i = 0; i < productList.length; i++) {\n const item = productList[i];\n let id = '';\n let name = '';\n let description = null;\n let image_url = null;\n let product_type = 'coupon';\n let points_required = 0;\n let original_price = null;\n let stock = 0;\n let status = 1;\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n id = (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n name = (_b = itemObj.getString('name')) !== null && _b !== void 0 ? _b : '';\n description = itemObj.getString('description');\n image_url = itemObj.getString('image_url');\n product_type = (_c = itemObj.getString('product_type')) !== null && _c !== void 0 ? _c : 'coupon';\n points_required = (_d = itemObj.getNumber('points_required')) !== null && _d !== void 0 ? _d : 0;\n original_price = itemObj.getNumber('original_price');\n stock = (_g = itemObj.getNumber('stock')) !== null && _g !== void 0 ? _g : 0;\n status = (_h = itemObj.getNumber('status')) !== null && _h !== void 0 ? _h : 1;\n const product = new PointProduct({\n id,\n name,\n description,\n image_url,\n product_type,\n points_required,\n original_price,\n stock,\n status\n });\n parsed.push(product);\n }\n products.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange.uvue:246', '加载商品失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const switchTab = (tab) => {\n activeTab.value = tab;\n };\n const showExchangePopup = (product) => {\n selectedProduct.value = product;\n exchangeQuantity.value = 1;\n showPopup.value = true;\n };\n const closePopup = () => {\n showPopup.value = false;\n selectedProduct.value = null;\n };\n const increaseQuantity = () => {\n if (selectedProduct.value != null && exchangeQuantity.value < selectedProduct.value.stock) {\n exchangeQuantity.value++;\n }\n };\n const decreaseQuantity = () => {\n if (exchangeQuantity.value > 1) {\n exchangeQuantity.value--;\n }\n };\n const confirmExchange = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (selectedProduct.value == null)\n return Promise.resolve(null);\n if (totalPoints.value < totalPointsCost.value)\n return Promise.resolve(null);\n exchanging.value = true;\n try {\n const result = yield supabaseService.exchangeProduct(selectedProduct.value.id, exchangeQuantity.value, null);\n if (result.getBoolean('success') === true) {\n showPopup.value = false;\n totalPoints.value -= totalPointsCost.value;\n showSuccess.value = true;\n loadProducts();\n }\n else {\n const message = (_a = result.getString('message')) !== null && _a !== void 0 ? _a : '兑换失败';\n uni.showToast({ title: message, icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange.uvue:302', '兑换异常:', e);\n uni.showToast({ title: '兑换异常', icon: 'none' });\n }\n finally {\n exchanging.value = false;\n }\n }); };\n const closeSuccess = () => {\n showSuccess.value = false;\n };\n const goToRecords = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/exchange-records'\n });\n };\n onMounted(() => {\n loadProducts();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(totalPoints.value),\n b: _o(goToRecords),\n c: _n(activeTab.value === 'all' ? 'active' : ''),\n d: _o($event => { return switchTab('all'); }),\n e: _n(activeTab.value === 'coupon' ? 'active' : ''),\n f: _o($event => { return switchTab('coupon'); }),\n g: _n(activeTab.value === 'physical' ? 'active' : ''),\n h: _o($event => { return switchTab('physical'); }),\n i: _n(activeTab.value === 'virtual' ? 'active' : ''),\n j: _o($event => { return switchTab('virtual'); }),\n k: !loading.value\n }, !loading.value ? {\n l: _f(filteredProducts.value, (product, k0, i0) => {\n return _e({\n a: product.image_url != null && product.image_url.length > 0 ? product.image_url : defaultImage,\n b: _t(product.name),\n c: product.description\n }, product.description ? {\n d: _t(product.description)\n } : {}, {\n e: _t(product.points_required),\n f: _t(product.stock),\n g: product.original_price\n }, product.original_price ? {\n h: _t(product.original_price)\n } : {}, {\n i: product.id,\n j: _o($event => { return showExchangePopup(product); }, product.id)\n });\n })\n } : {}, {\n m: !loading.value && filteredProducts.value.length === 0\n }, !loading.value && filteredProducts.value.length === 0 ? {} : {}, {\n n: loading.value\n }, loading.value ? {} : {}, {\n o: showPopup.value\n }, showPopup.value ? _e({\n p: _o(closePopup),\n q: selectedProduct.value != null\n }, selectedProduct.value != null ? {\n r: selectedProduct.value.image_url != null && selectedProduct.value.image_url.length > 0 ? selectedProduct.value.image_url : defaultImage,\n s: _t(selectedProduct.value.name),\n t: _t(selectedProduct.value.points_required)\n } : {}, {\n v: _o(decreaseQuantity),\n w: _t(exchangeQuantity.value),\n x: _o(increaseQuantity),\n y: _t(totalPointsCost.value),\n z: _t(totalPoints.value),\n A: totalPoints.value < totalPointsCost.value\n }, totalPoints.value < totalPointsCost.value ? {\n B: _t(totalPointsCost.value - totalPoints.value)\n } : {}, {\n C: _t(exchanging.value ? '兑换中...' : '确认兑换'),\n D: totalPoints.value < totalPointsCost.value ? 1 : '',\n E: totalPoints.value < totalPointsCost.value || exchanging.value,\n F: _o(confirmExchange),\n G: _o(() => { }),\n H: _o(closePopup)\n }) : {}, {\n I: showSuccess.value\n }, showSuccess.value ? {\n J: _t(totalPointsCost.value),\n K: _o(closeSuccess),\n L: _o(() => { }),\n M: _o(closeSuccess)\n } : {}, {\n N: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/points/exchange.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"exchange.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"exchange.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/df8dc141ac4d18e1f24114875e0e678742cc6e35 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/df8dc141ac4d18e1f24114875e0e678742cc6e35 deleted file mode 100644 index 5f6da180..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/df8dc141ac4d18e1f24114875e0e678742cc6e35 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, gei as _gei, sei as _sei, s as _s, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { IS_TEST_MODE } from \"@/ak/config\";\nimport { getCurrentUser, logout, setIsLoggedIn, setUserProfile } from \"@/utils/store\";\nimport { UserProfile } from \"@/types/mall-types\";\nconst TEST_ACCOUNT = 'test@mall.com';\nconst TEST_PASSWORD = 'Hf2152111';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'login',\n setup(__props) {\n const cssVars = new UTSJSONObject({\n '--bg': '#f5f6f8',\n '--card': '#ffffff',\n '--brand': '#e1251b',\n '--text': '#333333',\n '--muted': '#666666',\n '--muted2': '#999999',\n '--border': '#eeeeee',\n '--inputbg': '#f6f7f9',\n '--shadow': '0 2px 12px rgba(0,0,0,0.06)'\n });\n const logoUrl = ref('/static/logo.png');\n const loginType = ref(0);\n const account = ref('');\n const password = ref('');\n const captcha = ref('');\n // 测试账号(开发测试用)\n const isLoading = ref(false);\n const codeDisabled = ref(false);\n const codeText = ref('获取验证码');\n const codeTimer = ref(0);\n const codeCountdown = ref(0);\n const checkLoginStatus = () => {\n try {\n if (IS_TEST_MODE)\n return null;\n const sessionInfo = supa.getSession();\n if (sessionInfo != null && sessionInfo.user != null) {\n const pages = getCurrentPages();\n if (pages.length > 0) {\n const currentPage = pages[pages.length - 1];\n const opts = currentPage.options;\n const redirect = opts.getString('redirect');\n if (redirect != null && redirect != '') {\n uni.reLaunch({ url: `/pages/main/index` });\n }\n else {\n uni.reLaunch({ url: '/pages/main/index' });\n }\n }\n else {\n uni.reLaunch({ url: '/pages/main/index' });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/login.uvue:194', '检查登录状态失败:', e);\n }\n };\n onMounted(() => {\n checkLoginStatus();\n // 自动填充测试账号密码\n account.value = TEST_ACCOUNT;\n password.value = TEST_PASSWORD;\n });\n const validateAccount = () => {\n if (account.value.trim() === '') {\n uni.showToast({ title: '请填写账号', icon: 'none' });\n return false;\n }\n if (loginType.value === 1) {\n if (!/^1[3-9]\\d{9}$/.test(account.value)) {\n uni.showToast({ title: '请输入正确的手机号码', icon: 'none' });\n return false;\n }\n }\n return true;\n };\n const validatePassword = () => {\n if (password.value.trim() === '') {\n uni.showToast({ title: '请填写密码', icon: 'none' });\n return false;\n }\n if (password.value.length < 6) {\n uni.showToast({ title: '密码长度不能少于6位', icon: 'none' });\n return false;\n }\n return true;\n };\n const validateCaptcha = () => {\n if (captcha.value.trim() === '') {\n uni.showToast({ title: '请填写验证码', icon: 'none' });\n return false;\n }\n if (!/^\\d{6}$/.test(captcha.value)) {\n uni.showToast({ title: '请输入正确的验证码', icon: 'none' });\n return false;\n }\n return true;\n };\n const getCode = () => { return __awaiter(this, void 0, void 0, function* () {\n if (codeDisabled.value)\n return Promise.resolve(null);\n if (!validateAccount())\n return Promise.resolve(null);\n uni.showToast({ title: '验证码已发送', icon: 'success' });\n codeDisabled.value = true;\n codeCountdown.value = 60;\n codeText.value = `${codeCountdown.value}秒后重试`;\n codeTimer.value = setInterval(() => {\n codeCountdown.value--;\n if (codeCountdown.value > 0) {\n codeText.value = `${codeCountdown.value}秒后重试`;\n }\n else {\n codeDisabled.value = false;\n codeText.value = '获取验证码';\n if (codeTimer.value != 0) {\n clearInterval(codeTimer.value);\n codeTimer.value = 0;\n }\n }\n }, 1000);\n }); };\n const handleLogin = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (!validateAccount())\n return Promise.resolve(null);\n // 特殊账号处理:admin/admin 直接跳转\n if (account.value === 'admin' && password.value === 'admin') {\n setIsLoggedIn(true);\n const adminProfile = new UserProfile({\n id: 'admin',\n username: 'Admin',\n email: 'admin@mall.com',\n gender: 'unknown',\n birthday: '',\n height_cm: 0,\n weight_kg: 0,\n bio: 'Administrator',\n avatar_url: '/static/logo.png',\n preferred_language: 'zh-CN',\n role: 'admin',\n school_id: '',\n grade_id: '',\n class_id: ''\n });\n setUserProfile(adminProfile);\n uni.showToast({ title: '管理员登录成功', icon: 'success' });\n setTimeout(() => {\n uni.reLaunch({ url: '/pages/main/index' });\n }, 500);\n return Promise.resolve(null);\n }\n if (loginType.value === 0) {\n if (!validatePassword())\n return Promise.resolve(null);\n }\n else {\n if (!validateCaptcha())\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n logout();\n if (loginType.value === 0) {\n const isEmail = account.value.includes('@');\n if (isEmail) {\n // 邮箱 + 密码登录(Supabase Auth)\n const result = yield supa.signIn(account.value.trim(), password.value);\n uni.__f__('log', 'at pages/user/login.uvue:314', 'signIn result:', result);\n // 检查登录是否失败\n if (result.user == null) {\n // 检查是否是邮箱未确认的错误\n const rawData = result.raw;\n const errorMsg = (_a = rawData === null || rawData === void 0 ? null : rawData.getString('msg')) !== null && _a !== void 0 ? _a : '';\n const errorCode = (_b = rawData === null || rawData === void 0 ? null : rawData.getString('error_code')) !== null && _b !== void 0 ? _b : '';\n if (errorMsg.includes('email') && errorMsg.includes('confirm') ||\n errorCode === 'email_not_confirmed' ||\n errorMsg.includes('邮箱') && errorMsg.includes('确认')) {\n throw new Error('邮箱未确认,请先检查邮箱并点击确认链接');\n }\n else if (errorMsg.includes('Invalid login credentials') ||\n errorCode === 'invalid_credentials') {\n throw new Error('邮箱或密码错误');\n }\n else {\n throw new Error(errorMsg != '' ? errorMsg : '登录失败,请重试');\n }\n }\n }\n else {\n uni.showToast({ title: '手机号密码登录功能开发中', icon: 'none' });\n return Promise.resolve(null);\n }\n }\n else {\n uni.showToast({ title: '手机验证码登录功能开发中', icon: 'none' });\n return Promise.resolve(null);\n }\n // 尝试获取/补全用户资料,但失败时不再阻塞登录\n try {\n const profile = yield getCurrentUser();\n uni.__f__('log', 'at pages/user/login.uvue:346', 'current user profile:', profile);\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/login.uvue:348', '获取用户信息失败(忽略,不阻塞登录):', e);\n }\n // 显式保存用户ID到本地存储,确保页面刷新或重启后 SupabaseService 能恢复身份\n const currentSession = supa.getSession();\n if (currentSession.user != null) {\n const uid = (_c = currentSession.user) === null || _c === void 0 ? null : _c.getString('id');\n if (uid != null) {\n uni.setStorageSync('user_id', uid);\n uni.__f__('log', 'at pages/user/login.uvue:357', '用户ID已保存到本地存储:', uid);\n }\n }\n uni.showToast({ title: '登录成功', icon: 'success' });\n setTimeout(() => {\n uni.reLaunch({ url: '/pages/main/index' });\n }, 500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/user/login.uvue:366', '登录错误:', err);\n let msg = '登录失败,请重试';\n // UTS 不支持 typeof 检查,直接尝试转换\n try {\n const e = err;\n if (e.message != null && e.message.trim() !== '')\n msg = e.message;\n }\n catch (e2) {\n // 忽略转换错误,使用默认消息\n }\n uni.showToast({ title: msg, icon: 'none' });\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const navigateToRegister = () => {\n uni.navigateTo({\n url: '/pages/user/register'\n });\n };\n const handleTutorial = () => { return uni.showToast({ title: '扫码教程开发中', icon: 'none' }); };\n const handleForgotPassword = () => { return uni.showToast({ title: '忘记密码开发中', icon: 'none' }); };\n const handleWechatLogin = () => { return uni.showToast({ title: '微信登录开发中', icon: 'none' }); };\n const handleQQLogin = () => { return uni.showToast({ title: 'QQ登录开发中', icon: 'none' }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: logoUrl.value,\n b: _o(handleTutorial),\n c: loginType.value === 0\n }, loginType.value === 0 ? {} : {}, {\n d: loginType.value === 0 ? 1 : '',\n e: _o($event => { return loginType.value = 0; }),\n f: loginType.value === 1\n }, loginType.value === 1 ? {} : {}, {\n g: loginType.value === 1 ? 1 : '',\n h: _o($event => { return loginType.value = 1; }),\n i: loginType.value === 0\n }, loginType.value === 0 ? {\n j: account.value,\n k: _o($event => { return account.value = $event.detail.value; }),\n l: password.value,\n m: _o($event => { return password.value = $event.detail.value; })\n } : {\n n: account.value,\n o: _o($event => { return account.value = $event.detail.value; }),\n p: captcha.value,\n q: _o($event => { return captcha.value = $event.detail.value; }),\n r: _t(codeText.value),\n s: _n(codeDisabled.value ? 'disabled' : ''),\n t: _o(getCode)\n }, {\n v: isLoading.value ? 1 : '',\n w: _o(handleLogin),\n x: _o(handleWechatLogin),\n y: _o(handleQQLogin),\n z: _o(handleForgotPassword),\n A: _o(navigateToRegister),\n B: _sei(_gei(_ctx, ''), 'view'),\n C: _s(cssVars)\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/login.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.reLaunch","uni.__f__","uni.showToast","uni.setStorageSync","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"login.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"login.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/e5a22df9506d95865d6c62a2cc5c7958fdc0092c b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/e5a22df9506d95865d6c62a2cc5c7958fdc0092c new file mode 100644 index 00000000..84bde7a4 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/e5a22df9506d95865d6c62a2cc5c7958fdc0092c @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass MessageType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n type: { type: String, optional: false },\n title: { type: String, optional: false },\n content: { type: String, optional: false },\n icon_url: { type: String, optional: true },\n link_url: { type: String, optional: true },\n extra_data: { type: \"Any\", optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"MessageType\"\n };\n }\n constructor(options, metadata = MessageType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.type = this.__props__.type;\n this.title = this.__props__.title;\n this.content = this.__props__.content;\n this.icon_url = this.__props__.icon_url;\n this.link_url = this.__props__.link_url;\n this.extra_data = this.__props__.extra_data;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass ExtraInfoItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n label: { type: String, optional: false },\n value: { type: String, optional: false }\n };\n },\n name: \"ExtraInfoItem\"\n };\n }\n constructor(options, metadata = ExtraInfoItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.label = this.__props__.label;\n this.value = this.__props__.value;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'message-detail',\n setup(__props) {\n const message = ref(new MessageType({\n id: '',\n type: '',\n title: '',\n content: '',\n icon_url: null,\n link_url: null,\n extra_data: null,\n created_at: ''\n }));\n const extraInfo = ref([]);\n const formatLabel = (key) => {\n if (key === 'share_code')\n return '分享码';\n if (key === 'product_name')\n return '商品名称';\n if (key === 'reward_amount')\n return '奖励金额';\n if (key === 'order_no')\n return '订单号';\n if (key === 'buyer_name')\n return '购买者';\n if (key === 'quantity')\n return '数量';\n return key;\n };\n const parseExtraData = (data = null) => {\n extraInfo.value = [];\n if (data == null)\n return null;\n try {\n let dataObj = null;\n if (typeof data === 'string') {\n const parsed = UTS.JSON.parse(data);\n if (parsed != null) {\n dataObj = parsed;\n }\n }\n else if (UTS.isInstanceOf(data, UTSJSONObject)) {\n dataObj = data;\n }\n else {\n dataObj = UTS.JSON.parse(UTS.JSON.stringify(data));\n }\n if (dataObj != null) {\n const keys = UTSJSONObject.keys(dataObj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = dataObj.get(key);\n if (value != null) {\n const item = new ExtraInfoItem({\n label: formatLabel(key),\n value: `${value}`\n });\n extraInfo.value.push(item);\n }\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/message-detail.uvue:107', '解析extra_data失败:', e);\n }\n };\n const loadMessage = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const notifications = yield supabaseService.getUserNotifications(null);\n const found = UTS.arrayFind(notifications, n => { return n.id === id; });\n if (found != null) {\n const extraData = found.extra_data;\n const msg = new MessageType({\n id: found.id,\n type: found.type,\n title: found.title,\n content: found.content,\n icon_url: found.icon_url,\n link_url: found.link_url,\n extra_data: extraData,\n created_at: (_a = found.created_at) !== null && _a !== void 0 ? _a : ''\n });\n message.value = msg;\n if (extraData != null) {\n parseExtraData(extraData);\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/message-detail.uvue:135', '加载消息失败:', e);\n }\n }); };\n const formatTime = (timeStr) => {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n const goToLink = () => {\n const url = message.value.link_url;\n if (url != null && url !== '') {\n if (url.startsWith('/pages/')) {\n uni.navigateTo({ url: url });\n }\n else {\n uni.setClipboardData({\n data: url,\n success: () => {\n uni.showToast({ title: '链接已复制', icon: 'success' });\n }\n });\n }\n }\n };\n onLoad((options = null) => {\n if (options != null) {\n const idVal = options['id'];\n if (idVal != null) {\n loadMessage(idVal);\n }\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(message.value.title),\n b: _t(formatTime(message.value.created_at)),\n c: _t(message.value.content),\n d: message.value.link_url\n }, message.value.link_url ? {\n e: _o(goToLink)\n } : {}, {\n f: message.value.icon_url\n }, message.value.icon_url ? {\n g: message.value.icon_url\n } : {}, {\n h: extraInfo.value.length > 0\n }, extraInfo.value.length > 0 ? {\n i: _f(extraInfo.value, (item, index, i0) => {\n return {\n a: _t(item.label),\n b: _t(item.value),\n c: index\n };\n })\n } : {}, {\n j: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/message-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.setClipboardData"],"map":"{\"version\":3,\"file\":\"message-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"message-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/ec410f85521dd54bee80a19dfaab62953504bb26 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/ec410f85521dd54bee80a19dfaab62953504bb26 new file mode 100644 index 00000000..7b4af1bb --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/ec410f85521dd54bee80a19dfaab62953504bb26 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, watch } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass WalletType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n balance: { type: Number, optional: false },\n total_recharge: { type: Number, optional: false },\n total_consume: { type: Number, optional: false },\n total_withdraw: { type: Number, optional: false },\n updated_at: { type: String, optional: false }\n };\n },\n name: \"WalletType\"\n };\n }\n constructor(options, metadata = WalletType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.balance = this.__props__.balance;\n this.total_recharge = this.__props__.total_recharge;\n this.total_consume = this.__props__.total_consume;\n this.total_withdraw = this.__props__.total_withdraw;\n this.updated_at = this.__props__.updated_at;\n delete this.__props__;\n }\n}\nclass TransactionType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n change_amount: { type: Number, optional: false },\n amount: { type: Number, optional: false },\n current_balance: { type: Number, optional: false },\n change_type: { type: String, optional: false },\n type: { type: String, optional: false },\n related_id: { type: String, optional: true },\n remark: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"TransactionType\"\n };\n }\n constructor(options, metadata = TransactionType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.change_amount = this.__props__.change_amount;\n this.amount = this.__props__.amount;\n this.current_balance = this.__props__.current_balance;\n this.change_type = this.__props__.change_type;\n this.type = this.__props__.type;\n this.related_id = this.__props__.related_id;\n this.remark = this.__props__.remark;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass StatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n totalRecharge: { type: Number, optional: false },\n totalConsume: { type: Number, optional: false },\n totalWithdraw: { type: Number, optional: false }\n };\n },\n name: \"StatsType\"\n };\n }\n constructor(options, metadata = StatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.totalRecharge = this.__props__.totalRecharge;\n this.totalConsume = this.__props__.totalConsume;\n this.totalWithdraw = this.__props__.totalWithdraw;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'wallet',\n setup(__props) {\n const balance = ref(0);\n const stats = ref(new StatsType({\n totalRecharge: 0,\n totalConsume: 0,\n totalWithdraw: 0\n }));\n const transactions = ref([]);\n const activeFilter = ref('all');\n const isLoading = ref(false);\n const currentPage = ref(1);\n const pageSize = ref(20);\n const hasMore = ref(true);\n const showRechargePopup = ref(false);\n const rechargeAmount = ref('');\n const quickAmounts = [50, 100, 200, 500, 1000];\n // 获取当前用户ID\n const getCurrentUserId = () => {\n var _a;\n const userStore = uni.getStorageSync('userInfo');\n if (userStore == null)\n return '';\n const userInfo = userStore;\n return (_a = userInfo.getString('id')) !== null && _a !== void 0 ? _a : '';\n };\n // 重置交易记录\n const resetTransactions = () => {\n transactions.value = [];\n currentPage.value = 1;\n hasMore.value = true;\n };\n // 加载余额信息\n const loadBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const realBalance = yield supabaseService.getUserBalanceNumber();\n balance.value = realBalance;\n const statsData = new StatsType({\n totalRecharge: 0,\n totalConsume: 0,\n totalWithdraw: 0\n });\n stats.value = statsData;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:247', '加载钱包异常:', err);\n }\n }); };\n // 加载交易记录\n const loadTransactions = (loadMore) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q;\n if (isLoading.value || (hasMore.value === false && loadMore)) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n const userId = getCurrentUserId();\n if (userId == '') {\n isLoading.value = false;\n return Promise.resolve(null);\n }\n const page = loadMore ? currentPage.value + 1 : 1;\n const limit = 20;\n const data = yield supabaseService.getTransactions(page, limit);\n const mappedData = [];\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n let id = '';\n let amount = 0;\n let balanceAfter = 0;\n let type = '';\n let remark = '';\n let createdAt = '';\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n id = (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '';\n amount = (_b = item.getNumber('amount')) !== null && _b !== void 0 ? _b : 0;\n balanceAfter = (_c = item.getNumber('balance_after')) !== null && _c !== void 0 ? _c : 0;\n type = (_d = item.getString('type')) !== null && _d !== void 0 ? _d : 'consume';\n remark = (_g = item.getString('description')) !== null && _g !== void 0 ? _g : '';\n createdAt = (_h = item.getString('created_at')) !== null && _h !== void 0 ? _h : '';\n }\n else {\n const itemObj = item;\n id = (_j = itemObj.getString('id')) !== null && _j !== void 0 ? _j : '';\n amount = (_k = itemObj.getNumber('amount')) !== null && _k !== void 0 ? _k : 0;\n balanceAfter = (_l = itemObj.getNumber('balance_after')) !== null && _l !== void 0 ? _l : 0;\n type = (_m = itemObj.getString('type')) !== null && _m !== void 0 ? _m : 'consume';\n remark = (_p = itemObj.getString('description')) !== null && _p !== void 0 ? _p : '';\n createdAt = (_q = itemObj.getString('created_at')) !== null && _q !== void 0 ? _q : '';\n }\n const transaction = new TransactionType({\n id: id,\n user_id: userId,\n change_amount: amount,\n amount: amount,\n current_balance: balanceAfter,\n change_type: type,\n type: type,\n related_id: null,\n remark: remark,\n created_at: createdAt\n });\n mappedData.push(transaction);\n }\n if (loadMore) {\n for (let i = 0; i < mappedData.length; i++) {\n transactions.value.push(mappedData[i]);\n }\n currentPage.value = page;\n }\n else {\n transactions.value = mappedData;\n currentPage.value = 1;\n }\n hasMore.value = mappedData.length >= limit;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:325', '加载交易记录失败:', err);\n }\n finally {\n isLoading.value = false;\n }\n }); };\n // 加载钱包数据\n const loadWalletData = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = getCurrentUserId();\n if (userId == '') {\n return Promise.resolve(null);\n }\n loadBalance();\n loadTransactions(false);\n }); };\n // 计算属性\n const canRecharge = computed(() => {\n const amount = parseFloat(rechargeAmount.value);\n if (amount == null || amount < 10 || amount > 5000) {\n return false;\n }\n return true;\n });\n // 监听过滤器变化\n watch(activeFilter, () => {\n resetTransactions();\n loadTransactions(false);\n });\n // 生命周期\n onShow(() => {\n loadWalletData();\n });\n // 获取交易图标\n const getTransactionIcon = (type) => {\n if (type === 'recharge')\n return '💳';\n if (type === 'consume')\n return '🛒';\n if (type === 'withdraw')\n return '🏦';\n if (type === 'refund')\n return '🔄';\n if (type === 'reward')\n return '🎁';\n if (type === 'income')\n return '💰';\n if (type === 'expense')\n return '📤';\n return '💰';\n };\n // 获取交易标题\n const getTransactionTitle = (type) => {\n if (type === 'recharge')\n return '账户充值';\n if (type === 'consume')\n return '商品消费';\n if (type === 'withdraw')\n return '余额提现';\n if (type === 'refund')\n return '订单退款';\n if (type === 'reward')\n return '活动奖励';\n if (type === 'income')\n return '收入';\n if (type === 'expense')\n return '支出';\n return '交易';\n };\n // 格式化时间\n const formatTime = (timeStr) => {\n const date = new Date(timeStr);\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n return `${month}-${day} ${hours}:${minutes}`;\n };\n // 显示更多操作\n const showMoreActions = () => {\n uni.showActionSheet({\n itemList: ['交易记录', '安全设置', '帮助中心'],\n success: (res) => {\n switch (res.tapIndex) {\n case 0:\n // 交易记录已经在当前页\n break;\n case 1:\n uni.navigateTo({\n url: '/pages/mall/consumer/settings'\n });\n break;\n case 2:\n uni.navigateTo({\n url: '/pages/info/help'\n });\n break;\n }\n }\n });\n };\n // 充值\n const recharge = () => {\n showRechargePopup.value = true;\n rechargeAmount.value = '';\n };\n // 提现\n const withdraw = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/withdraw'\n });\n };\n // 跳转到优惠券\n const goToCoupons = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons'\n });\n };\n // 跳转到红包\n const goToRedPackets = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/red-packets/index'\n });\n };\n // 跳转到积分\n const goToPoints = () => {\n // 使用统一的积分页面\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n };\n // 跳转到银行卡\n const goToBankCards = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/bank-cards/index'\n });\n };\n // 切换过滤器\n const changeFilter = (filter) => {\n activeFilter.value = filter;\n };\n // 加载更多\n const loadMore = () => {\n if (hasMore.value && isLoading.value === false) {\n loadTransactions(true);\n }\n };\n // 选择快捷金额\n const selectQuickAmount = (amount) => {\n rechargeAmount.value = amount.toString();\n };\n // 关闭充值弹窗\n const closeRechargePopup = () => {\n showRechargePopup.value = false;\n rechargeAmount.value = '';\n };\n // 确认充值\n const confirmRecharge = () => { return __awaiter(this, void 0, void 0, function* () {\n if (canRecharge.value === false)\n return Promise.resolve(null);\n const amount = parseFloat(rechargeAmount.value);\n if (amount == null || amount < 10 || amount > 5000)\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中...' });\n try {\n const success = yield supabaseService.rechargeBalance(amount);\n if (success) {\n uni.showToast({\n title: '充值成功',\n icon: 'success'\n });\n closeRechargePopup();\n loadWalletData();\n }\n else {\n uni.showToast({\n title: '充值失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/wallet.uvue:509', '充值异常:', e);\n uni.showToast({\n title: '系统异常,请稍后重试',\n icon: 'none'\n });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n // 返回\n const goBack = () => {\n uni.navigateBack();\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(balance.value.toFixed(2)),\n b: _o(recharge),\n c: _o(withdraw),\n d: _t(stats.value.totalRecharge.toFixed(2)),\n e: _t(stats.value.totalConsume.toFixed(2)),\n f: _t(stats.value.totalWithdraw.toFixed(2)),\n g: _o(goToCoupons),\n h: _o(goToRedPackets),\n i: _o(goToPoints),\n j: _o(goToBankCards),\n k: _n({\n active: activeFilter.value === 'all'\n }),\n l: _o($event => { return changeFilter('all'); }),\n m: _n({\n active: activeFilter.value === 'income'\n }),\n n: _o($event => { return changeFilter('income'); }),\n o: _n({\n active: activeFilter.value === 'expense'\n }),\n p: _o($event => { return changeFilter('expense'); }),\n q: transactions.value.length === 0 && isLoading.value === false\n }, transactions.value.length === 0 && isLoading.value === false ? {} : {}, {\n r: _f(transactions.value, (transaction, k0, i0) => {\n return _e({\n a: _t(getTransactionIcon(transaction.type)),\n b: _t(getTransactionTitle(transaction.type)),\n c: _t(formatTime(transaction.created_at)),\n d: transaction.remark\n }, transaction.remark ? {\n e: _t(transaction.remark)\n } : {}, {\n f: _t(transaction.amount > 0 ? '+' : ''),\n g: _t(Math.abs(transaction.amount).toFixed(2)),\n h: _n({\n income: transaction.amount > 0,\n expense: transaction.amount < 0\n }),\n i: _t(transaction.current_balance.toFixed(2)),\n j: transaction.id\n });\n }),\n s: isLoading.value\n }, isLoading.value ? {} : {}, {\n t: hasMore.value === false && transactions.value.length > 0\n }, hasMore.value === false && transactions.value.length > 0 ? {} : {}, {\n v: showRechargePopup.value\n }, showRechargePopup.value ? {\n w: _o(closeRechargePopup),\n x: _o(closeRechargePopup),\n y: rechargeAmount.value,\n z: _o($event => { return rechargeAmount.value = $event.detail.value; }),\n A: _f(quickAmounts, (amount, k0, i0) => {\n return {\n a: _t(amount),\n b: amount,\n c: _n({\n active: rechargeAmount.value === amount.toString()\n }),\n d: _o($event => { return selectQuickAmount(amount); }, amount)\n };\n }),\n B: _o(closeRechargePopup),\n C: canRecharge.value === false ? 1 : '',\n D: _o(confirmRecharge)\n } : {}, {\n E: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/wallet.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.getStorageSync","uni.__f__","uni.navigateTo","uni.showActionSheet","uni.showLoading","uni.showToast","uni.hideLoading","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"wallet.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"wallet.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/efc08f74074a25bae9935d56fac7a3943f8fec41 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/efc08f74074a25bae9935d56fac7a3943f8fec41 new file mode 100644 index 00000000..7c329ea0 --- /dev/null +++ b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/efc08f74074a25bae9935d56fac7a3943f8fec41 @@ -0,0 +1 @@ +{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass ExchangeRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: true },\n product_type: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n points_used: { type: Number, optional: false },\n status: { type: Number, optional: false },\n tracking_no: { type: String, optional: true },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ExchangeRecord\"\n };\n }\n constructor(options, metadata = ExchangeRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.product_type = this.__props__.product_type;\n this.quantity = this.__props__.quantity;\n this.points_used = this.__props__.points_used;\n this.status = this.__props__.status;\n this.tracking_no = this.__props__.tracking_no;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'exchange-records',\n setup(__props) {\n const records = ref([]);\n const loading = ref(true);\n const loadRecords = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j;\n loading.value = true;\n try {\n const result = yield supabaseService.getExchangeRecords();\n const parsed = [];\n for (let i = 0; i < result.length; i++) {\n const item = result[i];\n const itemAny = item;\n // 处理数组返回\n let recordData = null;\n if (Array.isArray(itemAny)) {\n recordData = itemAny[0];\n }\n else {\n recordData = itemAny;\n }\n let id = '';\n let quantity = 1;\n let points_used = 0;\n let status = 0;\n let tracking_no = null;\n let created_at = '';\n let product_name = '';\n let product_image = null;\n let product_type = 'coupon';\n // 转换为 UTSJSONObject\n let recordObj = null;\n if (UTS.isInstanceOf(recordData, UTSJSONObject)) {\n recordObj = recordData;\n }\n else {\n recordObj = UTS.JSON.parse(UTS.JSON.stringify(recordData));\n }\n id = (_a = recordObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n quantity = (_b = recordObj.getNumber('quantity')) !== null && _b !== void 0 ? _b : 1;\n points_used = (_c = recordObj.getNumber('points_used')) !== null && _c !== void 0 ? _c : 0;\n status = (_d = recordObj.getNumber('status')) !== null && _d !== void 0 ? _d : 0;\n tracking_no = recordObj.getString('tracking_no');\n created_at = (_g = recordObj.getString('created_at')) !== null && _g !== void 0 ? _g : '';\n // 获取关联的商品信息\n const product = recordObj.get('product');\n if (product != null) {\n let productObj = null;\n if (UTS.isInstanceOf(product, UTSJSONObject)) {\n productObj = product;\n }\n else {\n productObj = UTS.JSON.parse(UTS.JSON.stringify(product));\n }\n product_name = (_h = productObj.getString('name')) !== null && _h !== void 0 ? _h : '';\n product_image = productObj.getString('image_url');\n product_type = (_j = productObj.getString('product_type')) !== null && _j !== void 0 ? _j : 'coupon';\n }\n parsed.push(new ExchangeRecord({\n id,\n product_name,\n product_image,\n product_type,\n quantity,\n points_used,\n status,\n tracking_no,\n created_at\n }));\n }\n records.value = parsed;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/exchange-records.uvue:132', '加载兑换记录失败:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const getStatusText = (status) => {\n if (status === 0)\n return '待处理';\n if (status === 1)\n return '已发货';\n if (status === 2)\n return '已完成';\n if (status === 3)\n return '已取消';\n return '未知';\n };\n const getStatusClass = (status) => {\n if (status === 0)\n return 'status-pending';\n if (status === 1)\n return 'status-shipped';\n if (status === 2)\n return 'status-completed';\n if (status === 3)\n return 'status-cancelled';\n return '';\n };\n const formatTime = (timeStr) => {\n if (timeStr == '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n onMounted(() => {\n loadRecords();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: !loading.value && records.value.length === 0\n }, !loading.value && records.value.length === 0 ? {} : {}, {\n b: loading.value\n }, loading.value ? {} : {}, {\n c: !loading.value && records.value.length > 0\n }, !loading.value && records.value.length > 0 ? {\n d: _f(records.value, (record, k0, i0) => {\n return _e({\n a: _t(record.product_name),\n b: _t(getStatusText(record.status)),\n c: _n(getStatusClass(record.status)),\n d: _t(record.points_used),\n e: _t(record.quantity),\n f: _t(formatTime(record.created_at)),\n g: record.tracking_no\n }, record.tracking_no ? {\n h: _t(record.tracking_no)\n } : {}, {\n i: record.id\n });\n })\n } : {}, {\n e: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/points/exchange-records.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"exchange-records.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"exchange-records.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/fb6281c5d99ca9ed17b4f27ce39a5bb41bec183f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/fb6281c5d99ca9ed17b4f27ce39a5bb41bec183f deleted file mode 100644 index 2940a6b4..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/fb6281c5d99ca9ed17b4f27ce39a5bb41bec183f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, watch, computed, onUnmounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass PaymentMethodType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n description: { type: String, optional: false },\n icon: { type: String, optional: false },\n enabled: { type: Boolean, optional: false }\n };\n },\n name: \"PaymentMethodType\"\n };\n }\n constructor(options, metadata = PaymentMethodType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.icon = this.__props__.icon;\n this.enabled = this.__props__.enabled;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'payment',\n setup(__props) {\n const orderId = ref('');\n const orderNo = ref('');\n const amount = ref(0);\n const paymentMethods = ref([]);\n const selectedMethod = ref('wechat');\n const userBalance = ref(0);\n const isPaying = ref(false);\n const showPassword = ref(false);\n const password = ref('');\n // 价格相关变量\n const productAmount = ref(0); // 商品总价\n const deliveryFee = ref(0); // 运费\n const discountAmount = ref(0); // 优惠减免\n // 加载支付方式(必须在 onMounted 之前定义)\n const loadPaymentMethods = () => {\n const methods = [\n new PaymentMethodType({\n id: 'wechat',\n name: '微信支付',\n description: '推荐安装微信5.0及以上版本使用',\n icon: '💳',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'alipay',\n name: '支付宝',\n description: '推荐安装支付宝10.0及以上版本使用',\n icon: '💳',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'balance',\n name: '余额支付',\n description: '使用账户余额支付',\n icon: '💰',\n enabled: true\n }),\n new PaymentMethodType({\n id: 'bankcard',\n name: '银行卡支付',\n description: '支持储蓄卡、信用卡',\n icon: '💳',\n enabled: true\n })\n ];\n paymentMethods.value = methods;\n };\n // 加载用户余额(必须在 onMounted 之前定义)\n const loadUserBalance = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const balance = yield supabaseService.getUserBalance();\n userBalance.value = balance;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:179', '加载用户余额异常:', err);\n userBalance.value = 0;\n }\n }); };\n // 计算价格明细(必须在 onMounted 之前定义)\n const calculatePriceDetails = (totalAmount) => {\n // 模拟计算各项费用\n // 假设商品总价占总金额的80%,运费占10%,优惠减免占10%\n productAmount.value = totalAmount * 0.8;\n deliveryFee.value = totalAmount * 0.1;\n discountAmount.value = totalAmount * 0.1;\n // 确保总和等于应付金额\n const calculatedTotal = productAmount.value + deliveryFee.value - discountAmount.value;\n if (Math.abs(calculatedTotal - totalAmount) > 0.01) {\n // 调整商品总价以匹配应付金额\n productAmount.value = totalAmount + discountAmount.value - deliveryFee.value;\n }\n };\n // 更新本地存储中的订单状态(必须在 onMounted 之前定义)\n const updateOrderInStorage = (targetOrderId, status) => {\n try {\n // 尝试从 'orders' 读取 (checkout页面写入的key)\n const ordersStr = uni.getStorageSync('orders');\n let orders = [];\n if (ordersStr != null && ordersStr !== '') {\n const parsed = UTS.JSON.parse(ordersStr);\n if (Array.isArray(parsed)) {\n for (let i = 0; i < parsed.length; i++) {\n // 使用 JSON 序列化转换\n const itemStr = UTS.JSON.stringify(parsed[i]);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed != null) {\n orders.push(itemParsed);\n }\n }\n }\n }\n let foundIndex = -1;\n for (let i = 0; i < orders.length; i++) {\n const o = orders[i];\n if (o['id'] === targetOrderId) {\n foundIndex = i;\n break;\n }\n }\n if (foundIndex !== -1) {\n orders[foundIndex]['status'] = status;\n orders[foundIndex]['payment_status'] = status === 2 ? 1 : 0; // 2=待发货(已支付), 1=待支付(未支付)\n orders[foundIndex]['updated_at'] = new Date().toISOString();\n // 确保更新的是 'orders' key\n uni.setStorageSync('orders', UTS.JSON.stringify(orders));\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:235', '订单状态已更新到Storage (orders):', targetOrderId, status);\n }\n else {\n // 本地缓存中没有订单数据是正常的,数据在数据库中\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:238', '本地缓存中无订单数据,已忽略:', targetOrderId);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:241', '更新订单状态失败', e);\n }\n };\n // 取消支付,更新订单状态(必须在 goBack 之前定义)\n const cancelPayment = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 这里应该调用API更新订单状态为待支付(status: 1)\n // 模拟更新订单状态\n // 更新本地存储\n updateOrderInStorage(orderId.value, 1); // 1: 待支付\n // 发布订单更新事件,让profile页面可以刷新数据\n uni.$emit('orderUpdated', new UTSJSONObject({ orderId: orderId.value, status: 1 }));\n uni.showToast({\n title: '已保存到待支付订单',\n icon: 'success'\n });\n // 延迟返回,让用户看到提示\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:268', '取消支付异常:', err);\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n // 返回(必须在 onBackPress 之前定义)\n const goBack = () => {\n uni.showModal(new UTSJSONObject({\n title: '取消支付',\n content: '确定要取消支付吗?取消后订单将保存到待支付订单中',\n confirmText: '取消支付',\n cancelText: '继续支付',\n success: (res) => {\n if (res.confirm) {\n // 用户确认取消支付,更新订单状态为待支付\n cancelPayment();\n }\n }\n }));\n };\n // 加载订单信息(必须在 onMounted 之前定义)\n const loadOrderInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n if (orderId.value == '')\n return Promise.resolve(null);\n const order = yield supabaseService.getOrderDetail(orderId.value);\n if (order != null) {\n // 使用 JSON 序列化转换对象\n const orderStr = UTS.JSON.stringify(order);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:303', '订单数据解析失败');\n return Promise.resolve(null);\n }\n const orderObj = orderParsed;\n const orderNoVal = orderObj.getString('order_no');\n if (orderNoVal != null) {\n orderNo.value = orderNoVal;\n }\n const totalAmount = orderObj.getNumber('total_amount');\n const dbAmount = totalAmount !== null && totalAmount !== void 0 ? totalAmount : 0;\n if (dbAmount > 0) {\n amount.value = dbAmount;\n }\n const items = orderObj.get('items');\n if (items != null && Array.isArray(items) && items.length > 0) {\n // Could update product name etc if displayed\n }\n }\n else {\n // Fallback or error\n uni.__f__('warn', 'at pages/mall/consumer/payment.uvue:324', 'Order not found in DB', orderId.value);\n if (orderNo.value == '')\n orderNo.value = 'ORD_PENDING_' + Date.now();\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:328', '加载订单信息异常:', err);\n }\n }); };\n // 生命周期\n onLoad((options) => {\n if (options != null) {\n const orderIdValue = options['orderId'];\n if (orderIdValue != null) {\n orderId.value = orderIdValue;\n loadOrderInfo();\n }\n const amountValue = options['amount'];\n if (amountValue != null) {\n amount.value = parseFloat(amountValue.toString());\n }\n // 获取传递的价格详情\n const productAmountValue = options['productAmount'];\n if (productAmountValue != null) {\n productAmount.value = parseFloat(productAmountValue.toString());\n }\n const deliveryFeeValue = options['deliveryFee'];\n if (deliveryFeeValue != null) {\n deliveryFee.value = parseFloat(deliveryFeeValue.toString());\n }\n const discountAmountValue = options['discountAmount'];\n if (discountAmountValue != null) {\n discountAmount.value = parseFloat(discountAmountValue.toString());\n }\n // 如果没有传详情,尝试根据总价估算(兼容旧逻辑,但优先使用传参)\n if (productAmountValue == null && amount.value > 0) {\n calculatePriceDetails(amount.value);\n }\n loadPaymentMethods();\n loadUserBalance();\n }\n });\n onMounted(() => {\n // onMounted 中的逻辑已移到 onLoad 中\n });\n // 监听返回操作(包含系统返回键和导航栏返回按钮)\n onBackPress((options) => {\n // 如果是通过代码主动调用 navigateBack 返回,则允许\n if (options.from === 'navigateBack') {\n return false;\n }\n // 否则拦截返回,显示确认弹窗\n goBack();\n return true;\n });\n // 获取当前用户ID\n const getCurrentUserId = () => {\n const userStore = uni.getStorageSync('userInfo');\n if (userStore != null) {\n // 使用 JSON 序列化转换\n const userStr = UTS.JSON.stringify(userStore);\n const userParsed = UTS.JSON.parse(userStr);\n if (userParsed != null) {\n const userObj = userParsed;\n const id = userObj.getString('id');\n if (id != null) {\n return id;\n }\n }\n }\n return '';\n };\n // 获取支付方式图标\n const getMethodIcon = (methodId) => {\n if (methodId === 'wechat') {\n return '💳';\n }\n else if (methodId === 'alipay') {\n return '💳';\n }\n else if (methodId === 'balance') {\n return '💰';\n }\n else if (methodId === 'bankcard') {\n return '💳';\n }\n return '💳';\n };\n // 选择支付方式\n const selectMethod = (method) => {\n if (!method.enabled) {\n uni.showToast({\n title: '该支付方式暂不可用',\n icon: 'none'\n });\n return null;\n }\n selectedMethod.value = method.id;\n showPassword.value = method.id === 'balance' || method.id === 'bankcard';\n password.value = ''; // 清空密码\n };\n // 获取支付按钮文本\n const getPayButtonText = () => {\n if (selectedMethod.value === 'balance' && userBalance.value < amount.value) {\n return '余额不足';\n }\n if (selectedMethod.value === 'wechat') {\n return '微信支付';\n }\n else if (selectedMethod.value === 'alipay') {\n return '支付宝支付';\n }\n else if (selectedMethod.value === 'balance') {\n return '余额支付';\n }\n else if (selectedMethod.value === 'bankcard') {\n return '银行卡支付';\n }\n return '确认支付';\n };\n // 减少商品库存\n // const reduceStock = (orderId: string) => {\n // Update should happen on server side during payment processing\n // }\n // 确认支付\n const confirmPayment = () => { return __awaiter(this, void 0, void 0, function* () {\n if (isPaying.value)\n return Promise.resolve(null);\n // 余额支付检查\n if (selectedMethod.value === 'balance') {\n if (userBalance.value < amount.value) {\n uni.showToast({\n title: '余额不足',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (!showPassword.value) {\n showPassword.value = true;\n return Promise.resolve(null);\n }\n if (password.value.length !== 6) {\n uni.showToast({\n title: '请输入6位支付密码',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n }\n isPaying.value = true;\n uni.showLoading({ title: '支付中...' });\n try {\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:488', '[confirmPayment] 开始支付, orderId:', orderId.value, 'method:', selectedMethod.value);\n const success = yield supabaseService.payOrder(orderId.value, selectedMethod.value, amount.value);\n uni.__f__('log', 'at pages/mall/consumer/payment.uvue:491', '[confirmPayment] 支付结果:', success);\n if (!success) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:494', '[confirmPayment] payOrder 返回 false');\n uni.hideLoading();\n uni.showToast({\n title: '支付处理失败',\n icon: 'none'\n });\n isPaying.value = false;\n return Promise.resolve(null);\n }\n uni.hideLoading();\n updateOrderInStorage(orderId.value, 2);\n uni.showToast({\n title: '支付成功',\n icon: 'success',\n duration: 2000\n });\n uni.$emit('orderUpdated', new UTSJSONObject({ orderId: orderId.value, status: 2 }));\n setTimeout(() => {\n uni.redirectTo({\n url: `/pages/mall/consumer/payment-success?orderId=${orderId.value}`\n });\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:523', '[confirmPayment] 支付异常:', err);\n uni.hideLoading();\n uni.showToast({\n title: '支付失败',\n icon: 'none'\n });\n isPaying.value = false;\n }\n }); };\n // 获取支付方式代码\n const getPaymentMethodCode = (methodId) => {\n if (methodId === 'wechat') {\n return 1;\n }\n else if (methodId === 'alipay') {\n return 2;\n }\n else if (methodId === 'balance') {\n return 3;\n }\n else if (methodId === 'bankcard') {\n return 4;\n }\n return 0;\n };\n // 验证密码(必须在 watch 之前定义)\n const verifyPassword = () => { return __awaiter(this, void 0, void 0, function* () {\n // 这里应该验证支付密码,这里简单模拟\n const userId = getCurrentUserId();\n try {\n // 模拟验证\n yield new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 500);\n });\n // 假设密码正确\n const isCorrect = true;\n if (isCorrect) {\n // 密码正确,继续支付\n confirmPayment();\n }\n else {\n password.value = '';\n uni.showToast({\n title: '密码错误',\n icon: 'none'\n });\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment.uvue:575', '验证密码异常:', err);\n }\n }); };\n // 输入密码\n const inputPassword = (num) => {\n if (password.value.length >= 6)\n return null;\n password.value += num;\n };\n // 删除密码\n const deletePassword = () => {\n if (password.value.length > 0) {\n password.value = password.value.slice(0, -1);\n }\n };\n // 监听密码输入\n watch(password, (newPassword) => {\n if (newPassword.length === 6) {\n // 自动验证密码\n verifyPassword();\n }\n });\n // 忘记密码\n const forgotPassword = () => {\n uni.navigateTo({\n url: '/pages/user/forgot-password'\n });\n };\n // 在组件卸载时移除返回键监听\n onUnmounted(() => {\n // uni.offBackPress() 在uni-app中不需要手动移除\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(productAmount.value.toFixed(2)),\n b: _t(deliveryFee.value.toFixed(2)),\n c: discountAmount.value > 0\n }, discountAmount.value > 0 ? {\n d: _t(discountAmount.value.toFixed(2))\n } : {}, {\n e: _t(amount.value.toFixed(2)),\n f: _t(orderNo.value),\n g: _f(paymentMethods.value, (method, k0, i0) => {\n return _e({\n a: _t(getMethodIcon(method.id)),\n b: _t(method.name),\n c: _t(method.description),\n d: selectedMethod.value === method.id\n }, selectedMethod.value === method.id ? {} : {}, {\n e: method.id,\n f: _n({\n selected: selectedMethod.value === method.id\n }),\n g: _o($event => { return selectMethod(method); }, method.id)\n });\n }),\n h: selectedMethod.value === 'balance' && userBalance.value > 0\n }, selectedMethod.value === 'balance' && userBalance.value > 0 ? _e({\n i: _t(userBalance.value.toFixed(2)),\n j: userBalance.value < amount.value\n }, userBalance.value < amount.value ? {} : {}) : {}, {\n k: showPassword.value\n }, showPassword.value ? {\n l: _f(6, (_, index, i0) => {\n return _e({\n a: password.value.length > index\n }, password.value.length > index ? {} : {}, {\n b: index\n });\n }),\n m: _o(forgotPassword)\n } : {}, {\n n: _t(amount.value.toFixed(2)),\n o: !isPaying.value\n }, !isPaying.value ? {\n p: _t(getPayButtonText())\n } : {}, {\n q: isPaying.value || selectedMethod.value === 'balance' && userBalance.value < amount.value ? 1 : '',\n r: _o(confirmPayment),\n s: showPassword.value\n }, showPassword.value ? {\n t: _f(9, (num, k0, i0) => {\n return {\n a: _t(num),\n b: num,\n c: _o($event => { return inputPassword(num.toString()); }, num)\n };\n }),\n v: _o($event => { return inputPassword('0'); }),\n w: _o(deletePassword)\n } : {}, {\n x: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/payment.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.getStorageSync","uni.setStorageSync","uni.$emit","uni.showToast","uni.navigateBack","uni.showModal","uni.showLoading","uni.hideLoading","uni.redirectTo","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"payment.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"payment.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/utils/sapi copy.uts b/utils/sapi copy.uts new file mode 100644 index 00000000..3110942e --- /dev/null +++ b/utils/sapi copy.uts @@ -0,0 +1,102 @@ +import supabase, { supaReady } from '@/components/supadb/aksupainstance.uts' +import type { UserProfile } from '@/types/mall-types.uts' + +/** + * 确保用户资料存在,如果不存在则创建基础资料 + * @param sessionUser 会话用户对象 (UTSJSONObject) + * @returns 创建的用户资料,如果创建失败则返回 null + */ +export async function ensureUserProfile(sessionUser: UTSJSONObject): Promise { + try { + await supaReady + + // 从 sessionUser 中获取用户ID和邮箱 + const userId = sessionUser.getString('id') + const email = sessionUser.getString('email') ?? '' + + if (userId == null || userId === '') { + console.error('无法获取用户ID') + return null + } + + // 检查用户是否已存在(ak_users 通过 auth_id 关联 auth.users.id) + const checkRes = await supabase.from('ak_users') + .select('*', {}) + .eq('auth_id', userId) + .single() + .execute() + + console.log('ensureUserProfile check ak_users:', { + status: checkRes.status, + hasData: checkRes.data != null + }) + + if (checkRes.status >= 200 && checkRes.status < 300 && checkRes.data != null) { + // 用户已存在,返回现有资料(H5 下 checkRes.data 可能是 plain object,不一定是 UTSJSONObject) + const data = checkRes.data + let existingUser: UTSJSONObject + if (data instanceof UTSJSONObject) { + existingUser = data + } else { + existingUser = new UTSJSONObject(data) + } + return { + id: existingUser.getString('id') ?? '', + username: existingUser.getString('username') ?? '', + email: existingUser.getString('email') ?? email, + gender: existingUser.getString('gender'), + birthday: existingUser.getString('birthday'), + height_cm: existingUser.getNumber('height_cm'), + weight_kg: existingUser.getNumber('weight_kg'), + bio: existingUser.getString('bio'), + avatar_url: existingUser.getString('avatar_url'), + preferred_language: existingUser.getString('preferred_language'), + role: existingUser.getString('role') ?? 'consumer', + created_at: existingUser.getString('created_at'), + updated_at: existingUser.getString('updated_at') + } as UserProfile + } + + // 用户不存在,创建新用户资料 + const newUserData = new UTSJSONObject() + newUserData.set('id', userId) + newUserData.set('email', email) + newUserData.set('username', email.split('@')[0] ?? 'user') // 默认用户名为邮箱前缀 + + const insertRes = await supabase.from('ak_users') + .insert(newUserData) + .select('*', {}) + .single() + .execute() + + console.log('ensureUserProfile insert ak_users status:', insertRes.status) + + if (insertRes.status >= 200 && insertRes.status < 300 && insertRes.data != null) { + const rawData = insertRes.data + const newUser = (rawData instanceof UTSJSONObject) + ? (rawData as UTSJSONObject) + : new UTSJSONObject(rawData) + return { + id: newUser.getString('id') ?? '', + username: newUser.getString('username') ?? '', + email: newUser.getString('email') ?? email, + gender: newUser.getString('gender'), + birthday: newUser.getString('birthday'), + height_cm: newUser.getNumber('height_cm'), + weight_kg: newUser.getNumber('weight_kg'), + bio: newUser.getString('bio'), + avatar_url: newUser.getString('avatar_url'), + preferred_language: newUser.getString('preferred_language'), + role: newUser.getString('role') ?? 'consumer', + created_at: newUser.getString('created_at'), + updated_at: newUser.getString('updated_at') + } as UserProfile + } else { + console.error('创建用户资料失败:', insertRes.status) + return null + } + } catch (error) { + console.error('ensureUserProfile 异常:', error) + return null + } +} diff --git a/utils/sapi.uts b/utils/sapi.uts index 3110942e..2f8c9acb 100644 --- a/utils/sapi.uts +++ b/utils/sapi.uts @@ -19,11 +19,10 @@ export async function ensureUserProfile(sessionUser: UTSJSONObject): Promise= 200 && checkRes.status < 300 && checkRes.data != null) { + const dataList = checkRes.data + if (checkRes.status >= 200 && checkRes.status < 300 && dataList != null && (dataList as any[]).length > 0) { // 用户已存在,返回现有资料(H5 下 checkRes.data 可能是 plain object,不一定是 UTSJSONObject) - const data = checkRes.data let existingUser: UTSJSONObject - if (data instanceof UTSJSONObject) { - existingUser = data + const firstItem = (dataList as any[])[0] + if (firstItem instanceof UTSJSONObject) { + existingUser = firstItem } else { - existingUser = new UTSJSONObject(data) + existingUser = new UTSJSONObject(firstItem) } + + const currentRole = existingUser.getString('role') + const currentAuthId = existingUser.getString('auth_id') + + // 【强力修复逻辑】如果 role 是 student 或者 auth_id 为空,进行 upsert 修复 + if (currentRole == 'student' || currentAuthId == null || currentAuthId == '') { + console.log('检测到旧数据异常,正在修复角色或关联ID...') + const updateData = new UTSJSONObject() + // updateData.set('id', userId) // update 场景不需要传 ID 在 body 里,通常作为 filter + updateData.set('auth_id', userId) + updateData.set('role', 'consumer') + + await supabase.from('ak_users') + .update(updateData) + .eq('id', userId) + .execute() + + // 同步 Auth 元数据 + try { + const meta = new UTSJSONObject() + meta.set('user_role', 'consumer') + await supabase.updateUserMetadata(meta) + } catch (e) { + console.warn('同步 Auth 元数据失败:', e) + } + + // 返回修复后的对象 + return { + id: userId, + username: existingUser.getString('username') ?? email.split('@')[0], + email: existingUser.getString('email') ?? email, + role: 'consumer' + } as UserProfile + } + return { - id: existingUser.getString('id') ?? '', + id: userId, // 始终返回 auth.users.id 作为 Profile ID username: existingUser.getString('username') ?? '', email: existingUser.getString('email') ?? email, gender: existingUser.getString('gender'), @@ -60,25 +95,51 @@ export async function ensureUserProfile(sessionUser: UTSJSONObject): Promise= 200 && insertRes.status < 300 && insertRes.data != null) { - const rawData = insertRes.data + if (insertRes.status >= 200 && insertRes.status < 300) { + const dataList = (insertRes.data != null) ? (insertRes.data as any[]) : [] + const rawData = dataList.length > 0 ? dataList[0] : null + + if (rawData == null) { + console.log('ensureUserProfile: 资料插入操作已完成(200),但未返回数据(可能是 RLS 限制)'); + return { + id: userId, + username: email.split('@')[0] ?? 'user', + email: email, + role: 'consumer', + created_at: newUserData.getString('created_at') + } as UserProfile + } + const newUser = (rawData instanceof UTSJSONObject) ? (rawData as UTSJSONObject) : new UTSJSONObject(rawData) return { - id: newUser.getString('id') ?? '', - username: newUser.getString('username') ?? '', + id: newUser.getString('id') ?? userId, + username: newUser.getString('username') ?? email.split('@')[0], email: newUser.getString('email') ?? email, gender: newUser.getString('gender'), birthday: newUser.getString('birthday'),