'项目配置'
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
unpackage/
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
/**
|
||||||
|
* 公共路由接口封装(/public/*)
|
||||||
|
* 注:响应拦截器暂未做业务规范拦截,调用方拿到的是 uni.request 原始 response 结构 { statusCode, data, header ... }
|
||||||
|
*/
|
||||||
|
import request from './request.js';
|
||||||
|
|
||||||
|
const PREFIX = '/public';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品分类树
|
||||||
|
* @param {Object} [params]
|
||||||
|
* @param {string|number} [params.countryId] 国家 ID,不传时返回全部国家
|
||||||
|
*/
|
||||||
|
export function getCategories(params) {
|
||||||
|
return request.get(`${PREFIX}/categories`, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取有商品的国家列表
|
||||||
|
*/
|
||||||
|
export function getCountries() {
|
||||||
|
return request.get(`${PREFIX}/countries`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取有商品的标签列表
|
||||||
|
*/
|
||||||
|
export function getTags() {
|
||||||
|
return request.get(`${PREFIX}/tags`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标签组及标签筛选项
|
||||||
|
* @param {Object} [params]
|
||||||
|
* @param {string|number} [params.countryId] 国家 ID,不传时返回全部国家
|
||||||
|
*/
|
||||||
|
export function getTagGroups(params) {
|
||||||
|
return request.get(`${PREFIX}/tag-groups`, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页获取商品
|
||||||
|
* @param {Object} params
|
||||||
|
* @param {number} [params.page]
|
||||||
|
* @param {number} [params.pageSize]
|
||||||
|
* @param {string|number} [params.countryId]
|
||||||
|
* @param {string|number} [params.categoryId]
|
||||||
|
* @param {string} [params.keyword]
|
||||||
|
*/
|
||||||
|
export function getGoods(params) {
|
||||||
|
return request.get(`${PREFIX}/goods`, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品完整详情
|
||||||
|
* @param {string|number} goodId 商品 ID(替换路径变量 {goodId})
|
||||||
|
*/
|
||||||
|
export function getGoodsDetail(goodId) {
|
||||||
|
return request.get(`${PREFIX}/goods/${goodId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取首页商品(可按国家返回)
|
||||||
|
* @param {Object} [params]
|
||||||
|
* @param {string|number} [params.countryId]
|
||||||
|
*/
|
||||||
|
export function getHomeGoods(params) {
|
||||||
|
return request.get(`${PREFIX}/home-goods`, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
getCategories,
|
||||||
|
getCountries,
|
||||||
|
getTags,
|
||||||
|
getTagGroups,
|
||||||
|
getGoods,
|
||||||
|
getGoodsDetail,
|
||||||
|
getHomeGoods
|
||||||
|
};
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
/**
|
||||||
|
* uni-app 简易请求封装
|
||||||
|
* - 统一拼接 BASE_URL + path
|
||||||
|
* - 注入 token header
|
||||||
|
* - Promise 化,提供 get/post/put/delete 快捷方法
|
||||||
|
*
|
||||||
|
* 用法:
|
||||||
|
* import request from '@/api/request.js'
|
||||||
|
* request.get('/user/info', { id: 1 })
|
||||||
|
* request.post('/user/login', { username, password })
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 基础路径:修改此处即可切换后端地址
|
||||||
|
const BASE_URL = 'http://192.168.124.137:3001';
|
||||||
|
|
||||||
|
// 默认配置
|
||||||
|
const TIMEOUT = 30000;
|
||||||
|
const DEFAULT_HEADER = { 'Content-Type': 'application/json' };
|
||||||
|
|
||||||
|
// 统一拼装 URL:完整地址直接返回,否则 BASE_URL + path
|
||||||
|
function buildUrl(url) {
|
||||||
|
if (!url) return '';
|
||||||
|
if (/^https?:\/\//i.test(url)) return url;
|
||||||
|
const base = BASE_URL.replace(/\/+$/, '');
|
||||||
|
const path = url.replace(/^\/+/, '');
|
||||||
|
return path ? `${base}/${path}` : base;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统一取 header(注入 token)
|
||||||
|
function buildHeader(extraHeader) {
|
||||||
|
const header = Object.assign({}, DEFAULT_HEADER, extraHeader || {});
|
||||||
|
const token = uni.getStorageSync('token');
|
||||||
|
if (token) header['Authorization'] = `Bearer ${token}`;
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 核心请求方法
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {string} options.url 相对路径或完整 URL
|
||||||
|
* @param {string} [options.method='GET']
|
||||||
|
* @param {Object} [options.data] 请求参数 / body
|
||||||
|
* @param {Object} [options.header] 额外 header
|
||||||
|
* @returns {Promise<any>}
|
||||||
|
*/
|
||||||
|
function request(options = {}) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
uni.request({
|
||||||
|
url: buildUrl(options.url || ''),
|
||||||
|
method: (options.method || 'GET').toUpperCase(),
|
||||||
|
data: options.data || {},
|
||||||
|
header: buildHeader(options.header),
|
||||||
|
timeout: TIMEOUT,
|
||||||
|
dataType: 'json',
|
||||||
|
success: resolve,
|
||||||
|
fail: reject
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 快捷方法
|
||||||
|
request.get = (url, data, options) => request({ url, method: 'GET', data, ...options });
|
||||||
|
request.post = (url, data, options) => request({ url, method: 'POST', data, ...options });
|
||||||
|
request.put = (url, data, options) => request({ url, method: 'PUT', data, ...options });
|
||||||
|
request.delete = (url, data, options) => request({ url, method: 'DELETE', data, ...options });
|
||||||
|
|
||||||
|
export default request;
|
||||||
+46
-40
@@ -1,24 +1,24 @@
|
|||||||
{
|
{
|
||||||
"name": "inkreach-miniprogram",
|
"name" : "inkreach-miniprogram",
|
||||||
"appid": "",
|
"appid" : "__UNI__73E5929",
|
||||||
"description": "",
|
"description" : "",
|
||||||
"versionName": "1.0.0",
|
"versionName" : "1.0.0",
|
||||||
"versionCode": "100",
|
"versionCode" : "100",
|
||||||
"transformPx": false,
|
"transformPx" : false,
|
||||||
"app-plus": {
|
"app-plus" : {
|
||||||
"usingComponents": true,
|
"usingComponents" : true,
|
||||||
"nvueStyleCompiler": "uni-app",
|
"nvueStyleCompiler" : "uni-app",
|
||||||
"compilerVersion": 3,
|
"compilerVersion" : 3,
|
||||||
"splashscreen": {
|
"splashscreen" : {
|
||||||
"alwaysShowBeforeRender": true,
|
"alwaysShowBeforeRender" : true,
|
||||||
"waiting": true,
|
"waiting" : true,
|
||||||
"autoclose": true,
|
"autoclose" : true,
|
||||||
"delay": 0
|
"delay" : 0
|
||||||
},
|
},
|
||||||
"modules": {},
|
"modules" : {},
|
||||||
"distribute": {
|
"distribute" : {
|
||||||
"android": {
|
"android" : {
|
||||||
"permissions": [
|
"permissions" : [
|
||||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||||
@@ -36,35 +36,41 @@
|
|||||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ios": {},
|
"ios" : {},
|
||||||
"sdkConfigs": {}
|
"sdkConfigs" : {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quickapp": {},
|
"quickapp" : {},
|
||||||
"mp-weixin": {
|
"mp-weixin" : {
|
||||||
"appid": "wxd0e6eff3c220337b",
|
"appid" : "wxd0e6eff3c220337b",
|
||||||
"setting": {
|
"setting" : {
|
||||||
"urlCheck": false
|
"urlCheck" : false
|
||||||
},
|
},
|
||||||
"usingComponents": true,
|
"usingComponents" : true,
|
||||||
"permission": {
|
"permission" : {
|
||||||
"scope.userLocation": {
|
"scope.userLocation" : {
|
||||||
"desc": "你的位置信息将用于小程序位置接口的效果展示"
|
"desc" : "你的位置信息将用于小程序位置接口的效果展示"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugins": {}
|
"plugins" : {}
|
||||||
},
|
},
|
||||||
"mp-alipay": {
|
"mp-alipay" : {
|
||||||
"usingComponents": true
|
"usingComponents" : true
|
||||||
},
|
},
|
||||||
"mp-baidu": {
|
"mp-baidu" : {
|
||||||
"usingComponents": true
|
"usingComponents" : true
|
||||||
},
|
},
|
||||||
"mp-toutiao": {
|
"mp-toutiao" : {
|
||||||
"usingComponents": true
|
"usingComponents" : true
|
||||||
},
|
},
|
||||||
"uniStatistics": {
|
"uniStatistics" : {
|
||||||
"enable": false
|
"enable" : false
|
||||||
},
|
},
|
||||||
"vueVersion": "2"
|
"vueVersion" : "2",
|
||||||
|
"h5" : {
|
||||||
|
"devServer" : {
|
||||||
|
"https" : false,
|
||||||
|
"host" : "192.168.124.19"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user