refactor(components): 重构图片资源引用方式,使用动态路径
将静态图片路径改为从valueUrl动态获取,统一管理图片资源路径 添加新的SVG图标资源 修复BI组件401未授权时的登录跳转逻辑 优化签到组件图片资源路径
This commit is contained in:
@@ -21,6 +21,8 @@ export const latestList = defineComponent({
|
||||
let postsTab = ref("newest"); // newest essence
|
||||
|
||||
let boxtype = ref(props.boxtype);
|
||||
|
||||
let valueUrl = ref("");
|
||||
onMounted(() => {
|
||||
if (props.boxtype == "newest") getTopicLatest();
|
||||
else if (props.boxtype == "essence") topicHandpicked();
|
||||
@@ -28,6 +30,9 @@ export const latestList = defineComponent({
|
||||
getTopicLatest();
|
||||
topicHandpicked();
|
||||
}
|
||||
|
||||
const valueA = document.querySelector(".valueA");
|
||||
valueUrl.value = valueA.innerText;
|
||||
});
|
||||
|
||||
let count = 0;
|
||||
@@ -53,7 +58,7 @@ export const latestList = defineComponent({
|
||||
const topicHandpicked = () => {
|
||||
ajaxGet(`/v2/api/forum/getHomebestRecommend?limit=15&type=thread`).then((res) => {
|
||||
const data = res.data;
|
||||
console.log('data', data);
|
||||
console.log("data", data);
|
||||
topList.value = data;
|
||||
nextTick(() => {
|
||||
count += 1;
|
||||
@@ -78,11 +83,10 @@ export const latestList = defineComponent({
|
||||
postsTab.value = key;
|
||||
};
|
||||
|
||||
return { boxtype, tabPostsItem, postsTab, topList, latestList, item };
|
||||
return { valueUrl, boxtype, tabPostsItem, postsTab, topList, latestList, item };
|
||||
},
|
||||
|
||||
components: {
|
||||
},
|
||||
components: {},
|
||||
|
||||
template: `<div class="posts-box box-newest " :class="['boxtype-' + boxtype]"> <div v-if="boxtype == 'newest'" class="box-newest-head flexacenter"> <img class="icon" src="/img/newest-icon.png" alt="" /> 最新 </div> <div v-else-if="boxtype == 'essence'" class="box-newest-head flexacenter"> <img class="icon" src="/img/essence.png" alt="" /> 精华阅读 </div> <div v-else class="slideshow-box"> <div class="tab-list flexacenter"> <div class="tab-item newest" :class="{'pitch': postsTab == 'newest'}" @click="tabPostsItem('newest')">最新 </div> <div class="tab-item essence" :class="{'pitch': postsTab == 'essence'}" @click="tabPostsItem('essence')">精华 </div> </div> </div> <div class="slideshow-content flexflex"> <!-- newest 最新 --> <div class="newest-side-box side-box"> <img class="bounding" src="/img/bounding-circle-green.svg" alt="" /> <div class="box"> <template v-for="(item, index) in latestList" :key="index"> <a v-if="item.title || item.content" class="item flexacenter vuehide" :href="'/details/' + item.uniqid" target="_blank"> <div class="dot dot-green"></div> <div class="text one-line-display">{{ item.title || item.content }}</div> </a> </template> </div> </div> <!-- essence 精选 --> <div class="essence-side-box side-box"> <img class="bounding" src="/img/bounding-circle-blue.svg" alt="" /> <div class="box"> <template v-for="(item, index) in topList" :key="index"> <a v-if="item.title || item.content" class="item flexacenter vuehide" :href="'/details/' + item.uniqid" target="_blank"> <div class="dot"></div> <div class="text one-line-display">{{ item.title || item.content }}</div> </a> </template> </div> </div> </div></div>`,
|
||||
template: `<div class="posts-box box-newest " :class="['boxtype-' + boxtype]"> <div v-if="boxtype == 'newest'" class="box-newest-head flexacenter"> <img class="icon" :src="valueUrl + '/img/newest-icon.png'" alt="" /> 最新 </div> <div v-else-if="boxtype == 'essence'" class="box-newest-head flexacenter"> <img class="icon" :src="valueUrl + '/img/essence.png'" alt="" /> 精华阅读 </div> <div v-else class="slideshow-box"> <div class="tab-list flexacenter"> <div class="tab-item newest" :class="{'pitch': postsTab == 'newest'}" @click="tabPostsItem('newest')">最新 </div> <div class="tab-item essence" :class="{'pitch': postsTab == 'essence'}" @click="tabPostsItem('essence')">精华 </div> </div> </div> <div class="slideshow-content flexflex"> <!-- newest 最新 --> <div class="newest-side-box side-box"> <img class="bounding" :src="valueUrl + '/img/bounding-circle-green.svg'" alt="" /> <div class="box"> <template v-for="(item, index) in latestList" :key="index"> <a v-if="item.title || item.content" class="item flexacenter vuehide" :href="'/details/' + item.uniqid" target="_blank"> <div class="dot dot-green"></div> <div class="text one-line-display">{{ item.title || item.content }}</div> </a> </template> </div> </div> <!-- essence 精选 --> <div class="essence-side-box side-box"> <img class="bounding" :src="valueUrl + '/img/bounding-circle-blue.svg'" alt="" /> <div class="box"> <template v-for="(item, index) in topList" :key="index"> <a v-if="item.title || item.content" class="item flexacenter vuehide" :href="'/details/' + item.uniqid" target="_blank"> <div class="dot"></div> <div class="text one-line-display">{{ item.title || item.content }}</div> </a> </template> </div> </div> </div></div>`,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user