fuyanting 1 gadu atpakaļ
vecāks
revīzija
9635280ff3

+ 1 - 0
src/assets/icons/svg/aircraft (1).svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1705744832668" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4420" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M639.7952 891.5968c-20.1728-56.1152-92.416-244.48-122.368-322.4064-56.4736 37.7344-119.5008 73.472-179.8144 98.7136-18.7392 65.536-56.0128 189.9008-74.0352 206.4896-30.9248 28.5184-42.5984 24.832-47.36-14.2848-4.7616-39.1168-24.832-165.6832-24.832-165.6832s-110.6944-62.4128-145.408-80.2816-34.1504-30.2592 2.9184-49.8688c21.6064-11.4176 149.8624-4.352 217.1904 0.256 44.0832-48.6912 98.8672-96.3584 153.2416-137.1648-62.208-55.0912-212.48-188.16-257.7408-226.5088-39.7312-33.6896 4.0448-40.8064 4.0448-40.8064 19.968-3.584 62.5664-6.7584 83.3536-0.4608 129.2288 39.0656 329.8304 105.8816 376.9856 121.6512l59.4944-42.0352c240.7424-170.496 301.4144-132.7616 312.8832-116.224s25.7536 87.0912-214.9888 257.6384l-59.392 42.1376c-1.4848 50.176-8.0384 263.7312-15.9232 399.9232-1.28 21.9136-18.7904 61.3376-28.928 79.0528-0.0512 0-21.6576 39.168-39.3216-10.1376z" fill="#ffffff" p-id="4421"></path></svg>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
src/assets/icons/svg/aircraft.svg


+ 1 - 0
src/assets/icons/svg/飞机.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1705744256124" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4472" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M839.21 184.785c-30.392-30.378-79.84-30.383-110.223 0.005l-96.801 96.796-341.126-85.374-97.803 97.803 284.742 141.759-61.763 61.763-175.058-32.429L162 544.286l226.046 91.664L479.713 862l79.178-79.188-32.429-175.048 61.763-61.763 141.759 284.732 97.803-97.793-85.374-341.126 96.801-96.801c30.383-30.388 30.383-79.836-0.004-110.228z m-41.059 69.168L678.093 374.006l85.374 341.126-17.472 17.468-141.758-284.737-140.44 140.44 27.254 147.127-58.417-144.065-144.065-58.417 147.127 27.254 140.44-140.44-284.741-141.758 17.472-17.472 341.127 85.374 120.053-120.053c7.746-7.746 20.355-7.751 28.1-0.005 7.745 7.751 7.745 20.355 0.004 28.105z" fill="#7F8080" p-id="4473"></path></svg>

+ 29 - 41
src/views/aircraftdetail/index.vue

@@ -77,9 +77,9 @@
             <el-row type="flex" justify="start" align="top">
               <el-col :span="12">
                 <el-form-item label="数据项" prop="">
-                  <el-checkbox-group v-model="noOptions" size="medium">
-                   <el-checkbox v-for="item in filterOption" :key="item.id" :label="item.id"  :checked="item.checked" @change="checkedBoxChange">{{item.label}}</el-checkbox>
-                  </el-checkbox-group>
+                   <el-checkbox v-for="item in allOption" v-show="!item.checked" :key="item.id" :label="item.id"  v-model="item.checked" @change="checkedBoxChange">
+                    <span >{{ item.label }}</span>
+                   </el-checkbox>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -89,9 +89,10 @@
               <el-col :span="12">
                 <el-form-item label="展示数据项" prop="">
                   <div>
-                   <el-checkbox-group v-model="checkedOptions" size="medium">
-                    <el-checkbox v-for="item in dataOption" :key="item.id" :label="item.id"  :checked="item.checked" @change="checkedBoxChange">{{item.label}}</el-checkbox>
-                  </el-checkbox-group>
+                    <el-checkbox v-for="item in allOption"  v-show="item.checked" :key="item.id" :label="item.id"   v-model="item.checked" @change="checkedBoxChange">
+                      <span>{{ item.label }}</span>
+                    </el-checkbox>
+
                   </div>
                 </el-form-item>
               </el-col>
@@ -100,8 +101,8 @@
         </el-form>
       </el-row>
       <div slot="footer">
-        <el-button @click="close">取消</el-button>
-        <el-button type="primary" @click="handleConfirm">确定</el-button>
+        <el-button type="primary" @click="close">取消</el-button>
+        <el-button type="primary" @click="confirm">确定</el-button>
       </div>
     </el-dialog>
 </div>
@@ -169,14 +170,14 @@ export default {
       datacolumntitle:"",
       chartData:[],
       dataOption: [],
+      tempallOption:[],
       allOption:[],
-      filteroption:[],
+      filterOption:[],
       selectedItems: [],
       isViewResultClicked: false,
       checkedOptions: [],
       noOptions:[],
-      noOption:[],
-      flag:1,
+      noOption:[],     
       checkOption:[]
     };
   },
@@ -221,6 +222,9 @@ export default {
 
     return [data1, data2, data3, data4];
   },
+  filterOption() { // 未选中的数据项
+      return this.dataOption.filter(item => !item.checked)
+  }
 
 },
   methods: {
@@ -336,12 +340,10 @@ export default {
       this.chartData = rows.map(row => row.split(','));
       const firstRow = this.chartData[0]; // 获取第一行数据
       this.allOption = firstRow.map((label, id) => ({ id, label })); // 将第一行数据转换为allOption格式
-       this.dataOption = this.allOption
+      this.allOption = this.allOption.map(option => ({ ...option, checked: true }));
+      this.dataOption = this.allOption
+     this.tempallOption = JSON.parse(JSON.stringify(this.allOption)); // 保存allOption到tempallOption
       // 设置默认选中状态
-      this.filterOption = this.allOption.filter(option => option.id === this.dataOption.id);
-      this.dataOption = this.allOption.map(option => ({ ...option, checked: true }));
-      this.filterOption = this.filteroption.map(option => ({ ...option, checked: false }));
-
   },
     viewResult(filepath){
       this.DatavisTitle = this.aircraftdetail.id + "---飞参数据可视化"
@@ -368,39 +370,25 @@ export default {
    },
 
     onOpen() {
+      this.allOption = JSON.parse(JSON.stringify(this.tempallOption)); // 使用副本初始化allOption
+      
       this.opendatacolumn = true;
     },
     onClose() {
+      
+      this.allOption = JSON.parse(JSON.stringify(this.tempallOption)); // 使用副本初始化allOption
       this.opendatacolumn = false;
+
     },
     close() {
+      this.allOption = JSON.parse(JSON.stringify(this.tempallOption)); // 使用副本初始化allOption
       this.opendatacolumn = false;
     },
-    handleConfirm() {
-      this.checkOption=[]
-      this.noOption = []
-      this.allOption = this.allOption.map(option => ({ ...option, checked: true }));
-      this.checkOption = this.allOption.map(option => ({ ...option, checked: true }));
-      this.noOption = this.allOption.map(option => ({ ...option, checked: true }));
-
-      this.checkOption = this.allOption.filter(option => this.checkedOptions.includes(option.id));
-      this.noOption = this.allOption.filter(option => this.noOptions.includes(option.id))
-      this.dataOption=[]
-      // 将checkOption数组中的元素合并到dataOption数组中
-      this.dataOption.push(...this.checkOption);
-
-      // 将noOption数组中的元素合并到dataOption数组中
-      this.dataOption.push(...this.noOption);
-      // console.log(this.checkOption)
-      // console.log(this.noOption)
-      // console.log(this.dataOption)
-      this.filterOption = [];
-      this.filterOption = [...this.allOption];
-      this.filterOption = this.filterOption.filter(option => !this.dataOption.includes(option));
-      this.filterOption = this.filterOption.map(option => ({ ...option, checked: false }));
-      this.opendatacolumn = false;
-      
-    },
+ confirm() {
+  this.dataOption = this.allOption.filter(item => item.checked);
+  this.tempallOption = JSON.parse(JSON.stringify(this.allOption)); // 保存allOption到tempallOption
+  this.opendatacolumn = false;
+},
    checkedBoxChange(){
      this.$forceUpdate();  //强制渲染多选框样式,否则值变了样式没有选中
 },

+ 28 - 22
src/views/maintenance/offLineDataAnalysis/Datavis.vue

@@ -57,30 +57,36 @@ createDatavis() {
 
       const usedColors = []; // 用于存储已使用的颜色
       // 将每一列数据都添加到折线图中
-      for (let i = 0; i < this.chartData[0].length; i++) {
-        const columnId = i; // 列id就是i
-        if (!this.selectedIds.includes(columnId)) { // 如果当前列的id不在selectedIds中,则跳过该列
-          continue;
-        }
 
-        const seriesData = this.chartData.slice(1).map((row) => parseFloat(row[columnId])); // 获取y轴数据,从第二行开始的第i列的数据
-        let color;
-        do {
-          color = this.getRandomColor(); // 随机生成颜色
-        } while (usedColors.includes(color)); // 如果生成的颜色已经被使用过,则重新生成
-        usedColors.push(color); // 将颜色添加到已使用的颜色数组中
-        
-        option.series.push({
-          name: this.dataOption.find((item) => item.id === columnId).label, // 使用对应列的名称作为折线的名称
-          data: seriesData,
-          type: 'line',
-          itemStyle: {
-            color: color, // 随机生成折线的颜色
-          },
-          animationEasing: 'linear',
-          animationDelay: (idx) => idx * 8,
-        });
+      if(this.chartData.length >0 ){
+        for (let i = 0; i < this.chartData[0].length; i++) {
+                const columnId = i; // 列id就是i
+                if (!this.selectedIds.includes(columnId)) { // 如果当前列的id不在selectedIds中,则跳过该列
+                  continue;
+                }
+
+                const seriesData = this.chartData.slice(1).map((row) => parseFloat(row[columnId])); // 获取y轴数据,从第二行开始的第i列的数据
+                let color;
+                do {
+                  color = this.getRandomColor(); // 随机生成颜色
+                } while (usedColors.includes(color)); // 如果生成的颜色已经被使用过,则重新生成
+                usedColors.push(color); // 将颜色添加到已使用的颜色数组中
+                
+                option.series.push({
+                  name: this.dataOption.find((item) => item.id === columnId).label, // 使用对应列的名称作为折线的名称
+                  data: seriesData,
+                  type: 'line',
+                  itemStyle: {
+                    color: color, // 随机生成折线的颜色
+                  },
+                  animationEasing: 'linear',
+                  animationDelay: (idx) => idx * 8,
+                });
+              }
       }
+  
+
+     
 
       this.Datavis.setOption(option);
     },

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels