123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- <template>
- <layoutBack>
- <layout title="活动规则" padding="0">
- <div class="rule-container">
- <div class="rule-wrap" v-html="rule">
- </div>
- </div>
- </layout>
- </layoutBack>
- </template>
- <script>
- import layoutBack from '@/components/layout';
- import layout from './components/layout';
- export default {
- auth: false,
- name: 'OemInviteNewUserRule',
- head: {
- // title: '活动规则', // 删除title, 因为title修改时,安卓返nav会重新显示
- },
- // 页面初始化后触发
- async fetch() {
- // 获取参数
- let activityId = this.$route.query.activityId;
- if(!activityId) {return Toast('获取活动规则失败')}
- await this.getActivityRule(activityId);
- },
- components: { layout, layoutBack},
- data() {
- return {
- rule: ''
- }
- },
- methods: {
- // 获取活动规则
- async getActivityRule(id) {
- let {status, success, data} = await this.$axios.$get('/activity/activity/basic/getDetailsById',{
- params: { id }
- });
- if(status === 0 && success) {
- this.rule = data?.activityInviteNewUser?.activityRule;
- }
- },
- // 转换html实体
- decodeHtmlEntities(content) {
- // 创建一个更全面的 HTML 实体映射表
- const entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- ''': "'",
- ' ': ' ',
- '¡': '¡',
- '¢': '¢',
- '£': '£',
- '¤': '¤',
- '¥': '¥',
- '¦': '¦',
- '§': '§',
- '¨': '¨',
- '©': '©',
- 'ª': 'ª',
- '«': '«',
- '¬': '¬',
- '­': '',
- '®': '®',
- '¯': '¯',
- '°': '°',
- '±': '±',
- '²': '²',
- '³': '³',
- '´': '´',
- 'µ': 'µ',
- '¶': '¶',
- '·': '·',
- '¸': '¸',
- '¹': '¹',
- 'º': 'º',
- '»': '»',
- '¼': '¼',
- '½': '½',
- '¾': '¾',
- '¿': '¿',
- 'À': 'À',
- 'Á': 'Á',
- 'Â': 'Â',
- 'Ã': 'Ã',
- 'Ä': 'Ä',
- 'Å': 'Å',
- 'Æ': 'Æ',
- 'Ç': 'Ç',
- 'È': 'È',
- 'É': 'É',
- 'Ê': 'Ê',
- 'Ë': 'Ë',
- 'Ì': 'Ì',
- 'Í': 'Í',
- 'Î': 'Î',
- 'Ï': 'Ï',
- 'Ð': 'Ð',
- 'Ñ': 'Ñ',
- 'Ò': 'Ò',
- 'Ó': 'Ó',
- 'Ô': 'Ô',
- 'Õ': 'Õ',
- 'Ö': 'Ö',
- '×': '×',
- 'Ø': 'Ø',
- 'Ù': 'Ù',
- 'Ú': 'Ú',
- 'Û': 'Û',
- 'Ü': 'Ü',
- 'Ý': 'Ý',
- 'Þ': 'Þ',
- 'ß': 'ß',
- 'à': 'à',
- 'á': 'á',
- 'â': 'â',
- 'ã': 'ã',
- 'ä': 'ä',
- 'å': 'å',
- 'æ': 'æ',
- 'ç': 'ç',
- 'è': 'è',
- 'é': 'é',
- 'ê': 'ê',
- 'ë': 'ë',
- 'ì': 'ì',
- 'í': 'í',
- 'î': 'î',
- 'ï': 'ï',
- 'ð': 'ð',
- 'ñ': 'ñ',
- 'ò': 'ò',
- 'ó': 'ó',
- 'ô': 'ô',
- 'õ': 'õ',
- 'ö': 'ö',
- '÷': '÷',
- 'ø': 'ø',
- 'ù': 'ù',
- 'ú': 'ú',
- 'û': 'û',
- 'ü': 'ü',
- 'ý': 'ý',
- 'þ': 'þ',
- 'ÿ': 'ÿ',
- 'Œ': 'Œ',
- 'œ': 'œ',
- 'Š': 'Š',
- 'š': 'š',
- 'Ÿ': 'Ÿ',
- 'ƒ': 'ƒ',
- 'ˆ': 'ˆ',
- '˜': '˜',
- 'Α': 'Α',
- 'Β': 'Β',
- 'Γ': 'Γ',
- 'Δ': 'Δ',
- 'Ε': 'Ε',
- 'Ζ': 'Ζ',
- 'Η': 'Η',
- 'Θ': 'Θ',
- 'Ι': 'Ι',
- 'Κ': 'Κ',
- 'Λ': 'Λ',
- 'Μ': 'Μ',
- 'Ν': 'Ν',
- 'Ξ': 'Ξ',
- 'Ο': 'Ο',
- 'Π': 'Π',
- 'Ρ': 'Ρ',
- 'Σ': 'Σ',
- 'Τ': 'Τ',
- 'Υ': 'Υ',
- 'Φ': 'Φ',
- 'Χ': 'Χ',
- 'Ψ': 'Ψ',
- 'Ω': 'Ω',
- 'α': 'α',
- 'β': 'β',
- 'γ': 'γ',
- 'δ': 'δ',
- 'ε': 'ε',
- 'ζ': 'ζ',
- 'η': 'η',
- 'θ': 'θ',
- 'ι': 'ι',
- 'κ': 'κ',
- 'λ': 'λ',
- 'μ': 'μ',
- 'ν': 'ν',
- 'ξ': 'ξ',
- 'ο': 'ο',
- 'π': 'π',
- 'ρ': 'ρ',
- 'ς': 'ς',
- 'σ': 'σ',
- 'τ': 'τ',
- 'υ': 'υ',
- 'φ': 'φ',
- 'χ': 'χ',
- 'ψ': 'ψ',
- 'ω': 'ω',
- 'ϑ': 'ϑ',
- 'ϒ': 'ϒ',
- 'ϖ': 'ϖ',
- ' ': ' ',
- ' ': ' ',
- ' ': ' ',
- '‌': '',
- '‍': '',
- '‎': '',
- '‏': '',
- '–': '–',
- '—': '—',
- '‘': '‘',
- '’': '’',
- '‚': '‚',
- '“': '“',
- '”': '”',
- '„': '„',
- '†': '†',
- '‡': '‡',
- '•': '•',
- '…': '…',
- '‰': '‰',
- '′': '′',
- '″': '″',
- '‹': '‹',
- '›': '›',
- '€': '€'
- };
- // 使用正则表达式匹配所有可能的 HTML 实体
- return content.replace(/&[a-zA-Z0-9#]+;/g, (match) => {
- return entityMap[match] || match; // 如果匹配到的实体在映射表中有对应值,则替换,否则返回原值
- })
- },
- }
- }
- </script>
- <style lang="scss" scoped>
- .rule-container {
- font-size: 12px;
- height: 100%;
- width: 100%;
- display: flex;
- flex-direction: column;
- background-color: #EB3043;
- padding: 16px;
- .rule-wrap {
- min-height: 100px;
- padding: 16px;
- background-color: #FFFDF1;
- border-radius: 8px;
- }
- }
- </style>
-
|