@qxs-bns/components 0.0.63 → 0.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/package.json.mjs +1 -1
- package/es/src/data-chart/src/components/area.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/area.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/area.vue3.mjs +1 -1
- package/es/src/data-chart/src/components/bar.vue.mjs +1 -1
- package/es/src/data-chart/src/components/bar.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/bar.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/bar.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/bar.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/bar.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/components/funnel.vue.mjs +1 -1
- package/es/src/data-chart/src/components/funnel.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/funnel.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/funnel.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/funnel.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/funnel.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/components/line.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/line.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/pie.vue.mjs +1 -1
- package/es/src/data-chart/src/components/pie.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/pie.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/pie.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/pie.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/pie.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/components/radar.vue.mjs +1 -1
- package/es/src/data-chart/src/components/radar.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/radar.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/radar.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/radar.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/radar.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs +1 -1
- package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/scatter-simple.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/components/scatter.vue.mjs +1 -1
- package/es/src/data-chart/src/components/scatter.vue.mjs.map +1 -1
- package/es/src/data-chart/src/components/scatter.vue2.mjs +1 -1
- package/es/src/data-chart/src/components/scatter.vue2.mjs.map +1 -1
- package/es/src/data-chart/src/components/scatter.vue3.mjs +2 -0
- package/es/src/data-chart/src/components/scatter.vue3.mjs.map +1 -0
- package/es/src/data-chart/src/data-chart.vue.mjs +1 -1
- package/es/src/data-chart/src/data-chart.vue.mjs.map +1 -1
- package/es/src/data-chart/src/utils/useCharts.mjs +1 -1
- package/es/src/data-chart/src/utils/useCharts.mjs.map +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/src/data-chart/src/components/area.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/area.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/area.vue3.cjs +1 -1
- package/lib/src/data-chart/src/components/bar.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/bar.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/bar.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/bar.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/bar.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/bar.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/components/funnel.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/funnel.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/funnel.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/funnel.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/funnel.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/components/line.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/line.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/pie.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/pie.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/pie.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/pie.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/pie.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/pie.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/components/radar.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/radar.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/radar.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/radar.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/radar.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/radar.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/components/scatter.vue.cjs +1 -1
- package/lib/src/data-chart/src/components/scatter.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/components/scatter.vue2.cjs +1 -1
- package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +1 -1
- package/lib/src/data-chart/src/components/scatter.vue3.cjs +2 -0
- package/lib/src/data-chart/src/components/scatter.vue3.cjs.map +1 -0
- package/lib/src/data-chart/src/data-chart.vue.cjs +1 -1
- package/lib/src/data-chart/src/data-chart.vue.cjs.map +1 -1
- package/lib/src/data-chart/src/utils/useCharts.cjs +1 -1
- package/lib/src/data-chart/src/utils/useCharts.cjs.map +1 -1
- package/package.json +1 -1
- package/types/src/data-chart/index.d.ts +4 -77
- package/types/src/data-chart/index.d.ts.map +1 -1
- package/types/src/data-chart/src/components/area.vue.d.ts +5 -1
- package/types/src/data-chart/src/components/area.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/bar.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/bar.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/funnel.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/funnel.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/line.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/line.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/pie.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/pie.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/radar.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/radar.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/components/scatter.vue.d.ts +4 -1
- package/types/src/data-chart/src/components/scatter.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/data-chart.vue.d.ts +6 -78
- package/types/src/data-chart/src/data-chart.vue.d.ts.map +1 -1
- package/types/src/data-chart/src/utils/useCharts.d.ts +2 -1
- package/types/src/data-chart/src/utils/useCharts.d.ts.map +1 -1
- package/types/tsconfig.tsbuildinfo +1 -1
package/es/package.json.mjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
var r="0.0.
|
1
|
+
var r="0.0.65";export{r as version};
|
2
2
|
//# sourceMappingURL=package.json.mjs.map
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,inject as a,ref as t,computed as r,createElementBlock as o,openBlock as n,createCommentVNode as s,createElementVNode as c}from"vue";import*as i from"echarts";import{getGeoJsonData as l}from"../utils/config.mjs";import{InjectionChartMerge as m}from"../utils/injectionKeys.mjs";import{useCharts as u}from"../utils/useCharts.mjs";const p={class:"data-chart-area-wrap"};var d=e({name:"DataChartArea",__name:"area",props:{chartOptions:{type:null,required:!0},chartData:{type:Object,required:!1,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})}},setup(e){const
|
1
|
+
import{defineComponent as e,inject as a,ref as t,computed as r,createElementBlock as o,openBlock as n,createCommentVNode as s,createElementVNode as c}from"vue";import*as i from"echarts";import{getGeoJsonData as l}from"../utils/config.mjs";import{InjectionChartMerge as m}from"../utils/injectionKeys.mjs";import{useCharts as u}from"../utils/useCharts.mjs";const p={class:"data-chart-area-wrap"};var d=e({name:"DataChartArea",__name:"area",props:{chartOptions:{type:null,required:!0},chartData:{type:Object,required:!1,default:()=>({colDesc:[],xGroupByDesc:{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:[],data:[],modelName:""})},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:d}){const h=a(m,e=>e,!0);let f="中国";const y=t({features:[],type:"FeatureCollection"}),D=t(null),v=r(()=>{try{const{xGroupByDesc:a,groupByDesc:t,colDesc:r,modelName:o,data:n}=e.chartData,s=[];r.forEach(e=>{n.forEach(a=>{s.push(Number(a[e]))})});const c={title:{text:o},tooltip:{formatter(e){let a=`${e.name}<br/>`;return c.series?.forEach(t=>{t.data?.forEach(r=>{r.name===e.name&&(a+=`${t.name}:${r.value}</br>`)}),a.includes(t.name)||(a+=`${t.name}:-</br>`)}),a}},visualMap:{min:Math.min(...s,0),max:Math.max(...s,0),text:["高","低"],realtime:!1,calculable:!0,inRange:{color:["#E8F4FD","#B8D4F7","#7BA4F0","#4A7BE8","#3562e1"]}},series:r?.map(e=>{const r=[],o=t.find(e=>e.colDesc===("中国"===f?"医院所在省":"医院所在市")),s={};n.map(t=>{const r=t[("中国"===f?a?.colDesc||"":o?.colDesc)||""],n=y.value.features?.find(({properties:{name:e}})=>e?.includes(r));return{name:n?.properties?.name||"",value:Number(t[e])}}).forEach(e=>{s[e.name]?s[e.name]=s[e.name]+e.value:s[e.name]=e.value});for(const e in s)r.push({name:e,value:s[e]});return{name:e,type:"map",map:f,data:r}})};return h(c,e.chartOptions)}catch(e){return console.error("Error computing area chart options:",e),{title:{text:"地图加载失败"},series:[]}}});async function g(e="中国"){try{const a=await l({adcode:e});return a&&a.features&&0!==a.features.length?(y.value=a,f=e,void i.registerMap(e,a)):void console.error("Invalid GeoJSON data for:",e)}catch(a){if(console.error("Failed to register map for:",e,a),"中国"!==e)return console.log("Falling back to China map"),g("中国")}}const{myChart:x}=u({chartDOM:D,chartOptions:v,chartData:r(()=>e.chartData),initAfter:async function(a){try{await g(),a&&!a.isDisposed()&&(a.getZr()?.on("click",e=>{a?.showLoading(),e.target||"中国"===f||g("中国"),a.hideLoading()}),a.on("click",t=>{a?.showLoading();const r=e.chartData.groupByDesc?.some(e=>"医院所在市"===e.colDesc);"中国"===f&&r&&t.name&&g(t.name).then(()=>{a&&!a.isDisposed()&&a.setOption(v.value)}),a?.hideLoading()}))}catch(e){if(console.error("Failed to initialize map:",e),a&&!a.isDisposed())try{await g("中国")}catch(e){console.error("Failed to retry map registration:",e)}}},lazyLoad:e.lazyLoad});return d({myChart:x}),(e,a)=>(n(),o("div",p,[s(' <el-select\n v-if="isShowSelect"\n v-model="adcode"\n class="city-select"\n size="small"\n @change="selectChina"\n >\n <el-option\n v-for="item in selectList"\n :key="item.value"\n :label="item.label"\n :value="item.value"\n />\n </el-select> '),c("div",{ref_key:"dataChartArea",ref:D,class:"data-chart-area"},null,512)]))}});export{d as default};
|
2
2
|
//# sourceMappingURL=area.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"area.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/area.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ECharts } from 'echarts/types/dist/echarts'\nimport type { EChartsOption, GeoJson, IFormatPublicData } from '../utils/types'\nimport * as echarts from 'echarts'\nimport { getGeoJsonData } from '../utils/config'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartArea',\n})\n\nconst {\n chartOptions,\n chartData = {\n colDesc: [],\n xGroupByDesc: {\n colDesc: '',\n groupByDesc: '',\n groupByValues: [],\n xAxis: false,\n },\n groupByDesc: [],\n data: [],\n modelName: '',\n },\n} = defineProps<{\n chartOptions: EChartsOption\n chartData?: IFormatPublicData\n}>()\n\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nlet adcode = '中国'\nconst currentGeoJson = ref<GeoJson>({\n features: [],\n type: 'FeatureCollection',\n})\nconst myChart = ref<ECharts | null>(null)\nconst dataChartArea = ref(null)\n\nconst areaChartOptions = computed<EChartsOption>(() => {\n try {\n const { xGroupByDesc, groupByDesc, colDesc, modelName, data } = chartData\n const allNums: number[] = []\n colDesc.forEach((item) => {\n data.forEach((dataItem) => {\n allNums.push(Number(dataItem[item]))\n })\n })\n const config = {\n title: {\n text: modelName,\n },\n tooltip: {\n formatter(params: { name: string }) {\n let res = `${params.name}<br/>`\n config.series?.forEach((colDescItem) => {\n colDescItem.data?.forEach((item) => {\n if (item.name === params.name) {\n res += `${colDescItem.name}:${item.value}</br>`\n }\n })\n if (!res.includes(colDescItem.name)) {\n res += `${colDescItem.name}:-</br>`\n }\n })\n return res\n },\n },\n visualMap: {\n min: Math.min(...allNums, 0),\n max: Math.max(...allNums, 0),\n text: ['高', '低'],\n realtime: false,\n calculable: true,\n inRange: {\n color: ['#E8F4FD', '#B8D4F7', '#7BA4F0', '#4A7BE8', '#3562e1']\n },\n },\n series: colDesc?.map((colDescItem) => {\n const seriesData = []\n const row = groupByDesc.find(item => item.colDesc === (adcode === '中国' ? '医院所在省' : '医院所在市'))\n // 先用省份数据,如果没有再用市级数据\n const arr: {\n [key: string]: number\n } = {}\n data.map((item) => {\n const sourceName = item[(adcode === '中国' ? (xGroupByDesc?.colDesc || '') : row?.colDesc) || '']\n const find = currentGeoJson.value.features?.find(({ properties: { name } }: { properties: { name?: string } }) => name?.includes(sourceName as string))\n return {\n name: find?.properties?.name || '',\n value: Number(item[colDescItem]),\n }\n }).forEach((item) => {\n if (!arr[item.name]) {\n arr[item.name] = item.value\n }\n else {\n arr[item.name] = arr[item.name] + item.value\n }\n })\n for (const key in arr) {\n seriesData.push({\n name: key,\n value: arr[key],\n })\n }\n return {\n name: colDescItem,\n type: 'map',\n map: adcode,\n data: seriesData,\n }\n }),\n }\n\n return merge(config, chartOptions)\n }\n catch (error) {\n console.error('Error computing area chart options:', error)\n return {\n title: { text: '地图加载失败' },\n series: [],\n }\n }\n})\n\nasync function initAfter(mc: ECharts | null) {\n myChart.value = mc\n try {\n await registerMap()\n // 添加判断,确保图表实例存在且未被销毁\n if (mc && !mc.isDisposed()) {\n // charts 监听事件\n mc.getZr()?.on('click', (params: { target: HTMLElement }) => {\n mc?.showLoading()\n if (!params.target && adcode !== '中国') {\n registerMap('中国')\n }\n mc.hideLoading()\n })\n mc.on('click', (params: { name: string }) => {\n mc?.showLoading()\n const flag = chartData.groupByDesc?.some(item => item.colDesc === '医院所在市')\n if (adcode === '中国' && flag && params.name) {\n registerMap(params.name).then(() => {\n if (mc && !mc.isDisposed()) {\n mc.setOption(areaChartOptions.value)\n }\n })\n }\n mc?.hideLoading()\n })\n }\n }\n catch (error) {\n console.error('Failed to initialize map:', error)\n // 如果初始化失败,尝试重新注册地图\n if (mc && !mc.isDisposed()) {\n try {\n await registerMap('中国')\n }\n catch (retryError) {\n console.error('Failed to retry map registration:', retryError)\n }\n }\n }\n}\n\n// function selectChina() {\n// registerMap(adcode)\n// }\nasync function registerMap(keyword = '中国') {\n try {\n const geoJson = await getGeoJsonData({ adcode: keyword })\n if (!geoJson || !geoJson.features || geoJson.features.length === 0) {\n console.error('Invalid GeoJSON data for:', keyword)\n return\n }\n currentGeoJson.value = geoJson\n adcode = keyword\n\n echarts.registerMap(keyword, geoJson as any)\n return\n }\n catch (error) {\n console.error('Failed to register map for:', keyword, error)\n // 如果注册失败,尝试使用默认的中国地图数据\n if (keyword !== '中国') {\n console.log('Falling back to China map')\n return registerMap('中国')\n }\n }\n}\nuseCharts({\n chartDOM: dataChartArea,\n chartOptions: areaChartOptions,\n chartData: computed(() => chartData),\n initAfter\n})\n</script>\n\n<template>\n <div class=\"data-chart-area-wrap\">\n <!-- <el-select\n v-if=\"isShowSelect\"\n v-model=\"adcode\"\n class=\"city-select\"\n size=\"small\"\n @change=\"selectChina\"\n >\n <el-option\n v-for=\"item in selectList\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select> -->\n <div\n ref=\"dataChartArea\"\n class=\"data-chart-area\"\n />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-area-wrap {\n position: relative;\n\n .city-select {\n position: absolute;\n top: 10px;\n right: 100px;\n z-index: 1;\n width: 120px;\n }\n\n .data-chart-area {\n height: 100%;\n }\n}\n</style>\n"],"names":["merge","inject","InjectionChartMerge","v","adcode","currentGeoJson","ref","features","type","myChart","dataChartArea","areaChartOptions","computed","xGroupByDesc","groupByDesc","colDesc","modelName","data","__props","chartData","allNums","forEach","item","dataItem","push","Number","config","title","text","tooltip","formatter","params","res","name","series","colDescItem","value","includes","visualMap","min","Math","max","realtime","calculable","inRange","color","map","seriesData","row","find","arr","sourceName","properties","key","chartOptions","error","console","async","registerMap","keyword","geoJson","getGeoJsonData","length","echarts","log","useCharts","chartDOM","initAfter","mc","isDisposed","getZr","on","showLoading","target","hideLoading","flag","some","then","setOption","retryError","_openBlock","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","class"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"area.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/area.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ECharts } from 'echarts/types/dist/echarts'\nimport type { EChartsOption, GeoJson, IFormatPublicData } from '../utils/types'\nimport * as echarts from 'echarts'\nimport { getGeoJsonData } from '../utils/config'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartArea',\n})\n\nconst {\n chartOptions,\n chartData = {\n colDesc: [],\n xGroupByDesc: {\n colDesc: '',\n groupByDesc: '',\n groupByValues: [],\n xAxis: false,\n },\n groupByDesc: [],\n data: [],\n modelName: '',\n },\n lazyLoad = true,\n} = defineProps<{\n chartOptions: EChartsOption\n chartData?: IFormatPublicData\n lazyLoad?: boolean\n}>()\n\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nlet adcode = '中国'\nconst currentGeoJson = ref<GeoJson>({\n features: [],\n type: 'FeatureCollection',\n})\nconst dataChartArea = ref(null)\n\nconst areaChartOptions = computed<EChartsOption>(() => {\n try {\n const { xGroupByDesc, groupByDesc, colDesc, modelName, data } = chartData\n const allNums: number[] = []\n colDesc.forEach((item) => {\n data.forEach((dataItem) => {\n allNums.push(Number(dataItem[item]))\n })\n })\n const config = {\n title: {\n text: modelName,\n },\n tooltip: {\n formatter(params: { name: string }) {\n let res = `${params.name}<br/>`\n config.series?.forEach((colDescItem) => {\n colDescItem.data?.forEach((item) => {\n if (item.name === params.name) {\n res += `${colDescItem.name}:${item.value}</br>`\n }\n })\n if (!res.includes(colDescItem.name)) {\n res += `${colDescItem.name}:-</br>`\n }\n })\n return res\n },\n },\n visualMap: {\n min: Math.min(...allNums, 0),\n max: Math.max(...allNums, 0),\n text: ['高', '低'],\n realtime: false,\n calculable: true,\n inRange: {\n color: ['#E8F4FD', '#B8D4F7', '#7BA4F0', '#4A7BE8', '#3562e1']\n },\n },\n series: colDesc?.map((colDescItem) => {\n const seriesData = []\n const row = groupByDesc.find(item => item.colDesc === (adcode === '中国' ? '医院所在省' : '医院所在市'))\n // 先用省份数据,如果没有再用市级数据\n const arr: {\n [key: string]: number\n } = {}\n data.map((item) => {\n const sourceName = item[(adcode === '中国' ? (xGroupByDesc?.colDesc || '') : row?.colDesc) || '']\n const find = currentGeoJson.value.features?.find(({ properties: { name } }: { properties: { name?: string } }) => name?.includes(sourceName as string))\n return {\n name: find?.properties?.name || '',\n value: Number(item[colDescItem]),\n }\n }).forEach((item) => {\n if (!arr[item.name]) {\n arr[item.name] = item.value\n }\n else {\n arr[item.name] = arr[item.name] + item.value\n }\n })\n for (const key in arr) {\n seriesData.push({\n name: key,\n value: arr[key],\n })\n }\n return {\n name: colDescItem,\n type: 'map',\n map: adcode,\n data: seriesData,\n }\n }),\n }\n\n return merge(config, chartOptions)\n }\n catch (error) {\n console.error('Error computing area chart options:', error)\n return {\n title: { text: '地图加载失败' },\n series: [],\n }\n }\n})\n\nasync function initAfter(mc: ECharts | null) {\n try {\n await registerMap()\n // 添加判断,确保图表实例存在且未被销毁\n if (mc && !mc.isDisposed()) {\n // charts 监听事件\n mc.getZr()?.on('click', (params: { target: HTMLElement }) => {\n mc?.showLoading()\n if (!params.target && adcode !== '中国') {\n registerMap('中国')\n }\n mc.hideLoading()\n })\n mc.on('click', (params: { name: string }) => {\n mc?.showLoading()\n const flag = chartData.groupByDesc?.some(item => item.colDesc === '医院所在市')\n if (adcode === '中国' && flag && params.name) {\n registerMap(params.name).then(() => {\n if (mc && !mc.isDisposed()) {\n mc.setOption(areaChartOptions.value)\n }\n })\n }\n mc?.hideLoading()\n })\n }\n }\n catch (error) {\n console.error('Failed to initialize map:', error)\n // 如果初始化失败,尝试重新注册地图\n if (mc && !mc.isDisposed()) {\n try {\n await registerMap('中国')\n }\n catch (retryError) {\n console.error('Failed to retry map registration:', retryError)\n }\n }\n }\n}\n\n// function selectChina() {\n// registerMap(adcode)\n// }\nasync function registerMap(keyword = '中国') {\n try {\n const geoJson = await getGeoJsonData({ adcode: keyword })\n if (!geoJson || !geoJson.features || geoJson.features.length === 0) {\n console.error('Invalid GeoJSON data for:', keyword)\n return\n }\n currentGeoJson.value = geoJson\n adcode = keyword\n\n echarts.registerMap(keyword, geoJson as any)\n return\n }\n catch (error) {\n console.error('Failed to register map for:', keyword, error)\n // 如果注册失败,尝试使用默认的中国地图数据\n if (keyword !== '中国') {\n console.log('Falling back to China map')\n return registerMap('中国')\n }\n }\n}\n\nconst { myChart } = useCharts({\n chartDOM: dataChartArea,\n chartOptions: areaChartOptions,\n chartData: computed(() => chartData),\n initAfter,\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div class=\"data-chart-area-wrap\">\n <!-- <el-select\n v-if=\"isShowSelect\"\n v-model=\"adcode\"\n class=\"city-select\"\n size=\"small\"\n @change=\"selectChina\"\n >\n <el-option\n v-for=\"item in selectList\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select> -->\n <div\n ref=\"dataChartArea\"\n class=\"data-chart-area\"\n />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-area-wrap {\n position: relative;\n\n .city-select {\n position: absolute;\n top: 10px;\n right: 100px;\n z-index: 1;\n width: 120px;\n }\n\n .data-chart-area {\n width: 100%;\n height: 100%;\n min-height: 300px;\n }\n}\n</style>\n"],"names":["merge","inject","InjectionChartMerge","v","adcode","currentGeoJson","ref","features","type","dataChartArea","areaChartOptions","computed","xGroupByDesc","groupByDesc","colDesc","modelName","data","__props","chartData","allNums","forEach","item","dataItem","push","Number","config","title","text","tooltip","formatter","params","res","name","series","colDescItem","value","includes","visualMap","min","Math","max","realtime","calculable","inRange","color","map","seriesData","row","find","arr","sourceName","properties","key","chartOptions","error","console","async","registerMap","keyword","geoJson","getGeoJsonData","length","echarts","log","myChart","useCharts","chartDOM","initAfter","mc","isDisposed","getZr","on","showLoading","target","hideLoading","flag","some","then","setOption","retryError","lazyLoad","__expose","_openBlock","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","class"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import a from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-area-wrap[data-v-51660d7b] {\n position: relative;\n}\n.data-chart-area-wrap .city-select[data-v-51660d7b] {\n position: absolute;\n top: 10px;\n right: 100px;\n z-index: 1;\n width: 120px;\n}\n.data-chart-area-wrap .data-chart-area[data-v-51660d7b] {\n height: 100%;\n}";a(t);export{t as default};
|
1
|
+
import a from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-area-wrap[data-v-51660d7b] {\n position: relative;\n}\n.data-chart-area-wrap .city-select[data-v-51660d7b] {\n position: absolute;\n top: 10px;\n right: 100px;\n z-index: 1;\n width: 120px;\n}\n.data-chart-area-wrap .data-chart-area[data-v-51660d7b] {\n width: 100%;\n height: 100%;\n min-height: 300px;\n}";a(t);export{t as default};
|
2
2
|
//# sourceMappingURL=area.vue3.mjs.map
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import r from"./bar.vue2.mjs";import"./bar.vue3.mjs";import e from"../../../../_virtual/_plugin-vue_export-helper.mjs";var a=e(r,[["__scopeId","data-v-c325b6e7"]]);export{a as default};
|
2
2
|
//# sourceMappingURL=bar.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bar.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"bar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import r from"
|
1
|
+
import{defineComponent as e,inject as a,ref as t,computed as s,createElementBlock as r,openBlock as l}from"vue";import{uniq as o}from"lodash-es";import{InjectionChartMerge as c}from"../utils/injectionKeys.mjs";import{useCharts as i}from"../utils/useCharts.mjs";var n=e({name:"DataChartBar",__name:"bar",props:{chartData:{type:Object,required:!0},subShowType:{type:String,required:!0,default:"bar-simple"},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:n}){const p=a(c,e=>e,!0),u=t(null),y=s(()=>{const{colDesc:a,xGroupByDesc:t,groupByDesc:s,data:r=[],modelName:l}=e.chartData,c=Array.from(new Set(r.map(e=>e[t.colDesc||""]))).filter(e=>null!=e)||[],i={...s.find(e=>!e.xAxis)||{groupByDesc:null,groupByValues:[],colDesc:"",xAxis:!1},groupByValues:o(r.map(e=>s.find(e=>!e.xAxis)?.colDesc?String(e[s.find(e=>!e.xAxis)?.colDesc||""]):""))},n=t?{...t,groupByValues:o(r.map(e=>t.colDesc?String(e[t.colDesc]):""))}:t,u={title:{text:l},xAxis:{name:"",type:"category",axisLabel:{interval:0,formatter:e=>e.length>5?`${e.substring(0,5)}...`:e},data:c},yAxis:{type:"value"},legend:{data:[]},dataZoom:[{type:"inside",disabled:c.length<15}]};if(1===s.length)u.series=a.map(e=>({name:e,data:r.map(a=>a[e]),type:"bar",emphasis:{focus:"series"},label:{show:!0,position:"inside"}})),u.legend.data=a;else if(2===s.length){const e=a.map(e=>i.groupByValues?.map(a=>{const t={name:`${a||"/"}-${e}`,type:"bar",stack:e,emphasis:{focus:"series"},data:[],label:{show:!0,position:"inside"}};return t.data=(n?.groupByValues||[]).map(e=>{let s=null;return r.forEach(r=>{i.colDesc&&r[i.colDesc]===a&&n?.colDesc&&r[n.colDesc]===e&&t.stack&&(s=r[t.stack]??null)}),s||""}).filter(e=>""!==e),t})||[]).flat();u.series=e,delete u.legend}function y(e,a,t,s){Array.isArray(e)?e.forEach(e=>{e&&(e.type=a,"category"===a&&(e.data=t||[],e.name=s||""))}):e&&(e.type=a,"category"===a&&(e.data=t||[],e.name=s||""))}switch(e.subShowType){case"bar-simple":case"default":y(u.xAxis,"category",c,t?.colDesc||""),y(u.yAxis,"value");break;case"bar-y-category":y(u.xAxis,"value"),y(u.yAxis,"category",c,t?.colDesc||"")}return p(u,e.chartOptions)}),{myChart:d}=i({chartDOM:u,chartOptions:y,chartData:s(()=>e.chartData),lazyLoad:e.lazyLoad});return n({myChart:d}),(e,a)=>(l(),r("div",{ref_key:"dataChartBar",ref:u,class:"data-chart-bar"},null,512))}});export{n as default};
|
2
2
|
//# sourceMappingURL=bar.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bar.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"bar.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/bar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { LegendComponentOption, XAXisComponentOption, YAXisComponentOption } from 'echarts'\nimport type {\n EChartsOption,\n IFormatPublicData,\n SeriesOption,\n} from '../utils/types'\nimport { uniq } from 'lodash-es'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\n// 定义组件名称\ndefineOptions({\n name: 'DataChartBar',\n})\n\n// 定义组件属性\nconst {\n chartOptions,\n chartData,\n subShowType = 'bar-simple',\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n subShowType: string\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\n// 注入合并函数,并明确类型\nconst merge = inject(InjectionChartMerge, (v: any) => v, true) as (config: EChartsOption, chartOptions: EChartsOption) => EChartsOption\nconst dataChartBar = ref<HTMLElement | null>(null)\n\n// 计算图表选项\nconst barChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, groupByDesc, data = [], modelName } = chartData\n\n const axisData = Array.from(new Set(data.map(item => item[xGroupByDesc.colDesc || '']))).filter(item => item !== undefined && item !== null) || []\n\n // 创建新的对象而不是修改原对象\n const yGroupByDesc = {\n ...groupByDesc.find(item => !item.xAxis) || {\n groupByDesc: null,\n groupByValues: [],\n colDesc: '',\n xAxis: false,\n },\n groupByValues: uniq(data.map(item => groupByDesc.find(item => !item.xAxis)?.colDesc ? String(item[groupByDesc.find(item => !item.xAxis)?.colDesc || '']) : '')),\n }\n\n // 创建新的 xGroupByDesc 对象\n const newXGroupByDesc = xGroupByDesc\n ? {\n ...xGroupByDesc,\n groupByValues: uniq(data.map(item => xGroupByDesc.colDesc ? String(item[xGroupByDesc.colDesc]) : '')),\n }\n : xGroupByDesc\n\n const config: EChartsOption = {\n title: {\n text: modelName,\n },\n xAxis: {\n name: '',\n type: 'category',\n axisLabel: {\n interval: 0, // 强制显示所有标签\n formatter(value: string) {\n const screenshotLength = 5\n return value.length > screenshotLength ? `${value.substring(0, screenshotLength)}...` : value // 截取前5个字符并添加省略号\n },\n },\n data: axisData,\n },\n yAxis: {\n type: 'value',\n },\n legend: {\n data: [],\n },\n dataZoom: [{\n type: 'inside',\n disabled: axisData.length < 15,\n }],\n }\n\n // 堆叠图\n if (groupByDesc.length === 1) {\n config.series = colDesc.map((yItem) => {\n return {\n name: yItem,\n data: data.map(item => item[yItem]),\n type: 'bar',\n emphasis: {\n focus: 'series',\n },\n label: {\n show: true,\n position: 'inside',\n },\n }\n });\n (config.legend as LegendComponentOption).data = colDesc\n }\n else if (groupByDesc.length === 2) {\n const arr = colDesc.map((colDescItem) => {\n return yGroupByDesc.groupByValues?.map((yGroupByDescItem) => {\n const obj: SeriesOption = {\n name: `${yGroupByDescItem || '/'}-${colDescItem}`,\n type: 'bar',\n stack: colDescItem,\n emphasis: {\n focus: 'series',\n },\n data: [],\n label: {\n show: true,\n position: 'inside',\n },\n }\n obj.data = (newXGroupByDesc?.groupByValues || []).map((xGroupByDescItem) => {\n let targetVal: number | string | null = null\n data.forEach((item) => {\n if (yGroupByDesc.colDesc && item[yGroupByDesc.colDesc] === yGroupByDescItem && newXGroupByDesc?.colDesc && item[newXGroupByDesc.colDesc] === xGroupByDescItem) {\n if (obj.stack) {\n targetVal = item[obj.stack] ?? null\n }\n }\n })\n return targetVal || ''\n }).filter(v => v !== '')\n return obj\n }) || []\n }).flat()\n\n config.series = arr\n delete config.legend\n }\n\n // 1. 定义轴类型\n type CategoryAxisOption = XAXisComponentOption & {\n type: 'category'\n data: (string | number)[]\n }\n\n // 2. 创建配置轴的辅助函数\n function configureAxis(\n axis: XAXisComponentOption | XAXisComponentOption[] | YAXisComponentOption | YAXisComponentOption[] | undefined,\n type: 'category' | 'value',\n data?: (string | number)[],\n name?: string,\n ) {\n if (Array.isArray(axis)) {\n axis.forEach((item) => {\n if (item) {\n item.type = type\n if (type === 'category') {\n (item as CategoryAxisOption).data = data || []\n item.name = name || ''\n }\n }\n })\n }\n else if (axis) {\n axis.type = type\n if (type === 'category') {\n (axis as CategoryAxisOption).data = data || []\n axis.name = name || ''\n }\n }\n }\n\n // 3. 使用配置函数\n switch (subShowType) {\n case 'bar-simple':\n case 'default':\n configureAxis(config.xAxis, 'category', axisData, xGroupByDesc?.colDesc || '')\n configureAxis(config.yAxis, 'value')\n break\n\n case 'bar-y-category':\n configureAxis(config.xAxis, 'value')\n configureAxis(config.yAxis, 'category', axisData, xGroupByDesc?.colDesc || '')\n break\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartBar,\n chartOptions: barChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartBar\"\n class=\"data-chart-bar\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-bar {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["merge","inject","InjectionChartMerge","v","dataChartBar","ref","barChartOptions","computed","colDesc","xGroupByDesc","groupByDesc","data","modelName","__props","chartData","axisData","Array","from","Set","map","item","filter","yGroupByDesc","find","xAxis","groupByValues","uniq","String","newXGroupByDesc","config","title","text","name","type","axisLabel","interval","formatter","value","length","substring","yAxis","legend","dataZoom","disabled","series","yItem","emphasis","focus","label","show","position","arr","colDescItem","yGroupByDescItem","obj","stack","xGroupByDescItem","targetVal","forEach","flat","configureAxis","axis","isArray","subShowType","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-bar[data-v-c325b6e7] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
|
2
|
+
//# sourceMappingURL=bar.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bar.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import e from"./funnel.vue2.mjs";import"./funnel.vue3.mjs";import r from"../../../../_virtual/_plugin-vue_export-helper.mjs";var m=r(e,[["__scopeId","data-v-c580cbe3"]]);export{m as default};
|
2
2
|
//# sourceMappingURL=funnel.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"funnel.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"funnel.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import e from"
|
1
|
+
import{defineComponent as e,ref as a,inject as t,computed as r,createElementBlock as l,openBlock as n}from"vue";import{InjectionChartMerge as o}from"../utils/injectionKeys.mjs";import{useCharts as s}from"../utils/useCharts.mjs";var i=e({name:"DataChartFunnel",__name:"funnel",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:i}){const c=a(),m=t(o,e=>e,!0),p=r(()=>{const{colDesc:a,xGroupByDesc:t,modelName:r,data:l}=e.chartData,n={title:{text:r},legend:{},series:a.map(e=>({name:e,type:"funnel",left:"10%",width:"80%",label:{formatter:"{c}"},labelLine:{show:!1},itemStyle:{opacity:.7},emphasis:{label:{position:"inside",formatter:`{b}${e}: {c}`}},data:l.map(a=>({name:a[t?.colDesc||""],value:a[e]||""}))}))};return 1!==a.length&&(n.legend.data=a),m(n,e.chartOptions)}),{myChart:u}=s({chartDOM:c,chartOptions:p,chartData:r(()=>e.chartData),lazyLoad:e.lazyLoad});return i({myChart:u}),(e,a)=>(n(),l("div",{ref_key:"dataChartFunnel",ref:c,class:"data-chart-funnel"},null,512))}});export{i as default};
|
2
2
|
//# sourceMappingURL=funnel.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"funnel.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"funnel.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/funnel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { LegendOption } from 'echarts/types/dist/shared'\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartFunnel',\n})\nconst {\n chartOptions,\n chartData,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst dataChartFunnel = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\nconst funnelChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n\n const config = {\n title: {\n text: modelName,\n },\n legend: {},\n series: colDesc.map((item) => {\n return {\n name: item,\n type: 'funnel',\n left: '10%',\n width: '80%',\n label: {\n formatter: '{c}',\n },\n labelLine: {\n show: false,\n },\n itemStyle: {\n opacity: 0.7,\n },\n emphasis: {\n label: {\n position: 'inside',\n formatter: `{b}${item}: {c}`,\n },\n },\n data: data.map(yItem => ({\n name: yItem[xGroupByDesc?.colDesc || ''],\n value: yItem[item] || '',\n })),\n }\n }),\n }\n if (colDesc.length !== 1) {\n (config.legend as LegendOption).data = colDesc\n }\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartFunnel,\n chartOptions: funnelChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartFunnel\"\n class=\"data-chart-funnel\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-funnel {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartFunnel","ref","merge","inject","InjectionChartMerge","v","funnelChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","config","title","text","legend","series","map","item","name","type","left","width","label","formatter","labelLine","show","itemStyle","opacity","emphasis","position","yItem","value","length","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"waAkBA,MAAMA,EAAkBC,IAClBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GACnDC,EAAqBC,EAAwB,KACjD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAE7CC,EAAS,CACbC,MAAO,CACLC,KAAMN,GAERO,OAAQ,CAAA,EACRC,OAAQV,EAAQW,IAAKC,IACZ,CACLC,KAAMD,EACNE,KAAM,SACNC,KAAM,MACNC,MAAO,MACPC,MAAO,CACLC,UAAW,OAEbC,UAAW,CACTC,MAAM,GAERC,UAAW,CACTC,QAAS,IAEXC,SAAU,CACRN,MAAO,CACLO,SAAU,SACVN,UAAW,MAAMN,WAGrBT,KAAMA,EAAKQ,IAAIc,IAAA,CACbZ,KAAMY,EAAMxB,GAAcD,SAAW,IACrC0B,MAAOD,EAAMb,IAAS,UAQ9B,OAHuB,IAAnBZ,EAAQ2B,SACTrB,EAAOG,OAAwBN,KAAOH,GAElCN,EAAMY,EAAQF,EAAAwB,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAUvC,EACVoC,aAAc9B,EACdO,UAAWN,EAAS,IAAMK,EAAAC,WAC1B2B,SAAO5B,EAAA4B,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,kBAAJzC,IAAID,EACJ2C,MAAM"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var n="/* unplugin-vue-components disabled */\n.data-chart-funnel[data-v-c580cbe3] {\n width: 100%;\n height: 100%;\n}";e(n);export{n as default};
|
2
|
+
//# sourceMappingURL=funnel.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"funnel.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{defineComponent as e,ref as
|
1
|
+
import{defineComponent as e,ref as a,inject as t,computed as r,createElementBlock as n,openBlock as s}from"vue";import{InjectionChartMerge as l}from"../utils/injectionKeys.mjs";import{useCharts as o}from"../utils/useCharts.mjs";var c=e({name:"DataChartLine",__name:"line",props:{chartData:{type:Object,required:!0},subShowType:{type:String,required:!0,default:"line-simple"},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:c}){const i=a(),d=t(l,e=>e,!0),p=15,u="Total",h=!0;const m=r(()=>{const{colDesc:a,xGroupByDesc:t,groupByDesc:r,data:n,modelName:s}=e.chartData;n&&0!==n.length||console.warn("[LineChart] 数据为空,图表将显示空状态"),a&&0!==a.length||console.warn("[LineChart] colDesc 为空,无法生成图表系列"),t?.colDesc||console.warn("[LineChart] xGroupByDesc.colDesc 为空,无法生成 X 轴数据");const l=Array.from(new Set(n?.map(e=>e[t?.colDesc||""]))).filter(e=>null!=e)||[],o=r?.find(e=>!e.xAxis),c={title:{text:s},legend:{data:[]},xAxis:{name:t?.colDesc||"",data:l},dataZoom:[{type:"inside",disabled:l.length<p}]};if(1===r?.length)c.series=a.map(e=>({name:e,type:"line",smooth:h,data:l.map(a=>{const r=n.find(e=>e[t?.colDesc||""]===a);return r?r[e]??null:null})})),c.legend.data=a;else if(2===r?.length){const e=[...new Set(n.map(e=>String(e[o?.colDesc||""])))];c.legend.data=e,c.series=e.map(e=>function(e,a,t,r,n,s){const l=[];return a.forEach(a=>{const o=t.find(t=>t[r?.colDesc]===a&&t[n?.colDesc]===e);o&&void 0!==o[s[0]]&&null!==o[s[0]]?l.push(o[s[0]]):l.push(null)}),{name:e,type:"line",smooth:h,stack:u,areaStyle:{},data:l}}(e,l,n,t,o,a))}return c.series=c.series?.map(a=>{const t={...a};switch(e.subShowType){case"line-simple":default:delete t.areaStyle;break;case"area-basic":t.areaStyle={}}return t}),d(c,e.chartOptions)}),{myChart:y}=o({chartDOM:i,chartOptions:m,chartData:r(()=>e.chartData),lazyLoad:e.lazyLoad});return c({myChart:y}),(e,a)=>(s(),n("div",{ref_key:"dataChartLine",ref:i,class:"data-chart-line"},null,512))}});export{c as default};
|
2
2
|
//# sourceMappingURL=line.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"line.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/line.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { LegendComponentOption } from 'echarts'\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartLine',\n})\nconst {\n chartData,\n subShowType = 'line-simple',\n chartOptions,\n} = defineProps<{\n chartData: IFormatPublicData\n subShowType: string\n chartOptions: EChartsOption\n}>()\nconst dataChartLine = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\n// 抽取类型定义\ninterface SeriesItem {\n name: string\n type: 'line'\n stack?: string\n smooth?: boolean\n areaStyle?: Record<string, any>\n data: Array<string | number>\n}\n\n// 将配置提取为常量\nconst CHART_CONSTANTS = {\n MIN_ZOOM_LENGTH: 15,\n STACK_NAME: 'Total',\n SMOOTH: true,\n} as const\n\n// 提取处理图表系列数据的函数\nfunction processSeriesData(legendDataItem: string,\n xAxisData: (string | number)[],\n data: any[],\n xGroupByDesc: any,\n yGroupByDesc: any,\n colDesc: string[]): SeriesItem {\n const seriesData: (string | number)[] = []\n\n xAxisData.forEach((xAxisItem) => {\n const targetData = data\n .find(dataItem =>\n dataItem[xGroupByDesc?.colDesc] === xAxisItem\n && dataItem[yGroupByDesc?.colDesc] === legendDataItem,\n )\n\n if (targetData) {\n seriesData.push(targetData[colDesc[0]])\n }\n else {\n seriesData.push(
|
1
|
+
{"version":3,"file":"line.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/line.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { LegendComponentOption } from 'echarts'\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartLine',\n})\nconst {\n chartData,\n subShowType = 'line-simple',\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n subShowType: string\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst dataChartLine = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\n// 抽取类型定义\ninterface SeriesItem {\n name: string\n type: 'line'\n stack?: string\n smooth?: boolean\n areaStyle?: Record<string, any>\n data: Array<string | number | null>\n}\n\n// 将配置提取为常量\nconst CHART_CONSTANTS = {\n MIN_ZOOM_LENGTH: 15,\n STACK_NAME: 'Total',\n SMOOTH: true,\n} as const\n\n// 提取处理图表系列数据的函数\nfunction processSeriesData(legendDataItem: string,\n xAxisData: (string | number)[],\n data: any[],\n xGroupByDesc: any,\n yGroupByDesc: any,\n colDesc: string[]): SeriesItem {\n const seriesData: (string | number | null)[] = []\n\n xAxisData.forEach((xAxisItem) => {\n const targetData = data\n .find(dataItem =>\n dataItem[xGroupByDesc?.colDesc] === xAxisItem\n && dataItem[yGroupByDesc?.colDesc] === legendDataItem,\n )\n\n if (targetData && targetData[colDesc[0]] !== undefined && targetData[colDesc[0]] !== null) {\n seriesData.push(targetData[colDesc[0]])\n }\n else {\n seriesData.push(null) // 使用 null 而不是 0,让 ECharts 自动处理空值\n }\n })\n\n return {\n name: legendDataItem,\n type: 'line',\n smooth: CHART_CONSTANTS.SMOOTH,\n stack: CHART_CONSTANTS.STACK_NAME,\n areaStyle: {},\n data: seriesData,\n }\n}\n\nconst lineChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, groupByDesc, data, modelName } = chartData\n\n // 数据验证\n if (!data || data.length === 0) {\n console.warn('[LineChart] 数据为空,图表将显示空状态')\n }\n\n if (!colDesc || colDesc.length === 0) {\n console.warn('[LineChart] colDesc 为空,无法生成图表系列')\n }\n\n if (!xGroupByDesc?.colDesc) {\n console.warn('[LineChart] xGroupByDesc.colDesc 为空,无法生成 X 轴数据')\n }\n\n const xAxisData = Array.from(new Set(data?.map(item => item[xGroupByDesc?.colDesc || '']))).filter(item => item !== undefined && item !== null) || []\n const yGroupByDesc = groupByDesc?.find(item => !item.xAxis)\n\n const config: EChartsOption & { series?: SeriesItem[] } = {\n title: { text: modelName },\n legend: { data: [] },\n xAxis: {\n name: xGroupByDesc?.colDesc || '',\n data: xAxisData,\n },\n dataZoom: [{\n type: 'inside',\n disabled: xAxisData.length < CHART_CONSTANTS.MIN_ZOOM_LENGTH,\n }],\n }\n\n // 处理系列数据\n if (groupByDesc?.length === 1) {\n config.series = colDesc.map(yItem => ({\n name: yItem,\n type: 'line',\n smooth: CHART_CONSTANTS.SMOOTH,\n data: xAxisData.map(xValue => {\n const dataItem = data.find(item => item[xGroupByDesc?.colDesc || ''] === xValue)\n return dataItem ? (dataItem[yItem] ?? null) : null\n }),\n }));\n (config.legend as LegendComponentOption).data = colDesc\n }\n else if (groupByDesc?.length === 2) {\n const legendData = [...new Set(data.map(item => String(item[yGroupByDesc?.colDesc || ''])))]\n ;(config.legend as LegendComponentOption).data = legendData\n\n config.series = legendData.map(legendDataItem =>\n processSeriesData(legendDataItem, xAxisData, data, xGroupByDesc, yGroupByDesc, colDesc),\n )\n }\n\n // 处理图表展示类型\n config.series = config.series?.map((item) => {\n const seriesItem = { ...item }\n\n switch (subShowType) {\n case 'line-simple':\n delete seriesItem.areaStyle\n break\n case 'area-basic':\n seriesItem.areaStyle = {}\n break\n default:\n delete seriesItem.areaStyle\n }\n\n return seriesItem\n })\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartLine,\n chartOptions: lineChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartLine\"\n class=\"data-chart-line\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-line {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartLine","ref","merge","inject","InjectionChartMerge","v","CHART_CONSTANTS","lineChartOptions","computed","colDesc","xGroupByDesc","groupByDesc","data","modelName","__props","chartData","length","console","warn","xAxisData","Array","from","Set","map","item","filter","yGroupByDesc","find","xAxis","config","title","text","legend","name","dataZoom","type","disabled","series","yItem","smooth","xValue","dataItem","legendData","String","legendDataItem","seriesData","forEach","xAxisItem","targetData","push","stack","areaStyle","processSeriesData","seriesItem","subShowType","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"geAoBA,MAAMA,EAAgBC,IAChBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GAanDC,EACa,GADbA,EAEQ,QAFRA,GAGI,EAqCV,MAAMC,EAAmBC,EAAwB,KAC/C,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,YAAcA,OAAaC,EAAAC,UAAMA,GAAcC,EAAAC,UAG3DH,GAAwB,IAAhBA,EAAKI,QAChBC,QAAQC,KAAK,6BAGVT,GAA8B,IAAnBA,EAAQO,QACtBC,QAAQC,KAAK,mCAGVR,GAAcD,SACjBQ,QAAQC,KAAK,kDAGf,MAAMC,EAAYC,MAAMC,KAAK,IAAIC,IAAIV,GAAMW,IAAIC,GAAQA,EAAKd,GAAcD,SAAW,OAAOgB,OAAOD,GAAQA,UAAwC,GAC7IE,EAAef,GAAagB,KAAKH,IAASA,EAAKI,OAE/CC,EAAoD,CACxDC,MAAO,CAAEC,KAAMlB,GACfmB,OAAQ,CAAEpB,KAAM,IAChBgB,MAAO,CACLK,KAAMvB,GAAcD,SAAW,GAC/BG,KAAMO,GAERe,SAAU,CAAC,CACTC,KAAM,SACNC,SAAUjB,EAAUH,OAASV,KAKjC,GAA4B,IAAxBK,GAAaK,OACfa,EAAOQ,OAAS5B,EAAQc,IAAIe,IAAA,CAC1BL,KAAMK,EACNH,KAAM,OACNI,OAAQjC,EACRM,KAAMO,EAAUI,IAAIiB,IAClB,MAAMC,EAAW7B,EAAKe,KAAKH,GAAQA,EAAKd,GAAcD,SAAW,MAAQ+B,GACzE,OAAOC,EAAYA,EAASH,IAAU,KAAQ,UAGjDT,EAAOG,OAAiCpB,KAAOH,OAClD,GACiC,IAAxBE,GAAaK,OAAc,CAClC,MAAM0B,EAAa,IAAI,IAAIpB,IAAIV,EAAKW,IAAIC,GAAQmB,OAAOnB,EAAKE,GAAcjB,SAAW,QACnFoB,EAAOG,OAAiCpB,KAAO8B,EAEjDb,EAAOQ,OAASK,EAAWnB,OAlF/B,SAA2BqB,EACzBzB,EACAP,EACAF,EACAgB,EACAjB,GACA,MAAMoC,EAAyC,GAiB/C,OAfA1B,EAAU2B,QAASC,IACjB,MAAMC,EAAapC,EAChBe,KAAKc,GACJA,EAAS/B,GAAcD,WAAasC,GACjCN,EAASf,GAAcjB,WAAamC,GAGvCI,QAAyC,IAA3BA,EAAWvC,EAAQ,KAAgD,OAA3BuC,EAAWvC,EAAQ,IAC3EoC,EAAWI,KAAKD,EAAWvC,EAAQ,KAGnCoC,EAAWI,KAAK,QAIb,CACLhB,KAAMW,EACNT,KAAM,OACNI,OAAQjC,EACR4C,MAAO5C,EACP6C,UAAW,CAAA,EACXvC,KAAMiC,EAEV,CAoDMO,CAAkBR,EAAgBzB,EAAWP,EAAMF,EAAcgB,EAAcjB,GAEnF,CAoBA,OAjBAoB,EAAOQ,OAASR,EAAOQ,QAAQd,IAAKC,IAClC,MAAM6B,EAAa,IAAK7B,GAExB,OAAQV,EAAAwC,aACN,IAAK,cAML,eACSD,EAAWF,gBAJpB,IAAK,aACHE,EAAWF,UAAY,CAAA,EAM3B,OAAOE,IAGFnD,EAAM2B,EAAQf,EAAAyC,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAU1D,EACVuD,aAAchD,EACdQ,UAAWP,EAAS,IAAMM,EAAAC,WAC1B4C,SAAO7C,EAAA6C,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,gBAAJ5D,IAAID,EACJ8D,MAAM"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import e from"./pie.vue2.mjs";import"./pie.vue3.mjs";import p from"../../../../_virtual/_plugin-vue_export-helper.mjs";var r=p(e,[["__scopeId","data-v-b5a98608"]]);export{r as default};
|
2
2
|
//# sourceMappingURL=pie.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pie.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"pie.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import e from"
|
1
|
+
import{defineComponent as e,inject as t,ref as r,computed as a,createElementBlock as o,openBlock as i}from"vue";import{orderBy as l}from"lodash-es";import{InjectionChartMerge as s}from"../utils/injectionKeys.mjs";import{useCharts as c}from"../utils/useCharts.mjs";var n=e({name:"DataChartPie",__name:"pie",props:{chartData:{type:Object,required:!0},subShowType:{type:String,required:!0,default:"pie-simple"},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(e,{expose:n}){const h=t(s,e=>e,!0),m=r(null),u=a(()=>{const{colDesc:t,xGroupByDesc:r,data:a,modelName:o}=e.chartData,i=t.length,s={title:{text:o},series:t.map((t,o)=>{const s={name:t,type:"pie",center:["50%","50%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}},label:{formatter:"{b}:{c}({d}%)",rich:{b:{color:"#4C5058",fontSize:14,fontWeight:"bold",lineHeight:33}}}};let c=5;const n=a.filter(e=>void 0!==e[t]),h=l(n,[t],["desc"]),m=h.reduce((e,r)=>{const a=Number(r[t])||0;return Number.isNaN(a)?e:e+a},0);if(n.length>c)for(;c<9;){const e=h.slice(0,c);if(e.reduce((e,r)=>e+Number(r[t]),0)/m>.9||8===c){const a=h.slice(c,h.length-1);s.data=n.map(a=>{let o={};return e.forEach(e=>{JSON.stringify(e)===JSON.stringify(a)&&(o={name:r?.colDesc?a[r.colDesc]:"",value:a[t]})}),o}).filter(e=>e&&Object.keys(e).length>0),s.data.push({name:"其它",value:a.reduce((e,r)=>e+Number(r[t]),0)});break}c++}else s.data=n.map(e=>({name:r?.colDesc&&e[r.colDesc]||"",value:Number(e[t]||0)}));if(1===i?s.center=["50%","60%"]:2===i?0===o?(s.right="40%",s.left="",s.center=["40%","60%"]):(s.right="",s.left="40%",s.center=["60%","60%"]):3===i?0===o?(s.right="40%",s.bottom="50%",s.top="",s.left="",s.center=["40%","78%"]):1===o?(s.right="",s.bottom="50%",s.top="",s.left="40%",s.center=["60%","78%"]):(s.right="40%",s.bottom="",s.top="50%",s.left="",s.center=["40%","60%"]):4===i&&(0===o?(s.right="40%",s.bottom="50%",s.top="",s.left="",s.center=["40%","78%"]):1===o?(s.right="",s.bottom="50%",s.top="",s.left="40%",s.center=["60%","78%"]):2===o?(s.right="40%",s.bottom="",s.top="50%",s.left="",s.center=["40%","60%"]):(s.right="",s.bottom="",s.top="50%",s.left="40%",s.center=["60%","60%"])),"pie-borderRadius"===e.subShowType)s.radius=["50%","70%"];else s.radius="50%";return s})};return h(s,e.chartOptions)}),{myChart:p}=c({chartDOM:m,chartOptions:u,chartData:a(()=>e.chartData),lazyLoad:e.lazyLoad});return n({myChart:p}),(e,t)=>(i(),o("div",{ref_key:"dataChartPie",ref:m,class:"data-chart-pie"},null,512))}});export{n as default};
|
2
2
|
//# sourceMappingURL=pie.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pie.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"pie.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/pie.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PieSeriesOption } from 'echarts/charts'\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { orderBy } from 'lodash-es'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartPie',\n})\nconst {\n chartData,\n subShowType = 'pie-simple',\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n subShowType: string\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst dataChartPie = ref(null)\nconst pieChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, data, modelName } = chartData\n const colDescLength = colDesc.length\n const config = {\n title: { text: modelName },\n series: colDesc.map((item, index) => {\n const seriesItem: PieSeriesOption = {\n name: item,\n type: 'pie',\n center: ['50%', '50%'],\n data: [],\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)',\n },\n },\n label: {\n formatter: '{b}:{c}({d}%)',\n rich: {\n b: {\n color: '#4C5058',\n fontSize: 14,\n fontWeight: 'bold',\n lineHeight: 33,\n },\n },\n },\n }\n\n let cutNum = 5\n const currentItemData = data.filter(row => row[item] !== undefined)\n const orderByData = orderBy(currentItemData, [item], ['desc'])\n // 总数\n const totalDesc = orderByData.reduce((prev, cur) => {\n const value = Number(cur[item]) || 0\n return Number.isNaN(value) ? prev : prev + value\n }, 0)\n if (currentItemData.length > cutNum) {\n while (cutNum < 9) {\n const headerData = orderByData.slice(0, cutNum)\n // 前 cutNum 个总数\n const headerTotal = headerData.reduce(\n (prev, cur) => prev + Number(cur[item]),\n 0,\n )\n // 前五总占比\n const headerScale = headerTotal / totalDesc\n if (headerScale > 0.9 || cutNum === 8) {\n const footerData = orderByData.slice(\n cutNum,\n orderByData.length - 1,\n )\n seriesItem.data = currentItemData\n .map((yItem) => {\n let obj = {}\n headerData.forEach((headerDataItem) => {\n if (JSON.stringify(headerDataItem) === JSON.stringify(yItem)) {\n obj = {\n name: xGroupByDesc?.colDesc\n ? yItem[xGroupByDesc.colDesc]\n : '',\n value: yItem[item],\n }\n }\n })\n return obj\n })\n .filter(v => v && Object.keys(v).length > 0)\n seriesItem.data.push({\n name: '其它',\n value: footerData.reduce(\n (prev, cur) => prev + Number(cur[item]),\n 0,\n ),\n })\n\n break\n }\n else {\n cutNum++\n }\n }\n }\n else {\n seriesItem.data = currentItemData.map(yItem => ({\n name: xGroupByDesc?.colDesc ? (yItem[xGroupByDesc.colDesc] || '') : '',\n value: Number(yItem[item] || 0),\n }))\n }\n\n if (colDescLength === 1) {\n seriesItem.center = ['50%', '60%']\n }\n else if (colDescLength === 2) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n else {\n seriesItem.right = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '60%']\n }\n }\n else if (colDescLength === 3) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = ''\n seriesItem.center = ['40%', '78%']\n }\n else if (index === 1) {\n seriesItem.right = ''\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '78%']\n }\n else {\n seriesItem.right = '40%'\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n }\n else if (colDescLength === 4) {\n if (index === 0) {\n seriesItem.right = '40%'\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = ''\n seriesItem.center = ['40%', '78%']\n }\n else if (index === 1) {\n seriesItem.right = ''\n seriesItem.bottom = '50%'\n seriesItem.top = ''\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '78%']\n }\n else if (index === 2) {\n seriesItem.right = '40%'\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = ''\n seriesItem.center = ['40%', '60%']\n }\n else {\n seriesItem.right = ''\n seriesItem.bottom = ''\n seriesItem.top = '50%'\n seriesItem.left = '40%'\n seriesItem.center = ['60%', '60%']\n }\n }\n // 处理图表形状\n switch (subShowType) {\n case 'pie-borderRadius':\n seriesItem.radius = ['50%', '70%']\n break\n case 'pie-simple':\n seriesItem.radius = '50%'\n break\n default:\n seriesItem.radius = '50%'\n break\n }\n return seriesItem\n }),\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartPie,\n chartOptions: pieChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartPie\"\n class=\"data-chart-pie\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-pie {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["merge","inject","InjectionChartMerge","v","dataChartPie","ref","pieChartOptions","computed","colDesc","xGroupByDesc","data","modelName","__props","chartData","colDescLength","length","config","title","text","series","map","item","index","seriesItem","name","type","center","emphasis","itemStyle","shadowBlur","shadowOffsetX","shadowColor","label","formatter","rich","b","color","fontSize","fontWeight","lineHeight","cutNum","currentItemData","filter","row","orderByData","orderBy","totalDesc","reduce","prev","cur","value","Number","isNaN","headerData","slice","footerData","yItem","obj","forEach","headerDataItem","JSON","stringify","Object","keys","push","right","left","bottom","top","subShowType","radius","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-pie[data-v-b5a98608] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
|
2
|
+
//# sourceMappingURL=pie.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pie.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import r from"./radar.vue2.mjs";import"./radar.vue3.mjs";import a from"../../../../_virtual/_plugin-vue_export-helper.mjs";var e=a(r,[["__scopeId","data-v-dcb2eae6"]]);export{e as default};
|
2
2
|
//# sourceMappingURL=radar.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radar.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"radar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import r from"
|
1
|
+
import{defineComponent as a,ref as r,inject as e,computed as t,createElementBlock as o,openBlock as s}from"vue";import{uniq as l}from"lodash-es";import{InjectionChartMerge as m}from"../utils/injectionKeys.mjs";import{useCharts as u}from"../utils/useCharts.mjs";var p=a({name:"DataChartRadar",__name:"radar",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(a,{expose:p}){const c=r(),i=e(m,a=>a,!0),d=t(()=>{const{colDesc:r,xGroupByDesc:e,modelName:t,data:o}=a.chartData;e?.groupByValues||(e.groupByValues=[]),e.groupByValues=l(o.map(a=>a[e.colDesc||""]).filter(a=>a));const s={title:{text:t},radar:{indicator:e?.groupByValues?.map(a=>({name:a,max:Math.max(...o.map(a=>Number(a[r[0]])))}))||[]},series:[{name:e?.colDesc,type:"radar",tooltip:{trigger:"item"},data:r.map(a=>({name:a,value:e?.groupByValues?.map(r=>o.map(t=>r===t[e.colDesc||""]?t[a]:null).filter(a=>a).reduce((a,r)=>Number(a||0)+Number(r||0),0))}))}]};return i(s,a.chartOptions)}),{myChart:n}=u({chartDOM:c,chartOptions:d,chartData:t(()=>a.chartData),lazyLoad:a.lazyLoad});return p({myChart:n}),(a,r)=>(s(),o("div",{ref_key:"dataChartRadar",ref:c,class:"data-chart-radar"},null,512))}});export{p as default};
|
2
2
|
//# sourceMappingURL=radar.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radar.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"radar.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/radar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { uniq } from 'lodash-es'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartRadar',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartRadar = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\nconst radarChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n\n if (!xGroupByDesc?.groupByValues) {\n xGroupByDesc.groupByValues = []\n }\n xGroupByDesc.groupByValues = uniq(data.map((item) => {\n return item[xGroupByDesc.colDesc || ''] as string\n }).filter(v => v))\n\n const config = {\n title: {\n text: modelName,\n },\n radar: {\n indicator: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return {\n name: groupByValuesItem,\n max: Math.max(...data.map(item => Number(item[colDesc[0]]))),\n }\n }) || [],\n },\n series: [{\n name: xGroupByDesc?.colDesc,\n type: 'radar',\n tooltip: {\n trigger: 'item',\n },\n data: colDesc.map(colDescItem => ({\n name: colDescItem,\n value: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return (data.map((dataItem) => {\n if (groupByValuesItem === dataItem[xGroupByDesc.colDesc || '']) {\n return dataItem[colDescItem]\n }\n return null\n }).filter(v => v)).reduce((pre, cur) => Number(pre || 0) + Number(cur || 0), 0)\n }),\n })),\n }],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartRadar,\n chartOptions: radarChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartRadar\"\n class=\"data-chart-radar\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-radar {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartRadar","ref","merge","inject","InjectionChartMerge","v","radarChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","groupByValues","uniq","map","item","filter","config","title","text","radar","indicator","groupByValuesItem","name","max","Math","Number","series","type","tooltip","trigger","colDescItem","value","dataItem","reduce","pre","cur","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"ucAoBA,MAAMA,EAAiBC,IACjBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GACnDC,EAAoBC,EAAwB,KAChD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAE9CJ,GAAcK,gBACjBL,EAAaK,cAAgB,IAE/BL,EAAaK,cAAgBC,EAAKJ,EAAKK,IAAKC,GACnCA,EAAKR,EAAaD,SAAW,KACnCU,OAAOb,GAAKA,IAEf,MAAMc,EAAS,CACbC,MAAO,CACLC,KAAMX,GAERY,MAAO,CACLC,UAAWd,GAAcK,eAAeE,IAAKQ,IACpC,CACLC,KAAMD,EACNE,IAAKC,KAAKD,OAAOf,EAAKK,IAAIC,GAAQW,OAAOX,EAAKT,EAAQ,WAEpD,IAERqB,OAAQ,CAAC,CACPJ,KAAMhB,GAAcD,QACpBsB,KAAM,QACNC,QAAS,CACPC,QAAS,QAEXrB,KAAMH,EAAQQ,IAAIiB,IAAA,CAChBR,KAAMQ,EACNC,MAAOzB,GAAcK,eAAeE,IAAKQ,GAC/Bb,EAAKK,IAAKmB,GACZX,IAAsBW,EAAS1B,EAAaD,SAAW,IAClD2B,EAASF,GAEX,MACNf,UAAYb,GAAI+B,OAAO,CAACC,EAAKC,IAAQV,OAAOS,GAAO,GAAKT,OAAOU,GAAO,GAAI,UAMrF,OAAOpC,EAAMiB,EAAQP,EAAA2B,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAU1C,EACVuC,aAAcjC,EACdO,UAAWN,EAAS,IAAMK,EAAAC,WAC1B8B,SAAO/B,EAAA+B,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,iBAAJ5C,IAAID,EACJ8C,MAAM"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-radar[data-v-dcb2eae6] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
|
2
|
+
//# sourceMappingURL=radar.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"radar.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import e from"./scatter-simple.vue2.mjs";import"./scatter-simple.vue3.mjs";import r from"../../../../_virtual/_plugin-vue_export-helper.mjs";var t=r(e,[["__scopeId","data-v-8129b8a5"]]);export{t as default};
|
2
2
|
//# sourceMappingURL=scatter-simple.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scatter-simple.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"scatter-simple.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import e from"
|
1
|
+
import{defineComponent as t,ref as a,inject as e,computed as r,createElementBlock as s,openBlock as l}from"vue";import{InjectionChartMerge as o}from"../utils/injectionKeys.mjs";import{useCharts as m}from"../utils/useCharts.mjs";var c=t({name:"DataChartScatterSimple",__name:"scatter-simple",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(t,{expose:c}){const i=a(),p=e(o,t=>t,!0),u=r(()=>{const{colDesc:a,xGroupByDesc:e,modelName:r,data:s}=t.chartData,l={title:{text:r},tooltip:{formatter:t=>t.value.length>1?`${t.seriesName} :<br/>${t.value[0]} ${t.value[1]} `:`${t.seriesName} :<br/>${t.name} : ${t.value} `},series:a.map(t=>({symbolSize:20,name:t,data:s.map(a=>[a[t],a[e?.colDesc||""]]),type:"scatter"}))};return p(l,t.chartOptions)}),{myChart:n}=m({chartDOM:i,chartOptions:u,chartData:r(()=>t.chartData),lazyLoad:t.lazyLoad});return c({myChart:n}),(t,a)=>(l(),s("div",{ref_key:"dataChartScatterSimple",ref:i,class:"data-chart-scatter-simple"},null,512))}});export{c as default};
|
2
2
|
//# sourceMappingURL=scatter-simple.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scatter-simple.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"scatter-simple.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter-simple.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatterSimple',\n})\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst dataChartScatterSimple = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n const config = {\n title: {\n text: modelName,\n },\n tooltip: {\n formatter(params: { value: string, seriesName: string, name: string }) {\n if (params.value.length > 1) {\n return (\n `${params.seriesName\n } :<br/>${params.value[0]\n } ${params.value[1]\n } `\n )\n }\n else {\n return (\n `${params.seriesName\n } :<br/>${params.name\n } : ${params.value\n } `\n )\n }\n },\n },\n series: colDesc.map((colDescItem) => {\n return {\n symbolSize: 20,\n name: colDescItem,\n data: data.map((dataItem) => {\n return [dataItem[colDescItem], dataItem[xGroupByDesc?.colDesc || '']]\n }),\n type: 'scatter',\n }\n }),\n }\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatterSimple,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatterSimple\"\n class=\"data-chart-scatter-simple\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter-simple {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatterSimple","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","config","title","text","tooltip","formatter","params","value","length","seriesName","name","series","map","colDescItem","symbolSize","dataItem","type","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"ubAiBA,MAAMA,EAAyBC,IACzBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAwB,KAClD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAC7CC,EAAS,CACbC,MAAO,CACLC,KAAMN,GAERO,QAAS,CACPC,UAAUC,GACJA,EAAOC,MAAMC,OAAS,EAEtB,GAAGF,EAAOG,oBACAH,EAAOC,MAAM,MACnBD,EAAOC,MAAM,MAMjB,GAAGD,EAAOG,oBACAH,EAAOI,UACXJ,EAAOC,UAMrBI,OAAQhB,EAAQiB,IAAKC,IACZ,CACLC,WAAY,GACZJ,KAAMG,EACNf,KAAMA,EAAKc,IAAKG,GACP,CAACA,EAASF,GAAcE,EAASnB,GAAcD,SAAW,MAEnEqB,KAAM,cAIZ,OAAO3B,EAAMY,EAAQF,EAAAkB,iBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAUjC,EACV8B,aAAcxB,EACdO,UAAWN,EAAS,IAAMK,EAAAC,WAC1BqB,SAAOtB,EAAAsB,kBAITC,EAAa,CACXJ,wBAKAK,EAGE,MAAA,SAFI,yBAAJnC,IAAID,EACJqC,MAAM"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-scatter-simple[data-v-8129b8a5] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
|
2
|
+
//# sourceMappingURL=scatter-simple.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"scatter-simple.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import
|
1
|
+
import r from"./scatter.vue2.mjs";import"./scatter.vue3.mjs";import t from"../../../../_virtual/_plugin-vue_export-helper.mjs";var e=t(r,[["__scopeId","data-v-b52b34fd"]]);export{e as default};
|
2
2
|
//# sourceMappingURL=scatter.vue.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scatter.vue.mjs","sources":[
|
1
|
+
{"version":3,"file":"scatter.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import t from"
|
1
|
+
import{defineComponent as t,ref as a,inject as r,computed as e,createElementBlock as s,openBlock as o}from"vue";import{InjectionChartMerge as i}from"../utils/injectionKeys.mjs";import{useCharts as c}from"../utils/useCharts.mjs";var p=t({name:"DataChartScatter",__name:"scatter",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(t,{expose:p}){const l=a(),h=r(i,t=>t,!0),m=e(()=>h({xAxis:{},yAxis:{},series:[{symbolSize:20,data:[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82],[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]],type:"scatter"}]},t.chartOptions)),{myChart:u}=c({chartDOM:l,chartOptions:m,chartData:e(()=>t.chartData),lazyLoad:t.lazyLoad});return p({myChart:u}),(t,a)=>(o(),s("div",{ref_key:"dataChartScatter",ref:l,class:"data-chart-scatter"},null,512))}});export{p as default};
|
2
2
|
//# sourceMappingURL=scatter.vue2.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scatter.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"scatter.vue2.mjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatter',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartScatter = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const config = {\n xAxis: {},\n yAxis: {},\n series: [\n {\n symbolSize: 20,\n data: [\n [10.0, 8.04],\n [8.07, 6.95],\n [13.0, 7.58],\n [9.05, 8.81],\n [11.0, 8.33],\n [14.0, 7.66],\n [13.4, 6.81],\n [10.0, 6.33],\n [14.0, 8.96],\n [12.5, 6.82],\n [9.15, 7.2],\n [11.5, 7.2],\n [3.03, 4.23],\n [12.2, 7.83],\n [2.02, 4.47],\n [1.05, 3.33],\n [4.05, 4.96],\n [6.03, 7.24],\n [12.0, 6.26],\n [12.0, 8.84],\n [7.08, 5.82],\n [5.02, 5.68],\n ],\n type: 'scatter',\n },\n ],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatter,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatter\"\n class=\"data-chart-scatter\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatter","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","xAxis","yAxis","series","symbolSize","data","type","__props","chartOptions","myChart","useCharts","chartDOM","chartData","lazyLoad","__expose","_createElementBlock","class"],"mappings":"0aAmBA,MAAMA,EAAmBC,IACnBC,EAAQC,EAAOC,EAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAwB,IAoC3CL,EAnCQ,CACbM,MAAO,CAAA,EACPC,MAAO,CAAA,EACPC,OAAQ,CACN,CACEC,WAAY,GACZC,KAAM,CACJ,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,KACP,CAAC,KAAM,KACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,OAETC,KAAM,aAKSC,EAAAC,gBAGjBC,QAAEA,GAAYC,EAAU,CAC5BC,SAAUlB,EACVe,aAAcT,EACda,UAAWZ,EAAS,IAAMO,EAAAK,WAC1BC,SAAON,EAAAM,kBAITC,EAAa,CACXL,wBAKAM,EAGE,MAAA,SAFI,mBAAJrB,IAAID,EACJuB,MAAM"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t="/* unplugin-vue-components disabled */\n.data-chart-scatter[data-v-b52b34fd] {\n width: 100%;\n height: 100%;\n}";e(t);export{t as default};
|
2
|
+
//# sourceMappingURL=scatter.vue3.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"scatter.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|