Files
PC-Light-Forum/component/item-forum/item-forum.js
DESKTOP-RQ919RC\Pc b26b379341 fix: 修复多个组件样式和功能问题
修复论坛项图片底部间距问题
调整BI组件z-index值防止遮挡
优化视频海报展示逻辑
限制评论输入框最大高度
修复搜索框占位符显示逻辑
添加分页项样式
移除评论编辑框底部边框
优化BI组件API请求方法
2025-11-11 19:05:56 +08:00

41 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// my-component.js
// 引入全局 Vue 对象(因在 HTML 中通过 script 引入Vue 已挂载到 window
const { defineComponent, ref } = Vue;
import { itemBottom } from "../item-bottom/item-bottom.js";
import { itemHead } from "../item-head/item-head.js";
// 定义组件(直接使用模板)
export const itemForum = defineComponent({
name: "item-forum",
props: {
itemdata: {
type: Object,
default: () => {},
},
page: {
type: String,
default: "",
},
},
setup(props) {
let res = props.itemdata || {};
res.content = res?.content?.replace(/\[.*?\]/g, "");
res.content = res?.content?.replace(/\<.*?\>/g, "");
res.content = res?.content?.replace(/\[.*?\../g, "");
let item = ref({ ...res });
item.value['url'] = '/details/' + item.value.uniqid;
return { item };
},
components: {
itemBottom,
itemHead,
},
template: `<div class="item-box item-forum"> <item-head :itemdata="item" :page="page"></item-head> <a v-if="item.title" class="title" :href="item.url" target="_blank">{{ item.title }}</a> <a class="message two-line-display" :href="item.url" target="_blank">{{ item.content }}</a> <a class="picture flexacenter" :href="item.url" target="_blank" v-if="item.images?.length != 0 || item.videos?.length != 0"> <img class="picture-item" v-for="(item, index) in item.images" :key="index" :src="item.url" alt=""> <template v-for="(item, index) in item.videos" :key="index"> <div v-if="item.posterurl" class="picture-videos flexacenter"> <img class="picture-item" :src="item.posterurl" alt=""> <img class="icon-play" src="/img/videoplay.png" alt=""> </div> </template> </a> <item-bottom :itemdata="item" :page="page"></item-bottom></div>`,
});