This component was designed for Vue
version 3 or above. Please install via npm
version 20 or above.
- Install the package via npm.
npm i city-dashboard-component
- Import the stylesheet to
main.js
.
import "city-dashboard-component/style.css";
- Import the component globally or locally in any Vue component.
import { DashboardComponent } from "city-dashboard-component";
// If global
app.component("DashboardComponent", DashboardComponent);
- Default: The default form of this component with a chart in the middle.
- Large: Slightly larger height than default mode.
- Half: Half the height of default mode.
- Map: Adds a toggle and collapse mode.
- HalfMap: Half the height of map mode when expanded.
- Preview: No chart in the middle but only descriptions.
This component follows the configuration of Taipei City Dashboard. Please refer to its documentation for more information.
Prop | Type | Default | Description |
---|---|---|---|
config | Object<ComponentConfig> |
None. Required. | Component Config. Refer to Taipei City Dashboard's docs for the complete list of parameters available. |
mode | Enum |
"default" |
Must be one of "default", "large", "map", "half", "halfmap", "preview" |
favoriteBtn | Boolean |
false |
Whether to show a favorite button |
isFavorite | Boolean |
false |
Whether the component is liked |
deleteBtn | Boolean |
false |
Whether to show a delete button |
addBtn | Boolean |
false |
Whether to show an add button |
infoBtn | Boolean |
false |
Whether to show an info button |
infoBtnText | String |
"組件資訊" |
The text of the info button |
toggleDisable | Boolean |
false |
Whether to disable the toggle in map mode |
footer | Boolean |
true |
Whether to show the footer |
style | Object |
{} |
Override the wrapper styles of the component |
This component follows the configuration of Taipei City Dashboard. Please refer to its documentation for more information.
Event | Required Props | Fired When | Parameters |
---|---|---|---|
favorite | favoriteBtn |
The favorite button is clicked | id<Number> |
delete | deleteBtn |
The delete button is clicked | id<Number> |
add | addBtn |
The add button is clicked | id<Number> |
info | infoBtn |
The info button is clicked | config<ComponentConfig> |
toggle | mode<"map", "halfmap"> |
The toggle button is clicked | value<Boolean>, map_config<MapConfig[]> |
filterByParam | mode<"map", "halfmap"> , config has map filter in param mode |
When the chart is clicked and no filter is present. | map_filter<MapFilter>, map_config<MapConfig[]>, x<string or null>, y<string or null> |
filterByLayer | mode<"map", "halfmap"> , config has map filter in layer mode |
When the chart is clicked and no filter is present. | map_config<MapConfig[]>, x<string or null> |
clearByParamFilter | mode<"map", "halfmap"> , config has map filter in param mode |
When the chart is clicked and a filter is present. | map_config<MapConfig[]> |
clearByLayerFilter | mode<"map", "halfmap"> , config has map filter in layer mode |
When the chart is clicked and a filter is present. | map_config<MapConfig[]> |
fly | mode<"map", "halfmap"> , config specifies DistrictChart |
When the chart is clicked. | location<{lng, lat}> |
<script setup>
import { ref } from "vue"
import { DashboardComponent } from "city-dashboard-component"
const config = {...} // Please refer to Taipei City Dashboard Docs
const isFavorite = ref(false);
function showMoreInfo(config) {
// a function to open a dialog to show more info about the component
}
</script>
<template>
<DashboardComponent
mode="default"
:config="config"
:info-btn="true"
:favorite-btn="true"
:is-favorite="isFavorite"
@favorite="
(id) => {
console.log(id);
isFavorite = !isFavorite
}
"
@info="
(config) => {
showMoreInfo(config);
}
"
/>
</template>
For more examples, please refer to Taipei City Dashboard or its GitHub repository.
© 2023-2024 Igor Ho, One Premium Ltd.