diff --git a/packageRc/pages/policy/policyList.vue b/packageRc/pages/policy/policyList.vue
index 450b982..5f0e191 100644
--- a/packageRc/pages/policy/policyList.vue
+++ b/packageRc/pages/policy/policyList.vue
@@ -329,6 +329,7 @@ export default {
// })
},
popupSearch(data) {
+ console.log(data[0].data[1]);
// 获取此次提交前,旧的政策类型值
const oldTypeL = this.queryParams.policyTypeL || "";
@@ -339,6 +340,15 @@ export default {
selections[item.type] = active.dictLabel === "全部" ? "" : active.dictValue;
});
+ // 政策类型选中 '0' 时传 tag 并清空 policyTypeL
+ if (selections.policyTypeL === '0') {
+ const tag = uni.getStorageSync('userInfo')?.userTagName || {};
+ this.queryParams.tag = tag
+ selections.policyTypeL = ""
+ } else {
+ delete this.queryParams.tag
+ }
+
// 核心判定逻辑:
// 如果发现“政策类型(policyTypeL)”发生了变化
if (selections.policyTypeL !== oldTypeL) {
diff --git a/pages.json b/pages.json
index 8f7a916..e20a623 100644
--- a/pages.json
+++ b/pages.json
@@ -27,6 +27,12 @@
"navigationBarTitleText": "消息"
}
},
+ {
+ "path": "pages/msglog/messageDetail",
+ "style": {
+ "navigationBarTitleText": "消息详情"
+ }
+ },
{
"path": "pages/careerfair/careerfair",
"style": {
diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue
index 7294b4e..20f867d 100644
--- a/pages/mine/mine.vue
+++ b/pages/mine/mine.vue
@@ -101,6 +101,7 @@
消息
+ {{ unreadNoticeCount > 99 ? '99+' : unreadNoticeCount }}
@@ -192,6 +193,9 @@ const feedbackPopup = ref(null);
const { userInfo, Completion } = storeToRefs(useUserStore());
const counts = ref({});
+// 计算未读消息数量
+const unreadNoticeCount = computed(() => counts.value.unreadNoticeCount || 0);
+
// 提醒设置
const reminderEnabled = ref(true);
const reminderFrequency = ref('realtime');
@@ -442,6 +446,23 @@ function submitFeedback() {
font-size: 28rpx;
color: #333333;
}
+ .unread-badge{
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 32rpx;
+ height: 32rpx;
+ padding: 0 10rpx;
+ margin-left: 12rpx;
+ background: linear-gradient(135deg, #FF4757, #FF6B81);
+ border-radius: 16rpx;
+ font-size: 20rpx;
+ font-weight: 500;
+ color: #FFFFFF;
+ line-height: 32rpx;
+ text-align: center;
+ box-shadow: 0 2rpx 8rpx rgba(255, 71, 87, 0.4);
+ }
}
.row-right{
color: #6E6E6E;
diff --git a/pages/msglog/messageDetail.vue b/pages/msglog/messageDetail.vue
new file mode 100644
index 0000000..e299701
--- /dev/null
+++ b/pages/msglog/messageDetail.vue
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ message.title }}
+
+
+ {{ message.createTime || message.date }}
+
+
+
+
+
+
+
+ 摘要
+ {{ message.subTitle }}
+
+
+
+ 详情
+ {{ message.noticeContent }}
+
+
+
+
+
+
+
+
+
+
+ 消息不存在
+ 该消息可能已被删除
+
+
+
+ 加载中...
+
+
+
+
+
+
+
+
+
diff --git a/pages/msglog/read.vue b/pages/msglog/read.vue
index fe72212..e89ac7e 100644
--- a/pages/msglog/read.vue
+++ b/pages/msglog/read.vue
@@ -4,6 +4,7 @@
+
{{ item.notReadCount || '' }}
- {{ item.title }}
+
+
+ {{ item.title }}
+
{{ item.date }}
{{ item.subTitle || '消息' }}
@@ -66,26 +75,8 @@ async function loadData() {
}
function seeDetail(item, index) {
- if (item.noticeType === '4') {
- useReadMsg().markAsRead(item, index);
- if (item.bussinessId) {
- navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(item.bussinessId)}&encryptJobId=${encodeURIComponent(item.bussinessId)}`);
- }
- return;
- }
- switch (item.title) {
- case '职位上新':
- useReadMsg().markAsRead(item, index);
- navTo('/packageA/pages/newJobPosition/newJobPosition');
- break;
- case '招聘会预约提醒':
- useReadMsg().markAsRead(item, index);
- navTo('/packageA/pages/reservation/reservation');
- break;
- case '系统通知':
- navTo('/packageA/pages/systemNotification/systemNotification');
- break;
- }
+ uni.setStorageSync('currentMessageDetail', item);
+ navTo('/pages/msglog/messageDetail');
}
defineExpose({ loadData });
@@ -110,6 +101,8 @@ defineExpose({ loadData });
align-items: center;
padding: 26rpx 36rpx;
margin: 0 0 28rpx 0
+ &.unread
+ background: linear-gradient(135deg, #FFFAFA 0%, #FFFFFF 100%)
.card-img
width: 96rpx;
height: 96rpx;
@@ -121,6 +114,9 @@ defineExpose({ loadData });
.card-img-flame
width: 100%;
height: 100%
+ .card-img-default
+ width: 60%
+ height: 60%
.subscript
position: absolute;
right: 0;
@@ -147,15 +143,31 @@ defineExpose({ loadData });
color: #333333;
display: flex;
justify-content: space-between;
+ align-items: center;
width: 100%
- text
- font-family: 'PingFangSC-Medium', 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
+ .title-left
+ display: flex
+ align-items: center
+ min-width: 0
+ flex: 1
+ .unread-dot
+ width: 14rpx
+ height: 14rpx
+ background: #F73636
+ border-radius: 50%
+ margin-right: 12rpx
+ flex-shrink: 0
+ .unread-text
+ font-weight: 600
+ text
+ font-family: 'PingFangSC-Medium', 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
.card-time
font-weight: 400;
font-size: 28rpx;
color: #AAAAAA;
height: 100%
margin: 4rpx;
+ flex-shrink: 0
.info-text
font-weight: 400;
font-size: 28rpx;
diff --git a/pages/msglog/unread.vue b/pages/msglog/unread.vue
index b9b7088..a23089e 100644
--- a/pages/msglog/unread.vue
+++ b/pages/msglog/unread.vue
@@ -4,6 +4,7 @@
+
{{ item.notReadCount }}
- {{ item.title }}
+
+
+ {{ item.title }}
+
{{ item.date }}
{{ item.subTitle || '消息' }}
@@ -64,7 +73,8 @@ async function loadData() {
}
function seeDetail(item) {
- console.log(item);
+ uni.setStorageSync('currentMessageDetail', item);
+ navTo('/pages/msglog/messageDetail');
}
defineExpose({ loadData });
@@ -89,6 +99,8 @@ defineExpose({ loadData });
align-items: center;
padding: 26rpx 36rpx;
margin: 0 0 28rpx 0
+ &.unread
+ background: linear-gradient(135deg, #FFFAFA 0%, #FFFFFF 100%)
.card-img
width: 96rpx;
height: 96rpx;
@@ -100,6 +112,9 @@ defineExpose({ loadData });
.card-img-flame
width: 100%;
height: 100%
+ .card-img-default
+ width: 60%
+ height: 60%
.subscript
position: absolute;
right: 0;
@@ -126,15 +141,31 @@ defineExpose({ loadData });
color: #333333;
display: flex;
justify-content: space-between;
+ align-items: center;
width: 100%
- text
- font-family: 'PingFangSC-Medium', 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
+ .title-left
+ display: flex
+ align-items: center
+ min-width: 0
+ flex: 1
+ .unread-dot
+ width: 14rpx
+ height: 14rpx
+ background: #F73636
+ border-radius: 50%
+ margin-right: 12rpx
+ flex-shrink: 0
+ .unread-text
+ font-weight: 600
+ text
+ font-family: 'PingFangSC-Medium', 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
.card-time
font-weight: 400;
font-size: 28rpx;
color: #AAAAAA;
height: 100%
margin: 4rpx;
+ flex-shrink: 0
.info-text
font-weight: 400;
font-size: 28rpx;
diff --git a/stores/useReadMsg.js b/stores/useReadMsg.js
index 256bdee..934a407 100644
--- a/stores/useReadMsg.js
+++ b/stores/useReadMsg.js
@@ -39,7 +39,7 @@ export const useReadMsg = defineStore('readMsg', () => {
// 未读消息列表
const unreadMsgList = computed(() =>
- msgList.value.filter(msg => msg.notReadCount > 0)
+ msgList.value.filter(msg => msg.isRead == 0)
)
diff --git a/utils/request.js b/utils/request.js
index 0dcea0a..994cc32 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -198,11 +198,14 @@ export function createRequest(url, data = {}, method = 'GET', loading = false, h
data: requestData,
header,
success: resData => {
+ const responseData = handleResponseData(resData.data)
+ console.log('[请求] 接口地址:', config.baseUrl + url)
+ console.log('[请求] 解密后数据:', JSON.stringify(responseData))
// 响应拦截
if (resData.statusCode === 200) {
- const responseData = handleResponseData(resData.data)
- console.log('[请求] 接口地址:', config.baseUrl + url)
- console.log('[请求] 解密后数据:', JSON.stringify(responseData))
+ // const responseData = handleResponseData(resData.data)
+ // console.log('[请求] 接口地址:', config.baseUrl + url)
+ // console.log('[请求] 解密后数据:', JSON.stringify(responseData))
const {
code,
msg