diff --git a/src/apis/moment.ts b/src/apis/moment.ts index 7cbeb30..cf3dc4b 100644 --- a/src/apis/moment.ts +++ b/src/apis/moment.ts @@ -15,6 +15,12 @@ export const updateMomentApi = (id: number, moment: IMoment): Promise = data: moment }) +export const deleteMomentApi = (id: number): Promise => + cloudService({ + url: `/food-service/moment/${id}`, + method: 'delete' + }) + export const queryMomentApi = (): Promise => cloudService({ url: '/food-service/moment', diff --git a/src/assets/ios.png b/src/assets/ios.png new file mode 100644 index 0000000..d12ca88 Binary files /dev/null and b/src/assets/ios.png differ diff --git a/src/components/Food/FoodCard.vue b/src/components/Food/FoodCard.vue index 3f3cd8b..f7c3b9e 100644 --- a/src/components/Food/FoodCard.vue +++ b/src/components/Food/FoodCard.vue @@ -66,10 +66,8 @@ import type { PropType } from 'vue' import type { IRecipe, IRecord } from '@/types/food.ts' import { useRouter } from 'vue-router' import { formatDate } from 'vue3-common/utils/dateUtil' -import { deepCopyObject } from 'vue3-common/utils/dataUtil' import { commonElMessageBox } from 'vue3-common/utils/elUtil' import { serviceFileRootPath } from '@/utils' -import { ElMessage } from 'element-plus' const router = useRouter() const foodStore = useFoodStore() diff --git a/src/components/Moment/MomentCard.vue b/src/components/Moment/MomentCard.vue index 3ea1d3e..d08799b 100644 --- a/src/components/Moment/MomentCard.vue +++ b/src/components/Moment/MomentCard.vue @@ -6,13 +6,16 @@ {{ props.item.username }}

{{ props.item.content }}

- +
+ +

{{ formatTimeAgo(props.item.date) }}

- + @@ -66,12 +69,14 @@ import { Edit } from '@element-plus/icons-vue' import { defineProps, reactive } from 'vue' import type { PropType } from 'vue' import type { IMoment } from '@/types/food' -import { serviceFileRootPath } from '@/utils' +import { fileServiceUrl, serviceFileRootPath } from '@/utils' import { formatTimeAgo } from '@/utils/dateUtils' import { useFoodStore } from '@/store/food' +import { useUserStore } from '@/store/user' import { useRouter } from 'vue-router' const router = useRouter() +const userStore = useUserStore() const props = defineProps({ item: { @@ -127,6 +132,12 @@ const sendCommentClick = async () => { font-size: larger; } + .moment-image-list { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px; + } + .moment-comment { display: grid; grid-template-columns: 1fr 40px 60px; diff --git a/src/store/app.ts b/src/store/app.ts index c656b8e..e03ad84 100644 --- a/src/store/app.ts +++ b/src/store/app.ts @@ -14,7 +14,7 @@ export const useAppStore = defineStore('ipp', { isDark: false, isWebSocket: false, serverIp: '14.103.235.151', - version: 'v1.0.0.2025062401' + version: 'v1.0.0.2025062701' }), actions: { initApp() { diff --git a/src/store/food.ts b/src/store/food.ts index f8ef8f8..b16716e 100644 --- a/src/store/food.ts +++ b/src/store/food.ts @@ -21,7 +21,7 @@ import { import type { IDialog, IHandleApi, IStatsChart } from 'vue3-common/types' import { ElMessage } from 'element-plus' import { getCurrentMonth, getCurrentYear, getStartEndDate } from 'vue3-common/utils/dateUtil' -import { addCommentApi, addMomentApi, queryMomentApi, updateMomentApi } from '@/apis/moment' +import { addCommentApi, addMomentApi, deleteMomentApi, queryMomentApi, updateMomentApi } from '@/apis/moment' export const useFoodStore = defineStore('food', { state: () => ({ @@ -75,7 +75,8 @@ export const useFoodStore = defineStore('food', { recordApiType: 'ADD' as IHandleApi, editRecordIndex: 0, currentMoment: { - content: '' + content: '', + imageList: [] } as IMoment, momentApiType: 'ADD' as IHandleApi, imagePath: 'food-hub', @@ -179,7 +180,7 @@ export const useFoodStore = defineStore('food', { ElMessage.success('更新朋友圈成功') break case 'DELETE': - // await deleteRecordApi(record.id as number) + await deleteMomentApi(moment.id as number) ElMessage.success('删除朋友圈成功') break default: @@ -233,7 +234,8 @@ export const useFoodStore = defineStore('food', { }, getEmptyMoment(): IMoment { return { - content: '' + content: '', + imageList: [] } } } diff --git a/src/types/food.ts b/src/types/food.ts index 0755063..275c756 100644 --- a/src/types/food.ts +++ b/src/types/food.ts @@ -88,9 +88,11 @@ export interface IComment { export interface IMoment { id?: number; + userId?: number; username?: string; avatar?: string; content: string; + imageList: string[]; date?: string; commentList?: IComment[]; } diff --git a/src/views/moment/momentForm.vue b/src/views/moment/momentForm.vue index 0d7f9fb..727143f 100644 --- a/src/views/moment/momentForm.vue +++ b/src/views/moment/momentForm.vue @@ -8,11 +8,20 @@ :maxlength="100" show-word-limit placeholder="请输入内容"/> + + + +
确认 - 删除 + 删除 取消
@@ -47,9 +56,9 @@ const cancelClick = () => { } const deleteClick = () => { - commonElMessageBox('是否确认删除该朋友圈?').then(() => { + commonElMessageBox('是否确认删除该朋友圈?').then(async () => { foodStore.momentApiType = 'DELETE' - foodStore.handleMomentApi(foodStore.currentMoment) + await foodStore.handleMomentApi(foodStore.currentMoment) history.back() }) } diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue index 5240f2d..996ebd1 100644 --- a/src/views/profile/index.vue +++ b/src/views/profile/index.vue @@ -5,6 +5,14 @@ 版本号: {{ appStore.version }} + +
+ IOS下载地址: +
+
+ Android下载地址: +
+
检查新版本 退出登录 @@ -17,6 +25,7 @@ import { useAppStore } from '@/store/app.ts' import { useUserStore } from '@/store/user.ts' import { useAuthStore } from '@/store/auth.ts' import { useRouter } from 'vue-router' +import { getAssetsImageFile } from '@/utils' const appStore = useAppStore() const userStore = useUserStore()