|
@@ -5,29 +5,59 @@
|
|
<view class="title-content-date">{{ date }}</view>
|
|
<view class="title-content-date">{{ date }}</view>
|
|
</view>
|
|
</view>
|
|
<mp-html :content="content|formatRichText" selectable="true" show-img-menu="true" />
|
|
<mp-html :content="content|formatRichText" selectable="true" show-img-menu="true" />
|
|
|
|
+ <view class="content-like-col" v-if="CONTENT_TYPE.news === contentType">
|
|
|
|
+ <view class="icon-wrap">
|
|
|
|
+ <u-icon
|
|
|
|
+ :name="`${likeFlag ? 'thumb-up-fill':'thumb-up'}`"
|
|
|
|
+ class="icon-base"
|
|
|
|
+ @click="$u.throttle(onLikeClick,500)"
|
|
|
|
+ ></u-icon>
|
|
|
|
+ {{ likeCnt && likeCnt }}
|
|
|
|
+ </view>
|
|
|
|
+ <view class="icon-wrap">
|
|
|
|
+ <u-icon
|
|
|
|
+ :name="`${collectFlag ? 'star-fill':'star' }`"
|
|
|
|
+ class="icon-base"
|
|
|
|
+ @click="$u.throttle(onCollectClick,500)"
|
|
|
|
+ ></u-icon>
|
|
|
|
+ {{ collectCnt && collectCnt }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { fetchContentDetail } from '@/common/api';
|
|
|
|
|
|
+import { fetchContentDetail, fetchUsrContent, usrCollect, usrLike, usrUnCollect, usrUnLike } from '@/common/api';
|
|
|
|
+import { CONTENT_TYPE } from '@/common/EnumConst';
|
|
|
|
+import { authLogin, getUserInfo } from '@/util';
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'content',
|
|
name: 'content',
|
|
props: {},
|
|
props: {},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ CONTENT_TYPE,
|
|
content: '',
|
|
content: '',
|
|
queryParams: {},
|
|
queryParams: {},
|
|
title: '',
|
|
title: '',
|
|
date: '',
|
|
date: '',
|
|
|
|
+ contentType: '',
|
|
|
|
+ likeCnt: 0,
|
|
|
|
+ collectCnt: 0,
|
|
|
|
+ likeFlag: false,
|
|
|
|
+ collectFlag: false,
|
|
|
|
+ id: '',
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
},
|
|
},
|
|
onLoad(res) {
|
|
onLoad(res) {
|
|
- console.log(res);
|
|
|
|
- this.queryParams = res;
|
|
|
|
|
|
+ // 登录返回之后的页面
|
|
|
|
+ if (res) {
|
|
|
|
+ this.queryParams = res;
|
|
|
|
+ }
|
|
this.getContentInfo();
|
|
this.getContentInfo();
|
|
|
|
+ this.getUsrContent();
|
|
},
|
|
},
|
|
filters: {
|
|
filters: {
|
|
/**
|
|
/**
|
|
@@ -65,7 +95,6 @@ export default {
|
|
.replace(/src='/gi, `src='${process.env.UNI_FILE_PREFIX}`);
|
|
.replace(/src='/gi, `src='${process.env.UNI_FILE_PREFIX}`);
|
|
return match;
|
|
return match;
|
|
});
|
|
});
|
|
-
|
|
|
|
return newContent;
|
|
return newContent;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
@@ -76,15 +105,66 @@ export default {
|
|
content,
|
|
content,
|
|
title,
|
|
title,
|
|
createTime,
|
|
createTime,
|
|
|
|
+ contentType,
|
|
|
|
+ id,
|
|
|
|
+ likeCnt,
|
|
|
|
+ collectedCnt,
|
|
},
|
|
},
|
|
} = await fetchContentDetail(this.queryParams.id);
|
|
} = await fetchContentDetail(this.queryParams.id);
|
|
this.content = content;
|
|
this.content = content;
|
|
this.title = title;
|
|
this.title = title;
|
|
|
|
+ this.contentType = contentType;
|
|
|
|
+ this.id = id;
|
|
|
|
+ this.likeCnt = likeCnt;
|
|
|
|
+ this.collectCnt = collectedCnt;
|
|
uni.setNavigationBarTitle({
|
|
uni.setNavigationBarTitle({
|
|
title
|
|
title
|
|
})
|
|
})
|
|
this.date = uni.$u.timeFormat(createTime, 'yyyy-mm-dd');
|
|
this.date = uni.$u.timeFormat(createTime, 'yyyy-mm-dd');
|
|
},
|
|
},
|
|
|
|
+ async getUsrContent() {
|
|
|
|
+ const contentId = this.queryParams.id;
|
|
|
|
+ const usrInfo = getUserInfo();
|
|
|
|
+ if (usrInfo && usrInfo.openId) {
|
|
|
|
+ const { data } = await fetchUsrContent(contentId, usrInfo.openId);
|
|
|
|
+ if (data) {
|
|
|
|
+ this.collectFlag = data[0]?.collectFlag === '0';
|
|
|
|
+ this.likeFlag = data[0]?.likeFlag === '0';
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ onCollectClick() {
|
|
|
|
+ this.collectFlag = !this.collectFlag;
|
|
|
|
+ authLogin(async (usr) => {
|
|
|
|
+ if (this.collectFlag) {
|
|
|
|
+ this.collectCnt += 1;
|
|
|
|
+ await usrCollect({
|
|
|
|
+ id: this.queryParams.id,
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.collectCnt -= 1;
|
|
|
|
+ await usrUnCollect({
|
|
|
|
+ id: this.queryParams.id,
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ onLikeClick() {
|
|
|
|
+ this.likeFlag = !this.likeFlag;
|
|
|
|
+ authLogin(async (usr) => {
|
|
|
|
+ if (this.likeFlag) {
|
|
|
|
+ this.likeCnt += 1;
|
|
|
|
+ await usrLike({
|
|
|
|
+ id: this.queryParams.id,
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.likeCnt -= 1;
|
|
|
|
+ await usrUnLike({
|
|
|
|
+ id: this.queryParams.id,
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|