Kaynağa Gözat

新闻详情页

tangxijun 6 yıl önce
ebeveyn
işleme
8013843a35

+ 10 - 0
wx/fortnite_wx/src/components/newsList.vue

@@ -77,6 +77,16 @@ export default {
         // 存储在本地
         getNews (listItem) {
             client.getNewsSto(listItem)
+            let obj = {
+                id: listItem.id,
+                channelId: listItem.channelId
+            }
+            wx.setStorageSync('pageArg', obj)
+            wx.navigateTo({
+
+                url: '/pages/news/detail?'
+
+            })
         }
     },
     created () {

+ 40 - 66
wx/fortnite_wx/src/pages/news/detail.vue

@@ -4,57 +4,13 @@
         <scroll-view scroll-y class="scroll-view" @scroll="scroll">
             <div class="detail-content">
                 <div class="content-height">
-                    <div class="content-title">堡垒之夜第六赛季第十周任务图文攻略 第十周挑战汇总</div>
+                    <div class="content-title">{{articleContent.title}}</div>
                     <div class="author">
-                        作者:多玩堡垒之夜
-                        <span class="date">16小时前</span>
+                        作者:{{articleContent.author}}
+                        <span class="date">{{transDate}}</span>
                     </div>
                     <div class="content-article">
-                        前不久iG在18年度的颁奖盛典上成为最大的赢
-                        家,但是就在当晚,关于iG打野ning女友与领
-                        队阿宁之间的隔空互怼成为了头版头条,关于
-                        整个事情的始末相信很多人也都了解了,当然
-                        这件事最终以阿宁道歉暂时告一段落。虽说外
-                        界对于这件事的热度已经慢慢降温了,但俱乐
-                        部内部显然要对这件事进行处理的,毕竟对于
-                        一个俱乐部来说,形象工程永远还是要做好的。
-                        虽说外界对于这件事的热度已经慢慢降温了,
-                        但俱乐部内部显然要对这件事进行处理的,毕
-                        竟对于一个俱乐部来说,形象工程永远还是要
-                        做好的。 前不久iG在18年度的颁奖盛典上成为最大的赢
-                        家,但是就在当晚,关于iG打野ning女友与领
-                        队阿宁之间的隔空互怼成为了头版头条,关于
-                        整个事情的始末相信很多人也都了解了,当然
-                        这件事最终以阿宁道歉暂时告一段落。虽说外
-                        界对于这件事的热度已经慢慢降温了,但俱乐
-                        部内部显然要对这件事进行处理的,毕竟对于
-                        一个俱乐部来说,形象工程永远还是要做好的。
-                        虽说外界对于这件事的热度已经慢慢降温了,
-                        但俱乐部内部显然要对这件事进行处理的,毕
-                        竟对于一个俱乐部来说,形象工程永远还是要
-                        做好的。 前不久iG在18年度的颁奖盛典上成为最大的赢
-                        家,但是就在当晚,关于iG打野ning女友与领
-                        队阿宁之间的隔空互怼成为了头版头条,关于
-                        整个事情的始末相信很多人也都了解了,当然
-                        这件事最终以阿宁道歉暂时告一段落。虽说外
-                        界对于这件事的热度已经慢慢降温了,但俱乐
-                        部内部显然要对这件事进行处理的,毕竟对于
-                        一个俱乐部来说,形象工程永远还是要做好的。
-                        虽说外界对于这件事的热度已经慢慢降温了,
-                        但俱乐部内部显然要对这件事进行处理的,毕
-                        竟对于一个俱乐部来说,形象工程永远还是要
-                        做好的。 前不久iG在18年度的颁奖盛典上成为最大的赢
-                        家,但是就在当晚,关于iG打野ning女友与领
-                        队阿宁之间的隔空互怼成为了头版头条,关于
-                        整个事情的始末相信很多人也都了解了,当然
-                        这件事最终以阿宁道歉暂时告一段落。虽说外
-                        界对于这件事的热度已经慢慢降温了,但俱乐
-                        部内部显然要对这件事进行处理的,毕竟对于
-                        一个俱乐部来说,形象工程永远还是要做好的。
-                        虽说外界对于这件事的热度已经慢慢降温了,
-                        但俱乐部内部显然要对这件事进行处理的,毕
-                        竟对于一个俱乐部来说,形象工程永远还是要
-                        做好的。
+                        <wxParse :content="articleContent.content"/>
                     </div>
                 </div>
                 <div class="content-comment">
@@ -64,15 +20,15 @@
                     </div>
                     <CommentsList></CommentsList>
                 </div>
-                <div class="comment-wrapper">
-                    <input type="text" class="comment-input" placeholder="立即评论" @confirm="handleCommentSubmit" v-model="comment">
-                    <div class="comment-right-box">
-                        <div class="reply-msg">{{text}}</div>
-                        <i class="share"></i>
-                    </div>
-                </div>
             </div>
         </scroll-view>
+        <div class="comment-wrapper">
+            <input type="text" class="comment-input" placeholder="吐槽一下" @confirm="handleCommentSubmit" v-model="comment">
+            <div class="comment-right-box">
+                <div class="reply-msg">{{text}}</div>
+                <i class="share"></i>
+            </div>
+        </div>
     </div>
 </template>
 
@@ -82,17 +38,19 @@ import scrollTab from '@/components/scroll-tab'
 import tabBar from '@/components/tabBar'
 import newsList from '@/components/newsList'
 import CommentsList from '@/components/comments-list'
+import { lib } from '@/utils/lib.js'
 
 // import { lib } from '@/utils/lib.js'
-// import { client } from '@/utils/client.js'
-
+import { client } from '@/utils/client.js'
+import wxParse from 'mpvue-wxparse'
 export default {
     components: {
         navigation,
         scrollTab,
         tabBar,
         newsList,
-        CommentsList
+        CommentsList,
+        wxParse
     },
     computed: {},
     data () {
@@ -100,13 +58,22 @@ export default {
             screenWidth: 0,
             screenHeight: 0, // 屏幕高度
             text: '169',
-            scrollHeight: 0
+            scrollHeight: 0,
+            articleContent: {},
+            transDate: ''
         }
     },
     watch: {
 
     },
     methods: {
+        getHeight () {
+            let _this = this
+            wx.createSelectorQuery().selectAll('.content-height')
+                .boundingClientRect(function (rect) {
+                    _this.scrollHeight = _this.transPx(rect[0].height)
+                }).exec()
+        },
         transPx (num) {
             let _this = this
             wx.getSystemInfo({
@@ -120,21 +87,24 @@ export default {
         },
         scroll (e) {
             let scrollTop = e.target.scrollTop
-            console.log(scrollTop, this.scrollHeight)
             if (scrollTop > this.scrollHeight) {
                 this.text = '正文'
+            } else {
+                this.text = '169'
             }
         },
         handleCommentSubmit () { }
     },
     mounted () {
-        let _this = this
+        // 正文
+        this.getHeight()
 
-        wx.createSelectorQuery().selectAll('.content-height')
-            .boundingClientRect(function (rect) {
-                _this.scrollHeight = _this.transPx(rect[0].height)
-                // console.log(_this.scrollHeight)
-            }).exec()
+        let arg = wx.getStorageSync('pageArg')
+        client.getArticleDetail(arg).then(data => {
+            console.log(data)
+            this.articleContent = data.data.data.article
+            this.transDate = lib.handleNewsTime(this.articleContent.publishTime)
+        })
     }
 
 }
@@ -142,6 +112,9 @@ export default {
 
 <style lang="scss">
 .news-detail {
+    strong {
+        color: red;
+    }
     .scroll-view {
         position: absolute;
         top: 128rpx;
@@ -224,6 +197,7 @@ export default {
             left: 20rpx;
         }
     }
+
     .comment-right-box {
         display: flex;
         align-items: center;

+ 12 - 4
wx/fortnite_wx/src/pages/user/index.vue

@@ -21,7 +21,7 @@
                 <img :src="imgUrl" alt="" class="user-headimg" @click="deleteInfo">
             </div>
             <div class="user-detail-list">
-                <a class="user-info-list top-line" href="/pages/user/footprint" @click="toFootprint">
+                <a class="user-info-list top-line" href="#" @click="toFootprint">
                     <div class="list-left">
                         <span class="list-left-icon"></span>
                         <span>我的足迹</span>
@@ -52,7 +52,7 @@
             </div>
         </div>
         <tab-bar :selectNavIndex="selectNavIndex" @tabBarChange="tabBarChange"></tab-bar>
-        <!-- <authorization v-if="authorizationShow" @confirm="confirm" @cancel="cancel"></authorization> -->
+        <authorization v-if="authorizationShow" @confirm="confirm" @cancel="cancel"></authorization>
     </div>
 </template>
 <script>
@@ -97,13 +97,21 @@ export default {
         cancel () {
             this.authorizationShow = false
         },
+        // 跳转到我的足迹页面
         async  toFootprint () {
-
+            client.loginCheck().then(data => {
+                console.log(data)
+                if (!data) {
+                    this.authorizationShow = true
+                } else {
+                    wx.navigateTo({ url: '/pages/user/footprint' })
+                }
+            })
         },
-
         checkLogin () {
             // 判断是否已经登录
             client.loginCheck().then(data => {
+                console.log(data)
                 if (data) {
                     this.hasLogin()
                 }

+ 32 - 3
wx/fortnite_wx/src/utils/client.js

@@ -11,6 +11,30 @@ export const client = {
             wx.request({
                 url: `${api}/index.php?r=news/list&tag=${type}&pageNo=${currentPage}&pageSize=5`,
                 data: param,
+                method: 'GET',
+                header: {
+                    'content-type': 'application/json' // 默认值
+                },
+                success: function (p) {
+                    let str = JSON.stringify(p)
+                    resolve(JSON.parse(str))
+                },
+                fail (error) {
+                    reject(error)
+                }
+            })
+        })
+    },
+    // 获取新闻文章详情接口
+    getArticleDetail (data, currentPage, type) {
+        return new Promise(function (resolve, reject) {
+            let param = data
+            wx.request({
+                url: `${api}/index.php?r=news/article&article_id=${
+                    data.id
+                }&channelId=${data.channelId}`,
+                data: param,
+                method: 'GET',
                 header: {
                     'content-type': 'application/json' // 默认值
                 },
@@ -83,11 +107,9 @@ export const client = {
                 },
                 success: function (p) {
                     let str = JSON.stringify(p)
-                    console.log(str)
                     resolve(JSON.parse(str))
                 },
                 fail (error) {
-                    console.log(error)
                     reject(error)
                 }
             })
@@ -222,7 +244,7 @@ export const client = {
             // 如果当前浏览已经存在本地存储,不执行一下操作
             if (!this.filterRec(storage, listItem)) return
             // 判断当天是否已经存储过记录
-            if (timestamp - storage[0].date >= 3) {
+            if (timestamp - storage[0].date >= 86400) {
                 // 保存近七天记录
                 console.log(arr.length)
                 if (arr.length > 6) {
@@ -268,5 +290,12 @@ export const client = {
             list[index].date = res
         })
         return list
+    },
+    getQuery () {
+        /* 获取当前路由栈数组 */
+        // const pages = getCurrentPages()
+        // const currentPage = pages[pages.length - 1]
+        // const options = currentPage.options
+        // return options
     }
 }