146 lines
5.4 KiB
JavaScript
146 lines
5.4 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../../common/vendor.js");
|
|
const request_request = require("../../request/request.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: "",
|
|
// 保存相对路径,用于提交
|
|
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:111", "获取个人信息失败:", 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 = (filePath) => {
|
|
common_vendor.index.showLoading({ title: "上传中..." });
|
|
common_vendor.index.uploadFile({
|
|
url: request_request.baseUrl + "/frontend/attachment/upload",
|
|
filePath,
|
|
name: "file",
|
|
header: {
|
|
"Authorization": request_request.getToken()
|
|
},
|
|
success: (uploadRes) => {
|
|
common_vendor.index.hideLoading();
|
|
try {
|
|
const data = JSON.parse(uploadRes.data);
|
|
if (data.code === 0 && data.data) {
|
|
userInfo.avatar = data.data.url || data.data;
|
|
common_vendor.index.showToast({ title: "上传成功", icon: "success" });
|
|
} else {
|
|
avatarPreview.value = "";
|
|
common_vendor.index.showToast({ title: data.msg || "上传失败", icon: "none" });
|
|
}
|
|
} catch (e) {
|
|
avatarPreview.value = "";
|
|
common_vendor.index.showToast({ title: "上传失败", icon: "none" });
|
|
}
|
|
},
|
|
fail: () => {
|
|
common_vendor.index.hideLoading();
|
|
avatarPreview.value = "";
|
|
common_vendor.index.showToast({ title: "上传失败", 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:195", "保存失败:", 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
|