diff --git a/config/index.js b/config/index.js index 71246fe..caa96e8 100644 --- a/config/index.js +++ b/config/index.js @@ -29,6 +29,9 @@ export const DefaultAppConfigs = { }, categoryConfig: { type: "list" + }, + momentConfig: { + useTagRandomColor: true } }, auditConfig: { diff --git a/pages/tabbar/moments/moments.vue b/pages/tabbar/moments/moments.vue index f7ab259..5d328a8 100644 --- a/pages/tabbar/moments/moments.vue +++ b/pages/tabbar/moments/moments.vue @@ -34,7 +34,7 @@ + + + {{ tag }} + + @@ -69,9 +76,11 @@ import tmSkeleton from '@/tm-vuetify/components/tm-skeleton/tm-skeleton.vue'; import tmFlotbutton from '@/tm-vuetify/components/tm-flotbutton/tm-flotbutton.vue'; import tmTranslate from '@/tm-vuetify/components/tm-translate/tm-translate.vue'; import tmEmpty from '@/tm-vuetify/components/tm-empty/tm-empty.vue'; +import tmTags from '@/tm-vuetify/components/tm-tags/tm-tags.vue'; import MarkdownConfig from '@/common/markdown/markdown.config.js'; import mpHtml from '@/components/mp-html/components/mp-html/mp-html.vue'; +import {getRandomNumberByRange} from "@/utils/random.js" export default { components: { @@ -79,6 +88,7 @@ export default { tmFlotbutton, tmTranslate, tmEmpty, + tmTags, mpHtml }, data() { @@ -92,7 +102,8 @@ export default { hasNext: false, dataList: [], isLoadMore: false, - loadMoreText: '加载中...' + loadMoreText: '加载中...', + tagColors: ['orange', 'green', 'red', 'blue'] }; }, @@ -111,6 +122,9 @@ export default { calcAuditModeEnabled() { return this.haloConfigs.auditConfig.auditModeEnabled }, + calcUseTagRandomColor() { + return this.haloConfigs.pageConfig.momentConfig.useTagRandomColor + } }, onLoad() { @@ -200,6 +214,7 @@ export default { medium.url = this.$utils.checkThumbnailUrl(medium.url, true) }) + item.spec.newHtml = this.removeTagLinksCompletely(item.spec.content.html, '') item['images'] = item.spec.content.medium .filter(x => x.type === 'PHOTO') @@ -231,6 +246,19 @@ export default { current: index, urls: list.map(item => item.url) }) + }, + removeTagLinksCompletely(htmlString) { + const regex = /]*?\s+)?class=(['"])[^'"]*?\btag\b[^'"]*?\1[^>]*?>.*?<\/a>/gi; + const newHtml = htmlString.replace(regex, ''); + return newHtml + .replace(/<[^>]+>\s*<\/[^>]+>/g, '') + .replace(/\s+/g, ' ') + .trim(); + }, + randomTagColor() { + if (!this.calcUseTagRandomColor) return "blue"; + const randomIndex = getRandomNumberByRange(0, this.tagColors.length); + return this.tagColors[randomIndex]; } } }; diff --git a/utils/random.js b/utils/random.js index c0d2db9..861623c 100644 --- a/utils/random.js +++ b/utils/random.js @@ -12,11 +12,11 @@ /** * 指定范围生成随机数 - * @param {Number} m - * @param {Number} n - * @return {Number} + * @param {Number} m 最小值(包含) + * @param {Number} n 最大(不包含) + * @return {Number} 随机值 */ -export function GetRandomNumberByRange(m, n) { +export function getRandomNumberByRange(m, n) { return Math.floor(Math.random() * (m - n) + n); } @@ -26,10 +26,10 @@ export function GetRandomNumberByRange(m, n) { * @param {*} min 最小值 * @param {*} max 最大值 */ -export function GetRandomNumberArray(len, min, max) { +export function getRandomNumberArray(len, min, max) { let arr = []; for (let index = 0; index < len; index++) { - arr.push(GetRandomNumberByRange(min, max)); + arr.push(getRandomNumberByRange(min, max)); } return arr; }