feat(article): 更新内容处理逻辑,插入来源信息并优化文本节点获取

This commit is contained in:
傅光孟 2026-03-10 10:32:18 +08:00
parent cf2b692c84
commit b71bc19188
1 changed files with 44 additions and 2 deletions

View File

@ -64,7 +64,7 @@
class="articleDes"
:class="props?.data?.needpay && 'needpay'"
style="white-space: pre-wrap"
v-html="props.data.content"
v-html="content"
>
</text>
</view>
@ -175,7 +175,7 @@
</template>
<script setup lang="ts">
import { computed, ref } from "vue";
import { computed, ref, toRefs } from "vue";
import {
onLaunch,
onShow,
@ -188,6 +188,7 @@ import LoginDialog from "@/pages/realtimeInfo/components/LoginPopup/index.vue";
import { Session } from "@/utils/storage";
import zhaiyaoImg from "../../assets/zixun/zhaiyao_icon.png";
import { useUserStore } from "@/stores/user";
import dayjs from "dayjs";
const emit = defineEmits(["getFurtherReadData"]);
const props = defineProps({
@ -215,6 +216,40 @@ const tagList1 = ref([
name: "医药生物-医疗服务",
},
]);
// node
function getFirstTextNode(node: any): any {
//
if (node.nodeType === 3) {
return node;
}
for (let i = 0; i < node.childNodes.length; i++) {
const child = node.childNodes[i];
const textNode = getFirstTextNode(child);
if (textNode) {
return textNode;
}
}
return null;
}
const content = computed(() => {
const content = props.data.content;
const insertText = `中证参考海外资讯${dayjs(props.data.publishTime).format('MM月DD日')}援引${props.data.source}`;
if (!content) return;
const dom = new DOMParser().parseFromString(content, "text/html");
const body = dom.querySelector("body");
const p = body?.childNodes;
for(let i = 0; i < p.length; i++){
const textNode = getFirstTextNode(p[i]);
console.log(textNode)
if(textNode){
textNode.textContent = insertText + textNode.textContent;
break;
}
}
return body?.innerHTML;
});
const userStore = useUserStore();
// |
@ -679,4 +714,11 @@ const getMoreNews = () => {
}
}
}
.aaa{
float: left;
margin-top: 36rpx;
font-size: var(--h2-font-size);
color: #333;
overflow-wrap: break-word;
}
</style>