diff --git a/common/api/account/message.js b/common/api/account/message.js
new file mode 100644
index 0000000..05efff0
--- /dev/null
+++ b/common/api/account/message.js
@@ -0,0 +1,30 @@
+// 引入 request 文件
+import request from '@/common/api/request.js'
+import {
+ prveUrl
+} from './config.js'
+
+// 获取未读消息数量
+export const getUnReadCountReq = () => {
+ return request({
+ url: prveUrl + '/user/msg/unReadCount',
+ method: 'get',
+ })
+}
+
+// 获取消息列表分页数据
+export const getUserMsgPageReq = (data) => {
+ return request({
+ url: prveUrl + '/user/msg/page',
+ method: 'get',
+ data: data
+ })
+}
+
+// 根据订单 Id 查询入账消息
+export const getMsgByOrderIdReq = (id) => {
+ return request({
+ url: prveUrl + '/user/msg/order/' + id,
+ method: 'get',
+ })
+}
\ No newline at end of file
diff --git a/components/msg-list-item/msg-list-item.vue b/components/msg-list-item/msg-list-item.vue
new file mode 100644
index 0000000..1a9f995
--- /dev/null
+++ b/components/msg-list-item/msg-list-item.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ {{props.title}}
+
+
+
+ {{props.createTime}}
+
+
+
+
+ {{props.content}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 8abee6e..7e00b9c 100644
--- a/pages.json
+++ b/pages.json
@@ -213,6 +213,12 @@
"style": {
"navigationBarTitleText": "消息"
}
+ },
+ {
+ "path": "pages/user/message/index",
+ "style": {
+ "navigationBarTitleText": "消息通知"
+ }
}
],
"subPackages": [
diff --git a/pages/index/index.vue b/pages/index/index.vue
index b687705..f0f3aea 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -151,6 +151,7 @@ import { APIhomehomePageUp, APIhome } from '@/common/api/index/index.js';
import { APIgeocodelocation } from '@/common/api/api.js';
import { useNavbarStore } from '@/stores/navbarStore';
import { productStore } from '@/stores/user.js';
+import { getUnReadCountReq } from '../../common/api/account/message';
const store = useNavbarStore();
const storeuser = productStore();
store.updateNavbarConfig({
@@ -352,9 +353,27 @@ onShow(async () => {
const showPageLoading = ref(true);
+const getUnReadMsgCount = async () => {
+ let res = await getUnReadCountReq()
+
+ let badge = Number(res)
+ if (badge > 0) {
+ uni.setTabBarBadge({
+ index: 2,
+ text: badge.toString()
+ })
+ } else {
+ uni.removeTabBarBadge({
+ index: 2
+ })
+ }
+}
+
onMounted(async () => {
setTimeout(() => {
showPageLoading.value = false;
+
+ getUnReadMsgCount();
}, 800);
});
diff --git a/pages/order/confirm-order.vue b/pages/order/confirm-order.vue
index 9d3978f..507f5e4 100644
--- a/pages/order/confirm-order.vue
+++ b/pages/order/confirm-order.vue
@@ -40,6 +40,13 @@
>
+
+
+
+
+
+
扫码加好友,优惠多多
@@ -265,6 +272,8 @@ import { useCartsStore } from "@/stores/carts.js";
import { useWebSocket } from "@/stores/carts-websocket.js";
import * as chatApi from "@/http/php/chat";
+ import MsgListItem from '@/components/msg-list-item/msg-list-item.vue'
+
function pwdClose() {
ispws.value = false;
pay_unlock();
@@ -413,6 +422,7 @@ import rechargeFree from "./components/rechargeFree.vue";
import paymentMethodes from "@/components/paymentMethod.vue"; //支付方式
import { onShow, onBackPress } from "@dcloudio/uni-app";
import { onHide } from "@dcloudio/uni-app";
+import { getMsgByOrderIdReq } from "../../common/api/account/message";
// 输入支付密码
const ispws = ref(false);
let userInfo = uni.cache.get("userInfo");
@@ -502,8 +512,24 @@ const orderorderInfo = async (isNpwGetOrderDetail = false) => {
console.log(res);
getOrderInfoAfterCalcInit(res);
+
+ if (listinfo.status == 'done') {
+ getOrderMsgInfo()
+ }
};
+ const orderMsgList = ref([])
+
+ // 获取订单消息
+ const getOrderMsgInfo = async () => {
+ orderMsgList.value = []
+ let res = await getMsgByOrderIdReq(listinfo.id)
+
+ if (res) {
+ orderMsgList.value = res
+ }
+ }
+
//拿到订单数据后续初始化处理
function getOrderInfoAfterCalcInit(res) {
console.log("getOrderInfoAfterCalcInit", res);
@@ -1762,4 +1788,8 @@ page {
color: #666666;
}
}
+
+ .order-msg-list {
+ margin-bottom: 30rpx;
+ }
diff --git a/pages/order/detail.vue b/pages/order/detail.vue
index 09fb782..187d3ac 100644
--- a/pages/order/detail.vue
+++ b/pages/order/detail.vue
@@ -16,6 +16,13 @@
+
+
+
+
+
+
扫码加好友,优惠多多
@@ -123,6 +130,11 @@
onShow,
onBackPress
} from '@dcloudio/uni-app';
+ import {
+ getMsgByOrderIdReq
+ } from "@/common/api/account/message";
+
+ import MsgListItem from '@/components/msg-list-item/msg-list-item.vue'
// 输入支付密码
const ispws = ref(false)
@@ -172,8 +184,10 @@
let res = await APIgetOrderById({
orderId: orderId.value
})
+ console.log("orderorderInfo1: res == ", res);
if (res) {
Object.assign(listinfo, res);
+ console.log("orderorderInfo: res == ", res);
// 历史订单
if (listinfo.detailMap) {
let combinedArray = [];
@@ -206,6 +220,22 @@
listinfo.pointsDiscountAmount = 0
// console.log(listinfo)
+ console.log("orderorderInfo list info: ", listinfo);
+ if (listinfo.status == 'done') {
+ getOrderMsgInfo()
+ }
+ }
+ }
+
+ const orderMsgList = ref([])
+
+ // 获取订单消息
+ const getOrderMsgInfo = async () => {
+ orderMsgList.value = []
+ let res = await getMsgByOrderIdReq(orderId.value)
+
+ if (res) {
+ orderMsgList.value = res
}
}
@@ -417,7 +447,7 @@
// })
//return
// }
- if (orderVIP.value.payPwd == '') {
+ if (orderVIP.value.payPwd == '') {
uni.showModal({
title: '提示',
content: '您还未设置支付密码,是否去设置?',
@@ -584,6 +614,7 @@
orderVIP.value = uni.cache.get('orderVIP')
// 积分信息
+ console.log("orderInfo onMounted");
orderorderInfo()
})
@@ -1056,4 +1087,8 @@
}
}
+
+ .order-msg-list {
+ margin-bottom: 30rpx;
+ }
\ No newline at end of file
diff --git a/pages/user/message/index.vue b/pages/user/message/index.vue
new file mode 100644
index 0000000..e171f14
--- /dev/null
+++ b/pages/user/message/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/user/user.vue b/pages/user/user.vue
index 8251732..620d1d0 100644
--- a/pages/user/user.vue
+++ b/pages/user/user.vue
@@ -21,11 +21,38 @@
>
{{ userInfo.nickName }}
-
+
+
+
+
+
+
+
+
+
+ {{ unreadMsgCount > 99 ? '99+' : unreadMsgCount }}
+
+
+
+
+