scjgContent.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="content">
  3. <!-- 图表 -->
  4. <pie
  5. v-if="litem.scxstyle == 0"
  6. :class="`echart${litem.dataList.length <= 6 ? '' : '_vertical'}`"
  7. unit="亩"
  8. @echartClick="(name, iseyes) => echartClick(name, iseyes)"
  9. :ref="`echartRef`"
  10. ></pie>
  11. <div v-else-if="litem.scxstyle == 1">
  12. <div v-for="ldata in litem.dataList" :key="ldata.scxbsm">
  13. <el-tooltip
  14. v-if="ldata.yslx_name && ldata.yslx_name.length > 0"
  15. :content="ldata.yslx_name"
  16. placement="bottom-start"
  17. >
  18. <span class="name">{{ ldata.yslx_name }} </span>
  19. </el-tooltip>
  20. <span class="value"> {{ ldata.mj }}</span>
  21. <span class="tools">
  22. <i
  23. class="header-icon el-icon-place"
  24. @click.stop="mapviewClick(ldata)"
  25. ></i>
  26. </span>
  27. </div>
  28. </div>
  29. </div>
  30. </template>
  31. <script>
  32. import pie from "@/components/echartsTemplate/pie.vue";
  33. export default {
  34. name: "scjgContent",
  35. props: {
  36. litem: {
  37. type: Object,
  38. },
  39. piseyes: {
  40. type: Boolean,
  41. default: false,
  42. },
  43. },
  44. data() {
  45. return {};
  46. },
  47. components: { pie },
  48. mounted() {},
  49. methods: {
  50. setEchart(data, type) {
  51. this.$nextTick(() => {
  52. this.$refs.echartRef.setOptions({ data, type });
  53. });
  54. },
  55. echartClick(name, iseyes) {
  56. if (this.piseyes) {
  57. let click = this.litem.dataList.filter((c) => c.name == name);
  58. if (click.length > 0) this.mapview({ ...click[0], iseyes });
  59. }
  60. },
  61. mapviewClick(ldata) {
  62. if (ldata.iseyes == undefined || !this.piseyes) ldata.iseyes = true;
  63. this.$set(ldata, "iseyes", !ldata.iseyes);
  64. this.mapview(ldata);
  65. },
  66. mapview(data) {
  67. this.$emit("mapview", data);
  68. },
  69. },
  70. };
  71. </script>
  72. <style lang="scss" scoped>
  73. .content {
  74. .name {
  75. // width: 100px;
  76. overflow: hidden;
  77. text-overflow: ellipsis;
  78. white-space: nowrap;
  79. }
  80. .value {
  81. width: 40px;
  82. color: #64daff;
  83. padding: 0px 4px;
  84. text-align: center;
  85. }
  86. .tools {
  87. position: absolute;
  88. right: 30px;
  89. cursor: pointer;
  90. }
  91. .highcolor {
  92. color: #64daff;
  93. }
  94. }
  95. </style>