darenListCom.vue
8.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<template>
<div class="daren-list-com" v-if="item">
<div class="box" @click.stop.prevent @click="jump(item)">
<div class="top-box" v-if="item.shop_user" @click.stop.prevent @click="userJump(item,2)">
<div class="top-left">
<!-- 用户头像/昵称 -->
<user-avatar class="user-avatar-box"
:users="item.shop_user">
</user-avatar>
</div>
<div class="top-right">
<!-- 发布时间 -->
<div class="day" v-if="getDatetime(item.addtime, item.time).day">
{{getDatetime(item.addtime, item.time).day}}
</div>
<div class="date">{{getDatetime(item.addtime, item.time).date}}</div>
</div>
</div>
<!-- 动态简介 -->
<div class="intro-box" v-if="item.title">
{{item.title}}
</div>
<!-- 中间图片部分 -->
<div class="center-box" v-if="item.img">
<!-- 达人图片展示(单独组建处理,宫格形式) -->
<palace-grid
:grids="{
list:imgArr
}">
</palace-grid>
</div>
<!-- 底部部分 -->
<div class="bottom-box" v-if="item.goods">
<!-- 热门信息 -->
<div class="hot-info-box" v-if="item&&item.comment_content&&item.comment_content.content">
<div class="hot-img-box">
<img src="static/img/icon_popular_comment.png" class="hot-img" mode="heightFix" />
</div>
<div class="line"></div>
<div class="info">
{{item.comment_content.content}}
</div>
</div>
<div class="goods-box">
<!-- 商品标签组建 -->
<div class="goods">
<!-- goodsItem_4 -->
<goods-item-4 @jump="goodsJump" @primary="goodsPrimary"
:item="item.goods">
</goods-item-4>
</div>
</div>
<!-- 评论/点赞/查看按钮 -->
<div class="comment-like-view-box">
<div class="left">
<!-- 评论 -->
<div class="comment-box" v-if="item.comment">
<img src="static/img/icon_daren_list_comment.png" class="icon-img" />
<div class="number">{{item.comment}}</div>
</div>
<!-- 点赞 -->
<div class="like-box" v-if="item.upper">
<img src="static/img/icon_daren_list_like.png" class="icon-img" />
<div class="number">{{item.upper}}</div>
</div>
</div>
<div class="right">
查看
</div>
</div>
</div>
</div>
</div>
</template>
<script>
// 引入组件
import userAvatar from "@/components/userAvatarBox/userAvatarBox";
import palaceGrid from "@/components/palaceGrid/palaceGrid";
import goodsItem4 from "@/components/goodsItem_4/goodsItem_4";
export default {
name: "darenListCom",
data() {
return {
imgArr: []
}
},
props: ["item"],
computed: {
// 计算显示日期
getDatetime() {
function isLeapYear(year) {
if (year % 4 == 0&&year % 100 != 0||year % 400 ==0) {
return true;
} else {
return false;
}
}
return function(addTime, nowTime, index = undefined) {
// 返回数据
let result = {
year: "",
day: "",
date: ""
};
// 设置时间对象
let now = new Date(nowTime * 1000);
let add = new Date(addTime * 1000);
// 一年中的第几天
let nowDays = Math.ceil(( now - new Date(now.getFullYear().toString())) / (24 * 60 * 60 * 1000)) + 1;
let addDays = Math.ceil(( add - new Date(add.getFullYear().toString())) / (24 * 60 * 60 * 1000)) + 1;
// 根据情况,判断今天/昨天/前天
if (nowDays === addDays && now.getFullYear() === add.getFullYear()) { // 今天
result.year = "";
result.day = "";
result.date = (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
} else if (nowDays > addDays && now.getFullYear() === add.getFullYear()) { // 正常大于,判断大于多少,设置昨天/前天/日期
result.year = "";
if (nowDays - addDays === 1) {
result.day = "昨天";
result.date = (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
} else if (nowDays - addDays === 2) {
result.day = "前天";
result.date = (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
} else {
result.day = "";
result.date = (add.getMonth() + 1) + "-" + add.getDate() + " " + (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
}
} else if (now.getFullYear() > add.getFullYear()) { // 跨年,判断设置年份和闰年等,设置昨天/前天/日期
// 设置年
if (!this.years.includes(add.getFullYear())) {
result.year = add.getFullYear();
this.years.push(add.getFullYear());
} else {
result.year = "";
}
// 一年的天数
let fullYearDay = 365;
// 判断是否为闰年
if (isLeapYear(add.getFullYear())) {
fullYearDay = 366;
}
// 判断是夸一年还是多年
if (now.getFullYear() - add.getFullYear() === 1) {
// 设置昨天/前天/日期
if (nowDays + fullYearDay - addDays === 1) {
result.day = "昨天";
result.date = (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
} else if (nowDays + fullYearDay - addDays === 2) {
result.day = "前天";
result.date = (add.getHours() >= 10 ? add.getHours() : "0" + add.getHours()) + ":" + (add.getMinutes() >= 10 ? add.getMinutes() : "0" + add.getMinutes());
}
} else {
result.day = "";
result.date = (add.getMonth() + 1) + "-" + add.getDate();
}
}
return result;
}
}
},
components: {
userAvatar,
palaceGrid,
goodsItem4
},
mounted() {
// 如果有图片数组,处理图片数组
if (this.item.img && this.item.img.length) {
// 遍历数组
this.item.img.forEach((item, index) => {
this.imgArr.push({
img: item,
w: 0,
h: 0
});
// 判断如果有视频,添加有视频属性到imgArr中
if (index === 0 && this.item.video && this.item.video_img) {
this.$set(this.imgArr[index], "v", true);
}
});
}
},
methods: {
/**
* 点击跳转
* @param {object} item [数据对象]
*/
jump(item) {
this.$emit("jump", item);
},
/**
* 用户头像/昵称,点击跳转
* @param {object} item [数据对象]
*/
userJump(item,type) {
this.$set(item, "type", "2");
this.$emit("userJump", item);
},
/**
* 点击跳转商品
* @param {object} item [数据对象]
*/
goodsJump(item) {
this.$emit("goodsJump", item);
},
/**
* 点击跳转商品购买
* @param {object} item [数据对象]
*/
goodsPrimary(item) {
this.$emit("goodsPrimary", item);
},
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style rel="stylesheet/less" lang="less" scoped>
@import './darenListCom';
</style>