123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- <template>
- <view class="container">
- <view class="no-footprint" v-if="footprintList.length <= 0">
- <view class="c">
- <text>没有浏览足迹</text>
- </view>
- </view>
- <view class="footprint" v-if="footprintList.length > 0">
- <view class="day-item" v-for="(item, index) in footprintList" :key="index">
- <view class="day-hd" v-if="item.length > 0">{{ item[0].addDate }}</view>
- <view class="day-list" v-if="item.length > 0">
- <view
- class="item"
- :data-index="index"
- :data-iindex="iindex"
- @touchstart="touchStartFun"
- @touchend="touchEndFun"
- @tap="deleteItem"
- v-for="(iitem, iindex) in item"
- :key="iindex"
- >
- <image class="img" :src="iitem.picUrl"></image>
- <view class="info">
- <view class="name">{{ iitem.name }}</view>
- <view class="subtitle">{{ iitem.brief }}</view>
- <view class="price">¥{{ iitem.retailPrice }}</view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- var util = require('../../../utils/util.js');
- var api = require('../../../config/api.js');
- var app = getApp();
- export default {
- data() {
- return {
- footprintList: [],
- page: 1,
- limit: 10,
- totalPages: 1,
- touchStart: '',
- touchEnd: '',
- iindex: 0,
- iitem: {
- picUrl: '',
- name: '',
- brief: '',
- retailPrice: ''
- }
- };
- },
- onLoad: function (options) {
- this.getFootprintList();
- },
- onReachBottom() {
- if (this.totalPages > this.page) {
- this.setData({
- page: this.page + 1
- });
- this.getFootprintList();
- } else {
- uni.showToast({
- title: '没有更多用户足迹了',
- icon: 'none',
- duration: 2000
- });
- return false;
- }
- },
- onReady: function () {},
- onShow: function () {},
- onHide: function () {
- // 页面隐藏
- },
- onUnload: function () {
- // 页面关闭
- },
- methods: {
- getFootprintList() {
- uni.showLoading({
- title: '加载中...'
- });
- let that = this;
- util.request(api.FootprintList, {
- page: that.page,
- limit: that.limit
- }).then(function (res) {
- if (res.errno === 0) {
- let f1 = that.footprintList;
- let f2 = res.data.list;
- for (let i = 0; i < f2.length; i++) {
- f2[i].addDate = f2[i].addTime.substring(0, 10);
- let last = f1.length - 1;
- if (last >= 0 && f1[last][0].addDate === f2[i].addDate) {
- f1[last].push(f2[i]);
- } else {
- let tmp = [];
- tmp.push(f2[i]);
- f1.push(tmp);
- }
- }
- that.setData({
- footprintList: f1,
- totalPages: res.data.pages
- });
- }
- uni.hideLoading();
- });
- },
- deleteItem(event) {
- let that = this;
- let index = event.currentTarget.dataset.index;
- let iindex = event.currentTarget.dataset.iindex;
- let footprintId = this.footprintList[index][iindex].id;
- let goodsId = this.footprintList[index][iindex].goodsId;
- var touchTime = that.touchEnd - that.touchStart;
- console.log(touchTime);
- //如果按下时间大于350为长按
- if (touchTime > 350) {
- uni.showModal({
- title: '',
- content: '要删除所选足迹?',
- success: function (res) {
- if (res.confirm) {
- util.request(
- api.FootprintDelete,
- {
- id: footprintId
- },
- 'POST'
- ).then(function (res) {
- if (res.errno === 0) {
- uni.showToast({
- title: '删除成功',
- icon: 'success',
- duration: 2000
- });
- that.footprintList[index].splice(iindex, 1);
- if (that.footprintList[index].length == 0) {
- that.footprintList.splice(index, 1);
- }
- that.setData({
- footprintList: that.footprintList
- });
- }
- });
- }
- }
- });
- } else {
- uni.navigateTo({
- url: '/pages/goods/goods?id=' + goodsId
- });
- }
- },
- //按下事件开始
- touchStartFun: function (e) {
- let that = this;
- that.setData({
- touchStart: e.timeStamp
- });
- console.log(e.timeStamp + '- touchStart');
- },
- //按下事件结束
- touchEndFun: function (e) {
- let that = this;
- that.setData({
- touchEnd: e.timeStamp
- });
- console.log(e.timeStamp + '- touchEnd');
- }
- }
- };
- </script>
- <style>
- page {
- background: #f4f4f4;
- min-height: 100%;
- }
- .container {
- background: #f4f4f4;
- min-height: 100%;
- width: 100%;
- height: auto;
- overflow: hidden;
- }
- .no-footprint {
- width: 100%;
- height: auto;
- margin: 0 auto;
- }
- .no-footprint .c {
- width: 100%;
- height: auto;
- margin-top: 400rpx;
- }
- .no-footprint .c text {
- margin: 0 auto;
- display: block;
- width: 258rpx;
- height: 29rpx;
- line-height: 29rpx;
- text-align: center;
- font-size: 29rpx;
- color: #999;
- }
- .footprint {
- height: auto;
- overflow: hidden;
- width: 100%;
- border-top: 1px solid #e1e1e1;
- }
- .day-item {
- height: auto;
- overflow: hidden;
- width: 100%;
- margin-bottom: 20rpx;
- }
- .day-hd {
- height: 94rpx;
- width: 100%;
- line-height: 94rpx;
- background: #fff;
- padding-left: 30rpx;
- color: #333;
- font-size: 28rpx;
- }
- .day-list {
- width: 100%;
- height: auto;
- overflow: hidden;
- background: #fff;
- padding-left: 30rpx;
- border-top: 1px solid #e1e1e1;
- }
- .item {
- height: 212rpx;
- width: 720rpx;
- background: #fff;
- padding: 30rpx 30rpx 30rpx 0;
- border-bottom: 1px solid #e1e1e1;
- }
- .item:last-child {
- border-bottom: 1px solid #fff;
- }
- .item .img {
- float: left;
- width: 150rpx;
- height: 150rpx;
- }
- .item .info {
- float: right;
- width: 540rpx;
- height: 150rpx;
- display: flex;
- flex-direction: column;
- justify-content: center;
- padding-left: 20rpx;
- }
- .item .info .name {
- font-size: 28rpx;
- color: #333;
- line-height: 40rpx;
- }
- .item .info .subtitle {
- margin-top: 8rpx;
- font-size: 24rpx;
- color: #888;
- line-height: 40rpx;
- }
- .item .info .price {
- margin-top: 8rpx;
- font-size: 28rpx;
- color: #333;
- line-height: 40rpx;
- }
- </style>
|