From 23661612598ede735376602bf78522545a9a0e5b Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Tue, 6 May 2025 15:01:24 +0800 Subject: [PATCH 1/6] commit --- .../controller/ClientActivityController.java | 1 + .../controller/ClientItemController.java | 14 + .../activity/service/ClientItemService.java | 3 + .../service/impl/ClientItemServiceImpl.java | 7 + .../activity/vo/ClientActivitySignVO.java | 1 + .../platform/activity/manage/itemForm.js | 14 +- .../src/pages/activity/team-form/index.vue | 251 ++++++++++++++---- frontend/src/pages/activity/team/index.vue | 85 +++++- frontend/src/utils/config.js | 3 + 9 files changed, 312 insertions(+), 67 deletions(-) create mode 100644 frontend/src/utils/config.js diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java index 46a63ca..13d4df1 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java @@ -81,6 +81,7 @@ public class ClientActivityController { return Result.success(); } + /** * 查询报名人员 * 报名人不见得参加活动 diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java index 112b4b4..80d6ca5 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientItemController.java @@ -117,4 +117,18 @@ public class ClientItemController { } + /** + * 取消项目报名 + * @param signVO + * @return + */ + @At("/cancel-team-sign-up") + @AdaptBy(type = JsonAdaptor.class) + @SaCheckLogin(type = StpClientUtil.TYPE) + public synchronized Result cancelTeamSignUp(ClientActivitySignVO signVO) { + clientItemService.cancelTeamSignUp(signVO); + return Result.success(); + } + + } diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/service/ClientItemService.java b/backend/src/main/java/com/budwk/app/client/module/activity/service/ClientItemService.java index 4747296..1c20e27 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/service/ClientItemService.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/service/ClientItemService.java @@ -1,9 +1,12 @@ package com.budwk.app.client.module.activity.service; import com.budwk.app.base.service.BaseService; +import com.budwk.app.client.module.activity.vo.ClientActivitySignVO; import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO; import com.budwk.app.module.activity.models.ActivityItemUser; public interface ClientItemService extends BaseService { void signUp(ClientItemSignUpVO signVO); + + void cancelTeamSignUp(ClientActivitySignVO signVO); } diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java index 7e19ac4..e9703a3 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientItemServiceImpl.java @@ -2,6 +2,7 @@ package com.budwk.app.client.module.activity.service.impl; import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.client.module.activity.service.ClientItemService; +import com.budwk.app.client.module.activity.vo.ClientActivitySignVO; import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO; import com.budwk.app.module.activity.models.ActGroupUser; import com.budwk.app.module.activity.models.Activity; @@ -59,4 +60,10 @@ public class ClientItemServiceImpl extends BaseServiceImpl imp } insert(userList); } + + @Override + public void cancelTeamSignUp(ClientActivitySignVO signVO) { + clear(Cnd.where(ActivityItemUser::getActivityId, "=", signVO.getActivityId()) + .and(ActivityItemUser::getItemId, "=", signVO.getItemId())); + } } diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/vo/ClientActivitySignVO.java b/backend/src/main/java/com/budwk/app/client/module/activity/vo/ClientActivitySignVO.java index fc7c3ed..5846284 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/vo/ClientActivitySignVO.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/vo/ClientActivitySignVO.java @@ -12,6 +12,7 @@ import java.util.List; public class ClientActivitySignVO { private Long activityId; + private Long itemId; private String unitName; diff --git a/backend/src/main/resources/views/platform/activity/manage/itemForm.js b/backend/src/main/resources/views/platform/activity/manage/itemForm.js index a1d26a2..6ae184b 100644 --- a/backend/src/main/resources/views/platform/activity/manage/itemForm.js +++ b/backend/src/main/resources/views/platform/activity/manage/itemForm.js @@ -31,15 +31,15 @@ const itemForm = { + + + - + + + + 项目介绍 + + + + + {{ team.name }} + + + + + + + + + + + 活动形式 + + {{ team.form }} + + + + + + 评分规则 + + {{ team.rule }} + + + + + + + + @@ -60,7 +101,7 @@ 此项目是团队协作需要全体成员参与 - 此项目需【{{itemOptions.find(p => p.id === selectedItemId)?.num}}】名成员参与 + 此项目需【{{ itemOptions.find(p => p.id === selectedItemId)?.num }}】名成员参与 @@ -81,10 +122,22 @@ - - - 确认报名 ({{ selectedMemberIds.length }}人) - + + + + + 取消报名 + + + + + 确认报名 ({{ selectedMemberIds.length }}人) + + + + + @@ -97,6 +150,7 @@ import {useRequest} from '@/utils/request'; import {Dialog, Toast} from 'tdesign-mobile-vue'; import {onLoad} from '@dcloudio/uni-app'; import {useUserStore} from "@/store"; +import {config} from "@/utils/config"; const request = useRequest(); const userStore = useUserStore(); @@ -106,23 +160,7 @@ const actOptions = ref([]) // 选中的活动ID const selectActId = ref(null); // 项目列表数据 -const itemOptions = ref([ - { - id: 1, - name: '篮球比赛', - description: '3v3篮球友谊赛' - }, - { - id: 2, - name: '足球比赛', - description: '5人制足球赛' - }, - { - id: 3, - name: '羽毛球比赛', - description: '双打友谊赛' - } -]); +const itemOptions = ref([]); // 选中的项目ID const selectedItemId = ref(null); // 团队成员列表 @@ -147,6 +185,14 @@ const selectedMemberIds = ref([]); // 成员选择弹窗显示状态 const showMemberPicker = ref(false); +// 描述选择弹窗显示状态 +const showDescPicker = ref(false); + +const openDesc = (project) => { + team.value = project + showDescPicker.value = true +} + // 获取活动列表 async function listActs() { @@ -192,7 +238,7 @@ async function listTeamUser() { const {code, data, msg} = await request.get('/client/item/list-team-user/' + selectActId.value) if (code === 0) { teamMembers.value = data; - isSelfLeader.value = data.find(t => t.userId===userStore?.userInfo.id)?.isLeader + isSelfLeader.value = data.find(t => t.userId === userStore?.userInfo.id)?.isLeader } else { Toast.error(msg) } @@ -222,10 +268,10 @@ const team = ref({}) // 选择项目 const selectProject = (project) => { selectedItemId.value = project.id; - team.value=project - if (project.isTeamApply){ + team.value = project + if (project.isTeamApply) { selectedMemberIds.value = teamMembers.value.map(v => v.userId) - }else{ + } else { selectedMemberIds.value = selectedMemberList.value.filter(v => v.itemId === project.id).map(v => v.userId) } showMemberPicker.value = true; @@ -245,7 +291,23 @@ const getApplyUsers = async () => { Toast.error(e.message) } } - +// 取消报名 +const cancelRegistration = async () => { + try { + let data = {} + data.activityId = selectActId.value + data.itemId = selectedItemId.value + const {code, msg} = await useRequest().post('/client/item/cancel-team-sign-up/' ,{...data}) + if (code === 0) { + Toast.success('取消报名成功') + showMemberPicker.value = false; + await getApplyUsers(); + fetchRegistrationStatus(); + } + } catch (e) { + console.log(e) + } +}; // 提交报名 - 使用静态数据模拟 const submitRegistration = async () => { @@ -312,6 +374,71 @@ const submitRegistration = async () => { margin-bottom: 24px; } +.event-item-header { + display: flex; + align-items: center; + padding: 20rpx 24rpx; + background-color: #f9f9f9; + border-left: 8rpx solid var(--td-brand-color-5); + position: relative; +} + +.event-item-name { + color: #333333; + font-size: 30rpx; + font-weight: 500; + flex: 1; + margin-right: 8rpx; + position: relative; + z-index: 1; +} + +.event-item-content { + padding: 0; +} + +.event-item-image { + height: 300rpx; + display: block; +} + +.event-item-info { + padding: 24rpx; +} + +.event-item-section { + margin-bottom: 24rpx; + + &:last-child { + margin-bottom: 0; + } +} + +.event-item-section-title { + display: flex; + align-items: center; + margin-bottom: 12rpx; + + .t-icon { + margin-right: 8rpx; + } + + text { + font-size: 28rpx; + font-weight: 500; + color: #333333; + } +} + +.event-item-section-content { + font-size: 28rpx; + color: #666666; + line-height: 1.5; + word-break: break-all; + padding-left: 32rpx; +} + + .project-card { background-color: #fff; border-radius: 12px; @@ -323,6 +450,22 @@ const submitRegistration = async () => { position: relative; overflow: hidden; + .project-card__image { + height: 150px !important; + } + + .project-card__title { + font-size: 15px !important; + margin: 10px; + } + + .project-card__button { + margin-left: 10px; + background-color: #0052D9; + color: #ffffff; + } + + &:active { transform: scale(0.98); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); diff --git a/frontend/src/pages/activity/team/index.vue b/frontend/src/pages/activity/team/index.vue index 745b0f7..b63f1b3 100644 --- a/frontend/src/pages/activity/team/index.vue +++ b/frontend/src/pages/activity/team/index.vue @@ -59,7 +59,7 @@
{{ team.groupUsers.length }}
-
+
{{ member.userName }} 队长 @@ -144,6 +144,15 @@
+ + + + + 成员信息 + + + + + diff --git a/frontend/src/pages.json b/frontend/src/pages.json index 4e46ffa..1ecb860 100644 --- a/frontend/src/pages.json +++ b/frontend/src/pages.json @@ -84,6 +84,12 @@ "style": { "navigationBarTitleText": "精彩瞬间" } + }, + { + "path": "pages/activity/wonderfulMoment/index", + "style": { + "navigationBarTitleText": "精彩瞬间" + } } ], "globalStyle": { diff --git a/frontend/src/pages/activity/wonderfulMoment/index.vue b/frontend/src/pages/activity/wonderfulMoment/index.vue new file mode 100644 index 0000000..95c52e9 --- /dev/null +++ b/frontend/src/pages/activity/wonderfulMoment/index.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/frontend/src/pages/index/index.vue b/frontend/src/pages/index/index.vue index ac33db2..a253a6a 100644 --- a/frontend/src/pages/index/index.vue +++ b/frontend/src/pages/index/index.vue @@ -32,41 +32,81 @@ 项目报名 - - - - - 精彩瞬间 - + + + + + + - 精选活动 - 更多 + 近期活动 + 更多 + + + + + + + + + {{ item.title }} + + {{ moment(item.startTime).format('M月DD日') + '-' + moment(item.endTime).format('DD日') }} + {{ item.address }} + + + + + + + + + + + + 精彩瞬间 - - + - - 一分钟了解运动会流程 - - 6月15日-20日 - 江苏省体育中心 + + {{ item.title }} + + {{ item.time }} + 阅读 {{ item.readCount }} + + From 91002349239c95f642db964a14f9afdf316bf94e Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Tue, 6 May 2025 17:47:09 +0800 Subject: [PATCH 5/6] commit --- frontend/src/pages/index/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/index/index.vue b/frontend/src/pages/index/index.vue index e22ab8d..ed5addf 100644 --- a/frontend/src/pages/index/index.vue +++ b/frontend/src/pages/index/index.vue @@ -80,7 +80,7 @@ {{ item.title }} From 3a2e992774f2fc23e33039bdf2ee6a0dfa8b4366 Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Tue, 6 May 2025 17:54:09 +0800 Subject: [PATCH 6/6] commit --- .../activity/wonderfulMoment/index.html | 19 +++++++++++++++++++ frontend/src/pages/index/index.vue | 11 ++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/backend/src/main/resources/views/platform/activity/wonderfulMoment/index.html b/backend/src/main/resources/views/platform/activity/wonderfulMoment/index.html index ad86197..75e09bc 100644 --- a/backend/src/main/resources/views/platform/activity/wonderfulMoment/index.html +++ b/backend/src/main/resources/views/platform/activity/wonderfulMoment/index.html @@ -93,6 +93,25 @@ layout("/layouts/platform_1.html"){ } }, methods: { + onTableRowDelete(id) { + if (!id) { + return + } + this.$confirm('确定删除该数据吗?', '提示', { + type: 'warning', + confirmButtonText: '确定', + cancelButtonText: '取消' + }).then(() => { + $.post(this.tableDeleteUrl, {id}).then((res) => { + if (res.code === 0) { + this.$message.success("删除成功") + this.pageData() + } else { + this.$message.error(res.msg) + } + }) + }).catch(() => {}) + }, publishedChange(val, row) { const params = JSON.parse(JSON.stringify(row)) this.$set(params, 'published', val) diff --git a/frontend/src/pages/index/index.vue b/frontend/src/pages/index/index.vue index ed5addf..41abb53 100644 --- a/frontend/src/pages/index/index.vue +++ b/frontend/src/pages/index/index.vue @@ -48,6 +48,7 @@ @@ -68,6 +69,10 @@ + @@ -76,7 +81,7 @@ 精彩瞬间 - + +