dkDetails.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <template>
  2. <div class="dkxq_Container" v-if="isDateilsShow">
  3. <div class="sm-panel-header">
  4. <span>{{ title }}</span>
  5. <span class="closeBtn" @click="close">&times;</span>
  6. </div>
  7. <pie
  8. v-if="title == '现状信息'"
  9. :class="`echart`"
  10. unit="亩"
  11. @echartClick="echartClick"
  12. :ref="`echartRef`"
  13. ></pie>
  14. <div
  15. v-loading="loading"
  16. element-loading-text="拼命加载中"
  17. element-loading-spinner="el-icon-loading"
  18. element-loading-background="rgba(0, 0, 0, 0.8)"
  19. class="loadingDiv"
  20. v-if="title == '规划信息'"
  21. >
  22. <el-collapse
  23. v-for="(value, index_item) in collapseList"
  24. :key="index_item"
  25. @change="handleChange"
  26. >
  27. <el-collapse-item
  28. :title="'地块' + (index_item + 1)"
  29. name="1"
  30. >
  31. <div
  32. class="list_vector_multi"
  33. v-for="(value_field, index_field) in value"
  34. :key="index_field"
  35. @click="go(value)"
  36. v-if="value_field.filed != 'geom'"
  37. >
  38. <!-- v-if="value_field.filed != 'geom'" -->
  39. <div class="filed_box">
  40. {{ value_field.filedZH }}
  41. </div>
  42. :
  43. <div class="filed_box">
  44. {{ value_field.data }}
  45. </div>
  46. </div>
  47. </el-collapse-item>
  48. </el-collapse>
  49. </div>
  50. </div>
  51. </template>
  52. <script>
  53. import pie from "@/components/echartsTemplate/pie.vue";
  54. import { AddHgxfxV1 } from "@/api/ghss/hgxfx.js";
  55. import { GetTableData } from "@/api/cockpitNew";
  56. // 使用
  57. export default {
  58. components: { pie },
  59. props: {},
  60. data() {
  61. return {
  62. title: "",
  63. itemObj: {},
  64. collapseList: [],
  65. loading: true,
  66. isDateilsShow:false
  67. };
  68. },
  69. methods: {
  70. show(item, title) {
  71. this.title = title;
  72. this.getData(item);
  73. },
  74. getData(item) {
  75. let formdata = {
  76. xmmc: "选址调用",
  77. xzfw: item.geom.replace("SRID=4326;", ""),
  78. fxmj: item.area,
  79. scxList: [
  80. {
  81. scxbsm: "TDXZ",
  82. parameter:
  83. '{"parameter":[{"key":"范围内","value":"intersection"}],"find":"intersection"}',
  84. },
  85. ],
  86. };
  87. AddHgxfxV1(formdata).then((res) => {
  88. if (res.success) {
  89. res.data.data.forEach((e) => {
  90. let c = e.dataList || [];
  91. c.map((ci) => {
  92. ci.name = ci.yslx_name;
  93. ci.value = ci.mj;
  94. ci.geom = ci.geom || "";
  95. });
  96. if (e.scxstyle == 0) this.setEchart(c, "vertical");
  97. });
  98. }
  99. });
  100. },
  101. setEchart(data, type) {
  102. console.log("res.data", this.$refs.echartRef);
  103. this.$nextTick(() => {
  104. this.$refs.echartRef.setOptions({
  105. data,
  106. type,
  107. max: 6,
  108. legend_right: "20%",
  109. });
  110. });
  111. },
  112. echartClick(name) {},
  113. getCollapseList() {
  114. this.loading = true
  115. this.collapseList = []
  116. function cutStringFromFirstSemiColon(str) {
  117. var index = str.indexOf(";"); // 获取第一个分号的索引
  118. if (index !== -1) {
  119. return str.substring(index + 1); // 从分号开始截取到字符串末尾
  120. }
  121. return str; // 如果没有找到分号,返回原字符串
  122. }
  123. var resultString = cutStringFromFirstSemiColon(this.itemObj.geom);
  124. // console.log(wkt,'wktwkt');
  125. let obj = {
  126. wkt: resultString,
  127. id: "dd699f839bc04969ae2dc2e1964d0ad2",
  128. };
  129. GetTableData(obj).then((res) => {
  130. let tempArr = res.data;
  131. if (tempArr.data) {
  132. this.collapseList = tempArr.data;
  133. }
  134. this.loading = false
  135. });
  136. },
  137. close(){
  138. this.isDateilsShow = false
  139. }
  140. },
  141. mounted() {},
  142. computed: {},
  143. };
  144. </script>
  145. <style lang="scss">
  146. .dkxq_Container {
  147. width: 19rem;
  148. height: 600px;
  149. background-color: pink;
  150. position: fixed;
  151. bottom: 16%;
  152. right: 10px;
  153. cursor: pointer;
  154. background: url(/static/images/ghzc/内容框.png) no-repeat;
  155. background-size: 100% 100%;
  156. background-position: center;
  157. padding: 0px 10px;
  158. box-sizing: content-box;
  159. text-align: left;
  160. line-height: 40px;
  161. .echart {
  162. width: 19rem;
  163. height: 450px;
  164. }
  165. }
  166. .list_vector_multi {
  167. background-image: url("/static/images/ghzc/内容框.png");
  168. width: 18rem;
  169. border-top: 1px solid #ccc;
  170. font-size: 14px;
  171. padding: 0.1rem 0rem 0.1rem 0rem;
  172. border-left: 1px solid #ccc;
  173. border-right: 1px solid #ccc;
  174. // border-bottom:1px solid #CCC ;
  175. }
  176. .list_vector_multi:last-child {
  177. border-bottom: 1px solid #ccc;
  178. }
  179. .filed_box {
  180. display: inline-block;
  181. }
  182. .loadingDiv{
  183. width: 100%;
  184. // height: 100%;
  185. height: calc(100% - 46px);
  186. overflow-x: hidden;
  187. overflow-y: auto;
  188. }
  189. </style>