diff --git a/frontent/ops_vue_js/src/views/settings/account.vue b/frontent/ops_vue_js/src/views/settings/account.vue
index 26c73f8..5210299 100644
--- a/frontent/ops_vue_js/src/views/settings/account.vue
+++ b/frontent/ops_vue_js/src/views/settings/account.vue
@@ -7,16 +7,32 @@ import imageCropper from "@/components/imageCropper.vue";
import { useUserStore } from "@/stores/user";
import { my_network_func } from "@/my_network_func";
import MyOffcanvas from "@/components/MyOffcanvas.vue";
+import { myfuncs } from "@/myfunc";
+import { useRouter } from "vue-router";
const mos = ref();
-const { t } = useI18n();
+const { t, locale } = useI18n();
+
+const router = useRouter();
const birthday = ref();
const username = ref();
const userremark = ref();
+const emailInput = ref();
+
const userStore = useUserStore();
+const oldPassInput = ref();
+const newPassInput = ref();
+const cnfPassInput = ref();
+
+const isShowPassword = ref(false);
+
+function togglePasswordVisibility() {
+ isShowPassword.value = !isShowPassword.value;
+}
+
function updataInfo() {
let isDataErr = false;
@@ -44,13 +60,13 @@ function updataInfo() {
}
if (isDataErr) {
- console.log("用户信息有误,无法保存");
+ //console.log("用户信息有误,无法保存");
return;
}
- console.log("保存用户信息");
- console.log("用户名:", usernameValue);
- console.log("备注:", userremarkValue);
- console.log("生日:", birthdayValue);
+ // console.log("保存用户信息");
+ // console.log("用户名:", usernameValue);
+ // console.log("备注:", userremarkValue);
+ // console.log("生日:", birthdayValue);
my_network_func.postJson(
"/users/updateInfo",
{
@@ -59,16 +75,14 @@ function updataInfo() {
birthday: birthdayValue,
},
(r) => {
- console.log(r);
+ //console.log(r);
switch (r.statusCode) {
case 200:
switch (r.data.err_code) {
case 0:
- mos.value?.showAlert(
- "success",
- t("message.save_ok"),
- 1000
- );
+ mos.value?.showAlert("success", t("message.save_ok"), 1000);
+ // 更新用户信息到store
+ userStore.getUserInfoFromCookie();
break;
default:
mos.value?.showAlert("danger", t("message.server_error"), 5000);
@@ -83,10 +97,167 @@ function updataInfo() {
);
}
+function changeEmail() {
+ if (emailInput.value.value == "") {
+ emailInput.value.classList.add("is-invalid");
+ mos.value?.showAlert("warning", t("message.please_enter_your_email"), 3000);
+ return;
+ } else {
+ emailInput.value.classList.remove("is-invalid");
+ }
+ //判断是否是合法邮箱
+ if (myfuncs.isValidEmail(emailInput.value.value) == false) {
+ emailInput.value.classList.add("is-invalid");
+ mos.value?.showAlert("danger", t("message.this_not_email"), 3000);
+ return;
+ } else {
+ emailInput.value.classList.remove("is-invalid");
+ }
+
+ my_network_func.postJson(
+ "/users/changeEmail",
+ {
+ newemail: emailInput.value.value,
+ },
+ (r) => {
+ switch (r.statusCode) {
+ case 200:
+ switch (r.data.err_code) {
+ case 0:
+ mos.value?.showAlert("success", t("message.change_ok"), 5000);
+ // 更新用户信息到store
+ userStore.getUserInfoFromCookie();
+ break;
+ case -43:
+ emailInput.value.classList.add("is-invalid");
+ mos.value?.showAlert("danger", t("message.this_not_email"), 3000);
+ break;
+
+ default:
+ mos.value?.showAlert("danger", t("message.server_error"), 5000);
+ break;
+ }
+ break;
+ default:
+ mos.value?.showAlert("danger", t("message.network_err"), 5000);
+ break;
+ }
+ }
+ );
+}
+
+function changePassword() {
+ let isDataErr = false;
+
+ let oldPass = oldPassInput.value.value;
+ let newPass = newPassInput.value.value;
+ let cnfPass = cnfPassInput.value.value;
+
+ oldPassInput.value.classList.remove("is-invalid");
+ newPassInput.value.classList.remove("is-invalid");
+ cnfPassInput.value.classList.remove("is-invalid");
+
+ if (!oldPass) {
+ isDataErr = true;
+ oldPassInput.value.classList.add("is-invalid");
+ }
+ if (!newPass) {
+ isDataErr = true;
+ newPassInput.value.classList.add("is-invalid");
+ }
+
+ if (!cnfPass) {
+ isDataErr = true;
+ cnfPassInput.value.classList.add("is-invalid");
+ }
+
+ if (newPass !== cnfPass) {
+ isDataErr = true;
+ newPassInput.value.classList.add("is-invalid");
+ cnfPassInput.value.classList.add("is-invalid");
+ mos.value?.showAlert(
+ "warning",
+ t("message.confirm_password_incorrect"),
+ 3000
+ );
+ }
+ if (isDataErr) {
+ return;
+ }
+
+ my_network_func.postJson(
+ "/users/changePassword",
+ {
+ oldpass: oldPass,
+ newpass: newPass,
+ },
+ (r) => {
+ switch (r.statusCode) {
+ case 200:
+ switch (r.data.err_code) {
+ case 0:
+ // 清空输入框
+ oldPassInput.value.value = "";
+ newPassInput.value.value = "";
+ cnfPassInput.value.value = "";
+ mos.value?.showAlert(
+ "success",
+ t("message.change_ok"),
+ 2000,
+ () => {
+ userStore.logout();
+ router.push("/");
+ }
+ );
+
+ break;
+ case -42:
+ oldPassInput.value.classList.add("is-invalid");
+ mos.value?.showAlert(
+ "danger",
+ t("message.old_pass_incorrect"),
+ 3000
+ );
+ break;
+
+ default:
+ mos.value?.showAlert("danger", t("message.server_error"), 5000);
+ break;
+ }
+ break;
+ default:
+ mos.value?.showAlert("danger", t("message.network_err"), 5000);
+ break;
+ }
+ }
+ );
+}
+
+function changeAvatar() {
+ mos.value?.showAlert(
+ "info",
+ t("message.functionality_not_yet_developed"),
+ 5000
+ );
+}
+
+function functionupdataTitle() {
+ document.title = "Operations." + t("settings.account_settings");
+}
+
+// 监听语言变化,更新标题
+watch(locale, () => {
+ functionupdataTitle();
+});
+
onMounted(() => {
//console.log("account mounted");
//username.value.value="Kevin";
+ functionupdataTitle();
+ if (!userStore.isLoggedIn) {
+ router.push("/login");
+ }
});
@@ -119,7 +290,7 @@ onMounted(() => {
-
@@ -150,7 +321,10 @@ onMounted(() => {
{{ t("settings.birthday") }}
-
+