otmself 8 months ago
parent
commit
c746c7eb72

+ 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"
         // }
     })
-}
+}

+ 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>

+ 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])
+			} 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,