3
tj
2025-05-22 14764dd7679369a650ad1d60be62aacc863755a1
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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
<template>
    <!-- <view :class="['app', theme]"> -->
    <view>
        <view class="page">
            <u-sticky bgColor="#fff">
                <view class="card-footer">
                    <view class="user-info">
                        <u-avatar :src="user.avatar" size="60" shape="circle" />
                        <view class="user-text">
                            <text class="nickname">{{ user.username }}</text>
                            <!-- <text class="date">{{ item.date }}</text> -->
                        </view>
                    </view>
                    <view class="opera-info">
 
                        <button class="custom-btn">关注</button>
 
                        <u-icon name="/static/common/share2.png" size="40" color="#999" />
                    </view>
                </view>
            </u-sticky>
            <scroll-view class="content" scroll-y>
                <view class="swiper-container">
                    <swiper :current="currentNum" @change="onSwiperChange" circular :autoplay="false"
                        class="custom-swiper">
                        <swiper-item v-for="(item, index) in list6" :key="index" class="swiper-item">
                            <image :src="item" mode="aspectFill" class="swiper-image" @tap="previewImage(index)" />
                        </swiper-item>
                    </swiper>
 
                    <!-- 自定义右上角索引 -->
                    <view class="indicator-num">
                        <text class="indicator-num__text">
                            {{ currentNum + 1 }}/{{ list6.length }}
                        </text>
 
                    </view>
                </view>
 
 
                <view class="article-content">
                    <view class="title content-item">
                        <text>我是标题标题我是标题标题我是标题标题我是标题标题</text>
                    </view>
 
                    <view class="content-item">
                        <rich-text :nodes="desc"></rich-text>
                    </view>
                    <view class="annotation content-item">
                        <text>4分钟前 美国</text>
                    </view>
                </view>
 
                <u-line></u-line>
 
                <view class="comment">
 
                    <view class="writer-view">
                        <u-icon name="chat-fill" size="60" @click="showCommentLayer"></u-icon>
                        <view class="comment-operation" @click="showCommentLayer">
                            <u-text size="12px" text="说点什么......" margin="0rpx 0rpx 0rpx 20rpx"
                                color="#B9B9B9"></u-text>
                        </view>
                    </view>
 
 
                    <comment-item avatar="https://img.yzcdn.cn/vant/cat.jpeg" nickname="图墙精选" :isAuthor="true"
                        content="如果路线里全是常规景区,没一个特殊的点位,那就是普通团,除非他的住宿安排的很好。。要不然和普通团没任何区别,都是去景区挤,然后上车赶路" :images="urls2"
                        date="2天前" address="湖北" :likes="30" @reply="showCommentLayer" />
 
                </view>
            </scroll-view>
 
            <!-- 固定底部输入框 -->
            <view class="comment-box">
                
                <view class="input-row">
                    <view class="comment-input" @click="showCommentLayer">
                        <u-text size="12px" text="说点什么......" margin="0rpx 0rpx 0rpx 20rpx" color="#B9B9B9"
                            confirmType="send"></u-text>
                    </view>
                    <u-icon name="heart" size="60" color="#B9B9B9" label="11"></u-icon>
                    <u-icon name="star" size="60" color="#B9B9B9" label="22"></u-icon>
                    <u-icon name="chat" size="60" color="#B9B9B9" label="33"></u-icon>
                </view>
            </view>
 
        </view>
        <comment-popup v-model="commentShow" />
    </view>
</template>
<script>
 
export default {
    components: {
 
    },
    data() {
        return {
            commentShow: false,
            commentContent: '',
            value1: 0,
            current: 0,
            currentNum: 0,
            desc: `😭……
刚从新疆旅游回来,真的踩了好多坑!!打算假期去新疆的姐妹们一定要做好攻略再来!!
真的会少踩很多坑!熬夜整理这篇作为普通游客的避坑建议,一定要先看看!!
.
✅【新疆全年玩法】
🚩11-3月:北疆喀纳斯、禾木玩雪;南疆慕士塔格冰川、喀什古城
🚩4-5月:伊犁土尔根杏花沟;南疆帕米尔杏花、大西沟杏花、库里塔格沙漠
🚩6-8月:伊犁那拉提草原、喀拉峻草原、赛里木湖、独库公路、喀纳斯
🚩9-10月:北疆喀纳斯、禾木;南疆胡杨林、罗布人村寨
.
❇️【自驾or跟团】
✔️新疆每天路程比较远,自驾可能有点累,而且景点比较分散,可以选择报个小团,都是年轻人,玩的也自由。
❌不建议大团喔,人多且很多时间在等人,并且有好看的风景不能随走随停!
.
🚘【路线推荐】
✨D1:乌市—S201沙漠公路—乌伦古湖—五彩滩一布尔津
✨D2:布尔津—禾木桥—禾木村—禾木星空—住禾木
✨D3:禾木一观鱼亭一神仙湾月亮湾卧龙湾一住贾登峪/喀纳斯
✨D4:贾登峪一乌尔禾魔鬼城—乌尔禾
✨D5:乌尔禾一赛里木湖一果子沟大桥—清水河
✨D6:清水河—琼库什台-住特克斯
✨D7:琼库什台—那拉提
✨D8:那拉提—独库公路北段—唐布拉百里画廊—乌鲁木齐<br/>
.
#新疆是个好地方 #新疆旅行攻略 #新疆旅游 #不翻车旅行 #新疆小团 #新疆定制游 #旅游不踩坑 #新疆环线`,
            user: {
                id: 3,
                username: '图墙精选',
                avatar: 'https://img.yzcdn.cn/vant/cat.jpeg',
 
            },
            list6: [
                "https://ai-public.mastergo.com/ai/img_res/6a226f9e9652c51cd535c3490535dfeb.jpg",
                "https://img.yzcdn.cn/vant/cat.jpeg",
                "https://ai-public.mastergo.com/ai/img_res/6a226f9e9652c51cd535c3490535dfeb.jpg",
            ],
            inputValue: '',
            urls2: [
                "https://img.yzcdn.cn/vant/cat.jpeg"
            ],
        }
    },
    onLoad(options) {
        // 尝试读取缓存设置的主题
        console.log("theme", uni.getStorageSync('theme'))
        const theme = uni.getStorageSync('theme') || 'light'
        this.theme = theme
 
 
    },
    methods: {
        onSwiperChange(e) {
            this.currentNum = e.detail.current;
        },
        previewImage(index) {
            uni.previewImage({
                current: this.list6[index],
                urls: this.list6
            });
        },
        click1(e) { console.log('click1', e); },
        submitComment() {
            if (!this.inputValue) return;
            this.comments.push(this.inputValue);
            this.inputValue = '';
        },
 
        showCommentLayer(e) {
            this.commentShow = true
        },
        open() {
            // console.log('open');
        },
        close() {
            this.commentShow = false
            // console.log('close');
        }
 
    }
}
</script>
 
<style scoped>
.page {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background-color: #fff;
}
 
.swiper-container {
    position: relative;
    width: 100%;
    height: 500rpx;
}
 
.custom-swiper {
    width: 100%;
    height: 100%;
}
 
.swiper-item {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
 
}
 
.swiper-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
 
.indicator-num {
    position: absolute;
    top: 20rpx;
    right: 20rpx;
    padding: 4rpx 12rpx;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 20rpx;
}
 
.indicator-num__text {
    color: #fff;
    font-size: 24rpx;
}
</style>
 
<style lang="scss" scoped>
.card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10rpx;
    background-color: #FFFFFF;
}
 
.user-info {
    display: flex;
    align-items: center;
 
    .user-text {
        font-size: 30rpx;
        line-height: 30px;
        margin-left: 10rpx;
 
        .nickname {
            font-weight: bold;
            display: block;
            color: #646464;
            letter-spacing: 2rpx;
        }
 
        .date {
            font-size: 12px;
            color: #aaa;
            margin-top: 10rpx;
        }
    }
}
 
.opera-info {
    display: flex;
    align-items: center;
 
    text {
        margin-left: 10rpx;
        font-size: 12px;
    }
}
 
.content {
    .annotation {
        margin-top: 10rpx;
        font-size: 20rpx;
        color: #646464;
    }
}
 
.comment {
    margin: 10rpx;
 
    // border-top: 1rpx solid #EBEBEB;
    .writer-view {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 30rpx;
 
        .comment-operation {
            font-size: 18rpx;
            background-color: #F4F4F6;
            height: 30px;
            line-height: 30px;
            border-radius: 20px;
            width: 92%;
        }
    }
 
 
}
 
.article-content {
    padding: 10rpx;
    font-size: 32rpx;
    letter-spacing: 1rpx;
 
    .title {
        font-size: 36rpx;
        font-weight: bold;
    }
 
    .content-item {
        margin-bottom: 20rpx;
    }
}
 
 
.comment-box {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20rpx 20rpx;
    background-color: #fff;
    box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
    z-index: 999;
    height: 100rpx;
    .input-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 80%;
 
        .comment-input {
            width: 300rpx;
            background-color: #F4F4F6;
            border-radius: 50rpx;
            height: 60rpx;
            display: flex;
            align-items: center;
        }
    }
 
    .flex-input {
        flex: 1;
        margin-right: 10rpx;
    }
}
 
.comment-popup {
    margin: 20rpx;
 
    .comment-btn-view {
        margin-top: 20rpx;
        display: flex;
        justify-content: space-between;
    }
    .comment-btn-icon{
        display: flex;
    }
    .comment-btn{
 
    }
}
</style>
 
 
<style scoped>
.custom-btn {
    /* background-color: #ff4d4f; */
    margin: 0 10rpx;
    /* 自定义背景色 */
    color: #ff4d4f;
    /* 字体颜色 */
    font-size: 20rpx;
    /* 字体大小 */
    border-radius: 50rpx;
    /* 圆角 */
    padding: 10rpx 20rpx;
    /* 内边距 */
    border: 1px solid #ff4d4f;
    /* 去除边框 */
    line-height: 1;
}
 
.custom-btn::after {
    border: none;
    /* 去除点击阴影边框 */
}
</style>
 
<style scoped>
.page {
    height: 100vh;
    display: flex;
    flex-direction: column;
}
 
.content {
    flex: 1;
    overflow-y: auto;
    padding-bottom: 80rpx;
    /* 留出评论区高度,避免遮挡 */
}
</style>