7 changed files with 152 additions and 2 deletions
-
1common/SparkMD5.js
-
8common/api.js
-
32common/http.interceptor.js
-
86common/http.js
-
9common/sha1.min.js
-
14main.js
-
4pages/index/index.vue
1
common/SparkMD5.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,8 @@ |
|||
// appId: 正式 null | 测试 wxb35ef055a4dd8ad4
|
|||
export const DEV = "dev"; // dev 测试 | prod 正式
|
|||
export const VERSION = '1.0.0'; // 版本号
|
|||
export const DEVURL = 'http://192.168.3.8:8000'; // 测试服请求地址
|
|||
export const PRODURL = ''; // 正式服请求地址
|
|||
|
|||
/* 首页相关接口 */ |
|||
export const API_GOODS_LIST = '/api/goods/list'; // 首页-分类下商品列表
|
|||
@ -0,0 +1,32 @@ |
|||
const install = (Vue, vm) => { |
|||
// 请求全局配置
|
|||
Vue.prototype.$u.http.setConfig({ |
|||
baseUrl: vm.API.DEVURL, |
|||
method: 'POST', |
|||
dataType: 'json', // 返回数据时自动 JSON.parse()
|
|||
showLoading: true, // 是否显示请求中的loading
|
|||
loadingText: '正在加载', |
|||
loadingTime: 800 // 延迟800毫秒时显示加载框
|
|||
}); |
|||
|
|||
// 请求前拦截
|
|||
Vue.prototype.$u.http.interceptor.request = config => { |
|||
return true; |
|||
}; |
|||
|
|||
// 响应拦截
|
|||
Vue.prototype.$u.http.interceptor.response = res => { |
|||
if(res.code == 200) { |
|||
return res.result; |
|||
} else if(res.code == 201) { |
|||
console.log("其他状态:", res.code) |
|||
return false; |
|||
} else { |
|||
return false; |
|||
} |
|||
} |
|||
} |
|||
|
|||
export default { |
|||
install |
|||
} |
|||
@ -0,0 +1,86 @@ |
|||
let sha1 = require("./sha1.min.js"); |
|||
let SparkMD5 = require("./SparkMD5.js"); // 签名加密js文件
|
|||
|
|||
function getsign(params) { |
|||
let s_data = ""; |
|||
let keys = []; |
|||
for (const key in params) { |
|||
if (params.hasOwnProperty(key)) { |
|||
const value = params[key]; |
|||
keys.push(key); |
|||
} |
|||
} |
|||
let arr = []; |
|||
keys.sort(); |
|||
for (let i = 0; i < keys.length; i++) { |
|||
let k = keys[i]; |
|||
let v = params[k]; |
|||
arr.push(k + '=' + v); |
|||
} |
|||
s_data = arr.join('&'); |
|||
|
|||
let sign = sha1(SparkMD5.hash(s_data) + 'lanzu@123'); |
|||
params.sign = sign; |
|||
return params; |
|||
} |
|||
|
|||
// TODO this获取
|
|||
function $http(url, data = {}){ |
|||
return new Promise((resolve, reject) => { |
|||
// 绑定this
|
|||
let that = this; |
|||
// 获取当前请求来自哪个页面
|
|||
let pages = getCurrentPages(); |
|||
data.create_page = pages[pages.length - 1].route; |
|||
// 当前请求时间戳
|
|||
if (!data.timestamp) { |
|||
data.timestamp = Math.round(new Date().getTime() / 1000); |
|||
} |
|||
// 当前请求随机数
|
|||
if(!data.rand){ |
|||
data.rand = Math.round(Math.random() * 1000000); |
|||
} |
|||
// 当前请求来自的平台 TODO 动态赋值
|
|||
data.platform = 'wxmini'; |
|||
// 当前小程序版本号 TODO 实时获取
|
|||
data.version = '1.0.0'; |
|||
// 获取设备唯一deviceId,如果没有,自动生成一个
|
|||
let sysInfo = uni.getSystemInfoSync(); |
|||
if(typeof sysInfo.deviceId == 'undefined'){ |
|||
let deviceId = uni.getStorageSync('deviceId'); |
|||
if(deviceId){ |
|||
sysInfo.deviceId = deviceId; |
|||
}else{ |
|||
let date_time = String(new Date().getTime()); |
|||
let md5_deviceId = SparkMD5.hash(date_time); |
|||
uni.setStorageSync('deviceId', md5_deviceId); |
|||
sysInfo.deviceId = md5_deviceId; |
|||
} |
|||
} |
|||
if (sysInfo) { |
|||
data.device_info = JSON.stringify(sysInfo); |
|||
} |
|||
// 获取页面options参数
|
|||
let _mergeParam = that._mergeParam; |
|||
for (let _keyVar in _mergeParam) { |
|||
let _k = _keyVar |
|||
if (data[_k]) { |
|||
_k = '_' + _k; |
|||
} |
|||
data[_k] = _mergeParam[_keyVar]; |
|||
} |
|||
// 生成sign
|
|||
getsign(data); |
|||
console.log(url, data); |
|||
// 发起请求
|
|||
that.$u.post(url, data).then(res => { |
|||
resolve(res); |
|||
}).catch(err => { |
|||
reject(err); |
|||
}) |
|||
}); |
|||
} |
|||
|
|||
module.exports = { |
|||
$http |
|||
} |
|||
9
common/sha1.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue