From 8e91c0ac17e5e317870a4553283a9a11aa10be61 Mon Sep 17 00:00:00 2001
From: Wang Tianci <109196852+Tianci-King@users.noreply.github.com>
Date: Sun, 11 Aug 2024 14:31:39 +0800
Subject: [PATCH] =?UTF-8?q?Merge(SuitApply):=E5=90=88=E5=B9=B6=E6=AD=A3?=
=?UTF-8?q?=E8=A3=85=E5=80=9F=E7=94=A8=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=83=A8?=
=?UTF-8?q?=E5=88=86=20bug=20(#96)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* perf(login):增加登录密码正则
* fix(suitApply):禁用了朝晖校区线上办理正装借用到功能
* perf(lessonstable):优化课表可以提前查看下学年的课程安排
---
src/app.config.ts | 2 +
src/components/TermPicker/index.vue | 2 +-
src/constants/copywriting.ts | 15 +-
src/constants/updateInfo.ts | 10 +-
src/pages/bind/Library/index.vue | 8 ++
src/pages/bind/Oauth/index.vue | 8 ++
src/pages/bind/ZF/index.vue | 10 +-
src/pages/bind/index.vue | 1 +
.../setting/changePassword/index.config.ts | 5 +
src/pages/setting/changePassword/index.scss | 16 +++
src/pages/setting/changePassword/index.vue | 131 ++++++++++++++++++
src/pages/setting/index.scss | 1 +
src/pages/setting/index.vue | 24 +++-
src/pages/setting/logout/index.config.ts | 5 +
src/pages/setting/logout/index.scss | 16 +++
src/pages/setting/logout/index.vue | 119 ++++++++++++++++
src/pages/suit/apply/index.module.scss | 21 +++
src/pages/suit/apply/index.vue | 12 +-
src/pages/suit/faq/index.module.scss | 2 +-
src/services/api/apiList.ts | 4 +-
src/services/services/userService.ts | 31 ++++-
21 files changed, 425 insertions(+), 18 deletions(-)
create mode 100644 src/pages/setting/changePassword/index.config.ts
create mode 100644 src/pages/setting/changePassword/index.scss
create mode 100644 src/pages/setting/changePassword/index.vue
create mode 100644 src/pages/setting/logout/index.config.ts
create mode 100644 src/pages/setting/logout/index.scss
create mode 100644 src/pages/setting/logout/index.vue
diff --git a/src/app.config.ts b/src/app.config.ts
index 15862523..29388c2b 100644
--- a/src/app.config.ts
+++ b/src/app.config.ts
@@ -12,6 +12,8 @@ export default {
"pages/exam/index",
"pages/score/index",
"pages/setting/index",
+ "pages/setting/logout/index",
+ "pages/setting/changePassword/index",
"pages/connect/index",
"pages/connect/faq/index",
"pages/lab/index",
diff --git a/src/components/TermPicker/index.vue b/src/components/TermPicker/index.vue
index 98eac168..9cacc24e 100644
--- a/src/components/TermPicker/index.vue
+++ b/src/components/TermPicker/index.vue
@@ -50,7 +50,7 @@ if (props.selectflag >= 1)
let years: string[] = [];
-for (let i = 0; i < 4; i++) years.push(`${year - i}/${year - i + 1}`);
+for (let i = -1; i < 4; i++) years.push(`${year - i}/${year - i + 1}`);
selector.unshift(years);
/** Picker 依赖, 索引数组 */
diff --git a/src/constants/copywriting.ts b/src/constants/copywriting.ts
index 71e24010..78a8c105 100644
--- a/src/constants/copywriting.ts
+++ b/src/constants/copywriting.ts
@@ -10,7 +10,7 @@ export const labText = {
empty: "当前没有实验功能,尽情期待!😚"
};
export const settingText = {
- empty: "当前没有可设置功能,尽情期待!😚"
+ empty: "更多设置功能,尽情期待!😚"
};
export const faqText = {
qa: [
@@ -58,8 +58,8 @@ export const helpText = {
scoreCard:
"若信息长时间无法更新或总是刷新失败,可能是因为更改过正方教务系统的密码,请前往我的-绑定-重新绑定正方账号。\n 成绩查询中的信息全部来自正方教务系统,数据录入可能会有延迟,请耐心等待。\n 如有疑问请联系教务处,本程序仅作信息展示。",
bind: {
- zf: "1.正方教务系统是什么?\n正方教务系统是你的选课系统哦~\n那么密码就是你的选课密码~\n\n2.忘记密码?\n请找自己的辅导员重置密码。",
- oauth: "1.统一验证系统是什么?\n统一验证系统是你的选课系统哦~\n那么密码就是你的统一验证密码~\n\n2.忘记密码?\n请找自己的辅导员重置密码。 \n\n 23级及以后的同学改用统一验证系统登录",
+ zf: "1.正方教务系统是什么?\n正方教务系统是你的选课系统哦~\n那么密码就是你的选课密码~\n\n2.忘记密码?\n请联系学院教务老师重置密码。",
+ oauth: "1.统一验证系统是什么?\n统一验证系统是你的选课系统哦~\n那么密码就是你的统一验证密码~\n\n2.忘记密码?\n请联系学院教务老师重置密码。 \n\n 23级及以后的同学改用统一验证系统登录",
library:
"新生图书馆绑定异常——新生需要在接受图书馆培训并通过入馆考试后,才能正常绑定图书馆账号",
yxy: "丨绑定此项以使用校园卡查询等功能\n丨请确保已下载过易校园 APP 且将手机号与学号、宿舍绑定\n丨若图形验证码加载失败,请过一段时间再来绑定"
@@ -78,6 +78,11 @@ export const helpText = {
main: "“正装借用”是由学生事务大厅与精弘网络合作共同开发的一项学生服务功能,您的参与是对我们工作的最大支持,让我们携手共同营造温暖、团结的校园氛围。",
help: "感谢您使用由学生事务大厅与精弘网络合作共同开发的“正装借用”,使用时如有疑问请点击您所在的校区,查看详情中“学生事务大厅”的联系方式咨询工作人员。",
information: "感谢您使用由学生事务大厅与精弘网络合作共同开发的“正装借用”,请在使用前正确填写您的真实个人信息,以便后续工作的开展。",
- warn: "请您再次确认是否提交申请!另外,申请完成后,如果您所申请的正装的尺码目前标注“余量不足”,请您尽早前往学生事务大厅领取。\n “余量不足”的正装可能会被线下借用的同学优先借完,从而导致在“微精弘线上借用”已经申请过的同学无正装可借,微精弘对此概不负责!"
- }
+ warn: "请您再次确认是否提交申请!提交申请后正装请到学生事务大厅领取,领取后将变为申请中状态(建议线下确认尺码后当场提交申请)\n “余量不足”的正装可能会被线下借用的同学优先借完,从而导致在“微精弘线上借用”已经申请过的同学无正装可借,微精弘对此概不负责!"
+ },
+ logout: {
+ main: "| 您的微精弘账号一旦被注销成功将无法再找回您添加、绑定的任何本账号内容或信息! 若您在注销后仍需要使用微精弘,请重新打开小程序按照“激活”的步骤创建微精弘账号,感谢您的配合!",
+ check: "注销操作将清除您的在微精弘激活的所有个人信息以及绑定数据,请您确认是否要注销账号?",
+ },
+ changePassword: "请确定您已经记住了新密码,以免忘记密码后无法再次登录,是否确认修改?",
};
diff --git a/src/constants/updateInfo.ts b/src/constants/updateInfo.ts
index eb5beef8..dbe10fa3 100644
--- a/src/constants/updateInfo.ts
+++ b/src/constants/updateInfo.ts
@@ -17,13 +17,13 @@ type UpdateInfoType = {
}
export const updateInfo: UpdateInfoType = {
- version: "2.5.6",
+ version: "2.6.1",
title: "微精弘更新公告",
- content: `微精弘小程序2.5.6更新 [失物招领] ,注册绑定一卡通以体验!
+ content: `微精弘小程序2.6.1更新 [正装借用] !
> 更新内容
- 1. 实验室上线切换主题色功能
- 2. 微精弘 x “For You”工程 联合上线失物招领
- 3. 校园资讯功能优化
+ 1. 微精弘 x “学生事务大厅” 联合上线正装借用功能
+ 2. 设置页面新增修改密码与注销功能
+ 3. 优化绑定页面的交互体验
4. 修复了一些已知的bug
`,
actions: {
diff --git a/src/pages/bind/Library/index.vue b/src/pages/bind/Library/index.vue
index 0a2139db..ad6f3228 100644
--- a/src/pages/bind/Library/index.vue
+++ b/src/pages/bind/Library/index.vue
@@ -10,6 +10,14 @@ const helpContent = helpText.bind.library;
const isShowHelp = ref(false);
async function bindLibClick() {
+ const regex = /^[a-zA-Z0-9!@#$%^&*()_+-=,.<>?;:'"{}\[\]\\|`~]*$/;
+ if (!regex.test(libpass.value)) {
+ Taro.showToast({
+ title: "输入存在中文字符或其他非法字符,请重新输入!",
+ icon: "none"
+ });
+ return;
+ }
Taro.showLoading({
title: "正在绑定",
mask: true
diff --git a/src/pages/bind/Oauth/index.vue b/src/pages/bind/Oauth/index.vue
index 1668d78a..73ac5913 100644
--- a/src/pages/bind/Oauth/index.vue
+++ b/src/pages/bind/Oauth/index.vue
@@ -12,6 +12,14 @@ const helpContent = helpText.bind.oauth;
const isShowHelp = ref(false);
async function bindOauthClick() {
+ const regex = /^[a-zA-Z0-9!@#$%^&*()_+-=,.<>?;:'"{}\[\]\\|`~]*$/;
+ if (!regex.test(oauthpass.value)) {
+ Taro.showToast({
+ title: "输入存在中文字符或其他非法字符,请重新输入!",
+ icon: "none"
+ });
+ return;
+ }
Taro.showLoading({
title: "正在绑定",
mask: true
diff --git a/src/pages/bind/ZF/index.vue b/src/pages/bind/ZF/index.vue
index 08ca6617..c364df24 100644
--- a/src/pages/bind/ZF/index.vue
+++ b/src/pages/bind/ZF/index.vue
@@ -8,10 +8,18 @@ import { ref, computed } from "vue";
const zfpass = ref("");
const user = computed(() => serviceStore.user);
-const helpContent = helpText.suit;
+const helpContent = helpText.bind.zf;
const isShowHelp = ref(false);
async function bindZFClick() {
+ const regex = /^[a-zA-Z0-9!@#$%^&*()_+-=,.<>?;:'"{}\[\]\\|`~]*$/;
+ if (!regex.test(zfpass.value)) {
+ Taro.showToast({
+ title: "输入存在中文字符或其他非法字符,请重新输入!",
+ icon: "none"
+ });
+ return;
+ }
Taro.showLoading({
title: "正在绑定",
mask: true
diff --git a/src/pages/bind/index.vue b/src/pages/bind/index.vue
index a03ba9ca..4d787076 100644
--- a/src/pages/bind/index.vue
+++ b/src/pages/bind/index.vue
@@ -29,6 +29,7 @@
+ 输入密码时请注意特殊字符的中英文编码
diff --git a/src/pages/setting/changePassword/index.config.ts b/src/pages/setting/changePassword/index.config.ts
new file mode 100644
index 00000000..5117bc23
--- /dev/null
+++ b/src/pages/setting/changePassword/index.config.ts
@@ -0,0 +1,5 @@
+export default {
+ navigationBarTitleText: "修改密码",
+ backgroundColor: "#dfdfdf",
+ disableScroll: true
+};
diff --git a/src/pages/setting/changePassword/index.scss b/src/pages/setting/changePassword/index.scss
new file mode 100644
index 00000000..ccf364f4
--- /dev/null
+++ b/src/pages/setting/changePassword/index.scss
@@ -0,0 +1,16 @@
+@import "@/style/theme";
+
+.warn {
+ font-size: 0.875rem;
+ color: var(--wjh-color-week);
+}
+
+.input-card {
+
+ input {
+ border: 2Px solid var(--wjh-color-light);
+ padding: 0.3rem 0.5rem;
+ margin: 0.5rem 0;
+ border-radius: 0.2rem;
+ }
+}
diff --git a/src/pages/setting/changePassword/index.vue b/src/pages/setting/changePassword/index.vue
new file mode 100644
index 00000000..55bade04
--- /dev/null
+++ b/src/pages/setting/changePassword/index.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+ 身份证号码
+
+
+
+ 学号
+
+
+
+ 新密码
+
+
+
+ 确认新密码
+
+
+
+
+ 确认修改
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/setting/index.scss b/src/pages/setting/index.scss
index cfce94d2..9fc489b8 100644
--- a/src/pages/setting/index.scss
+++ b/src/pages/setting/index.scss
@@ -4,6 +4,7 @@
.empty {
padding: 1rem;
+ text-align: center;
}
.footer-text {
diff --git a/src/pages/setting/index.vue b/src/pages/setting/index.vue
index 7ed93a7e..1fa327d3 100644
--- a/src/pages/setting/index.vue
+++ b/src/pages/setting/index.vue
@@ -9,6 +9,20 @@
class="flex-column"
:style="isEmpty ? 'justify-content: space-between' : undefined"
>
+
+
+
+ 修改密码
+
+
+
+
+
+
+ 注销
+
+
+
diff --git a/src/pages/setting/logout/index.config.ts b/src/pages/setting/logout/index.config.ts
new file mode 100644
index 00000000..46c83021
--- /dev/null
+++ b/src/pages/setting/logout/index.config.ts
@@ -0,0 +1,5 @@
+export default {
+ navigationBarTitleText: "注销",
+ backgroundColor: "#dfdfdf",
+ disableScroll: true
+};
diff --git a/src/pages/setting/logout/index.scss b/src/pages/setting/logout/index.scss
new file mode 100644
index 00000000..ccf364f4
--- /dev/null
+++ b/src/pages/setting/logout/index.scss
@@ -0,0 +1,16 @@
+@import "@/style/theme";
+
+.warn {
+ font-size: 0.875rem;
+ color: var(--wjh-color-week);
+}
+
+.input-card {
+
+ input {
+ border: 2Px solid var(--wjh-color-light);
+ padding: 0.3rem 0.5rem;
+ margin: 0.5rem 0;
+ border-radius: 0.2rem;
+ }
+}
diff --git a/src/pages/setting/logout/index.vue b/src/pages/setting/logout/index.vue
new file mode 100644
index 00000000..ee4efba4
--- /dev/null
+++ b/src/pages/setting/logout/index.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ 身份证号码
+
+
+
+ 学号
+
+
+
+
+ 确认注销
+
+
+
+ {{helpText.logout.main}}
+
+
+
+
+
+
+
+
diff --git a/src/pages/suit/apply/index.module.scss b/src/pages/suit/apply/index.module.scss
index 8b4e53f9..e380bcf6 100644
--- a/src/pages/suit/apply/index.module.scss
+++ b/src/pages/suit/apply/index.module.scss
@@ -181,3 +181,24 @@
.card-alarm {
margin: 0 30Px;
}
+
+.card-alarmZhaoHui {
+ margin: 0 20Px;
+}
+
+.title {
+ word-break: break-word;
+ font-weight: var(--wjh-font-weight-medium);
+ text-align: left;
+ margin-bottom: 12px;
+}
+
+.footer {
+ margin-top: 12Px;
+ border-top: 1Px solid var(--wjh-color-border);
+ padding: 12Px 0;
+ color: var(--wjh-color-week);
+ text-align: center;
+ font-size: .8rem;
+ font-weight: normal;
+}
diff --git a/src/pages/suit/apply/index.vue b/src/pages/suit/apply/index.vue
index d76f32e4..cb92d741 100644
--- a/src/pages/suit/apply/index.vue
+++ b/src/pages/suit/apply/index.vue
@@ -27,7 +27,7 @@
{{ suit.name }}
-
+
尺码
@@ -41,7 +41,7 @@
剩余数量
{{ suitStock === -1 ? "-" : suitStock }}
- 余量不足
+ 余量不足
数量
@@ -68,6 +68,13 @@
}"
>
+
+ 朝晖校区线上办理暂不可用
+ 线下办理借用请前往学生事务大厅
+
+ 地址:综合楼一楼河畔旁 | 联系电话:88320868
+
+
该校区不存在可借用正装
@@ -86,6 +93,7 @@ import {
ThemeConfig,
WModal
} from "@/components";
+import style from "../faq/index.module.scss";
type SpecItem = {
id: number,
diff --git a/src/pages/suit/faq/index.module.scss b/src/pages/suit/faq/index.module.scss
index 6a189914..d9f6ffcf 100644
--- a/src/pages/suit/faq/index.module.scss
+++ b/src/pages/suit/faq/index.module.scss
@@ -17,7 +17,7 @@
font-weight: var(--wjh-font-weight-medium);
justify-content: center;
text-align: center;
- padding: 12Px 0;
+ padding-bottom: 12Px;
border-bottom: 1Px solid var(--wjh-color-border);
}
diff --git a/src/services/api/apiList.ts b/src/services/api/apiList.ts
index 29021c13..1d4b2e40 100644
--- a/src/services/api/apiList.ts
+++ b/src/services/api/apiList.ts
@@ -18,7 +18,9 @@ const api = {
sendGraphAuthCode: "/api/user/bind/yxy/send/captcha",
login: "/api/user/bind/yxy/login",
}
- }
+ },
+ logout: "/api/user/del",
+ changePassword: "/api/user/repass",
},
card: {
balance: "/api/func/card/balance",
diff --git a/src/services/services/userService.ts b/src/services/services/userService.ts
index d530daad..94928687 100644
--- a/src/services/services/userService.ts
+++ b/src/services/services/userService.ts
@@ -1,12 +1,41 @@
import Taro from "@tarojs/taro";
-import store from "@/store";
+import store, {serviceStore} from "@/store";
import { fetch, FetchResult } from "@/utils";
import { api } from "../api/apiList";
import { updateDateStateWithSession } from "../utils/updateDateState";
import errCodeHandler from "../utils/errHandler";
import { ServerCode } from "../api/codes";
+import request from "../request";
export default class UserService {
+ static logout = (data?: { iid: string, stuid: string }) => {
+ return request<{
+ code: number,
+ msg: string,
+ data: null;
+ }>(
+ api.user.logout, {
+ method: "POST",
+ header: { "Cookie": serviceStore.sessionID },
+ data
+ }
+ );
+ };
+
+ static changePassword = (data?: { iid: string, stuid: string, password: string }) => {
+ return request<{
+ code: number,
+ msg: string,
+ data: null;
+ }>(
+ api.user.changePassword, {
+ method: "POST",
+ header: { "Cookie": serviceStore.sessionID },
+ data
+ }
+ );
+ };
+
// fix: param autoLogin is overriden by showModal
static async bindLibrary(data?: { password: string }, showModal = true) {
return updateDateStateWithSession(