Procházet zdrojové kódy

Merge branch 'master' of http://114.244.114.158:8802/siwei/real3d-portalsite

lkk před 1 rokem
rodič
revize
a6e9c56bec

+ 5 - 5
src/components/echartsTemplate/3dPie.vue

@@ -22,12 +22,12 @@ let option = {
     data: [],
     // bottom: "20%",
     // right: "2%",
-    x: 50,
+    x: 0,
     y:100,
     itemGap: 10,
     textStyle: {
-      color: "#fff",
-      fontSize: 14,
+      color: "#ccc",
+      fontSize: 12,
     },
     textStyle: {
       rich: {
@@ -117,9 +117,9 @@ export default {
           `${item.name}`.includes(`${name}`)
         );
         if (sItem) {
-          return `{name|${name}}  {unit|${_this.$props.unit}} `;
+          // return `{name|${name}}  {unit|${_this.$props.unit}} `;
 
-          // return `{name|${name}}  {value|${sItem.value}}  {unit|${_this.$props.unit}} `;
+          return `{name|${name}}  {value|${sItem.value}}  {unit|${_this.$props.unit}} `;
           // return name + 'sItem.value';
         } else {
           return name;

+ 8 - 1
src/components/echartsTemplate/pie.vue

@@ -160,7 +160,7 @@ export default {
     };
   },
   methods: {
-    setOptions(dataList) {
+    setOptions(dataList, isclick) {
       let _this = this;
       if (!this.myChart) {
         // var dom = document.getElementById("pie_echart");
@@ -200,6 +200,13 @@ export default {
       option.series[0].data = dataList;
       this.myChart.resize();
       this.myChart.setOption(option);
+      if (isclick) {
+        //  legendselectchanged
+        this.myChart.on("legendselectchanged", function (params) {
+          console.log("----");
+          _this.$emit("echartClick", params.name, params.selected[params.name]);
+        });
+      }
     },
   },
   mounted() {

+ 39 - 37
src/components/mapView/range.vue

@@ -163,39 +163,39 @@ export default {
 
       formdata.append("file", file.raw);
       this.addPolygon();
-      ShapeUpload(formdata).then((res) => {
-        if (res.success) {
-          // var layer = myMap.addGeoJson("common_layer", res.data.geojson);
-          // var url = `${SYS_LAYERS.XZQXZ}/0/query`;
-          // var geom = layer.getSource().getFeatures()[0].getGeometry();
-          // 判断绘制范围是否在行政区范围内
-          let withinRange = true;
-          // arcMap.SearchWfsData(url, geom, function (fs) {
-          //   if (fs.length) {
-          //     fs.map((res) => {
-          //       let xzqdm = res.get("XZQDM");
-          //       if (!xzqdm.startsWith(this.userXZQ)) {
-          //         withinRange = false;
-          //       }
-          //     });
-          //   } else {
-          //     withinRange = false;
-          //   }
-          if (withinRange) {
-            this.model.xzfw = res.data.filepath;
-            //     this.model.feature = layer.getSource().getFeatures()[0];
-            //     this.model.xzmj = new OLTool().Tools.formatArea(
-            //       this.model.feature.getGeometry(),
-            //       true
-            //     );
-            //     myMap.zoomToextent(layer.getSource().getExtent());
-          } else {
-            //     this.clearAll();
-            //     ElMessage.warning("分析范围超出了权限范围,请重新上传文件!");
-          }
-          // });
-        }
-      });
+      // ShapeUpload(formdata).then((res) => {
+      //   if (res.success) {
+      //     // var layer = myMap.addGeoJson("common_layer", res.data.geojson);
+      //     // var url = `${SYS_LAYERS.XZQXZ}/0/query`;
+      //     // var geom = layer.getSource().getFeatures()[0].getGeometry();
+      //     // 判断绘制范围是否在行政区范围内
+      //     let withinRange = true;
+      //     // arcMap.SearchWfsData(url, geom, function (fs) {
+      //     //   if (fs.length) {
+      //     //     fs.map((res) => {
+      //     //       let xzqdm = res.get("XZQDM");
+      //     //       if (!xzqdm.startsWith(this.userXZQ)) {
+      //     //         withinRange = false;
+      //     //       }
+      //     //     });
+      //     //   } else {
+      //     //     withinRange = false;
+      //     //   }
+      //     if (withinRange) {
+      //       this.model.xzfw = res.data.filepath;
+      //       //     this.model.feature = layer.getSource().getFeatures()[0];
+      //       //     this.model.xzmj = new OLTool().Tools.formatArea(
+      //       //       this.model.feature.getGeometry(),
+      //       //       true
+      //       //     );
+      //       //     myMap.zoomToextent(layer.getSource().getExtent());
+      //     } else {
+      //       //     this.clearAll();
+      //       //     ElMessage.warning("分析范围超出了权限范围,请重新上传文件!");
+      //     }
+      //     // });
+      //   }
+      // });
     },
     // 加载GeoJSON数据
     addPolygon() {
@@ -203,10 +203,12 @@ export default {
         this.$props.type == "hegxfx"
           ? "/static/data/ghss/导入.geojson"
           : "static/data/draw.geojson";
-      let polygon = Cesium.GeoJsonDataSource.load(
-        geojson
-        // { clampToGround: true }
-      );
+      let polygon = Cesium.GeoJsonDataSource.load(geojson, {
+        // clampToGround: true
+        stroke: Cesium.Color.RED,
+        fill: Cesium.Color.WHITE.withAlpha(0.3),
+        strokeWidth: 5,
+      });
       polygon.then(function (dataSource) {
         // 将数据源添加到Cesium Viewer
         viewer.dataSources.add(dataSource);

+ 14 - 14
src/views/cockpit/bjxm.vue

@@ -123,9 +123,8 @@ export default {
           type: 'category',
           data: ['崖州区', '天崖区', '吉阳区', '海棠区', '育才区'],
           axisLine: {
-            show: false,
             lineStyle: {
-              color: 'white'
+              color: '#BCD3E5'
             }
           },
           // offset: 25,
@@ -134,7 +133,7 @@ export default {
             length: 9,
             alignWithLabel: true,
             lineStyle: {
-              color: '#7DFFFD'
+              color: '#BCD3E5'
             }
           },
           axisLabel: {
@@ -152,11 +151,11 @@ export default {
             axisLine: {
               show: false,
               lineStyle: {
-                color: '#ccc'
+                color: '#BCD3E5'
               }
             },
             splitLine: {
-              show: true,
+              show: false,
               lineStyle: {
                 type: "dashed",
                 color: "rgba(255,255,255,0.1)"
@@ -181,7 +180,7 @@ export default {
             axisLine: {
               show: false,
               lineStyle: {
-                color: 'white'
+                color: '#BCD3E5'
               }
             },
             splitLine: {
@@ -217,10 +216,10 @@ export default {
 
               }
               ])
-              console.log(color);
               return {
                 type: 'group',
-                children: [{
+                children: [
+                  {
                   type: 'CubeLeft',
                   shape: {
                     api,
@@ -233,11 +232,12 @@ export default {
                   style: {
                     fill: color = api.value(1) > 10000 ? 'red' : new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
-                      color: 'rgba(33,101,140,0.5)'
+                      color: 'rgba(34, 129, 209, 0.8)'
                     },
                     {
                       offset: 0.8,
-                      color: 'rgba(33,101,140,0.5)'
+                      color: 'rgba(34, 129, 209, 0.8)'
+
 
                     }
                     ])
@@ -256,11 +256,11 @@ export default {
                   style: {
                     fill: color = api.value(1) > 10000 ? 'red' : new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
-                      color: '#195684'
+                      color: 'rgba(97, 173, 237, 0.8)'
                     },
                     {
                       offset: 0.8,
-                      color: '#195684'
+                      color: 'rgba(97, 173, 237, 0.8)'
                     }
                     ])
                   }
@@ -277,12 +277,12 @@ export default {
                   style: {
                     fill: color = api.value(1) > 10000 ? 'red' : new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
-                      color: 'rgba(33,101,140,0.5)'
+                      color: 'rgba(60, 167, 255, 1)'
 
                     },
                     {
                       offset: 1,
-                      color: 'rgba(33,101,140,0.5)'
+                      color: 'rgba(135, 200, 255, 1)'
 
                     }
                     ])

+ 1 - 0
src/views/cockpit/gdbh.vue

@@ -237,6 +237,7 @@ export default {
     position: fixed;
     top: 6rem;
     left: 108rem;
+    z-index: -1;
   }
 }
 

+ 37 - 24
src/views/cockpit/hysy.vue

@@ -19,7 +19,9 @@
                         <span>66.23</span>公顷
                     </div>
                 </div>
+
                 <div id="dial_watch_hysy">
+
                     <div class="text">
                         <p>计划出让海域</p>
                         <span>66.23</span>公顷
@@ -86,8 +88,8 @@ export default {
                 xdata: ['渔业用海', '工业用海', '交通运输用海', '旅游娱乐用海', '海底工程用海', '排污倾倒用海', '造地工程用海', '特殊用海', '其它用海'],
 
                 result: [
-                    { name: '计划收储', data: [...new Array(33)].map((item, i) => +(Math.random(0, 10) * 1000).toFixed(0)) },
-                    { name: '完成收储', data: [...new Array(33)].map((item, i) => +(Math.random(0, 0.5) * 1000).toFixed(0)) },
+                    { name: '计划出让', data: [...new Array(33)].map((item, i) => +(Math.random(0, 10) * 1000).toFixed(0)) },
+                    { name: '完成出让', data: [...new Array(33)].map((item, i) => +(Math.random(0, 0.5) * 1000).toFixed(0)) },
                 ]
             }
 
@@ -110,13 +112,13 @@ export default {
             }
 
             const legend = {
-                data: ['计划收储', '完成收储'],      //图例名称
+                data: ['计划出让', '完成出让'],      //图例名称
 
                 textStyle: { fontSize: 12, color: '#fff' },
                 itemWidth: 24,
                 itemHeight: 15,
                 itemGap: 15,
-                top: '2%',
+                top: '-4%',
                 right: '2%',
                 selectedMode: false
             }
@@ -124,9 +126,9 @@ export default {
             // xAxis
             const xAxis = {
                 axisTick: { show: false },
-                axisLine: { lineStyle: { color: 'rgba(255,255,255, .2)' } },
+                axisLine: { lineStyle: { color: '#BCD3E5' } },
                 axisLabel: {
-                    textStyle: { fontSize: 12, color: '#fff' },
+                    textStyle: { fontSize: 12, color: '#BCD3E5' },
                 },
                 axisLabel: {
                     interval: 0,
@@ -230,17 +232,21 @@ export default {
             let option = {
                 backgroundColor: 'rgba(0,0,0,0)',
                 title: {
-                    text: '{num|' + demoData.value + '%}',
-                    x: '50%',
+                    text: `{num|${demoData.value}%} ` + '\n' + `{label|完成率}`,
+
+                    x: '49%',
                     y: '70%',
                     textAlign: 'center',
                     textStyle: {
                         rich: {
                             num: {
-                                fontWeight: '900',
+                                fontWeight: '600',
                                 color: 'rgba(249, 180, 71, 1)',
                                 fontFamily: '微软雅黑',
-                                fontSize: 18,
+                                fontSize: 14,
+                            }, label: {
+                                color: "#fff",
+                                fontSize: 12,
                             },
                         },
                     },
@@ -331,7 +337,7 @@ export default {
                         radius: ['65%', '50%'],
                         center: ['50%', '70%'],
                         startAngle: 220,
-                        endAngle: -44,
+                        endAngle: -10,
                         color: [
                             {
                                 type: 'linear',
@@ -434,9 +440,9 @@ export default {
     border-width: 0px;
     position: absolute;
     left: 55rem;
-    top: 33rem;
+    top: 35.3rem;
     width: 559px;
-    height: 310px;
+    height: 270px;
     display: -webkit-box;
     display: -ms-flexbox;
     display: flex;
@@ -481,7 +487,7 @@ export default {
         height: 8.5rem;
         position: relative;
         left: 3rem;
-        bottom: 2rem;
+        bottom: 1rem;
     }
 
     #hysyEchart {
@@ -501,28 +507,33 @@ export default {
 
         position: fixed;
         background: no-repeat;
-        background-size: 101% 70%;
+        background-size: 101% 50%;
         background-image: url("/static/images/overview/ltback.png");
         left: 57rem;
+        top: 41.5rem;
     }
 
     .lb_box {
 
         position: fixed;
         background: no-repeat;
-        background-size: 101% 70%;
+        background-size: 101% 50%;
+
         background-image: url("/static/images/overview/lbback.png");
         left: 57rem;
-        top: 44rem;
+        top: 44.5rem;
+
     }
 
     .rt_box {
         position: fixed;
         background: no-repeat;
-        background-size: 101% 70%;
+        background-size: 101% 50%;
+
         background-image: url("/static/images/overview/rtback.png");
         left: 76rem;
-        top: 40rem;
+        top: 41.5rem;
+
 
         .text {
             margin-left: 4rem;
@@ -532,10 +543,10 @@ export default {
     .rb_box {
         position: fixed;
         background: no-repeat;
-        background-size: 101% 70%;
+        background-size: 101% 50%;
         background-image: url("/static/images/overview/rbback.png");
         left: 76rem;
-        top: 44rem;
+        top: 44.5rem;
         z-index: 100;
 
         .text {
@@ -548,15 +559,17 @@ export default {
 .text {
     display: inline-block;
     width: 100px;
-    margin-top: 10px;
+    // margin-top: 10px;
     margin-left: 15px;
 
+    margin-top: 3px;
+
     p {
         font-kerning: normal;
         font-family: "Arial Negreta", "Arial Normal", "Arial";
-        font-weight: 700;
+        font-weight: 500;
         font-style: normal;
-        font-size: 14px;
+        font-size: 12px;
         color: #ffffff;
     }
 

+ 171 - 3
src/views/cockpit/stxf.vue

@@ -18,6 +18,38 @@
       </div>
     </div>
 
+    <div v-show="tab == options[0].value">
+      <div class="legend_stxf">
+
+        <div class="stxf_echart_tdzz_legend">
+
+        </div>
+
+      </div>
+      <pie3d id="stxf_echart_tdzz" unit="个" ref="stxf_echart_tdzz"></pie3d>
+    </div>
+    <div v-show="tab == options[1].value">
+      <div class="content">
+
+        <div class="infoLIst" v-if="jiDataInfo.length">
+          <div class="infoItem" v-for="(item, index) in jiDataInfo" :key="index">
+            <div class="itemIcon">
+              <span>
+                {{ index }}
+              </span>
+            </div>
+            <div class="itemCon">
+              <p>{{ item.xmmc }}</p>
+              <p>
+                <span>{{ item.yelx }}</span>
+                <span>{{ item.crnj }}公顷</span>
+              </p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
   </borderTemplate>
 </template>
 
@@ -25,11 +57,13 @@
 //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 import borderTemplate from "./borderTemplate.vue";
 import { QueryOne, QueryList } from "../../api/cockpitNew";
+import pie3d from "../../components/echartsTemplate/3dPie.vue";
 
 export default {
-  components: { borderTemplate },
+  components: { borderTemplate, pie3d },
   data() {
     return {
+      jiDataInfo: [], //集体信息列表
       options: [
         { value: "tdzz", label: "土地整治" },
         { value: "ssxf", label: "山水工程" },
@@ -70,7 +104,16 @@ export default {
   //监控data中的数据变化
   watch: {},
   methods: {
-    changeCharts() {
+    async getInfo() {
+      let res = await QueryList({
+        val0: '区',
+        jscType: "jsc_tdgy_jt_xx",
+        id: 4602,
+      });
+      this.jiDataInfo = res.data
+    },
+    changeCharts(e) {
+
     },
     GetQueryOne(datas) {
       let params = {
@@ -99,8 +142,23 @@ export default {
         });
       });
     },
+
+  },
+  mounted() {
+    this.$nextTick((res) => {
+
+      this.$refs.stxf_echart_tdzz.setOptions([
+        { name: "农用地整理项目", value: 12 },
+        { name: "建设用地整理项目", value: 21 },
+        { name: "生态修复项目", value: 54 },
+        { name: "历史文化保护项目", value: 22 },
+
+      ]);
+
+      this.getInfo();
+
+    })
   },
-  mounted() { },
 };
 </script>
 <style lang="scss" scoped>
@@ -144,4 +202,114 @@ export default {
     line-height: 18px;
   }
 }
+
+
+#stxf_echart_tdzz {
+
+  width: 24rem;
+  height: 10rem;
+  position: fixed;
+  top: 25rem;
+  left: 100rem;
+}
+
+
+.legend_stxf {
+  position: fixed;
+  top: 34rem;
+
+  .stxf_echart_tdzz_legend {
+    height: 4rem;
+    width: 25rem;
+    background: no-repeat;
+
+    background-image: url("/static/images/overview/stxf_echart_tdzz_legend.png");
+    display: inline-block;
+  }
+}
+
+.infoLIst {
+  width: 100%;
+  height: 12.5rem;
+  overflow: hidden;
+  overflow-y: auto;
+  margin-top: 10px;
+  margin-right: 10px;
+  padding-top: 5px;
+
+  .infoItem {
+    width: 100%;
+    height: 3.3rem;
+    background-color: #64daff;
+    background: url("/static/images/overview/list_bg.png") no-repeat;
+    background-size: 100% 100%;
+    display: flex;
+    margin-bottom: 10px;
+
+    .itemIcon {
+      width: 20px;
+      height: 20px;
+      background: url("/static/images/overview/stxf_sugc_index_back.png") no-repeat;
+      background-size: 100% 100%;
+      margin: 0.5rem;
+      text-align: center;
+
+      span {
+        width: 5px;
+        height: 10px;
+        font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
+        font-weight: 600;
+        font-size: 14px;
+        color: #F9B447;
+        line-height: 10px;
+        text-align: center;
+        font-style: normal;
+        text-transform: none;
+      }
+    }
+
+    .itemCon {
+
+      // width: 13.5rem;
+      // height: 1.55rem;
+      // background-color: #faa012;
+      // line-height: 1.55rem;
+      p {
+        height: 41%;
+        line-height: 1.55rem;
+        color: #ecf6ff;
+      }
+
+      p:first-child {
+        width: 177px;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+        color: #ecf6ff;
+      }
+
+      p:nth-child(2) {
+        span {
+          padding: 0 0.4rem;
+          display: inline-block;
+          background: rgba(100, 218, 255, 0.1);
+          border-radius: 2px 14px 2px 14px;
+          color: #64daff;
+          font-size: 12px;
+        }
+      }
+    }
+
+    .itemStatus1 {
+      background: url("/static/images/overview/yrsIcon.png") no-repeat;
+      background-size: 100% 100%;
+      width: 62px;
+      height: 18px;
+      position: relative;
+      right: -30px;
+    }
+
+
+  }
+}
 </style>

+ 11 - 6
src/views/cockpit/tdsc.vue

@@ -11,7 +11,11 @@
       </el-select>
     </div>
 
-    <div id="scje_echart"></div>
+    <div v-show="tab == options[0].value">
+      <div id="scje_echart"></div>
+    </div>
+    <div v-show="tab == options[1].value">
+    </div>
   </div>
 </template>
 
@@ -78,17 +82,17 @@ export default {
         itemWidth: 24,
         itemHeight: 15,
         itemGap: 15,
-        top: '2%',
+        top: '5%',
         right: '2%',
         selectedMode: false
       }
+      const grid = { top: '15%', left: '12%', right: '2%', bottom: '25%' }
       // xAxis
       const xAxis = {
-        offset: 5,
         axisTick: { show: false },
-        axisLine: { lineStyle: { color: 'rgba(255,255,255, .7)' } },
+        axisLine: { lineStyle: { color: '#BCD3E5' } },
         axisLabel: {
-          textStyle: { fontSize: 12, color: '#fff' },
+          textStyle: { fontSize: 12, color: '#BCD3E5' },
         },
         axisLabel: {
           interval: 0,
@@ -174,7 +178,7 @@ export default {
 
       let option = {
 
-        tooltip, legend, xAxis, yAxis, series, dataZoom, backgroundColor: 'rgba(0, 0, 0, 0)'
+        tooltip, legend, xAxis, yAxis, series, grid, dataZoom, backgroundColor: 'rgba(0, 0, 0, 0)'
       }
 
 
@@ -322,6 +326,7 @@ export default {
 
 
 #scje_echart {
+  z-index: -1;
   left: -2rem;
   top: 0.1rem;
   width: 26rem;

+ 28 - 19
src/views/cockpit/tdsy.vue

@@ -8,13 +8,13 @@
         </div>
 
         <div class="selectTab left_tab">
-          <el-select v-model="left_value" placeholder="请选择" :popper-append-to-body="false" @change="changeCharts">
+          <el-select v-model="left_value" placeholder="请选择" :popper-append-to-body="false" @change="changeChartsLeft">
             <el-option v-for="item in left_options" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
         <div class="selectTab right_tab">
-          <el-select v-model="right_value" placeholder="请选择" :popper-append-to-body="false" @change="changeCharts">
+          <el-select v-model="right_value" placeholder="请选择" :popper-append-to-body="false" @change="changeChartsRight">
             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
@@ -79,27 +79,23 @@ export default {
   components: {},
   data() {
     return {
+      right_value: 'gyjd',
+      options: [
+        { value: "gyjd", label: "供应进度" },
+        { value: "gyjg", label: "供应结构" },
+      ],
       jiDataInfo: [], //集体信息列表
       left_options: [
         {
-          value: "国有建设用地",
+          value: "gyjsyd",
           label: "国有建设用地",
         },
         {
-          value: "集体供应性土地",
+          value: "jtgyxtd",
           label: "集体供应性土地",
         },
-      ], right_options: [
-        {
-          value: "供应进度",
-          label: "供应进度",
-        },
-        {
-          value: "供应结构",
-          label: "供应结构",
-        },
-      ], left_value: '集体供应性土地',
-      right_value: '供应进度'
+      ],
+      left_value: 'gyjsyd',
     };
   },
   //监听属性 类似于data概念
@@ -116,6 +112,11 @@ export default {
   created() { }, //生命周期 - 创建完成(可以访问当前this实例)
   beforeMount() { }, //生命周期 - 挂载之前
   methods: {
+    changeChartsLeft() {
+
+    }, changeChartsRight() {
+
+    },
     async getInfo() {
       let res = await QueryList({
         val0: '区',
@@ -135,17 +136,21 @@ export default {
       let option = {
         backgroundColor: 'rgba(0,0,0,0)',
         title: {
-          text: '{num|' + demoData.value + '%}',
-          x: '50%',
+          text: `{num|${demoData.value}%} ` + '\n' + `{label|完成率}`,
+
+          x: '49%',
           y: '70%',
           textAlign: 'center',
           textStyle: {
             rich: {
               num: {
-                fontWeight: '900',
+                fontWeight: '600',
                 color: 'rgba(249, 180, 71, 1)',
                 fontFamily: '微软雅黑',
-                fontSize: 18,
+                fontSize: 14,
+              }, label: {
+                color: "#fff",
+                fontSize: 12,
               },
             },
           },
@@ -462,6 +467,7 @@ export default {
   position: fixed;
   left: -5rem;
   top: 39.5rem;
+  z-index: -1;
 }
 
 .content {
@@ -553,10 +559,12 @@ export default {
   position: absolute;
   left: 12rem;
   top: 3rem;
+  z-index: -1;
 
   .item_tdgy {
     width: 100%;
     margin-top: 1rem;
+
     .icon_tdgy {
       width: 10px;
       height: 10px;
@@ -570,6 +578,7 @@ export default {
 
     .text {
       display: inline-block;
+
       p {
         font-kerning: normal;
         font-family: 'Arial Negreta', 'Arial Normal', 'Arial';

+ 14 - 7
src/views/complianceAnalysis/components/hgxsc.vue

@@ -209,14 +209,21 @@ export default {
             type: "warning",
           }).then(() => {
             this.$emit("updateParent", "loading", true);
-            Add({ ...this.ruleForm }).then((res) => {
-              if (res.success) {
-                this.$emit("updateParent", "rzMc", this.ruleForm.xmmc);
-                this.$emit("updateParent", "rzBsm", res.data);
-                // this.$emit("updateParent", "rwBsm", res.data);
-              }
+            setTimeout(() => {
+              this.$emit("updateParent", "rzMc", this.ruleForm.xmmc);
+              this.$emit("updateParent", "rzBsm", '401148617e5c41bdbde176f7e45d791e');
               this.$emit("updateParent", "loading", false);
-            });
+              this.reset()
+              
+            }, 500);
+            // Add({ ...this.ruleForm }).then((res) => {
+            //   if (res.success) {
+            //     this.$emit("updateParent", "rzMc", this.ruleForm.xmmc);
+            //     this.$emit("updateParent", "rzBsm", res.data);
+            //     // this.$emit("updateParent", "rwBsm", res.data);
+            //   }
+            //   this.$emit("updateParent", "loading", false);
+            // });
           });
         })
         .catch((res) => {

+ 15 - 5
src/views/complianceAnalysis/components/lsjl.vue

@@ -35,7 +35,8 @@
       <div
         class="dataItem"
         v-for="(item, dindex) in datalist"
-        :key="item.objectid"
+        :class="now == item.bsm ? 'dataItemHight' : ''"
+        :key="item.bsm"
         @click="zoomItem(item)"
       >
         <div>{{ dindex + 1 }}. 项目名称:{{ item.xmlx }}</div>
@@ -104,6 +105,7 @@ export default {
         new Date(2023, 2, 1, 23, 59, 59),
       ], // '00:00:00', '23:59:59'
       datalist: [],
+      now: "",
     };
   },
   mounted() {
@@ -145,13 +147,14 @@ export default {
       //   if (res.success) {
       // this.$emit("updateParent", "scjgObj=JSON.parse(JSON.stringify(res.data))
       // this.$emit("updateParent", "scjgObj=JSON.parse(JSON.stringify(res.data))
+      this.$emit("updateParent", "nowObj", item);
       let next = this.$props.type == "hgxfx" ? "scjg" : "xzjg";
       this.$emit("updateParent", "activeTabs", next);
       //   }
       // });
     },
     checkRz(item) {
-      this.$emit("updateParent", "rzMc", item.xmmc);
+      this.$emit("updateParent", "nowObj", item);
       this.$emit("updateParent", "rzBsm", item.bsm);
     },
 
@@ -183,12 +186,17 @@ export default {
       });
     },
     zoomItem(item) {
-      this.addPolygon(item.bsm);
+      this.now = item.bsm;
+      this.addPolygon(item.geojson);
     },
     // 加载GeoJSON数据
     addPolygon(geojson) {
       viewer.dataSources.removeAll();
-      let polygon = Cesium.GeoJsonDataSource.load(geojson);
+      let polygon = Cesium.GeoJsonDataSource.load(geojson, {
+        stroke: Cesium.Color.RED,
+        fill: Cesium.Color.WHITE.withAlpha(0.3),
+        strokeWidth: 5,
+      });
       polygon.then(function (dataSource) {
         viewer.dataSources.add(dataSource);
         viewer.zoomTo(dataSource);
@@ -231,8 +239,10 @@ export default {
       position: relative;
       margin-bottom: 10px;
     }
-    .dataItem:hover {
+    .dataItem:hover,
+    .dataItemHight {
       border: 1px solid #02a7f0;
+      background-color: rgba(64, 158, 255, 0.2);
     }
     .item_bottom {
       display: flex;

+ 6 - 3
src/views/complianceAnalysis/components/rzDtails.vue

@@ -10,7 +10,7 @@
       <el-scrollbar class="logs height-350 max-width">
         <el-timeline class="max-box box-sizing">
           <el-timeline-item
-            v-for="item in data"
+            v-for="item in logsdata"
             :key="item.bsm"
             :timestamp="item.rzsj"
             :type="
@@ -38,6 +38,7 @@
 
 <script>
 import { GetLog } from "@/api/ghss/hgxfx.js";
+import hgxfx from "../../../../static/data/ghss/data.js";
 export default {
   props: {
     rzBsm: {
@@ -49,13 +50,14 @@ export default {
   },
   data() {
     return {
-      data: [{ rzsj: "2024-03-26", rzlr: "wqewe" }, {}],
+      logsdata: [],
       dialog: false,
       timer: "",
     };
   },
   mounted() {
     clearTimeout(this.timer);
+    this.logsdata = hgxfx.rzfxlist;
   },
   methods: {
     handleClose() {
@@ -64,7 +66,7 @@ export default {
     getRzData() {
       GetLog({ bsm: this.$props.rzBsm }).then((res) => {
         if (res.success) {
-          this.data = res.data;
+          this.logsdata = res.data;
           // if (res.data.rwzt != (2 || 3)) {
           //   this.timer = setTimeout(() => {
           //      this.$props.rzBsm != "" && this.getRzData();
@@ -91,6 +93,7 @@ export default {
     rzBsm(newValue) {
       if (newValue != "") {
         this.dialog = true;
+        // this.getRzData();
       } else {
         this.dialog = false;
       }

+ 60 - 24
src/views/complianceAnalysis/components/scjg.vue

@@ -2,12 +2,12 @@
   <div class="scjg">
     <div>
       <div class="downloadDiv">
-        <span>项目名称:{{ ruleForm.name }}</span>
+        <span>项目名称:{{ scjgObj.xmmc }}</span>
         <el-button type="primary" size="mini" @click="download">
           导出报告
         </el-button>
       </div>
-      <div>分析面积:{{ ruleForm.xzmj }}平方千米</div>
+      <div>分析面积:{{ scjgObj.xzmj }}平方千米</div>
     </div>
 
     <div v-for="(eitem, i) in echarts" :key="i" class="echars">
@@ -24,7 +24,12 @@
           @click="eitem.isshow = !eitem.isshow"
         ></div>
       </div>
-      <pie v-show="eitem.isshow" class="echart" :ref="`echartRef`"></pie>
+      <pie
+        v-show="eitem.isshow"
+        class="echart"
+        @echartClick="echartClick"
+        :ref="`echartRef`"
+      ></pie>
     </div>
 
     <!-- v-show="isshow"  -->
@@ -34,6 +39,11 @@
 <script>
 import pie from "@/components/echartsTemplate/pie.vue";
 import hgxfx from "../../../../static/data/ghss/data.js";
+let colors = [
+  ["#FC8053", "#F2CAA4"],
+  ["#5583e7", "#36dddb"],
+  ["#f888b1", "#fbe6ee"],
+];
 export default {
   components: { pie },
   props: {
@@ -43,12 +53,7 @@ export default {
   },
   data() {
     return {
-      echarts: [
-        { label: "现状分析", iseyes: false, isshow: true },
-        { label: "三线分析", iseyes: false, isshow: true },
-        // { label: "土地利用规划分析", iseyes: false, isshow: false },
-        { label: "详细规划分析", iseyes: false, isshow: false },
-      ],
+      echarts: [],
       ruleForm: {
         name: "",
         xzmj: "",
@@ -58,8 +63,10 @@ export default {
     };
   },
   mounted() {
-    this.ruleForm.name = hgxfx.name;
-    this.ruleForm.xzmj = hgxfx.xzmj;
+    hgxfx.treeData.forEach((e) => {
+      if (e.label == "控制性详细规划") e.label = "详细规划分析";
+      this.echarts.push({ ...e, iseyes: false, isshow: true });
+    });
     this.setEchart1();
     this.setEchart2();
     // this.setEchart3();
@@ -68,13 +75,32 @@ export default {
   methods: {
     eyesChaneg(i) {
       this.echarts[i].iseyes = !this.echarts[i].iseyes;
-      let label = this.echarts[i].label;
-      let id = "scjg" + i;
-      if (this.dataSources[id]) {
-        this.dataSources[id].show = this.echarts[i].iseyes;
-      } else this.addPolygon(label, id);
+      if (i == 0 || i == 2) {
+        this.changeDataSources(this.echarts[i]);
+      } else {
+        let iseyes = this.echarts[i].iseyes;
+        this.echarts[i].children.forEach((child, ci) => {
+          this.changeDataSources({ ...child, iseyes }, colors[ci]);
+        });
+      }
       // emit("eyesChaneg");
     },
+    changeDataSources({ label, id, iseyes }, color) {
+      if (this.dataSources[id]) {
+        this.dataSources[id].show = iseyes;
+      } else this.addPolygon(label, id, color);
+    },
+    echartClick(name, iseyes) {
+      if (this.echarts[1].iseyes) {
+        let click = this.echarts[1].children.filter((c) => c.label == name);
+        if (click.length > 0)
+          this.changeDataSources({
+            label: click[0].label,
+            id: click[0].id,
+            iseyes,
+          });
+      }
+    },
     setEchart1() {
       this.$nextTick(() => {
         this.$refs.echartRef[0].setOptions(hgxfx.xzfxlist);
@@ -82,7 +108,7 @@ export default {
     },
     setEchart2() {
       this.$nextTick(() => {
-        this.$refs.echartRef[1].setOptions(hgxfx.sxfxlist);
+        this.$refs.echartRef[1].setOptions(hgxfx.sxfxlist, true);
       });
     },
     setEchart3() {
@@ -96,12 +122,25 @@ export default {
       });
     },
     // 加载GeoJSON数据
-    addPolygon(label, id) {
+    addPolygon(label, id, colors) {
       let _this = this;
+      console.log(colors);
       // viewer.entities.removeAll();
+      let scolor = colors
+        ? Cesium.Color.fromCssColorString(colors[0])
+        : Cesium.Color.BLUE;
+      let fcolor = colors
+        ? Cesium.Color.fromCssColorString(colors[1])
+        : Cesium.Color.WHITE;
+
       let polygon = Cesium.GeoJsonDataSource.load(
         `/static/data/ghss/${label}.geojson`,
-        { clampToGround: true }
+        {
+          clampToGround: true,
+          stroke: scolor,
+          fill: fcolor.withAlpha(0.3), //注意:颜色必须大写,即不能为blue
+          strokeWidth: 3,
+        }
       );
       polygon.then(function (dataSource) {
         // dataSource.id = id;
@@ -118,13 +157,10 @@ export default {
     },
 
     download() {
-      window.open(this.$props.scjgObj.task.fxbg);
+      window.open(this.$props.scjgObj.fxbg); //this.$props.scjgObj.task.fxbg
     },
     viewReport() {
-      window.open(
-        this.$props.scjgObj.task.fxbg.replace(".docx", ".pdf"),
-        "_blank"
-      );
+      window.open(this.$props.scjgObj.fxbg.replace(".docx", ".pdf"), "_blank");
     },
     reset() {
       this.dataSources = {};

+ 7 - 28
src/views/complianceAnalysis/index.vue

@@ -28,11 +28,15 @@
           name="scjg"
           :disabled="activeTabs != 'scjg'"
         >
-          <Scjg v-loading="loading" :scjgObj="scjgObj" ref="scjg"></Scjg
+          <Scjg v-loading="loading" :scjgObj="nowObj" ref="scjg"></Scjg
         ></el-tab-pane>
       </el-tabs>
     </div>
-    <RzDtails :rzBsm="rzBsm" :rzMc="rzMc" @updateParent="changeData"></RzDtails>
+    <RzDtails
+      :rzBsm="rzBsm"
+      :rzMc="nowObj.xmmc"
+      @updateParent="changeData"
+    ></RzDtails>
   </div>
 </template>
 
@@ -53,36 +57,11 @@ export default {
   },
   data() {
     return {
-      // dialogVisible: false,
-      // selectVisible: false,
-      // mbVisible: false,
-      // projectVisible: false,
-      // activeNames: [],
       loading: false,
       activeTabs: "hgxsc",
-      // rwBsm: "",
       // 日志
       rzBsm: "",
-      rzMc: "",
-      // form: {
-      //   ydxz_bsm: "",
-      //   ydmjbegin: "",
-      //   ydmjend: "",
-      //   kddk: "",
-      //   zdpd: "",
-      //   yxyz: "",
-      //   xzmj: 0,
-      //   sjy: "",
-      //   xzfw: "",
-      //   xmmc: "",
-      //   jsdw: "",
-      //   yjydlx: "",
-      //   fwlx: 0,
-      // },
-      scjgObj: {
-        task: { fxbg: "@/../static/data/ghss/合规性分析报告.docx" },
-      },
-      current:{}
+      nowObj: {}, //当前点击对象
       // rwObj: {},
       // tableData: [],
     };

+ 14 - 4
static/data/ghss/data.js

@@ -1,9 +1,11 @@
 
 var data = {
-    name: '合规性测试',
-    // 面积
-    xzmj: 62.1,
-    datalist: [{ xmmc: '合规性测试', xmlx: '合规性分析', jsdw: "建设单位", rwzt: 2, bsm: '/static/data/ghss/导入.geojson', fxbg: "@/../static/data/ghss/合规性分析报告.docx" }],
+    datalist: [{
+        xmmc: '合规性测试', xzmj: 62.1, xmlx: '合规性分析', jsdw: "建设单位", rwzt: 2,
+        bsm: '401148617e5c41bdbde176f7e45d791e',
+        geojson: '/static/data/ghss/导入.geojson',
+        fxbg: "@/../static/data/ghss/合规性分析报告.docx",
+    }],
     treeData: [
         { id: "XZFX", label: "现状分析" },
         {
@@ -18,6 +20,13 @@ var data = {
         // { id: "TDLYGH", label: "土地利用规划" },
         { id: "KZXXXGH", label: "控制性详细规划" },
     ],
+    //日志分析记录
+    rzfxlist: [
+        { rzsj: "2024-06-19 10:51:23", rzlr: "载入审查范围完成" },
+        { rzsj: "2024-06-19 10:51:18", rzlr: "开始进行合规性分析" },
+        { rzsj: "2024-06-19 10:51:18", rzlr: "检查要素" },
+        { rzsj: "2024-06-19 10:51:15", rzlr: "开始分析" },
+    ],
     // 现状分析
     xzfxlist: [
         { name: "耕地", value: 7.39 },
@@ -45,6 +54,7 @@ var data = {
         { name: "农村宅基地", value: 0 },
         { name: "农村道路", value: 0 },
     ],
+    //
     xxghlist: [
         { name: "耕地", value: 5.77 },
         { name: "园地", value: 4.95 },

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
static/data/ghss/城镇开发边界.geojson


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
static/data/ghss/永久基本农田.geojson


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
static/data/ghss/生态保护红线.geojson


binární
static/images/overview/stxf_echart_tdzz_legend.png


binární
static/images/overview/stxf_sugc_index_back.png


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů