You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.8 KiB
JavaScript
112 lines
3.8 KiB
JavaScript
11 months ago
|
"use strict";
|
||
|
const common_vendor = require("../../common/vendor.js");
|
||
|
const store_index = require("../../store/index.js");
|
||
|
const api_index = require("../../api/index.js");
|
||
|
const utils_index = require("../../utils/index.js");
|
||
|
require("../../api/request.js");
|
||
|
require("../../config/index.js");
|
||
|
if (!Array) {
|
||
|
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
|
||
|
_easycom_uni_icons2();
|
||
|
}
|
||
|
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
|
||
|
if (!Math) {
|
||
|
_easycom_uni_icons();
|
||
|
}
|
||
|
const _sfc_main = {
|
||
|
__name: "login",
|
||
|
setup(__props) {
|
||
|
store_index.useStore();
|
||
|
common_vendor.onLoad(() => {
|
||
|
});
|
||
|
const avatarUrl = common_vendor.ref(null);
|
||
|
const nickname = common_vendor.ref("");
|
||
|
const res_form = common_vendor.ref(null);
|
||
|
common_vendor.watch(nickname, (v1, v2) => {
|
||
|
console.log("watch", v1);
|
||
|
});
|
||
|
function onChooseAvatar(e) {
|
||
|
avatarUrl.value = e.detail.avatarUrl;
|
||
|
}
|
||
|
function getPhoneNumber(e) {
|
||
|
getAccess_token({ code: e.detail.code });
|
||
|
}
|
||
|
async function getAccess_token(params = {}) {
|
||
|
const data = {
|
||
|
username: params.code,
|
||
|
//手机号按钮获取的code
|
||
|
type: "wechat_mini_app",
|
||
|
identity: "user",
|
||
|
password: "111",
|
||
|
avatarUrl: avatarUrl.value,
|
||
|
nickName: nickname.value
|
||
|
};
|
||
|
const res = await api_index.API.getToken(data);
|
||
|
if (res.code === 200) {
|
||
|
common_vendor.index.setStorageSync("avatarUrl", avatarUrl.value);
|
||
|
res_form.value = res.data;
|
||
|
res_form.value.access_token = "Bearer " + res.data.access_token;
|
||
|
let userId = res.data.userId;
|
||
|
common_vendor.index.setStorageSync("access_token", res_form.value.access_token);
|
||
|
wx_login(userId);
|
||
|
}
|
||
|
}
|
||
|
async function wx_login(userId) {
|
||
|
let res = await new Promise((resolve) => {
|
||
|
common_vendor.index.login({
|
||
|
provider: "weixin",
|
||
|
//使用微信登录
|
||
|
success: function(loginRes) {
|
||
|
resolve(loginRes);
|
||
|
console.log(loginRes, "微信登录返回信息");
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
let res2 = await api_index.API.wx_login({ code: res.code }, userId);
|
||
|
if (res2.code === 0) {
|
||
|
common_vendor.index.setStorageSync("userInfo", JSON.stringify(res_form.value));
|
||
|
utils_index.custom.uploadImage(avatarUrl.value, async (file) => {
|
||
|
avatarUrl.value = file.data.file.url;
|
||
|
common_vendor.index.setStorageSync("avatarUrl", file.data.file.url);
|
||
|
await updateFunc();
|
||
|
common_vendor.index.switchTab({
|
||
|
url: "/pages/user/index"
|
||
|
});
|
||
|
});
|
||
|
} else {
|
||
|
common_vendor.index.clearStorage();
|
||
|
}
|
||
|
}
|
||
|
async function updateFunc() {
|
||
|
let user_info = JSON.parse(common_vendor.index.getStorageSync("userInfo"));
|
||
|
user_info.avatar = avatarUrl.value;
|
||
|
user_info.id = user_info.userId;
|
||
|
return await api_index.API.userinfoUpdae(user_info);
|
||
|
}
|
||
|
function nameInput(e) {
|
||
|
nickname.value = e.detail.value;
|
||
|
}
|
||
|
return (_ctx, _cache) => {
|
||
|
return common_vendor.e({
|
||
|
a: avatarUrl.value
|
||
|
}, avatarUrl.value ? {
|
||
|
b: avatarUrl.value
|
||
|
} : {
|
||
|
c: common_vendor.p({
|
||
|
type: "person-filled",
|
||
|
color: "white",
|
||
|
size: "60"
|
||
|
})
|
||
|
}, {
|
||
|
d: common_vendor.o(onChooseAvatar),
|
||
|
e: common_vendor.o(nameInput),
|
||
|
f: nickname.value,
|
||
|
g: common_vendor.o(($event) => nickname.value = $event.detail.value),
|
||
|
h: common_vendor.o(getPhoneNumber)
|
||
|
});
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e4e4508d"], ["__file", "F:/项目2023/视力表/vision-record/pages/login/login.vue"]]);
|
||
|
wx.createPage(MiniProgramPage);
|