diff --git a/pages/activity/point/list.vue b/pages/activity/point/list.vue
index c6eb5107..7630fd21 100644
--- a/pages/activity/point/list.vue
+++ b/pages/activity/point/list.vue
@@ -8,7 +8,7 @@
:scroll-with-animation="false"
:enable-back-to-top="true"
>
-
+
diff --git a/pages/app/sign.vue b/pages/app/sign.vue
index cf299d3c..4b1cd550 100644
--- a/pages/app/sign.vue
+++ b/pages/app/sign.vue
@@ -25,7 +25,7 @@
-
+
签到说明
- 1、已累计签到{{state.signInfo.totalDay}}天
+ 1.已累计签到{{ state.signInfo.totalDay }}天
- 2、据说连续签到第 {{ state.maxDay }} 天可获得超额积分,一定要坚持签到哦~~~
+ 2.据说连续签到第 {{ state.maxDay }} 天可获得超额积分,要坚持签到哦~~
+ 3.积分可以在购物时抵现金结算的哦 ~~
@@ -347,8 +348,7 @@
.title {
font-size: 34rpx;
font-weight: bold;
- // color: var(--ui-BG-Main);
- color: #ff6000;
+ color: var(--ui-BG-Main-TC);
}
.subtitle {
@@ -410,12 +410,10 @@
background-color: #f4b409;
border-radius: 16rpx;
font-size: 20rpx;
- color: #a57d3f;
+ color: var(--ui-BG-Main-TC);
line-height: 32rpx;
- }
-
- .venusSelect {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');
+ text-align: center;
+ padding: 2rpx;
}
.venus {
@@ -424,7 +422,11 @@
background-size: 100% 100%;
width: 56rpx;
height: 56rpx;
- margin: 10rpx 0;
+ margin: 10rpx auto;
+ }
+
+ .venusSelect {
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');
}
.num {
@@ -435,7 +437,7 @@
.item {
align-items: center;
justify-content: space-between;
- border-bottom: 1px solid #eee;
+ flex-direction: column;
height: 130rpx;
}
@@ -446,6 +448,6 @@
}
.on {
- background-color: #999 !important;
+ color: #f4b409;
}
diff --git a/pages/chat/components/messageList.vue b/pages/chat/components/messageList.vue
index 95a19e9e..9e00ba48 100644
--- a/pages/chat/components/messageList.vue
+++ b/pages/chat/components/messageList.vue
@@ -1,20 +1,35 @@
-
+
-
+
-
+
@@ -34,49 +49,79 @@
import KeFuApi from '@/sheep/api/promotion/kefu';
import { isEmpty } from '@/sheep/helper/utils';
import sheep from '@/sheep';
-
+ import { formatDate } from '@/sheep/util';
+
const sys_navBar = sheep.$platform.navbar;
const messageList = ref([]); // 消息列表
const showNewMessageTip = ref(false); // 显示有新消息提示
+ const refreshMessage = ref(false); // 更新消息列表
const backToTopStyle = reactive({
- 'width': '100px',
+ width: '100px',
'background-color': '#fff',
'border-radius': '30px',
'box-shadow': '0 2px 4px rgba(0, 0, 0, 0.1)',
- 'display': 'flex',
- 'justifyContent': 'center',
- 'alignItems': 'center',
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
}); // 返回顶部样式
const queryParams = reactive({
- pageNo: 1,
- pageSize: 10,
+ no: 1, // 查询次数,只用于触底计算
+ limit: 20,
+ createTime: undefined,
});
const pagingRef = ref(null); // 虚拟列表
- const queryList = async (pageNo, pageSize) => {
+ const queryList = async (no, limit) => {
// 组件加载时会自动触发此方法,因此默认页面加载时会自动触发,无需手动调用
- // 这里的pageNo和pageSize会自动计算好,直接传给服务器即可
- queryParams.pageNo = pageNo;
- queryParams.pageSize = pageSize;
+ queryParams.no = no;
+ queryParams.limit = limit;
await getMessageList();
};
// 获得消息分页列表
const getMessageList = async () => {
- const { data } = await KeFuApi.getKefuMessagePage(queryParams);
- if (isEmpty(data.list)) {
+ const { data } = await KeFuApi.getKefuMessageList(queryParams);
+ if (isEmpty(data)) {
+ pagingRef.value.completeByNoMore([], true);
return;
}
- pagingRef.value.completeByTotal(data.list, data.total);
+ if (queryParams.no > 1 && refreshMessage.value) {
+ const newMessageList = [];
+ for (const message of data) {
+ if (messageList.value.some((val) => val.id === message.id)) {
+ continue;
+ }
+ newMessageList.push(message);
+ }
+ // 新消息追加到开头
+ messageList.value = [...newMessageList, ...messageList.value];
+ pagingRef.value.updateCache(); // 更新缓存
+ refreshMessage.value = false; // 更新好后重置状态
+ return;
+ }
+ if (data.slice(-1).length > 0) {
+ // 设置最后一次历史查询的最后一条消息的 createTime
+ queryParams.createTime = formatDate(data.slice(-1)[0].createTime);
+ }
+ pagingRef.value.completeByNoMore(data, false);
};
/** 刷新消息列表 */
- const refreshMessageList = (message = undefined) => {
- if (message !== undefined) {
- showNewMessageTip.value = true;
+ const refreshMessageList = async (message = undefined) => {
+ if (typeof message !== 'undefined') {
// 追加数据
pagingRef.value.addChatRecordData([message], false);
- return;
+ } else {
+ queryParams.createTime = undefined;
+ refreshMessage.value = true;
+ await getMessageList();
+ }
+
+ // 若已是第一页则不做处理
+ if (queryParams.no > 1) {
+ showNewMessageTip.value = true;
+ } else {
+ onScrollToUpper();
}
- pagingRef.value.reload();
};
+
/** 滚动到最新消息 */
const onBackToTopClick = (event) => {
event(false); // 禁用默认操作
@@ -85,7 +130,7 @@
/** 监听滚动到底部事件(因为 scroll 翻转了顶就是底) */
const onScrollToUpper = () => {
// 若已是第一页则不做处理
- if (queryParams.pageNo === 1) {
+ if (queryParams.no === 1) {
return;
}
showNewMessageTip.value = false;
diff --git a/pages/chat/components/messageListItem.vue b/pages/chat/components/messageListItem.vue
index 06a718de..a1c66463 100644
--- a/pages/chat/components/messageListItem.vue
+++ b/pages/chat/components/messageListItem.vue
@@ -46,7 +46,7 @@
-
+
@@ -58,9 +58,9 @@
+
+
[],
},
});
- const getMessageContent = computed(() => (item) => JSON.parse(item.content)); // 解析消息内容
+
+ const getMessageContent = computed(() => (item) => jsonParse(item.content)); // 解析消息内容
+ const userInfo = computed(() => sheep.$store('user').userInfo);
//======================= 工具 =======================
@@ -145,7 +149,7 @@
let emojiFile = selEmojiFile(item);
newData = newData.replace(
item,
- `
`,
);
@@ -167,7 +171,7 @@
\ No newline at end of file
+ .more-box {
+ white-space: nowrap;
+ font-size: 22rpx;
+ color: #999;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ right: 20rpx;
+ }
+ }
+
diff --git a/sheep/util/index.js b/sheep/util/index.js
index e2d8ff7d..7f5ba28e 100644
--- a/sheep/util/index.js
+++ b/sheep/util/index.js
@@ -1,4 +1,4 @@
-import dayjs from "dayjs";
+import dayjs from 'dayjs';
/**
* 将一个整数转换为分数保留两位小数
@@ -6,10 +6,10 @@ import dayjs from "dayjs";
* @return {number} 分数
*/
export const formatToFraction = (num) => {
- if (typeof num === 'undefined') return 0
- const parsedNumber = typeof num === 'string' ? parseFloat(num) : num
- return parseFloat((parsedNumber / 100).toFixed(2))
-}
+ if (typeof num === 'undefined') return 0;
+ const parsedNumber = typeof num === 'string' ? parseFloat(num) : num;
+ return parseFloat((parsedNumber / 100).toFixed(2));
+};
/**
* 将一个数转换为 1.00 这样
@@ -19,26 +19,26 @@ export const formatToFraction = (num) => {
* @return {string} 分数
*/
export const floatToFixed2 = (num) => {
- let str = '0.00'
+ let str = '0.00';
if (typeof num === 'undefined') {
- return str
+ return str;
}
- const f = formatToFraction(num)
- const decimalPart = f.toString().split('.')[1]
- const len = decimalPart ? decimalPart.length : 0
+ const f = formatToFraction(num);
+ const decimalPart = f.toString().split('.')[1];
+ const len = decimalPart ? decimalPart.length : 0;
switch (len) {
case 0:
- str = f.toString() + '.00'
- break
+ str = f.toString() + '.00';
+ break;
case 1:
- str = f.toString() + '.0'
- break
+ str = f.toString() + '.0';
+ break;
case 2:
- str = f.toString()
- break
+ str = f.toString();
+ break;
}
- return str
-}
+ return str;
+};
/**
* 将一个分数转换为整数
@@ -47,11 +47,11 @@ export const floatToFixed2 = (num) => {
* @return {number} 整数
*/
export const convertToInteger = (num) => {
- if (typeof num === 'undefined') return 0
- const parsedNumber = typeof num === 'string' ? parseFloat(num) : num
+ if (typeof num === 'undefined') return 0;
+ const parsedNumber = typeof num === 'string' ? parseFloat(num) : num;
// TODO 分转元后还有小数则四舍五入
- return Math.round(parsedNumber * 100)
-}
+ return Math.round(parsedNumber * 100);
+};
/**
* 时间日期转换
@@ -64,16 +64,16 @@ export const convertToInteger = (num) => {
* @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ"
* @returns {string} 返回拼接后的时间字符串
*/
-export function formatDate(date, format= 'YYYY-MM-DD HH:mm:ss') {
+export function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {
// 日期不存在,则返回空
if (!date) {
- return ''
+ return '';
}
// 日期存在,则进行格式化
if (format === undefined) {
- format = 'YYYY-MM-DD HH:mm:ss'
+ format = 'YYYY-MM-DD HH:mm:ss';
}
- return dayjs(date).format(format)
+ return dayjs(date).format(format);
}
/**
@@ -85,16 +85,22 @@ export function formatDate(date, format= 'YYYY-MM-DD HH:mm:ss') {
* @param {*} children 孩子节点字段 默认 'children'
* @param {*} rootId 根Id 默认 0
*/
-export function handleTree(data, id = 'id', parentId = 'parentId', children = 'children', rootId = 0) {
+export function handleTree(
+ data,
+ id = 'id',
+ parentId = 'parentId',
+ children = 'children',
+ rootId = 0,
+) {
// 对源数据深度克隆
- const cloneData = JSON.parse(JSON.stringify(data))
+ const cloneData = JSON.parse(JSON.stringify(data));
// 循环所有项
- const treeData = cloneData.filter(father => {
- let branchArr = cloneData.filter(child => {
+ const treeData = cloneData.filter((father) => {
+ let branchArr = cloneData.filter((child) => {
//返回每一项的子级数组
- return father[id] === child[parentId]
+ return father[id] === child[parentId];
});
- branchArr.length > 0 ? father.children = branchArr : '';
+ branchArr.length > 0 ? (father.children = branchArr) : '';
//返回第一层
return father[parentId] === rootId;
});
@@ -120,14 +126,28 @@ export function resetPagination(pagination) {
* @param source 源对象
*/
export const copyValueToTarget = (target, source) => {
- const newObj = Object.assign({}, target, source)
+ const newObj = Object.assign({}, target, source);
// 删除多余属性
Object.keys(newObj).forEach((key) => {
// 如果不是target中的属性则删除
if (Object.keys(target).indexOf(key) === -1) {
- delete newObj[key]
+ delete newObj[key];
}
- })
+ });
// 更新目标对象值
- Object.assign(target, newObj)
+ Object.assign(target, newObj);
+};
+
+/**
+ * 解析 JSON 字符串
+ *
+ * @param str
+ */
+export function jsonParse(str) {
+ try {
+ return JSON.parse(str);
+ } catch (e) {
+ console.error(`str[${str}] 不是一个 JSON 字符串`);
+ return '';
+ }
}