第一次提交:微信小程序前端最新完整代码

This commit is contained in:
XingQue
2026-06-12 21:55:06 +08:00
commit 84be8489b4
330 changed files with 74263 additions and 0 deletions

73
utils/shop.js Normal file
View File

@@ -0,0 +1,73 @@
// utils/shop.js
import { ensureLogin } from './login';
import request from './request'; // 封装后的请求对象,路径请按实际调整
/**
* 获取当前用户绑定的店铺商品数据
* 自动确保登录,然后请求 /shangdian/hqsp 接口
* 注意:本方法不涉及公告和轮播图,公告轮播图由页面独立调用原接口
* @returns {Promise<Object>} 返回后端商品数据(包含 shangpinleixing, shangpinzhuanqu, shangpinliebiao
*/
export async function fetchShopGoods() {
// 1. 确保已登录
await ensureLogin();
// 2. 请求商品数据
return new Promise((resolve, reject) => {
request({
url: '/shangdian/hqsp',
method: 'POST',
data: {} // 无需传参,后端从 token 解析用户及绑定店铺
})
.then(res => {
if (res.statusCode === 200 && res.data && res.data.code === 200) {
const data = res.data.data;
// 后端返回的商品数据应当包含 shangpinleixing, shangpinzhuanqu, shangpinliebiao
resolve(data);
} else {
const msg = res.data?.msg || '获取商品失败';
wx.showToast({ title: msg, icon: 'none' });
reject(new Error(msg));
}
})
.catch(err => {
console.error('获取商品失败:', err);
wx.showToast({ title: '网络错误,请重试', icon: 'none' });
reject(err);
});
});
}
/**
* 绑定店铺(扫码时调用)
* @param {string} dianpuId 店铺ID从二维码解析
* @returns {Promise<void>}
*/
export async function bindShop(dianpuId) {
if (!dianpuId) return;
await ensureLogin(); // 确保登录
return new Promise((resolve, reject) => {
request({
url: '/shangdian/bdsd',
method: 'POST',
data: { dianpu_id: dianpuId }
})
.then(res => {
if (res.statusCode === 200 && res.data && res.data.code === 200) {
// 绑定成功,后端已记录关系
resolve();
} else {
const msg = res.data?.msg || '店铺绑定失败';
wx.showToast({ title: msg, icon: 'none' });
reject(new Error(msg));
}
})
.catch(err => {
console.error('绑定店铺失败:', err);
wx.showToast({ title: '网络错误,绑定失败', icon: 'none' });
reject(err);
});
});
}