805 lines
22 KiB
Vue
805 lines
22 KiB
Vue
![]() |
<template>
|
|||
|
<div>
|
|||
|
<v-chart
|
|||
|
:key="treeCounter"
|
|||
|
:option="options"
|
|||
|
style="height: 500px; width: 100%"
|
|||
|
@dblclick="onChartDblClick"
|
|||
|
@click="onChartClick"
|
|||
|
ref="chart"
|
|||
|
lazy
|
|||
|
></v-chart>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
//
|
|||
|
import { use } from "echarts/core";
|
|||
|
import { TreemapChart } from "echarts/charts";
|
|||
|
import {
|
|||
|
TitleComponent,
|
|||
|
TooltipComponent,
|
|||
|
ToolboxComponent,
|
|||
|
} from "echarts/components";
|
|||
|
import { CanvasRenderer } from "echarts/renderers";
|
|||
|
|
|||
|
use([
|
|||
|
TitleComponent,
|
|||
|
TooltipComponent,
|
|||
|
TreemapChart,
|
|||
|
CanvasRenderer,
|
|||
|
ToolboxComponent,
|
|||
|
]);
|
|||
|
|
|||
|
/**
|
|||
|
* @vue-prop {Array} [dataTreeMap=[]] - دادههای نمودار درختی
|
|||
|
|
|||
|
* @vue-data {Array} [dataTest=[]] - دادههای نمودار درختی
|
|||
|
* @vue-data {Object} [options] - تنظیمات نمودار درختی
|
|||
|
* @vue-data {Object} [options.title] - عنوان نمودار
|
|||
|
* @vue-data {String} [options.title.text="تعداد افراد"] - متن عنوان
|
|||
|
* @vue-data {String} [options.title.left="leafDepth"] - موقعیت عنوان
|
|||
|
* @vue-data {Object} [options.series] - سریهای نمودار
|
|||
|
* @vue-data {String} [options.series.name="افراد"] - نام سری
|
|||
|
* @vue-data {String} [options.series.type="treemap"] - نوع نمودار
|
|||
|
* @vue-data {Number} [options.series.visibleMin=300] - حداقل مقدار قابل مشاهده
|
|||
|
* @vue-data {Array} [options.series.data=[]] - دادههای سری
|
|||
|
* @vue-data {Number} [options.series.leafDepth=2] - عمق برگ
|
|||
|
* @vue-data {Array} [options.series.levels] - سطوح نمودار
|
|||
|
* @vue-data {Object} [options.series.upperLabel] - برچسب بالایی
|
|||
|
* @vue-data {Boolean} [options.series.upperLabel.show=true] - نمایش برچسب بالایی
|
|||
|
* @vue-data {Number} [options.series.upperLabel.height=30] - ارتفاع برچسب بالایی
|
|||
|
*/
|
|||
|
|
|||
|
export default {
|
|||
|
props: {
|
|||
|
dataChart: {
|
|||
|
default() {
|
|||
|
return [];
|
|||
|
},
|
|||
|
type: Array,
|
|||
|
},
|
|||
|
},
|
|||
|
watch: {
|
|||
|
dataChart(navItem) {
|
|||
|
let data = this.organizeData(navItem);
|
|||
|
// let data = navItem;
|
|||
|
|
|||
|
this.options.series[0].data = data;
|
|||
|
this.treeCounter++;
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
data() {
|
|||
|
return {
|
|||
|
treeCounter: 1,
|
|||
|
// dataTest: [
|
|||
|
// {
|
|||
|
// value: 1000,
|
|||
|
// name: "Root",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 500,
|
|||
|
// name: "Child 1",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.1",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.1.1" },
|
|||
|
// { value: 50, name: "Child 1.1.2" },
|
|||
|
// { value: 50, name: "Child 1.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.2",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.2.1" },
|
|||
|
// { value: 50, name: "Child 1.2.2" },
|
|||
|
// { value: 50, name: "Child 1.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 1.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 1.3.1" },
|
|||
|
// { value: 30, name: "Child 1.3.2" },
|
|||
|
// { value: 30, name: "Child 1.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 300,
|
|||
|
// name: "Child 2",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.1",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.1.1" },
|
|||
|
// { value: 30, name: "Child 2.1.2" },
|
|||
|
// { value: 30, name: "Child 2.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.2",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.2.1" },
|
|||
|
// { value: 30, name: "Child 2.2.2" },
|
|||
|
// { value: 30, name: "Child 2.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.3.1" },
|
|||
|
// { value: 30, name: "Child 2.3.2" },
|
|||
|
// { value: 30, name: "Child 2.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 3",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.1",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.1.1" },
|
|||
|
// { value: 20, name: "Child 3.1.2" },
|
|||
|
// { value: 20, name: "Child 3.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.2",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.2.1" },
|
|||
|
// { value: 20, name: "Child 3.2.2" },
|
|||
|
// { value: 20, name: "Child 3.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 80,
|
|||
|
// name: "Child 3.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 3.3.1" },
|
|||
|
// { value: 30, name: "Child 3.3.2" },
|
|||
|
// { value: 30, name: "Child 3.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 1000,
|
|||
|
// name: "Root",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 500,
|
|||
|
// name: "Child 1",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.1",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.1.1" },
|
|||
|
// { value: 50, name: "Child 1.1.2" },
|
|||
|
// { value: 50, name: "Child 1.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.2",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.2.1" },
|
|||
|
// { value: 50, name: "Child 1.2.2" },
|
|||
|
// { value: 50, name: "Child 1.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 1.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 1.3.1" },
|
|||
|
// { value: 30, name: "Child 1.3.2" },
|
|||
|
// { value: 30, name: "Child 1.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 300,
|
|||
|
// name: "Child 2",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.1",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.1.1" },
|
|||
|
// { value: 30, name: "Child 2.1.2" },
|
|||
|
// { value: 30, name: "Child 2.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.2",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.2.1" },
|
|||
|
// { value: 30, name: "Child 2.2.2" },
|
|||
|
// { value: 30, name: "Child 2.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.3.1" },
|
|||
|
// { value: 30, name: "Child 2.3.2" },
|
|||
|
// { value: 30, name: "Child 2.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 3",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.1",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.1.1" },
|
|||
|
// { value: 20, name: "Child 3.1.2" },
|
|||
|
// { value: 20, name: "Child 3.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.2",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.2.1" },
|
|||
|
// { value: 20, name: "Child 3.2.2" },
|
|||
|
// { value: 20, name: "Child 3.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 80,
|
|||
|
// name: "Child 3.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 3.3.1" },
|
|||
|
// { value: 30, name: "Child 3.3.2" },
|
|||
|
// { value: 30, name: "Child 3.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 1000,
|
|||
|
// name: "Root",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 500,
|
|||
|
// name: "Child 1",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.1",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.1.1" },
|
|||
|
// { value: 50, name: "Child 1.1.2" },
|
|||
|
// { value: 50, name: "Child 1.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 1.2",
|
|||
|
// children: [
|
|||
|
// { value: 50, name: "Child 1.2.1" },
|
|||
|
// { value: 50, name: "Child 1.2.2" },
|
|||
|
// { value: 50, name: "Child 1.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 1.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 1.3.1" },
|
|||
|
// { value: 30, name: "Child 1.3.2" },
|
|||
|
// { value: 30, name: "Child 1.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 300,
|
|||
|
// name: "Child 2",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.1",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.1.1" },
|
|||
|
// { value: 30, name: "Child 2.1.2" },
|
|||
|
// { value: 30, name: "Child 2.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.2",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.2.1" },
|
|||
|
// { value: 30, name: "Child 2.2.2" },
|
|||
|
// { value: 30, name: "Child 2.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 100,
|
|||
|
// name: "Child 2.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 2.3.1" },
|
|||
|
// { value: 30, name: "Child 2.3.2" },
|
|||
|
// { value: 30, name: "Child 2.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 200,
|
|||
|
// name: "Child 3",
|
|||
|
// children: [
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.1",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.1.1" },
|
|||
|
// { value: 20, name: "Child 3.1.2" },
|
|||
|
// { value: 20, name: "Child 3.1.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 60,
|
|||
|
// name: "Child 3.2",
|
|||
|
// children: [
|
|||
|
// { value: 20, name: "Child 3.2.1" },
|
|||
|
// { value: 20, name: "Child 3.2.2" },
|
|||
|
// { value: 20, name: "Child 3.2.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// {
|
|||
|
// value: 80,
|
|||
|
// name: "Child 3.3",
|
|||
|
// children: [
|
|||
|
// { value: 30, name: "Child 3.3.1" },
|
|||
|
// { value: 30, name: "Child 3.3.2" },
|
|||
|
// { value: 30, name: "Child 3.3.3" },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
// },
|
|||
|
// ],
|
|||
|
dataTest: [
|
|||
|
{
|
|||
|
id: "1739",
|
|||
|
parent: "0",
|
|||
|
name: "پیامد زیرساختی ",
|
|||
|
value: 44,
|
|||
|
color: "#CD5C08",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1740",
|
|||
|
parent: "0",
|
|||
|
name: "پیامدهای ساختاری نهادی",
|
|||
|
value: 123,
|
|||
|
color: "#F5E8B7",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1741",
|
|||
|
parent: "0",
|
|||
|
name: "پیامدهای روبنایی",
|
|||
|
value: 53,
|
|||
|
color: "#E5CFF7",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1744",
|
|||
|
parent: "0",
|
|||
|
name: "تست",
|
|||
|
value: 0,
|
|||
|
color: "#6A9C89",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1747",
|
|||
|
parent: "0",
|
|||
|
name: "موضوع جدید تستی23",
|
|||
|
value: 0,
|
|||
|
color: "#5B0888",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1748",
|
|||
|
parent: "0",
|
|||
|
name: "موضوع تستی با موبایل",
|
|||
|
value: 0,
|
|||
|
color: "#713ABE",
|
|||
|
},
|
|||
|
{
|
|||
|
id: "787",
|
|||
|
parent: "757",
|
|||
|
name: "خودتأمینی",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "774",
|
|||
|
parent: "771",
|
|||
|
name: "اشتغال",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "849",
|
|||
|
parent: "780",
|
|||
|
name: "نظام توزیع",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "793",
|
|||
|
parent: "781",
|
|||
|
name: "پسماند",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "784",
|
|||
|
parent: "783",
|
|||
|
name: "اگرواکوسیستم",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "786",
|
|||
|
parent: "785",
|
|||
|
name: "خودتأمینی",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "788",
|
|||
|
parent: "785",
|
|||
|
name: "بازیافت آب",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1745",
|
|||
|
parent: "856",
|
|||
|
name: "هویت اجتماعی",
|
|||
|
value: 1,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "863",
|
|||
|
parent: "859",
|
|||
|
name: "مدیریت و حکمرانی",
|
|||
|
value: 5,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "864",
|
|||
|
parent: "859",
|
|||
|
name: "سازماندهی",
|
|||
|
value: 6,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "866",
|
|||
|
parent: "865",
|
|||
|
name: "روندهای دانشی",
|
|||
|
value: 6,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "867",
|
|||
|
parent: "865",
|
|||
|
name: "آموزش و تربیت",
|
|||
|
value: 4,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "869",
|
|||
|
parent: "868",
|
|||
|
name: "فضای کالبدی",
|
|||
|
value: 46,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "870",
|
|||
|
parent: "868",
|
|||
|
name: "نظام تولید ثروت",
|
|||
|
value: 24,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "871",
|
|||
|
parent: "868",
|
|||
|
name: "نظام توزیع",
|
|||
|
value: 11,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1738",
|
|||
|
parent: "868",
|
|||
|
name: "تأمین انرژی",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "873",
|
|||
|
parent: "872",
|
|||
|
name: "خانواده",
|
|||
|
value: 9,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "874",
|
|||
|
parent: "872",
|
|||
|
name: "نهاد اجتماعی بانوان",
|
|||
|
value: 3,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "881",
|
|||
|
parent: "875",
|
|||
|
name: "تأمین معیشت",
|
|||
|
value: 10,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "882",
|
|||
|
parent: "875",
|
|||
|
name: "نظام تغذیه",
|
|||
|
value: 18,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "883",
|
|||
|
parent: "875",
|
|||
|
name: "تکافل اجتماعی",
|
|||
|
value: 3,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "898",
|
|||
|
parent: "881",
|
|||
|
name: "تست تامین معیشت",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "897",
|
|||
|
parent: "882",
|
|||
|
name: "امنیت غذایی",
|
|||
|
value: 7,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "887",
|
|||
|
parent: "885",
|
|||
|
name: "نشاط اجتماعی، تفریح و ورزش",
|
|||
|
value: 3,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "888",
|
|||
|
parent: "885",
|
|||
|
name: "کشاورزی",
|
|||
|
value: 28,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "889",
|
|||
|
parent: "885",
|
|||
|
name: "تولیدی و صنعتی",
|
|||
|
value: 12,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "856",
|
|||
|
parent: "1739",
|
|||
|
name: "هویت اجتماعی",
|
|||
|
value: 28,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "857",
|
|||
|
parent: "1739",
|
|||
|
name: "محور انگیزش اجتماعی",
|
|||
|
value: 14,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "858",
|
|||
|
parent: "1739",
|
|||
|
name: "فعالیت جهادی",
|
|||
|
value: 3,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "1746",
|
|||
|
parent: "1739",
|
|||
|
name: "موضوع تستی",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "859",
|
|||
|
parent: "1740",
|
|||
|
name: "چرخه مشارکت مردمی",
|
|||
|
value: 18,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "865",
|
|||
|
parent: "1740",
|
|||
|
name: "چرخه دانش",
|
|||
|
value: 10,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "868",
|
|||
|
parent: "1740",
|
|||
|
name: "چرخه اقتصادی و فضای کالبدی",
|
|||
|
value: 82,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "872",
|
|||
|
parent: "1740",
|
|||
|
name: "بنیان جامعه",
|
|||
|
value: 12,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "875",
|
|||
|
parent: "1741",
|
|||
|
name: "ثمرات اقتصادی",
|
|||
|
value: 24,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "884",
|
|||
|
parent: "1741",
|
|||
|
name: "نظام سلامت",
|
|||
|
value: 7,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "885",
|
|||
|
parent: "1741",
|
|||
|
name: "فعالیت مؤثر اجتماعی",
|
|||
|
value: 44,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "890",
|
|||
|
parent: "1741",
|
|||
|
name: "گردشکری",
|
|||
|
value: 2,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "894",
|
|||
|
parent: "1741",
|
|||
|
name: "امنیت",
|
|||
|
value: 0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "900",
|
|||
|
parent: "1741",
|
|||
|
name: "تعامل با محیط زیست",
|
|||
|
value: 19,
|
|||
|
},
|
|||
|
{
|
|||
|
id: "0000000",
|
|||
|
parent: "0",
|
|||
|
name: "نامشخص",
|
|||
|
value: 11,
|
|||
|
color: "#CD5C08",
|
|||
|
},
|
|||
|
],
|
|||
|
options: {
|
|||
|
// title: {
|
|||
|
// // text: "تعداد افراد",
|
|||
|
// // subtext: '2016/04',
|
|||
|
// left: "leafDepth",
|
|||
|
// },
|
|||
|
tooltip: {},
|
|||
|
// toolbox: {
|
|||
|
// show: true,
|
|||
|
// feature: {
|
|||
|
// dataZoom: {
|
|||
|
// yAxisIndex: "none",
|
|||
|
// },
|
|||
|
// dataView: { readOnly: false },
|
|||
|
// // magicType: { type: ["line", "bar"] },
|
|||
|
// restore: { show: true },
|
|||
|
// saveAsImage: {},
|
|||
|
// },
|
|||
|
// },
|
|||
|
series: [
|
|||
|
{
|
|||
|
// name: "افراد",
|
|||
|
type: "treemap",
|
|||
|
visibleMin: 1,
|
|||
|
// visualDimension: 2,
|
|||
|
data: [],
|
|||
|
leafDepth: 1,
|
|||
|
|
|||
|
// squareRatio: 0.15,
|
|||
|
levels: [
|
|||
|
{
|
|||
|
visibleMin: 0,
|
|||
|
itemStyle: {
|
|||
|
borderColor: "#555",
|
|||
|
borderWidth: 4,
|
|||
|
gapWidth: 4,
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
colorSaturation: [0.3, 0.6],
|
|||
|
itemStyle: {
|
|||
|
borderColorSaturation: 0.7,
|
|||
|
gapWidth: 2,
|
|||
|
borderWidth: 2,
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
colorSaturation: [0.3, 0.5],
|
|||
|
itemStyle: {
|
|||
|
borderColorSaturation: 0.6,
|
|||
|
gapWidth: 1,
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
colorSaturation: [0.3, 0.5],
|
|||
|
},
|
|||
|
],
|
|||
|
// label: {
|
|||
|
// show: true,
|
|||
|
// formatter: "{b}",
|
|||
|
// },
|
|||
|
upperLabel: {
|
|||
|
show: true,
|
|||
|
height: 30,
|
|||
|
},
|
|||
|
},
|
|||
|
],
|
|||
|
},
|
|||
|
value: 50,
|
|||
|
};
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
let data = this.organizeData(this.dataChart);
|
|||
|
this.options.series[0].data = data;
|
|||
|
this.treeCounter++;
|
|||
|
},
|
|||
|
methods: {
|
|||
|
/**
|
|||
|
* هنگامی که بر روی نمودار دوبل کلیک میشود، این متد اجرا میشود.
|
|||
|
* اطلاعات مربوط به رویداد دوبل کلیک را به کامپوننت والد ارسال میکند.
|
|||
|
*
|
|||
|
* @param {object} params - پارامترهای مربوط به رویداد دوبل کلیک
|
|||
|
*/
|
|||
|
onChartDblClick(params) {
|
|||
|
this.$emit("dblClick", params);
|
|||
|
},
|
|||
|
// وقتی مشکل value درست شد
|
|||
|
// مقدار iپاک کنید
|
|||
|
organizeData(data) {
|
|||
|
const map = {};
|
|||
|
const roots = [];
|
|||
|
let i = "";
|
|||
|
data.forEach((item) => {
|
|||
|
i = this.value++;
|
|||
|
map[item.id] = {
|
|||
|
...item,
|
|||
|
children: [],
|
|||
|
visibleMin: item.value === 0 ? 0 : undefined,
|
|||
|
value : i ,
|
|||
|
};
|
|||
|
});
|
|||
|
|
|||
|
data.forEach((item) => {
|
|||
|
if (item.parent === "0") {
|
|||
|
roots.push(map[item.id]);
|
|||
|
} else if (map[item.parent]) {
|
|||
|
map[item.parent].children.push(map[item.id]);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
return roots;
|
|||
|
},
|
|||
|
|
|||
|
onChartClick(event) {
|
|||
|
|
|||
|
const itemSelected = { name: event.data.name, y: event.data.value };
|
|||
|
this.$emit("list", itemSelected);
|
|||
|
},
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|