Bladeren bron

Merge branch 'master' of http://124.221.234.135:13000/zklt-CD/orbit-ch-web

lhq 8 maanden geleden
bovenliggende
commit
00039fa886

+ 2 - 2
src/api/xqjyApi.js

@@ -23,7 +23,7 @@ export function confirmWindowInfo(data) {
 
 export function addPlanList(parentIds) {
     return request({
-        url: gateway.plan + '/api/demand/plan',
+        url: gateway.plan + '/api/demand/planAllTarget',
         method: 'post',
         data: parentIds
     })
@@ -39,4 +39,4 @@ export function submitPlan(data) {
         //     "Content-Type": "application/json"
         // }
     })
-}
+}

+ 630 - 599
src/components/cesiumViewer/cesiumViewer.vue

@@ -1,144 +1,175 @@
 <template>
-  <div id="cesiumContainer">
-  </div>
+	<div id="cesiumContainer">
+	</div>
 </template>
 
 <script>
 import cesiumEntityUtils from "@/utils/cesiumEntityUtils";
 import GlobleCountryLine from "../../assets/MapData/GlobleCountryLine.json";
+import {number} from "echarts/lib/export";
 
 let viewer;
 export default {
-  name: "cesiumViewer",
-  data() {
-    return {
-      globleLines: GlobleCountryLine,
-      locationLonLat: [],
-      rwxxztVis: null,
-      projectEntitys: {},
-      showAll: true
-    };
-  },
-  computed: {
-    mapPoint() {
-      return this.$store.state.xqglMapPointVisible
-    },
-    mapRectangle() {
-      return this.$store.state.xqglMapRectangleVisible
-    },
-    clickedTargetRow() {
-      return this.$store.state.xqglClickedTargetRowForCesiumSetView
-    },
-    currentRouteName() {
-      return this.$route.name;
-    }
-  },
-  watch: {
-    currentRouteName: {
-      handler(newValue) {
-        if (viewer) {
-          this.displayTimeLine(newValue === 'rwjsPage' && this.rwxxztVis);
-          return;
-        }
-        const t = setInterval(() => {
-          if (viewer) {
-            this.displayTimeLine(newValue === 'rwjsPage' && this.rwxxztVis);
-            clearInterval(t);
-          }
-        }, 10);
-      },
-      immediate: true,
-    },
-    locationLonLat: {
-      deep: true,
-      handler(newval) {
-        this.$store.dispatch("xqglMapPointLonLat", newval)
-      }
-    },
-    mapPoint(newPoint) {
-      // this.moveEntities(this.thisviewer);
-      this.moveMapLeftEventMonitor(window.viewer);
-      console.log("地图上得到点击,地图点选的信息:", newPoint);
-      this.mapClickPointAdd(window.viewer)
-    },
-    mapRectangle(newRec) {
-      // this.moveEntities(this.thisviewer);
-      this.moveMapLeftEventMonitor(window.viewer)
-      console.log("地图上得到点击,地图框选的信息:", newRec);
-      this.mapDrawRectangle(window.viewer)
-    },
-    clickedTargetRow(newClickedRow) {
-      //测试点位添加
-      const viewer = window.viewer;
-      cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
-      cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
-      let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-      newClickedRow.forEach((item, index) => {
-        let lon = null;
-        let lat = null;
-        if (item.pointDTOList.length === 1) {
-          lon = item.pointDTOList[0].lng;
-          lat = item.pointDTOList[0].lat;
-        }
-        // cesiumEntityUtils.controlLayer(viewer, "xqgl", false)
-        if (datasource) {
-          let position = Cesium.Cartesian3.fromDegrees(lon, lat);
-          datasource.entities.add({
-            id: 'target' + index,
-            position: position,
-            billboard: {
-              image: './static/icon/target_red.svg',
-              width: 16,
-              height: 16
-            }
-          });
-        }
-      })
-      return
-      // ----------------------------------------------
-      let lon = null;
-      let lat = null;
-      if (newClickedRow.pointDTOList.length === 1) {
-        lon = newClickedRow.pointDTOList[0].lng;
-        lat = newClickedRow.pointDTOList[0].lat;
-        this.addClickTargetPoint(lon, lat, true);
-      }
-      if (newClickedRow.pointDTOList.length === 4) {
-        // lon = (newClickedRow.pointDTOList[0].lng + newClickedRow.pointDTOList[3].lng) / 2;
-        // lat = (newClickedRow.pointDTOList[0].lat + newClickedRow.pointDTOList[3].lat) / 2;
-        let polygon = [];
-        let pointsSort = newClickedRow.pointDTOList.sort((a, b) => a.sequence - b.sequence);
-        pointsSort.forEach(item => {
-          polygon.push(item.lng);
-          polygon.push(item.lat);
-        });
-        let polygonObj = {
-          id: newClickedRow.targetId,
-          name: newClickedRow.targetName,
-          material: Cesium.Color.fromCssColorString('rgba(255,0,0,0.5)'),
-          polygon,
-        };
-        this.addClickTargetRectangle([polygonObj]);
-      }
-      // this.addClickTargetPoint(lon, lat, true)
-      // console.log("地图上得到目标列表被单击的行数据:", newClickedRow);
-    },
-  },
-  mounted() {
-    this.initViewer();
-    this.componentsEvents();
-  },
-  methods: {
-    initViewer() {
-      viewer = new Cesium.Viewer("cesiumContainer", {
-        // 连接地图服务
-        // imageryProvider: new Cesium.UrlTemplateImageryProvider({
-        //   // url: "http://192.168.1.188:9109/map/?z={z}&x={x}&y={y}",
-        //   url: window.mapUrl,
-        //   tilingScheme: new Cesium.WebMercatorTilingScheme(),
-        //   maximumLevel: 7,
-        //   show: false
-        // }),
+	name: "cesiumViewer",
+	data() {
+		return {
+			globleLines: GlobleCountryLine,
+			locationLonLat: [],
+			rwxxztVis: null,
+			projectEntitys: {},
+			showAll: true
+		};
+	},
+	computed: {
+		mapPoint() {
+			return this.$store.state.xqglMapPointVisible
+		},
+		mapRectangle() {
+			return this.$store.state.xqglMapRectangleVisible
+		},
+		clickedTargetRow() {
+			return this.$store.state.xqglClickedTargetRowForCesiumSetView
+		},
+		currentRouteName() {
+			return this.$route.name;
+		}
+	},
+	watch: {
+		currentRouteName: {
+			handler(newValue) {
+				if (viewer) {
+					this.displayTimeLine(newValue === 'rwjsPage' && this.rwxxztVis);
+					return;
+				}
+				const t = setInterval(() => {
+					if (viewer) {
+						this.displayTimeLine(newValue === 'rwjsPage' && this.rwxxztVis);
+						clearInterval(t);
+					}
+				}, 10);
+			},
+			immediate: true,
+		},
+		locationLonLat: {
+			deep: true,
+			handler(newval) {
+				this.$store.dispatch("xqglMapPointLonLat", newval)
+			}
+		},
+		mapPoint(newPoint) {
+			// this.moveEntities(this.thisviewer);
+			this.moveMapLeftEventMonitor(window.viewer);
+			console.log("地图上得到点击,地图点选的信息:", newPoint);
+			this.mapClickPointAdd(window.viewer)
+		},
+		mapRectangle(newRec) {
+			// this.moveEntities(this.thisviewer);
+			this.moveMapLeftEventMonitor(window.viewer)
+			console.log("地图上得到点击,地图框选的信息:", newRec);
+			this.mapDrawRectangle(window.viewer)
+		},
+		clickedTargetRow(newClickedRow) {
+			//测试点位添加
+			const viewer = window.viewer;
+			cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
+			cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
+			let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+			newClickedRow.forEach((item, index) => {
+				const type = Number(item.type);
+				if ([0, 1, 4].includes(type)) {
+					item.pointDTOList.forEach((d, j) => {
+						if (datasource) {
+							let position = Cesium.Cartesian3.fromDegrees(d.lng, d.lat);
+							datasource.entities.add({
+								id: 'xqgltarget' + index + '-' + j,
+								position: position,
+								billboard: {
+									image: './static/icon/target_red.svg',
+									width: 16,
+									height: 16
+								}
+							});
+						}
+					})
+				}
+				if (type == 2) {
+					let polygon = [];
+					let pointsSort = item.pointDTOList.sort((a, b) => a.sequence - b.sequence);
+					pointsSort.forEach(j => {
+						polygon.push(j.lng);
+						polygon.push(j.lat);
+					});
+					let polygonObj = {
+						id: 'xqgltarget' + index,
+						// name: newClickedRow.targetName,
+						material: Cesium.Color.fromCssColorString('rgba(255,0,0,0.5)'),
+						polygon,
+					};
+					cesiumEntityUtils.addCustomPolygons(viewer, "xqgl", [polygonObj]);
+				} else {
+					let line = [];
+					item.pointDTOList.forEach(d => {
+						line.push(d.lng);
+						line.push(d.lat);
+					})
+					if (datasource) {
+						datasource.entities.add({
+							id: 'xqgltarget' + index,
+							polyline: {
+								positions: Cesium.Cartesian3.fromDegreesArray(line),
+								width: 5,
+								material: Cesium.Color.RED,
+								clampToGround: true,
+							},
+						});
+					}
+				}
+			})
+			return
+			// ----------------------------------------------
+			let lon = null;
+			let lat = null;
+			if (newClickedRow.pointDTOList.length === 1) {
+				lon = newClickedRow.pointDTOList[0].lng;
+				lat = newClickedRow.pointDTOList[0].lat;
+				this.addClickTargetPoint(lon, lat, true);
+			}
+			if (newClickedRow.pointDTOList.length === 4) {
+				// lon = (newClickedRow.pointDTOList[0].lng + newClickedRow.pointDTOList[3].lng) / 2;
+				// lat = (newClickedRow.pointDTOList[0].lat + newClickedRow.pointDTOList[3].lat) / 2;
+				let polygon = [];
+				let pointsSort = newClickedRow.pointDTOList.sort((a, b) => a.sequence - b.sequence);
+				pointsSort.forEach(item => {
+					polygon.push(item.lng);
+					polygon.push(item.lat);
+				});
+				let polygonObj = {
+					id: newClickedRow.targetId,
+					name: newClickedRow.targetName,
+					material: Cesium.Color.fromCssColorString('rgba(255,0,0,0.5)'),
+					polygon,
+				};
+				this.addClickTargetRectangle([polygonObj]);
+			}
+			// this.addClickTargetPoint(lon, lat, true)
+			// console.log("地图上得到目标列表被单击的行数据:", newClickedRow);
+		},
+	},
+	mounted() {
+		this.initViewer();
+		this.componentsEvents();
+	},
+	methods: {
+		initViewer() {
+			viewer = new Cesium.Viewer("cesiumContainer", {
+				// 连接地图服务
+				// imageryProvider: new Cesium.UrlTemplateImageryProvider({
+				//   // url: "http://192.168.1.188:9109/map/?z={z}&x={x}&y={y}",
+				//   url: window.mapUrl,
+				//   tilingScheme: new Cesium.WebMercatorTilingScheme(),
+				//   maximumLevel: 7,
+				//   show: false
+				// }),
 				imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
 					// url: window.mapUrl + ":9109/map/?z={z}&x={x}&y={y}",
 					url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
@@ -146,489 +177,489 @@ export default {
 					maximumLevel: 7,
 					show: false
 				}),
-        animation: true,//true
-        baseLayerPicker: false,
-        geocoder: false,
-        homeButton: false,
-        sceneModePicker: false,
-        timeline: true,//true
-        navigationHelpButton: false,
-        fullscreenButton: false
-      });
-      // viewer.dataSources.add(
-      //     Cesium.GeoJsonDataSource.load("MapData/GlobleCountryLine.json")
-      // )
-      viewer.clock.shouldAnimate = true;
-      viewer._cesiumWidget._creditContainer.style.display = "none";
-      viewer.scene.globe.enableLighting = true;
-      viewer.camera.setView({
-        destination: Cesium.Cartesian3.fromDegrees(115.48, 32.67, 40000000.0),
-        orientation: {
-          pitch: Cesium.Math.toRadians(-88)
-        }
-      });
-      cesiumEntityUtils.formatterDateToUTC8(viewer, true);
-      cesiumEntityUtils.polylineMaterial();
-      window.viewer = viewer
-      // this.addGlobleLine()
-      document.oncontextmenu = function () {
-        return false
-      }
+				animation: true,//true
+				baseLayerPicker: false,
+				geocoder: false,
+				homeButton: false,
+				sceneModePicker: false,
+				timeline: true,//true
+				navigationHelpButton: false,
+				fullscreenButton: false
+			});
+			// viewer.dataSources.add(
+			//     Cesium.GeoJsonDataSource.load("MapData/GlobleCountryLine.json")
+			// )
+			viewer.clock.shouldAnimate = true;
+			viewer._cesiumWidget._creditContainer.style.display = "none";
+			viewer.scene.globe.enableLighting = true;
+			viewer.camera.setView({
+				destination: Cesium.Cartesian3.fromDegrees(115.48, 32.67, 40000000.0),
+				orientation: {
+					pitch: Cesium.Math.toRadians(-88)
+				}
+			});
+			cesiumEntityUtils.formatterDateToUTC8(viewer, true);
+			cesiumEntityUtils.polylineMaterial();
+			window.viewer = viewer
+			// this.addGlobleLine()
+			document.oncontextmenu = function () {
+				return false
+			}
 
-      let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
-      let tempStore = this.$store
-      handler.setInputAction(function (click) {
-        tempStore.dispatch("xqglContentVisible", true)
-      }, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
-    },
-    componentsEvents() {
-      let self = this;
-      //需求解译窗口列表添加
-      this.$events.on("xqjy-addwindow", function (datas) {
-        self.addWindowsOrPointByXqjy(datas, "windows")
-      })
-      //需求解译窗口列表删除
-      this.$events.on("xqjy-deletewindow", function (datas) {
-        self.deleteWindowByXqjy(datas)
-      })
-      //需求解译目标任务点展示
-      this.$events.on("xqjy-target", function (data) {
-        cesiumEntityUtils.controlLayer(viewer, 'xqgl', false)
-        self.addWindowsOrPointByXqjy(data, "target")
-      });
-      //需求管理目标点添加
-      this.$events.on('xqgl-targetList', function (datas) {
-        //移除临时绘制图形
-        let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-        if (datasource) {
-          datasource.entities.removeById("selectTarget");
-        }
-        self.addTargetList("xqgl", datas)
-      })
-      this.$events.on('xqgl-cancelselect', function () {
-        //移除临时绘制图形
-        let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-        if (datasource) {
-          datasource.entities.removeById("selectTarget");
-        }
-      })
-      //专题切换通知
-      this.$events.on("topic-switch", function (data) {
-        if (!self.showAll)
-          return
-        const viewer = window.viewer;
-        cesiumEntityUtils.controlLayer(viewer, data.from, false)
-        cesiumEntityUtils.controlLayer(viewer, data.to, true)
-      })
-      this.$events.on("rwjs-hideall", function () {
-        const viewer = window.viewer;
-        self.showAll = !self.showAll
-        cesiumEntityUtils.controlLayer(viewer, ['rwjs', 'rwjs-satelliteTracks', 'rwjs-stations', 'xqgl', 'jcfw', 'xqjy', 'xqch'], self.showAll)
-      })
-      this.$events.on("rwjs-targetshow", function (data) {
-        cesiumEntityUtils.controlLayer(viewer, 'rwjs', data)
-      })
-      //任务监视地面站添加
-      this.$events.on("rwjs-addStation", data => {
-        cesiumEntityUtils.addCustomLayer(viewer, "rwjs-stations");
-        cesiumEntityUtils.addModels(viewer, "rwjs-stations", data);
-      })
-      //任务监视目标点添加
-      this.$events.on('rwjs-targetList', function (datas) {
-        // console.log("@datas", datas);
-        //移除临时绘制图形
-        // viewer.entities.remove(viewer.entities.getById('selectTarget'));
-        self.addTargetList("rwjs", datas);
-      })
-      this.$events.on('rwjs-wxgcxxStripe', function (datas) {
-        // debugger
-        self.addTargetList("rwjs", datas, true);
-      })
-      this.$events.on("rwjs-wxyxzt", (datas) => {
-        self.addTracks("rwjs-satelliteTracks", datas);
-      })
-      this.$events.on("sys-initView", (type) => {
-        this.initView(viewer, type);
-      })
-      this.$events.on("sys-change2D3D", () => {
-        self.changeViewerModel();
-      })
-      this.$events.on("sys-showTimeLine", (show) => {
-        self.rwxxztVis = show;
-        self.displayTimeLine(show);
-      })
-      this.$events.on("sys-showTrack", (type) => {
-        this.initView(viewer, type);
-        this.isTrackShow(undefined, type);
-      })
+			let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+			let tempStore = this.$store
+			handler.setInputAction(function (click) {
+				tempStore.dispatch("xqglContentVisible", true)
+			}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
+		},
+		componentsEvents() {
+			let self = this;
+			//需求解译窗口列表添加
+			this.$events.on("xqjy-addwindow", function (datas) {
+				self.addWindowsOrPointByXqjy(datas, "windows")
+			})
+			//需求解译窗口列表删除
+			this.$events.on("xqjy-deletewindow", function (datas) {
+				self.deleteWindowByXqjy(datas)
+			})
+			//需求解译目标任务点展示
+			this.$events.on("xqjy-target", function (data) {
+				cesiumEntityUtils.controlLayer(viewer, 'xqgl', false)
+				self.addWindowsOrPointByXqjy(data, "target")
+			});
+			//需求管理目标点添加
+			this.$events.on('xqgl-targetList', function (datas) {
+				//移除临时绘制图形
+				let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+				if (datasource) {
+					datasource.entities.removeById("selectTarget");
+				}
+				self.addTargetList("xqgl", datas)
+			})
+			this.$events.on('xqgl-cancelselect', function () {
+				//移除临时绘制图形
+				let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+				if (datasource) {
+					datasource.entities.removeById("selectTarget");
+				}
+			})
+			//专题切换通知
+			this.$events.on("topic-switch", function (data) {
+				if (!self.showAll)
+					return
+				const viewer = window.viewer;
+				cesiumEntityUtils.controlLayer(viewer, data.from, false)
+				cesiumEntityUtils.controlLayer(viewer, data.to, true)
+			})
+			this.$events.on("rwjs-hideall", function () {
+				const viewer = window.viewer;
+				self.showAll = !self.showAll
+				cesiumEntityUtils.controlLayer(viewer, ['rwjs', 'rwjs-satelliteTracks', 'rwjs-stations', 'xqgl', 'jcfw', 'xqjy', 'xqch'], self.showAll)
+			})
+			this.$events.on("rwjs-targetshow", function (data) {
+				cesiumEntityUtils.controlLayer(viewer, 'rwjs', data)
+			})
+			//任务监视地面站添加
+			this.$events.on("rwjs-addStation", data => {
+				cesiumEntityUtils.addCustomLayer(viewer, "rwjs-stations");
+				cesiumEntityUtils.addModels(viewer, "rwjs-stations", data);
+			})
+			//任务监视目标点添加
+			this.$events.on('rwjs-targetList', function (datas) {
+				// console.log("@datas", datas);
+				//移除临时绘制图形
+				// viewer.entities.remove(viewer.entities.getById('selectTarget'));
+				self.addTargetList("rwjs", datas);
+			})
+			this.$events.on('rwjs-wxgcxxStripe', function (datas) {
+				// debugger
+				self.addTargetList("rwjs", datas, true);
+			})
+			this.$events.on("rwjs-wxyxzt", (datas) => {
+				self.addTracks("rwjs-satelliteTracks", datas);
+			})
+			this.$events.on("sys-initView", (type) => {
+				this.initView(viewer, type);
+			})
+			this.$events.on("sys-change2D3D", () => {
+				self.changeViewerModel();
+			})
+			this.$events.on("sys-showTimeLine", (show) => {
+				self.rwxxztVis = show;
+				self.displayTimeLine(show);
+			})
+			this.$events.on("sys-showTrack", (type) => {
+				this.initView(viewer, type);
+				this.isTrackShow(undefined, type);
+			})
 
-    },
-    changeViewerModel() {
-      viewer.scene.mode == Cesium.SceneMode.SCENE3D ? (viewer.scene.mode = Cesium.SceneMode.SCENE2D) : (viewer.scene.mode = Cesium.SceneMode.SCENE3D);
-    },
-    displayTimeLine(show) {
-      if (viewer) {
-        if (show) {
-          viewer.animation.container.style.display = "block"
-          viewer.timeline.container.style.display = "block"
-          viewer.animation.container.style.zIndex = 9
-          viewer.timeline.container.style.zIndex = 9
-        } else {
-          viewer.animation.container.style.display = "none"
-          viewer.timeline.container.style.display = "none"
-        }
-      }
-    },
-    initView(viewer, type = "all") {
-      const heights = {
-        "lowTrack": 20000000,
-        "highTrack": 25000000,
-        "all": 40000000,
-      }
-      viewer.camera.flyTo({
-        destination: Cesium.Cartesian3.fromDegrees(115.48, 32.67, heights[type]),
-        orientation: {
-          pitch: Cesium.Math.toRadians(-88)
-        }
-      });
-    },
-    moveEntities(viewer) {
-      viewer.entities.removeAll();
-    },
-    moveMapLeftEventMonitor(viewer) {
-      viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
-    },
-    mapClickPointAdd(viewer) {
-      let self = this;
-      let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
-      handler.setInputAction(function (event) {
-        cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
-        let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-        let clickPosition = viewer.scene.camera.pickEllipsoid(event.position);
-        let radiansPos = Cesium.Cartographic.fromCartesian(clickPosition);
-        cesiumEntityUtils.flyToTargetPoint(viewer, Cesium.Math.toDegrees(radiansPos.longitude), Cesium.Math.toDegrees(radiansPos.latitude), 20000000);
-        if (datasource) {
-          datasource.entities.removeById("selectTarget");
-          datasource.entities.add({
-            id: 'selectTarget',
-            position: clickPosition,
-            point: {
-              color: Cesium.Color.YELLOW,
-              pixelSize: 10
-            }
-          })
-        }
-        self.locationLonLat = [];
-        self.locationLonLat.push(Cesium.Math.toDegrees(radiansPos.longitude));
-        self.locationLonLat.push(Cesium.Math.toDegrees(radiansPos.latitude));
-      }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
-    },
-    mapDrawRectangle(viewer) {
-      if (viewer) {
-        const self = this;
-        let clickPoint = [];
-        let sefstore = this.$store
-        // 鼠标左键绘制
-        let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
-        handler.setInputAction(function (movement) {
-          const earthPosition = viewer.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid); //当前世界坐标笛卡尔积
-          if (Cesium.defined(earthPosition)) {
-            // 判断现在是第几个点
-            if (clickPoint.length === 0) { //还没有点,添加第一个点
-              clickPoint.push(earthPosition)
-            } else {
-              //绘制矩形
-              clickPoint.push(earthPosition)
-              // 绘制矩形
-              const rectangleHand = Cesium.Rectangle.fromCartesianArray(clickPoint)
-              cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
-              let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-              if (datasource) {
-                datasource.entities.removeById("selectTarget");
-                datasource.entities.add({
-                  id: 'selectTarget',
-                  name: 'drawRectangle',
-                  rectangle: {
-                    coordinates: rectangleHand,
-                    height: 0,
-                    material: Cesium.Color.RED.withAlpha(0.4),
-                    outline: true,
-                    outlineColor: Cesium.Color.BLUE.withAlpha(0.5),
-                  },
-                });
-              }
+		},
+		changeViewerModel() {
+			viewer.scene.mode == Cesium.SceneMode.SCENE3D ? (viewer.scene.mode = Cesium.SceneMode.SCENE2D) : (viewer.scene.mode = Cesium.SceneMode.SCENE3D);
+		},
+		displayTimeLine(show) {
+			if (viewer) {
+				if (show) {
+					viewer.animation.container.style.display = "block"
+					viewer.timeline.container.style.display = "block"
+					viewer.animation.container.style.zIndex = 9
+					viewer.timeline.container.style.zIndex = 9
+				} else {
+					viewer.animation.container.style.display = "none"
+					viewer.timeline.container.style.display = "none"
+				}
+			}
+		},
+		initView(viewer, type = "all") {
+			const heights = {
+				"lowTrack": 20000000,
+				"highTrack": 25000000,
+				"all": 40000000,
+			}
+			viewer.camera.flyTo({
+				destination: Cesium.Cartesian3.fromDegrees(115.48, 32.67, heights[type]),
+				orientation: {
+					pitch: Cesium.Math.toRadians(-88)
+				}
+			});
+		},
+		moveEntities(viewer) {
+			viewer.entities.removeAll();
+		},
+		moveMapLeftEventMonitor(viewer) {
+			viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+		},
+		mapClickPointAdd(viewer) {
+			let self = this;
+			let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+			handler.setInputAction(function (event) {
+				cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
+				let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+				let clickPosition = viewer.scene.camera.pickEllipsoid(event.position);
+				let radiansPos = Cesium.Cartographic.fromCartesian(clickPosition);
+				cesiumEntityUtils.flyToTargetPoint(viewer, Cesium.Math.toDegrees(radiansPos.longitude), Cesium.Math.toDegrees(radiansPos.latitude), 20000000);
+				if (datasource) {
+					datasource.entities.removeById("selectTarget");
+					datasource.entities.add({
+						id: 'selectTarget',
+						position: clickPosition,
+						point: {
+							color: Cesium.Color.YELLOW,
+							pixelSize: 10
+						}
+					})
+				}
+				self.locationLonLat = [];
+				self.locationLonLat.push(Cesium.Math.toDegrees(radiansPos.longitude));
+				self.locationLonLat.push(Cesium.Math.toDegrees(radiansPos.latitude));
+			}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+		},
+		mapDrawRectangle(viewer) {
+			if (viewer) {
+				const self = this;
+				let clickPoint = [];
+				let sefstore = this.$store
+				// 鼠标左键绘制
+				let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+				handler.setInputAction(function (movement) {
+					const earthPosition = viewer.camera.pickEllipsoid(movement.position, viewer.scene.globe.ellipsoid); //当前世界坐标笛卡尔积
+					if (Cesium.defined(earthPosition)) {
+						// 判断现在是第几个点
+						if (clickPoint.length === 0) { //还没有点,添加第一个点
+							clickPoint.push(earthPosition)
+						} else {
+							//绘制矩形
+							clickPoint.push(earthPosition)
+							// 绘制矩形
+							const rectangleHand = Cesium.Rectangle.fromCartesianArray(clickPoint)
+							cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
+							let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+							if (datasource) {
+								datasource.entities.removeById("selectTarget");
+								datasource.entities.add({
+									id: 'selectTarget',
+									name: 'drawRectangle',
+									rectangle: {
+										coordinates: rectangleHand,
+										height: 0,
+										material: Cesium.Color.RED.withAlpha(0.4),
+										outline: true,
+										outlineColor: Cesium.Color.BLUE.withAlpha(0.5),
+									},
+								});
+							}
 
 
-              const northwest = Cesium.Rectangle.northwest(rectangleHand); //西北角弧度坐标(左上)
-              const southwest = Cesium.Rectangle.southwest(rectangleHand); //西南角弧度坐标(左下)
-              const northeast = Cesium.Rectangle.northeast(rectangleHand); //东北角弧度坐标(右上)
-              const southeast = Cesium.Rectangle.southeast(rectangleHand); //东南角弧度坐标(右下)
+							const northwest = Cesium.Rectangle.northwest(rectangleHand); //西北角弧度坐标(左上)
+							const southwest = Cesium.Rectangle.southwest(rectangleHand); //西南角弧度坐标(左下)
+							const northeast = Cesium.Rectangle.northeast(rectangleHand); //东北角弧度坐标(右上)
+							const southeast = Cesium.Rectangle.southeast(rectangleHand); //东南角弧度坐标(右下)
 
-              // 转换为经纬度
-              const leftTop = [Cesium.Math.toDegrees(northwest.longitude), Cesium.Math.toDegrees(northwest.latitude)]; //左上角经度
-              const leftBottom = [Cesium.Math.toDegrees(southwest.longitude), Cesium.Math.toDegrees(southwest.latitude)]; //左下角经度
-              const rightTop = [Cesium.Math.toDegrees(northeast.longitude), Cesium.Math.toDegrees(northeast.latitude)]; //右上角经度
-              const rightBottom = [Cesium.Math.toDegrees(southeast.longitude), Cesium.Math.toDegrees(southeast.latitude)]; //右下角经度
-              cesiumEntityUtils.flyToTargetPoint(viewer, (leftTop[0] + rightBottom[0]) / 2, (leftTop[1] + rightBottom[1]) / 2, 20000000);
-              const data = {
-                leftTop: leftTop,
-                leftBottom: leftBottom,
-                rightTop: rightTop,
-                rightBottom: rightBottom,
-              }
-              const dataarr = [leftTop, rightTop, rightBottom, leftBottom]
-              sefstore.dispatch('xqglMapRectangleLonLats', dataarr)
-              // console.log("矩形四角坐标:",data);
-              console.log("矩形四角坐标arr:", sefstore.state.xqglMapRectangleLonLats);
-              clickPoint = []; //清空
-            }
-          }
-        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
-      }
-    },
-    addGlobleLine() {
-      const features = this.globleLines.geometries;
-      const instances = [];
-      for (let i = 0; i < features.length; i++) {
-        const polygonArr = features[i].coordinates;
-        const polygon = new Cesium.PolylineGeometry({
-          positions: Cesium.Cartesian3.fromDegreesArray(polygonArr.toString().split(',')),
-          width: 3,
-          vertexFormat: Cesium.PolylineColorAppearance.VERTEX_FORMAT
-        })
-        instances.push(new Cesium.GeometryInstance({
-          geometry: polygon,
-          attributes: {
-            color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color.fromCssColorString("rgba(217,212,85,1)"))
-          }
-        }))
-      }
-      const primitive = new Cesium.Primitive({
-        geometryInstances: instances,
-        appearance: new Cesium.PolylineColorAppearance(),
-        asynchronous: false
-      })
-      window.viewer.scene.primitives.add(primitive)
-    },
-    addClickTargetRectangle(polygons) {
-      const viewer = window.viewer;
-      cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
-      cesiumEntityUtils.addCustomLayer(viewer, "xqgl");
-      // cesiumEntityUtils.controlLayer(viewer, "xqgl", true)
-      cesiumEntityUtils.addCustomPolygons(viewer, "xqgl", polygons);
-      cesiumEntityUtils.flyToTargetPolygon(viewer, polygons[0].polygon, 8000000);
-    },
-    addClickTargetPoint(lon, lat, isLocation) {
-      const viewer = window.viewer;
-      cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
-      cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
-      // cesiumEntityUtils.controlLayer(viewer, "xqgl", false)
-      let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
-      if (datasource) {
-        datasource.entities.removeById("target");
-        let position = Cesium.Cartesian3.fromDegrees(lon, lat);
-        datasource.entities.add({
-          id: 'target',
-          position: position,
-          billboard: {
-            image: './static/icon/target_red.svg',
-            width: 16,
-            height: 16
-          }
-        });
-        if (isLocation) {
-          cesiumEntityUtils.flyToTargetPoint(viewer, lon, lat, 20000000);
-        }
-      }
-    },
+							// 转换为经纬度
+							const leftTop = [Cesium.Math.toDegrees(northwest.longitude), Cesium.Math.toDegrees(northwest.latitude)]; //左上角经度
+							const leftBottom = [Cesium.Math.toDegrees(southwest.longitude), Cesium.Math.toDegrees(southwest.latitude)]; //左下角经度
+							const rightTop = [Cesium.Math.toDegrees(northeast.longitude), Cesium.Math.toDegrees(northeast.latitude)]; //右上角经度
+							const rightBottom = [Cesium.Math.toDegrees(southeast.longitude), Cesium.Math.toDegrees(southeast.latitude)]; //右下角经度
+							cesiumEntityUtils.flyToTargetPoint(viewer, (leftTop[0] + rightBottom[0]) / 2, (leftTop[1] + rightBottom[1]) / 2, 20000000);
+							const data = {
+								leftTop: leftTop,
+								leftBottom: leftBottom,
+								rightTop: rightTop,
+								rightBottom: rightBottom,
+							}
+							const dataarr = [leftTop, rightTop, rightBottom, leftBottom]
+							sefstore.dispatch('xqglMapRectangleLonLats', dataarr)
+							// console.log("矩形四角坐标:",data);
+							console.log("矩形四角坐标arr:", sefstore.state.xqglMapRectangleLonLats);
+							clickPoint = []; //清空
+						}
+					}
+				}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+			}
+		},
+		addGlobleLine() {
+			const features = this.globleLines.geometries;
+			const instances = [];
+			for (let i = 0; i < features.length; i++) {
+				const polygonArr = features[i].coordinates;
+				const polygon = new Cesium.PolylineGeometry({
+					positions: Cesium.Cartesian3.fromDegreesArray(polygonArr.toString().split(',')),
+					width: 3,
+					vertexFormat: Cesium.PolylineColorAppearance.VERTEX_FORMAT
+				})
+				instances.push(new Cesium.GeometryInstance({
+					geometry: polygon,
+					attributes: {
+						color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color.fromCssColorString("rgba(217,212,85,1)"))
+					}
+				}))
+			}
+			const primitive = new Cesium.Primitive({
+				geometryInstances: instances,
+				appearance: new Cesium.PolylineColorAppearance(),
+				asynchronous: false
+			})
+			window.viewer.scene.primitives.add(primitive)
+		},
+		addClickTargetRectangle(polygons) {
+			const viewer = window.viewer;
+			cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
+			cesiumEntityUtils.addCustomLayer(viewer, "xqgl");
+			// cesiumEntityUtils.controlLayer(viewer, "xqgl", true)
+			cesiumEntityUtils.addCustomPolygons(viewer, "xqgl", polygons);
+			cesiumEntityUtils.flyToTargetPolygon(viewer, polygons[0].polygon, 8000000);
+		},
+		addClickTargetPoint(lon, lat, isLocation) {
+			const viewer = window.viewer;
+			cesiumEntityUtils.removeCustomLayer(viewer, "xqgl");
+			cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
+			// cesiumEntityUtils.controlLayer(viewer, "xqgl", false)
+			let datasource = cesiumEntityUtils.getCustomLayer(viewer, "xqgl");
+			if (datasource) {
+				datasource.entities.removeById("target");
+				let position = Cesium.Cartesian3.fromDegrees(lon, lat);
+				datasource.entities.add({
+					id: 'target',
+					position: position,
+					billboard: {
+						image: './static/icon/target_red.svg',
+						width: 16,
+						height: 16
+					}
+				});
+				if (isLocation) {
+					cesiumEntityUtils.flyToTargetPoint(viewer, lon, lat, 20000000);
+				}
+			}
+		},
 
-    addWindowsOrPointByXqjy(datas, type) {
-      const viewer = window.viewer;
-      // cesiumEntityUtils.controlAllLayer(viewer, false);
-      // if (type === 'target') {
-      //   cesiumEntityUtils.removeCustomLayer(viewer, 'xqjy')
-      // }
-      cesiumEntityUtils.addCustomLayer(viewer, "xqjy")
-      // cesiumEntityUtils.controlLayer
-      if (type === 'target') {
-        const targetType = datas.type;
-        const target = datas.data;
-        if (target === null)
-          return;
-        if (targetType === 'point') {
-          cesiumEntityUtils.addCustomPoints(viewer, "xqjy", target);
-          cesiumEntityUtils.flyToTargetPoint(viewer, target.lon, target.lat, 8000000)
-        } else {
-          cesiumEntityUtils.addCustomPolygons(viewer, "xqjy", target);
-          cesiumEntityUtils.flyToTargetPolygon(viewer, target.polygon, 8000000)
-        }
-      } else {
-        if (datas.length == 0) {
-          return
-        }
-        cesiumEntityUtils.addCustomPolygons(viewer, "xqjy", datas);
-        // let polygon = [];
-        // datas.forEach(data => {
-        //   polygon = polygon.concat(data.polygon)
-        // });
-        // cesiumEntityUtils.flyToTargetPolygon(viewer, polygon, 20000000)
-      }
-    },
-    deleteWindowByXqjy(datas) {
-      const viewer = window.viewer;
-      cesiumEntityUtils.removeCustomLayerEntitysById(viewer, "xqjy", datas)
-    },
-    addTargetList(dsId, datas, isStripe = false) {
-      // debugger
-      const viewer = window.viewer;
-      if (datas.length == 0) {
-        // cesiumEntityUtils.removeCustomLayer(viewer, "xqgl")
-        cesiumEntityUtils.removeCustomLayer(viewer, dsId)
-        return
-      }
-      // cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
-      cesiumEntityUtils.addCustomLayer(viewer, dsId)
-      let targetPoints = [];
-      let targetPoylgons = []
-      datas.forEach(data => {
-        const id = data.id;
-        const name = data.targetName
-        let points = data.pointDTOList;
-        if (points.length == 1) {
-          targetPoints.push({
-            id: id,
-            name: name,
-            lon: points[0].lng,
-            lat: points[0].lat,
-            size: 10,
-            style: {
-              color: 'red',
-            },
-            color: Cesium.Color.fromCssColorString('#f10808')
-          })
-          cesiumEntityUtils.addCustomPoints(viewer, dsId, targetPoints)
-          dsId === 'rwjs' && cesiumEntityUtils.flyToTargetPoint(viewer, points[0].lng, points[0].lat, 8000000)
-        }
-        if (points.length > 1) {
-          let polygon = [];
-          points.forEach(point => {
-            polygon.push(point.lng || point.longitude)
-            polygon.push(point.lat || point.latitude)
-          })
-          targetPoylgons.push({
-            id: id,
-            name: name,
-            isRhumb: true,//矩形按照贴经纬线形状绘制
-            polygon: polygon,
-            height: 10,
-            style: {
-              color: 'red',
-              size: 5
-            },
-            material: isStripe ? Cesium.Color.fromCssColorString('rgba(237,245,11,0.5)') : Cesium.Color.fromCssColorString('#f10808'),
-          })
-          cesiumEntityUtils.addCustomPolygons(viewer, dsId, targetPoylgons)
-          dsId === 'rwjs' && cesiumEntityUtils.flyToTargetPolygon(viewer, polygon, 8000000)
-        }
-      })
+		addWindowsOrPointByXqjy(datas, type) {
+			const viewer = window.viewer;
+			// cesiumEntityUtils.controlAllLayer(viewer, false);
+			// if (type === 'target') {
+			//   cesiumEntityUtils.removeCustomLayer(viewer, 'xqjy')
+			// }
+			cesiumEntityUtils.addCustomLayer(viewer, "xqjy")
+			// cesiumEntityUtils.controlLayer
+			if (type === 'target') {
+				const targetType = datas.type;
+				const target = datas.data;
+				if (target === null)
+					return;
+				if (targetType === 'point') {
+					cesiumEntityUtils.addCustomPoints(viewer, "xqjy", target);
+					cesiumEntityUtils.flyToTargetPoint(viewer, target.lon, target.lat, 8000000)
+				} else {
+					cesiumEntityUtils.addCustomPolygons(viewer, "xqjy", target);
+					cesiumEntityUtils.flyToTargetPolygon(viewer, target.polygon, 8000000)
+				}
+			} else {
+				if (datas.length == 0) {
+					return
+				}
+				cesiumEntityUtils.addCustomPolygons(viewer, "xqjy", datas);
+				// let polygon = [];
+				// datas.forEach(data => {
+				//   polygon = polygon.concat(data.polygon)
+				// });
+				// cesiumEntityUtils.flyToTargetPolygon(viewer, polygon, 20000000)
+			}
+		},
+		deleteWindowByXqjy(datas) {
+			const viewer = window.viewer;
+			cesiumEntityUtils.removeCustomLayerEntitysById(viewer, "xqjy", datas)
+		},
+		addTargetList(dsId, datas, isStripe = false) {
+			// debugger
+			const viewer = window.viewer;
+			if (datas.length == 0) {
+				// cesiumEntityUtils.removeCustomLayer(viewer, "xqgl")
+				cesiumEntityUtils.removeCustomLayer(viewer, dsId)
+				return
+			}
+			// cesiumEntityUtils.addCustomLayer(viewer, "xqgl")
+			cesiumEntityUtils.addCustomLayer(viewer, dsId)
+			let targetPoints = [];
+			let targetPoylgons = []
+			datas.forEach(data => {
+				const id = data.id;
+				const name = data.targetName
+				let points = data.pointDTOList;
+				if (points.length == 1) {
+					targetPoints.push({
+						id: id,
+						name: name,
+						lon: points[0].lng,
+						lat: points[0].lat,
+						size: 10,
+						style: {
+							color: 'red',
+						},
+						color: Cesium.Color.fromCssColorString('#f10808')
+					})
+					cesiumEntityUtils.addCustomPoints(viewer, dsId, targetPoints)
+					dsId === 'rwjs' && cesiumEntityUtils.flyToTargetPoint(viewer, points[0].lng, points[0].lat, 8000000)
+				}
+				if (points.length > 1) {
+					let polygon = [];
+					points.forEach(point => {
+						polygon.push(point.lng || point.longitude)
+						polygon.push(point.lat || point.latitude)
+					})
+					targetPoylgons.push({
+						id: id,
+						name: name,
+						isRhumb: true,//矩形按照贴经纬线形状绘制
+						polygon: polygon,
+						height: 10,
+						style: {
+							color: 'red',
+							size: 5
+						},
+						material: isStripe ? Cesium.Color.fromCssColorString('rgba(237,245,11,0.5)') : Cesium.Color.fromCssColorString('#f10808'),
+					})
+					cesiumEntityUtils.addCustomPolygons(viewer, dsId, targetPoylgons)
+					dsId === 'rwjs' && cesiumEntityUtils.flyToTargetPolygon(viewer, polygon, 8000000)
+				}
+			})
 
-    },
-    addTracks(dsId, tracks) {
-      const {trackData, startTime, endTime, satelliteList, tasks} = tracks
-      const viewer = window.viewer;
-      cesiumEntityUtils.createCZML(viewer, dsId, startTime, endTime, trackData);
-      //绘制投影
-      let self = this;
-      let _viewer = viewer;
-      let timer = setInterval(() => {
-        if (window.trackShow) {
-          self.addSatelliteProjection(satelliteList, tasks);
-          // this.setCurrentTime(_viewer, "2022-04-09T15:06:10")
-          clearInterval(timer);
-          window.trackShow = false;
-        }
-      }, 500);
-    },
-    //添加卫星投影
-    addSatelliteProjection(satelliteList, tasks) {
-      const viewer = window.viewer;
-      satelliteList.forEach(item => {
-        const wxSource = viewer.dataSources.getByName(item.wxSourceId)[0];
-        if (!wxSource) return;
-        const itemEntity = cesiumEntityUtils.getEntityByIdDS(wxSource, item.name);
-        if (itemEntity) {
-          this.projectEntitys[item.name] = cesiumEntityUtils.drawProjection(viewer, 1, itemEntity, false, item);
-        }
-      });
+		},
+		addTracks(dsId, tracks) {
+			const {trackData, startTime, endTime, satelliteList, tasks} = tracks
+			const viewer = window.viewer;
+			cesiumEntityUtils.createCZML(viewer, dsId, startTime, endTime, trackData);
+			//绘制投影
+			let self = this;
+			let _viewer = viewer;
+			let timer = setInterval(() => {
+				if (window.trackShow) {
+					self.addSatelliteProjection(satelliteList, tasks);
+					// this.setCurrentTime(_viewer, "2022-04-09T15:06:10")
+					clearInterval(timer);
+					window.trackShow = false;
+				}
+			}, 500);
+		},
+		//添加卫星投影
+		addSatelliteProjection(satelliteList, tasks) {
+			const viewer = window.viewer;
+			satelliteList.forEach(item => {
+				const wxSource = viewer.dataSources.getByName(item.wxSourceId)[0];
+				if (!wxSource) return;
+				const itemEntity = cesiumEntityUtils.getEntityByIdDS(wxSource, item.name);
+				if (itemEntity) {
+					this.projectEntitys[item.name] = cesiumEntityUtils.drawProjection(viewer, 1, itemEntity, false, item);
+				}
+			});
 
-      this.taskRun(tasks);
-    },
-    //任务执行监听
-    taskRun(tasks) {
-      const stationDsId = "rwjs-stations"
-      const satelliteDsId = "rwjs-satelliteTracks"
-      const lineId = "rwjs-taskSimulationLine"
+			this.taskRun(tasks);
+		},
+		//任务执行监听
+		taskRun(tasks) {
+			const stationDsId = "rwjs-stations"
+			const satelliteDsId = "rwjs-satelliteTracks"
+			const lineId = "rwjs-taskSimulationLine"
 
-      tasks.cdTasks.forEach((taskItem, index) => {
-        let times = [];
-        times.push({
-          start: Cesium.JulianDate.fromDate(new Date(taskItem.startTime)),
-          stop: Cesium.JulianDate.fromDate(new Date(taskItem.endTime))
-        });
-        const station = cesiumEntityUtils.getEntityByIdDS(viewer.dataSources.getByName(stationDsId)[0], taskItem.stationCode);
-        const satellite = cesiumEntityUtils.getEntityByIdDS(viewer.dataSources.getByName(satelliteDsId)[0], taskItem.satelliteCode);
-        if (times.length > 0) {
-          const option = {
-            viewer: viewer,
-            dsId: satelliteDsId,
-            lineId: lineId + index,
-            satellite,
-            station,
-            times,
-            direction: taskItem.type, //可选 'SC' 和 'CK', 不传,默认为 'SC'
-          };
-          cesiumEntityUtils.addLineBetweenTwoEntity(option);
-        }
-      });
-      // 投影可见任务,相机开关机
-      // console.log("this.projectEntitys:", this.projectEntitys);
-      tasks.proTasks.forEach(proTask => {
-        proTask.startTime = this.timeToUTM(proTask.startTime)
-        proTask.endTime = this.timeToUTM(proTask.endTime)
-        cesiumEntityUtils.projectionVisible(viewer, this.projectEntitys[proTask.satelliteCode], proTask)
-      })
+			tasks.cdTasks.forEach((taskItem, index) => {
+				let times = [];
+				times.push({
+					start: Cesium.JulianDate.fromDate(new Date(taskItem.startTime)),
+					stop: Cesium.JulianDate.fromDate(new Date(taskItem.endTime))
+				});
+				const station = cesiumEntityUtils.getEntityByIdDS(viewer.dataSources.getByName(stationDsId)[0], taskItem.stationCode);
+				const satellite = cesiumEntityUtils.getEntityByIdDS(viewer.dataSources.getByName(satelliteDsId)[0], taskItem.satelliteCode);
+				if (times.length > 0) {
+					const option = {
+						viewer: viewer,
+						dsId: satelliteDsId,
+						lineId: lineId + index,
+						satellite,
+						station,
+						times,
+						direction: taskItem.type, //可选 'SC' 和 'CK', 不传,默认为 'SC'
+					};
+					cesiumEntityUtils.addLineBetweenTwoEntity(option);
+				}
+			});
+			// 投影可见任务,相机开关机
+			// console.log("this.projectEntitys:", this.projectEntitys);
+			tasks.proTasks.forEach(proTask => {
+				proTask.startTime = this.timeToUTM(proTask.startTime)
+				proTask.endTime = this.timeToUTM(proTask.endTime)
+				cesiumEntityUtils.projectionVisible(viewer, this.projectEntitys[proTask.satelliteCode], proTask)
+			})
 
-    },
-    timeToUTM(strTime) {
-      let d = this.$moment(strTime)
-      return d.subtract(8, 'h').format("YYYY-MM-DD HH:mm:ss")
-    },
-    isTrackShow(dsId = "rwjs-satelliteTracks", type = "all", show = true) {
-      // type 的可选项:lowTrack,highTrack,all
-      const tracksLayer = viewer.dataSources.getByName(dsId)[0];
-      if (!tracksLayer) {
-        return
-      }
-      tracksLayer.entities.values.forEach(et => {
-        if (et.description) {
-          const tempType = et.description.getValue();
-          if (type === 'all') {
-            et.show = true;
-          } else {
-            et.show = tempType === type;
-          }
-        }
-      });
-    },
+		},
+		timeToUTM(strTime) {
+			let d = this.$moment(strTime)
+			return d.subtract(8, 'h').format("YYYY-MM-DD HH:mm:ss")
+		},
+		isTrackShow(dsId = "rwjs-satelliteTracks", type = "all", show = true) {
+			// type 的可选项:lowTrack,highTrack,all
+			const tracksLayer = viewer.dataSources.getByName(dsId)[0];
+			if (!tracksLayer) {
+				return
+			}
+			tracksLayer.entities.values.forEach(et => {
+				if (et.description) {
+					const tempType = et.description.getValue();
+					if (type === 'all') {
+						et.show = true;
+					} else {
+						et.show = tempType === type;
+					}
+				}
+			});
+		},
 
-  },
+	},
 
 };
 </script>
 
 <style lang="scss" scoped>
 #cesiumContainer {
-  width: 100%;
-  height: 100%;
+	width: 100%;
+	height: 100%;
 }
 </style>

+ 1 - 1
src/components/rwjsComponents/wxyxzt.vue

@@ -292,7 +292,7 @@ export default {
 
       // parentId = '240814_XQCH_10007_0001'
 
-      parentId = "240906_XQCH_10017"
+      // parentId = "240906_XQCH_10017"
       const data = {
         parentId,
         satelliteCodes

+ 23 - 36
src/components/xqglComponents/targetList.vue

@@ -4,8 +4,8 @@
 		<div class="target-list">
 			<div class="targetList-title"></div>
 			<div class="targetBtn-area">
-				<el-button v-for="t in targetTypes" :key="t.type" class="targetBtn" type="primary" @click="selectTargetType(t)">
-					{{ t.name }}
+				<el-button v-for="(t, i) in targetTypes" :key="i" class="targetBtn" type="primary" @click="selectTargetType(i)">
+					{{ t }}
 				</el-button>
 			</div>
 			<div class="target-searchArea">
@@ -58,25 +58,14 @@ export default {
 	components: {},
 	data() {
 		return {
-			targetTypes: [{
-				name: '全部',
-				type: 'all'
-			}, {
-				name: '移动点目标',
-				type: '1'
-			}, {
-				name: '线目标',
-				type: '3'
-			}, {
-				name: '点群目标',
-				type: '4'
-			}, {
-				name: '点目标',
-				type: '0'
-			}, {
-				name: '区域目标',
-				type: '2'
-			}],
+			targetTypes: [
+				'全部',
+				'点目标',
+				'移动点目标',
+				'区域目标',
+				'线目标',
+				'点群目标',
+			],
 			selTargetList: [],
 			cols: [
 				{
@@ -90,7 +79,7 @@ export default {
 					width: 80,
 				},
 				{
-					prop: 'type',
+					prop: 'typeName',
 					label: '类型',
 					width: 80,
 				},
@@ -114,7 +103,7 @@ export default {
 			targetValue: '',
 			//目标列表  某行被点击后的行数据
 			targetListRowData: [],
-			selectT:  'all'
+			selectT: 0
 		};
 	},
 	computed: {
@@ -128,24 +117,25 @@ export default {
 				page: this.currentPage,
 				pageSize: this.pageSize,
 				targetName: this.targetValue,
-				type: this.selectT == 'all' ? null : this.selectT,
+				type: this.selectT == 0 ? null : this.selectT - 1,
 			}
 			getTagetListData(params).then(res => {
 				let rows = []
 				res.resp.list.forEach((item, index) => {
-					if (item.targetName && item.targetName.indexOf("测试点位") > -1) {
-						this.tableData.push(item)
-						rows.push(item)
-						this.selTargetList.push(item)
-					}
+					item.typeName = this.targetTypes[Number(item.type) + 1]
+					rows.push(item)
 				})
-				this.$store.dispatch("xqglClickedTargetRowForCesiumSetView", rows);
+				// this.selTargetList = rows
+				this.tableData = rows
 				// this.tableData = res.resp.list;
 				this.totalCount = res.resp.total
 			})
 		},
-		selectTargetType(t){
-			this.selectT = t.type
+		selectTargetType(i) {
+			if (this.selectT == i) {
+				return
+			}
+			this.selectT = i
 			this.getList()
 		},
 		handleCurrentChange(val) {
@@ -153,20 +143,17 @@ export default {
 			this.getList()
 		},
 		handleClick(row, column, event) {
-			return
 			let findTemp = this.selTargetList.find(i => i.targetId === row.targetId);
 			if (!findTemp) {
 				this.selTargetList.push(row);
 			}
 			//单击某行目标列表,用于地图转至中心视角
-			this.$store.dispatch("xqglClickedTargetRowForCesiumSetView", row);
+			this.$store.dispatch("xqglClickedTargetRowForCesiumSetView", [row]);
 		},
 
 		selHandleClick(row) {
 			this.selTargetList = this.selTargetList.filter(i => i.targetId != row.targetId);
 		},
-
-
 		//右侧 “已选目标列表” 导入按钮
 		clickedTargetListInputBtn() {
 			let codeID = []

+ 679 - 568
src/components/xqglComponents/xqDetails.vue

@@ -1,92 +1,140 @@
 <template>
-  <div class="leftArea-investigationDetails"
-    v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 200).available">
-    <div class="investigationDetails-title"></div>
-    <div :class="[nomalTitleStyle, clickTBtipStyle, clickHQtipStyle]">
-      <div class="title-xqtbFont" @click="toXQTB"></div>
-      <div class="title-xqhqFont" @click="toXQHQ"></div>
-    </div>
-    <!-- 操作区域写了两个div,通过需求提报和需求获取的点击事件,只能出现一个对应的div -->
-    <div class="operate-buttoms" v-show="operateTBvserble">
-      <el-dropdown v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2001).available"
-        @command="getTargetFromMapClick">
-        <el-button class='handle-button' type="primary">
-          手动导入<i class="el-icon-arrow-down el-icon--right"></i>
-        </el-button>
-        <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 20001).available"
-            command="selectPoint">地图点选</el-dropdown-item>
-          <el-dropdown-item v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 20002).available"
-            command="selectPoints">地图框选</el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
-      <el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2002).available" class='target-button'
-        type="primary" @click="getXQfromTargetBase">目标库导入</el-button>
-      <el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2003).available" class='excel-button'
-        type="primary" @click="popExcelWindow">excel导入</el-button>
-    </div>
-    <div class="operate-areaForXQHQ" v-show="operateHQvserble">
-      <div class="time-area">
-        <span class="timeArea-font">时间段</span>
-        <el-date-picker class="datePicker-style" v-model="timeValue" type="datetimerange" start-placeholder="开始时间"
-          end-placeholder="结束时间" :default-time="['00:00:00', '00:00:00']">
-        </el-date-picker>
-      </div>
-      <div class="button-area">
-        <el-button class="get-XQ" type="primary">获取详情</el-button>
-      </div>
-    </div>
-    <!-- 侦察需求详情的表格内容 -->
-    <div class="table1TB-area">
-      <el-table height="350" ref="multipleTable" :data="XQTBviserble ? getTableXQTBData : getTableXQHQData"
-        tooltip-effect="light" @row-click="handleClick" @row-contextmenu="rightClick" style="width: 100%">
-        <el-table-column type="selection" align="center" width="55"></el-table-column>
-        <el-table-column v-for="(col, i) in cols" :key="i" :prop="col.prop" :label="col.label"
-          :width="col.width"></el-table-column>
-      </el-table>
-    </div>
-    <!-- <div class="table1TB-area" v-show="XQTBviserble">
-      <xqglTableTB @getValues='getDataFromSonXQTB' @getRightClickValue='getDataFromSonXQTBrightclick'
-        :tableXQTBData="getTableXQTBData"></xqglTableTB>
-    </div>
-    <div class="table1HQ-area" v-show="XQHQviserble">
-      <xqglTableHQ @getValues='getDataFromSonXQTB'></xqglTableHQ>
-    </div> -->
-    <div class="CH-buttonDIV">
-      <!-- <el-button class="CHbutton-style" type="primary" @click="getXQTBtalbeContents">查询</el-button> -->
-      <el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2005).available" class="CHbutton-style"
-        type="primary" @click="toCHpage">提报</el-button>
-    </div>
-    <div class="XQtableRightClick-menu" id="rightClickMenu" v-show="rightClickMenuVisible">
-      <li @click="xqtbUptate(1)">时间应用到所有</li>
-      <li @click="xqtbUptate(2)">手段应用到所有</li>
-      <li @click="rightClickMenuDelete">删除</li>
-      <li @click="rightClickMenuClear">清空</li>
-      <li @click="rightClickMenuClose">取消</li>
-    </div>
-    <targetPop v-show="targetPopVis" :rowData="selRow" @closePop="targetPopVis = false" @comfirm="getxqtbList"></targetPop>
-    <mapPop v-show="mapPopVis" :mapPointSelect="mapPointSelect" @closePop="mapPopVis = false" @comfirm="getxqtbList">
-    </mapPop>
-    <excelPop v-show="excelPopVis" @closePop="excelPopVis = false" @comfirm="getxqtbList"></excelPop>
-
-  </div>
+	<div v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 200).available"
+			 class="leftArea-investigationDetails">
+		<div class="investigationDetails-title"></div>
+		<!--    <div class="tableChange-title">-->
+		<!--      <div class="title-xqtbFont" @click="toXQTB">需求提报</div>-->
+		<!--    </div>-->
+		<!-- 操作区域写了两个div,通过需求提报和需求获取的点击事件,只能出现一个对应的div -->
+		<div v-show="operateTBvserble" class="operate-buttoms">
+
+			<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2002).available" class='target-button'
+								 type="primary" @click="taskShow = true">任务获取
+			</el-button>
+			<el-dropdown v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2001).available"
+									 @command="getTargetFromMapClick">
+				<el-button class='handle-button' type="primary">
+					手动导入<i class="el-icon-arrow-down el-icon--right"></i>
+				</el-button>
+				<el-dropdown-menu slot="dropdown">
+					<el-dropdown-item v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 20001).available"
+														command="selectPoint">地图点选
+					</el-dropdown-item>
+					<el-dropdown-item v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 20002).available"
+														command="selectPoints">地图框选
+					</el-dropdown-item>
+				</el-dropdown-menu>
+			</el-dropdown>
+			<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2002).available" class='target-button'
+								 type="primary" @click="getXQfromTargetBase">目标库导入
+			</el-button>
+			<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2003).available" class='excel-button'
+								 type="primary" @click="popExcelWindow">excel导入
+			</el-button>
+		</div>
+		<div v-show="operateHQvserble" class="operate-areaForXQHQ">
+			<div class="time-area">
+				<span class="timeArea-font">时间段</span>
+				<el-date-picker v-model="timeValue" :default-time="['00:00:00', '00:00:00']" class="datePicker-style"
+												end-placeholder="结束时间"
+												start-placeholder="开始时间" type="datetimerange">
+				</el-date-picker>
+			</div>
+			<div class="button-area">
+				<el-button class="get-XQ" type="primary">获取详情</el-button>
+			</div>
+		</div>
+		<!-- 侦察需求详情的表格内容 -->
+		<div class="table1TB-area">
+			<el-table ref="multipleTable" :data="XQTBviserble ? getTableXQTBData : getTableXQHQData" height="450"
+								style="width: 100%" tooltip-effect="light" @row-click="handleClick" @row-contextmenu="rightClick">
+				<el-table-column align="center" type="selection" width="55"></el-table-column>
+				<el-table-column v-for="(col, i) in cols" :key="i" :label="col.label" :prop="col.prop" show-overflow-tooltip
+				></el-table-column>
+			</el-table>
+		</div>
+		<!-- <div class="table1TB-area" v-show="XQTBviserble">
+			<xqglTableTB @getValues='getDataFromSonXQTB' @getRightClickValue='getDataFromSonXQTBrightclick'
+				:tableXQTBData="getTableXQTBData"></xqglTableTB>
+		</div>
+		<div class="table1HQ-area" v-show="XQHQviserble">
+			<xqglTableHQ @getValues='getDataFromSonXQTB'></xqglTableHQ>
+		</div> -->
+		<div class="CH-buttonDIV">
+			<!-- <el-button class="CHbutton-style" type="primary" @click="getXQTBtalbeContents">查询</el-button> -->
+			<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus, 2005).available" class="CHbutton-style"
+								 type="primary" @click="toCHpage">提报
+			</el-button>
+		</div>
+		<div v-show="rightClickMenuVisible" id="rightClickMenu" class="XQtableRightClick-menu">
+			<li @click="xqtbUptate(1)">时间应用到所有</li>
+			<li @click="xqtbUptate(2)">手段应用到所有</li>
+			<li @click="rightClickMenuDelete">删除</li>
+			<li @click="rightClickMenuClear">清空</li>
+			<li @click="rightClickMenuClose">取消</li>
+		</div>
+		<targetPop v-show="targetPopVis" :rowData="selRow" @closePop="targetPopVis = false"
+							 @comfirm="getxqtbList"></targetPop>
+		<mapPop v-show="mapPopVis" :mapPointSelect="mapPointSelect" @closePop="mapPopVis = false" @comfirm="getxqtbList">
+		</mapPop>
+		<excelPop v-show="excelPopVis" @closePop="excelPopVis = false" @comfirm="getxqtbList"></excelPop>
+
+
+		<el-dialog :visible.sync="taskShow" title="请选择轨道计算时间" width="300px">
+			<div style="margin: 10px 0">请选择任务来源</div>
+			<div class="passwayDatePicker">
+				<el-select
+						v-model="selTasks"
+						collapse-tags
+						multiple
+						size="mini"
+						style="width: 240px"
+						@change='changeSelect'
+				>
+					<el-checkbox v-model="checkeALl" style="margin-left: 20px;" @change='selectAll'>全选</el-checkbox>
+					<el-option
+							v-for="(item, i) in taskSource"
+							:key="i"
+							:label="item"
+							:value="i"
+					/>
+				</el-select>
+			</div>
+			<div style="margin: 10px 0">请选择任务时间</div>
+			<div>
+				<el-date-picker v-model="taskDatetimeRange"
+												datetimeLoaded="true"
+												end-placeholder="结束时间"
+												size="mini"
+												start-placeholder="开始时间"
+												style="width: 240px" type="datetimerange"
+												value-format="yyyy-MM-dd HH:mm:ss">
+				</el-date-picker>
+			</div>
+			<div slot="footer">
+				<el-button @click="taskShow=false">取 消</el-button>
+				<el-button type="primary" @click="getTaskList">确 定</el-button>
+			</div>
+		</el-dialog>
+
+	</div>
 </template>
 
 <script>
 import {
-  postClickedTagetListData,
-  getClickedTagetListDataForxqlbTB,
-  getXQTBListViaPointTarget,
-  getXQTBListViaMapSelect,
-  getXQTBListViaExcelSelect,
-  getTargetListCodeNumber_headStr,
-  xqtbBatchUpdate,
-  postxqglRightClickMenuDeleteRow,
-  postxqglRightClickMenuClearAllData,
-  getSatelliteFilterData
+	postClickedTagetListData,
+	getClickedTagetListDataForxqlbTB,
+	getXQTBListViaPointTarget,
+	getXQTBListViaMapSelect,
+	getXQTBListViaExcelSelect,
+	getTargetListCodeNumber_headStr,
+	xqtbBatchUpdate,
+	postxqglRightClickMenuDeleteRow,
+	postxqglRightClickMenuClearAllData,
+	getSatelliteFilterData
 } from '@/api/xqglApi.js';
 
-import { submitPlan } from "@/api/xqjyApi";
+import {submitPlan} from "@/api/xqjyApi";
 
 import xqglTableTB from '@/components/tables/xqglTable_XQTB.vue'
 import xqglTableHQ from '@/components/tables/xqglTable.vue'
@@ -94,498 +142,561 @@ import targetPop from './targetPop.vue';
 import mapPop from './mapPop.vue';
 import excelPop from './excelPop.vue';
 
-import { mapState, mapMutations } from 'vuex'
+import {mapState, mapMutations} from 'vuex'
+import {selAllTargetList} from "@/api/rwjsApi";
 
 export default {
-  name: "xqDetails",
-  components: { xqglTableTB, xqglTableHQ, targetPop, mapPop, excelPop },
-  data() {
-    return {
-      targetPopVis: false,
-      mapPopVis: false,
-      excelPopVis: false,
-
-      mapPointSelect: '',
-      selRow:{},
-
-
-      //需求提报,需求获取动态追加类
-      nomalTitleStyle: 'tableChange-title',
-      clickTBtipStyle: '',
-      clickHQtipStyle: '',
-      //需求提报,需求获取操作区域是否显示
-      operateTBvserble: true,
-      operateHQvserble: false,
-      //需求获取时选择的时间
-      timeValue: '',
-      //需求提报,需求获取的表格内容是否显示
-      XQTBviserble: true,
-      XQHQviserble: false,
-      //需求提报表格数据
-      cols: [
-        {
-          prop: 'targetName',
-          label: '目标',
-          width: '110',
-        },
-        {
-          prop: 'observationPurposeChinese',
-          label: '目的',
-          width: '80',
-        },
-        {
-          prop: 'statusChinese',
-          label: '状态',
-          width: '70',
-        },
-        {
-          prop: 'typeChinese',
-          label: '类型',
-          width: '80',
-        },
-        {
-          prop: 'parentId',
-          label: '编号',
-          width: '120',
-        },
-      ],
-      getTableXQTBData: [],
-      parentId: "",
-      getTableXQHQData: [],
-
-      //点击单条需求窗口(点目标)显示/隐藏
-      XQtargetVisible: false,
-      //地图点选窗口显示/隐藏
-      mapSelectVisible: false,
-      //控制excel导入窗口显示/隐藏
-      closeExcelWindowVisible: false,
-
-      //目标列表和卫星筛选交替显示
-      xqglTargetListVisible: false,
-
-      //右键需求详情表格行时,弹出的菜单 显示/隐藏
-      rightClickMenuVisible: false,
-
-      loading: null,
-    };
-  },
-  computed: {
-    ...mapState("xqgl", ["getXqtb"]),
-  },
-  watch: {
-    $route(to, from) {
-      if (to.name === "xqglPage") {
-        this.getxqtbList();
-      }
-    },
-    getXqtb(){
-      this.getxqtbList();
-    },
-  },
-  methods: {
-    ...mapMutations("xqgl", ["setParentId"]),
-    popIsShow(type) {
-      const pops = ['targetPopVis', 'mapPopVis', 'excelPopVis'];
-      pops.forEach(item => {
-        this[item] = type === item;
-      })
-    },
-    handleClick(row){
-      this.selRow = {...row};
-      this.popIsShow('targetPopVis');
-    },
-    rightClick(row, column, event){
-      this.selRow = row;
-      this.rightClickMenuVisible = true
-      var rightClickMenu = document.querySelector("#rightClickMenu")
-      event.preventDefault();
-      rightClickMenu.style.left = event.clientX + 'px'
-      rightClickMenu.style.top = event.clientY + 'px'
-    },
-    toXQTB() {
-      //动态追加类
-      this.clickHQtipStyle = ''
-      this.clickTBtipStyle = 'ChangeTitleTB-background'
-      //显示操作区域
-      this.operateHQvserble = false
-      this.operateTBvserble = true
-      //显示表格
-      this.XQHQviserble = false
-      this.XQTBviserble = true
-    },
-    toXQHQ() {
-      //动态追加类
-      this.clickTBtipStyle = ''
-      this.clickHQtipStyle = 'ChangeTitleHQ-background'
-      //显示操作区域
-      this.operateTBvserble = false
-      this.operateHQvserble = true
-      //显示表格
-      this.XQTBviserble = false
-      this.XQHQviserble = true
-    },
-    //通过点击地球上的点获取点的经纬度,并将单条需求数据存放至库 表中
-    getTargetFromMapClick(command) {
-      //Excel导入隐藏
-      this.closeExcelWindowVisible = true;
-      //目标列表导入,隐藏
-      this.xqglTargetListVisible = false;
-      console.log(command);
-      if (command === "selectPoints") {
-        this.mapPointSelect = command
-        this.$store.dispatch("xqglMapRectangleVisible", !this.$store.state.xqglMapRectangleVisible)
-        console.log("地图框选被选中:", this.$store.state.xqglMapRectangleVisible);
-        // this.mapSelectForm.lonlat = this.$store.state.xqglMapRectangleLonLats.toString();
-      }
-      if (command === "selectPoint") {
-        this.mapPointSelect = command
-        this.$store.dispatch("xqglMapPointVisible", !this.$store.state.xqglMapPointVisible)
-        console.log("地图点选被选中:", this.$store.state.xqglMapPointVisible);
-        // this.mapSelectForm.lonlat = this.$store.state.xqglMapPointLonLat.toString();
-      }
-      this.$store.dispatch("xqglContentVisible", false)
-
-
-      //内容详情 弹窗 弹出前,确保 点目标弹窗 和 excel导入弹窗 关闭状态
-      this.XQtargetVisible = false
-      this.closeExcelWindowVisible = false
-      this.mapSelectVisible = true
-
-      this.popIsShow('mapPopVis');
-    },
-    //侦察需求详情表格下的“目标库导入”绑定的事件
-    getXQfromTargetBase() {
-      this.$emit("clickTarget");
-      //Excel导入,隐藏
-      this.excelPopVis = false;
-
-    },
-    //点击excel导入按钮,弹窗;同时,点目标和地图点选两个窗口不显示
-    popExcelWindow() {
-      this.popIsShow('excelPopVis');
-    },
-
-    //侦察需求详情某行被 左键 点击时,从子组件表格中获取数据
-    getDataFromSonXQTB(getData) {
-      console.log("子组件传过来的行数据:", getData);
-      console.log('rowClickFlag:', getData.rowData.id);
-      this.xqtbLeftClickedRowData = getData.rowData;
-      this.pointTargetTitle = getData.rowData.targetName;
-      this.pointTargetForm.xqTBrowID = getData.rowData.id
-      if (getData.rowClickFlag === '1') {
-        this.mapSelectVisible = false
-        this.closeExcelWindowVisible = false
-        this.XQtargetVisible = true
-      }
-      // this.pointTargetForm.pointTargetStartTime = new Date(getData.rowData.startTime * 1000);
-      this.pointTargetForm.pointTargetStartTime = getData.rowData.startTime;
-      this.pointTargetForm.pointTargetEndTime = getData.rowData.endTime;
-      // this.pointTargetForm.pointTargetEndTime = new Date(getData.rowData.endTime * 1000);
-      this.pointTargetForm.investigationMeans = getData.rowData.investigativeMeans;
-      if (getData.rowData.investigativeMeans === '0') {
-        this.pointTargetForm.investigationMeans = '默认';
-      }
-      if (getData.rowData.observationPurpose) {
-        this.pointTargetForm.selectValue = getData.rowData.observationPurpose;
-      }
-      if (getData.rowData.priority !== 999) {
-        this.pointTargetForm.priorNumber = getData.rowData.priority;
-      }
-      if (getData.rowData.rate) {
-        this.pointTargetForm.frequency = getData.rowData.rate;
-      }
-    },
-
-
-    //右击下拉菜单的各项操作
-
-    // 时间和手段应用到所有
-    xqtbUptate(type) {
-      let data = {
-        relationId: this.selRow.id,
-        type: type,
-        parentId: this.parentId,
-        satelliteSelected: this.satelliteSelected,
-      }
-      xqtbBatchUpdate(data).then(res => {
-        if (res.code === 200) {
-          this.getxqtbList();
-          this.$message.success('操作成功');
-        } else {
-          this.$message.warning(res.message);
-        }
-      });
-      this.rightClickMenuVisible = false
-    },
-
-
-    //删除
-    rightClickMenuDelete() {
-      let data = new FormData();
-      data.append("ids", this.selRow.id);
-      postxqglRightClickMenuDeleteRow(data).then(res => {
-        if (res.code === 200) {
-          this.getxqtbList();
-          this.$message.success('操作成功');
-        } else {
-          this.$message.warning(res.message);
-        }
-      });
-      this.rightClickMenuVisible = false;
-    },
-    //清空
-    rightClickMenuClear() {
-      let data = {
-        parentId: this.parentId,
-      };
-      postxqglRightClickMenuClearAllData(data).then(res => {
-        if (res.code === 200) {
-          this.getxqtbList();
-          this.$message.success('操作成功');
-        } else {
-          this.$message.warning(res.message);
-        }
-      });
-      this.rightClickMenuVisible = false;
-    },
-    //取消
-    rightClickMenuClose() {
-      this.rightClickMenuVisible = false;
-    },
-
-    //点击  提报  按钮,进入需求解译页面
-    toCHpage() {
-      //前和后端的 数据通信 和确认信息 等操作
-      let parentIds = [];
-      this.getTableXQTBData.forEach(element => {
-        parentIds.push(element.parentId)
-      });
-
-      this.loading = this.$loading({
-        lock: true,
-        text: "提报计算中",
-        spinner: 'el-icon-loading',
-        background: 'rgba(0,0,0,0.8)'
-      });
-      submitPlan(parentIds).then(res => {
-        if (res.code === 200) {
-          this.loading.close();
-          this.$router.push({ name: "xqjyPage" });
-        }
-      });
-    },
-
-    getxqtbList() {//getxqglTBTableFromClickedTargetList
-      const purposeDic = {
-        1: '快响应急侦察',
-        2: '陆地伪装识别',
-        3: '早期异常监测',
-        4: '海上搜索发现',
-        5: '海上持续跟踪',
-        6: '海上识别确认',
-      }
-      const typeDic = {
-        0: '固定目标',
-        1: '移动目标',
-        2: '区域目标',
-      }
-      const statusDic = {
-        0: '未提交',
-        1: '已提交',
-      }
-      let params = {
-        parentId: this.parentId,
-        status: 0,
-      }
-      getClickedTagetListDataForxqlbTB(params).then(res => {
-        let resData = []
-        if (res.code == 200) {
-          resData = res.resp
-        }
-        this.getTableXQTBData = resData;
-        this.getTableXQTBData.forEach(item => {
-          item.observationPurposeChinese = purposeDic[item.observationPurpose];
-          item.typeChinese = typeDic[item.type];
-          item.statusChinese = statusDic[item.status];
-        })
-        //20221019屏蔽添加的目标需求点
-        //this.$events.$emit('xqgl-targetList', resData)
-      })
-    },
-    getParentId() {
-      getTargetListCodeNumber_headStr().then(res => {
-        if (res.code === 200 && res.resp) {
-          this.parentId = res.resp;
-          sessionStorage.setItem("parentId", res.resp);
-          this.setParentId(this.parentId);
-          this.getxqtbList();
-        } else {
-          console.error('parentId获取失败');
-        }
-      })
-    },
-  },
-  mounted() {
-    this.getParentId();
-    this.toXQTB();
-  }
+	name: "xqDetails",
+	components: {xqglTableTB, xqglTableHQ, targetPop, mapPop, excelPop},
+	data() {
+		return {
+			targetPopVis: false,
+			mapPopVis: false,
+			excelPopVis: false,
+			taskShow: false,
+			mapPointSelect: '',
+			selRow: {},
+			taskDatetimeRange: ["", ""],
+			checkeALl: false,
+			selTasks: [],
+			taskSource: ["气象海洋", "水利交通", "防灾减灾", "城乡规划", "农林渔牧"],
+			//需求提报,需求获取动态追加类
+			clickTBtipStyle: '',
+			clickHQtipStyle: '',
+			//需求提报,需求获取操作区域是否显示
+			operateTBvserble: true,
+			operateHQvserble: false,
+			//需求获取时选择的时间
+			timeValue: '',
+			//需求提报,需求获取的表格内容是否显示
+			XQTBviserble: true,
+			XQHQviserble: false,
+			//需求提报表格数据
+			cols: [
+				{
+					prop: 'id',
+					label: '需求ID',
+				},
+				{
+					prop: 'reqName',
+					label: '需求名称',
+				},
+				{
+					prop: 'typeName',
+					label: '目标类型',
+				},
+				{
+					prop: ' targetCode',
+					label: '目标编号',
+				},
+				{
+					prop: 'targetName',
+					label: '目标名称',
+				},
+				{
+					prop: 'startTime',
+					label: '需求开始时间',
+				},
+				{
+					prop: 'endTime',
+					label: '需求结束时间',
+				},
+				{
+					prop: 'priority',
+					label: '优先级',
+				},
+			],
+			getTableXQTBData: [],
+			parentId: "",
+			getTableXQHQData: [],
+
+			//点击单条需求窗口(点目标)显示/隐藏
+			XQtargetVisible: false,
+			//地图点选窗口显示/隐藏
+			mapSelectVisible: false,
+			//控制excel导入窗口显示/隐藏
+			closeExcelWindowVisible: false,
+
+			//目标列表和卫星筛选交替显示
+			xqglTargetListVisible: false,
+
+			//右键需求详情表格行时,弹出的菜单 显示/隐藏
+			rightClickMenuVisible: false,
+
+			loading: null,
+		};
+	},
+	computed: {
+		...mapState("xqgl", ["getXqtb"]),
+	},
+	watch: {
+		$route(to, from) {
+			if (to.name === "xqglPage") {
+				this.getxqtbList();
+			}
+		},
+		getXqtb() {
+			this.getxqtbList();
+		},
+	},
+	methods: {
+		...mapMutations("xqgl", ["setParentId"]),
+		handleCheckAll() {
+		},
+		selectAll() {
+			this.selTasks = [];
+			if (this.checkeALl) {
+				this.taskSource.forEach((item, i) => {
+					this.selTasks.push(i)
+				});
+			} else {
+				this.selTasks = [];
+			}
+		},
+		changeSelect(val) {
+			if (val.length === this.taskSource.length) {
+				this.checkeALl = true;
+			} else {
+				this.checkeALl = false;
+			}
+		},
+
+
+		getTaskList() {
+			this.taskShow = false;
+			this.loading = this.$loading({
+				lock: true,
+				text: "查询中",
+				spinner: 'el-icon-loading',
+				background: 'rgba(0,0,0,0.8)'
+			});
+			const param = {
+				demandSources: this.selTasks.join(","),
+				startTime: (this.taskDatetimeRange && this.taskDatetimeRange.length) > 0 ? this.taskDatetimeRange[0] : null,
+				endTime: (this.taskDatetimeRange && this.taskDatetimeRange.length) > 1 ? this.taskDatetimeRange[1] : null,
+			}
+			const names = ["固定目标", "移动目标", "区域目标"]
+			selAllTargetList(param).then(res => {
+				this.getTableXQTBData = []
+				this.loading.close();
+				if (res.code === 200) {
+					res.data.forEach(item => {
+						item.typeName = names[item.type]
+						this.getTableXQTBData.push(item)
+					})
+				} else {
+					this.$message.error(res.msg);
+				}
+			})
+
+
+		},
+		popIsShow(type) {
+			const pops = ['targetPopVis', 'mapPopVis', 'excelPopVis'];
+			pops.forEach(item => {
+				this[item] = type === item;
+			})
+		},
+		handleClick(row) {
+			this.selRow = {...row};
+			this.popIsShow('targetPopVis');
+		},
+		rightClick(row, column, event) {
+			this.selRow = row;
+			this.rightClickMenuVisible = true
+			var rightClickMenu = document.querySelector("#rightClickMenu")
+			event.preventDefault();
+			rightClickMenu.style.left = event.clientX + 'px'
+			rightClickMenu.style.top = event.clientY + 'px'
+		},
+		toXQTB() {
+			//动态追加类
+			this.clickHQtipStyle = ''
+			this.clickTBtipStyle = 'ChangeTitleTB-background'
+			//显示操作区域
+			this.operateHQvserble = false
+			this.operateTBvserble = true
+			//显示表格
+			this.XQHQviserble = false
+			this.XQTBviserble = true
+		},
+		toXQHQ() {
+			//动态追加类
+			this.clickTBtipStyle = ''
+			this.clickHQtipStyle = 'ChangeTitleHQ-background'
+			//显示操作区域
+			this.operateTBvserble = false
+			this.operateHQvserble = true
+			//显示表格
+			this.XQTBviserble = false
+			this.XQHQviserble = true
+		},
+		//通过点击地球上的点获取点的经纬度,并将单条需求数据存放至库 表中
+		getTargetFromMapClick(command) {
+			//Excel导入隐藏
+			this.closeExcelWindowVisible = true;
+			//目标列表导入,隐藏
+			this.xqglTargetListVisible = false;
+			console.log(command);
+			if (command === "selectPoints") {
+				this.mapPointSelect = command
+				this.$store.dispatch("xqglMapRectangleVisible", !this.$store.state.xqglMapRectangleVisible)
+				console.log("地图框选被选中:", this.$store.state.xqglMapRectangleVisible);
+				// this.mapSelectForm.lonlat = this.$store.state.xqglMapRectangleLonLats.toString();
+			}
+			if (command === "selectPoint") {
+				this.mapPointSelect = command
+				this.$store.dispatch("xqglMapPointVisible", !this.$store.state.xqglMapPointVisible)
+				console.log("地图点选被选中:", this.$store.state.xqglMapPointVisible);
+				// this.mapSelectForm.lonlat = this.$store.state.xqglMapPointLonLat.toString();
+			}
+			this.$store.dispatch("xqglContentVisible", false)
+
+
+			//内容详情 弹窗 弹出前,确保 点目标弹窗 和 excel导入弹窗 关闭状态
+			this.XQtargetVisible = false
+			this.closeExcelWindowVisible = false
+			this.mapSelectVisible = true
+
+			this.popIsShow('mapPopVis');
+		},
+		//侦察需求详情表格下的“目标库导入”绑定的事件
+		getXQfromTargetBase() {
+			this.$emit("clickTarget");
+			//Excel导入,隐藏
+			this.excelPopVis = false;
+
+		},
+		//点击excel导入按钮,弹窗;同时,点目标和地图点选两个窗口不显示
+		popExcelWindow() {
+			this.popIsShow('excelPopVis');
+		},
+
+		//侦察需求详情某行被 左键 点击时,从子组件表格中获取数据
+		getDataFromSonXQTB(getData) {
+			console.log("子组件传过来的行数据:", getData);
+			console.log('rowClickFlag:', getData.rowData.id);
+			this.xqtbLeftClickedRowData = getData.rowData;
+			this.pointTargetTitle = getData.rowData.targetName;
+			this.pointTargetForm.xqTBrowID = getData.rowData.id
+			if (getData.rowClickFlag === '1') {
+				this.mapSelectVisible = false
+				this.closeExcelWindowVisible = false
+				this.XQtargetVisible = true
+			}
+			// this.pointTargetForm.pointTargetStartTime = new Date(getData.rowData.startTime * 1000);
+			this.pointTargetForm.pointTargetStartTime = getData.rowData.startTime;
+			this.pointTargetForm.pointTargetEndTime = getData.rowData.endTime;
+			// this.pointTargetForm.pointTargetEndTime = new Date(getData.rowData.endTime * 1000);
+			this.pointTargetForm.investigationMeans = getData.rowData.investigativeMeans;
+			if (getData.rowData.investigativeMeans === '0') {
+				this.pointTargetForm.investigationMeans = '默认';
+			}
+			if (getData.rowData.observationPurpose) {
+				this.pointTargetForm.selectValue = getData.rowData.observationPurpose;
+			}
+			if (getData.rowData.priority !== 999) {
+				this.pointTargetForm.priorNumber = getData.rowData.priority;
+			}
+			if (getData.rowData.rate) {
+				this.pointTargetForm.frequency = getData.rowData.rate;
+			}
+		},
+
+
+		//右击下拉菜单的各项操作
+
+		// 时间和手段应用到所有
+		xqtbUptate(type) {
+			let data = {
+				relationId: this.selRow.id,
+				type: type,
+				parentId: this.parentId,
+				satelliteSelected: this.satelliteSelected,
+			}
+			xqtbBatchUpdate(data).then(res => {
+				if (res.code === 200) {
+					this.getxqtbList();
+					this.$message.success('操作成功');
+				} else {
+					this.$message.warning(res.message);
+				}
+			});
+			this.rightClickMenuVisible = false
+		},
+
+
+		//删除
+		rightClickMenuDelete() {
+			let data = new FormData();
+			data.append("ids", this.selRow.id);
+			postxqglRightClickMenuDeleteRow(data).then(res => {
+				if (res.code === 200) {
+					this.getxqtbList();
+					this.$message.success('操作成功');
+				} else {
+					this.$message.warning(res.message);
+				}
+			});
+			this.rightClickMenuVisible = false;
+		},
+		//清空
+		rightClickMenuClear() {
+			let data = {
+				parentId: this.parentId,
+			};
+			postxqglRightClickMenuClearAllData(data).then(res => {
+				if (res.code === 200) {
+					this.getxqtbList();
+					this.$message.success('操作成功');
+				} else {
+					this.$message.warning(res.message);
+				}
+			});
+			this.rightClickMenuVisible = false;
+		},
+		//取消
+		rightClickMenuClose() {
+			this.rightClickMenuVisible = false;
+		},
+
+		//点击  提报  按钮,进入需求解译页面
+		toCHpage() {
+			//前和后端的 数据通信 和确认信息 等操作
+			let parentIds = [];
+			this.getTableXQTBData.forEach(element => {
+				parentIds.push(element.parentId)
+			});
+
+			this.loading = this.$loading({
+				lock: true,
+				text: "提报计算中",
+				spinner: 'el-icon-loading',
+				background: 'rgba(0,0,0,0.8)'
+			});
+			submitPlan(parentIds).then(res => {
+				if (res.code === 200) {
+					this.loading.close();
+					this.$router.push({name: "xqjyPage"});
+				}
+			});
+		},
+
+		getxqtbList() {//getxqglTBTableFromClickedTargetList
+			const purposeDic = {
+				1: '快响应急侦察',
+				2: '陆地伪装识别',
+				3: '早期异常监测',
+				4: '海上搜索发现',
+				5: '海上持续跟踪',
+				6: '海上识别确认',
+			}
+			const typeDic = {
+				0: '固定目标',
+				1: '移动目标',
+				2: '区域目标',
+			}
+			const statusDic = {
+				0: '未提交',
+				1: '已提交',
+			}
+			let params = {
+				parentId: this.parentId,
+				status: 0,
+			}
+			getClickedTagetListDataForxqlbTB(params).then(res => {
+				let resData = []
+				if (res.code == 200) {
+					resData = res.resp
+				}
+				this.getTableXQTBData = resData;
+				this.getTableXQTBData.forEach(item => {
+					item.observationPurposeChinese = purposeDic[item.observationPurpose];
+					item.typeChinese = typeDic[item.type];
+					item.statusChinese = statusDic[item.status];
+				})
+				//20221019屏蔽添加的目标需求点
+				//this.$events.$emit('xqgl-targetList', resData)
+			})
+		},
+		getParentId() {
+			getTargetListCodeNumber_headStr().then(res => {
+				if (res.code === 200 && res.resp) {
+					this.parentId = res.resp;
+					sessionStorage.setItem("parentId", res.resp);
+					this.setParentId(this.parentId);
+					// this.getxqtbList();
+				} else {
+					console.error('parentId获取失败');
+				}
+			})
+		},
+	},
+	mounted() {
+		this.getParentId();
+		this.toXQTB();
+		this.getTaskList();
+	}
 };
 </script>
 
 <style lang='scss' scoped>
 .leftArea-investigationDetails {
-  width: 27%;
-  height: 560px;
-  background: url('@/assets/ClipImage/dikuang/xuqiuxiangqing.png');
-  background-size: 100% 100%;
-  position: relative;
-  margin-top: 6px;
-
-  .investigationDetails-title {
-    width: 520px;
-    height: 38px;
-    position: absolute;
-    top: -44px;
-    background: url('@/assets/ClipImage/biaoti/xuqiuxinagqing.png');
-    background-size: 100% 100%;
-  }
-
-  .ChangeTitleTB-background {
-    background: url("@/assets/ClipImage/biaoti/xuqiutibao.png") no-repeat;
-    background-size: 100% 100%;
-  }
-
-  .ChangeTitleHQ-background {
-    background: url("@/assets/ClipImage/biaoti/xuqiuhuoqu.png") no-repeat;
-    background-size: 100% 100%;
-  }
-
-  .tableChange-title {
-    width: 500px;
-    height: 38px;
-    margin: 6px 10px;
-    display: flex;
-
-    .title-xqtbFont {
-      width: 62px;
-      height: 18px;
-      margin-left: 108px;
-    }
-
-    .title-xqhqFont {
-      width: 62px;
-      height: 18px;
-      margin-left: 152px;
-    }
-  }
-
-  .operate-buttoms {
-    width: 500px;
-    height: 42px;
-    margin: 0 auto;
-    box-sizing: border-box;
-    padding: 0 56px;
-    display: flex;
-    justify-content: space-between;
-
-    /deep/ .handle-button,
-    .target-button,
-    .excel-button {
-      width: 80px;
-      height: 30px;
-      padding: 0;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 14px;
-    }
-  }
-
-  .operate-areaForXQHQ {
-    width: 500px;
-    height: 42px;
-    margin: 0 auto;
-    display: flex;
-    justify-content: space-between;
-
-    .timeArea-font {
-      height: 30px;
-      line-height: 30px;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 14px;
-      margin-right: 8px;
-    }
-
-    /deep/ .datePicker-style {
-      width: 350px;
-      height: 30px;
-      padding: 0;
-      background: rgba(160, 160, 160, 0.3);
-      border: none;
-    }
-
-    /deep/ .get-XQ {
-      width: 80px;
-      height: 30px;
-      padding: 0;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 14px;
-    }
-  }
-
-  .table1TB-area,
-  .table1HQ-area {
-    width: 500px;
-    height: 350px;
-    margin: 0 auto;
-  }
-
-  .CH-buttonDIV {
-    width: 500px;
-    height: 100px;
-    margin: 0 auto;
-    display: flex;
-    justify-content: center;
-    align-items: flex-end;
-
-    .CHbutton-style {
-      width: 60px;
-      height: 30px;
-      padding: 0;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 16px;
-    }
-  }
-
-  .XQtableRightClick-menu {
-    width: 120px;
-    height: 150px;
-    background-color: #557388;
-    border: solid 1px #ffffff;
-    position: fixed;
-
-    li {
-      list-style: none;
-      width: 120px;
-      height: 30px;
-      line-height: 30px;
-      text-align: center;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 12px;
-      color: #fff;
-      cursor: pointer;
-    }
-
-    li:nth-of-type(odd) {
-      background: #254961;
-    }
-
-    li:nth-of-type(even) {
-      background: #557388;
-    }
-
-    li:hover {
-      background: #0095ff;
-    }
-
-  }
+	width: 37%;
+	height: 560px;
+	background: url('@/assets/ClipImage/dikuang/xuqiuxiangqing.png');
+	background-size: 100% 100%;
+	background-repeat: no-repeat;
+	background-position: center;
+	position: relative;
+	margin-top: 6px;
+
+	.investigationDetails-title {
+		width: 100%;
+		height: 38px;
+		position: absolute;
+		top: -44px;
+		background: url('@/assets/ClipImage/biaoti/xuqiuxinagqing.png');
+		background-size: 100% 100%;
+		background-repeat: no-repeat;
+		background-position: center;
+	}
+
+	.ChangeTitleTB-background {
+		background: url("@/assets/ClipImage/biaoti/xuqiutibao.png") no-repeat;
+		background-size: 100% 100%;
+	}
+
+	.ChangeTitleHQ-background {
+		background: url("@/assets/ClipImage/biaoti/xuqiuhuoqu.png") no-repeat;
+		background-size: 100% 100%;
+	}
+
+	.tableChange-title {
+		width: 500px;
+		height: 38px;
+		margin: 6px 10px;
+		display: flex;
+
+		.title-xqtbFont {
+			width: 100%;
+			height: 18px;
+			text-align: center;
+		}
+
+		.title-xqhqFont {
+			width: 62px;
+			height: 18px;
+			margin-left: 152px;
+		}
+	}
+
+	.operate-buttoms {
+		width: 500px;
+		height: 42px;
+		box-sizing: border-box;
+		padding: 0 56px;
+		display: flex;
+		justify-content: space-between;
+		margin: 10px auto 0;
+
+		/deep/ .handle-button,
+		.target-button,
+		.excel-button {
+			width: 80px;
+			height: 30px;
+			padding: 0;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 14px;
+		}
+	}
+
+	.operate-areaForXQHQ {
+		width: 500px;
+		height: 42px;
+		margin: 0 auto;
+		display: flex;
+		justify-content: space-between;
+
+		.timeArea-font {
+			height: 30px;
+			line-height: 30px;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 14px;
+			margin-right: 8px;
+		}
+
+		/deep/ .datePicker-style {
+			width: 350px;
+			height: 30px;
+			padding: 0;
+			background: rgba(160, 160, 160, 0.3);
+			border: none;
+		}
+
+		/deep/ .get-XQ {
+			width: 80px;
+			height: 30px;
+			padding: 0;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 14px;
+		}
+	}
+
+	.table1TB-area,
+	.table1HQ-area {
+		width: 100%;
+		height: 450px;
+		margin: 0 auto;
+	}
+
+	.CH-buttonDIV {
+		width: 500px;
+		margin: 10px auto 0;
+		display: flex;
+		justify-content: center;
+		align-items: flex-end;
+
+		.CHbutton-style {
+			width: 60px;
+			height: 30px;
+			padding: 0;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 16px;
+		}
+	}
+
+	.XQtableRightClick-menu {
+		width: 120px;
+		height: 150px;
+		background-color: #557388;
+		border: solid 1px #ffffff;
+		position: fixed;
+
+		li {
+			list-style: none;
+			width: 120px;
+			height: 30px;
+			line-height: 30px;
+			text-align: center;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 12px;
+			color: #fff;
+			cursor: pointer;
+		}
+
+		li:nth-of-type(odd) {
+			background: #254961;
+		}
+
+		li:nth-of-type(even) {
+			background: #557388;
+		}
+
+		li:hover {
+			background: #0095ff;
+		}
+
+	}
 }
 </style>

+ 3 - 3
src/components/xxtsComponents/xxts.vue

@@ -67,9 +67,9 @@ export default {
   mounted() {
     this.getData()
     const self = this
-    setInterval(() => {
-      self.getData()
-    }, 10000)
+    // setInterval(() => {
+    //   self.getData()
+    // }, 10000)
     this.$events.on("xxtsBoxVisble", eventData => {
       this.XXTSinfoVisible = eventData;
     });

+ 6 - 6
src/pages/1-main/02-XQGL/xqgl.vue

@@ -41,7 +41,7 @@ export default {
       clickTarget(){
         this.targetOrFilterShow('targetListVis');
       },
-    
+
     //关闭需求列表
     //通过点击表格右上角×,关闭
     closeXQlistViaIcon() {
@@ -51,7 +51,7 @@ export default {
     getXQTBtalbeContents() {
       this.getxqglTBTableFromClickedTargetList();
     },
-    
+
 
   },
   computed: {
@@ -59,7 +59,7 @@ export default {
     XQListTableVisible_use() {
       return this.$store.state.XQListTableVisible;
     },
-    
+
   },
   watch: {
     toFilterSate(){
@@ -70,7 +70,7 @@ export default {
     },
   },
   mounted() {
-    
+
   },
 };
 </script>
@@ -111,7 +111,7 @@ export default {
   background-color: transparent;
   font-family: 'SourceHanSansCN-Regular';
   font-size: 14px;
-  color: #fff
+  //color: #fff
 }
 
 //弹出时间框的样式修改
@@ -120,4 +120,4 @@ export default {
   width: 500px;
   background: red;
 }
-</style>
+</style>

+ 229 - 222
src/pages/1-main/06-XQJY/xqjy.vue

@@ -1,24 +1,24 @@
 <template>
-  <div class="xqjy-page">
-    <div class="xqjy-task_panel" v-if="commonFunction.getUserConfig($store.state.userOwnMenus,300).available">
-      <xqjyTaskList @select="isShow" ref="xqjyTk"></xqjyTaskList>
-      <div class="xqjy-page_btn">
-        <el-button size="small" type="primary" @click="addPlan"
-                   v-if="commonFunction.getUserConfig($store.state.userOwnMenus,3001).available">筹划
-        </el-button>
-      </div>
-    </div>
-    <div class="xqjy-analysisResult_panel" v-show="windowShow"
-         v-if="commonFunction.getUserConfig($store.state.userOwnMenus,301).available">
-      <i class="el-icon-close" @click="closeWindow"></i>
-      <xqjyAnalysisResult ref="xqjyAr" @add="addStrip" @delete="deleteStrip"></xqjyAnalysisResult>
-      <div class="xqjy-page_btn">
-        <el-button size="small" type="primary" @click="showWindowList"
-                   v-if="commonFunction.getUserConfig($store.state.userOwnMenus,3002).available">确认
-        </el-button>
-      </div>
-    </div>
-  </div>
+	<div class="xqjy-page">
+		<div v-if="commonFunction.getUserConfig($store.state.userOwnMenus,300).available" class="xqjy-task_panel">
+			<xqjyTaskList ref="xqjyTk" @select="isShow"></xqjyTaskList>
+			<div class="xqjy-page_btn">
+				<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus,3001).available" size="small" type="primary"
+									 @click="addPlan">筹划
+				</el-button>
+			</div>
+		</div>
+		<div v-if="commonFunction.getUserConfig($store.state.userOwnMenus,301).available" v-show="windowShow"
+				 class="xqjy-analysisResult_panel">
+			<i class="el-icon-close" @click="closeWindow"></i>
+			<xqjyAnalysisResult ref="xqjyAr" @add="addStrip" @delete="deleteStrip"></xqjyAnalysisResult>
+			<div class="xqjy-page_btn">
+				<el-button v-if="commonFunction.getUserConfig($store.state.userOwnMenus,3002).available" size="small" type="primary"
+									 @click="showWindowList">确认
+				</el-button>
+			</div>
+		</div>
+	</div>
 </template>
 
 <script>
@@ -28,220 +28,227 @@ import {confirmWindowInfo, addPlanList} from "@/api/xqjyApi";
 import cesiumEntityUtils from "@/utils/cesiumEntityUtils";
 
 export default {
-  name: "xqjyPage",
-  components: {xqjyTaskList, xqjyAnalysisResult},
-  data() {
-    return {
-      windowShow: false,
-      windowList: [],
-      windowSelParentIds:[],
-      windowSelParentId:'',
-      windowRate: null,
-      loading: null,
-    }
-  },
-  methods: {
-    isShow(data) {
-      this.windowRate = data.rate
-      this.windowSelParentId = data.parentId;
-      this.windowShow = true;
-      let targetData = null;
-      let type = 'point'
-      if (data.pointDTOList.length === 1) {
-        targetData = {
-          id: data.id,
-          name: data.targetName,
-          size: 20,
-          outlineColor: Cesium.Color.fromCssColorString('#f10808'),
-          outlineWidth: 2,
-          color: Cesium.Color.fromCssColorString('#edf50b'),
+	name: "xqjyPage",
+	components: {xqjyTaskList, xqjyAnalysisResult},
+	data() {
+		return {
+			windowShow: false,
+			windowList: [],
+			windowSelParentIds: [],
+			windowSelParentId: '',
+			windowRate: null,
+			loading: null,
+		}
+	},
+	methods: {
+		isShow(data) {
+			this.windowRate = data.rate
+			this.windowSelParentId = data.parentId;
+			this.windowShow = true;
+			let targetData = null;
+			let type = 'point'
+			if (data.pointDTOList.length === 1) {
+				targetData = {
+					id: data.id,
+					name: data.targetName,
+					size: 20,
+					outlineColor: Cesium.Color.fromCssColorString('#f10808'),
+					outlineWidth: 2,
+					color: Cesium.Color.fromCssColorString('#edf50b'),
 
-          lon: data.pointDTOList[0].lng,
-          lat: data.pointDTOList[0].lat,
-          zIndex:2
-        };
-      } else {
-        type = 'polygon'
-        let polygon = [];
-        data.pointDTOList.forEach(py => {
-          polygon.push(py.lng)
-          polygon.push(py.lat)
-        })
-        targetData = {
-          id: data.id,
-          name: data.targetName,
-          isRhumb: true,
-          polygon: polygon,
-          material:Cesium.Color.fromCssColorString('rgba(255,0,0,0.5)')
-        }
-      }
-      this.$events.$emit("xqjy-target", {
-        data: targetData,
-        type: type
-      });
-    },
-    closeWindow() {
-      this.windowShow = false;
-      this.$events.$emit("xqjy-target", {
-        data: null,
-        type: null
-      });
-      this.$refs.xqjyTk.selectId = null;
-    },
-    showWindowList() {
-      if (typeof this.windowRate !== 'number') {
-        this.$message.error('条带频次出错')
-        return
-      }
-      let datas = this.$refs.xqjyAr.tableDatas
-      let stripList = [];
-      datas.forEach((item) => {
-        if (item.select) {
-          item.params.some(sub => {
-            if (sub.select) {
-              stripList.push({
-                stripId: sub.id,
-                isSelected: 2
-              });
-            }
-          })
-        }
-        // else {
-        //   if (item.params.length > 0) {
-        //     stripList.push({
-        //       stripId: item.params[0].id,
-        //       isSelected: 2
-        //     });
-        //   }
-        // }
-      })
-      if (this.windowRate !== stripList.length) {
-        this.$message.warning(`条带频次为:${this.windowRate},请选择${this.windowRate}个条带`)
-        return
-      }
-      confirmWindowInfo(stripList).then(response => {
-        if (response.code === 200) {
-          this.$message.success("确认成功!");
-          // 所有确认成功的parentId
-          if (!this.windowSelParentIds.includes(this.windowSelParentId)) {
-            this.windowSelParentIds.push(this.windowSelParentId);
-          }
-        } else {
-          console.log(response.data)
-        }
-      })
-    },
-    addPlan() {
-      let datas = this.$refs.xqjyTk.selections
-      if (datas.length < 1) {
-        this.$message.error("未选择筹划任务。")
-        return
-      }
-      let parentIds = [];
-      datas.forEach(item => {
-        parentIds.push(item.parentId)
-      })
-      const isEqual = this.strArrAllEqual(parentIds, this.windowSelParentIds);
-      if (!isEqual) {
-        this.$message.error("选择的筹划任务存在未分析的任务。")
-        return
-      }
-      this.loading = this.$loading({
-        lock: true,
-        text: "筹划计算中",
-        spinner: 'el-icon-loading',
-        background: 'rgba(0,0,0,0.8)'
-      });
-      addPlanList(parentIds).then(response => {
-        console.log(response)
-        if (response.code === 200) {
-          this.loading.close();
-          this.$message.success("提交筹划成功")
-          this.$router.push({name: "xqchPage"});
-        }
-      })
-    },
-    strArrAllEqual(arr1, arr2){
-      if (arr1.length != arr2.length) {
-        return false;
-      }
-      if (arr1.length === 0) {
-        return false;
-      }
-      const tempArr = arr1.filter(i => arr2.includes(i));
-      return tempArr.length === arr1.length;
-    },
-    addStrip(strips) {
-      let lines = []
-      if (strips.length > 0) {
-        strips.forEach(item => {
-          if (item.pointDTOList && item.pointDTOList.length > 0) {
-            let polygon = [];
-            item.pointDTOList.forEach(py => {
-              polygon.push(py.longitude)
-              polygon.push(py.latitude)
-            })
-            lines.push({
-              id: item.id,
-              material: Cesium.Color.fromCssColorString('rgba(237,245,11,0.5)'),
-              isRhumb: false,
-              polygon: polygon
-            })
-          }
-        })
-      }
-      this.$events.$emit("xqjy-addwindow", lines);
-    },
-    deleteStrip(data) {
-      this.$events.$emit("xqjy-deletewindow", data);
-    }
-  },
-  mounted() {
-  },
+					lon: data.pointDTOList[0].lng,
+					lat: data.pointDTOList[0].lat,
+					zIndex: 2
+				};
+			} else {
+				type = 'polygon'
+				let polygon = [];
+				data.pointDTOList.forEach(py => {
+					polygon.push(py.lng)
+					polygon.push(py.lat)
+				})
+				targetData = {
+					id: data.id,
+					name: data.targetName,
+					isRhumb: true,
+					polygon: polygon,
+					material: Cesium.Color.fromCssColorString('rgba(255,0,0,0.5)')
+				}
+			}
+			this.$events.$emit("xqjy-target", {
+				data: targetData,
+				type: type
+			});
+		},
+		closeWindow() {
+			this.windowShow = false;
+			this.$events.$emit("xqjy-target", {
+				data: null,
+				type: null
+			});
+			this.$refs.xqjyTk.selectId = null;
+		},
+		showWindowList() {
+			if (typeof this.windowRate !== 'number') {
+				this.$message.error('条带频次出错')
+				return
+			}
+			let datas = this.$refs.xqjyAr.tableDatas
+			let stripList = [];
+			datas.forEach((item) => {
+				if (item.select) {
+					item.params.some(sub => {
+						if (sub.select) {
+							stripList.push({
+								stripId: sub.id,
+								isSelected: 2
+							});
+						}
+					})
+				}
+				// else {
+				//   if (item.params.length > 0) {
+				//     stripList.push({
+				//       stripId: item.params[0].id,
+				//       isSelected: 2
+				//     });
+				//   }
+				// }
+			})
+			if (this.windowRate !== stripList.length) {
+				this.$message.warning(`条带频次为:${this.windowRate},请选择${this.windowRate}个条带`)
+				return
+			}
+			confirmWindowInfo(stripList).then(response => {
+				if (response.code === 200) {
+					this.$message.success("确认成功!");
+					// 所有确认成功的parentId
+					if (!this.windowSelParentIds.includes(this.windowSelParentId)) {
+						this.windowSelParentIds.push(this.windowSelParentId);
+					}
+				} else {
+					console.log(response.data)
+				}
+			})
+		},
+		addPlan() {
+			let datas = this.$refs.xqjyTk.selections
+			let param = {
+				demandType: 0,
+			}
+			let parentIds = [];
+			if (datas.length < 1) {
+				param.demandType = 1
+				parentIds.push(this.$refs.xqjyTk.tableDatas[0].parentId)
+			} else {
+				datas.forEach(item => {
+					parentIds.push(item.parentId)
+				})
+			}
+
+			param.parentIds = parentIds;
+
+			// const isEqual = this.strArrAllEqual(param.parentIds, this.windowSelParentIds);
+			// if (!isEqual) {
+			// 	this.$message.error("选择的筹划任务存在未分析的任务。")
+			// 	return
+			// }
+			this.loading = this.$loading({
+				lock: true,
+				text: "筹划计算中",
+				spinner: 'el-icon-loading',
+				background: 'rgba(0,0,0,0.8)'
+			});
+			addPlanList(param).then(response => {
+				console.log(response)
+				if (response.code === 200) {
+					this.loading.close();
+					this.$message.success("提交筹划成功")
+					this.$router.push({name: "xqchPage"});
+				}
+			})
+		},
+		strArrAllEqual(arr1, arr2) {
+			if (arr1.length != arr2.length) {
+				return false;
+			}
+			if (arr1.length === 0) {
+				return false;
+			}
+			const tempArr = arr1.filter(i => arr2.includes(i));
+			return tempArr.length === arr1.length;
+		},
+		addStrip(strips) {
+			let lines = []
+			if (strips.length > 0) {
+				strips.forEach(item => {
+					if (item.pointDTOList && item.pointDTOList.length > 0) {
+						let polygon = [];
+						item.pointDTOList.forEach(py => {
+							polygon.push(py.longitude)
+							polygon.push(py.latitude)
+						})
+						lines.push({
+							id: item.id,
+							material: Cesium.Color.fromCssColorString('rgba(237,245,11,0.5)'),
+							isRhumb: false,
+							polygon: polygon
+						})
+					}
+				})
+			}
+			this.$events.$emit("xqjy-addwindow", lines);
+		},
+		deleteStrip(data) {
+			this.$events.$emit("xqjy-deletewindow", data);
+		}
+	},
+	mounted() {
+	},
 };
 </script>
 
 <style lang='scss' scoped>
 .xqjy-page {
-  color: #fff;
-  height: calc(100% - 64px);
+	color: #fff;
+	height: calc(100% - 64px);
 
-  .xqjy-task_panel, .xqjy-analysisResult_panel {
-    position: absolute;
-  }
+	.xqjy-task_panel, .xqjy-analysisResult_panel {
+		position: absolute;
+	}
 
-  .xqjy-task_panel {
-    height: 680px;
-    top: 44px;
-    left: -30px;
-    width: 580px;
-    background: url("@/assets/ClipImage/biaoti/xqrwlb.png") no-repeat;
-  }
+	.xqjy-task_panel {
+		height: 680px;
+		top: 44px;
+		left: -30px;
+		width: 580px;
+		background: url("@/assets/ClipImage/biaoti/xqrwlb.png") no-repeat;
+	}
 
-  .xqjy-analysisResult_panel {
-    height: 660px;
-    right: 0;
-    width: 580px;
-    background: url("@/assets/ClipImage/biaoti/fxjg.png") no-repeat;
+	.xqjy-analysisResult_panel {
+		height: 660px;
+		right: 0;
+		width: 580px;
+		background: url("@/assets/ClipImage/biaoti/fxjg.png") no-repeat;
 
-    .el-icon-close {
-      float: right;
-      margin: 6px 21px;
-      cursor: pointer;
-    }
-  }
+		.el-icon-close {
+			float: right;
+			margin: 6px 21px;
+			cursor: pointer;
+		}
+	}
 
 
-  .xqjy-page_btn {
-    width: 24px;
-    margin: 22px auto 5px;
+	.xqjy-page_btn {
+		width: 24px;
+		margin: 22px auto 5px;
 
-    .el-button {
-      padding: 5px 10px;
-      font-family: 'SourceHanSansCN-Regular';
-      font-size: 16px;
-    }
-  }
+		.el-button {
+			padding: 5px 10px;
+			font-family: 'SourceHanSansCN-Regular';
+			font-size: 16px;
+		}
+	}
 }
 
-</style>
+</style>

+ 2 - 1
src/pages/1-main/06-XQJY/xqjyTaskList.vue

@@ -91,7 +91,8 @@ export default {
     },
     updateDatas() {
       let parentId = sessionStorage.getItem("parentId");
-      parentId = "240906_XQCH_10017"
+      parentId = "241022_XQCH_10018"
+
       getClickedTagetListDataForxqlbTB({
         status: 1,
         parentId,