jiuyiUniapp/jiuyi2/pages/shop/history.vue

136 lines
3.4 KiB
Vue
Raw Normal View History

2024-12-27 15:03:48 +08:00
<script setup>
// 历史浏览
2025-01-15 23:47:08 +08:00
import {
ref,
reactive,
getCurrentInstance
} from 'vue'
import {
onReachBottom,
onPullDownRefresh,
onShow,
onLoad,
onReady,
} from '@dcloudio/uni-app';
// 工具库
import util from '@/common/js/util.js'
//
import api from '@/api/index.js'
// 列表
const list = reactive([])
onLoad(() => {
// 获取浏览记录
historyView()
})
// 获取浏览记录
function historyView() {
api.shop.getHistoryView().then(res => {
if (res.code == 200) {
// 今天的年月日
let todayStr = getDate()
// 昨天的年月日
let yesterdayStr = getDate(-1)
// 列表
let arr = []
// 遍历原始数据
res.data.forEach(item => {
let date = item.browsingHistoryTime.split(' ')[0];
if (date == todayStr) date = '今天'
else if (date == yesterdayStr) date = '昨天'
let findResult = arr.find(r => r.date === date);
// 判断是否有时间 有在列表追加 没有追加整个列表
if (findResult) findResult.list.push(item);
else arr.push({
date: date,
list: [item]
})
});
// 列表
list.push(...arr)
return
}
util.alert({
content: res.msg,
showCancel: false
})
})
}
// 获取日期
function getDate(offset = 0) {
// 创建一个新的 Date 对象,表示当前时间
let today = new Date();
// 使用 setDate 方法将日期设置为偏移后的日期getDate() 获取当前日期offset 表示偏移量,-1 表示昨天0 表示今天1 表示明天,以此类推
today.setDate(today.getDate() + offset);
// 获取年
let year = today.getFullYear();
// 获取月,需要注意的是 getMonth() 方法返回的月份是从 0 开始的,所以需要加 1
let month = today.getMonth() + 1;
// 获取日
let day = today.getDate();
// 格式化月和日,如果月或日小于 10在前面添加 0 以保持格式一致
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day;
// 返回格式化后的日期字符串
return `${year}-${month}-${day}`;
}
/**
* 跳转详情
* @param {Object} secItem
*/
function handleItem(secItem) {
uni.navigateTo({
url: util.setUrl('/pages/shop/commodity/index', {
productId: secItem.id
})
})
}
2024-12-27 15:03:48 +08:00
</script>
<template>
<view class="app">
<view class="list">
2025-01-15 23:47:08 +08:00
<view class="item mtb20 bfff" v-for="(item,index) in list" :key="index">
<view class="date ptb20 plr20 c333 f28">{{item.date}}</view>
<view class="product line df ptb20 plr20" v-for="(secItem,secIndex) in item.list" :key="index"
@click="handleItem(secItem)">
2024-12-27 15:03:48 +08:00
<view class="poster wh160">
2025-01-15 23:47:08 +08:00
<image class="wh160 br10" :src="secItem.sliderImage.split(',')[0]" mode="aspectFill" />
2024-12-27 15:03:48 +08:00
</view>
<view class="info df fdc jcsb f1 ml20">
2025-01-15 23:47:08 +08:00
<view class="name t2hd c333 f28">{{secItem.name}}</view>
2024-12-27 15:03:48 +08:00
<view class="other rows">
<view class="col c333">
<text class="f20"></text>
2025-01-15 23:47:08 +08:00
<text class="f30">{{secItem.price}}</text>
<text class="count ml20 fs0 c999 f24">销量{{secItem.sales}}</text>
2024-12-27 15:03:48 +08:00
</view>
<view class="btn ti warmHollow plr20">去购买</view>
</view>
</view>
</view>
</view>
</view>
2025-01-15 23:47:08 +08:00
<view class="fill" style="height: 30rpx;"></view>
2024-12-27 15:03:48 +08:00
</view>
</template>
<style lang="scss" scoped>
.list {
.item {
.date {
border-bottom: 2rpx solid #eee;
}
}
}
</style>