| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 | 
							- <template>
 
-   <div :style="styleObj">
 
-     <v-chart :options="options" autoresize />
 
-   </div>
 
- </template>
 
- <script>
 
- import echarts from "echarts";
 
- import { eventBusParams } from "@/utils/screen";
 
- export default {
 
-   name: "WidgetGauge",
 
-   components: {},
 
-   props: {
 
-     value: Object,
 
-     ispreview: Boolean,
 
-   },
 
-   data() {
 
-     return {
 
-       options: {
 
-         series: [
 
-           {
 
-             type: "gauge",
 
-             z: 100,
 
-             axisLine: {
 
-               lineStyle: {
 
-                 width: 10,
 
-                 color: [
 
-                   [
 
-                     0.3,
 
-                     new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                       {
 
-                         offset: 0,
 
-                         color: "rgba(0, 237, 3,0.1)",
 
-                       },
 
-                       {
 
-                         offset: 0.5,
 
-                         color: "rgba(0, 237, 3,0.6)",
 
-                       },
 
-                       {
 
-                         offset: 1,
 
-                         color: "rgba(0, 237, 3,1)",
 
-                       },
 
-                     ]),
 
-                   ],
 
-                   [
 
-                     0.7,
 
-                     new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                       {
 
-                         offset: 0,
 
-                         color: "rgba(255, 184, 0,0.1)",
 
-                       },
 
-                       {
 
-                         offset: 0.5,
 
-                         color: "rgba(255, 184, 0,0.6)",
 
-                       },
 
-                       {
 
-                         offset: 1,
 
-                         color: "rgba(255, 184, 0,1)",
 
-                       },
 
-                     ]),
 
-                   ],
 
-                   [
 
-                     1,
 
-                     new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                       {
 
-                         offset: 0,
 
-                         color: "rgba(175, 36, 74,0.1)",
 
-                       },
 
-                       {
 
-                         offset: 0.5,
 
-                         color: "rgba(255, 36, 74,0.6)",
 
-                       },
 
-                       {
 
-                         offset: 1,
 
-                         color: "rgba(255, 36, 74,1)",
 
-                       },
 
-                     ]),
 
-                   ],
 
-                 ],
 
-               },
 
-             },
 
-             pointer: {
 
-               itemStyle: {
 
-                 color: "auto",
 
-               },
 
-             },
 
-             axisTick: {
 
-               show: true,
 
-               distance: 0,
 
-               length: 10,
 
-               lineStyle: {
 
-                 color: "auto",
 
-                 width: 2,
 
-               },
 
-             },
 
-             splitLine: {
 
-               show: true,
 
-               distance: 0,
 
-               length: 14,
 
-               lineStyle: {
 
-                 color: "auto",
 
-                 width: 4,
 
-               },
 
-             },
 
-             axisLabel: {
 
-               show: true,
 
-               color: "white",
 
-               distance: 2,
 
-               fontSize: 10,
 
-             },
 
-             detail: {
 
-               valueAnimation: true,
 
-               formatter: "{value} %",
 
-               color: "white",
 
-               fontSize: 18,
 
-             },
 
-             data: [
 
-               {
 
-                 value: 70,
 
-               },
 
-             ],
 
-           },
 
-         ],
 
-       },
 
-       optionsStyle: {}, // 样式
 
-       optionsData: {}, // 数据
 
-       optionsCollapse: {}, // 图标属性
 
-       optionsSetup: {},
 
-     };
 
-   },
 
-   computed: {
 
-     styleObj() {
 
-       return {
 
-         position: this.ispreview ? "absolute" : "static",
 
-         width: this.optionsStyle.width + "px",
 
-         height: this.optionsStyle.height + "px",
 
-         left: this.optionsStyle.left + "px",
 
-         top: this.optionsStyle.top + "px",
 
-         background: this.optionsSetup.background,
 
-       };
 
-     },
 
-   },
 
-   watch: {
 
-     value: {
 
-       handler(val) {
 
-         this.optionsStyle = val.position; // 位置
 
-         this.optionsData = val.data; // 数据
 
-         this.optionsCollapse = val.collapse; // 折叠数据
 
-         this.optionsSetup = val.setup; // 样式
 
-         this.editorOptions();
 
-       },
 
-       deep: true,
 
-     },
 
-   },
 
-   created() {
 
-     this.optionsStyle = this.value.position;
 
-     this.optionsData = this.value.data;
 
-     this.optionsCollapse = this.value.collapse;
 
-     this.optionsSetup = this.value.setup;
 
-     this.editorOptions();
 
-     eventBusParams(
 
-       this.optionsSetup,
 
-       this.optionsData,
 
-       (dynamicData, optionsSetup) => {
 
-         console.log("dynamicData", dynamicData);
 
-         this.getEchartData(dynamicData, optionsSetup);
 
-       }
 
-     );
 
-   },
 
-   methods: {
 
-     editorOptions() {
 
-       this.setOptions();
 
-       this.setOptionsData();
 
-     },
 
-     setOptions() {
 
-       const optionsSetup = this.optionsSetup;
 
-       const series = this.options.series;
 
-       if (series[0].type == "gauge") {
 
-         const axisLine = {
 
-           show: optionsSetup.ringShow,
 
-           lineStyle: {
 
-             width: optionsSetup.pieWeight,
 
-             color: [
 
-               [
 
-                 0.3,
 
-                 new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                   {
 
-                     offset: 0,
 
-                     color: optionsSetup.color30p0,
 
-                   },
 
-                   {
 
-                     offset: 0.5,
 
-                     color: optionsSetup.color30p5,
 
-                   },
 
-                   {
 
-                     offset: 1,
 
-                     color: optionsSetup.color30p10,
 
-                   },
 
-                 ]),
 
-               ],
 
-               [
 
-                 0.7,
 
-                 new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                   {
 
-                     offset: 0,
 
-                     color: optionsSetup.color70p0,
 
-                   },
 
-                   {
 
-                     offset: 0.5,
 
-                     color: optionsSetup.color70p5,
 
-                   },
 
-                   {
 
-                     offset: 1,
 
-                     color: optionsSetup.color70p10,
 
-                   },
 
-                 ]),
 
-               ],
 
-               [
 
-                 1,
 
-                 new echarts.graphic.LinearGradient(0, 1, 1, 0, [
 
-                   {
 
-                     offset: 0,
 
-                     color: optionsSetup.color100p0,
 
-                   },
 
-                   {
 
-                     offset: 0.5,
 
-                     color: optionsSetup.color100p5,
 
-                   },
 
-                   {
 
-                     offset: 1,
 
-                     color: optionsSetup.color100p10,
 
-                   },
 
-                 ]),
 
-               ],
 
-             ],
 
-           },
 
-         };
 
-         const axisTick = {
 
-           show: optionsSetup.tickShow,
 
-           distance: optionsSetup.tickDistance,
 
-           length: optionsSetup.tickLength,
 
-           lineStyle: {
 
-             color: "auto",
 
-             width: optionsSetup.tickWidth,
 
-           },
 
-         };
 
-         const splitLine = {
 
-           show: optionsSetup.splitShow,
 
-           distance: optionsSetup.splitDistance,
 
-           length: optionsSetup.splitLength,
 
-           lineStyle: {
 
-             color: "auto",
 
-             width: optionsSetup.splitWidth,
 
-           },
 
-         };
 
-         series[0].axisLine = axisLine;
 
-         series[0].axisTick = axisTick;
 
-         series[0].splitLine = splitLine;
 
-       }
 
-     },
 
-     setOptionsData() {
 
-       const optionsData = this.optionsData; // 数据类型 静态 or 动态
 
-       optionsData.dataType == "staticData"
 
-         ? this.staticDataFn(optionsData.staticData)
 
-         : this.dynamicDataFn(optionsData.dynamicData, optionsData.refreshTime);
 
-     },
 
-     staticDataFn(val) {
 
-       const optionsSetup = this.optionsSetup;
 
-       const series = this.options.series;
 
-       const num = val[0]["num"];
 
-       const data = [
 
-         {
 
-           value: num,
 
-         },
 
-       ];
 
-       const detail = {
 
-         valueAnimation: true,
 
-         formatter: "{value} %",
 
-         color: optionsSetup.labelColor,
 
-         fontSize: optionsSetup.labelFontSize,
 
-         fontWeight: optionsSetup.labelFontWeight,
 
-       };
 
-       series[0].data = data;
 
-       series[0].detail = detail;
 
-     },
 
-     dynamicDataFn(val, refreshTime) {
 
-       if (!val) return;
 
-       if (this.ispreview) {
 
-         this.getEchartData(val);
 
-         this.flagInter = setInterval(() => {
 
-           this.getEchartData(val);
 
-         }, refreshTime);
 
-       } else {
 
-         this.getEchartData(val);
 
-       }
 
-     },
 
-     getEchartData(val) {
 
-       const data = this.queryEchartsData(val);
 
-       data.then((res) => {
 
-         this.renderingFn(res);
 
-       });
 
-     },
 
-     renderingFn(val) {
 
-       const optionsSetup = this.optionsSetup;
 
-       const series = this.options.series;
 
-       const data = [
 
-         {
 
-           value: val[0].value,
 
-         },
 
-       ];
 
-       const detail = {
 
-         valueAnimation: true,
 
-         formatter: "{value} %",
 
-         color: optionsSetup.labelColor,
 
-         fontSize: optionsSetup.labelFontSize,
 
-         fontWeight: optionsSetup.labelFontWeight,
 
-       };
 
-       series[0].data = data;
 
-       series[0].detail = detail;
 
-     },
 
-   },
 
- };
 
- </script>
 
- <style scoped lang="scss">
 
- .echarts {
 
-   width: 100%;
 
-   height: 100%;
 
-   overflow: hidden;
 
- }
 
- </style>
 
 
  |