From b15a997e95d715c41df3a76aecbf58ec1141ab53 Mon Sep 17 00:00:00 2001 From: qiyunfeng-create <1940665526@qq.com> Date: 星期四, 21 八月 2025 18:37:17 +0800 Subject: [PATCH] 个人中心-接口测试 --- src/views/personalCenter/myMessage.vue | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 204 insertions(+), 1 deletions(-) diff --git a/src/views/personalCenter/myMessage.vue b/src/views/personalCenter/myMessage.vue index ad630af..9d87747 100644 --- a/src/views/personalCenter/myMessage.vue +++ b/src/views/personalCenter/myMessage.vue @@ -1,3 +1,206 @@ <template> - <div>鎴戠殑娑堟伅</div> + <!-- <page> --> + <div class="personalPage-box"> + <div class="personalPage-title">鎴戠殑娑堟伅</div> + <div class="personalPage-content"> + <div class="list-box" v-loading="pages.loading"> + <ul class="listTable" v-if="dataList.length > 0 && !pages.loading"> + <li v-for="(item, index) in dataList" :key="index" class="body flex"> + <div class="icon"> + <img src="@/assets/images/personalCenter/notification.svg" alt="star" /> + </div> + <div class="flex1 ai-c"> + <p class="title hover" :title="item.name" @click="viewDetail(item)"> + {{ item.name }} + </p> + <p class="content" :title="item.description">{{ item.description }}</p> + </div> + <span class="createDate">{{ item.createDate }}</span> + </li> + </ul> + <div v-if="dataList.length == 0 && !pages.loading"> + <el-empty :image-size="200" description="鏆傛棤鏁版嵁" /> + </div> + </div> + <div class="pagination-box" v-if="dataList.length > 0 && !pages.loading"> + <el-pagination + v-model:current-page="pages.page" + v-model:page-size="pages.pageSize" + layout="total, prev, pager, next" + :total="pages.count" + @current-change="handleCurrentChange" + /> + </div> + </div> + <el-dialog align-center v-model="detailDialog" title="娑堟伅" class="messageDialog"> + <div> + <div class="title">{{ dataInfo.name }}</div> + <div class="content" v-html="dataInfo.content"></div> + </div> + </el-dialog> + </div> + <!-- </page> --> </template> + +<script setup lang="ts"> +import { reactive, ref, onMounted, inject, watch } from "vue"; +import moment from "moment"; +import { useUserStore } from "@/store"; +const userStore = useUserStore(); +const MG: any = inject("MG"); +const config: any = inject("config"); +let dataList = ref([]); +let pages = reactive({ + page: 1, + pageSize: 10, + count: 0, + loading: false, +}); +const detailDialog = ref(false); +let dataInfo = reactive({ + name: "", + content: "", +}); + +function getDataList() { + pages.loading = true; + MG.app + .getAppMessageList({ + appRefCode: config.appRefCode, + start: (pages.page - 1) * pages.pageSize, + size: pages.pageSize, + sort: { + type: "Desc", + field: "CreateDate", + }, + }) + .then((res) => { + pages.count = res.totalSize; + res.datas.forEach((item) => { + item.createDate = moment(item.createDate).format("YYYY-MM-DD HH:mm:ss"); + }); + dataList.value = res.datas; + pages.loading = false; + }) + .catch(() => { + pages.loading = false; + }); +} +onMounted(() => { + getDataList(); +}); + +watch( + () => userStore?.token, + () => { + getDataList(); + } +); + +const handleCurrentChange = (val: number) => { + pages.page = val; + getDataList(); +}; + +function viewDetail(data) { + MG.app + .getMessage({ + messageId: data.id, + }) + .then((res) => { + if (res) { + dataInfo.name = res.name; + dataInfo.content = res.content; + detailDialog.value = true; + } + }); +} +</script> +<style lang="less" scoped> +.listTable { + .body { + padding: 15px 0; + border-bottom: 1px solid #ededed; + + .icon { + width: 36px; + + img { + margin-top: 2px; + width: 22px; + height: 22px; + } + } + + .title { + font-weight: bold; + line-height: 24px; + height: 24px; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; + overflow: hidden; + text-overflow: ellipsis; + } + + .content { + height: 45px; + line-height: 24px; + display: -webkit-box; + margin: 5px 0; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + text-overflow: ellipsis; + } + + .createDate { + line-height: 24px; + padding-left: 20px; + color: #949494; + } + } +} + +.list-box { + min-height: 570px; +} + +.pagination-box { + display: flex; + justify-content: center; +} + +.messageDialog { + width: 600px; + + .title { + line-height: 22px; + font-weight: bold; + } + + .content { + margin-top: 10px; + line-height: 22px; + } +} +</style> +<style lang="less"> +.messageDialog { + .el-dialog__header { + padding: 15px; + margin-right: 0; + border-bottom: 1px solid #f4f4f4; + } + + .el-dialog__title { + font-weight: bold; + font-size: 16px; + } + + .el-dialog__headerbtn { + top: 6px; + right: 6px; + } +} +</style> -- Gitblit v1.9.1