| <template> | 
|   <div class="m-charts"> | 
|     <el-tabs | 
|       v-model="name" | 
|       @tab-click="tabClick" | 
|       type="border-card" | 
|       style="height: 100%; width: 100%; box-shadow: none" | 
|     > | 
|       <el-tab-pane name="bar"> | 
|         <template #label> | 
|           <span><i class="el-icon-date"></i> 柱状图 </span> | 
|         </template> | 
|         <div | 
|           :style="{ height: heigth + 'px', width: width + 'px' }" | 
|           id="bar-0001" | 
|         ></div> | 
|       </el-tab-pane> | 
|       <el-tab-pane name="pie" :lazy="false" label="消息中心"> | 
|         <template #label> | 
|           <span><i class="el-icon-date"></i> 饼状图 </span> | 
|         </template> | 
|         <div | 
|           :style="{ height: heigth + 'px', width: width + 'px' }" | 
|           id="pie-0001" | 
|         ></div> | 
|       </el-tab-pane> | 
|       <el-tab-pane name="line" :lazy="false" label="角色管理"> | 
|         <template #label> | 
|           <span><i class="el-icon-date"></i> 折线图 </span> | 
|         </template> | 
|         <div | 
|           :style="{ height: heigth + 'px', width: width + 'px' }" | 
|           id="line-0001" | 
|         ></div> | 
|       </el-tab-pane> | 
|     </el-tabs> | 
|   </div> | 
| </template> | 
| <script> | 
| let echarts = require("echarts"); | 
| import options from "./chartOptions"; | 
| let $bar; | 
| let $pie; | 
| let $line; | 
| export default { | 
|   mounted() { | 
|     $bar = echarts.init(document.getElementById("bar-0001")); | 
|     $bar.setOption(this.options.bar); | 
|   }, | 
|   created() { | 
|     this.heigth = document.documentElement.clientHeight - 190; | 
|     this.width = document.documentElement.clientWidth - 240; | 
|   }, | 
|   methods: { | 
|     tabClick(name) { | 
|       if (name.props.name == "pie") { | 
|         if (!$pie) { | 
|           $pie = echarts.init(document.getElementById("pie-0001")); | 
|           $pie.setOption(this.options.pie); | 
|   | 
|         } | 
|       } else if (name.props.name == "line") { | 
|         if (!$line) { | 
|           $line = echarts.init(document.getElementById("line-0001")); | 
|           $line.setOption(this.options.line); | 
|           | 
|         } | 
|       } | 
|     }, | 
|   }, | 
|   data() { | 
|     return { | 
|       name: "bar", | 
|       heigth: 450, | 
|       width: 1000, | 
|       options: options, | 
|     }; | 
|   }, | 
| }; | 
| </script> | 
| <style lang="less" scoped> | 
| .m-charts { | 
|   position: absolute; | 
|   top: 0; | 
|   left: 0; | 
|   right: 0; | 
|   bottom: 0; | 
|   background: #f1f1f1; | 
|   margin: auto 0; | 
|   padding: 12px; | 
|   .m-tabs { | 
|     background: white; | 
|   } | 
| } | 
| .m-charts ::v-deep(.el-tabs__content) { | 
|   height: calc(100% - 45px); | 
| } | 
| .m-charts ::v-deep(.el-tab-pane) { | 
|   height: 100%; | 
| } | 
| </style> |