微信相关
<button class="cc" open-type="getUserInfo" @getuserinfo="getUserInfo" v-if="!canIUseGetUserProfile"> <u-icon name="weixin-fill" color="#fff" size="38"></u-icon> <text style="padding-left:8px">微信一键授权</text> </button>
getUserInfo(res) { if (res.detail && res.detail["iv"] && res.detail["encryptedData"]) { const data = { iv: res.detail.iv, phone: uni.getStorageSync("phone"), encryptedData: res.detail.encryptedData }; weixinCheck(data, this.num); } else { uni.showToast({ title: "微信授权失败", icon: "none", duration: 2000 }); } },
uni.login({ provider: "weixin", success: loginRes => { console.log("loginRes", loginRes); console.log("siteId", uni.getStorageSync("siteId")); params = params || {}; loginByWechat({ terminalType: "C", principalType: uni.getStorageSync("sourceType"), // store.state.user.sourceType, principalId: uni.getStorageSync("sourceId"), // store.state.user.sourceId, siteId: uni.getStorageSync("siteId"), // store.state.user.siteId, jsCode: loginRes.code, ...params }) .then(res => { handleLoginInfo(res, num); }) .catch(err => { console.log("debug log --> ", err); uni.showToast({ title: err, icon: "none", duration: 2000 }); const timer = setTimeout(() => { // uni.redirectTo({ // url: "/authorize/index" // }); clearTimeout(timer); }, 2000); }); }, fail: loginErr => { uni.showToast({ title: loginErr, icon: "none", duration: 2000 }); const timer = setTimeout(() => { uni.redirectTo({ url: "/authorize/login" }); clearTimeout(timer); }, 2000); } });
手机号授权
<button style=" margin-bottom: 15px;" class="cc" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"> <u-icon style=" vertical-align: middle;" name="weixin-fill" color="#fff" size="38"></u-icon> <text style="padding-left:8px">微信手机号一键绑定</text> </button>
getPhoneNumber: function(e) { console.log("debug log --> ", e); this.show = false; if (e.detail.errMsg === "getPhoneNumber:fail user deny") { wx.showToast({ icon: "none", title: "请允许获取手机号,否则功能不可用!" }); return; } if (this.loginSuccess) { var ency = e.detail.encryptedData; var iv = e.detail.iv; const data = { iv: iv, jsCode: this.code, encryptedData: ency // nickName: uni.getStorageSync("name") }; weixinCheckPhone(data); } },
export function uploadFileReq(options, config) { options = Object.assign(options, { header: { deviceType: deviceType, token: uni.getStorageSync("token") } }); const showToast = !(config && config.showToast === false); return new Promise((resolve, reject) => { uni.uploadFile({ ...options, success: res => { const resData = JSON.parse(res.data); if (resData && resData.code === 200) { resolve(resData.data); } else { showToast && uni.showToast({ title: resData.msg, icon: "none", duration: 2000 }); reject(new Error(resData.msg)); } }, fail: () => { showToast && uni.showToast({ title: "请求失败", icon: "none", duration: 2000 }); reject(new Error("请求失败")); } }); }); } export function downloadFileReq(options, config) { options = Object.assign(options, { header: { deviceType: deviceType, token: uni.getStorageSync("token") } }); const showToast = !(config && config.showToast === false); return new Promise((resolve, reject) => { uni.downloadFile({ ...options, success: res => { resolve(res); }, fail: () => { showToast && uni.showToast({ title: "请求失败", icon: "none", duration: 2000 }); reject(new Error("请求失败")); } }); }); }
// api
export function uploadSiteImg(filePath) { return uploadFileReq({ url: `${BASE_URL}/file/api/v1/site/default/uploadImg`, filePath: filePath, name: "files" }); }
export function uploadFile(filePath) { return uploadFileReq({ url: `${BASE_URL}/file/api/v1/systemFile/uploadImageOss`, filePath: filePath, name: "files" }); }