diff --git a/src/api/member/viewrecord/index.ts b/src/api/member/viewrecord/index.ts new file mode 100644 index 00000000..35af1580 --- /dev/null +++ b/src/api/member/viewrecord/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// 用户查看记录 VO +export interface ViewRecordVO { + id: number // 收件地址编号 + memberId: number // 用户编号 + bizType: string // 查询分类、查看朋友圈 + bizId: number // 查询分类、查看朋友圈 + title: string // 查看的标题 + viewStartTime: Date // 开始查看时间 + viewEndTime: Date // 结束查看时间 + viewSecond: number // 查看时间(秒) +} + +// 用户查看记录 API +export const ViewRecordApi = { + // 查询用户查看记录分页 + getViewRecordPage: async (params: any) => { + return await request.get({ url: `/member/view-record/page`, params }) + }, + + // 查询用户查看记录详情 + getViewRecord: async (id: number) => { + return await request.get({ url: `/member/view-record/get?id=` + id }) + }, + + // 新增用户查看记录 + createViewRecord: async (data: ViewRecordVO) => { + return await request.post({ url: `/member/view-record/create`, data }) + }, + + // 修改用户查看记录 + updateViewRecord: async (data: ViewRecordVO) => { + return await request.put({ url: `/member/view-record/update`, data }) + }, + + // 删除用户查看记录 + deleteViewRecord: async (id: number) => { + return await request.delete({ url: `/member/view-record/delete?id=` + id }) + }, + + // 导出用户查看记录 Excel + exportViewRecord: async (params) => { + return await request.download({ url: `/member/view-record/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/views/member/recent/cmp/like-page.vue b/src/views/member/recent/cmp/like-page.vue index 15cf9c5c..5641b634 100644 --- a/src/views/member/recent/cmp/like-page.vue +++ b/src/views/member/recent/cmp/like-page.vue @@ -28,7 +28,7 @@ @@ -52,6 +58,23 @@ import { FormInstance } from 'element-plus' import { dateFormatter, formatPast } from '@/utils/formatTime' import * as operationApi from "@/api/member/operation" +import { strict } from 'assert' + +const props = defineProps({ + memberRecentId: { + type: [String, Number], + default: "" + }, + memberId: { + type: [String, Number], + default: "" + }, + // 操作类型 user 用户,recent动态 + type: { + type: String, + default: "recent" + }, +}) const queryFormRef = ref() @@ -61,13 +84,28 @@ const list = ref([]) // 表单搜索 const queryParams = ref({ - bizType: "1", operatorMemberNickname: "", + memberId: props.memberId, + memberRecentId: props.memberRecentId, createTime: [], pageNo: 1, pageSize: 10, }) +watch(() => props.memberId, (newVal) => { + if (newVal) { + queryParams.value.memberId = newVal as any + getList() + } +}) + +watch(() => props.memberRecentId, (newVal) => { + if (newVal) { + queryParams.value.memberRecentId = newVal as any + getList() + } +}) + /** 搜索按钮操作 */ const handleQuery = async () => { queryParams.value.pageNo = 1 @@ -84,7 +122,16 @@ const resetQuery = () => { const getList = async () => { loading.value = true try { - const data = await operationApi.OperationApi.getOperationPage(queryParams.value) + const _params: any = { + ...queryParams.value + } + if (props.type == "user") { + _params.bizType = 4 + } + if (props.type == "recent") { + _params.bizType = 1 + } + const data = await operationApi.OperationApi.getOperationPage(_params) list.value = data.list total.value = data.total } finally { diff --git a/src/views/member/recent/cmp/report-page.vue b/src/views/member/recent/cmp/report-page.vue index 0a5bdb26..383998a1 100644 --- a/src/views/member/recent/cmp/report-page.vue +++ b/src/views/member/recent/cmp/report-page.vue @@ -55,6 +55,14 @@ import { dateFormatter, formatPast } from '@/utils/formatTime' import * as operationApi from "@/api/member/operation" +const props = defineProps({ + memberId: { + type: String, + default: () => { } + }, +}) + + const queryFormRef = ref() const total = ref(0) @@ -63,13 +71,22 @@ const list = ref([]) // 表单搜索 const queryParams = ref({ - bizType: "2", + bizType: "6", + memberId: "", operatorMemberNickname: "", createTime: [], pageNo: 1, pageSize: 10, }) +watch(() => props.memberId, (newVal) => { + if (newVal) { + queryParams.value.memberId = newVal as any + getList() + } +}) + + /** 搜索按钮操作 */ const handleQuery = async () => { queryParams.value.pageNo = 1 diff --git a/src/views/member/recent/cmp/shield-page.vue b/src/views/member/recent/cmp/shield-page.vue index 31ee6893..c7d57a0f 100644 --- a/src/views/member/recent/cmp/shield-page.vue +++ b/src/views/member/recent/cmp/shield-page.vue @@ -53,6 +53,13 @@ import { dateFormatter, formatPast } from '@/utils/formatTime' import * as operationApi from "@/api/member/operation" +const props = defineProps({ + memberId: { + type: [String, Number], + default: "" + }, +}) + const queryFormRef = ref() const total = ref(0) @@ -61,13 +68,21 @@ const list = ref([]) // 表单搜索 const queryParams = ref({ - bizType: "3", + bizType: "5", + operatorMemberId: props.memberId, operatorMemberNickname: "", createTime: [], pageNo: 1, pageSize: 10, }) +watch(() => props.memberId, (newVal) => { + if (newVal) { + queryParams.value.operatorMemberId = newVal as any + getList() + } +}) + /** 搜索按钮操作 */ const handleQuery = async () => { queryParams.value.pageNo = 1 diff --git a/src/views/member/recent/cmp/visit-page.vue b/src/views/member/recent/cmp/visit-page.vue new file mode 100644 index 00000000..d227711e --- /dev/null +++ b/src/views/member/recent/cmp/visit-page.vue @@ -0,0 +1,128 @@ + + + + \ No newline at end of file diff --git a/src/views/member/recent/router/recent.detail.vue b/src/views/member/recent/router/recent.detail.vue index 19ec82bd..7de64975 100644 --- a/src/views/member/recent/router/recent.detail.vue +++ b/src/views/member/recent/router/recent.detail.vue @@ -29,16 +29,18 @@ - + - + - + - - + + + + @@ -53,6 +55,7 @@ import RecentCard from '@/views/member/recent/cmp/recent-card.vue' import LikePage from "@/views/member/recent/cmp/like-page.vue" import ReportPage from "@/views/member/recent/cmp/report-page.vue" import ShieldPage from "@/views/member/recent/cmp/shield-page.vue" +import VisitPage from "@/views/member/recent/cmp/visit-page.vue" import { useTagsViewStore } from '@/store/modules/tagsView' diff --git a/src/views/member/user/detail/index.vue b/src/views/member/user/detail/index.vue index 4988035a..c240d2cf 100644 --- a/src/views/member/user/detail/index.vue +++ b/src/views/member/user/detail/index.vue @@ -30,31 +30,45 @@ - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -88,6 +102,11 @@ import UserBalanceList from './UserBalanceList.vue' import { CardTitle } from '@/components/Card/index' import { ElMessage } from 'element-plus' +import LikePage from "@/views/member/recent/cmp/like-page.vue" +import ReportPage from "@/views/member/recent/cmp/report-page.vue" +import ShieldPage from "@/views/member/recent/cmp/shield-page.vue" +import VisitPage from "@/views/member/recent/cmp/visit-page.vue" + defineOptions({ name: 'MemberDetail' }) const loading = ref(true) // 加载中