Selaa lähdekoodia

数据回放部分功能、数据下载

Rmengdi 1 vuosi sitten
vanhempi
sitoutus
3a4a77a860

+ 52 - 0
PHM-web/src/api/manage/data.js

@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询模型参数信息列表
+export function listSortieParameter(query) {
+  return request({
+    url: '/manage/sortieParameter/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询模型参数信息详细
+// export function getSortieParameter(ID) {
+//   return request({
+//     url: '/manage/sortieParameter/' + ID,
+//     method: 'get'
+//   })
+// }
+
+// 架次信息参数数据详情
+export function getSortieParameter(ID) {
+  return request({
+    url: '/manage/sortieParameter/data/' + ID,
+    method: 'get'
+  })
+}
+
+// 新增模型参数信息
+export function addSortieParameter(data) {
+  return request({
+    url: '/manage/sortieParameter',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改模型参数信息
+export function updateSortieParameter(data) {
+  return request({
+    url: '/manage/sortieParameter',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除模型参数信息
+export function delSortieParameter(ID) {
+  return request({
+    url: '/manage/sortieParameter/' + ID,
+    method: 'delete'
+  })
+}

+ 16 - 0
PHM-web/src/api/manage/dataDown.js

@@ -42,3 +42,19 @@ export function delDataDown(id) {
     method: 'delete'
   })
 }
+
+// 机载PHM在线下载
+export function airborneDataDown(id) {
+  return request({
+    url: '/udp/airborne/' + id,
+    method: 'get'
+  })
+}
+
+// 数链仿真在线下载
+export function simulationDataDown(id) {
+  return request({
+    url: '/udp/simulation/' + id,
+    method: 'get'
+  })
+}

+ 18 - 1
PHM-web/src/api/manage/sortie.js

@@ -9,7 +9,7 @@ export function listSortie(query) {
   })
 }
 
-// 查询架次信息详细
+// 查询架次信息详细、参数
 export function getSortie(id) {
   return request({
     url: '/manage/sortie/' + id,
@@ -17,6 +17,23 @@ export function getSortie(id) {
   })
 }
 
+// 查询架次参数数据
+export function getSortieDataByName(data) {
+  return request({
+    url: '/manage/sortieParameter/dataByName',
+    method: 'post',
+    data: data
+  })
+}
+
+// 查询架次参数名称
+export function getSortieDataName(id) {
+  return request({
+    url: '/manage/sortieParameter/dataName/' + id,
+    method: 'get'
+  })
+}
+
 // 新增架次信息
 export function addSortie(data) {
   return request({

+ 1 - 1
PHM-web/src/router/index.js

@@ -156,7 +156,7 @@ export const dynamicRoutes = [
     permissions: ['manage:sortie:edit'],
     children: [
       {
-        path: 'selectParameters',
+        path: 'selectParameters/:sortieNumber',
         component: () => import('@/views/manage/sortie/selectParameters'),
         name: 'selectParameters',
         meta: { title: '选择参数', activeMenu: '/integratedDataManage/sortie' }

+ 57 - 44
PHM-web/src/views/manage/dataDown/index.vue

@@ -17,11 +17,11 @@
 
     <el-table v-loading="loading" :data="dataDownList" border @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="批次" align="center" prop="batch" />
-      <el-table-column label="机型" align="center" prop="airType" />
-      <el-table-column label="机号" align="center" prop="airNumber" />
-      <el-table-column label="架次号" align="center" prop="sortie" />
-      <el-table-column label="下载状态" align="center" prop="downloadStatus" />
+      <el-table-column label="批次" align="center" prop="batchNo" />
+      <!-- <el-table-column label="机型" align="center" prop="airType" />
+      <el-table-column label="机号" align="center" prop="airNumber" /> -->
+      <el-table-column label="架次号" align="center" prop="sortieNo" />
+      <!-- <el-table-column label="下载状态" align="center" prop="downloadStatus" /> -->
       <el-table-column label="下载方式" align="center" prop="downloadMethod" />
       <el-table-column label="解析状态" align="center" prop="analysisStatus" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -42,13 +42,13 @@
         <el-form-item prop="dataSource">
           <template>
             <el-radio v-model="onlineForm.dataSource" label="1">机载phm</el-radio>
-            <el-radio v-model="onlineForm.dataSource" label="2">数链仿真</el-radio>
+            <el-radio v-model="onlineForm.dataSource" label="0">数链仿真</el-radio>
           </template>
         </el-form-item>
         <el-form-item label="架次信息" prop="sortie">
-          <el-select v-model="onlineForm.order" placeholder="请选择架次" style="width:100%">
+          <el-select v-model="onlineForm.sortieNumber" placeholder="请选择架次" style="width:100%">
             <el-option v-for="item in sortieList" :key="item.id" :label="item.sortieNumber"
-              :value="item.id">
+              :value="item.sortieNumber">
                 <span style="float: left">{{ item.sortieNumber }}</span>
                 <span style="float: right; color: #8492a6; font-size: 13px">{{ item.aircraftNumber }}</span>
             </el-option>
@@ -69,7 +69,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="offlineSubmitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -83,8 +83,11 @@ import {
   delDataDown,
   addDataDown,
   updateDataDown,
+  airborneDataDown,
+  simulationDataDown
 } from '@/api/manage/dataDown'
 import { listInstructionInfo } from '@/api/manage/instructionInfo'
+import { listSortieParameter,getSortieParameter } from '@/api/manage/data'
 import dataDownDialog from '@/views/manage/dataDown/dataDownDialog'
 import { listSortie } from '@/api/manage/sortie'
 
@@ -122,10 +125,11 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        batch: null,
+        type:0,
+        batchNo: null,
         airType: null,
         airNumber: null,
-        sortie: null,
+        sortieNo: null,
         downloadStatus: null,
         downloadMethod: null,
         analysisStatus: null,
@@ -138,6 +142,7 @@ export default {
       // 在线下载表单参数
       onlineForm: {
         dataSource:'1',
+        sortieNumber:null
       },
       // 表单校验
       rules: {},
@@ -182,15 +187,12 @@ export default {
     /** 查询数据下载列表 */
     getList() {
       this.loading = true
-      listDataDown(this.queryParams).then(response => {
+      listSortieParameter(this.queryParams).then(response => {
         this.dataDownList = response.rows;
         console.log("dataDownList",this.dataDownList);
         this.total = response.total;
         this.loading = false;
       });
-      // this.dataDownList = JSON.parse(localStorage.getItem('data-down')) || []
-      // this.total = this.dataDownList?.length || 0
-      // this.loading = false
     },
     // 取消按钮
     cancel() {
@@ -204,7 +206,12 @@ export default {
         order: null,
         remark: null,
       }
+      this.onlineForm = {
+        dataSource : '1',
+        sortieNumber : null
+      },
       this.resetForm('form')
+      this.resetForm('onlineForm')
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -236,6 +243,14 @@ export default {
     // 详情
     handleDetail(row) {
       console.log(row)
+      getSortieParameter(row.id).then(response => {
+          console.log("response",response);
+          // this.dataDownList = response.rows;
+          // this.total = response.total;
+          // this.getList()
+          // this.loading = false;
+          // this.reset()
+        });
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -247,36 +262,34 @@ export default {
         this.title = '修改数据下载'
       })
     },
-    /** 提交按钮 */
+    /** 在线下载提交按钮 */
     submitForm() {
-      this.butLoading = true
-      this.butText = '下载中'
-      setTimeout(() => {
-        // 方法区
-        if (this.form.order === 'error') {
-          this.$modal.msgError('下载异常')
-          this.butLoading = false
-          this.butText = '点击下载'
-          return
-        }
-        // 服务获取文件
-        let dataObj = {
-          order: this.form.order,
-          name: `固定格式_${new Date().getTime()}.xlsx`,
-          path: '/phm/uploadPath',
-          remark: this.form.remark,
-        }
-        let data = JSON.parse(localStorage.getItem('data-down')) || []
-        data.push(dataObj)
-        localStorage.setItem('data-down', JSON.stringify(data))
-        // this.open?
-        this.getList()
-        // 保存指定路径
-        this.butLoading = false
-        this.butText = '点击下载'
-        this.$modal.msgSuccess('下载成功')
-        this.cancel()
-      }, 1000)
+      this.loading = true
+      console.log("this.onlineForm",this.onlineForm);
+      if(this.onlineForm.dataSource ==='1'){
+        airborneDataDown(this.onlineForm.sortieNumber).then(response => {
+          console.log("response",response);
+          
+          // this.dataDownList = response.rows;
+          this.total = response.total;
+          this.getList()
+          this.loading = false;
+          this.reset()
+        });
+      }else{
+        simulationDataDown(this.onlineForm.sortieNumber).then(response => {
+          console.log("response",response);
+          // this.dataDownList = response.rows;
+          this.total = response.total;
+          this.getList()
+          this.loading = false;
+          this.reset()
+        });
+      }
+    },
+    // 离线下载提交
+    offlineSubmitForm(){
+      // TODO
     },
     /** 删除按钮操作 */
     handleDelete(row) {

+ 19 - 1
PHM-web/src/views/manage/orderConfig/index.vue

@@ -33,6 +33,10 @@
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
           v-hasPermi="['manage:orderConfig:export']">导出</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="analysisDialog=true"
+          v-hasPermi="['manage:orderConfig:export']">自定义分析</el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -107,6 +111,10 @@
     <el-dialog :title="title" :visible.sync="openXml" :close-on-click-modal="false" width="900px" append-to-body>
       <Editor :textContent='xmlText' :dataType='"XML"' v-if="openXml"/>
     </el-dialog>
+    <!-- 自定义分析的对话框 -->
+    <el-dialog title="分析页面" :visible.sync="analysisDialog" width="27%" :show-close='false'>
+      <faultAnalysis :flag="flag" :close='close'/>
+    </el-dialog>
   </div>
 </template>
 
@@ -120,10 +128,12 @@ import {
   getOrderConfigXml,
 } from '@/api/manage/orderConfig'
 import Editor from '@/views/manage/instructionInfo/Editor'
+import faultAnalysis from '@/views/manage/faultAnalysis'
 export default {
   name: 'OrderConfig',
   components: {
-    Editor
+    Editor,
+    faultAnalysis
   },
   dicts: ['order_type'],
   data() {
@@ -171,6 +181,10 @@ export default {
           { required: true, message: '指令名称不能为空', trigger: 'change' },
         ],
       },
+      //自定义弹出框
+      analysisDialog:false,
+      //1是自定义的,0是列表信息进入的
+      flag:1,
     }
   },
   created() {
@@ -195,6 +209,10 @@ export default {
       this.open = false
       this.reset()
     },
+    // 自定义对话框关闭
+    close(){
+      this.analysisDialog=false
+    },
     // 表单重置
     reset() {
       this.form = {

+ 46 - 15
PHM-web/src/views/manage/sortie/selectParameters.vue

@@ -5,7 +5,7 @@
     <div class="transfer">
       <el-transfer v-model="value"
         :props="{ key: 'value', label: 'desc' }" 
-        :data="data"
+        :data="parameterList"
         filterable
         filter-placeholder="请输入参数名称"
         :titles="['所有参数', '展示参数']"
@@ -22,12 +22,17 @@
       :fullscreen="true"
       class="thisDialog"
       >
+      <!-- <dataPlayBack ref="playback" @closeDialog="closeDialog" :parameterData="parameterData"/> -->
       <dataPlayBack @closeDialog="closeDialog"/>
     </el-dialog>
   </div>
 </template>
 
 <script>
+import {
+  getSortieDataName,
+  getSortieDataByName
+} from '@/api/manage/sortie'
 import dataPlayBack from '@/views/manage/sortie/dataPlayBack'
 export default {
   name: 'SelectParameters',
@@ -35,29 +40,39 @@ export default {
     dataPlayBack
   },
   data() {
-    const generateData = _ => {
-      const data = [];
-      for (let i = 1; i <= 15; i++) {
-        data.push({
-          value: i,
-          desc: `备选项 ${ i }`
-        });
-      }
-      return data;
-    };
     return {
       // 遮罩层
       loading: true,
       // 判断选择参数为空时
-      isDisable:false,
-      data: generateData(),
-      value: [1],
+      isDisable:true,
+      value:['时间'],
       // 最后选择的参数
       selectData:[],
-      dialogVisible: false
+      dialogVisible: false,
+      sortieNumber:null,
+      parameterList:[],
+      parameterData:[],
+      selectData:[]
     };
   },
+  mounted(){
+    this.getParams()
+  },
   methods: {
+    getParams(){
+      this.sortieNumber=this.$route.params.sortieNumber
+      getSortieDataName(this.sortieNumber).then(response => {
+        console.log("response.data",response.data);
+        response.data.forEach(item => {
+          this.parameterList.push({
+            value: item,
+            desc: item
+          });
+        })
+        this.total = response.total
+        this.loading = false
+      })
+    },
     handleChange(value, direction, movedKeys) {
       this.selectData=value
       console.log('value', value);
@@ -70,6 +85,22 @@ export default {
       }
     },
     submitFileForm(){
+      this.loading = true
+      const data={
+        sortieNo:this.sortieNumber,
+        parameters:this.selectData
+      }
+      getSortieDataByName(data).then(response => {
+        // this.sortieList = response.rows
+        const data=JSON.parse(response.data)
+        const header = Object.keys(data[0]); // 获取键名作为标题
+        let dataRows=[] 
+        data.forEach(item => dataRows.push(Object.values(item))); // 获取键值数组
+        this.parameterData = [header, ...dataRows];
+        console.log("this.parameterData",this.parameterData);
+        this.total = response.total
+        this.loading = false
+      })
       this.dialogVisible=true
     },
     back(){