diff --git a/.env.development b/.env.development index 6af2eb3..5794ede 100644 --- a/.env.development +++ b/.env.development @@ -2,4 +2,4 @@ VITE_APP_ENV=development # 测试环境 API -VITE_API_BASE_URL=https://hwjb.homilychart.com/dbqbApi \ No newline at end of file +VITE_API_BASE_URL=https://dbqb.nfdxy.net/activityApi \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cb18aa3..d76be02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2948,11 +2948,10 @@ } }, "node_modules/vite": { - "version": "7.1.10", - "resolved": "https://registry.npmmirror.com/vite/-/vite-7.1.10.tgz", - "integrity": "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==", + "version": "7.1.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz", + "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", diff --git a/src/api/member.js b/src/api/member.js index 4d88647..19342e9 100644 --- a/src/api/member.js +++ b/src/api/member.js @@ -8,7 +8,7 @@ const API_BASE_URL = import.meta.env.VITE_API_BASE_URL; // 获取落地页活动列表 export function getLandingListApi(data) { return request({ - url: `${API_BASE_URL}/admin/getLandingList`, + url: `${API_BASE_URL}/api/activity/get`, method: "post", data: data, }); @@ -17,16 +17,7 @@ export function getLandingListApi(data) { // 添加落地页活动 export function addLandingApi(data) { return request({ - url: `${API_BASE_URL}/admin/addLand`, - method: "post", - data: data, - }); -} - -// 修改落地页活动 -export function editLandingtApi(data) { - return request({ - url: `${API_BASE_URL}/admin/editLanding`, + url: `${API_BASE_URL}/admin/activity/add`, method: "post", data: data, }); @@ -35,7 +26,7 @@ export function editLandingtApi(data) { // 获取落地页活动列表 export function getLandingDetailApi(data) { return request({ - url: `${API_BASE_URL}/admin/getLandingDetail`, + url: `${API_BASE_URL}/admin/activity/detail`, method: "post", data: data, }); @@ -44,8 +35,9 @@ export function getLandingDetailApi(data) { // 导出落地页活动列表 export function exportLandingDetailApi(data) { return request({ - url: `${API_BASE_URL}/admin/exportLandingDetail`, + url: `${API_BASE_URL}/admin/activity/export`, method: "post", data: data, + responseType: 'arraybuffer' }); } \ No newline at end of file diff --git a/src/views/admin/landingDetail.vue b/src/views/admin/landingDetail.vue index fe2c31b..82b6b2a 100644 --- a/src/views/admin/landingDetail.vue +++ b/src/views/admin/landingDetail.vue @@ -48,7 +48,7 @@ /> - + @@ -71,13 +71,13 @@ align="center" > @@ -125,33 +125,7 @@ export default { status: '' }, // 表格数据 - tableData: [ - { - userInfo: '张三(13800138000)', - openTime: '2025-10-20 09:15:30', - status: 1 // 对应“是” - }, - { - userInfo: '李四(13900139000)', - openTime: '2025-10-20 10:22:15', - status: 0 // 对应“否” - }, - { - userInfo: '王五(13700137000)', - openTime: '2025-10-20 14:05:40', - status: 1 // 对应“是” - }, - { - userInfo: '赵六(13600136000)', - openTime: '2025-10-21 08:40:22', - status: 0 // 对应“否” - }, - { - userInfo: '孙七(13500135000)', - openTime: '2025-10-21 11:30:10', - status: 1 // 对应“是” - }, - ], + tableData: [], // 分页参数 currentPage: 1, pageSize: 20, @@ -196,10 +170,10 @@ export default { const res = await getLandingDetailApi({ id: id, page: this.currentPage, - pageSize: this.pageSize, - startTime: this.formatDateTime(startTime), - endTime: this.formatDateTime(endTime), - status: status + page_size: this.pageSize, + start_time: this.formatDateTime(startTime), + end_time: this.formatDateTime(endTime), + state: status === '' || status == null ? -1 : status }); if (res.code === 200) { @@ -228,23 +202,24 @@ export default { const { startTime, endTime, status } = this.filterForm; exportLandingDetailApi({ id: this.$route.params.id, - startTime: this.formatDateTime(startTime), - endTime: this.formatDateTime(endTime), - status: status + page: this.currentPage, + page_size: this.pageSize, + start_time: this.formatDateTime(startTime), + end_time: this.formatDateTime(endTime), + state: status === '' || status == null ? -1 : status }).then(res => { - if (res.code === 200) { - ElMessage.success('导出成功'); - // 处理文件下载逻辑(如创建a标签下载) - const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }); - const url = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = url; - a.download = `${'活动数据'}.xlsx`; - a.click(); - URL.revokeObjectURL(url); - } else { - ElMessage.error(res.msg || '导出失败'); - } + const data = res.data !== undefined ? res.data : res; + const blob = new Blob([data], { type: res.headers?.['content-type'] || 'application/octet-stream' }); + let filename = `活动数据.xlsx`; + const blobUrl = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = blobUrl; + a.download = filename; + document.body.appendChild(a); + a.click(); + a.remove(); + URL.revokeObjectURL(blobUrl); + ElMessage.success('导出成功'); }); } catch (error) { ElMessage.error('导出失败,请重试'); diff --git a/src/views/admin/landingManagement.vue b/src/views/admin/landingManagement.vue new file mode 100644 index 0000000..980a1d1 --- /dev/null +++ b/src/views/admin/landingManagement.vue @@ -0,0 +1,520 @@ + + + + + \ No newline at end of file