Merge branch 'feature/0530' into release/6.9.5
Showing
12 changed files
with
165 additions
and
69 deletions
@@ -25,6 +25,7 @@ | @@ -25,6 +25,7 @@ | ||
25 | :add-type="1" | 25 | :add-type="1" |
26 | :user="parentComment.userName" | 26 | :user="parentComment.userName" |
27 | :column-type="columnType" | 27 | :column-type="columnType" |
28 | + :share="share" | ||
28 | @on-comment="onReply"> | 29 | @on-comment="onReply"> |
29 | {{parentComment.content}} | 30 | {{parentComment.content}} |
30 | </CommentPlaceholder> | 31 | </CommentPlaceholder> |
@@ -39,6 +40,7 @@ | @@ -39,6 +40,7 @@ | ||
39 | :add-type="1" | 40 | :add-type="1" |
40 | :user="reply.userName" | 41 | :user="reply.userName" |
41 | :column-type="columnType" | 42 | :column-type="columnType" |
43 | + :share="share" | ||
42 | @on-comment="onReplyChildren"> | 44 | @on-comment="onReplyChildren"> |
43 | <span class="reply-user">{{reply.userName}}</span> | 45 | <span class="reply-user">{{reply.userName}}</span> |
44 | <template v-if="reply.parentUserName"> | 46 | <template v-if="reply.parentUserName"> |
@@ -68,6 +70,7 @@ export default { | @@ -68,6 +70,7 @@ export default { | ||
68 | type: Number, | 70 | type: Number, |
69 | default: 1001 | 71 | default: 1001 |
70 | }, | 72 | }, |
73 | + share: Boolean, | ||
71 | posId: Number, | 74 | posId: Number, |
72 | articleId: Number | 75 | articleId: Number |
73 | }, | 76 | }, |
@@ -147,51 +147,53 @@ export default { | @@ -147,51 +147,53 @@ export default { | ||
147 | } | 147 | } |
148 | } | 148 | } |
149 | 149 | ||
150 | + if (!get(result, 'data.total')) { | ||
151 | + this.empty = true; | ||
152 | + } else { | ||
153 | + this.empty = false; | ||
154 | + } | ||
155 | + | ||
150 | return result; | 156 | return result; |
151 | }, | 157 | }, |
152 | async fetchComments(pre) { | 158 | async fetchComments(pre) { |
153 | const result = await this.fetchCommentsAsync(pre); | 159 | const result = await this.fetchCommentsAsync(pre); |
154 | - let dirty = false; | 160 | + let dirty = true; |
155 | 161 | ||
156 | if (result.code === 200) { | 162 | if (result.code === 200) { |
157 | const comments = get(result, 'data.commentInfos', []); | 163 | const comments = get(result, 'data.commentInfos', []); |
158 | 164 | ||
159 | - if (!get(result, 'data.total')) { | ||
160 | - this.empty = true; | ||
161 | - } else { | ||
162 | - if (comments.length) { | ||
163 | - this.empty = false; | ||
164 | - this.$emit('on-page-change', { | ||
165 | - page: result.data.page, | ||
166 | - size: result.data.total | ||
167 | - }); | 165 | + if (comments.length) { |
166 | + this.$emit('on-page-change', { | ||
167 | + page: result.data.page, | ||
168 | + size: result.data.total | ||
169 | + }); | ||
168 | 170 | ||
169 | - if (pre) { | ||
170 | - this.commentPreList.unshift(comments); | ||
171 | - this.$nextTick(() => { | ||
172 | - this.loadPreComment(); | ||
173 | - }); | ||
174 | - } else { | ||
175 | - if (this.page <= 2) { | ||
176 | - this.commentList = comments; | ||
177 | - | ||
178 | - // 将评论滚动到可视区域 | ||
179 | - if (this.commentId) { | ||
180 | - setTimeout(() => { | ||
181 | - let scrollHeight = this.$refs.scroll.$el.offsetHeight; | ||
182 | - let dom = this.$refs.commentList.getElementsByClassName('comment-' + this.commentId); | ||
183 | - | ||
184 | - if (scrollHeight && dom.length && (dom[0].offsetHeight + dom[0].offsetTop > scrollHeight)) { | ||
185 | - this.$refs.scroll.scrollTo(0, scrollHeight - this.$refs.commentList.offsetHeight); | ||
186 | - } | ||
187 | - }, 500); | ||
188 | - } | ||
189 | - } else { | ||
190 | - this.commentList = this.commentList.concat(comments); | 171 | + if (pre) { |
172 | + this.commentPreList.unshift(comments); | ||
173 | + this.$nextTick(() => { | ||
174 | + this.loadPreComment(); | ||
175 | + }); | ||
176 | + } else { | ||
177 | + if (this.page <= 2) { | ||
178 | + this.commentList = comments; | ||
179 | + | ||
180 | + // 将评论滚动到可视区域 | ||
181 | + if (this.commentId) { | ||
182 | + setTimeout(() => { | ||
183 | + let scrollHeight = this.$refs.scroll.$el.offsetHeight; | ||
184 | + let dom = this.$refs.commentList.getElementsByClassName('comment-' + this.commentId); | ||
185 | + | ||
186 | + if (scrollHeight && dom.length && (dom[0].offsetHeight + dom[0].offsetTop > scrollHeight)) { | ||
187 | + this.$refs.scroll.scrollTo(0, scrollHeight - this.$refs.commentList.offsetHeight); | ||
188 | + } | ||
189 | + }, 500); | ||
191 | } | 190 | } |
191 | + } else { | ||
192 | + this.commentList = this.commentList.concat(comments); | ||
192 | } | 193 | } |
193 | - dirty = true; | ||
194 | } | 194 | } |
195 | + } else { | ||
196 | + dirty = false; | ||
195 | } | 197 | } |
196 | 198 | ||
197 | this.firstLoading = false; | 199 | this.firstLoading = false; |
@@ -89,6 +89,10 @@ export default { | @@ -89,6 +89,10 @@ export default { | ||
89 | }, | 89 | }, |
90 | methods: { | 90 | methods: { |
91 | onClick(e) { | 91 | onClick(e) { |
92 | + if (this.share) { | ||
93 | + return this.$links.toDownloadApp(); | ||
94 | + } | ||
95 | + | ||
92 | if (e.timeStamp - this._lastTime < 1200) { | 96 | if (e.timeStamp - this._lastTime < 1200) { |
93 | return; | 97 | return; |
94 | } | 98 | } |
apps/pages/article/article-detail-share.vue
0 → 100644
1 | +<template> | ||
2 | + <ArticleDetail :share="true" :set-share-data="setShareData"></ArticleDetail> | ||
3 | +</template> | ||
4 | + | ||
5 | +<script> | ||
6 | +import Share from 'plugins/share'; | ||
7 | +import {getDetailShareData} from 'utils/share-handler'; | ||
8 | +import ArticleDetail from './article-detail'; | ||
9 | + | ||
10 | +export default { | ||
11 | + name: 'ArticleDetailShare', | ||
12 | + mounted() { | ||
13 | + if (!this.$yoho.isApp) { | ||
14 | + Share.init(); | ||
15 | + } | ||
16 | + }, | ||
17 | + methods: { | ||
18 | + setShareData(article) { | ||
19 | + if (!article) { | ||
20 | + return; | ||
21 | + } | ||
22 | + | ||
23 | + let shareData = getDetailShareData(article); | ||
24 | + | ||
25 | + document && (document.title = shareData.title); | ||
26 | + | ||
27 | + if (!this.$yoho.isApp) { | ||
28 | + Share.setShareInfo(shareData); | ||
29 | + } | ||
30 | + } | ||
31 | + }, | ||
32 | + components: { | ||
33 | + ArticleDetail | ||
34 | + } | ||
35 | +}; | ||
36 | +</script> | ||
37 | + | ||
38 | +<style lang="scss" scoped> | ||
39 | +/deep/ { | ||
40 | + .article-detail-header { | ||
41 | + display: none; | ||
42 | + } | ||
43 | +} | ||
44 | +</style> |
@@ -2,8 +2,30 @@ | @@ -2,8 +2,30 @@ | ||
2 | <Layout class="article-detail"> | 2 | <Layout class="article-detail"> |
3 | <RecycleScrollReveal :size="10" ref="scroll" @scroll="onScroll" :offset="2000" :on-fetch="onFetch" :manual-init="true"> | 3 | <RecycleScrollReveal :size="10" ref="scroll" @scroll="onScroll" :offset="2000" :on-fetch="onFetch" :manual-init="true"> |
4 | <template v-slot:eternalTop> | 4 | <template v-slot:eternalTop> |
5 | - <ArticleDeatilLong v-if="articleInfo.sort == 2" ref="detailLong" :data="articleInfo" :scroll-top="scrollTop" :list-title="listTitle" :scroll-to="scrollTo" :pos-id="posId" @on-show-more="onShowMore" @on-follow="onFollowAuthor"></ArticleDeatilLong> | ||
6 | - <ArticleDeatilNote v-else ref="detailNote" :data="articleInfo" :scroll-top="scrollTop" :list-title="listTitle" :scroll-to="scrollTo" :pos-id="posId" @on-show-more="onShowMore" @on-follow="onFollowAuthor"></ArticleDeatilNote> | 5 | + <ArticleDeatilLong |
6 | + v-if="articleInfo.sort == 2" | ||
7 | + ref="detailLong" | ||
8 | + :data="articleInfo" | ||
9 | + :scroll-top="scrollTop" | ||
10 | + :list-title="listTitle" | ||
11 | + :scroll-to="scrollTo" | ||
12 | + :share="share" | ||
13 | + :pos-id="posId" | ||
14 | + @on-show-more="onShowMore" | ||
15 | + @on-follow="onFollowAuthor"> | ||
16 | + </ArticleDeatilLong> | ||
17 | + <ArticleDeatilNote | ||
18 | + v-else | ||
19 | + ref="detailNote" | ||
20 | + :data="articleInfo" | ||
21 | + :scroll-top="scrollTop" | ||
22 | + :list-title="listTitle" | ||
23 | + :scroll-to="scrollTo" | ||
24 | + :share="share" | ||
25 | + :pos-id="posId" | ||
26 | + @on-show-more="onShowMore" | ||
27 | + @on-follow="onFollowAuthor"> | ||
28 | + </ArticleDeatilNote> | ||
7 | </template> | 29 | </template> |
8 | <template class="article-item" #item="{ data }"> | 30 | <template class="article-item" #item="{ data }"> |
9 | <ArticleItem2 | 31 | <ArticleItem2 |
@@ -38,12 +60,15 @@ const {mapState, mapActions, mapMutations} = createNamespacedHelpers('article'); | @@ -38,12 +60,15 @@ const {mapState, mapActions, mapMutations} = createNamespacedHelpers('article'); | ||
38 | 60 | ||
39 | export default { | 61 | export default { |
40 | name: 'ArticleDetailPage', | 62 | name: 'ArticleDetailPage', |
63 | + props: { | ||
64 | + share: Boolean, | ||
65 | + setShareData: Function | ||
66 | + }, | ||
41 | data() { | 67 | data() { |
42 | return { | 68 | return { |
43 | id: 0, | 69 | id: 0, |
44 | scrollTop: 0, | 70 | scrollTop: 0, |
45 | scrolling: false, | 71 | scrolling: false, |
46 | - share: false, | ||
47 | listTitle: '', | 72 | listTitle: '', |
48 | colWidthForTwo: 370, | 73 | colWidthForTwo: 370, |
49 | posId: YAS.scene.newsDetail | 74 | posId: YAS.scene.newsDetail |
@@ -119,9 +144,13 @@ export default { | @@ -119,9 +144,13 @@ export default { | ||
119 | if (this.$refs.scroll) { | 144 | if (this.$refs.scroll) { |
120 | this.listTitle = ''; | 145 | this.listTitle = ''; |
121 | 146 | ||
122 | - this.$nextTick(() => { | 147 | + setTimeout(() => { |
123 | this.$refs.scroll.init(); | 148 | this.$refs.scroll.init(); |
124 | - }); | 149 | + }, 500); |
150 | + } | ||
151 | + | ||
152 | + if (this.share && this.setShareData) { | ||
153 | + this.setShareData(get(res, 'data.detailList[0]', this.articleInfo)); | ||
125 | } | 154 | } |
126 | }); | 155 | }); |
127 | }, | 156 | }, |
@@ -150,6 +150,10 @@ export default { | @@ -150,6 +150,10 @@ export default { | ||
150 | }, | 150 | }, |
151 | async praiseArticle(e) { | 151 | async praiseArticle(e) { |
152 | if (e.timeStamp - this._preTimeStamp < dblclickDdelay) { | 152 | if (e.timeStamp - this._preTimeStamp < dblclickDdelay) { |
153 | + if (this.share) { | ||
154 | + return this.$links.toDownloadApp(); | ||
155 | + } | ||
156 | + | ||
153 | const user = await this.$sdk.getUser(); | 157 | const user = await this.$sdk.getUser(); |
154 | 158 | ||
155 | if (user && user.uid) { | 159 | if (user && user.uid) { |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <span class="name">{{data.authorName}}</span> | 14 | <span class="name">{{data.authorName}}</span> |
15 | </div> | 15 | </div> |
16 | <div class="fav"> | 16 | <div class="fav"> |
17 | - <WidgetFav :articleId="data.articleId" :num="data.praiseCount" :option="favOption"></WidgetFav> | 17 | + <WidgetFav :articleId="data.articleId" :num="data.praiseCount" :share="share" :option="favOption"></WidgetFav> |
18 | </div> | 18 | </div> |
19 | </div> | 19 | </div> |
20 | </div> | 20 | </div> |
@@ -78,8 +78,10 @@ export default { | @@ -78,8 +78,10 @@ export default { | ||
78 | return get(get(this.data, 'blockList', []).filter(block => block.templateKey === 'text'), '[0].contentData', this.data.content); | 78 | return get(get(this.data, 'blockList', []).filter(block => block.templateKey === 'text'), '[0].contentData', this.data.content); |
79 | }, | 79 | }, |
80 | actionUrl() { | 80 | actionUrl() { |
81 | - if (this.data.sort === 3) { | ||
82 | - return this.data.actionUrl; | 81 | + if (!this.share) { |
82 | + if (this.data.sort === 3) { | ||
83 | + return this.data.actionUrl; | ||
84 | + } | ||
83 | } | 85 | } |
84 | 86 | ||
85 | return ''; | 87 | return ''; |
@@ -94,12 +96,6 @@ export default { | @@ -94,12 +96,6 @@ export default { | ||
94 | } | 96 | } |
95 | }, | 97 | }, |
96 | methods: { | 98 | methods: { |
97 | - onFollow(follow) { | ||
98 | - this.$emit('on-follow', follow); | ||
99 | - }, | ||
100 | - onPraise() { | ||
101 | - this.$refs.articleIntro.onPraise(); | ||
102 | - }, | ||
103 | toUserPage() { | 99 | toUserPage() { |
104 | if (this.share) { | 100 | if (this.share) { |
105 | return this.$links.toDownloadApp(); | 101 | return this.$links.toDownloadApp(); |
@@ -2,9 +2,9 @@ | @@ -2,9 +2,9 @@ | ||
2 | <div class="article-footer-wrapper"> | 2 | <div class="article-footer-wrapper"> |
3 | <slot name="before"></slot> | 3 | <slot name="before"></slot> |
4 | <div class="tool-bar"> | 4 | <div class="tool-bar"> |
5 | - <WidgetIconBtn ref="favIcon" class="item" type="fav" :pos-id="sceneId" :text="praiseCount" :articleId="articleId" :option="optionPraise"></WidgetIconBtn> | ||
6 | - <WidgetIconBtn class="item" type="star" :pos-id="sceneId" :text="favoriteCount" :articleId="articleId" :option="optionFav" ></WidgetIconBtn> | ||
7 | - <WidgetIconBtn class="item" type="msg" :text="commentCount" :option="optionComment" @click="onComment"></WidgetIconBtn> | 5 | + <WidgetIconBtn ref="favIcon" class="item" type="fav" :pos-id="sceneId" :text="praiseCount" :articleId="articleId" :option="optionPraise" :share="share"></WidgetIconBtn> |
6 | + <WidgetIconBtn class="item" type="star" :pos-id="sceneId" :text="favoriteCount" :articleId="articleId" :option="optionFav" :share="share"></WidgetIconBtn> | ||
7 | + <WidgetIconBtn class="item" type="msg" :text="commentCount" :option="optionComment" :share="share" @click="onComment"></WidgetIconBtn> | ||
8 | </div> | 8 | </div> |
9 | <slot name="after"> | 9 | <slot name="after"> |
10 | <div class="close ml20" @click="onClose">收起</div> | 10 | <div class="close ml20" @click="onClose">收起</div> |
@@ -18,7 +18,7 @@ import YAS from 'utils/yas-constants'; | @@ -18,7 +18,7 @@ import YAS from 'utils/yas-constants'; | ||
18 | 18 | ||
19 | export default { | 19 | export default { |
20 | name: 'ArticleFooter', | 20 | name: 'ArticleFooter', |
21 | - props: ['favoriteCount', 'praiseCount', 'commentCount', 'hasFavor', 'hasPraise', 'articleId'], | 21 | + props: ['favoriteCount', 'praiseCount', 'commentCount', 'hasFavor', 'hasPraise', 'articleId', 'share'], |
22 | data() { | 22 | data() { |
23 | return { | 23 | return { |
24 | optionComment: { | 24 | optionComment: { |
1 | <template> | 1 | <template> |
2 | <div class="article-detail-long"> | 2 | <div class="article-detail-long"> |
3 | - <ArticleDetailHeader ref="header" :data="data" :step="headerAnimateStep" :title-step="headerTitleAnimateStep"> | 3 | + <ArticleDetailHeader ref="header" class="article-detail-header" :data="data" :step="headerAnimateStep" :title-step="headerTitleAnimateStep"> |
4 | <div v-if="data.articleId && !data.empty" class="title-main"> | 4 | <div v-if="data.articleId && !data.empty" class="title-main"> |
5 | <div class="title-info" :style="`transform: translate3d(0, ${viewMoreArticles ? '-50%' : '0'}, 0)`"> | 5 | <div class="title-info" :style="`transform: translate3d(0, ${viewMoreArticles ? '-50%' : '0'}, 0)`"> |
6 | <ArticleItemHeader class="title-info-author" :share="share" :data="authorData" :lazy="lazy" :more="showMoreOpt" @on-follow="onFollowAuthor"></ArticleItemHeader> | 6 | <ArticleItemHeader class="title-info-author" :share="share" :data="authorData" :lazy="lazy" :more="showMoreOpt" @on-follow="onFollowAuthor"></ArticleItemHeader> |
@@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
24 | 24 | ||
25 | <div v-if="recomendProduct.length"> | 25 | <div v-if="recomendProduct.length"> |
26 | <LayoutTitle class="rec-goods-title">推荐商品</LayoutTitle> | 26 | <LayoutTitle class="rec-goods-title">推荐商品</LayoutTitle> |
27 | - <ProductGroup :data="recomendProduct" model="2"></ProductGroup> | 27 | + <ProductGroup :data="recomendProduct" :share="share" model="2"></ProductGroup> |
28 | </div> | 28 | </div> |
29 | 29 | ||
30 | <LayoutTitle v-if="listTitle" class="rec-article-title">{{listTitle}}</LayoutTitle> | 30 | <LayoutTitle v-if="listTitle" class="rec-article-title">{{listTitle}}</LayoutTitle> |
@@ -42,6 +42,7 @@ | @@ -42,6 +42,7 @@ | ||
42 | :popup="true" | 42 | :popup="true" |
43 | :article-id="data.articleId" | 43 | :article-id="data.articleId" |
44 | :commentCount="articleState.commentCount" | 44 | :commentCount="articleState.commentCount" |
45 | + :share="share" | ||
45 | :pos-id="posId" | 46 | :pos-id="posId" |
46 | @on-close="onCloseComment" | 47 | @on-close="onCloseComment" |
47 | @on-comment="onActionComment"></Comment> | 48 | @on-comment="onActionComment"></Comment> |
@@ -203,7 +204,8 @@ export default { | @@ -203,7 +204,8 @@ export default { | ||
203 | commentCount: this.articleState.commentCount, | 204 | commentCount: this.articleState.commentCount, |
204 | hasFavor: this.articleState.hasFavor, | 205 | hasFavor: this.articleState.hasFavor, |
205 | hasPraise: this.articleState.hasPraise, | 206 | hasPraise: this.articleState.hasPraise, |
206 | - articleId: this.data.articleId | 207 | + articleId: this.data.articleId, |
208 | + share: this.share | ||
207 | }; | 209 | }; |
208 | }, | 210 | }, |
209 | lazy() { | 211 | lazy() { |
1 | <template> | 1 | <template> |
2 | <div class="article-detail-notes"> | 2 | <div class="article-detail-notes"> |
3 | - <ArticleDetailHeader ref="header" :data="data" :step="100" :title-step="100"> | 3 | + <ArticleDetailHeader ref="header" class="article-detail-header" :data="data" :step="100" :title-step="100"> |
4 | <div v-if="data.articleId && !data.empty" class="title-main"> | 4 | <div v-if="data.articleId && !data.empty" class="title-main"> |
5 | <div class="title-info" :style="`transform: translate3d(0, ${viewMoreArticles ? '-50%' : '0'}, 0)`"> | 5 | <div class="title-info" :style="`transform: translate3d(0, ${viewMoreArticles ? '-50%' : '0'}, 0)`"> |
6 | <ArticleItemHeader class="title-info-author" :share="share" :data="authorData" :lazy="lazy" :more="false" @on-follow="onFollowAuthor"></ArticleItemHeader> | 6 | <ArticleItemHeader class="title-info-author" :share="share" :data="authorData" :lazy="lazy" :more="false" @on-follow="onFollowAuthor"></ArticleItemHeader> |
@@ -9,7 +9,9 @@ | @@ -9,7 +9,9 @@ | ||
9 | </div> | 9 | </div> |
10 | </ArticleDetailHeader> | 10 | </ArticleDetailHeader> |
11 | 11 | ||
12 | - <LayoutHeader style="visibility: hidden;"></LayoutHeader> | 12 | + <ArticleItemHeader v-if="share" :share="share" :data="authorData" :lazy="lazy" :more="false" @on-follow="onFollowAuthor"></ArticleItemHeader> |
13 | + <LayoutHeader v-else style="visibility: hidden;"></LayoutHeader> | ||
14 | + | ||
13 | <div v-if="data.empty" class="article-empty"> | 15 | <div v-if="data.empty" class="article-empty"> |
14 | {{data.emptyTip || '文章不存在或文章被删除'}} | 16 | {{data.emptyTip || '文章不存在或文章被删除'}} |
15 | </div> | 17 | </div> |
@@ -22,11 +24,11 @@ | @@ -22,11 +24,11 @@ | ||
22 | 24 | ||
23 | <div class="publish-time"> | 25 | <div class="publish-time"> |
24 | <span>{{publishTime}}</span> | 26 | <span>{{publishTime}}</span> |
25 | - <div v-if="data.articleId" class="more-wrap"> | 27 | + <div v-if="data.articleId && !share" class="more-wrap"> |
26 | <i class="iconfont icon-more1" @click="onMore"></i> | 28 | <i class="iconfont icon-more1" @click="onMore"></i> |
27 | </div> | 29 | </div> |
28 | </div> | 30 | </div> |
29 | - <ArticleDetailCommentList ref="commentList" v-if="data.articleId && !thumb" :article-id="data.articleId" :comment-count="articleState.commentCount"></ArticleDetailCommentList> | 31 | + <ArticleDetailCommentList ref="commentList" v-if="data.articleId && !thumb" :article-id="data.articleId" :share="share" :comment-count="articleState.commentCount"></ArticleDetailCommentList> |
30 | </div> | 32 | </div> |
31 | 33 | ||
32 | <div v-if="listTitle" class="rec-article-title"> | 34 | <div v-if="listTitle" class="rec-article-title"> |
@@ -156,7 +158,8 @@ export default { | @@ -156,7 +158,8 @@ export default { | ||
156 | commentCount: this.articleState.commentCount, | 158 | commentCount: this.articleState.commentCount, |
157 | hasFavor: this.articleState.hasFavor, | 159 | hasFavor: this.articleState.hasFavor, |
158 | hasPraise: this.articleState.hasPraise, | 160 | hasPraise: this.articleState.hasPraise, |
159 | - articleId: this.data.articleId | 161 | + articleId: this.data.articleId, |
162 | + share: this.share | ||
160 | }; | 163 | }; |
161 | }, | 164 | }, |
162 | publishTime() { | 165 | publishTime() { |
@@ -11,6 +11,7 @@ | @@ -11,6 +11,7 @@ | ||
11 | :parent-comment="comment.parentComment" | 11 | :parent-comment="comment.parentComment" |
12 | :children-comments="comment.childrenComments" | 12 | :children-comments="comment.childrenComments" |
13 | :column-type="columnType" | 13 | :column-type="columnType" |
14 | + :share="share" | ||
14 | :pos-id="0" | 15 | :pos-id="0" |
15 | :article-id="articleId" | 16 | :article-id="articleId" |
16 | @on-reply="onReply"> | 17 | @on-reply="onReply"> |
@@ -7,18 +7,26 @@ export default [{ | @@ -7,18 +7,26 @@ export default [{ | ||
7 | keepAlive: true | 7 | keepAlive: true |
8 | } | 8 | } |
9 | },{ | 9 | },{ |
10 | + path: '/article/share/:id', | ||
11 | + name: 'article.share', | ||
12 | + alias: '/article/share/:id', | ||
13 | + component: () => import(/* webpackChunkName: "article" */ './article-detail-share'), | ||
14 | + meta: { | ||
15 | + keepAlive: true | ||
16 | + } | ||
17 | +}, { | ||
10 | path: '/article/list/:id', | 18 | path: '/article/list/:id', |
11 | - name: 'article.list', | 19 | + name: 'articlelist', |
12 | alias: '/article/list/:id', | 20 | alias: '/article/list/:id', |
13 | - component: () => import(/* webpackChunkName: "article" */ './article'), | 21 | + component: () => import(/* webpackChunkName: "article-list" */ './article'), |
14 | meta: { | 22 | meta: { |
15 | keepAlive: true | 23 | keepAlive: true |
16 | } | 24 | } |
17 | }, { | 25 | }, { |
18 | - path: '/article/share/:id', | ||
19 | - name: 'article.share', | ||
20 | - alias: '/article/share/:id', | ||
21 | - component: () => import(/* webpackChunkName: "article" */ './article-share'), | 26 | + path: '/article/list/share/:id', |
27 | + name: 'articlelist.share', | ||
28 | + alias: '/article/list/share/:id', | ||
29 | + component: () => import(/* webpackChunkName: "article-list" */ './article-share'), | ||
22 | meta: { | 30 | meta: { |
23 | keepAlive: true | 31 | keepAlive: true |
24 | } | 32 | } |
@@ -26,7 +34,7 @@ export default [{ | @@ -26,7 +34,7 @@ export default [{ | ||
26 | path: '/article/detail/:id', | 34 | path: '/article/detail/:id', |
27 | name: 'article.detail', | 35 | name: 'article.detail', |
28 | alias: '/article/detail/:id', | 36 | alias: '/article/detail/:id', |
29 | - component: () => import(/* webpackChunkName: "article-detail" */ './article-detail'), | 37 | + component: () => import(/* webpackChunkName: "article" */ './article-detail'), |
30 | meta: { | 38 | meta: { |
31 | keepAlive: true | 39 | keepAlive: true |
32 | } | 40 | } |
@@ -34,7 +42,7 @@ export default [{ | @@ -34,7 +42,7 @@ export default [{ | ||
34 | path: '/article/:id/user/:type/:authorType/:authorUid', | 42 | path: '/article/:id/user/:type/:authorType/:authorUid', |
35 | name: 'article.user', | 43 | name: 'article.user', |
36 | alias: '/article/:id/user/:type/:authorType/:authorUid', | 44 | alias: '/article/:id/user/:type/:authorType/:authorUid', |
37 | - component: () => import(/* webpackChunkName: "article" */ './user-article'), | 45 | + component: () => import(/* webpackChunkName: "article-list" */ './user-article'), |
38 | meta: { | 46 | meta: { |
39 | keepAlive: true | 47 | keepAlive: true |
40 | } | 48 | } |
@@ -42,7 +50,7 @@ export default [{ | @@ -42,7 +50,7 @@ export default [{ | ||
42 | path: '/topic/share/:topicId', | 50 | path: '/topic/share/:topicId', |
43 | alias: '/topic/share/:topicId', | 51 | alias: '/topic/share/:topicId', |
44 | name: 'topic.share', | 52 | name: 'topic.share', |
45 | - component: () => import(/* webpackChunkName: "article" */ './topic'), | 53 | + component: () => import(/* webpackChunkName: "topic" */ './topic'), |
46 | meta: { | 54 | meta: { |
47 | keepAlive: true | 55 | keepAlive: true |
48 | } | 56 | } |
@@ -50,7 +58,7 @@ export default [{ | @@ -50,7 +58,7 @@ export default [{ | ||
50 | path: '/topic/:topicId', | 58 | path: '/topic/:topicId', |
51 | alias: '/topic/:topicId', | 59 | alias: '/topic/:topicId', |
52 | name: 'topic', | 60 | name: 'topic', |
53 | - component: () => import(/* webpackChunkName: "article" */ './topic'), | 61 | + component: () => import(/* webpackChunkName: "topic" */ './topic'), |
54 | meta: { | 62 | meta: { |
55 | keepAlive: true, | 63 | keepAlive: true, |
56 | statusBarColor: 'white' | 64 | statusBarColor: 'white' |
-
Please register or login to post a comment