128 lines
4.7 KiB
JavaScript
128 lines
4.7 KiB
JavaScript
"use strict";
|
||
const common_vendor = require("../../common/vendor.js");
|
||
const request_request = require("../../request/request.js");
|
||
const utils_upload = require("../../utils/upload.js");
|
||
const request_three_one_api_info = require("../../request/three_one_api/info.js");
|
||
const defaultAvatar = "https://ossweb-img.qq.com/images/lol/web201310/skin/big81005.jpg";
|
||
const _sfc_main = {
|
||
__name: "edit",
|
||
setup(__props) {
|
||
const saving = common_vendor.ref(false);
|
||
const avatarPreview = common_vendor.ref("");
|
||
const userInfo = common_vendor.reactive({
|
||
avatar: "",
|
||
// 七牛完整 URL,用于提交
|
||
nickName: "",
|
||
phonenumber: "",
|
||
email: "",
|
||
sex: "0"
|
||
// '0'-男 '1'-女
|
||
});
|
||
const getImageUrl = (path) => {
|
||
if (!path)
|
||
return "";
|
||
return request_request.toImageUrl(path);
|
||
};
|
||
common_vendor.onMounted(() => {
|
||
loadProfileDetail();
|
||
});
|
||
const loadProfileDetail = async () => {
|
||
try {
|
||
common_vendor.index.showLoading({ title: "加载中..." });
|
||
const res = await request_three_one_api_info.getProfileDetail();
|
||
common_vendor.index.hideLoading();
|
||
if (res.code === 0 && res.data) {
|
||
userInfo.avatar = res.data.avatar || "";
|
||
userInfo.nickName = res.data.nickName || "";
|
||
userInfo.phonenumber = res.data.phonenumber || "";
|
||
userInfo.email = res.data.email || "";
|
||
userInfo.sex = res.data.sex || "0";
|
||
}
|
||
} catch (err) {
|
||
common_vendor.index.hideLoading();
|
||
common_vendor.index.__f__("error", "at pages/personalcenter/edit.vue:112", "获取个人信息失败:", err);
|
||
}
|
||
};
|
||
const chooseAvatar = () => {
|
||
common_vendor.index.chooseImage({
|
||
count: 1,
|
||
sizeType: ["compressed"],
|
||
sourceType: ["album", "camera"],
|
||
success: (res) => {
|
||
const tempFilePath = res.tempFilePaths[0];
|
||
avatarPreview.value = tempFilePath;
|
||
uploadAvatar(tempFilePath);
|
||
}
|
||
});
|
||
};
|
||
const uploadAvatar = async (filePath) => {
|
||
try {
|
||
const { url } = await utils_upload.uploadSingleWithLoading(filePath);
|
||
userInfo.avatar = url;
|
||
avatarPreview.value = url;
|
||
common_vendor.index.showToast({ title: "上传成功", icon: "success" });
|
||
} catch (e) {
|
||
avatarPreview.value = "";
|
||
common_vendor.index.showToast({
|
||
title: (e == null ? void 0 : e.msg) || (e == null ? void 0 : e.message) || "上传失败",
|
||
icon: "none"
|
||
});
|
||
}
|
||
};
|
||
const handleSave = async () => {
|
||
if (!userInfo.nickName) {
|
||
common_vendor.index.showToast({ title: "请输入昵称", icon: "none" });
|
||
return;
|
||
}
|
||
saving.value = true;
|
||
try {
|
||
const params = {
|
||
nickName: userInfo.nickName,
|
||
phonenumber: userInfo.phonenumber,
|
||
email: userInfo.email,
|
||
sex: userInfo.sex,
|
||
avatar: userInfo.avatar
|
||
};
|
||
const res = await request_three_one_api_info.updateProfile(params);
|
||
if (res.code === 0) {
|
||
common_vendor.index.showToast({ title: "保存成功", icon: "success" });
|
||
setTimeout(() => {
|
||
common_vendor.index.navigateBack();
|
||
}, 1500);
|
||
} else {
|
||
common_vendor.index.showToast({ title: res.msg || "保存失败", icon: "none" });
|
||
}
|
||
} catch (err) {
|
||
common_vendor.index.__f__("error", "at pages/personalcenter/edit.vue:176", "保存失败:", err);
|
||
common_vendor.index.showToast({ title: "保存失败", icon: "none" });
|
||
} finally {
|
||
saving.value = false;
|
||
}
|
||
};
|
||
return (_ctx, _cache) => {
|
||
return {
|
||
a: avatarPreview.value || getImageUrl(userInfo.avatar) || defaultAvatar,
|
||
b: common_vendor.o(chooseAvatar),
|
||
c: userInfo.nickName,
|
||
d: common_vendor.o(($event) => userInfo.nickName = $event.detail.value),
|
||
e: userInfo.phonenumber,
|
||
f: common_vendor.o(($event) => userInfo.phonenumber = $event.detail.value),
|
||
g: userInfo.email,
|
||
h: common_vendor.o(($event) => userInfo.email = $event.detail.value),
|
||
i: userInfo.sex === "0" ? 1 : "",
|
||
j: userInfo.sex === "0" ? 1 : "",
|
||
k: common_vendor.o(($event) => userInfo.sex = "0"),
|
||
l: userInfo.sex === "1" ? 1 : "",
|
||
m: userInfo.sex === "1" ? 1 : "",
|
||
n: common_vendor.o(($event) => userInfo.sex = "1"),
|
||
o: common_vendor.o(handleSave),
|
||
p: saving.value,
|
||
q: common_vendor.gei(_ctx, "")
|
||
};
|
||
};
|
||
}
|
||
};
|
||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-249675c2"]]);
|
||
wx.createPage(MiniProgramPage);
|
||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/personalcenter/edit.js.map
|