feat: 增强用户登录体验与组件逻辑优化

- 在多个组件中添加用户登录状态检查,确保用户在进行特定操作前已登录。
- 更新购物车、消息中心等组件的点击事件,未登录时提示用户登录。
- 优化优惠券领取逻辑,未登录时引导用户登录。
- 调整样式以提升组件一致性,确保用户界面友好。
This commit is contained in:
田香琪
2026-07-10 13:31:14 +08:00
parent c355194aba
commit d648855533
23 changed files with 302 additions and 760 deletions

View File

@@ -176,6 +176,13 @@ export const addMemberGroupUsers = (groupId, memberIds) => {
});
};
export const setMemberUserGroups = (memberId, groupIds) => {
const ids = Array.isArray(groupIds) ? groupIds : groupIds ? [groupIds] : [];
return postRequest(`/member/memberGroup/user/${memberId}/groups`, {
groupIds: ids.join(","),
});
};
// 客户等级
export const getMemberGradeByPage = (params) => {
return getRequest("/member/memberGrade/getByPage");

View File

@@ -174,7 +174,7 @@ export default {
}
.active {
color: $theme_color;
color: var(--el-color-primary);
position: relative;
}
@@ -185,6 +185,6 @@ export default {
left: 0;
width: 100%;
height: 3px;
background: $theme_color;
background: var(--el-color-primary);
}
</style>

View File

@@ -95,3 +95,13 @@
color: #c0c4cc;
cursor: not-allowed;
}
/* 顶部路由加载条(与商家后台一致) */
#nprogress .bar {
height: 2x;
background: var(--el-color-primary, #409eff);
}
#nprogress .peg {
box-shadow: 0 0 4px var(--el-color-primary, #409eff), 0 0 2px var(--el-color-primary, #409eff);
}

View File

@@ -468,18 +468,28 @@ export default {
this.$refs.memberGroupForm.validate((valid) => {
if (!valid) return;
const memberIds = this.selectedRows.map((item) => item.id);
const groupId = this.memberGroupForm.groupId;
this.memberGroupLoading = true;
API_Member.addMemberGroupUsers(this.memberGroupForm.groupId, memberIds).then((res) => {
this.memberGroupLoading = false;
if (res && res.success) {
Promise.all(
memberIds.map((memberId) => API_Member.setMemberUserGroups(memberId, [groupId]))
)
.then((results) => {
this.memberGroupLoading = false;
const failed = results.find((res) => !res || !res.success);
if (failed) {
ElMessage.error(failed.message || "设置失败");
return;
}
ElMessage.success("设置成功");
this.memberGroupFlag = false;
this.selectedRows = [];
this.clearSelection();
} else if (res && res.message) {
ElMessage.error(res.message);
}
});
this.getData();
})
.catch(() => {
this.memberGroupLoading = false;
ElMessage.error("设置失败,请稍后重试");
});
});
},
callback(val) {

View File

@@ -90,7 +90,7 @@ export default {
this.hotWordsChart.tooltip({
showMarkers: false,
});
this.hotWordsChart.interval().position("keywords*score").color("#f59b99");
this.hotWordsChart.interval().position("keywords*score").color("#409EFF");
this.hotWordsChart.interaction("element-active");
this.hotWordsChart.render();