From f1634872dedc42230611a4c1c85cb97afca013f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E5=B3=B0?= Date: Mon, 12 Jan 2026 17:51:42 +0800 Subject: [PATCH] up --- backend/routers/apiUsers.go | 5 + .../ops_vue_js/src/components/HeardMain.vue | 12 +- .../src/components/settingNavigation.vue | 29 +- frontent/ops_vue_js/src/i18n/en.json | 4 + frontent/ops_vue_js/src/i18n/zh-CN.json | 4 + frontent/ops_vue_js/src/my_network_func.js | 3 + frontent/ops_vue_js/src/router/index.js | 21 +- .../ops_vue_js/src/views/settings/account.vue | 300 ++---------------- .../ops_vue_js/src/views/settings/contact.vue | 135 ++++++++ .../src/views/settings/security.vue | 230 ++++++++++++++ 10 files changed, 460 insertions(+), 283 deletions(-) create mode 100644 frontent/ops_vue_js/src/views/settings/contact.vue create mode 100644 frontent/ops_vue_js/src/views/settings/security.vue diff --git a/backend/routers/apiUsers.go b/backend/routers/apiUsers.go index b19ac32..91147ca 100644 --- a/backend/routers/apiUsers.go +++ b/backend/routers/apiUsers.go @@ -185,6 +185,11 @@ func ApiUser(r *gin.RouterGroup) { } }) + //修改用户头像 + r.POST("/updateAvatar", func(ctx *gin.Context) { + + }) + //更新用户info r.POST("/updateInfo", func(ctx *gin.Context) { isAuth, user, data := AuthenticationAuthority(ctx) diff --git a/frontent/ops_vue_js/src/components/HeardMain.vue b/frontent/ops_vue_js/src/components/HeardMain.vue index 15132c7..afa7d1f 100644 --- a/frontent/ops_vue_js/src/components/HeardMain.vue +++ b/frontent/ops_vue_js/src/components/HeardMain.vue @@ -206,18 +206,18 @@ onMounted(() => { diff --git a/frontent/ops_vue_js/src/i18n/en.json b/frontent/ops_vue_js/src/i18n/en.json index 309bc94..feae2a0 100644 --- a/frontent/ops_vue_js/src/i18n/en.json +++ b/frontent/ops_vue_js/src/i18n/en.json @@ -105,6 +105,10 @@ "confirm_password_incorrect": "Confirm password is incorrect" }, "settings": { + "cancel": "Cancel", + "basic_information":"Basic Information", + "contact_information":"Contact Information", + "security_settings":"Security Settings", "account_settings": "Account Settings", "my_account": "My Account", "profile_information": "Profile Information", diff --git a/frontent/ops_vue_js/src/i18n/zh-CN.json b/frontent/ops_vue_js/src/i18n/zh-CN.json index 3c1870a..a1e2efe 100644 --- a/frontent/ops_vue_js/src/i18n/zh-CN.json +++ b/frontent/ops_vue_js/src/i18n/zh-CN.json @@ -105,6 +105,10 @@ "confirm_password_incorrect":"确认密码不正确" }, "settings": { + "cancel": "取消", + "basic_information":"基本信息", + "contact_information":"联系信息", + "security_settings":"安全设置", "account_settings": "个人设置", "my_account": "我的账户", "profile_information": "个人信息", diff --git a/frontent/ops_vue_js/src/my_network_func.js b/frontent/ops_vue_js/src/my_network_func.js index 6d672e9..90b3edf 100644 --- a/frontent/ops_vue_js/src/my_network_func.js +++ b/frontent/ops_vue_js/src/my_network_func.js @@ -21,6 +21,9 @@ export const my_network_func = { re_data["error"] = error; callback(re_data); }); + }, + postflise(path,flise,json,callback){ + }, postJson(path, json, callback) { //把cookie插入json diff --git a/frontent/ops_vue_js/src/router/index.js b/frontent/ops_vue_js/src/router/index.js index 39dd243..09c875a 100644 --- a/frontent/ops_vue_js/src/router/index.js +++ b/frontent/ops_vue_js/src/router/index.js @@ -13,6 +13,21 @@ const router = createRouter({ name: "home", component: HomeView, }, + { + path: "/settings/account", + name: "settings account", + component: () => import("../views/settings/account.vue"), + }, + { + path: "/settings/contact", + name: "settings contact", + component: () => import("../views/settings/contact.vue"), + }, + { + path: "/settings/security", + name: "settings security", + component: () => import("../views/settings/security.vue"), + }, { path: "/about", name: "about", @@ -46,11 +61,7 @@ const router = createRouter({ name: "admin", component: () => import("../views/adminView.vue"), }, - { - path: "/settings/account", - name: "settings account", - component: () => import("../views/settings/account.vue"), - }, + { path: "/schedule", name: "schedule", diff --git a/frontent/ops_vue_js/src/views/settings/account.vue b/frontent/ops_vue_js/src/views/settings/account.vue index e51beee..663af60 100644 --- a/frontent/ops_vue_js/src/views/settings/account.vue +++ b/frontent/ops_vue_js/src/views/settings/account.vue @@ -7,7 +7,7 @@ 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(); @@ -19,24 +19,13 @@ 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); - -const is_avatar_change=ref(false); -const avatar_temp_url=ref(""); - -function togglePasswordVisibility() { - isShowPassword.value = !isShowPassword.value; -} +const is_avatar_change = ref(false); +const avatar_temp_url = ref(""); function updataInfo() { + let isDataErr = false; let birthdayValue = birthday.value.datepicker.value; @@ -66,10 +55,13 @@ function updataInfo() { //console.log("用户信息有误,无法保存"); return; } - // console.log("保存用户信息"); - // console.log("用户名:", usernameValue); - // console.log("备注:", userremarkValue); - // console.log("生日:", birthdayValue); + + //检查头像是否需要更新 + if(is_avatar_change) + { + + } + my_network_func.postJson( "/users/updateInfo", { @@ -100,158 +92,19 @@ 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 rev_avatar_url(url){ - is_avatar_change.value=true - avatar_temp_url.value=url +function rev_avatar_url(url) { + is_avatar_change.value = true; + avatar_temp_url.value = url; //console.log(url) } +function cancel_change_avatar(){ +is_avatar_change.value=false + +} + function functionupdataTitle() { - document.title = "Operations." + t("settings.account_settings"); + document.title = "Operations." + t("settings.basic_information"); } // 监听语言变化,更新标题 @@ -274,7 +127,7 @@ onMounted(() => {
@@ -285,24 +138,29 @@ onMounted(() => {
-

{{ t("settings.my_account") }}

-

+ +
-
+
- + +

-

@@ -342,96 +200,6 @@ onMounted(() => {

-

{{ t("settings.email") }}

-
-
-
- -
-
- -
-
-
-

- {{ t("settings.password") }} - - - - - - - - - - - - -

- - - - - - -
- -
diff --git a/frontent/ops_vue_js/src/views/settings/contact.vue b/frontent/ops_vue_js/src/views/settings/contact.vue new file mode 100644 index 0000000..12aa374 --- /dev/null +++ b/frontent/ops_vue_js/src/views/settings/contact.vue @@ -0,0 +1,135 @@ + + + diff --git a/frontent/ops_vue_js/src/views/settings/security.vue b/frontent/ops_vue_js/src/views/settings/security.vue new file mode 100644 index 0000000..287c3cf --- /dev/null +++ b/frontent/ops_vue_js/src/views/settings/security.vue @@ -0,0 +1,230 @@ + + +