@ued_fpi/data-visual
Version:
<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />
100 lines (97 loc) • 3.73 kB
JavaScript
import __vite_glob_0_0 from './images/1.png.mjs';
import __vite_glob_0_1 from './images/2.png.mjs';
import __vite_glob_0_2 from './images/3.png.mjs';
import __vite_glob_0_3 from './images/4.png.mjs';
import __vite_glob_0_4 from './images/5.png.mjs';
import __vite_glob_0_5 from './images/6.png.mjs';
import { defineComponent, ref, computed, onMounted, openBlock, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString } from 'vue';
import { getCommonSpecies } from './api/index.mjs';
const _hoisted_1 = { class: "dv-wgms-common-flora-fauna" };
const _hoisted_2 = { class: "species-image-box" };
const _hoisted_3 = ["src", "alt"];
const _hoisted_4 = {
key: 1,
class: "species-image-placeholder"
};
const _hoisted_5 = ["src", "alt"];
const _hoisted_6 = { class: "species-name" };
const FILE_PREVIEW_BASE_URL = "/file-base-server/api/v1/sys/download";
const _sfc_main = /* @__PURE__ */ defineComponent({
...{
name: "DvWgmsCommonFloraFauna",
title: "常见动植物"
},
__name: "index",
props: {
data: {
type: Array,
default: () => []
}
},
setup(__props) {
const props = __props;
const fallbackData = [
{ name: "地黄", imageUrl: "" },
{ name: "牵牛", imageUrl: "" },
{ name: "蒲公英", imageUrl: "" },
{ name: "长耳鸮", imageUrl: "" },
{ name: "疣鼻天鹅", imageUrl: "" },
{ name: "白琵鹭", imageUrl: "" }
];
const localData = ref([]);
const displayData = computed(() => props.data?.length ? props.data : localData.value);
const loadData = async () => {
const res = await getCommonSpecies();
localData.value = (res?.data || []).map((item) => ({
name: item.speciesName,
imageUrl: formatImageUrl(item.speciesImageUrl)
}));
};
const formatImageUrl = (imageUrl) => {
if (!imageUrl)
return "";
if (imageUrl.startsWith("http://") || imageUrl.startsWith("https://"))
return imageUrl;
return `${FILE_PREVIEW_BASE_URL}/${imageUrl}`;
};
const getAssetsFile = (url) => {
if (url.charAt(0) === "/")
url = url.slice(1);
return new URL((/* #__PURE__ */ Object.assign({"./images/1.png": __vite_glob_0_0,"./images/2.png": __vite_glob_0_1,"./images/3.png": __vite_glob_0_2,"./images/4.png": __vite_glob_0_3,"./images/5.png": __vite_glob_0_4,"./images/6.png": __vite_glob_0_5}))[`./images/${url}`], self.location).href;
};
onMounted(() => {
if (!props.data?.length) {
loadData().catch(() => {
localData.value = fallbackData;
});
}
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", _hoisted_1, [
(openBlock(true), createElementBlock(Fragment, null, renderList(displayData.value, (item, index) => {
return openBlock(), createElementBlock("div", {
key: item.name,
class: "species-card"
}, [
createElementVNode("div", _hoisted_2, [
item.imageUrl ? (openBlock(), createElementBlock("img", {
key: 0,
src: item.imageUrl,
alt: item.name,
class: "species-image"
}, null, 8, _hoisted_3)) : (openBlock(), createElementBlock("div", _hoisted_4, [
createElementVNode("img", {
src: getAssetsFile(`${index + 1}.png`),
alt: item.name,
class: "species-image"
}, null, 8, _hoisted_5)
]))
]),
createElementVNode("div", _hoisted_6, toDisplayString(item.name), 1)
]);
}), 128))
]);
};
}
});
export { _sfc_main as default };