diff --git a/pages/activity/activity.vue b/pages/activity/activity.vue
index d3834d2..22dba9a 100644
--- a/pages/activity/activity.vue
+++ b/pages/activity/activity.vue
@@ -1,29 +1,37 @@
-
-
diff --git a/pages/activity/activityDetail.vue b/pages/activity/activityDetail.vue
index 1177638..bee11ba 100644
--- a/pages/activity/activityDetail.vue
+++ b/pages/activity/activityDetail.vue
@@ -1,12 +1,17 @@
-
-
-
+
活动详情
-
+
-
+
电话
-
+
地址
@@ -72,398 +94,398 @@
diff --git a/utils/activity-data-formatter.js b/utils/activity-data-formatter.js
index cab4294..9750c01 100644
--- a/utils/activity-data-formatter.js
+++ b/utils/activity-data-formatter.js
@@ -1,4 +1,4 @@
-import { ACTIVITY_STATUS, ACTIVITY_TYPE } from '../enum/activity'
+import { ACTIVITY_STATUS, ACTIVITY_TYPE } from "../enum/activity";
/**
* 活动数据格式化工具
@@ -11,10 +11,10 @@ export default {
*/
formatActivityList(apiData) {
if (!Array.isArray(apiData)) {
- return []
+ return [];
}
- return apiData.map(item => this.formatActivityItem(item))
+ return apiData.map((item) => this.formatActivityItem(item));
},
/**
@@ -23,16 +23,20 @@ export default {
* @returns {Object} 格式化后的活动数据
*/
formatActivityItem(item) {
- if (!item) return null
+ if (!item) return null;
return {
- id: item.id || '',
- name: item.title || '未命名活动',
- theme: item.content ? `活动主题: ${item.content}` : '',
+ id: item.id || "",
+ name: item.title || "未命名活动",
+ theme: item.content ? `活动主题: ${item.content}` : "",
type: this.getActivityType(item.type),
- status: this.getActivityStatus(item.status, item.actStartTime, item.actEndTime),
+ status: this.getActivityStatus(
+ item.status,
+ item.actStartTime,
+ item.actEndTime,
+ ),
time: this.formatActivityTime(item.actStartTime, item.actEndTime),
- location: item.address || '',
+ location: item.address || "",
backgroundImage: item.imgUrl || this.getDefaultImageByType(item.type),
// 额外信息
templeId: item.templeId,
@@ -42,7 +46,7 @@ export default {
phone: item.phone,
lon: item.lon,
lat: item.lat,
- }
+ };
},
/**
@@ -51,17 +55,22 @@ export default {
* @returns {Object} 格式化后的活动详情数据
*/
formatActivityDetail(apiData) {
- if (!apiData) return null
+ if (!apiData) return null;
return {
- id: apiData.id || '',
- name: apiData.title || '未命名活动',
+ id: apiData.id || "",
+ name: apiData.title || "未命名活动",
type: this.getActivityType(apiData.type),
- status: this.getActivityStatus(apiData.status, apiData.actStartTime, apiData.actEndTime),
+ status: this.getActivityStatus(
+ apiData.status,
+ apiData.actStartTime,
+ apiData.actEndTime,
+ ),
time: this.formatActivityTime(apiData.actStartTime, apiData.actEndTime),
- location: apiData.address || '',
- backgroundImage: apiData.imgUrl || this.getDefaultImageByType(apiData.type),
+ location: apiData.address || "",
+ backgroundImage:
+ apiData.imgUrl || this.getDefaultImageByType(apiData.type),
// 详情页额外信息
templeId: apiData.templeId,
currentBooking: apiData.currentBooking || 0,
@@ -73,7 +82,7 @@ export default {
content: apiData.content,
createTime: apiData.createTime,
updateTime: apiData.updateTime,
- }
+ };
},
/**
@@ -82,21 +91,21 @@ export default {
* @returns {string} 纯文本内容
*/
extractTextFromHtml(htmlContent) {
- if (!htmlContent) return ''
+ if (!htmlContent) return "";
try {
// 简单的HTML标签移除
return htmlContent
- .replace(/<[^>]*>/g, '') // 移除HTML标签
- .replace(/ /g, ' ') // 替换空格实体
- .replace(/&/g, '&') // 替换&实体
- .replace(/</g, '<') // 替换<实体
- .replace(/>/g, '>') // 替换>实体
+ .replace(/<[^>]*>/g, "") // 移除HTML标签
+ .replace(/ /g, " ") // 替换空格实体
+ .replace(/&/g, "&") // 替换&实体
+ .replace(/</g, "<") // 替换<实体
+ .replace(/>/g, ">") // 替换>实体
.replace(/"/g, '"') // 替换"实体
- .trim()
+ .trim();
} catch (error) {
- console.error('提取HTML文本失败:', error)
- return htmlContent
+ console.error("提取HTML文本失败:", error);
+ return htmlContent;
}
},
@@ -106,7 +115,7 @@ export default {
* @returns {string} 标准化的活动类型
*/
getActivityType(type) {
- if (!type) return ACTIVITY_TYPE.PRAYER
+ if (!type) return ACTIVITY_TYPE.PRAYER;
const typeMap = {
1: ACTIVITY_TYPE.PRAYER, // 祈福活动
@@ -114,9 +123,9 @@ export default {
3: ACTIVITY_TYPE.MEDITATION, // 禅修活动
4: ACTIVITY_TYPE.DONATION, // 捐赠活动
5: ACTIVITY_TYPE.VOLUNTEER, // 义工活动
- }
+ };
- return typeMap[type] || ACTIVITY_TYPE.PRAYER
+ return typeMap[type] || ACTIVITY_TYPE.PRAYER;
},
/**
@@ -127,22 +136,22 @@ export default {
* @returns {string} 标准化的活动状态
*/
getActivityStatus(status, startTime, endTime) {
- if (!status || status === '0') {
- return ACTIVITY_STATUS.FINISHED
+ if (!status || status === "0") {
+ return ACTIVITY_STATUS.FINISHED;
}
// 如果有时间信息,根据时间判断状态
if (startTime && endTime) {
- const now = new Date()
- const start = this.parseDateForIOS(startTime)
- const end = this.parseDateForIOS(endTime)
+ const now = new Date();
+ const start = this.parseDateForIOS(startTime);
+ const end = this.parseDateForIOS(endTime);
if (now < start) {
- return ACTIVITY_STATUS.REGISTERING
+ return ACTIVITY_STATUS.REGISTERING;
} else if (now >= start && now <= end) {
- return ACTIVITY_STATUS.ONGOING
+ return ACTIVITY_STATUS.ONGOING;
} else {
- return ACTIVITY_STATUS.FINISHED
+ return ACTIVITY_STATUS.FINISHED;
}
}
@@ -151,9 +160,9 @@ export default {
1: ACTIVITY_STATUS.REGISTERING,
2: ACTIVITY_STATUS.ONGOING,
3: ACTIVITY_STATUS.FINISHED,
- }
+ };
- return statusMap[status] || ACTIVITY_STATUS.REGISTERING
+ return statusMap[status] || ACTIVITY_STATUS.REGISTERING;
},
/**
@@ -162,15 +171,15 @@ export default {
* @returns {Date} 解析后的日期对象
*/
parseDateForIOS(dateString) {
- if (!dateString) return new Date()
+ if (!dateString) return new Date();
try {
// 将 "yyyy-MM-dd HH:mm:ss" 格式转换为 "yyyy-MM-ddTHH:mm:ss" 格式以兼容iOS
- const iosCompatibleDate = dateString.replace(' ', 'T')
- return new Date(iosCompatibleDate)
+ const iosCompatibleDate = dateString.replace(" ", "T");
+ return new Date(iosCompatibleDate);
} catch (error) {
- console.error('解析日期失败:', error)
- return new Date()
+ console.error("解析日期失败:", error);
+ return new Date();
}
},
@@ -181,38 +190,46 @@ export default {
* @returns {string} 格式化后的时间字符串
*/
formatActivityTime(startTime, endTime) {
- if (!startTime) return ''
+ if (!startTime) return "";
try {
- const start = this.parseDateForIOS(startTime)
- const end = endTime ? this.parseDateForIOS(endTime) : null
+ const start = this.parseDateForIOS(startTime);
+ const end = endTime ? this.parseDateForIOS(endTime) : null;
// 格式化日期
- const formatDate = date => {
- const year = date.getFullYear()
- const month = String(date.getMonth() + 1).padStart(2, '0')
- const day = String(date.getDate()).padStart(2, '0')
- const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
- const weekday = weekdays[date.getDay()]
- const hours = String(date.getHours()).padStart(2, '0')
- const minutes = String(date.getMinutes()).padStart(2, '0')
+ const formatDate = (date) => {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ // const weekdays = [
+ // "周日",
+ // "周一",
+ // "周二",
+ // "周三",
+ // "周四",
+ // "周五",
+ // "周六",
+ // ];
+ // const weekday = weekdays[date.getDay()];
+ // const hours = String(date.getHours()).padStart(2, "0");
+ // const minutes = String(date.getMinutes()).padStart(2, "0");
+ //${weekday} ${hours}:${minutes}
- return `${year}年${month}月${day}日 ${weekday} ${hours}:${minutes}`
- }
+ return `${year}年${month}月${day}日`;
+ };
- let timeStr = formatDate(start)
+ let timeStr = formatDate(start);
// 如果有结束时间,添加结束时间
if (end && end.getTime() !== start.getTime()) {
- const endHours = String(end.getHours()).padStart(2, '0')
- const endMinutes = String(end.getMinutes()).padStart(2, '0')
- timeStr += `~${endHours}:${endMinutes}`
+ timeStr += "至";
+ timeStr += formatDate(end);
}
- return timeStr
+ return timeStr;
} catch (error) {
- console.error('格式化时间失败:', error)
- return startTime
+ console.error("格式化时间失败:", error);
+ return startTime;
}
},
@@ -223,14 +240,14 @@ export default {
*/
getDefaultImageByType(type) {
const typeMap = {
- 1: '/static/image/a1.png', // 祈福活动
- 2: '/static/image/a2.png', // 法会活动
- 3: '/static/image/a3.png', // 禅修活动
- 4: '/static/image/a4.png', // 捐赠活动
- 5: '/static/image/a5.png', // 义工活动
- }
+ 1: "/static/image/a1.png", // 祈福活动
+ 2: "/static/image/a2.png", // 法会活动
+ 3: "/static/image/a3.png", // 禅修活动
+ 4: "/static/image/a4.png", // 捐赠活动
+ 5: "/static/image/a5.png", // 义工活动
+ };
- return typeMap[type] || '/static/image/a1.png'
+ return typeMap[type] || "/static/image/a1.png";
},
/**
@@ -239,6 +256,6 @@ export default {
* @returns {boolean} 是否有效
*/
isValidActivity(activity) {
- return activity && activity.id && activity.title && activity.status !== '0'
+ return activity && activity.id && activity.title && activity.status !== "0";
},
-}
+};