feat(event): 添加酒局编辑删除功能并优化状态管理
- 移除 UniAppWebSocket 类实现,使用独立的 websocket 模块 - 添加 UpdateEvent 和 DeleteEvent API 接口 - 在 EventCard 组件中添加发起人管理操作按钮 - 实现酒局状态数字枚举到字符串的映射转换 - 在 circle 页面集成编辑删除事件处理 - 重构 event-create 页面支持编辑模式 - 在 event-detail 页面添加发起人操作区域 - 实现删除确认对话框和页面返回刷新逻辑
This commit is contained in:
+27
-1
@@ -109,6 +109,9 @@
|
||||
v-for="evt in events"
|
||||
:key="evt.id"
|
||||
:event="evt"
|
||||
:can-manage="evt.isOrganizer === true"
|
||||
@edit="goEditEvent"
|
||||
@delete="confirmDeleteEvent"
|
||||
@item-click="goEventDetail"
|
||||
/>
|
||||
<EmptyState
|
||||
@@ -134,7 +137,7 @@ import FeedCard from '../../components/FeedCard.vue'
|
||||
import FriendItem from '../../components/FriendItem.vue'
|
||||
import EventCard from '../../components/EventCard.vue'
|
||||
import EmptyState from '../../components/EmptyState.vue'
|
||||
import { GetCircleFeeds, LikeFeed, UnlikeFeed, DeleteFeed, GetFriends, GetFriendRequests, GetEvents, GetUnreadCount } from '../../common/api'
|
||||
import { GetCircleFeeds, LikeFeed, UnlikeFeed, DeleteFeed, GetFriends, GetFriendRequests, GetEvents, DeleteEvent, GetUnreadCount } from '../../common/api'
|
||||
import wsManager from '../../common/websocket'
|
||||
import { getMyInviteCode } from '../../common/invite'
|
||||
import themeMixin from '../../common/theme-mixin'
|
||||
@@ -375,6 +378,29 @@ export default {
|
||||
goEventDetail(evt) {
|
||||
uni.navigateTo({ url: `/pages/event-detail/event-detail?id=${evt.id}` })
|
||||
},
|
||||
/** 编辑自己发起的酒局(复用发起页的编辑模式) */
|
||||
goEditEvent(evt) {
|
||||
uni.navigateTo({ url: `/pages/event-create/event-create?id=${evt.id}` })
|
||||
},
|
||||
/** 删除自己发起的酒局(二次确认) */
|
||||
confirmDeleteEvent(evt) {
|
||||
uni.showModal({
|
||||
title: '删除酒局',
|
||||
content: '确定要删除这场酒局吗?删除后不可恢复',
|
||||
confirmText: '删除',
|
||||
confirmColor: '#FF6B6B',
|
||||
success: async (res) => {
|
||||
if (!res.confirm) return
|
||||
try {
|
||||
await DeleteEvent({ eventId: evt.id })
|
||||
this.events = this.events.filter(e => String(e.id) !== String(evt.id))
|
||||
uni.showToast({ title: '已删除', icon: 'none' })
|
||||
} catch (e) {
|
||||
// httpRequest 已全局弹错误提示(如非本人酒局后端会拒绝)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
goCreateEvent() {
|
||||
uni.navigateTo({ url: '/pages/event-create/event-create' })
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user